Seite 1 von 1

Tabellen dokumentweit zentrieren und mit kleinerer Schrift

Verfasst: Sa 10. Mär 2012, 15:34
von peekay
Ich möchte in einem umfangreichen Dokument die Formatierung der Tabellen zentral bestimmen. Die Tabellen werden teilweise aus verschiedenen Quellen eingebunden. Das macht es umständlich, jede dieser Dateien einzeln anzupassen. Die Tabellen sollen alle zentriert (\centering) sein und eine einen Grad kleinere Schrift verwenden (\small). Hier mein Minimalbeispiel:
\documentclass[12pt,a4paper]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{booktabs} % bessere Darstellung von Tabellen in Büchern
\usepackage{caption}

\KOMAoptions{captions=tableheading} % Tabellen nicht im Fuß, sondern im Kopf benamsen
\setkomafont{caption}{\small}
\setkomafont{captionlabel}{\sffamily\bfseries}

\author{peekay}
\title{Tabellenformat zentral steuern}
\begin{document}
\chapter{Eins}

\begin{table}
\caption{Tabellenüberschrift}
\centering
\small
\begin{tabular}{lr}
\toprule
\textbf{Buchstabe} 	& \textbf{Zahl} \\
\midrule
A Grauwert			& 1 \\
B der				& 2 \\
C Schrift			& 3 \\
\bottomrule
\end{tabular}
\end{table}

\blindtext[4]

\chapter{Zwei}

%\input{sas/sqlAnzahlFallJeJahr_Daten}
% ...
% ...

\end{document}
Bei der ersten Tabelle habe ich von Hand hineingeschrieben, wie diese formatiert sein soll. Für die eingebundenen Tabellen möchte ich das gerne an zentraler Stelle erledigen. Ich habe das Forum bereits durchforstet, aber keine positive Antwort gefunden. Sollten sich diese Einstellungen nicht zentral vornehmen lassen?

Danke im Voraus!
peekay

Verfasst: Sa 10. Mär 2012, 18:16
von bloodworks
Du kannst zB table umdefinieren. Dabei kannst du die macro Notation verwenden, musst aber natürlich aufpassen, dass sich das ganze nicht selbst aufruft. Das würde sonst in einer endlos rekursion enden. (Kannst du ausprobieren indem du die \oldtable durch \table) erstetzts
\documentclass{scrbook} 
\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{blindtext} 
\usepackage{booktabs, multido, xcolor} % um das bsp nicht zu groß werden zu lassen
% und um zu zeigen dass es wirklich tut und wirklich lokal ist

\KOMAoptions{captions=tableheading} % Tabellen nicht im Fuß, sondern im Kopf benamsen 
\setkomafont{caption}{\small} 
\setkomafont{captionlabel}{\sffamily\bfseries} 


\let\oldtable\table
\let\endoldtable\endtable
\renewenvironment{table}{\oldtable \small \color{blue} \centering}{\endoldtable}



\begin{document} 
\chapter{Eins} 
\blindtext[4] 
\multido{}{5}{\begin{table} 
\caption{Tabellenüberschrift} 
\begin{tabular}{lr} 
\toprule 
\textbf{Buchstabe}    & \textbf{Zahl} \\ 
\midrule 
 A Grauwert         & 1 \\ 
 B der            & 2 \\ 
 C Schrift         & 3 \\ 
\bottomrule 
\end{tabular} 
\end{table}\blindtext }

\blindtext[4] 

\end{document} 
  

Verfasst: Sa 10. Mär 2012, 19:59
von peekay
Vielen Dank bloodworks!

Das hat schon einmal geklappt. Ich habe noch longtable und sidewaystable im Dokument.
\let\oldsidewaystable\sidewaystable
\let\endoldsidewaystable\endsidewaystable
\renewenvironment{sidewaystable}{\oldsidewaystable \small \color{red} \centering}{\endoldsidewaystable}
funktioniert für sidewaystable.
Bei longtable bin ich leider gescheitert, das in der gleichen Weise umzudefinieren.

peekay

PS: Gute Idee, die Änderungen farbig zu markieren!

Verfasst: Sa 10. Mär 2012, 20:39
von bloodworks
Ja also ich verstehe die Definition von longtable auch nicht so ganz. Aber man kann das auch anderst rum machen. Nur benötigen wir da eine weitere Gruppe.
\documentclass{scrbook} 
\usepackage[latin1]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{blindtext} 
\usepackage{booktabs, multido, xcolor} % 


\let\oldtable\longtable
\let\endoldtable\endlongtable

\renewenvironment{longtable}{\begingroup\small\centering\color{blue}\oldtable }{\endoldtable\endgroup}



\begin{document} 
\chapter{Eins} 
\blindtext[4] 

\begin{longtable}{ll} 
1 & 2\\
1 & 2\\
1 & 2\\
1 & 2\\
1 & 2\\
\end{longtable}%


\blindtext[4] 

\end{document} 
  

Verfasst: Sa 10. Mär 2012, 20:53
von peekay
Wunderbar! - Du hast den Tag gerettet! - Danke!

Schade, dass es nichts vergleichbares wie das Paket caption für die Legenden gibt. Die Umgebungen umzudefinieren ist abenteuerlich - aber viel besser, als 'zig Dateien anzupassen.