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

时间:2019-11-06 08:28:02

标签: latex

下面的“我的表”中我有六个月的时间,分为几个星期。我一直在尝试仅在第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}

1 个答案:

答案 0 :(得分: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}将重复num time给定的格式列表,并且这些命令可以嵌套。

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

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

一个月底只有一个竖线。

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

必须使用TeX原语\vrulevrule 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}\\