PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenschrift global definieren?



matzemc
12-12-2009, 12:26
Hallo!

Gibt es eine Möglichkeit, für Tabellen, die ich mit \begin{table} starte, global in der Präambel eine Schriftart zuzuweisen?

Natürlich konnte man immer vor jeder Tabelle die Schriftart ändern, aber wenn man es global macht, ist es meiner Meinung nach sauberer.

Hat jemand eine Idee?

localghost
12-12-2009, 12:49
Habe mal im Archiv gekramt [1]. Das sollte helfen.

[1] Schriftart für Umgebungen - mrunix.de


MfG
Thorsten¹

lockstep
12-12-2009, 12:58
Wie wär's hiermit?



\documentclass{article}

\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{blindtext,booktabs}

\usepackage{floatrow}
\floatsetup[table]{font=small,capposition=top}

\begin{document}

\blindtext

\begin{table}
\begin{tabular}{ccc}
\toprule
Rosen & Tulpen & Nelken \\
\midrule
1 & 2 & 3 \\
\bottomrule
\end{tabular}
\caption{Blumen}
\end{table}

\end{document}


Anmerkung: Das Zentrieren von Tabellen und sonstigen Gleitumgebungen ist in floatrow bereits voreingestellt.

lockstep

matzemc
12-12-2009, 13:06
Danke für eure Hilfe!

Ich hab es nun so probiert:


\makeatletter
\g@addto@macro{\table}{\sffamily}
\makeatother


Es funktioniert soweit auch recht gut, also die Schrift wird verändert. Allerdings werden nun über den Tabellen die Platzierungsoptionen im Dokument mit angezeigt.

Kann man das auch noch irgendwie verhindern?

lockstep
12-12-2009, 13:16
Ich kann dein Problem nicht nachvollziehen. Mein ursprünglicher Vorschlag etwas abgewandelt:



\usepackage{floatrow}
\floatsetup[table]{font=sf}

lockstep

matzemc
12-12-2009, 13:28
Ja, mit deinem Vorschlag klappt die Schriftänderung:


\usepackage{floatrow}
\floatsetup[table]{font=sf,capposition=top}

Allerdings bekomme ich nun Fehlermeldungen mit:

Caption(s) lost

lockstep
12-12-2009, 13:34
Nun, bei mir ist floatrow Teil einer umfangreichen, selbst konfigurierten Präambel und erzeugt keine derartige Fehlermeldungen.

Erstelle bitte ein vollständiges, lauffähiges, kleines Beispiel, das dein Problem demonstriert. Vielleicht findet sich dann eine Lösung.

lockstep

P.S.: Ein guter Anfang ist mein ursprüngliches Beispiel - der Code läuft ja hoffentlich auch bei dir fehlerfrei durch.

sommerfee
12-12-2009, 13:47
Es funktioniert soweit auch recht gut, also die Schrift wird verändert. Allerdings werden nun über den Tabellen die Platzierungsoptionen im Dokument mit angezeigt.

Kann man das auch noch irgendwie verhindern?

Siehe Beitrag Nr.6 in dem von localghost verlinkten Thread.

Liebe Grüße,
Axel

matzemc
12-12-2009, 13:51
Es liegt scheinbar an folgendem:

Einmal taucht der Fehler bei Captions mit einem \textit{} auf und wenn ich \cite benutze.

Benötigst du dafür auch ein Minimalbeispiel?

matzemc
12-12-2009, 13:58
Bei der Lösung mit


\makeatletter
\g@addto@macro{\table}{\sffamily}
\makeatother

verstehe ich leider den Beitrag Nr. 6 nicht wirklich.

localghost
12-12-2009, 14:03
Bei der Lösung mit […] verstehe ich leider den Beitrag Nr. 6 nicht wirklich.
Na, ganz einfach. Bei Umgebungen mit Argumenten reicht diese einfache Version nicht. Axels Lösung ist universell und funktioniert mit jeder Umgebung.

matzemc
12-12-2009, 14:08
Also ist nun diese Variante zu empfehlen?


\makeatletter
% Axel Sommerfeldt
% \href{mailto:caption@sommerfee.de}{\texttt{caption @sommerfee.de}}
% 2007/01/07
\providecommand*\AtBeginEnvironment[1]{%
\@ifundefined{#1}%
{\@latex@error{Environment #1 undefined}\@ehc
\@gobble}%
{\@ifundefined{ABE@env@#1}%
{\expandafter\let\csname ABE@env@#1\expandafter\endcsname
\csname #1\endcsname
\expandafter\let\csname ABE@hook@#1\endcsname\@empty
\@namedef{#1}{\@nameuse{ABE@hook@#1}\@nameuse{ABE@ env@#1}}}%
{}%
\expandafter\g@addto@macro\csname ABE@hook@#1\endcsname}}
\@onlypreamble\AtBeginEnvironment
\makeatother

\AtBeginEnvironment{table}{\sffamily}


Die Schrift wird bei mir aber leider nicht verändert.

localghost
12-12-2009, 14:36
\AtBeginEnvironment{tabular}{\sffamily}
Wenn Du schräg gestellte Beschriftungen haben willst, dann lade Axels Paket caption (http://ctan.org/pkg/caption) mit entsprechenden Optionen.

\usepackage[font=it]{caption}
Zitate in Beschriftungen musst Du speziell angehen.

\caption[Verzeichniseintrag]{Beschriftung mit Zitat \cite{key}}

matzemc
12-12-2009, 14:57
Ah, jetzt klappt es.
Ich musste tabular nehmen.

Super! Vielen Dank!

Bei den anderen Dingen haben wir uns wohl falsch verstanden. Kursiv muss ich nur einzelne Worte stellen (Pflanzennamen). Aber das klappt nun auch wie gewohnt. Und zitieren auch. Danke!

lockstep
12-12-2009, 15:45
Die Lösung von Axel erinnert mich darin, wie wenig ich über TeX- und LaTeX-Programmierung weiß. :o

Habe jetzt noch einen weiteren Weg gefunden, der vermutlich ähnlich programmiert ist, aber mit einem auf CTAN verfügbaren Paket arbeitet:



\usepackage{etoolbox}
\apptocmd{\table}{\sffamily}{}{}


@matzemc: Freut mich, dass dein Problem gelöst ist - nur schade, dass wir der möglichen Inkompatibilität von floatrow nicht auf die Spur gekommen sind (das Paket ist z.B. auch sehr nützlich bei der Definition neuer Gleitumgebungen).

lockstep