Seite 1 von 1

Vertikal zentrieren bei vorgegebener minimaler Zeilenhöhe

Verfasst: So 25. Okt 2020, 11:09
von mkfr

Liebe Golatexler!

Leider habe ich ich ein Problem, das mir seit längerem Kopfzerbrechen bereitet. Ich würde gerne bei vorgegebener mindest-Zeilenhöhe Inhalte vertikal zentrieren. Das habe ich vor längerer Zeit wie folgt gelöst:

Code: Alles auswählen

\documentclass{amsart}

\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe
\newcolumntype{N}{@{}m{0pt}@{}}

\begin{document}


\begin{tabular}{|m{5cm}|C{1cm}|N}\hline 
	Ein kurzer Text. & \framebox{\phantom{/\_}} & \\[7mm]\hline 
	Ein zu langer Text mit einem Zeilenumbruch. & \framebox{\phantom{/\_}} & \\[7mm]\hline  
\end{tabular} \end{document}

Das hat bis zum Update auf TexLive2020 wunderbar funktioniert und alles gemacht, was es machen sollte:

  1. Mindesthöhe 7mm
  2. Breite vorgegeben
  3. Zeilenumbruch automatisch
  4. Vertikal zentriert in letzter Spalte

Jetzt ist allerdings bei einzeiligem Text die vertikale Zentrierung "defekt".

Ich habe auch den Grund herausgefunden, offenbar habe ich damals einen "Bug" der tabular/array-Umgebung genützt, allerdings wurde dieser behoben...

Leider finde ich auch nach Langem Googeln und Probieren keine zufriedenstellende Lösung!

Ich wäre um Ideen sehr dankbar!

LG Markus


Re: Vertikal zentrieren bei vorgegebener minimaler Zeilenhöhe

Verfasst: So 25. Okt 2020, 12:34
von gast

Bin nicht sicher, dass ich dein Problem wirklich verstehe, aber Mindesthöhe geht beispielsweise über eine unsichtbare Stütze:

Code: Alles auswählen

\documentclass{amsart}

\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe
\newcolumntype{N}{@{}m{0pt}@{}}

\begin{document}


\begin{tabular}{|m{5cm}|C{1cm}|N}\hline 
	Ein kurzer Text. & \rule[-\dp\strutbox]{0pt}{7mm}\framebox{\phantom{/\_}} & \\\hline 
	Ein zu langer Text mit einem Zeilenumbruch. & \rule[-\dp\strutbox]{0pt}{7mm}\framebox{\phantom{/\_}} & \\\hline  

\end{tabular}

\end{document}

Die \rule kann man natürlich auch in die Definition der Spalte mit einbauen.

Ankreuzkästchen in umrandeten Tabellenzellen (die ohnehin aus typografisch Gründen abzulehnen sind) sehen übrigens beschissen aus.


Re: Vertikal zentrieren bei vorgegebener minimaler Zeilenhöhe

Verfasst: So 25. Okt 2020, 16:54
von mkfr

Danke erstmal für die Hilfe, deine Methode habe ich auch schon versucht, es sieht allerdings auch nicht so aus, wie ich es gerne hätte (nicht vertikal zentriert). Hier mal eine Bild von meiner Variante (oben) und deiner Variante (unten):

1.png

Und hier wie es vor TexLive 2020 mit meiner Variante war (und ich es gerne weiterhin hätte):

2.png

Bezüglich "sehen beschissen aus": Naja das liegt wohl im Auge des Betrachters :wink: ... es muss jedoch so aussehen, da das eine Vorlage für Multiple Choice Fragen im österreichischen Zentralmatura-Format werden soll... und die müssen eben so aussehen.