表格中方程的垂直对齐

表格中方程的垂直对齐

我正在编写一个大学项目,我想创建一个表格,左列包含费曼图(我用 feynmp 包绘制),右列包含方程式。但是,当我这样做时,方程式在单元格底部垂直对齐,我不知道如何改变这种情况,以便它们与同一行的图表中心对齐。

下面是一些示例代码,我希望它能够演示问题而无需写出我的整个报告。

\begin{table*}[t]
\centering
\begin{tabular}{|c|c|}
\hline
\textbf{feynmp diagram goes here}
&
$\begin{aligned} I &= \\ &\frac{D}{4} \end{aligned}$
\\
\hline
\end{tabular}
\end{table*}

答案1

您可以使用m{width}表格选项:

\documentclass{article}

\usepackage{array}
\usepackage{amsmath}

\begin{document}
\begin{table*}[t]
\centering
\begin{tabular}{|c|m{5cm}|}
\hline
\textbf{feynmp diagram goes here} \newline
&
$\begin{aligned} I &= \\ &\frac{D}{4} \end{aligned}$
\\
\hline
\end{tabular}
\end{table*}
\end{document}

答案2

您可以c使用简单的方法\raisebox[-\height}(如果需要,还可以进行视觉校正)保留单元格,而无需指定其宽度。我在cellspace包中添加了一些垂直填充:

\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\usepackage{amsmath}
\usepackage{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{6pt}

\begin{document}

\begin{table*}[t]
  \centering
  \begin{tabular}{|Sc|c|}
    \hline
    \raisebox{\dimexpr-0.5\height+1ex\relax }{\fbox{\includegraphics[scale = 0.4]{Feynmann}}}
      & $ \begin{aligned} I & = \\\hline &\frac{D}{4} \end{aligned}$ \\
    \hline
  \end{tabular}
\end{table*}

\end{document} 

在此处输入图片描述

答案3

您还可以使用tikz-feynman项目页面)。特别是,它有一个选项inline可以调整图表的基线(与baseline(与Ti 中的操作方式相同)Z),同时使图表稍微小一些,以便它能很好地适应方程式,或者在本例中是表格。

\documentclass{article}

\usepackage[compat=1.1.0]{tikz-feynman}
\usepackage{booktabs}

\begin{document}
\begin{tabular}{cc}
  \toprule
  \multicolumn{2}{c}{\textbf{Feynman Rules}} \\
  \midrule
  \feynmandiagram[inline=(a), horizontal=i1 to a] {
    i1 [particle=\(A_{\mu}\)] -- [photon] a -- [fermion] f1,
    a -- [anti fermion] f2,
  }; &
  \(\displaystyle ig \gamma_{\mu}\) \\
  \feynmandiagram[inline=(a), horizontal=i1 to a] {
    i1 [particle=\(W^{\pm}_{\mu}\)]-- [photon] a -- [fermion] f1,
    a -- [anti fermion] f2,
  }; &
  \(\displaystyle \frac{ig}{\sqrt{2}} \gamma_{\mu} \frac{1 - \gamma_{5}}{2}\) \\
  \bottomrule
\end{tabular}
\end{document}

输出

答案4

正如我之前在您在LaTeX 社区,您可以使用adjustbox包或stackengine包,如本例中使用您的代码所演示的那样。因此,您不需要需要固定宽度的 m 列。

\documentclass{article} 
\usepackage[demo]{graphicx}
\usepackage{amsmath}
\usepackage{stackengine}
\begin{document}
\begin{table*}[t]
\centering
\begin{tabular}{|c|c|}
  \hline
  \Centerstack{\includegraphics{diagram}}
    &
  $\begin{aligned} I &= \\
  &\frac{D}{4} \end{aligned}$\\
\hline
\end{tabular}
\end{table*}
\end{document}

居中输出

您也可以通过以下方式更改为顶部对齐:

  \belowbaseline[0pt]{\includegraphics{diagram}}
    &
  \belowbaseline[0pt]{$\begin{aligned} I &= \\
      &\frac{D}{4} \end{aligned}$}\\

顶部输出

图表底部有垂直对齐的基线。aligned位于其中心(但可以更改为顶部或底部线)。在表格中,基线彼此对齐。因此,您会看到图表在基线上方向上移动,基线上的数学文本保持较低。这是基线对齐,而不是顶部对齐。像我一样将其更改为在基线下方增长,可实现顶部对齐。另请参阅LaTeX 论坛帖子以供参考或进一步讨论。

相关内容