Sie sind hier

Wird die Tabellenschriftart mit \setkomafont{}{} einstellbar werden ?

- oder gibt es eine andere Möglichkeit, generell die Schriftart von Tabellen zu ändern?

Folgendes Beispiel:

\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{libertine}
\renewcommand{\rmdefault}{fxlj}%Umschalten zu Mediävalziffern
\begin{document}
Hier kommt Text vom 19.3.2045, mit allen Zahlen 1234567890.
Und dann eine Tabelle:\\
\begin{tabular}{|ccc|}\hline
	123,34 & 678,7 & Text\\\hline
\end{tabular}
\end{document}

Ich möchte Schriften mit Mediävalziffern im Fließtext verwenden, weil's schöner aussieht. Aber in Tabellen stören Zahlen mit Unterlängen sehr. Man sollte also die Schriftart von Tabelle generell umschalten können.

Zugegeben,

a) das ist ein schöner Luxuswunsch für Leute, die sonst alles haben;

b) es hagelt womöglich Folgeprobleme bei den Beschriftungen,

aber man kann ja mal fragen?!

Danke und Gruß
Alexander

Bild von Markus Kohm

Tabellen werden auch intern verwendet. So werden beispielsweise die Autoren auf der Titelseite mit Hilfe von Tabellen gesetzt. Vermutlich würden sich einige Leute wundern, was sich alles ändern würde, wenn es ein Schriftelement für tabular gäbe. Ich schlage Dir deshalb vor, Dir eine eigene Umgebung zu basteln:

\newenvironment{mytabular}{%
  \fontfamily{...}\selectfont
  \tabular
}{%
  \endtabular
}

Natürlich musst Du die gewünschte Schriftfamilie noch statt der Pünktchen eintragen. So wie das hier gemacht ist, musst Du aber die Argumente für tabular nicht selbst lesen und weiterverarbeiten, sondern überlässt das tabular. Du verwendest dann einfach statt tabular das neue mytabular. Dagegen werden die Tabellen, die implizit von LaTeX, der Klasse oder irgendwelchen Paketen gesetzt werden, und von denen Du gar nicht weißt, dass es Tabellen sind, nicht angefasst.

Danke, ich werd's testen. Schön einfache Lösung.

Gruß,
Alexander

Bild von Markus Kohm

Oder nur »einfach = kurz«?

1. Schritt: primitive Lösung
2.: komplizierte Lösung
3.: einfache Lösung.

Und einfache Lösungen in diesem Sinn sind häufig kurz, aber schwer verständlich.

Tatsächlich finde ich gerade keine Dokumentation des \tabular-Befehls, Tex-by-topic enthält ihn jedenfalls nicht. Der "Begleiter" steht zuhause, da würde ich als nächstes nachsehen. Letztlich verwendet jeder eine Umgebung mit \begin{}, daher stellt mich Deine Lösung vor ein Rätsel.

Praktisch wichtiger ist die Frage, wie ich diesen Trick mit longtable und ggf. tabularx hinkriege. Wenn die verwendete Schreibweise nur eine Besonderheit ist, Umgebungen zu benennen, könnte auch

\newenvironment{mylongtabular}{%
  \fontfamily{fxl}\selectfont
  \longtable
}{%
  \endlongtable
}

funktionieren. Erstaunlicherweise ist das der Fall! Also vermute ich, dass \begin{tabular}irgendwo definiert wird als \tabular und entsprechendes im Paket longtable passiert. Aber bevor ich jetzt anfange, latex.ltx zu lesen, muss ich doch wieder zurück zu meiner Arbeit.

Gruß,
Alexander

Bild von Markus Kohm

Eine Umgebung foo wird in LaTeX definiert als \foo und \endfoo. Trotzdem sollte man nun natürlich nicht anfangen, beliebig \begin{foo}...\end{foo} durch \foo...\endfoo zu ersetzen. Es gibt da nämliche in paar erhebliche Unterschiede.

Zum einen wird bei \begin{foo} immer eine Gruppe geöffnet, bei \foo aber nur dann, wenn in der Definition von \foo explizit eine Gruppe geöffnet wurde. Das ist im Beispiel von mytabular beispielsweise sehr wichtig, weil bei \endmytabular die Wirkung der Änderung der Schriftfamilie nicht enden würde. Bei \end{mytabular} wird aber die Gruppe, die bei \begin{mytabular} geöffnet wird, wieder geschlossen. Bekanntlich endet die Wirkung aller nicht globalen Anweisungen am Ende der aktuellen Gruppe.

Zum anderen wird bei \end{foo} auch getestet, ob die aktuelle Umgebung überhaupt foo ist und wenn nicht, wird ein Fehler gemeldet. Das ist auch der Grund, warum ich \tabular und \endtabular verwendet habe. Nach \tabular heißt die aktuelle Umgebung noch immer mytabular. Beendet man die Umgebung nun versehentlich mit \end{tabular}, so wird das als Fehler gemeldet. Auch bei \end{mxtabular} erfährt man, dass man die falsche Umgebung beendet hat und die aktuelle Umgebung mytabular heißt. Hätte ich statt \tabular hingegen \begin{tabular} verwenden, so würde ein \end{tabular} von LaTeX zunächst akzeptiert. Irgendwann – üblicherweise bei \end{document} – würde TeX dann aber meckern, dass \begin{mytabular} mit – beispielsweise – \end{document} endet. Noch erstaunlicher für den Anwender wäre, dass \end{mxtabular} von LaTeX mit der Fehlermeldung quitiert würde, dass \begin{tabular} mit \end{mxtabular} endet, obwohl der Anwender doch gar kein \begin{tabular}, sondern nur \begin{mytabular} verwendet hat.

Nun zu longtable und tabularx. Hier muss man vorsichtig sein. Normalerweise arbeitet LaTeX nach \begin{foo} einfach ganz normal weiter und irgendwann kommt dann eine Anweisung \end mit dem Argument foo, die ebenfalls ganz normal verarbeitet wird. Eine Umgebungen sind jedoch anders definiert. Sie lesen stattdessen aktiv Stück für Stück, bis sie ein bestimmtes Muster finden. Nach diesem Muster wird dann wieder normal weitergearbeitet. Alle amsmath-Umgebungen arbeiten so und tabularx definitiv ebenfalls. Bei solchen Umgebungen muss man die \foo...\endfoo-Methode verwenden, wenn man sie in eigenen Umgebungen verwenden will. Außerdem gibt es häufig weitere Beschränkungen. Bei einer Umgebung, die tabularx verwendet, kann man beispielweises im \end-Teil vor \endtabularx normalerweise keinen eigenen Code einbauen. Dort muss man stattdessen ggf. \endtabular im \begin-Teil passend erweitern.

AFAIR steht auch in der De-TeX-FAQ etwas zu dem Thema.

Genug erklärt, ich habe noch einen Termin.

Comments for "Wird die Tabellenschriftart mit \setkomafont{}{} einstellbar werden ?" abonnieren