Estou escrevendo um projeto universitário e quero criar uma tabela com a coluna da esquerda contendo diagramas de Feynman (que desenhei usando o pacote feynmp) e a coluna da direita contendo equações. Quando faço isso, entretanto, as equações ficam alinhadas verticalmente na parte inferior da célula, e não consigo descobrir como alterar isso, para que fiquem alinhadas com o centro do diagrama na mesma linha.
Aqui está um exemplo de código que espero demonstrar o problema sem escrever todo o meu relatório.
\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*}
Responder1
Você pode usar a m{width}
opção tabular:
\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}
Responder2
Você pode manter c
as células, sem especificar sua largura, com um simples \raisebox[-\height}
(mais uma correção visual se necessário). Eu adicionei algum preenchimento vertical ao cellspace
pacote:
\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}
Responder3
Você também pode usartikz-feynman
(página do projeto). Em particular, tem a opção inline
de ajustar a linha de base do diagrama (da mesma forma que baseline
funciona em TikZ) e também torna o diagrama um pouco menor para que ele se encaixe perfeitamente em equações ou, neste caso, em tabelas.
\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}
Responder4
Como já escrevi em sua postagem cruzada emLaTeX-Community.org, você poderia usar o adjustbox
pacote ou o stackengine
pacote, como demonstrado neste exemplo usando seu código. Portanto, você não precisa de m colunas que exigem uma largura fixa.
\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}
Você também pode mudar para o alinhamento superior desta forma:
\belowbaseline[0pt]{\includegraphics{diagram}}
&
\belowbaseline[0pt]{$\begin{aligned} I &= \\
&\frac{D}{4} \end{aligned}$}\\
O diagrama tem a linha base para alinhamento vertical na parte inferior. A linha de base para o aligned
ambiente matemático está no centro (mas pode ser alterada para linha superior ou inferior). Na tabela, as linhas de base estão alinhadas uma ao lado da outra. Então você vê o diagrama subindo acima da linha de base, o texto matemático na linha de base permanece baixo. É o alinhamento da linha base, não o alinhamento superior. Alterá-lo para crescer abaixo da linha de base, como eu fiz, proporciona alinhamento superior. Veja também oPostagem no fórum LaTeXpara referência ou discussão adicional.