Vertikale Ausrichtung der Minipages

Vertikale Ausrichtung der Minipages

Ich verwende drei Minipages, um eine Tabelle und zwei Bilder nebeneinander zu platzieren. Obwohl die Bilder an der richtigen Stelle sind, wird die Tabelle viel tiefer platziert, was zu einem hässlichen Ergebnis führt. Warum passiert das? Wie kann ich das beheben?

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

Antwort1

Warum Ihr Code nicht funktioniert.

Dies hängt damit zusammen, wie diese vertikale Ausrichtung tatsächlich funktioniert. Betrachten Sie zunächst den folgenden Code und seine Ausgabe:

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

Bildbeschreibung hier eingeben

Dabei geht es darum, wie Tabelle und Bild im Verhältnis zur Grundlinie des umgebenden Textes platziert werden: Die Tabelle tabularist vertikal zentriert, das Bild wird auf der Grundlinie platziert und ragt so über die Zeile hinaus.

Nun, worauf sich der t/ b-Positionsbezeichner für das s bezieht, ist , soweit ich es verstehe, minipagenicht wirklich die Ober-/Unterkante des , sondern dieminipageGrundlinie der ersten/letzten Textzeilein der minipage. In der minipagemit der Tabelle befindet sich die Grundlinie in der Mitte der Tabelle, wie Sie aus dem Bild oben sehen können. Aber in den minipages mit den Bildern befindet sich die Grundlinie am unteren Rand des Bildes. Infolgedessen ist der untere Rand der Bilder mit der Mitte der Tabelle ausgerichtet.

Vorschlag 1

Wie von daleif vorgeschlagen, habe ich das minipagefür tabularim folgenden Code entfernt.

Wenn Sie die Ausrichtung des rechten minipages auf ceingeben, sieht es besser aus, d. h.

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

Die Standardausrichtung tabularist :c

Um sie oben auszurichten, können Sie die Position von beiden tabularund minipages auf setzen tund die innere Position (drittes optionales Argument) der minipages mit den Bildern auf setzen b. Das heißt, Sie erhalten

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

für den Tisch und

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

für die minipages.

Vorschlag 2

Wenn Sie hinzufügen, \usepackage[export]{adjustbox}können Sie die vertikale Ausrichtung von Bildern relativ zur Grundlinie mit dem optionalen Argument ändern valign=<t/c/b>. \includegraphicsDann können Sie das minipages ganz weglassen.

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

Einige Anmerkungen zur Tabelle.

Nicht wirklich Teil der Frage, aber ich habe im folgenden Code einen Vorschlag hinzugefügt, wie Sie die Tabelle schreiben könnten. Das Ergebnis sehen Sie im Bild.

Die Spaltenspezifikation wurde geändert in {>{$}c<{$} s S }. Beim Laden des arrayPakets können Sie >{}/ verwenden <{}, um am Anfang/Ende der Zelle Dinge einzufügen. Wenn Sie das oben genannte tun, wird jede Zelle in den Mathematikmodus versetzt. Das erspart Ihnen einige Tipparbeit.

Beachten Sie für die zweite Spalte, dass Einheiten im Allgemeinen nicht kursiv geschrieben werden sollten. Sie könnten einfach den gesamten Mathematikmodus entfernen, das wäre viel besser. Hier habe ich eine sSpalte aus verwendet siunitx, die es ermöglicht, die Einheitenmakros aus zu verwenden, siunitxum die Einheiten zu setzen.

Die letzte Spalte ist eine SSpalte, ebenfalls von siunitx, die die Zahlen am Dezimalzeichen ausrichtet. Ich bin nicht sicher, ob das in diesem Fall eine Verbesserung ist, aber ich dachte, ich füge es als Tipp hinzu.

In der ersten Spalte werden Sie feststellen, dass ich die Wörter „Niedrig“, „Hoch“ und „Max“ in den Textmodus gesetzt habe. Ich nehme an, das ist hauptsächlich eine Frage der Konvention, aber ich denke, beschreibende Wörter sollten im Gegensatz zu Variablennamen nicht kursiv sein. Ich habe auch alle vertikalen Linien entfernt und booktabsoben und unten eine dickere horizontale Linie (von ) hinzugefügt. Dadurch wird die Tabelle übersichtlicher.

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

Bildbeschreibung hier eingeben

Antwort2

minipagesMan kann das auch ganz vermeiden , indem man \abovebaselineund \belowbaselinedes stackenginePakets verwendet. Man beachte die Syntax am Ende des MWE. In diesem Fall habe ich jedes Element nur in einer eigenen Stackbox gespeichert, damit, falls die zentrierte Ausgabe gewünscht ist, eine zusätzliche Berechnung mit den Boxhöhen notwendig ist. Andernfalls hätte man die Spalten mit der gezeigten Syntax direkt ausgeben können.

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

Bildbeschreibung hier eingeben

Antwort3

tabularist bereits eine Art Miniseite (Sie können verwenden \begin{tabular[t]{...}). Standardmäßig hat sie ihre Grundlinie in der Mitte, die Umgebung minipageändert dies nicht, da sie tabularsich wie eine einzelne Linie verhält (sozusagen). Die Bilder sind an der Basis ausgerichtet und sie ist viel höher als diese.

Vielleicht möchten Sie mit dem Paket herumspielen adjustbox, es bietet viele nützliche Funktionen zum Ausrichten von Dingen.

Und noch eine kleine Bitte: Bitte posten Sie etwas, das wir kopieren und einfügen und unverändert verwenden können. Sie haben keine Präambel und wir haben natürlich nicht Ihre Bilder. Als Bilder könnten Sie verwenden \rule{length}{length}.

verwandte Informationen