如何使垂直列线延续到已应用“多列”的行?

如何使垂直列线延续到已应用“多列”的行?

multicolumn我正在制作一个表格,无论是否已应用,我都希望虚线垂直列线跨行延伸。由于此列线需要虚线,因此我使用了包arydshln。此外,表格会很大,会覆盖两页,这就是我使用longtable而不是的原因tabular

第二个问题(不太重要):由于前两行的公式高度比后两行的公式高,所以我也想在表格中使用不同的行高。我还没有找到一个好的解决方案。

请参阅下面我的表格的简化版本:

\documentclass[11pt,a4paper]{article}
\usepackage{longtable}
\usepackage{arydshln}

\begin{document}

\renewcommand{\arraystretch}{2.3}
\begin{longtable}{l:l}
\textbf{Amplitude} & \textbf{Amplitude*} \\ \hline
$\displaystyle \frac{i}{p^2 + i\epsilon}$ & 
$\qquad \displaystyle -\frac{i}{p^2 - i\epsilon}$ \\
$\displaystyle \frac{i}{p^2 + i\epsilon}$ & 
$\qquad \displaystyle -\frac{i}{p^2 - i\epsilon}$ \\
\multicolumn{2}{c}{$something$} \\
\multicolumn{2}{c}{$something$} \\
$-ie \gamma^\mu$ & $\qquad ie \gamma^\mu$ \\
$-ie \gamma^\mu$ & $\qquad ie \gamma^\mu$ \\
\end{longtable}

\end{document}

在此处输入图片描述

任何帮助都将不胜感激!

答案1

可以找到一种解决方案,无需tikz为列设置固定宽度,而是使用\makebox双列文本。

请注意:

  1. 我使用\raggedright\raggedleft来设置列对齐方式,但您可以使用任何您喜欢的(列宽也是一样.2\textwidth,记得相应地设置\makebox宽度)
  2. 加载array(以及longtable)包之前arydshln,否则你会得到一个错误
  3. 你会得到Overfull \hbox...,但在这种情况下,这是想要的。

代码如下:

\documentclass[11pt,a4paper]{article}
\usepackage{array}
\newcolumntype{L}{>{\raggedright\arraybackslash}p{.2\textwidth}}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{.2\textwidth}}
\newcommand{\mybox}[1]{\makebox[\dimexpr.4\textwidth+\columnsep\relax]{\centering #1}}
\usepackage{longtable}
\usepackage{arydshln}
\begin{document}

\renewcommand{\arraystretch}{2.3}
\begin{longtable}{L:R}
\textbf{Amplitude} & \textbf{Amplitude*} \\ \hline
$\displaystyle \frac{i}{p^2 + i\epsilon}$ & 
$\qquad \displaystyle -\frac{i}{p^2 - i\epsilon}$ \\
$\displaystyle \frac{i}{p^2 + i\epsilon}$ & 
$\qquad \displaystyle -\frac{i}{p^2 - i\epsilon}$ \\
\mybox{$something$}& \\
\mybox{$something$}& \\
$-ie \gamma^\mu$ & $\qquad ie \gamma^\mu$ \\
$-ie \gamma^\mu$ & $\qquad ie \gamma^\mu$ \\
\end{longtable}

\end{document}

输出如下:

在此处输入图片描述

相关内容