表中方程式的垂直對齊

表中方程式的垂直對齊

我正在編寫一個大學項目,我想創建一個表,其中左列包含費曼圖(我使用 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專案頁面)。特別是,它具有調整圖表基線的選項(與Ti 中的工作inline方式相同)baselinekZ),並且還使圖表稍微小一些,以便它很好地適合方程,或者在本例中是表格。

\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-Community.org,您可以使用該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 論壇帖子供參考或進一步討論。

相關內容