KOMA-Script (scrbook): einspaltiges Inhaltsverzeichnis & Minitoc in zweispaltigem Dokument

KOMA-Script (scrbook): einspaltiges Inhaltsverzeichnis & Minitoc in zweispaltigem Dokument

Ich habe Probleme mit der Formatierung meiner Inhaltsverzeichnisse. Bitte sehen Sie sich mein MNWE unten an. Ich möchtealle meine Tabellen in ein einspaltiges Layout umwandeln. Ich versuche, die Lösung von diesem zu verwendentex.stackexchange-Antwort, die diesen Teil des Tex-Codes verwenden:

\unsettoc{toc}{onecolumn} 

aber es scheint, das funktioniert nicht. Ich habe versucht, manuelles Scrbook zu verstehen (Seite264), aber leider habe ich es nicht bekommen. Ich verwende Miktex/Xelatex. Ich füge auch Bilder des Übersetzungsergebnisses bei.

\documentclass[twocolumn]{scrbook}
\usepackage[nohints]{minitoc}  
\unsettoc{toc}{onecolumn}
\usepackage{lipsum}
\begin{document}
\dominitoc
\tableofcontents
\chapter{Foo}
\minitoc
\lipsum[1]
\section{Bar}
\lipsum[2]
\subsection{Baz}
\lipsum[3]
\section{FooBarBaz}
\lipsum[4]
\end{document}

Bildbeschreibung hier eingeben Abbildung 1: Befehl\tableofcontents


Bildbeschreibung hier eingeben Figur 2: Befehl\minitoc

Antwort1

Für das Hauptinhaltsverzeichnis

Bitte lesen Sie die verlinkte Antwort und die KOMA-Script-Dokumentation 1) noch einmal sorgfältig durch :Standardmäßigin scrbook(und scrreprt) das Inhaltsverzeichnis ist eingestellt inEinspaltenmodus. Nur wenn du es in zwei Spalten haben willst, brauchst du \unsettoc{toc}{onecolumn}. Es wegzulassen ist hier also die Lösung …

Für den Minitoc

Verwenden Sie \setchapterpreamble2) . Beachten Sie, dass Sie es vor dem Kapitel platzieren müssen, zu dem es gehört. Mit zwei optionalen Argumenten können Sie Position und Breite beeinflussen.

Beachten Sie auch, dass ich die Regeln vor und nach dem mit deaktivieren musste \mtcsetrules{minitoc}{off}. Als Workaround habe ich zwei Mal hinzugefügt \hrulefill(das erste muss in \smashund dann eine Make-Box sein [es hätte auch ohne funktioniert, aber dann ist die Bestimmung des vertikalen Abstands schwieriger], das zweite würde auch ohne funktionieren, aber ich habe es einfach kopiert) und einige vertikale Abstände. Ich denke, die \vspacemüssen individuell an die eigene Schriftart und Schriftgröße angepasst werden.

Da Sie höchstwahrscheinlich mehr als ein Kapitel haben werden, habe ich zwei neue Befehle definiert, Anmerkungen dazu finden Sie weiter unten im Code. Da diese enthalten \setchapterpreamble(oder für die Verwendung vorgesehen sind),diesemuss vor jedem Kapitel gesetzt werden.

\documentclass[twocolumn]{scrbook}
\usepackage[nohints]{minitoc}
\mtcsetrules{minitoc}{off}
\usepackage{lipsum}

\newcommand{\dochaptertoc}{%
  \vspace{1.85\baselineskip} % workaround for removed rule
  \smash{\makebox[\linewidth]{\hrulefill}} % workaround for removed rule
  \vspace{-1.85\baselineskip} % workaround for removed rule
  \minitoc
  \vspace{-1.15\baselineskip} % workaround for removed rule
  \smash{\makebox[\linewidth]{\hrulefill}} % workaround for removed rule
  \vspace{1.15\baselineskip} % workaround for removed rule
}
\newcommand{\setchaptertoc}{%
  \setchapterpreamble{% KOMA-Script command
    \dochaptertoc%
  }}

\begin{document}
\dominitoc
\tableofcontents

\setchaptertoc
\chapter{One}
\lipsum[1]
\section{One, one}
\lipsum[2]
\subsection{One, one, one}
\lipsum[3]
\section{One, two}
\lipsum[4]

\setchapterpreamble{
  \dictum{Time for a bon-mot.}% KOMA-Script command
  \dochaptertoc
}
\chapter{Two}
\lipsum[5]
\section{Two, one}
\lipsum[6]
\section{Two, two}
\subsection{two, two, one}
\lipsum[7]
\end{document}

In den meisten Fällen reicht es aus, es \setchaptertocvor ein Kapitel zu setzen. Aber für Fälle, in denen Sie mehr als das Minitoc hinzufügen möchten, habe ich \dochaptertocdie Workarounds für entfernte Regeln definiert, die für die Verwendung in vorgesehen sind \setchapterpreamble, siehe Kapitel 2 im Beispiel.

1) Lesen Sie online auf Texdoc.net:„\setuptoc“ und „\unsettoc“(PDF)

2) Lesen Sie auch online auf Texdoc.net:„\setpartpreamble“ und „\setchapterpreamble“(nochmals PDF)

verwandte Informationen