如何使\begin{equation}...\end{equation}
表格单元格垂直居中?
最小代码(我无法再最小化)
\documentclass{article}
\usepackage{array,longtable,calc,amsmath}
\newcolumntype{A}[1]{%
>{\begin{minipage}{#1\linewidth-2\tabcolsep-1.5\arrayrulewidth}\vspace{\tabcolsep}}%
c%
<{\vspace{\tabcolsep}\end{minipage}}%
}
\begin{document}
\begin{longtable}{|*2{A{0.5}|}}
\hline
\begin{equation}
\sin x \cos x = y
\end{equation}
& \hrulefill \tabularnewline\hline
\end{longtable}
\end{document}
答案1
为了获得正确的间距,在\strut
显示之前和之后放置一个,并赋予两个shortdisplayskip
相同的值。
\documentclass{article}
\usepackage{array,longtable,calc,amsmath}
\tabcolsep=1pt
\arrayrulewidth=1pt
\newcolumntype{A}[1]{%
>{\begin{minipage}{#1\linewidth-2\tabcolsep-1.5\arrayrulewidth}\vspace{\tabcolsep}}%
c%
<{\vspace{\tabcolsep}\end{minipage}}%
}
\begin{document}
\begin{longtable}{|*2{A{0.5}|}}
\hline
\setlength\abovedisplayshortskip{0pt}
\setlength\belowdisplayshortskip{0pt}
\strut
\begin{equation}
\sin x \cos x = y
\end{equation}
\strut
& \hrulefill \tabularnewline\hline
\end{longtable}
\end{document}
您可以shortdisplayskip
根据需要更改 s;也可以使用负值。
答案2
\documentclass{article}
\usepackage{array,calc,longtable,ragged2e}
\tabcolsep=1pt
\arrayrulewidth=1pt
\newcolumntype{A}[1]{>{%
\abovedisplayskip=0pt\belowdisplayskip=0pt
\Centering}m{#1\linewidth-2\tabcolsep-1.5\arrayrulewidth}}
\begin{document}
\begin{longtable}{|*2{A{0.5}|}}\hline
\begin{equation}
\sin x \cos x = y
\end{equation}
& foo \hrulefill \tabularnewline\hline
\end{longtable}
\end{document}
答案3
为什么不使用\begin{longtable}{|*2{m{0.5\linewidth}|}}
?我在这里看不出列类型有什么优势A
。