Im folgenden Beispiel ist die mit p bezeichnete Spalte eine p-Spalte. Die rechten drei Spalten sind m-Spalten, wobei der Inhalt der einen Spalte sowohl Tiefe als auch Höhe hat, der Inhalt der anderen beiden hat dagegen nur entweder Tiefe oder Höhe. Höhe bzw. Tiefe des Inhalts ist jeweils relativ zu Höhe bzw. Tiefe einer \strutbox gewählt. Der jeweilige Faktor steht in der ersten Spalte in Klammern.

alt text

Wenn man sich das Bild anschaut, stellt sich die Frage, was genau bei Verwendung von m-Spalten vertikal zentriert wird und bezüglich welcher Linie diese Zentrierung erfolgt.

Code für obige Tabelle:

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{array}
\usepackage{booktabs}
\setlength\tabcolsep{2pt}
\newcommand\ph[2][0pt]{\textcolor{red}{\rule[#1]{2pt}{\dimexpr#2\relax}}}
\begin{document}
\begin{tabular}{>{\tiny}lp{4ex}<{\hrulefill}*{3}{m{4ex}<{\hrulefill}}}
&\multicolumn{1}{c}{\tiny p}&\multicolumn{1}{c}{\tiny m th}&\multicolumn{1}{c}{\tiny m t}&\multicolumn{1}{c}{\tiny m h}\\
a (1)
  &\ph[-\dp\strutbox]{\ht\strutbox+\dp\strutbox}
  &\ph[-\dp\strutbox]{\ht\strutbox+\dp\strutbox}
  &\ph[-\dp\strutbox]{\dp\strutbox}
  &\ph{\ht\strutbox}\\
b (.5)
  &\ph[-.5\dp\strutbox]{.5\ht\strutbox+.5\dp\strutbox}
  &\ph[-.5\dp\strutbox]{.5\ht\strutbox+.5\dp\strutbox}
  &\ph[-.5\dp\strutbox]{.5\dp\strutbox}
  &\ph{.5\ht\strutbox}\\
c (2)
  &\ph[-2\dp\strutbox]{2\ht\strutbox+2\dp\strutbox}
  &\ph[-2\dp\strutbox]{2\ht\strutbox+2\dp\strutbox}
  &\ph[-2\dp\strutbox]{2\dp\strutbox}
  &\ph{2\ht\strutbox}\\\addlinespace
\end{tabular}
\end{document}

gefragt 14 Feb '15, 15:08

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

Die Frage habe ich aus Interesse gestellt, es ist kein Support nötig.

(14 Feb '15, 15:17) esdd

Der m-Typ benutzt \vcenter und zentriert daher entlang der mathematischen Achse (bei normaler Schriftgröße etwa 2.5pt oberhalb der Grundlinie). Ein Pfeil ($\rightarrow$) sollte also normalerweise auf die Mitte zeigen. Verkompliziert wird das Ganze durch die \strut, die in Tabellen automatisch eingefügt werden: Wenn deine \rule zu klein sind, wird der Inhalt dadurch unsichtbar vergrößert.

Edit

Jetzt werden schon meine schnellen Kommentare in Antworten verwandelt. Das setzt einem ja wirklich unter Druck. Nun gut hier etwas Code, mit dem besser sehen kann, welche Stützen und Linien in der Tabelle rumschwirren. Man beachte auch, dass die "mathematische Achse" von der Schriftgröße abhängt, daher wurde der Pfeil in \normalsize geschrieben. Man beachte auch, dass die (blaue) \vrule aus \@startpbox ein feste Höhe hat, ihre Tiefe sich aber automatisch an die Tiefe der Box anpasst.

Open in Online-Editor
\documentclass[margin=10pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{array}
\usepackage{booktabs,tikz}
\setlength\tabcolsep{2pt}
\makeatletter
\def\@startpbox#1{\bgroup
  \setlength\hsize{#1}\@arrayparboxrestore
   \everypar{%
      {\color{blue}\vrule \@height \ht\@arstrutbox \@width  0.5pt}%
      \everypar{}}%
   }
\def\@finalstrut#1{%
  \unskip\ifhmode\nobreak\fi\color{green}\vrule\@width0.5pt\@height\z@\@depth\dp#1}
\makeatother
\newcommand\ph[2][0pt]{\textcolor{red}{\rule[#1]{2pt}{\dimexpr#2\relax}}}
\begin{document}

\begin{tabular}{>{\tiny}l<{\normalsize\hfill$\rightarrow$}>{}p{4ex}<{\hrulefill}*{3}{m{4ex}<{\hrulefill}}}
&\multicolumn{1}{c}{\tiny p}&\multicolumn{1}{c}{\tiny m th}&\multicolumn{1}{c}{\tiny m t}&\multicolumn{1}{c}{\tiny m h}\\
a (1)
  &\ph[-\dp\strutbox]{\ht\strutbox+\dp\strutbox}
  &\ph[-\dp\strutbox]{\ht\strutbox+\dp\strutbox}
  &\ph[-\dp\strutbox]{\dp\strutbox}
  &\ph{\ht\strutbox}\\\addlinespace
b (.5)
  &\ph[-.5\dp\strutbox]{.5\ht\strutbox+.5\dp\strutbox}
  &\ph[-.5\dp\strutbox]{.5\ht\strutbox+.5\dp\strutbox}
  &\ph[-.5\dp\strutbox]{.5\dp\strutbox}
  &\ph{.5\ht\strutbox}\\\addlinespace
c (2)
  &\ph[-2\dp\strutbox]{2\ht\strutbox+2\dp\strutbox}
  &\ph[-2\dp\strutbox]{2\ht\strutbox+2\dp\strutbox}
  &\ph[-2\dp\strutbox]{2\dp\strutbox}
  &\ph{2\ht\strutbox}\\\addlinespace
\end{tabular}
\end{document}

alt text

Permanenter link

beantwortet 14 Feb '15, 16:30

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.6k23
Akzeptiert-Rate: 52%

bearbeitet 15 Feb '15, 12:22

Die Umwandlung hatte ich mir erlaubt, weil IMHO der kurze Kommentar den Kern der Frage bereits erfasste und (kurz) beantwortete. Wenn ich Dich damit zu dieser ausführlicheren Darstellung der Thematik verleiten konnte, nehme ich die Kritik an der Umwandlung sehr, sehr gerne entgegen. ;-)

(15 Feb '15, 12:34) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×254
×117
×68

gestellte Frage: 14 Feb '15, 15:08

Frage wurde gesehen: 9,143 Mal

zuletzt geändert: 15 Feb '15, 12:34