PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bergenzte Definition von Abständen zwischen Text und Formeln



msthab
12-02-2015, 07:53
Hallo,

ich möchte in verschiedenen Tabellen den Abstand zwischen Text und Formel kleiner haben. Das geht ohne Probleme mit:
\setlength\abovedisplayshortskip{0pt}
\setlength\belowdisplayshortskip{0pt}
\setlength\abovedisplayskip{2pt}
\setlength\belowdisplayskip{2pt}

Ich möchte aber, dass diese Definitionen NUR auf bestimmte Bereiche beschränkt bleiben (in meinem Fall die Tabellen) und danach wieder die alten Definitionen gelten. Nun könnte ich nach den Tabellen wieder die Längen zurücksetzen. Ich habe aber gelesen, dass die Standardwerte von den verwendeten Schriftgrößen u.ä abhängen, d.h. für versch. Dokumente können diese unterschiedlich sein, oder?

Daher meine Fragen:

Wie kann ich die "Standard-Einstellungen" auslesen?


gibt es eine elegante Lösung, z.B. mit "environment"?


Vielen Dank!

Manfred


Hier das Minimalbeispiel



% Aus Lynx exportiert und danach manuell reduziert
\documentclass[ngerman,english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{array}
\usepackage{babel}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\begin{document}

Hier steht Text und eine Formel

\begin{equation}
\cdot\frac{\mathrm{d^{2}}q(t)}{\mathrm{d}t^{2}}+R\ cdot\frac{\mathrm{d}q(t)}{\mathrm{d}t}+\frac{1}{C} \cdot q(t)=0
\end {equation}
Zwischen Text und Formel ist der normale Abstand.

Für die folgende Tabelle werden nun kleinere Abstände zwischen Text und Formeln definiert:

% Definition der neuen Abstände
\setlength\abovedisplayshortskip{0pt}
\setlength\belowdisplayshortskip{0pt}
\setlength\abovedisplayskip{2pt}
\setlength\belowdisplayskip{2pt}%

% Es folgt die Tabelle

\begin{tabular}{|>{\centering}m{0.2\textwidth}|>{\centering}m{0.33\textwidth}|>{\centering}m{0.33\textwidth}|}
\hline
& Mechanische Schwingung & Elektromagnetische Schwingung\tabularnewline
\hline
\hline
Schwingende Größe & Auslenkung
\[ x(t) \] & Ladung des Kondensators
\[
q(t)
\]
\tabularnewline
\hline
Ableitung nach der Zeit & Geschwindigkeit
\[
v=\frac{\mathrm{d}x(t)}{\mathrm{d}t}
\]
& Strom
\[
i=\frac{\mathrm{d}q(t)}{\mathrm{d}t}
\]
\tabularnewline
\hline
\end{tabular}


Nach der Tabelle sollen \textbf{automatisch} wieder die normalen Abstände zwischen Formel und Text gelten:
\begin{equation}
\cdot\frac{\mathrm{d^{2}}q(t)}{\mathrm{d}t^{2}}+R\ cdot\frac{\mathrm{d}q(t)}{\mathrm{d}t}+\frac{1}{C} \cdot q(t)=0
\end{equation}
Was ist dafür zu tun?


\end{document}

klops
12-02-2015, 08:57
Das beste ist, Gleitumgebungen für Tabellen zu verwenden. Dann kannst Du die Änderungen einfach an den Anfang der table-Umgebung stellen:
\documentclass[ngerman,english]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}% Verwende für neue Dokumente besser utf8 als latin9
\usepackage{array}
\usepackage{babel}
\usepackage{parskip (http://www.ctan.org/pkg/parskip)}% siehe l2tabu (http://www.ctan.org/pkg/l2tabu)
\setlength{\parskip}{\medskipamount}
\usepackage{booktabs (http://www.ctan.org/pkg/booktabs)}
\begin{document}

Hier steht Text und eine Formel

\begin{equation}
\cdot\frac{\mathrm{d^{2}}q(t)}{\mathrm{d}t^{2}}+R\ cdot\frac{\mathrm{d}q(t)}{\mathrm{d}t}+\frac{1}{C} \cdot q(t)=0
\end {equation}
Zwischen Text und Formel ist der normale Abstand.

Für die Tabelle~\ref{tab:test} wwurden kleinere Abstände zwischen Text und Formeln definiert.

\begin{table}
% Definition der neuen Abstände
\setlength\abovedisplayshortskip{0pt}
\setlength\belowdisplayshortskip{0pt}
\setlength\abovedisplayskip{2pt}
\setlength\belowdisplayskip{2pt}%

% Es folgt die Tabelle

\begin{tabular}{>{\centering}m{0.2\textwidth}>{\centering}m{0.33\textwidth}>{\centering}m{0.33\textwidth}}
\toprule
& Mechanische Schwingung & Elektromagnetische Schwingung\tabularnewline
\midrule
Schwingende Größe & Auslenkung
\[ x(t) \] & Ladung des Kondensators
\[
q(t)
\]
\tabularnewline
\midrule% würde ich weglassen
Ableitung nach der Zeit & Geschwindigkeit
\[
v=\frac{\mathrm{d}x(t)}{\mathrm{d}t}
\]
& Strom
\[
i=\frac{\mathrm{d}q(t)}{\mathrm{d}t}
\]
\tabularnewline
\bottomrule
\end{tabular}
\caption{Testtabelle}
\label{tab:test}
\end{table}

Außerhalb der Tabelle sollen \emph{automatisch} wieder die normalen Abstände
zwischen Formel und Text gelten:
\begin{equation}
\cdot\frac{\mathrm{d^{2}}q(t)}{\mathrm{d}t^{2}}+R\ cdot\frac{\mathrm{d}q(t)}{\mathrm{d}t}+\frac{1}{C} \cdot q(t)=0
\end{equation}
Das geht mit Gleitumgebung ganz einfach.

\end{document}
Die wichtigen Änderungen habe ich rot gemacht. Die empfehlenswerten weiteren Änderungen habe ich grün gefärbt. Die unwichtigen Änderungen sind nicht gefärbt.

Wenn Du auf nicht gleitende Tabellen bestehst, kannst Du auch in Deinem Beispiel an den Stellen, an denen ich die table-Umgebung eingefügt habe, einfach eine Gruppe öffnen (\begingroup) und schließen (\endgroup).

FelixT
12-02-2015, 16:53
Da Du das sicher bei allen Tabellen konsistent haben möchtest, und es auch nicht stört, wenn keine Formel enthalten sind, hier eine allgemeine Redefinition:


\usepackage{ifthen}
\makeatletter
\renewenvironment{table}[1][]{%
\ifthenelse{\equal{#1}{}}{%
\@float{table}
}{%
\@float{table}[#1]%
}%
\setlength\abovedisplayshortskip{0pt}
\setlength\belowdisplayshortskip{0pt}
\setlength\abovedisplayskip{2pt}
\setlength\belowdisplayskip{2pt}
}{%
\end@float
}
\makeatother

Felix

klops
12-02-2015, 17:10
Vorsicht! Diese Änderung setzt eine bestimmte Definition von table voraus! Je nach verwendeter Klasse und verwendeten Paketen kann man so einiges kaputt machen!