Wie kann ich die vertikale Position des Wortes „Text“ zentrieren?

Wie kann ich die vertikale Position des Wortes „Text“ zentrieren?
\begin{table}[h]
\centering
\caption{My Caption}
\label{my-label}\smallskip
\begin{tabular}{c|c c c}
\small{Text} & \small{Qgc} & \small{Qgc} & \small{Qgc}  \\  & \small{{[}MVar{]}} & \small{{[}MVar{]}} & \small{{[}MVar{]}}  \\ \hline
\small{A}           & \small{-100}                        & \small{100.00}                  & \small{100}                         \\
\small{B}           & \small{-100}                        & \small{100}                     & \small{100}                         \\
\small{C}           & \small{-100}                        & \small{100}                     & \small{100}                         \\
\end{tabular}
\end{table}

Antwort1

Nur einige Anmerkungen zu Ihrer Tabelle:

  1. Anstatt es \smallüberall zu wiederholen, fügen Sie es einfach smallam Anfang hinzu. Außerdem \smallist ein Schalter kein Befehl, er hat kein {}.

  2. Die Spalten 2 bis 4 enthalten hauptsächlich numerische Daten. Sie lassen sich daher am besten in den Mathematikmodus versetzen, indem >{$}c<{$}Sie als Spaltenspezifikation hinzufügen.

  3. Die gleiche Spaltenüberschrift Qgc [MVar]wird dreimal wiederholt, daher \multicolumn{3}{c}{Qgc [MVar]}reicht es aus, einfach Folgendes anzugeben.

  4. Durch das Entfernen aller vertikalen Linien und die Verwendung booktabskann die Lesbarkeit weiter verbessert werden.

  5. Überlassen Sie lieber LaTeX die Entscheidung, wo Ihre Tabelle am besten platziert wird, anstatt diesen [h]Spezifizierer hier zu erzwingen. Bei einer abschließenden Überarbeitung können Sie den Tabellencodeteil jedoch im Text nach oben oder unten verschieben, um die Position zu ändern, an der die Tabelle angezeigt wird.

.

\documentclass{article}
\usepackage{booktabs}

\begin{document}

\begin{table}[htbp]
\small\centering
\caption{My Caption}
\label{my-label}
\begin{tabular}{@{}c *3{>{$}c<{$}}@{}}
\toprule
Text     & \multicolumn{3}{c}{Qgc [MVar]}   \\ \cmidrule(r){1-1} \cmidrule(l){2-4}
A        & -100       & 100.00      & 100   \\
B        & -100       & 100         & 100   \\
C        & -100       & 100         & 100   \\ \bottomrule
\end{tabular}
\end{table}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Eine Anmerkung vorweg: Sie verwenden die \smallDirektive nicht richtig: Sienichtnimmt ein Argument an. Daher macht in einer Tabellenzelle \small{Qgc}dasselbe wie \small Qgc. Das reduziert doch besser den Code-Wirrwarr, oder?

Zweitens, da der Inhalt jeder einzelnen Zelle der tabularUmgebung in gerendert werden soll \small, ist es vorzuziehen, einfach eine \smallDirektive auszugebenVorStarten der tabularUmgebung (und Entfernen der \smallAnweisungen aus den einzelnen Zellen).

Drittens: Wenn Sie den Inhalt der Umgebung verkleinern möchten tabular, ist es aus typografischer Sicht eine gute Idee, \captionauch das zugehörige Material zu verkleinern. Dies lässt sich auf einfache Weise erreichen, indem Sie das Paket laden und unmittelbar vor der Anweisung captioneine entsprechende Anweisung ausgeben .\captionsetup\caption

Denken Sie auch daran, negative Zahlen im Mathematikmodus so zu setzen, dass typografisch korrekte -Zeichen (Minuszeichen im Mathematikmodus) anstelle einfacher Bindestriche erzeugt werden.

Zuletzt (und meiner Meinung nach möglicherweise am wenigsten wichtig) verwenden Sie eine \multirowAnweisung (vom multirowPaket bereitgestellt), um die Beschriftung „Text“ vertikal zu zentrieren.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{multirow}
\usepackage[skip=0.333\baselineskip]{caption}
\begin{document}

\begin{table}[h]
\centering

\caption{Original version}
\label{version:one}
\begin{tabular}{c|c c c}
\small{Text} & \small{Qgc} & \small{Qgc} & \small{Qgc}  \\  
             & \small{{[}MVar{]}} & \small{{[}MVar{]}} & \small{{[}MVar{]}}  \\ 
\hline
\small{A}           & \small{-100}     & \small{100.00}    & \small{100}   \\
\small{B}           & \small{-100}     & \small{100}       & \small{100}   \\
\small{C}           & \small{-100}     & \small{100}       & \small{100}   \\
\end{tabular}

\bigskip

\captionsetup{font=small}
\caption{Modified Version}
\label{version:two}
\small
\begin{tabular}{c|c c c}
\multirow{2}{*}{Text} &   Qgc  &   Qgc  &   Qgc   \\  
                      & [MVar] & [MVar] & [MVar]  \\ 
\hline
A       & $-100$  & 100.00  & 100  \\
B       & $-100$  & 100     & 100  \\
C       & $-100$  & 100     & 100  \\
\end{tabular}
\end{table}
\end{document}

Antwort3

Eine Lösung ohne Mehrfachzeilen oder Mehrfachspalten, aber mit mSpalten.

Die zweite Tabelle befasst sich mit dem Fall, dass andere Spalten von einem anderen Typ sein müssen (in diesem Fall mit Dezimalausrichtung, beachten Sie das richtige Vorzeichen bei „-100“ bei den SSpalten des siunitxPakets), und verwendet dabei einen , \parboxum Zeilenumbrüche in den Kopfzeilen zu ermöglichen.

Beachten Sie auch, dass in diesem Fall die Spaltenbreite von der \parboxBreite abhängen könnte, oder vom für Ziffern vor/nach dem Dezimalpunkt reservierten Platz (Fall des Beispiels).

mwe

\documentclass{article}
\usepackage{array,siunitx,booktabs}
\newcolumntype{T}{>{\centering\arraybackslash}m{3em}}
\newcolumntype{U}{S[table-format=4.2]}
\setlength{\belowcaptionskip}{1em}
\begin{document}
\begin{table}
\centering
\caption{My Caption}
\label{my-label}
\small
\begin{tabular}{TTTT}\toprule
Text & Qgc [MVar] & Qgc [MVar] & Qgc [MVar] \\\midrule
A & -100 & 100.00 & 100\\
B & -100 & 100    & 100\\
C & -100 & 100    & 100\\\bottomrule
\end{tabular}
\caption{My Caption}
\begin{tabular}{TUUU}\toprule
Text & 
\parbox{3em}{\centering Qgc [MVar]} &
\parbox{3em}{\centering Qgc [MVar]} &
\parbox{3em}{\centering Qgc [MVar]}\\\midrule
A & -100 & 100.00 & 100\\
B & -100 & 10    & 100\\
C & -100 & 1.0    & 100\\\bottomrule
\end{tabular}
\end{table}
\end{document}

Antwort4

Bewegen Sie sich Textmit in die gewünschte Position \raiseboxoder verwenden Sie \makecelldie Standardplatzierung von (vertikaler/horizontaler cEintrag):

Bildbeschreibung hier eingeben

\documentclass{article}

\usepackage{booktabs,makecell}

\begin{document}

\begin{table}
  \centering
  \begin{tabular}{c c c c}
    \toprule
    \raisebox{-.5\normalbaselineskip}[0pt][0pt]{Text} 
            &   Qgc  &   Qgc  &   Qgc  \\  
            & [MVar] & [MVar] & [MVar] \\ 
    \midrule
    A       & $-100$  & 100.00  & 100  \\
    B       & $-100$  & 100     & 100  \\
    C       & $-100$  & 100     & 100  \\
    \bottomrule
  \end{tabular}

  \bigskip

  \begin{tabular}{c c c c}
    \toprule
    Text    & \makecell{Qgc \\{}[MVar]} & \makecell{Qgc \\{}[MVar]} & \makecell{Qgc \\{}[MVar]} \\
    \midrule
    A       & $-100$  & 100.00  & 100  \\
    B       & $-100$  & 100     & 100  \\
    C       & $-100$  & 100     & 100  \\
    \bottomrule
  \end{tabular}

\end{table}

\end{document}

verwandte Informationen