9
4

Bei Abbildungen, Tabellen, minipages, parboxen etc. erfolgt die Breitenangabe oft als Bruchteil von \textwidth oder \linewidth, also zum Beispiel 0.8\linewidth. Gibt es einen Unterschied zwischen diesen beiden Breiten? Welchen? Gibt es noch ähnliche Befehle?

gefragt 05 Dez '13, 10:45

esdd's gravatar image

esdd
14.2k53251
Akzeptiert: 87%


  • \textwidth ist die komplette Breite des Textbereichs auf einer Seite. In einem einspaltigen Dokument ist das gleich groß wie \columnwidth. In einer minipage wird dieser Parameter auf die aktuelle Breite angepasst.
  • \columnwidth ist die Textbreite einer Spalte. In einem mehrspaltigen Dokument ist das dann natürlich weniger als \textwidth. In einer minipage wird dieser Parameter auf die aktuelle Breite angepasst.
  • \linewidth ist die Länge einer Textzeile abhängig von der aktuellen Umgebung. In normalem Text ist sie gleich lang wie \columnwidth. In einer Liste, einer \parbox (und deshalb auch in p-Spalten von Tabellen), einer minipage, u.ä. gibt \linewidth dann den Wert der aktuell verfügbaren Breite an.

Das folgende Dokument verdeutlicht das für normalen Text, eine minipage, eine \parbox, eine itemize und eine mdframed Umgebung:

\documentclass[parskip=half-,
  %twocolumn
  ]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[vmargin=2.5cm]{geometry}
\setlength\fboxsep{0pt}
\usepackage{xcolor}
\usepackage{mdframed}

\newcommand*\showwidth[1]{%
  \textcolor{blue}{\rule{\csname#1\endcsname}{1pt}}\newline
  \texttt{\textbackslash#1}: \expandafter\the\csname#1\endcsname
  \par
}

\begin{document}

% Rahmen für Spalte und Textbereich zeichnen
\smash{%
  \makebox[0pt][l]{\fbox{\parbox[t][\textheight]{\textwidth}{\strut}}}%
  \makebox[0pt][l]{\fbox{\parbox[t][\textheight]{\columnwidth}{\strut}}}%
  }%

\minisec{Normaler Text}
\showwidth{textwidth}
\showwidth{columnwidth}
\showwidth{linewidth}

\medskip
\fbox{%
  \begin{minipage}{6cm}
    \minisec{minipage (Breite 6\,cm)}
    \showwidth{textwidth}
    \showwidth{columnwidth}
    \showwidth{linewidth}
    \bigskip
  \end{minipage}%
}

\medskip
\fbox{%
  \parbox{6cm}{%
    \minisec{parbox (Breite 6\,cm)}
    \showwidth{textwidth}
    \showwidth{columnwidth}
    \showwidth{linewidth}
    \bigskip
  }%
}

\medskip
\minisec{itemize}
\begin{itemize}
  \item \showwidth{textwidth}
        \showwidth{columnwidth}
        \showwidth{linewidth}
\end{itemize}

\medskip
\begin{mdframed}[linecolor=red,userdefinedwidth=6cm]
  \minisec{mdframed (Breite 6\,cm)}
    \showwidth{textwidth}
    \showwidth{columnwidth}
    \showwidth{linewidth}
    \bigskip
\end{mdframed}

\end{document}

alt text

Das gleiche mit twocolumn als Klassenoption:

alt text

Auf TeX.sx sind weitere Antworten und Beispiele zu finden.

Permanenter link

beantwortet 05 Dez '13, 13:14

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 06 Dez '13, 08:26

esdd's gravatar image

esdd
14.2k53251

@Clemens: Werden \textwidth und \columnwidth nur in minipage-Umgebungen angepasst oder gibt es noch andere Umgebungen oder Befehle die diese Größen anpassen? (Ich vermute nicht.) \linewidth finde ich auch in Tabellen sehr nützlich, z.B. wenn Abbildungen in eine p- oder gar X-Spalte gesetzt werden sollen.

(05 Dez '13, 16:38) esdd

@esdd Nicht dass ich wüsste... stimmt. \linewidth ist immer dann gut, wenn man auf die aktuell verfügbare Textbreite zugreifen möchte/muss (funktioniert nicht in Lowlevel-Boxen wie \hbox to 6cm{\the\linewidth})

(05 Dez '13, 18:38) Clemens

@Qrrbrbirlbel: Wenn ich es richtig verstehe, dann sagt egreg in seiner Antwort auf TeX.sx, dass innerhalb von \parbox nicht nur \linewidth sondern auch \textwidth und \columnwidth angepasst werden. Dem ist aber nicht so, wie auch in obigem Beispiel zu sehen ist.

(06 Dez '13, 08:46) esdd
2

@esdd: LaTeX muss sich irren! Wenn egreg das sagt, dann muss es stimmen :p

(06 Dez '13, 08:49) Clemens

@Clemens Er hat es aber trotzdem korrigiert ;-)

(08 Dez '14, 19:01) esdd
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:

×45
×6

Frage gestellt: 05 Dez '13, 10:45

Frage wurde angeschaut: 20,646 Mal

Zuletzt aktualisiert: 08 Dez '14, 19:01