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
双列文本。
请注意:
- 我使用
\raggedright
和\raggedleft
来设置列对齐方式,但您可以使用任何您喜欢的(列宽也是一样.2\textwidth
,记得相应地设置\makebox
宽度) - 加载
array
(以及longtable
)包之前arydshln
,否则你会得到一个错误 - 你会得到
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}
输出如下: