我如何删除长桌中的特定垂直线

问题描述 投票:1回答:1

下面的我的表有六个月,分为几个星期。我一直在尝试仅在第24、4、8、12、16、20、24周使用垂直线,即仅每个月一次,或者使每4条垂直线变粗,但没有成功。这可能吗。或我对stackoverflow的搜索对我不起作用。我将不胜感激。

\documentclass[11pt,twoside,fleqn]{report}
\usepackage{array,booktabs,tabularx} % also loads 'array' package
\newcolumntype{C}{>{\centering\arraybackslash}X} % centered version of 'X' columns

\usepackage{ltablex} 
\usepackage{longtable}
\usepackage[svgnames,table]{xcolor} % Required to specify font color
\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{3pt}
\renewcommand{\arraystretch}{1.2}

\begin{document}
\begin{longtable}[H]{|p{3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} |p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm}|p{0.3cm}|p{0.3cm}|p{0.3cm} | p{0.3cm} | p{0.3cm}|}
\hline
\setlength{\tabcolsep}{2pt} % for the horizontal padding
\renewcommand{\arraystretch}{2}% for the vertical padding
\textbf{first entires} &\cellcolor{orange} &\cellcolor{orange} &\cellcolor{orange} &\cellcolor{orange} & & & & & & & & & & & & & & & & & & & &
\\[0.10cm]
\hline
\textbf{second entries} & & & & & & & & & \cellcolor{blue}&\cellcolor{blue} &\cellcolor{blue} &\cellcolor{blue} & & & & & & & & & & & & 
\\[0.10cm]
\hline
\textbf{third entries} & & & & & & & & && & & & \cellcolor{orange}& \cellcolor{orange} & \cellcolor{orange} & \cellcolor{orange} & & & & & & & & 
\\[0.10cm]
\hline
\textbf{End} & & & & & & & & & & & & & & & & & & & & & & &\cellcolor{teal} &\cellcolor{teal} 
\\[0.10cm]
\hline
\bottomrule
\end{longtable}
\end{document}
latex
1个回答
2
投票

为了避免出现竖线,您只需删除'|'此列中的说明符。从您的原始示例,这可以通过

完成
\begin{longtable}[H]{|p{3cm} | 
%p{0.3cm} | p{0.3cm} | p{0.3cm} | p{0.3cm} | 
p{0.3cm}  p{0.3cm}  p{0.3cm}  p{0.3cm} | 
p{0.3cm}  p{0.3cm}  p{0.3cm}  p{0.3cm} | 
p{0.3cm}  p{0.3cm}  p{0.3cm}  p{0.3cm} | 
p{0.3cm}  p{0.3cm}  p{0.3cm}  p{0.3cm} | 
p{0.3cm}  p{0.3cm}  p{0.3cm}  p{0.3cm} | }

但是对于25列的表,这种方法容易出错,您应该首选*修饰符。 *{num}{cells format}将重复编号时间给定的格式列表,并且这些命令可以嵌套。

因此,对于您的问题,您有4个月的6个月,可以这样表示:>

\begin{longtable}[H]{ |p{3cm} | *6{*4{p{0.3cm}}|} }

[月底只有竖线。

要使竖线的宽度不同,可以使用“!”分隔符说明符。在表格中,任何竖线都可以用!{<separator command or char>}代替。此命令完全替代|,并且不修改列间距。

必须使用TeX原语\vrule,并且vrule width <w>将绘制宽度<w>和高度由封闭框指定的垂直规则。

\documentclass[11pt,twoside,fleqn]{report}
\usepackage{array,tabularx} % also loads 'array' package
\usepackage{booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X} % centered version of 'X' columns

\usepackage{ltablex} 
\usepackage{longtable}
\usepackage[svgnames,table]{xcolor} % Required to specify font color

\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{3pt}
\renewcommand{\arraystretch}{1.2}

\begin{document}
{
  \setlength\arrayrulewidth{2pt}
  \newcommand{\thinvrule}{{\vrule width 0.5pt}}
  \renewcommand{\arraystretch}{2}% for the vertical padding
  \renewcommand{\defaultaddspace}{1cm}
  \setlength{\tabcolsep}{2pt} % for the horizontal padding
  \begin{longtable}[H]{|p{3cm} | *6{*3{p{0.3cm}!\thinvrule }p{0.3cm}|}}
    \hline
 \textbf{first entires} &\cellcolor{orange} &\cellcolor{orange} &\cellcolor{orange} &\cellcolor{orange} & & & & & & & & & & & & & & & & & & & &
\\[0.10cm]
\hline
\textbf{second entries} & & & & & & & & & \cellcolor{blue}&\cellcolor{blue} &\cellcolor{blue} &\cellcolor{blue} & & & & & & & & & & & & 
\\[0.10cm]
\hline
\textbf{third entries} & & & & & & & & && & & & \cellcolor{orange}& \cellcolor{orange} & \cellcolor{orange} & \cellcolor{orange} & & & & & & & & 
\\[0.10cm]
\hline
\textbf{End} & & & & & & & & & & & & & & & & & & & & & & &\cellcolor{teal} &\cellcolor{teal} 
\\[0.10cm]
\hline
\bottomrule
\end{longtable}
}
\end{document}

enter image description here

编辑:要添加带有月份名称的列,可以使用'\ multicolumn`命令。要散布在数字列上,其语法为

\multicolumn{number}{format}{content}

因此,对于您的问题,请在第一个\ hline之前添加>

    \hline
    &\multicolumn{4}{c|}{jan}&\multicolumn{4}{c|}{feb}&\multicolumn{4}{c|}{mar}&\multicolumn{4}{c|}{apr}&\multicolumn{4}{c|}{may}&\multicolumn{4}{c|}{jun}\\
© www.soinside.com 2019 - 2024. All rights reserved.