Seite 1 von 1
tabularx environment set font size small
Verfasst: Mo 28. Jun 2010, 09:44
von chris.gr
Hallo, wie kann man hier die font-size auf small setzen? \small funktioniert nicht, danke!
\newenvironment{mytabx}[2]{%
\setlength{\arrayrulewidth}{0.6pt}
\renewcommand{\arraystretch}{1}
\tabularx{#1}{#2}
}{%
\endtabularx
\normalsize
}
Verfasst: Mo 28. Jun 2010, 10:15
von KOMA
Da
\documentclass{article}
\usepackage{tabularx}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\newenvironment{mytab}{\par\small\tabularx}{\endtabularx}
\begin{document}
\begin{mytab}{\textwidth}{X}
\blindtext
\end{mytab}
\begin{tabularx}{\textwidth}{X}
\blindtext
\end{tabularx}
\end{document}
eindeutig funktioniert, bist Du uns mal wieder ein
vollständiges Minimalbeispiel (← dies ist ein geprüfter Link mit relevanten Informationen!) schuldig.
Edit: Tippfehler im Text korrigiert.
Re: tabularx environment set font size small
Verfasst: Mo 28. Jun 2010, 10:21
von Laures
Die Lösung von gestern weiterdenken. Das Stylecommand für tabularx umsetzen und in der Umgebungsdefinition einfach setzen.
Das setzt natürlich voraus das als spaltentypen für deine Umgebung nur solche benutzt werden, die dieses Stylecommand auch verwenden.
\newcommand{\tablestyle}[1]{ % eine variable für die Textformatierung einer Tabelle
\gdef\cellstyle{#1} %
#1\ignorespaces
}
\tablestyle{} % das stellt sicher das die definition vorliegt
% jetzt wird jeder spaltentyp der auf X basiert durch cellstyle formatiert
\renewcommand{\tabularxcolumn}[1]{>{\cellstyle\arraybackslash}m{#1}}
\newenvironment{mytabx}[2]{%
\tablestyle{\small}
\setlength{\arrayrulewidth}{0.6pt}
\renewcommand{\arraystretch}{1}
\tabularx{#1}{#2}
}{%
\endtabularx
\normalsize % solltest du nicht brauchen, da die textformatierung sowieso nicht aus der Tabelle rauskommt (glaub ich)
}
fertig.
Gruß,
Laures
PS: oh, Koma war schneller... ich muss aber gestehn, dass \small einfach davorzusetzen bei mir auch nicht geklappt hat.
PPS: ok, seine Lösung funktioniert und \small kommt definitiv nicht aus dem umgebungsblock raus.
Re: tabularx environment set font size small
Verfasst: Mo 28. Jun 2010, 10:37
von KOMA
Laures hat geschrieben:ich muss aber gestehn, dass \small einfach davorzusetzen bei mir auch nicht geklappt hat.
Für Dich gilt dasselbe: »hat nicht geklappt« ist keine hinreichende Fehlerbeschreibung.
Verfasst: Mo 28. Jun 2010, 10:42
von chris.gr
Danke für eure Antworten!
Verfasst: Mo 28. Jun 2010, 11:02
von KOMA
BTW: Bei Eurer mytab-Definition fehlt die Behandlung des optionalen Argument von tabularx. mytab versteht also im Gegensatz zu tabularx kein optionales Argument. Meine Definition versteht jedoch auch das optionale Argument.
Verfasst: Mo 28. Jun 2010, 13:41
von chris.gr
Laurent, wie könnte man bei deinem Beispiel den Inhalt in den Zeilen vertikal oben ausrichten?
Danke!
Verfasst: Mo 28. Jun 2010, 13:51
von Laures
Das wäre
Um X entsprechend zu überschreiben dann halt
\renewcommand{\tabularxcolumn}[1]{>{\cellstyle\arraybackslash}p{#1}}
p ist glaube ich sogar Teil der standartdefinition von X
Gruß,
Laures
Verfasst: Mo 28. Jun 2010, 13:57
von chris.gr
Super DANKE!
Verfasst: Mo 28. Jun 2010, 14:09
von KOMA
Laures hat geschrieben:p ist glaube ich sogar Teil der standartdefinition von X
Korrekt. p (und damit: oberste Zeile auf der Grundlinie der Tabellenzeile) ist der grundlegende Standardtyp für X-Spalten. Zuständig ist dafür die Definition
\def\tabularxcolumn#1{p{#1}}
in tabularx.sty. Ändern kann man das wie gezeigt mit \renewcommand. Alternativen fürdie vertikale Ausrichtung wären beispielsweise:
\renewcommand*{\tabularxcolumn}[1]{m{#1}}% \parbox[c] statt \parbox[tt] verwenden
oder
\renewcommand*{\tabularxcolumn}[1]{b{#1}}% \parbox[b] statt \parbox[tt] verwenden
Näheres zu den Spaltentypen m und b ist der array-Anleitung zu entnehmen.