- 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
Das hagelt an diversen Stellen Probleme
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: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 dastabular
. Du verwendest dann einfach statttabular
das neuemytabular
. 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.
Danke, ich werd's testen. Schön einfache Lösung.
Gruß,
Alexander
Einfach = Verstanden?
Oder nur »einfach = kurz«?
Entwicklungsstufen
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
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
Gut geraten
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 vonmytabular
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 überhauptfoo
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 immermytabular
. 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 Umgebungmytabular
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
undtabularx
. Hier muss man vorsichtig sein. Normalerweise arbeitet LaTeX nach\begin{foo}
einfach ganz normal weiter und irgendwann kommt dann eine Anweisung\end
mit dem Argumentfoo
, 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 undtabularx
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, dietabularx
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.