Alinhamento vertical das minipáginas

Alinhamento vertical das minipáginas

Eu uso três minipáginas para fazer uma tabela e duas imagens serem colocadas uma ao lado da outra e embora as imagens estejam no lugar certo a tabela é colocada bem mais abaixo produzindo um resultado feio. Por que isso está acontecendo? Como posso consertar isso?

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

Responder1

Por que seu código não funciona.

Isso tem a ver com a forma como esse alinhamento vertical realmente funciona. Considere primeiro o seguinte código e sua saída:

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

insira a descrição da imagem aqui

O objetivo disso é como a tabela e a imagem são posicionadas em relação à linha de base do texto ao redor - ela tabularé centralizada verticalmente, a imagem é colocada na linha de base e, portanto, fica acima da linha.

Agora, o que o especificador de posição t/ bpara minipages se refere não é realmente a borda superior/inferior do minipage, pelo que entendi, mas olinha de base da primeira/última linha do textono minipage. Na minipagetabela, a linha de base fica no meio da tabela, como você pode ver na imagem acima. Mas no minipagecaso das imagens, a linha de base está na parte inferior da imagem. Como resultado, a parte inferior das imagens fica alinhada com o meio da tabela.

Sugestão 1

Conforme sugerido por daleif, removi minipagefor the tabularno código abaixo.

Se você definir o alinhamento dos minipages à direita para centrar fica melhor, ou seja

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

O tabulartem ccomo alinhamento por padrão.

Para alinhá-los na parte superior, você pode definir a posição de ambos tabulare minipages como t, e definir a posição interna (terceiro argumento opcional) de minipages com as imagens como b. Ou seja, você terá

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

para a mesa e

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

para o minipageS.

Sugestão 2

Se você adicionar, \usepackage[export]{adjustbox}poderá alterar o alinhamento vertical das imagens, em relação à linha de base, com o argumento opcional valign=<t/c/b>para \includegraphics. Então você pode abandonar minipagecompletamente os s.

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

Algumas notas sobre a mesa.

Não faz parte da pergunta, mas adicionei uma sugestão de como você poderia escrever a tabela no código abaixo, você vê o resultado na imagem.

A especificação da coluna foi alterada para {>{$}c<{$} s S }. Ao carregar o arraypacote você pode usar >{}/ <{}para inserir coisas no início/fim da célula, fazendo o procedimento acima o efeito é que cada célula é definida no modo matemático. Isso economiza um pouco de digitação.

Para a segunda coluna, observe que as unidades geralmente não devem ser escritas em itálico. Você poderia simplesmente remover todo o modo matemático e seria muito melhor. Aqui usei uma scoluna from siunitx, que permite usar as macros de unidade from siunitxpara compor as unidades.

A coluna final é uma Scoluna, também de siunitx, que alinha os números no marcador decimal. Não tenho certeza se é uma melhoria neste caso, mas pensei em adicioná-la como dica.

Na primeira coluna, você notará que defini as palavras 'Baixo' e 'Alto' e 'máximo' no modo de texto. Suponho que seja principalmente uma questão de convenção, mas acho que palavras descritivas, ao contrário de nomes de variáveis, não devem estar em itálico. Também removi todas as linhas verticais e adicionei uma linha horizontal mais grossa (de booktabs) acima e abaixo. Isso torna a mesa menos bagunçada.

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

insira a descrição da imagem aqui

Responder2

Pode-se evitar minipagescompletamente o uso \abovebaselinedo \belowbaselinepacote stackengine. Observe a sintaxe no final do MWE. Nesse caso, salvei cada item em seu próprio stackbox apenas para que, se a saída centralizada fosse necessária, fosse necessário um cálculo adicional usando as alturas da caixa. Caso contrário, as colunas poderiam ter sido geradas diretamente com a sintaxe mostrada.

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

insira a descrição da imagem aqui

Responder3

tabularjá é uma espécie de minipágina (você pode usar \begin{tabular[t]{...}). Por padrão, ele tem sua linha de base no meio, o entorno minipagenão altera isso, pois tabularse comporta como uma única linha (mais ou menos). As imagens estão alinhadas na base e são mais altas que isso.

Você pode querer brincar com o adjustboxpacote, ele tem muitos recursos úteis para alinhar coisas.

Também um pequeno apelo: poste algo que possamos copiar e colar e usar sem editá-lo. Você não tem preâmbulo e é claro que não temos suas imagens. Para imagens você pode usar \rule{length}{length}.

informação relacionada