zu großer Zeilenabstand im Inhaltsverzeichnis

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


AndreasDA

zu großer Zeilenabstand im Inhaltsverzeichnis

Beitrag von AndreasDA »

Hallo zusammen und bitte entschuldigt, dass ich euch schon wieder auf die Nerven gehen muss.

Meiner Professorin ist im Kolloquium aufgefallen, dass LaTeX im Inhaltsverzeichnis bei Zeilenumbrüchen den selben Zeilenabstand verwendet, wie bei "normalen" Gliederungsebenen.

Das gefällt ihr nicht! Mir persönlich ist das zwar vorher aufgefallen, ich fand es aber nicht sonderlich dramatisch, zumal der Rest (Schriftbild, Seitenlayout, Textsatz) von LaTeX super ist.

Nun ja, in Erwartung einer guten Note möchte ich nun auch diesem Problem auf den Grund gehen und benötige dafür eure Hilfe.

Durch die KOMA-Klassen und den KOMA-Guide hab ich von Anfang an die Finger von \baselinstrech gelassen und statt dessen, wie im scrguide auf S. 57 beschrieben, setspace und \onehalfspacing verwendet.

Was mit diesem typearea gemeint ist verstehe ich allerdings nicht so ganz...

Vielleicht kann mich jemand mal auf meine Fehler aufmerksam machen und mir ein wenig helfen, denn soganz blicke ich momentan nicht mehr durch.

Vielen Dank und liebe Grüße

Andreas

P.S.: ich hatte vor einiger Zeit mal einen Beitrag gepostet, bei dem ihr mir so toll geholfen hattet. Habe dann nochmal geantwortet, aber leider scheint das Forum meinen Beitrag nicht übernommen zu haben.

An dieser Stelle also nochmal Vielen Dank an alle, die mir bisher hier geholfen haben!

Minimalbeispiel:
\documentclass[a4paper, 12pt, oneside, liststotoc, bibtotoc, headsepline,
pointlessnumbers]{scrartcl}
\usepackage{scrpage2}

\pagestyle{scrheadings} %Seitenstil scrheadings verwenden
\automark[section]{chapter} %Sektion und Kapitel für Headmark
\setheadsepline{.4pt} %Separate Linie im Kopf
\clearscrheadfoot %Kopf und Fußzeile löschen
\ohead[\pagemark]{\pagemark} %Seitenzahl im Kopf -> innen
\ihead[\headmark]{\headmark} %Headmark im Kopf -> außen
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}

\def\tablenotes{\vskip2pt\footnotesize} %Def.Table-Notes
\let\endtablenotes\relax

\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{tabularx}
\usepackage{calc}
\usepackage[left=4.0cm, right=3.cm, top=2cm, bottom=1.5cm]{geometry}
\usepackage{setspace}
\onehalfspacing
\begin{document}
\tableofcontents
\newpages
\section{Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test}
\subsection{Dies ist ein Test2}
Ja hier kommt dann der Text, den ich jetzt mir mal nur so aus den Fingern sauge. Ansonsten kommt es ja nur auf das Inhaltsverzeichnis an.
\subsection{Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test Dies ist ein Test3}
Auch hier steht dann wieder Text!
\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

In der KOMA-Script-Anleitung steht ausdrücklich, dass man Titelei und Verzeichnisse nicht mit \onehalfspacing setzen sollte (siehe scrguide.pdf, Ausgabe 2011-04-02, Seite 42f und Seite 57). Hier eine Alternative, die nur das Inhaltsverzeichnis betrifft:
\documentclass[a6paper,ngerman]{scrartcl}
\usepackage{babel,blindtext}
\usepackage{setspace}
\onehalfspacing
\BeforeStartingTOC[toc]{\singlespacing}
\begin{document}
\tableofcontents
\blinddocument
\end{document}
Die Anweisung \BeforeStartingTOC ist in der KOMA-Script-Anleitung, scrguide.pdf dokumentiert.

Übrigens und nur für den Fall, dass es Dich interessiert: Dein Beispiel produziert Fehlermeldungen und ist damit als vollständiges Minimalbeispiel (siehe meine Signatur) untauglich. Außerdem solltest Du einmal die Log-Datei Deines Dokuments anschauen und die deprecated-Warnungen beachten. Die \setheadsepline-Anweisung ist ebenfalls überflüssig.

AndreasDA

Beitrag von AndreasDA »

Hallo KOMA,

vielen Dank für die schnelle Antwort.

Ich habe deinen Befehl ausprobiert und er löst auch (augenscheinlich mein Problem). Nur gefällt mir das Ergebnis nicht besonders, da nun das Inhaltsverzeichnis sehr "zusammengequetscht" aussieht.

Gibt es vielleicht eine Möglichkeit, zwischen den einzelnen Gliederungspunkte einen kleinen Zeilenabstand einzufügen, während in Zeilen mit einem Zeilenumbruch ein einzeiliger Zeilenabstand kommt?

Das das Minimalbeispiel Fehler verursacht war mir nicht klar. Ich arbeite noch nicht so lange mit LaTeX und habe mir das alles aus verschiedenen Quellen zusammen geschustert. Daher habe ich auch den Tipp für die Gestaltung der Kopfzeile und da war diese Prozedur (mit \setheadsepline) nunmal so angegeben.

Da kommt dann auch schon meine nächste Frage ins Spiel: Was genau soll ich mir denn in der Log-Datei anschauen und was hat es mit diesen deprecated-Warnungen auf sich?
Ok, ihr alten Hasen werdet euch jetzt bestimmt die Stirn auf den Schreibtisch schlagen vor soviel Unwissenheit und Ignoranz, aber ich kann mit diesen Begriffen momentan leider nichts anfangen.

Ich stell nochmal ein modifiziertes Minimalbeispiel hierein und hoffe das das keine Fehlermeldungen produziert und funktioniert...
\documentclass[a4paper, 12pt, oneside, liststotoc, bibtotoc, headsepline,
pointlessnumbers]{scrartcl}
\usepackage{scrpage2}

\pagestyle{scrheadings} %Seitenstil scrheadings verwenden
\automark[section]{chapter} %Sektion und Kapitel für Headmark
\setheadsepline{.4pt} %Separate Linie im Kopf
\clearscrheadfoot %Kopf und Fußzeile löschen
\ohead[\pagemark]{\pagemark} %Seitenzahl im Kopf -> innen
\ihead[\headmark]{\headmark} %Headmark im Kopf -> außen
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[ansinew]{inputenc}

\def\tablenotes{\vskip2pt\footnotesize} %Def.Table-Notes
\let\endtablenotes\relax

\usepackage{graphicx}
\usepackage{pdfpages}
\usepackage{tabularx}
\usepackage{calc}
\usepackage[left=4.0cm, right=3.cm, top=2cm, bottom=1.5cm]{geometry}
\usepackage{setspace}
\onehalfspacing

\setkomafont{sectioning}{\bfseries}
\usepackage{caption}
\usepackage{array}
\usepackage{booktabs}
\usepackage{eurosym}
\usepackage{lineno}
\usepackage{soul}

\usepackage{url}
\usepackage{hyperref} 
\usepackage{apacite}
\usepackage{rotating}

\usepackage{nomencl}
\let\abbrev\nomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature

\clubpenalty = 10000
\widowpenalty = 10000 \displaywidowpenalty = 10000

\usepackage{hyperref}
\makeatletter
\renewcommand*{\toclevel@paragraph}{4}%
\renewcommand*{\toclevel@subparagraph}{5}%
\makeatother

\begin{document}
\tableofcontents
\newpage
\section[Entwicklung von Lehr-/Lernmaterialien]{Entwicklung von
Lehr-/Lernmaterialien in Form eines Baukastensystems für
unterschiedliche Niveaustufen}\label{chp:Baukasten}
Im Folgenden widmet sich diese Arbeit der Aufgabe, Lehr-\,/\,Lernmaterialien für
den betriebswirtschaftlichen Unterricht in unterschiedlichen Niveaustufen zu
entwickeln. Diesbezüglich wird zunächst der Begriff
\glqq{}Lernen\grqq{} näher beschrieben, um anschließend festzulegen, was unter
Lehr- bzw. Lernmaterial verstanden werden soll.
\subsection{Lernen als aktiver Konstruktionsprozess}
Die Aufgabe der Schule liegt darin Lernumgebungen bereitzustellen, in denen
Schüler lernen kann.
subsection{Der Begriff Lehr-/Lernmaterial}
\subsubsection{Lernen und Lehren als handlungsorientierter Fähigkeitenerwerb}
Bisher nahm in der
wissenschaftlichen Literatur die Konstruktion von Lehr-\,/\,Lernmaterialien
keinen großen Raum ein, da das Hauptaugenmerk auf der methodischen Gestaltung
des Unterrichts lag [\dots]
\end{document}
Das ist nun die Präambel, wie ich sie in meinem Dokument stehen habe. Vielleicht geht es damit jetzt besser.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

AndreasDA hat geschrieben:Nur gefällt mir das Ergebnis nicht besonders, da nun das Inhaltsverzeichnis sehr "zusammengequetscht" aussieht.
Das sieht (für Dich) nur so aus, weil ich im Beispiel ein sehr kleines Papierformat verwendet habe. Außerdem bist Du derzeit an den eineinhalbzeiligen Satz gewöhnt. Das spielt ebenfalls eine Rolle.
AndreasDA hat geschrieben:Gibt es vielleicht eine Möglichkeit, zwischen den einzelnen Gliederungspunkte einen kleinen Zeilenabstand einzufügen, während in Zeilen mit einem Zeilenumbruch ein einzeiliger Zeilenabstand kommt?
Könnte man (beispielsweise mit Hilfe des Pakets tocstyle). Würde Dich aber überfordern, vermutlich Deiner Betreuerin auch nicht gefallen und lohnt deshalb den Aufwand kaum.
AndreasDA hat geschrieben:Das das Minimalbeispiel Fehler verursacht war mir nicht klar.
Wenn Du es selbst genau so ausprobiert hättest, hätte Dir das aber eigentlich klar werden müssen. Fehler melden eigentlich alle LaTeX-Editoren an den Anwender (bei Warnungen sieht das etwas anders aus).
AndreasDA hat geschrieben:Ich arbeite noch nicht so lange mit LaTeX und habe mir das alles aus verschiedenen Quellen zusammen geschustert.
Dann würde ich Dir gerne empfehlen, die Dinge, die Du einbaust nur dann einzubauen, wenn Du sie wirklich brauchst. Außerdem solltest Du die verwendeten Befehle in den Anleitungen der Pakete nachlesen. Wie man an die Anleitungen kommt, ist beispielsweise in http://www.golatex.de/wichtige-hinweise ... t4512.html erklärt. Desweiteren lege ich Dir l2tabu (siehe zweite Zeile meiner Signatur) nahe.
AndreasDA hat geschrieben:Daher habe ich auch den Tipp für die Gestaltung der Kopfzeile und da war diese Prozedur (mit \setheadsepline) nunmal so angegeben.
Und das ist nun Grund genug, den Hinweis des Paketautors, der Dir sagt, dass die Zeile überflüssig ist, zu ignorieren? Das macht es mir natürlich schwer, Dir weiter zu helfen.
AndreasDA hat geschrieben:Da kommt dann auch schon meine nächste Frage ins Spiel: Was genau soll ich mir denn in der Log-Datei anschauen und was hat es mit diesen deprecated-Warnungen auf sich?
Was genau verstehst Du denn daran nicht? Die Warnungen in der Log-Datei sind eigentlich eindeutig, beispielsweise:
Class scrartcl Warning: You've used obsolete option `liststotoc'.
(scrartcl)              Usage of this option indicates an old document and
(scrartcl)              changes compatibility level using
(scrartcl)              `listof=totoc,version=first'.
(scrartcl)              If you don't want this, you should simply replace
(scrartcl)              usage of option `liststotoc' by `listof=totoc'.
spätestens, wenn Du Dir mal die Mühe machst, die Optionen in der KOMA-Script-Anleitung, beispielsweise scrguide.pdf Ausgabe 2011-04-02, nachzuschlagen, solltest Du zumindest verstehen, was da empfohlen wird.
AndreasDA hat geschrieben:Ich stell nochmal ein modifiziertes Minimalbeispiel hierein und hoffe das das keine Fehlermeldungen produziert und funktioniert...
Du solltest die Anleitung zum Thema vollständiges Minimalbeispiel noch einmal gründlich lesen. Das ist jedenfalls keins. Ich kann nur vermute, dass Du stattdessen ein Codemolloch angibst, damit man Dir das auseinander nimmt. Also gut:
AndreasDA hat geschrieben:
\documentclass[a4paper, 12pt, oneside, liststotoc, bibtotoc, headsepline,
pointlessnumbers]{scrartcl}
Mehr als die Hälfte der Optionen ist entweder überflüssig, weil sie der Voreinstellung bei scrartcl entspricht oder überholt. Hier hätten Anleitung und Hinweise in der Log-Datei geholfen.
AndreasDA hat geschrieben:
\usepackage{scrpage2}

\pagestyle{scrheadings} %Seitenstil scrheadings verwenden
\automark[section]{chapter} %Sektion und Kapitel für Headmark
\setheadsepline{.4pt} %Separate Linie im Kopf
\clearscrheadfoot %Kopf und Fußzeile löschen
\ohead[\pagemark]{\pagemark} %Seitenzahl im Kopf -> innen
\ihead[\headmark]{\headmark} %Headmark im Kopf -> außen
Da scrartcl keine Kapitel (\chapter) hat, ist es unsinnig bei \automark als Argument chapter anzugeben. Desweiteren hat Du ein einseitiges Dokument, also gar keine linke und rechten Seiten. In der Regel ist es deshalb auch nicht sinnvoll, zwei Gliederungsebenen bei \automark anzugeben. Hier wärst Du mit der Option automark beim Laden von scrpage2 vermutlich besser gefahren.

Seitenmarke und Seitenzahl im Kopf entspricht darüber hinaus der Option standardstyle. Diese unterscheidet sich dann nur noch in dem unsäglichen Versalsatz, den man ebenfalls per Option wieder abschalten kann. Ich brauche damit statt obigem nur ganze zwei Zeilen:
\usepackage[automark,standardstyle,markusedcase]{scrpage2}
\pagestyle{scrheadings} %Seitenstil scrheadings verwenden
AndreasDA hat geschrieben:
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
Das sind mehr Gliederungsebenen als man überhaupt verwenden sollte. Stilistisch ist das kein geglückter Wurf.
AndreasDA hat geschrieben:
\def\tablenotes{\vskip2pt\footnotesize} %Def.Table-Notes
\let\endtablenotes\relax
Das stammt aus einem plain-TeX-Dokument oder von jemandem, der sich nicht wirklich auskennt. Umgebungen definiert man bei LaTeX mit \newenvironment. Darüber hinaus wird hier die Schriftgrößenänderung am Umgebungsende zu früh beendet, nämlich, bevor der Absatz beendet ist. (Für die fortgeschrittenen Anwender der Hinweis: \endtablenotes explizit auf \relax zu setzen, ist in LaTeX außerdem auch noch überflüssig. Umgebungsende müssen gar nicht definiert sein.)
Das führt dann im Zweifelsfall zu einem falschen Zeilenabstand. Besser wäre:
\newenvironment{tablenotes}{%
  \par
  \vspace{2pt}
  \footnotesize
}{%
  \par
}
AndreasDA hat geschrieben:
\usepackage{setspace}
\onehalfspacing
Sehe ich so häufig, halte ich aber für ungünstig. So klemmt sich im Eifer des Gefechts irgendwann Code zwischen die beiden Zeilen. Das Paket kennt eine gleichnamig Option:
\usepackage[onehalfspacing]{setspace}
AndreasDA hat geschrieben:
\setkomafont{sectioning}{\bfseries}
Funktioniert führt aber zu der Meldung
Package scrkbase Info: You've told me to redefine the font selection of the
(scrkbase)             element `sectioning' that is an alias of element
(scrkbase)             `disposition' on input line 23.
Man kann sich die sparen, wenn man stattdessen das in der Anleitung dokumentierte Elemente verwendet:
\setkomafont{disposition}{\bfseries}
AndreasDA hat geschrieben:
\usepackage{caption}
\usepackage{array}
\usepackage{booktabs}
\usepackage{eurosym}
\usepackage{lineno}
\usepackage{soul}

\usepackage{url}
\usepackage{hyperref} 
\usepackage{apacite}
\usepackage{rotating}

\usepackage{nomencl}
\let\abbrev\nomenclature
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.25\hsize}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature
Grundsätzlich solltest Du davon nur das behalten, was Du wirklich auch verwendest. Das Paket url wird übrigens automatisch von hyperref geladen und wird deshalb schon einmal nicht benötigt.
AndreasDA hat geschrieben:
\clubpenalty = 10000
\widowpenalty = 10000 \displaywidowpenalty = 10000
Du bist Dir klar, was Du hier machst? Du verbietest Dinge, die häufig weniger schlimm sind als das, was ohne passiert, wenn man nicht zusätzlichen Aufwand für einen optimierten Seitenumbruch investiert. Vor allem bei der \displaywidowpenalty-Zeile vermute ich, dass die meisten gar nicht wissen, was sie bewirkt. Ich habe jedenfalls schon Fragen erhalten, wie man genau die Wirkung dieser Zeile los bekommt.
AndreasDA hat geschrieben:
\usepackage{hyperref}
\makeatletter
\renewcommand*{\toclevel@paragraph}{4}%
\renewcommand*{\toclevel@subparagraph}{5}%
\makeatother
Warum lädst Du das Paket ein zweites Mal und warum änderst Du seine Grundfunktion in dieser Weise? Aus Deinem Beispiel geht der Sinn nicht hervor und ich sehe spontan auch keinen. Sinnvoll ist das allenfalls in Sonderfällen. In vielen anderen Fällen dürfte es überflüssig bis ungünstig sein.
AndreasDA hat geschrieben:
\glqq{}Lernen\grqq{}
Warum gibst Du Anführungszeichen derart umständlich ein? Du verwendest doch babel und kannst damit einfach
"`Lernen"'
schreiben. Das Paket csquotes würde hier weitere Möglichkeiten bieten.
AndreasDA hat geschrieben:
subsection{Der Begriff Lehr-/Lernmaterial}
Ich bin ziemlich sicher, dass hier ein Backslash fehlt.

Und warum verwendest Du eigentlich nicht das Paket blindtext, das ich Dir vorgeführt habe und das auch in unserer Minimalbeispiel-Anleitung explizit erwähnt ist?

Im realen Dokument würde ich übrigens etwas mehr Struktur im Quellcode empfehlen (beispielsweise Leerzeilen vor Überschriftenanweisungen). Aber vielleicht hast Du das im realen Dokument ja auch und wolltest im Beispiel nur Platz sparen. Du solltest aber auch bei den Beispielen an denjenigen denken, der sich den Code anschauen muss, und sinnvolle einzelne Leerzeilen dann drin lassen.

So, das hat mich jetzt über eine Stunde an Arbeit gekostet und ich erwarte natürlich, dass Du min. die doppelte Zeit investierst, um den Querverweisen nachzugehen und Anleitungen zu studieren.

AndreasDA

Beitrag von AndreasDA »

Hallo KOMA,

ich möchte mich bei dir, nicht nur für die vielen Tipps und Verbesserungen, sondern auch für die Zeit, die du dir für mich und mein Problem genommen hast herzlich bedanken.

Ich werde jetzt deine Vorschläge umsetzen und mich schlau machen, auch wenn mich das wohl weit mehr als zwei Stunden kosten wird.

Viele Dank und viele Grüße
Andreas

Antworten