Alineación vertical de minipáginas

Alineación vertical de minipáginas

Utilizo tres minipáginas para hacer una tabla y colocar dos imágenes una al lado de la otra y aunque las imágenes están en el lugar correcto la tabla se coloca mucho más abajo produciendo un resultado feo. ¿Por qué sucede eso? ¿Cómo puedo arreglarlo?

\begin{minipage}[t]{5cm}
\begin{tabular}{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline 
$T_{sd}$ & $ns$ & $780$\\
\hline 
$T_{f}$ & $ns$ & $240$\\
\hline 
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A1.JPG}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A2.JPG}
\end{minipage}

Respuesta1

Por qué su código no funciona.

Esto tiene que ver con cómo funciona realmente esta alineación vertical. Considere primero el siguiente código y su resultado:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
Some text then a table \begin{tabular}{c}
1 \\2 \\ 3 \\ 4
\end{tabular}
then some more text and an image \includegraphics[width=2cm]{example-image-10x16}.    
\end{document}

ingrese la descripción de la imagen aquí

El objetivo de esto es cómo se colocan la tabla y la imagen en relación con la línea base del texto circundante: tabularestá centrada verticalmente, la imagen se coloca en la línea base y, por lo tanto, se mantiene por encima de la línea.

Ahora bien, a lo que se refiere el especificador de posición t/ para s no es en realidad el borde superior/inferior de , según tengo entendido, sino elbminipageminipagelínea base de la primera/última línea de textoen el minipage. En minipagela tabla, la línea de base está en el medio de la tabla, como puede ver en la imagen de arriba. Pero en la minipages con las imágenes, la línea de base está en la parte inferior de la imagen. Como resultado, la parte inferior de las imágenes está alineada con el centro de la tabla.

Sugerencia 1

Según lo sugerido por daleif, eliminé el minipagedel tabularsiguiente código.

Si configura la alineación de la derecha minipages para cingresar, se ve mejor, es decir

\begin{minipage}[c]{5cm}

Tiene como tabularalineación cpor defecto.

Para alinearlos superiormente, puede establecer la posición de ambos tabulary minipages en ty establecer la posición interna (tercer argumento opcional) de minipages con las imágenes en b. Es decir, tendrás

\begin{tabular}[t]{...}

para la mesa y

\begin{minipage}[t][][b]{5cm}

para el minipages.

Sugerencia 2

Si agrega, \usepackage[export]{adjustbox}puede cambiar la alineación vertical de las imágenes, en relación con la línea de base, con el argumento opcional valign=<t/c/b>a \includegraphics. Entonces puedes deshacerte de la minipages por completo.

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\begin{document}   
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\includegraphics[width=5cm,valign=c]{example-image-a}
\includegraphics[width=5cm,valign=c]{example-image-b}

\end{document}

Algunas notas sobre la mesa.

Realmente no es parte de la pregunta, pero agregué una sugerencia sobre cómo escribir la tabla en el código a continuación; ves el resultado en la imagen.

La especificación de la columna se ha cambiado a {>{$}c<{$} s S }. Al cargar el arraypaquete, puede usar >{}/ <{}para insertar cosas al principio/final de la celda; al hacer lo anterior, el efecto es que cada celda se configura en modo matemático. Eso le ahorra tener que escribir.

Para la segunda columna, tenga en cuenta que las unidades generalmente no deben escribirse en cursiva. Simplemente podrías eliminar todo el modo matemático y sería mucho mejor. Aquí utilicé una scolumna de siunitx, que permite utilizar las macros de unidades de siunitxpara componer las unidades.

La última columna es una Scolumna, también de siunitx, que alinea los números en el marcador decimal. No estoy seguro de si es una mejora en este caso, pero pensé en agregarlo como consejo.

En la primera columna, notarás que configuré las palabras "Bajo", "Alto" y "máximo" en modo texto. Supongo que esto es principalmente una cuestión de convención, pero creo que las palabras descriptivas, a diferencia de los nombres de variables, no deberían estar en cursiva. También eliminé todas las líneas verticales y agregué una línea horizontal más gruesa (de booktabs) arriba y abajo. Hace que la mesa esté menos abarrotada.

\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}

\begin{document}

\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}

\vspace{2cm}

\begin{tabular}[t]{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Se puede evitar minipagespor completo el uso \abovebaseliney \belowbaselinedel stackenginepaquete. Tenga en cuenta la sintaxis al final del MWE. En este caso, guardé cada elemento en su propio cuadro de pila solo para que, si se requiriera la salida centrada, se requirieran cálculos adicionales utilizando las alturas del cuadro. De lo contrario, las columnas podrían haberse generado directamente con la sintaxis que se muestra.

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{stackengine}
\parskip 1em
\begin{document}
\savestack{\colA}{
\begin{tabular}[b]{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline 
$T_{sd}$ & $ns$ & $780$\\
\hline 
$T_{f}$ & $ns$ & $240$\\
\hline 
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}}

\savestack{\colB}{\includegraphics[width=5cm,height=4cm]{A1.JPG}}

\savestack{\colC}{\includegraphics[width=5cm,height=2.5cm]{A2.JPG}}

\colA\ \abovebaseline[.5\ht\colAcontent-.5\ht\colBcontent]{\colB}\ 
  \abovebaseline[.5\ht\colAcontent-.5\ht\colCcontent]{\colC}

\colA\ \colB\ \colC

\belowbaseline{\colA}\ \belowbaseline{\colB}\ \belowbaseline{\colC}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

tabularya es una especie de minipágina (quizás quieras usar \begin{tabular[t]{...}). De forma predeterminada, tiene su línea de base en el medio, el entorno minipageno altera esto ya que tabularse comporta como una sola línea (más o menos). Las imágenes están alineadas en la base y es mucho más alta que eso.

Quizás quieras jugar con el adjustboxpaquete, tiene muchas funciones útiles para alinear cosas.

También una pequeña súplica: publique algo que podamos copiar y pegar y usar sin editarlo. No tienes preámbulo y nosotros, por supuesto, no tenemos tus imágenes. Para imágenes puedes usar \rule{length}{length}.

información relacionada