Unter TeX Live 2015 ragt das Abkürzungsverzeichnis über den Rand hinaus. Es entsteht eine overfull hbox.

Ein Klick auf Öffne in Online-Editor zeigt, dass es mit TeX Live 2014 und damit auch etwas älterem KOMA-Skript aussieht wie erwartet.

Was kann getan werden, damit auch mit aktuellen KOMA-Script-Versionen das Abkürzungsverzeichnis wie vorher aussieht?

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{nomencl}
\setlength{\nomlabelwidth}{.20\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\makenomenclature
\begin{document}
\printnomenclature

\section{salsa Snake}
Die Abkürzung etc.\nomenclature{etc.}{et cetera} steht im Abkürzungsverzeichnis.
\end{document}

gefragt 17 Aug '15, 16:19

Johannes's gravatar image

Johannes
7.2k132759
Akzeptiert: 68%

Die Frage ist zum Archivieren gedacht, kein Support benötigt. Antworten sind jedoch sehr willkommen! Evtl. antworte ich auch selbst. Die Frage taucht in letzter Zeit ja öfter auf, nun kann verlinkt werden :-)

(17 Aug '15, 16:21) Johannes

Es gibt auch andere Fälle, wo man nicht unbedingt LaTeX-Befehle mit TeX-Befehlen mischen sollte. Mit \textwidth aus LaTeX statt \hsize aus plain TeX vermeidet man die Probleme.

(18 Aug '15, 02:45) Herbert
1

@Herbert: \textwidth ist aber bei mehrspaltigen Texten etwas ganz anderes als \hsize. Das eher passende \columnwidth ist (wie \hsize) auch erst aber \begin{document} gültig. Das Problem besteht also nicht nur darin, dass die eventuell nicht ganz korrekte Länge verwendet wird, sondern auch, dass diese zu einem zu frühen Zeitpunkt verwendet wird.

(18 Aug '15, 03:11) saputello

@herbert: Es scheint irgendwo ein Einführung/Tutorial zu geben, welche \hsize verwendet. In den letzten Wochen kam die Frage wiederholt auf, deshalb hier als Archivfrage, um schnell verlinken zu können.

(18 Aug '15, 03:37) Johannes

@saputello: sicher ist \textwidth etwas anderes als \hsize. Aber darum ging es mir gar nicht. Ohnehin ist der unterschied zwischen \textwidth, \linewidth und \columnwidth für den Anfänger etwas verwirrend.

(18 Aug '15, 04:29) Herbert

@Johannes: \hsize verwendet man beispielsweise in einer tabularx, wenn die X-Spalten unterschiedlich breit sein sollen.

(18 Aug '15, 04:30) Herbert
Ergebnis 5 von 6 Alle anzeigen

Die Länge \hsize wird offiziell erst von \begin{document} auf einen gültigen Wert gesetzt. Davor ist dessen Wert zufällig. Das war übrigens schon vor TeX Live 2015 so. Damals hat der Wert von \hsize nur zufällig oft etwas besser gepasst. Bei Verwendung von beispielsweise geometry konnte der Wert aber auch schon damals total falsch sein. Daher ist es schlicht ein Fehler \hsize bereits vor \begin{document} zum Setzen einer anderen Länge zu verwenden. Korrekt wäre hingegen beispielsweise:

Open in Online-Editor
\documentclass{scrartcl}
\usepackage{nomencl}
\AtBeginDocument{\setlength{\nomlabelwidth}{.20\columnwidth}}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\makenomenclature
\begin{document}
\printnomenclature

\section{salsa Snake}
Die Abk\"urzung etc.\nomenclature{etc.}{et cetera} steht im Abk\"urzungsverzeichnis.
\end{document}

Ich habe dabei auch gleich \hsize durch \columnwidth ersetzt, weil das offiziell die Spaltenbreite ist (bei einspaltigen Texten entspricht \columnwidth gleichzeitig \textwidth), während \hsize eine von der aktuellen Umgebung abhängige, mehr oder weniger interne Arbeitslänge von TeX ist.

Mit \AtBeginDocument wird die Zuweisung an die Länge \nomlabelwidth auf einen Zeitpunkt innerhalb \begin{document} verschoben, zu dem bereits alle Längen für Satzspiegel und Ränder initialisiert sind.

Dass dieser Fehler nun tatsächlich auftritt liegt übrigens darin, dass typearea die Länge \hsize nicht mehr für interne Berechnungen verwendet und deshalb nicht mehr zufällig einen manchmal passenden Wert besitzt. Ein ähnlicher Bug mit zu früher Verwendung von \hsize befindet sich übrigen im Paket glossaries. Im zugehörigen Bug-Report gibt es auch ein Beispiel, das zeigt, dass die Verwendung von \hsize vor \begin{document} schon immer falsch war.


Hier noch ein Beispiel, in dem auch mit älteren Versionen von TeX Live deutlich zu sehen ist, dass bei der falschen Verwendung von .20\hsize in der Dokumentpräambel die Labelbreite eben nicht unbedingt ein Fünftel der Textspaltenbreite ist und das sogar mit einer Standardklasse, also ganz ohne KOMA-Script:

Open in Online-Editor
\documentclass[a4paper]{article}
\usepackage{nomencl}
\usepackage{showframe}
\usepackage{geometry}
\setlength{\nomlabelwidth}{.20\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\makenomenclature
\begin{document}
\printnomenclature

\noindent\rule{.20\hsize}{1pt} Der Strich links sind \verb|.20\hsize|.

\section{salsa Snake}
Die Abk\"urzung etc.\nomenclature{etc.}{et cetera} steht im Abk\"urzungsverzeichnis.
\end{document}

Es hatte also wirklich nur den Anschein, dass man das so machen darf.

Permanenter link

beantwortet 18 Aug '15, 01:34

saputello's gravatar image

saputello
18.4k22352

bearbeitet 18 Aug '15, 03:26

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:

×108
×73
×3

Frage gestellt: 17 Aug '15, 16:19

Frage wurde angeschaut: 2,658 Mal

Zuletzt aktualisiert: 18 Aug '15, 04:32