Hallo,

Hat ein Array Stretch Befehl für die ganze Tabelle Gültigkeit?

Open in Online-Editor
\renewcommand{\arraystretch}{2}

Ich finde leider keine Möglichkeit dies nur für eine bestimmte Anzahl von Zeilen zu verwenden.

Was wäre wenn ich nur für die ersten 5 Zeilen einen Array Stretch brauchen sollte?

Hochachtungsvoll, Stefan

(Ich bin neu ich hoffe trotzdem ihr seid so lieb und helft mir lol)

gefragt 20 Feb '15, 07:09

Steff1's gravatar image

Steff1
2112
Akzeptiert: 0%

bearbeitet 20 Feb '15, 11:18

saputello's gravatar image

saputello
18.4k22352

Willkommen auf TeXwelt! Könntest Du bitte zukünftig ein Minimalbeispiel einfügen? Also ein möglichst kurzes, aber komplettes Dokument, von \documentclass{...} bis zu \end{document}, was das Problem zeigt. Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung.

Außerdem sei darauf hingewiesen, dass wir hier Markdown-Syntax für die Textformatierung verwenden. Ich habe das schon gestern einmal in Deiner Frage umgesetzt, soweit ich die gewünschte Formatierung erahnen konnte.

(21 Feb '15, 08:06) saputello

\arraystretch ist der Skalierungsfaktor für die Höhe und Tiefe der \@arstrutbox. Diese wird am Anfang von \@array gesetzt. Wenn man also mitten in einer Tabelle den \arraystretch mit dem Resultat ändern möchte, dass die Zellenhöhe beeinflusst wird muss man auch \@arstrutbox neu setzen. Da der Inhalt jeder Zelle in einer eigenen Gruppe expandiert wird muss man das ganze noch \global machen.

Der Einfachheit halber habe ich dazu ein Makro \setarraystretch vorbeireitet, das als Argument den neuen \arraystretch nimmt. Hier ein Beispiel:

Open in Online-Editor
\documentclass{article}
\usepackage{siunitx,booktabs,chemmacros}

\makeatletter
\newcommand\setarraystretch[1]{%
  \gdef\arraystretch{#1}%
  \global\setbox\@arstrutbox\hbox{%
    \vrule \@height\arraystretch\ht\strutbox%
    \@depth\arraystretch \dp\strutbox%
    \@width\z@}%
}
\makeatother

\begin{document}

\sisetup{table-format=1.4}
\begin{tabular}{r@{\qquad}SSSSSS[table-format=4.0]}
  \toprule
  \setarraystretch{2}%
  & {$x_l$} & {$x_0$} & {$x_r$} & {$\nu_0$} & {$\Delta \nu$} & {$Q$}  \\
  \setarraystretch{1}%
  {Sample} & [\si{\milli\metre}] & [\si{\milli\metre}] & [\si{\milli\metre}]
  & [\si{\GHz}] & [\si{\kHz}] & [\si{1}] \\
  \midrule
  empty & 7.808 & 7.832 & 7.848 & 9.518 & 5.363 & 1775 \\
  \ch{DPPH} & 7.868 & 7.888 & 7.908 & 9.511 & 5.326 & 1786 \\
  \ch{CuSO4} & 7.876 & 7.896 & 7.920 & 9.510 & 5.852 & 1625 \\
  \ch{Mn^2+} & 7.808 & 7.832 & 7.852 & 9.518 & 5.898 & 1614 \\
  \bottomrule
\end{tabular}

\end{document}

alt text

Permanenter link

beantwortet 20 Feb '15, 10:46

Henri's gravatar image

Henri
10.0k31730

bearbeitet 20 Feb '15, 13:48

@Henri hat das in seiner Antwort schon sehr schön analysiert und ausgeführt. Ich würde jedoch eine leicht abweichende Definition empfehlen:

Open in Online-Editor
\documentclass{article}
\usepackage{siunitx,booktabs,chemmacros}

\makeatletter
\newcommand\setarraystretch[1]{%
  \noalign{\ifnum0=`}\fi
  \gdef\arraystretch{#1}%
  \global\setbox\@arstrutbox\hbox{%
    \vrule \@height\arraystretch\ht\strutbox%
           \@depth\arraystretch \dp\strutbox%
           \@width\z@}%
  \ifnum0=`{\fi}%
}
\makeatother

\begin{document}

\sisetup{table-format=1.4}
\begin{tabular}{r@{\qquad}SSSSSS[table-format=4.0]}
  \toprule
  \setarraystretch{2}
  & {$x_l$} & {$x_0$} & {$x_r$} & {$\nu_0$} & {$\Delta \nu$} & {$Q$}  \\
  \setarraystretch{1}%
  {Sample} & [\si{\milli\metre}] & [\si{\milli\metre}] & [\si{\milli\metre}]
  & [\si{\GHz}] & [\si{\kHz}] & [\si{1}] \\
  \midrule
  empty & 7.808 & 7.832 & 7.848 & 9.518 & 5.363 & 1775 \\
  \ch{DPPH} & 7.868 & 7.888 & 7.908 & 9.511 & 5.326 & 1786 \\
  \ch{CuSO4} & 7.876 & 7.896 & 7.920 & 9.510 & 5.852 & 1625 \\
  \ch{Mn^2+} & 7.808 & 7.832 & 7.852 & 9.518 & 5.898 & 1614 \\
  \bottomrule
\end{tabular}

\end{document}

Durch diese Form der Definition wird \setarraystretch nicht zu einem Teil der ersten Spalte, sondern wie \hline oder \cline quasi zwischen den Zeilen angewendet. Dadurch ist auch kein % mehr nach \setarraystretch{2} erforderlich, wenn in der ersten Spalte etwas steht (und diese beispielsweise linksbündig ausgerichtet ist).

Permanenter link

beantwortet 21 Feb '15, 08:05

saputello's gravatar image

saputello
18.4k22352

+1 Man kann bei meiner Definition auch \ignorespaces anhängen und sich die Prozente sparen.

(21 Feb '15, 11:00) Henri
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×6

Frage gestellt: 20 Feb '15, 07:09

Frage wurde angeschaut: 2,768 Mal

Zuletzt aktualisiert: 21 Feb '15, 11:00