Estoy escribiendo un proyecto universitario y quiero crear una tabla con la columna de la izquierda que contenga diagramas de Feynman (que dibujé usando el paquete feynmp) y la columna de la derecha que contenga ecuaciones. Sin embargo, cuando hago esto, las ecuaciones están alineadas verticalmente en la parte inferior de la celda y no puedo entender cómo cambiar esto para que se alineen con el centro del diagrama en la misma fila.
Aquí hay un código de muestra que espero demuestre el problema sin escribir todo mi informe.
\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*}
Respuesta1
Puedes usar la m{width}
opción de 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}
Respuesta2
Puedes mantener c
las celdas, sin especificar su ancho, con una simple \raisebox[-\height}
(más una corrección visual si es necesario). Agregué algo de relleno vertical con el cellspace
paquete:
\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}
Respuesta3
También puedes usartikz-feynman
(página del proyecto). En particular, tiene la opción inline
de ajustar la línea base del diagrama (de la misma manera que baseline
funciona en TikZ) y también hace el diagrama un poco más pequeño para que encaje bien en las ecuaciones o, en este caso, en las tablas.
\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}
Respuesta4
Como ya escribí en tu publicación cruzada enComunidad LaTeX.org, podría usar el adjustbox
paquete o el stackengine
paquete, como se demuestra en este ejemplo usando su código. Por lo tanto, no necesita m columnas que requieran un ancho fijo.
\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}
También puedes cambiar a la alineación superior de esta manera:
\belowbaseline[0pt]{\includegraphics{diagram}}
&
\belowbaseline[0pt]{$\begin{aligned} I &= \\
&\frac{D}{4} \end{aligned}$}\\
El diagrama tiene la línea base para la alineación vertical en la parte inferior. La línea base para el aligned
entorno matemático está en el centro (pero se puede cambiar a la línea superior o inferior). En la tabla, las líneas base están alineadas una al lado de la otra. Entonces ves el diagrama subiendo por encima de la línea base, el texto matemático en la línea base permanece bajo. Es una alineación de línea base, no una alineación superior. Cambiarlo para que crezca por debajo de la línea base, como hice yo, proporciona una alineación superior. Ver también elPublicación en el foro de LaTeXpara referencia o discusión adicional.