Alineación vertical de ecuaciones en una tabla

Alineación vertical de ecuaciones en una tabla

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 clas 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 cellspacepaquete:

\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} 

ingrese la descripción de la imagen aquí

Respuesta3

También puedes usartikz-feynman(página del proyecto). En particular, tiene la opción inlinede ajustar la línea base del diagrama (de la misma manera que baselinefunciona 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}

producción

Respuesta4

Como ya escribí en tu publicación cruzada enComunidad LaTeX.org, podría usar el adjustboxpaquete o el stackenginepaquete, 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}

Salida centrada

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}$}\\

salida superior

El diagrama tiene la línea base para la alineación vertical en la parte inferior. La línea base para el alignedentorno 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.

información relacionada