PDA

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

edico
14-04-2006, 16:47
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

edico
15-04-2006, 14:02
... 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

ElGato
18-01-2007, 07:45
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

ElGato
19-01-2007, 06:54
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

voss
19-01-2007, 09:28
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

ElGato
19-01-2007, 15:54
Vielen Dank, habs endlich geschnallt :D

ElGato
24-01-2007, 00:35
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.

edico
24-01-2007, 09:45
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

ElGato
24-01-2007, 18:33
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