Gibt es eine einfache Möglichkeit, die Subsection-Einträge im Toc zweispaltig zu setzen?
Die Subsection-Einträge haben eine gerade Anzahl.

alt text

Öffne in Overleaf
\documentclass[landscape]{scrartcl}
%\setparsizes{0pt}{0pt}{0pt plus 1fil}
\usepackage[showframe=true]{geometry}

\usepackage{multicol} 
\setlength{\columnseprule}{1mm}

\usepackage{mwe} 
\begin{document}
\begin{multicols*}{2}%[''titel'']["Abstand"]
\rule{2cm}{12cm}

{  \RedeclareSectionCommand[font=\centering\Huge]{section}
\section*{Hier der Haupttitel}  }
\vfill\null
\columnbreak
\tableofcontents

\bigskip
\lipsum[66]
\addsec[short version sec]{}
%\addsubsec[short version subsec]{}

\addsubsectiontocentry{}{subsec 1111}
\addsubsectiontocentry{}{subsecaaa 2222}
\addsubsectiontocentry{}{subsecbb 3333}
% Hier Spaltenumbruch gewünscht
\addsubsectiontocentry{}{subsecccc 4444}
\addsubsectiontocentry{}{subsec 5555}
\addsubsectiontocentry{}{subsecdd 6666}

\addsec{sec}
\addsec{sec}
\end{multicols*}
\end{document}

gefragt 16 Dez '18, 04:55

cis's gravatar image

cis
9.5k95459491
Akzeptiert-Rate: 29%

Es sei darauf hingewiesen, dass \centering keine Font-Anweisung ist und damit der gezeigte Missbrauch von \section* in mehrerer Hinsicht ein Verstoß gegen die Dokumentation darstellt. Sollte das irgendwann so nicht mehr funktionieren, sollte man sich nicht allzu sehr wundern und keinesfalls beklagen.

(16 Dez '18, 09:50) gast3

Du meinst dieses Dingens hier? \RedeclareSectionCommand[font=\centering\Huge]{section} ? Ich habe gegoogelt, wie man eine KOMA-Überschrift zentriert und das gefunden, sah professionell aus; also habe ich es kopiert. Wenn das irgendwie besser geht, gern...

(16 Dez '18, 22:25) cis

Update Wieder mit der multicols* Umgebung für Titelseite und Inhaltsverzeichnis:

Öffne in Overleaf
\documentclass[landscape]{scrartcl}
\usepackage[showframe=true]{geometry}

\usepackage{multicol} 
\setlength{\columnseprule}{1mm}

\newif\ifinsidesection
\DeclareTOCStyleEntry[
  onstarthigherlevel=\LastTOCLevelWasLower\begin{multicols}{2}\insidesectiontrue%
]{tocline}{subsection}
\DeclareTOCStyleEntry[
  onstartlowerlevel=\ifinsidesection\end{multicols}\fi\insidesectionfalse\LastTOCLevelWasHigher%
]{tocline}{section}

\AtEndDocument{%
  \addtocontents{toc}{%
    \protect\ifinsidesection\protect\end{multicols}\protect\fi%
    \protect\insidesectionfalse%
  }%
}

\usepackage{mwe}
\begin{document}
\begin{multicols*}{2}
\rule{2cm}{12cm}
\begin{center}
\usekomafont{disposition}\Huge Hier der Haupttitel\par
\end{center}
\vspace*{1em}
\columnbreak

\tableofcontents
\lipsum[66]
\end{multicols*}

\addsec[short version sec]{}
\addsubsectiontocentry{}{subsec 1111}
\lipsum[1]
\addsubsectiontocentry{}{subsecaaa 2222}
\addsubsectiontocentry{}{subsecbb 3333}
% Hier Spaltenumbruch gewünscht
\addsubsectiontocentry{}{subsecccc 4444}
\addsubsectiontocentry{}{subsec 5555}
\addsubsectiontocentry{}{subsecdd 6666}
\addsec{sec}
\addsec{sec}
\end{document}

Mit obigem Code beginnt der erste Unterabschnittseintrag in einem Abschnitt eine mulitcols Umgebung im Inhaltsverzeichnis. Diese Umgebung wird vom nächsten Abschnittseintrag beendet. Da nach dem letzten Unterabschnitt eventuell kein neuer Abschnitt mehr folgt, wird mit

Öffne in Overleaf
\AtEndDocument{%
  \addtocontents{toc}{%
    \protect\ifinsidesection\protect\end{multicols}\protect\fi%
    \protect\insidesectionfalse%
  }%
}

sicher gestellt, dass auch in dem Fall die letzte multicols Umgebung im Inhaltsverzeichnis wieder geschlossen wird.

Ergebnis: alt text


Original answer

Öffne in Overleaf
\documentclass[landscape]{scrartcl}
\usepackage[showframe=true]{geometry}

\usepackage{multicol} 
\setlength{\columnseprule}{1mm}

\newif\ifinsidesection
\DeclareTOCStyleEntry[
  onstarthigherlevel=\LastTOCLevelWasLower\begin{multicols}{2}\insidesectiontrue%
]{tocline}{subsection}
\DeclareTOCStyleEntry[
  onstartlowerlevel=\ifinsidesection\end{multicols}\fi\insidesectionfalse\LastTOCLevelWasHigher%
]{tocline}{section}

\AtEndDocument{%
  \addtocontents{toc}{%
    \protect\ifinsidesection\protect\end{multicols}\protect\fi%
    \protect\insidesectionfalse%
  }%
}

\usepackage{mwe}
\begin{document}
\rule{2cm}{12cm}
\vfill
\begin{center}
\usekomafont{disposition}\Huge Hier der Haupttitel\par
\end{center}
\vfill

\tableofcontents
\bigskip
\lipsum[66]
\addsec[short version sec]{}
\addsubsectiontocentry{}{subsec 1111}
\lipsum[1]
\addsubsectiontocentry{}{subsecaaa 2222}
\addsubsectiontocentry{}{subsecbb 3333}
% Hier Spaltenumbruch gewünscht
\addsubsectiontocentry{}{subsecccc 4444}
\addsubsectiontocentry{}{subsec 5555}
\addsubsectiontocentry{}{subsecdd 6666}
\addsec{sec}
\addsec{sec}
\end{document}

Result:

alt text

Permanenter link

beantwortet 17 Dez '18, 04:26

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 17 Dez '18, 08:51

Ey, Du hast die multicol-Umgebung gelöscht.
Das ist doch meine Titelseite: links Bild + Titel, rechts Inhaltsverzeichnis :).
Naja, egal ich habe jetzt
\begin{document} \begin{multicols*}{2} ..... \end{multicols*} \end{document}
wieder ergänzt. Ich hoffe das passt mit dem Rest zusammen.

Ansonsten sehr professionell gelöst. Für mich allein kaum machbar. Ich wäre jetzt in Richtung minitoc.sty gegangen, was nicht unbedingt einfacher ist.

(17 Dez '18, 05:06) cis

PS: Braucht man mit der o.g. multicol-Umgebung immer noch
%\AtEndDocument{% % \addtocontents{toc}{% % \protect\ifinsidesection\protect\end{multicols}\protect\fi% % \protect\insidesectionfalse% % }% %}

?

(17 Dez '18, 05:10) cis

PPS: Zum PS. Nach der 1. Titel-Seite brauch ich übrigens keine multicols mehr (da kommen nur noch ganzsseitige Bilder); daher verwirrt mich \AtEndDocument. Also ich wollte also nur für die Titelseite eine Zweispaltigkeit.

Ok, das konnte jetzt niemand wissen.

(17 Dez '18, 05:14) cis
1

Ich habe Dir Deine multicols Umgebung für die Titelseite und das Inhaltsverzeichnis wieder eingefügt.

(17 Dez '18, 08:58) esdd
1

Die \AtEndDocument{\addtocontents{toc}{<toceintrag>}} schreibt <toceintrag> in die toc-Datei. In der toc-Datei steht damit als letzte Zeile \ifinsidesection \end {multicols}\fi \insidesectionfalse. Es kann ja sein, dass Du nach dem letzten Unterabschnittseintrag keinen Abschnittseintrag mehr hast, der die letzte multicols Umgebung im Inhaltsverzeichnis schließt. Die Anweisung beendet also keine multicols Umgebung am Dokumentenende, sondern gegebenenfalls eine multicols Umgebung am Ende des Inhaltsverzeichnisses.

(17 Dez '18, 08:59) esdd

Einfach mit \addtocontents{toc}{<tokens>} ein \begin{multicols*}{2} davor und ein \end{multicols*} danach einfügen.

Öffne in Overleaf
\documentclass[landscape]{scrartcl}
%\setparsizes{0pt}{0pt}{0pt plus 1fil}
\usepackage[showframe=true]{geometry}

\usepackage{multicol} 
\setlength{\columnseprule}{1mm}

\usepackage{mwe} 
\begin{document}
\begin{multicols*}{2}%[''titel'']["Abstand"]
\rule{2cm}{12cm}

{  \RedeclareSectionCommand[font=\centering\Huge]{section}
\section*{Hier der Haupttitel}  }
\vfill\null
\columnbreak
\tableofcontents

\bigskip
\lipsum[66]
\addsec[short version sec]{}
%\addsubsec[short version subsec]{}

\addtocontents{toc}{\protect\begin{multicols*}{2}}
\addsubsectiontocentry{}{subsec 1111}\leavevmode\newpage
\addsubsectiontocentry{}{subsecaaa 2222}\leavevmode\newpage
\addsubsectiontocentry{}{subsecbb 3333}\leavevmode\newpage
% Hier Spaltenumbruch gewünscht
\addsubsectiontocentry{}{subsecccc 4444}\leavevmode\newpage
\addsubsectiontocentry{}{subsec 5555}\leavevmode\newpage
\addsubsectiontocentry{}{subsecdd 6666}\leavevmode\newpage
\addtocontents{toc}{\protect\end{multicols*}}

\addsec{sec}
\addsec{sec}
\end{multicols*}
\end{document}

alt text

Permanenter link

beantwortet 16 Dez '18, 21:41

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 16 Dez '18, 23:36

Ah, es gibt leider ein Problem: Die Einträge \addsubsectiontocentry{}{subsec 1111} werden nicht bündelweise erzeugt (wie es das MWE vermitteln könnte...), sondern stehen verteilt auf verschiedenen Seiten.
Geht das dann trotzdem?

(16 Dez '18, 23:03) cis

@cis Versteh ich nicht. Im MWE funktioniert alles.

(16 Dez '18, 23:04) Henri

Zwischen jedem \addsubsectiontocentry{}{subsec 1111} steht z.B. ein \newpage

(16 Dez '18, 23:16) cis
2

@cis Tut trotzdem noch, siehe aktualisierte Antwort.

(16 Dez '18, 23:37) Henri

Haha, Du bist ein Herzchen. ^^ Wenn man es so macht: ok....

Ich meinte es so: Auf Seite 1 steht \addsubsectiontocentry{}{subsec 1111}. Dann steht erst auf Seite 5 wieder \addsubsectiontocentry{}{subsecaaa 2222}. Ich habe also nirgendswo so einen Block, wie ich ihn hier benötigen würde.

Möglicherweise ist das Problem nur halb-trivial. Der KOMA-Befehl \BeforeStartingTOC[...]{...} sieht interessant aus.
Vielleicht braucht es aber sowas wie minitoc.sty.
Oje, das wird schwierig....

(17 Dez '18, 00:02) cis
1

Du kannst doch zwischen Deine \addsectiontocentry Anweisungen beispielsweise auch \Blindtext einfügen und es funktioniert immer noch.

(17 Dez '18, 04:08) esdd

@cis: Informiere Dich mal, was die Anweisung \addtocontents macht.

(17 Dez '18, 09:00) esdd
Ergebnis 5 von 7 show 2 more comments
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:

×12

gestellte Frage: 16 Dez '18, 04:55

Frage wurde gesehen: 4,683 Mal

zuletzt geändert: 17 Dez '18, 09:00