![Vertikale Ausrichtung der Minipages](https://rvso.com/image/286375/Vertikale%20Ausrichtung%20der%20Minipages.png)
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}
Dabei geht es darum, wie Tabelle und Bild im Verhältnis zur Grundlinie des umgebenden Textes platziert werden: Die Tabelle tabular
ist 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, minipage
nicht wirklich die Ober-/Unterkante des , sondern dieminipage
Grundlinie der ersten/letzten Textzeilein der minipage
. In der minipage
mit der Tabelle befindet sich die Grundlinie in der Mitte der Tabelle, wie Sie aus dem Bild oben sehen können. Aber in den minipage
s 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 minipage
für tabular
im folgenden Code entfernt.
Wenn Sie die Ausrichtung des rechten minipage
s auf c
eingeben, sieht es besser aus, d. h.
\begin{minipage}[c]{5cm}
Die Standardausrichtung tabular
ist :c
Um sie oben auszurichten, können Sie die Position von beiden tabular
und minipage
s auf setzen t
und die innere Position (drittes optionales Argument) der minipage
s 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 minipage
s.
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>
. \includegraphics
Dann können Sie das minipage
s 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 array
Pakets 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 s
Spalte aus verwendet siunitx
, die es ermöglicht, die Einheitenmakros aus zu verwenden, siunitx
um die Einheiten zu setzen.
Die letzte Spalte ist eine S
Spalte, 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 booktabs
oben 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}
Antwort2
minipages
Man kann das auch ganz vermeiden , indem man \abovebaseline
und \belowbaseline
des stackengine
Pakets 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}
Antwort3
tabular
ist 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 tabular
sich 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}
.