Archiv verlassen und diese Seite im Standarddesign anzeigen : Schritftart in Tabellen global ändern
matthias_h
14-04-2006, 14:57
Hallo
Ich möchte ein Dokument schreiben, in dem der laufende Text in einer Schrift mit Serifen und der Text in Tabellen in einer serifenlosen Schrift steht. Muss ich dazu bei jeder Tabelle \sffamily angeben oder kennt jemand eine Möglichkeit die in Tabellen verwendete Schriftart global zu ändern?
mfg Matthias
Klar. Dazu definiert man sich einen Befehl oder eine Umgebung, in der
Tabellen in anderer Schrift gesetzt werden - z.B. so (ungetestet):
\newenvironment{mytable}%
{\begin{table}\footnotesize\sffamily}%
{\end{table}
}
edico
matthias_h
15-04-2006, 11:43
Danke edico.
Gute Idee, daran habe ich noch gar nicht gedacht. Aber gibt es auch eine Möglichkeit die \sffamily - Definition zur bestehenden table-Umgebung hinzuzufügen? Dies hätte den Vorteil bei bestehenden Dokumenten nicht alle table-Umgebungen (um beim Beispiel zu bleiben in mytable) umbenennen zu müssen.
Matthias
pospiech
15-04-2006, 12:51
Ich definiere mir immer ein \tablestyle, dass alle Stilvorgaben enthält. Dies packe ich dann in eine Tabellenumgebung. Naürlich muss man das dann immer noch bei allen machen, aber es ist offensichtlich was passiert.
Matthias
... was ist das Problem, dokumentweit table nach mytable umzubenennen?
edico
matthias_h
15-04-2006, 20:49
Danke für die Hilfe.
an Edico: Natürlich ist es möglich die table-Umgebungen schnell umzubenennen. Bin nur ein klein wenig perfektionistisch :o
Matthias
Hallo,
habe es ausprobiert, weil ich genau daselbe wollte, wie Matthias, aber leider funktioniert es nicht :-(
(\renewenvironment{table}%
{\begin{table}\footnotesize\sffamily}%
{\end{table}
}
Habe "re" vor newenvironment gesetzt, um die table Umgebung neu zu definieren.
Als Fehlermeldung gibt es folgendes:
./test.tex:191:TeX capacity exceeded, sorry [grouping levels=255]. \begin{table}
Was habe ich denn falsch gemacht?
Liebe Grüße
ElGato
sofa-surfer
18-01-2007, 09:56
(\renewenvironment{table}%
{\begin{table}\footnotesize\sffamily}%
{\end{table}
}
Das riecht so ein bisschen nach rekursivem Aufruf ;)
Matthias
Hallo Sofa Surfer,
ähm... leider kann ich mit "rekursivem Aufruf" nichts anfangen :o
Weiß nicht ob das ein insider-joke ist, oder ein Tipp :confused:
Komme mir echt dumm vor, vor allem da ich dachte, dass ich mit Latex so langsam umgehen kann - naja, wie man sich irren kann :rolleyes:
Wäre Dir für ein paar Worte mehr sehr dankbar!
Liebe Grüße und einen schönen Tag
ElGato
sofa-surfer
19-01-2007, 09:20
... naja, du willst die Umgebung table umdefinieren, rufst diese aber innerhalb der Umdefinition wieder auf. Deine Umdefinition geht also irgendwo in Richtung Nirvana.
http://de.wikipedia.org/wiki/Rekursion
Wenn du also sowas machen willst, dann ist eher edicos Vorschlag von oben angebracht ...
Matthias
Hallo,
habe es ausprobiert, weil ich genau daselbe wollte, wie Matthias, aber leider funktioniert es nicht :-(
(\renewenvironment{table}%
{\begin{table}\footnotesize\sffamily}%
{\end{table}
}
Habe "re" vor newenvironment gesetzt, um die table Umgebung neu zu definieren.
Als Fehlermeldung gibt es folgendes:
./test.tex:191:TeX capacity exceeded, sorry [grouping levels=255]. \begin{table}
Was habe ich denn falsch gemacht?
So kannst du table nicht neu definieren, denn es ruft sich ja ständig
selbst neu auf und geht eben in die Rekursion.
Herbert
Vielen Dank, habs endlich geschnallt :D
Mal wieder ich :o ;
okay, die Idee mit mytable finde ich echt gut, hat soweit auch alles geklappt, aber wenn ich:
\begin{mytable}[htbp]
\caption[das steht im Tabellenverzeichnis]{das steht in der caption}
\label{tab:test}
\begin{tabularx}{12cm}{@{}lXll}
\toprule
bla & bla & bla\\
bla & bla & bla \\
\bottomrule
\end{tabularx}
\end{mytable}
schreibe, dann wird es lustig: denn [htbp] steht echt im Text drin und das habe ich nicht erwartet :(
Was stimmt nicht?
Gibt es noch mehr Dinge, die man beachten muss, damit es keine Überraschungen gibt?
Liebe Grüße
ElGato
MasterOfPuppets
24-01-2007, 09:27
Das [htbp] sollte mit in deine Umgebungsdefinition rein.
Naja, das kann ja nicht laufen. Du must die Option selbstverständlich in die neue Umgebung und nur in die neue Umgebung einfügen:
\newenvironment{mytable}%
{\begin{table}[htb]\footnotesize\sffamily}%
{\end{table}
}
... dabei ist die von Dir gewählte Unsinn - 'htbp' ist sowieso defaultseitig gesetzt ...
edico
sofa-surfer
24-01-2007, 09:47
Hallo,
du kannst es auch als optionales Argument definieren:
\documentclass{article}
\usepackage{blindtext}
\newenvironment{mytable}[1][p]% oder was auch immer der Standardfall sein soll
{\begin{table}[#1]\footnotesize\sffamily}%
{\end{table}
}
\begin{document}
\blindtext
\begin{mytable}[h]
\caption{Eine Tabelle mit dem h-Parameter.}
\end{mytable}
\blindtext
\begin{mytable}
\caption{Eine Tabelle mit dem p-Parameter, der standardmäßig gesetzt wird.}
\end{mytable}
\end{document}
Matthias
Vielen Dank edico, Matthias und sofa-surfer!!
Sorry, aber eine letzte Frage hätte ich noch:
Wenn [htbp] sowieso der Standard bei LaTeX ist, wieso liest man das dann so oft in tex Dateien als Option?
Nochmals danke, habt mir sehr geholfen vor allem da ich mir nun in Zukunft das [htbp] für meine figure und table Umgebungen sparen kann :)
Liebe Grüße
ElGato
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.