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, 16:45

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%


  • \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, 19:14

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 06 Dez '13, 14:26

esdd's gravatar image

esdd
17.8k284257

@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, 22: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})

(06 Dez '13, 00:38) cgnieder

@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, 14:46) esdd
2

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

(06 Dez '13, 14:49) cgnieder

@Clemens Er hat es aber trotzdem korrigiert ;-)

(09 Dez '14, 01:01) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×52
×10

gestellte Frage: 05 Dez '13, 16:45

Frage wurde gesehen: 71,049 Mal

zuletzt geändert: 09 Dez '14, 01:01