tabularx environment set font size small

Tabellen und Grafiken erstellen und anordnen


chris.gr
Forum-Anfänger
Forum-Anfänger
Beiträge: 47
Registriert: Sa 9. Jan 2010, 14:04

tabularx environment set font size small

Beitrag 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
  }

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.
Zuletzt geändert von KOMA am Mo 28. Jun 2010, 10:34, insgesamt 1-mal geändert.

Laures
Forum-Anfänger
Forum-Anfänger
Beiträge: 34
Registriert: Do 6. Aug 2009, 19:48

Re: tabularx environment set font size small

Beitrag 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.
Zuletzt geändert von Laures am Mo 28. Jun 2010, 10:37, insgesamt 1-mal geändert.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: tabularx environment set font size small

Beitrag 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.

chris.gr
Forum-Anfänger
Forum-Anfänger
Beiträge: 47
Registriert: Sa 9. Jan 2010, 14:04

Beitrag von chris.gr »

Danke für eure Antworten!

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

chris.gr
Forum-Anfänger
Forum-Anfänger
Beiträge: 47
Registriert: Sa 9. Jan 2010, 14:04

Beitrag von chris.gr »

Laurent, wie könnte man bei deinem Beispiel den Inhalt in den Zeilen vertikal oben ausrichten?

Danke!

Laures
Forum-Anfänger
Forum-Anfänger
Beiträge: 34
Registriert: Do 6. Aug 2009, 19:48

Beitrag von Laures »

Das wäre
p{width}
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

chris.gr
Forum-Anfänger
Forum-Anfänger
Beiträge: 47
Registriert: Sa 9. Jan 2010, 14:04

Beitrag von chris.gr »

Super DANKE!

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Antworten