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}
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: tabular
está 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 elb
minipage
minipage
línea base de la primera/última línea de textoen el minipage
. En minipage
la tabla, la línea de base está en el medio de la tabla, como puede ver en la imagen de arriba. Pero en la minipage
s 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 minipage
del tabular
siguiente código.
Si configura la alineación de la derecha minipage
s para c
ingresar, se ve mejor, es decir
\begin{minipage}[c]{5cm}
Tiene como tabular
alineación c
por defecto.
Para alinearlos superiormente, puede establecer la posición de ambos tabular
y minipage
s en t
y establecer la posición interna (tercer argumento opcional) de minipage
s con las imágenes en b
. Es decir, tendrás
\begin{tabular}[t]{...}
para la mesa y
\begin{minipage}[t][][b]{5cm}
para el minipage
s.
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 minipage
s 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 array
paquete, 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 s
columna de siunitx
, que permite utilizar las macros de unidades de siunitx
para componer las unidades.
La última columna es una S
columna, 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}
Respuesta2
Se puede evitar minipages
por completo el uso \abovebaseline
y \belowbaseline
del stackengine
paquete. 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}
Respuesta3
tabular
ya 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 minipage
no altera esto ya que tabular
se 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 adjustbox
paquete, 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}
.