In einem Latex-Beispiel (die "Artikel"-Klasse), bekomme ich diese in der .toc-Datei:
\contentsline {section}{\numberline {1}test section without number}{1}{section.1}
Wichtig hier Teil die \numberline
Makro ist. Die Neudefinition es etwas leer wie
\def\numberline#1{}
alle Nummerierungen im toc und nicht an anderer Stelle zu entfernen. Wenn Sie so etwas wie \tocsubsection
stattdessen in der .toc (siehe andere Antwort) erhalten, dann kann man wohl so etwas wie tun:
\let\oldtocsubsection=\tocsubsection
\def\tocsubsection#1#2#3{\oldtocsubsection{#1}{}{#3}}
Dies ist jedoch entfernt alle Zahlen in dem Inhaltsverzeichnis. Wenn Sie steuern möchten, auf welcher Ebene die Nummerierung verschwindet, wird das Makro \contentsline
je nach Kontext auf verschiedene Makros erweitert, z. B. \[email protected]
. Diese Makros wiederum verwenden das allgemeine Makro \@dottedtocline
. Dies ist die, die Sie ändern müssen, in der wir \numberline
bedingt neu definieren werden.
Um die Kontrolle über die Tiefe, in der Zahlen zu stoppen angezeigt wird, lassen Sie uns einen neuen Zähler definieren:
\newcounter{sectocnonumdepth}
\setcounter{sectocnonumdepth}{2}
Dann ist die bedingte Neudefinition folgende Zeile sein wird (aus dem Code für mehr Lesbarkeit extrahiert).
\ifnum #1>\[email protected] \def\numberline##1{}\fi%
ich einfach kopieren kleisterte die Definition von \@dottedtocline
aus der latex.ltx
Quelldatei, und hinzugefügt, um die Kontrolle zu verlieren.Hier ist der Code für das gesamte Beispiel:
\newcounter{sectocnonumdepth}
\setcounter{sectocnonumdepth}{2}
\makeatletter
\def\@dottedtocline#1#2#3#4#5{%
\ifnum #1>\[email protected] \else
\vskip \[email protected] \@plus.2\[email protected]
{\ifnum #1>\[email protected] \def\numberline##1{}\fi%
\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
\parindent #2\relax\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima #3\relax
\advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
{#4}\nobreak
\leaders\hbox{$\[email protected]
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak
\[email protected]@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
\par}%
\fi}
\makeatother
Abschließender Hinweis: Dies wird den Titel Abschnitt und Abschnitt macht an derselben horizontalen Position zu starten, da es keine Nummer angezeigt werden soll. Wenn Sie mehr Polsterung möchten, können Sie zum Beispiel hinzufügen \quad
die neuen Definition von \numberline
, oder sogar die ursprünglichen Definition verwenden, um mit nur die #1
entfernt:
\def\numberline##1{\[email protected]@\@tempdima{\hfil}}
Ich möchte nur sagen, dass dies für mich bemerkenswert hilfreich war. Vielen Dank! – Tyr