Sie sind hier

Punkt aus Abschnittsnummerierung in Referenz

Guten Tag,

ich hätte da mal gerne ein Problem. Folgendes Minimalbeispiel:

\documentclass{scrbook}
 
\usepackage{blindtext}
 
\begin{document}
 
 \chapter{Einleitung}
 
  \blindtext
 
 \appendix
 
 \chapter*{Anhang}
 
  \renewcommand*{\thesubsection}{\arabic{subsection}.}
 
  \section*{Zwischenüberschrift}
 
   \subsection{Foo \label{Abschnitt1}}
 
    \blindtext
 
   \subsection{Fu \label{Abschnitt2}}
 
    Siehe Abschnitt~\ref{Abschnitt1}.
 
\end{document}
 

Im Anhang ist es (leider!) zwingend, dass \chapter{} und \section{} keine Nummerierung erhalten. (\section{} wie \subsection{} sollen außerdem keinen Eintrag im Inhaltsverzeichnis erhalten.) Für \subsection{}ist vorgegeben, dass eine Nummerierung mit Punkt erfolgt. (Ganz egal, ob das nach typografischen oder anderen Regeln Sinn ergibt.) Soweit bekomme ich es hin.

Mein Problem ist, bei der Referenz dieser Punkt auftaucht. Ich habe alles mögliche ausprobiert, insbesondere mit \KOMAoptions{numbers=}. Die einzige Lösung, dich gefunden habe, führt dazu, dass außerhalb des Appendix die Kapitelnummerierungen einen Punkt erhalten. Das empfinde ich als extrem unschön.

Mein ideales Ergebnis wäre:

1 Einleitung
Lorem ipsum…

Anhang

Zwischenüberschrift

1. Foo
Lorem ipsum…

2. Fu
Siehe Abschnitt 1.

Weiß jemand Rat?

R.

PS: KOMA-Skript v3.11.

Bild von Markus Kohm

Zunächst einmal sollte man immer dann, wenn man bei der Eingabe nicht mit US-ASCII auskommt, die Eingabecodierung deklarieren. Bei Verwendung von XeLaTeX und LuaLaTeX genügt es, wenn man erkennen lässt, dass XeLaTeX oder LuaLaTeX zu verwenden ist. Ansonsten macht man das mit inputenc oder besser mit selinput. Dann sollte man die Sprache im Dokument deklarieren. Das geht bei Verwendung von XeLaTeX mit polyglossia ansonsten mit babel.

Gliederungsnummern mal mit Punkt am Ende mal ohne zu setzen ist ganz unabhängig von Deinem ästhetischen Empfinden schlicht falsch. Man sollte Gleiches immer Gleich setzen. Also verwendet man den Punkt entweder oder man lässt ihn weg. Das geht ganz einfach mit Option numbers. Zur Frage, wie relevant Dein persönlicher Geschmack ist, sei auf das Zitat zweier herausragender Typographen am Ende von Kapitel 2 der KOMA-Script-Anleitung verwiesen.

Als nächstes schauen wir uns mal die Anforderungen an. Wenn ich das Beispiel richtig deute, dann soll der gesamte Anhang die Überschrift »Anhang« erhalten. Nun, dazu wird in der KOMA-Script-Anleitung korrekt auf Befehle wie \part und \addpart verwiesen. Der Anhang ist nämlich eindeutig kein Kapitel, sondern ein Dokumentteil. Ich würde die Verwendung von \addpart empfehlen, damit wenigstens der Anhang selbst im Inhaltsverzeichnis auftaucht. Mit \part* kann man auch das vermeiden.

Nachdem der Anhang selbst zu einem Teil (\addpart oder \part*) wurde, werden in der weiteren Problembeschreibung \section zu \chapter und \subsection zu \section.

Die Beschreibung deute ich so, dass im Anhang selbst keine Gliederungsüberschriften mehr in das Inhaltsverzeichnis sollen. Das regelt man am besten über tocdepth. Allerdings kann man diesen Zähler hier nicht einfach global in der Dokumentpräambel setzen, sondern muss dafür sorgen, dass er erst im Inhaltsverzeichnis am Anfang des Anhangs geändert wird. Dazu verwendet man \addtocontents. Da \setcounter global wirkt, man aber eventuell nach dem Inhaltsverzeichnis noch ein Abbildungsverzeichnis oder ein Tabellenverzeichnis hat, auf die sich die Änderung nicht insgesamt auswirken soll, sollte man direkt den korrespondierenden TeX-Zähler setzen, an den man mit \value gelangt.

Sollen auch Abbildungen, Tabellen etc. im Anhang nicht in die entsprechenden Verzeichnisse, so sind für diese beiden Verzeichnisse identische Vorkehrungen zu treffen. Statt das einzeln zu machen, sei hier auf das Kapitel über das Paket tocbasic verwiesen.

Die (jetzt) Kapitel sollen im Anhang nicht nummeriert werden. Die (jetzt) Abschnitte sollen aber nummeriert werden. Das ist genau das, was man bei scrbook mit \backmatter erreicht.

Natürlich ist es sinnvoll, alle Änderungen direkt an den Aufruf von \appendix zu koppeln. Dazu erweitert man diesen Befehl einfach entsprechend. Statt wie im folgenden Beispiel die interne LaTeX-Anweisung \g@addto@macro zu verwenden, kann man das auch mit Hilfe des Pakets etoolbox erledigen.

Eine saubere Lösung sähe dann beispielsweise so aus:

% Bitte unbedingt die Anleitungen der verwendeten Pakete und insbesondere
% die Anleitungen zu den verwendeten Befehlen in der KOMA-Script-Anleitung
% beachten!!!!
% Vorsorglich wird darauf hingewiesen, dass das ursprüngliche Minimalbeispiel
% erheblich ergänzt wurde, um die oben genannten Mängel und auch eine
% Fehlermeldung zu beseitigen.
\documentclass[numbers=enddot]{scrbook}
\usepackage{selinput}
\SelectInputMappings{% Eingabecodierung bestimmten, siehe selinput-Anleitung.
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
\usepackage[ngerman]{babel}% Sprache bestimmen, siehe babel-Anleitung
\usepackage{blindtext}% Dummy-Inhalte für Beispiele, siehe blindtext-Anleitung
 
% Hinweis: Die Lösung besteht darin, sauber die Anweisung \appendix zu
% erweitern, mit der ein Anhang bei KOMA-Script eingeleitet wird. Dadurch ist
% die Trennung von Form und Inhalt weiter gegeben und man muss nicht
% im Dokument selbst herumdoktern.
% Alternativ könnte man auch eine neue, auf \appenidx-basierende Anweisung
% definieren, die dann an Stelle von \appendix zur Einleitung dieser Art eines
% Anhangs zu verwenden wäre.
\makeatletter% Anwenderanweisung, um Befehle wie \g@addto@macro zu ermöglichen.
\g@addto@macro\appendix{% \appendix erweitern (kann durch 
  % Anwenderanweisungen von etoolbox ersetzt werden, siehe oben).
  \backmatter% Macht schon einmal eine ganze Menge von dem, was gewünscht wird
             % (siehe KOMA-Script-Anleitung, scrguide.pdf oder scrguien.pdf).
  \addpart{\appendixname}% Der Anhang ist kein Kapitel, sondern ggf. ein Teil
                         % mit mehreren Kapiteln. Hier wird wie in der 
                         % KOMA-Script-Anleitung gezeigt das sprachunabhängige 
                         % \appenidxname für den Text "Anhang" verwendet.
  \addtocontents{toc}{\protect\value{tocdepth}=-1\relax}% Ab hier \chapter
                                % etc. nicht mehr im Inhaltsverzeichnis
                                % anzeigen (zu tocdepth siehe
                                % KOMA-Script-Anleitung, scrguide.pdf oder
                                % scrguien.pdf).
                                % Das Argument von \addtocontents ist ein sogenanntes
                                % moving Argument. Daher sind viele Befehle wie im
                                % obligatorischen Argument von \chapter mit \protect
                                % vor dem Zerbrechen zu schützen!
}
\makeatother% Anwenderanweisung, um das vorherige \makeatletter wieder aufzuheben
 
\begin{document}
\tableofcontents% Damit man die Auswirkungen auf das Inhaltsverzeichnis auch
                % sieht!
 
\blinddocument% Damit wir die Unterschiede zwischen Hauptteil und Anhang auch sehen.
\appendix
\chapter{Zwischenüberschrift}
\section{Foo}\label{Abschnitt1}% \label-Anweisungen bitte nach dem Gliederungsbefehl!
\blindtext
 
\section{Fu}\label{Abschnitt2}
 
Siehe Abschnitt~\ref{Abschnitt1}.
 
\end{document}

Sollte ich das Beispiel falsch gedeutet haben und in Wirklichkeit gar nicht die Überschrift »Anhang« den Anhang einleiten, sondern diese Überschrift lediglich ein Platzhalter für ein beliebiges Kapitel im Anhang sein, dann muss man tatsächlich tiefer in die Trickkiste greifen. Solche gravierenden Ungereimtheiten, die mir zutiefst zuwider sind, könnte man beispielsweise so realisieren:

% Bitte unbedingt die Anleitungen der verwendeten Pakete und insbesondere
% auch die Anleitungen der verwendeten Befehle in der KOMA-Script-Anleitung
% beachten!!!
\documentclass[numbers=enddot]{scrbook}
\usepackage{selinput}% siehe oben
\SelectInputMappings{% Eingabecodierung bestimmen (siehe selinput-Anleitung)
  adieresis={ä},
  germandbls={ß},
  Euro={},
}
\usepackage[ngerman]{babel}% Sprache festlegen (siehe oben und babel-Anleitung)
\usepackage{blindtext}% Dummy-Inhalte (siehe blindtext-Anleitung)
 
% Hinweis: Die Lösung besteht darin, sauber die Anweisung \appendix zu
% erweitern, mit der ein Anhang bei KOMA-Script eingeleitet wird. Dadurch ist
% die Trennung von Form und Inhalt weiter gegeben und man muss nicht
% im Dokument selbst herumdoktern.
% Alternativ könnte man auch eine neue, auf \appenidx-basierende Anweisung
% definieren, die dann an Stelle von \appendix zur Einleitung dieser Art eines
% Anhangs zu verwenden wäre.
\makeatletter% wegen \g@addto@macro
\g@addto@macro\appendix{% \appendix erweitern
  \backmatter% Macht schon einmal eine ganze Menge von dem, was gewünscht wird
             % (siehe KOMA-Script-Anleitung, scrguide.pdf oder scrguien.pdf).
  \addtocontents{toc}{\protect\value{tocdepth}=-1\relax}% Ab hier \chapter
                                % etc. nicht mehr im Inhaltsverzeichnis
                                % anzeigen (zu tocdepth siehe
                                % KOMA-Script-Anleitung, scrguide.pdf oder
                                % scrguien.pdf).
                                % Das Argument von \addtocontents ist ein sogenanntes
                                % moving Argument. Daher sind viele Befehle wie im
                                % obligatorischen Argument von \chapter mit \protect
                                % vor dem Zerbrechen zu schützen!
  % ACHTUNG: Ab hier beginnt das typographische Grauen!
  % ACHTUNG: Das sollte man daher besser nicht nachmachen!
  \renewcommand*{\thesubsection}{\arabic{subsection}}% Die \subsection-Nummern enthalten nun
                                % Keine section-Nummern mehr. Wie bei den originalen
                                % Definitionen von KOMA-Script ist hier auch kein
                                % Punkt am Ende zu finden, weil der sonst bei Referenzen
                                % und abgeleiteten Zählern wie \thesubsubsection
                                % zusätzlich auftauchen würde.
                                % Statt mir \renewcommand zu "programmieren", kann 
                                % das alternativ mit dem Paket chngcntr auf
                                % Benutzerebene realisieren. Siehe dazu die Anleitung
                                % des genannten Pakets.
  \renewcommand*{\othersectionlevelsformat}[3]{% Ausgabe der Nummer in
                                % den Überschriften aller Gliederungsebenen neu
                                % definieren. Die Anweisung selbst ist zusammen mit
                                % ihrer Originaldefinition in der KOMA-Script-Anleitung
                                % ausführlich und mit Beispiel beschrieben.
    \ifstr{#1}{section}% Wenn das erste Argument "section" ist, es sich also
                                %  um die Nummerierung einer \section-Überschrift
                                % handelt …
    {%
      % … dann tun wir nichts, geben also insbesondere keine Nummer aus.
    }{%
       #3\autodot\enskip% … sonst, also für \subsection, \subsubsection,
                                % \paragraph und \subparagraph verwenden wir das
                                % Original aus der KOMA-Script-Anleitung
    }%
  }%
  \renewcommand*{\sectionmarkformat}{}% Für den Fall, dass im Anhang mit
    % \section-Einträgen bei den Kolumnentiteln gearbeitet wird, schalten wir
    % die Ausgabe deren Nummern hier ebenfalls komplett ab.
}
\makeatother% wegen \makeatletter
 
\begin{document}
\tableofcontents% Damit man die Auswirkungen auf das Inhaltsverzeichnis auch
                % sieht!
 
\blinddocument% Damit man den Unterschied zwischen Hauptteil und Anhang sieht!
\appendix
\blinddocument% Damit man alle Ebenen und auch mehr als ein Kapitel im Anhang sehen kann!
\chapter{Noch ein Kapitel des Anhangs}
\section{Zwischenüberschrift}
\subsection{Foo}\label{Unterabschnitt1}
\blindtext
 
\subsection{Fu}\label{Unterabschnitt2}
 
Siehe Abschnitt~\ref{Unterabschnitt1}.
 
\end{document}

Solltest Du bezüglich der Punkte bei den Nummern auf Deinen Geschmack bestehen, dann verweise ich auf die Erklärung zu \chapterformat, \othersectionlevelsformat und \autodot etc. in der KOMA-Script-Anleitung. Ggf. muss man hier auch noch weitere Änderungen mit \addtocontents auf das Verzeichnis selbst verlagern und dort lokal halten, damit die Punkte auch im Inhaltsverzeichnis so sind, wie Du haben willst. Man nehme jedoch Rücksicht auf mein ästhetisches Empfinden und verlange von mir bitte nicht, dass ich das vorführe.

Hallo Markus,

vielen Dank für Deine umfassende Antwort, ich bemühe mich mal sie abzuarbeiten. Zwischendurch schon mal ein paar Punkte zur Erklärung:

  1. Die Deklaration von Eingabecodierung und Sprache ist mir bewusst. Ich verwende normalerweise XeLaTeX und polyglossia. Hier wollte ich aber bewusst ein Minimalbeispiel schreiben. Für die Fragestellung sind diese Deklarationen wohl unerheblich.
  2. Gliederungsnummern mal mit Punkt am Ende mal ohne zu setzen mag schlicht falsch sein. Im Hauptdokument würde ich aber gerne der Einstellung von KOMA folgen und keinen Punkt setzen. Wie man vielleicht an den ganzen Sonderbedingungen erkennen kann, läuft dieser eine Anhang aber ein wenig gesondert und ist ohnehin abweichend vom restlichen Dokument gesetzt. Das Ganze ist ein wenig komplizierter, ich hatte mich hier bemüht es auf ein möglichst einfaches Beispiel herunterzubrechen. Ich bin an der Stelle (noch mal: leider!) gehalten Vorgaben 1:1 umzusetzen. Und ja, sie sind so grausam, dass ich sie nicht in meinem ganzen Dokument anwenden möchte. Um es mal ganz platt auszudrücken: ich möchte das eigentliche Dokument ganz normal setzen, diesen einen Anhang aber nach festen Vorgaben.
  3. Anhang und Zwischenüberschrift waren von mir tatsächlich als Platzhalter gedacht. Ein wenig dumm dort sprechende Namen zu verwenden. Das korrigiert Beispiel sähe an der Stelle so aus:

       []
       \chapter*{Foobar}
     
        \renewcommand*{\thesubsection}{\arabic{subsection}.}
     
        \section*{Fubar}
       []
     

    Der gewünschte Output ist wie folgt zu korrigieren:

    […]
    Foobar

    Fubar

    […]

Den Rest werde ich mir einmal in Ruhe zu Gemüte ziehen. Vor allem, weil mir die Änderungen sehr tiefgreifend und komplex erscheinen. Zumindest viel komplizierter als ich sie für diese einfache Fragestellung erwartet habe.

Vielleicht hilft es auch, wenn ich es noch einmal anders formulieren:

Wenn bei der Abschnittsnummeriung hinter der letzten Ziffer ein Punkt folgt, wie schafft es LaTeX dann bei der Referenz den Punkt wegzulassen? Also, wenn \chapter{Einleitung \label{Einleitung}} 1. Einleitung ergibt, dann dafür zu sorgen, dass Siehe Kaptitel~\ref{Einleitung}. nicht Siehe Kapitel 1.., sondern Siehe Kapitel 1. ergibt?

Herzlichen Dank schon mal für die Antwort

R.

Bild von Markus Kohm

Ohne Deklaration der Codierung funktionieren die Umlaute in der Überschrift »Zwischenüberschrift« allenfalls zufällig, können aber auch Fehler verursachen. Also bleibe ich dabei, dass entweder keine Sonderzeichen zu verwenden oder diese zu deklarieren oder darauf hinzuweisen ist, dass XeLaTeX oder LuaLaTeX mit nativer UTF-8-Codierung zu verwenden ist.

Bild von Markus Kohm

Wenn der Anhang tatsächlich eine Art komplett anderes Dokument sein soll, könnte man ihn natürlich auch getrennt setzen und ggf. per pdfpages dazu binden.

Bild von Markus Kohm

Habe ich bereits in meiner alternativen Lösung angerissen. Darüber hinaus habe ich bereits auf die entscheidenden Befehle hingewiesen. Ich bitte darum, diese in der Anleitung nachzulesen.

Bild von Markus Kohm

Ohne Deklaration der Sprache ist \languagename leider nicht wohldefiniert, sondern zufällig. Beispielsweise bei älteren TeX-Live-Versionen wie sie bei allen debian-basierten Systemen zu finden sind, ist \languagename dann häufig die Sprache der zuletzt in das Format eingebundenen Trennmuster. Zusammen mit den alten blindtext-Versionen, die in obigen TeX-Live-Versionen leider ebenfalls enthalten sind, wird das dann ein echtes Problem. Ich hatte selbst jahrelang das Problem, dass ich bei Beispielen, die ich bekommen habe, regelmäßig erst die Sprachdeklaration einfügen musste, damit sie verarbeitet werden konnten. Wenn man wöchentlich mit entsprechenden Fehlermeldungen konfrontiert wurde, reagiert man irgendwann schlicht etwas allergisch auf solche Nebensächlichkeiten.

Die Lösung lag tatsächlich in der Anweisung \othersectionlevelsformat. Obwohl ich die KOMA-Script-Anleitung nach mehreren Stichwörtern durchsucht habe, ist mir der Befehl nicht aufgefallen.

Hier ein Minimalbeispiel (erweitert um ein Inhaltsverzeichnis und die von Markus gewünschten Deklarationen) für XeLaTeX 3.1415926-2.4-0.9998, das zu genau dem Ergebnis führt, das ich mir wünsche:

 \documentclass{scrbook}
 
 \usepackage{blindtext}
 \usepackage{polyglossia}
 
 \setmainlanguage{german}
 
 \begin{document}
 
  \tableofcontents
 
  \blinddocument
 
  \appendix
 
   \addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
   \renewcommand*{\thesubsection}{\arabic{subsection}}
   \renewcommand*{\othersectionlevelsformat}[3]{\thesubsection.\enskip}
   \setcounter{subsection}{0}
 
  \chapter*{Foobar \addcontentsline{toc}{chapter}{Foobar}}
 
   \section*{Fubar}
 
    \subsection{Foo \label{Abschnitt1}}
 
     \blindtext
 
    \subsection{Fu \label{Abschnitt2}}
 
     Siehe Abschnitt~\ref{Abschnitt1}.
 
 \end{document}

Die entscheidende Zusatz

 \renewcommand*{\othersectionlevelsformat}[3]{\thesubsection.\enskip}
 \setcounter{subsection}{0}

führt auch im Originaldokument zum gewünschten Ergebnis.

An einigen Stellen wirkt mir das ein wenig arg zusammengeschustert und vielleicht wäre das Paket pdfpages auch eine Lösung gewesen. Aber es läuft und damit bin ich zufrieden.

Vielen, vielen Dank!

R.

Bild von Markus Kohm

Ich hatte ja bereits auf \addpart hingewiesen. Es gibt auch entsprechende Befehle für Kapitel (und sogar für Abschnitte). Solltest Du einmal nachlesen. Auch was ich über die Vermeidung von \setcounter im Inhaltsverzeichnis geschrieben habe, solltest Du ernst nehmen …

Deine Benutzung von \othersectionlevelsformat ist ebenfalls nicht empfehlenswert, da dieser Befehl für unterschiedliche Ebenen verwendet wird. Wie man das richtig macht, habe ich ebenfalls vorgeführt. Wenn Du einmal meine zweite Lösung anschaust, wirst Du auch dort keine Nummern bei \section ausgegeben haben. Dafür werden aber die \subsection-Nummern mit jedem \section trotzdem automatisch zurückgesetzt.

Hallo Markus,

ich nehme an, der didaktische Effekt wäre größer, wenn ich es selber herausfinde. Aber könntest Du obiges Minimalbeispiel einmal so umschreiben, dass es Deinen Anforderungen genügt?

R.

Okay, habe mein Minimalbeispiel noch mal überarbeitet:

 \documentclass{scrbook}
 
 \usepackage{blindtext}
 \usepackage{polyglossia}
 
 \setmainlanguage{german}
 
 \begin{document}
 
  \tableofcontents
 
  \mainmatter
  \blinddocument
 
  \backmatter
  \appendix
 
   \addtocontents{toc}{\protect\value{tocdepth}=0\relax}
   \renewcommand*{\thesubsection}{\arabic{subsection}}
   \renewcommand*{\othersectionlevelsformat}[3]{\ifstr{#1}{section}{}{#3.\enskip}}
   \setcounter{subsection}{0}
 
  \addchap{Foobar}
 
   \addsec*{Fubar}
 
    \subsection{Foo \label{Abschnitt1}}
 
     \blindtext
 
    \subsection{Fu \label{Abschnitt2}}
 
     Siehe Abschnitt~\ref{Abschnitt1}.
 
\end{document}

Besser? Was ich da in der \othersectionlevelsformat-Anweisung mache, verstehe ich nicht. Das habe ich mal von oben per Copy & Paste übernommen.

Um das Zurücksetzen des Zählers der subsections komme ich aber nicht herum.

R.

Bild von Markus Kohm

Dir ist nicht zufällig aufgefallen, dass in meinem zweiten Beispiel bis auf den Eintrag ins Inhaltsverzeichnis für die Kapitelebene und bis auf den Punkt bereits alles so gemacht wird, wie Du haben willst, einschließlich des automatischen Zurücksetzens des Zählers für die \subsection-Ebene? Bitte lies also die von mir gezeigten und genannten Anweisungen einschließlich \backmatter noch einmal nach. Ich hatte auch mit voller Absicht auf \section hingewiesen. Warum Du dann trotzdem \addsec* verwendest, ist mir schleierhaft.

% Bitte unbedingt die Anleitungen der verwendeten Pakete und insbesondere
% die Anleitungen zu den verwendeten Befehlen in der KOMA-Script-Anleitung
% beachten!!!!
% Dazu bitte auch die Kommentare aus den oben von mir bereits ausgeführten
% Beispielen beachten!!!!
\documentclass{scrbook}
 
\usepackage{blindtext}
\usepackage{polyglossia}% Wir verwenden also bitte XeLaTeX!!!
 
\setmainlanguage{german}
 
% Hinweis: Die Lösung besteht darin, sauber die Anweisung \appendix zu
% erweitern, mit der ein Anhang bei KOMA-Script eingeleitet wird. Dadurch ist
% die Trennung von Form und Inhalt weiter gegeben und man muss nicht
% im Dokument selbst herumdoktern.
% Alternativ könnte man auch eine neue, auf \appenidx-basierende Anweisung
% definieren, die dann an Stelle von \appendix zur Einleitung dieser Art eines
% Anhangs zu verwenden wäre.
\makeatletter% wegen \g@addto@macro
\g@addto@macro\appendix{%
  \backmatter% Macht schon einmal eine ganze Menge von dem, was gewünscht wird
             % (siehe KOMA-Script-Anleitung, scrguide.pdf oder scrguien.pdf).
  \addtocontents{toc}{% Im Inhaltsverzeichnis:
    \protect\value{tocdepth}=0\relax% Ab hier nur noch \chapter
                                % im Inhaltsverzeichnis
                                % anzeigen (zu tocdepth siehe
                                % KOMA-Script-Anleitung, scrguide.pdf oder
                                % scrguien.pdf).
                                % Das Argument von \addtocontents ist ein sogenanntes
                                % moving Argument. Daher sind viele Befehle wie im
                                % obligatorischen Argument von \chapter mit \protect
                                % vor dem Zerbrechen zu schützen!
  % ACHTUNG: Ab hier beginnt das typographische Grauen!
  % ACHTUNG: Das sollte man besser nicht nachmachen!
    \protect\renewcommand*{\protect\autodot}{.}% Auch im Verzeichnis soll ab
                                % hier natürlich der Punkt verwendet werden.
                                % In der Realität wird sich das allerdings nicht
                                % auswirken, da zuvor ohnehin die Einträge ab \section
                                % über tocdepth deaktiviert wurden und die Einträge
                                % für Kapitel (wegen \backmatter) nicht nummeriert
                                % werden. Zur Vollständigkeit lasse ich das aber drin,
                                % falls tocdepth später doch noch geändert wird.
  }%
  \renewcommand*{\thesubsection}{\arabic{subsection}}%
  \renewcommand*{\othersectionlevelsformat}[3]{% siehe frühere Vorschläge
    \ifstr{#1}{section}{% Wenn Argument #1 "section" ist …
      % … gegen wir gar nichts aus.
    }{% Wenn das Argument etwas anderes ist, also "subsection",
      % "subsubsection" …
      #3.\enskip % … geben wir das dritte Argument (\thesubsection,
                        % \thesubsubsection …) gefolgt von einem hart codierten
                        % Punkt und einem Abstand von 0.5em aus. Der hart codierte
                        % Punkt ist hier der entscheidende Unterschied zu meinen
                        % bisherigen Vorschlägen.
    }%
  }%
  \renewcommand*{\sectionmarkformat}{}% siehe frühere Vorschläge
}
\makeatother
 
\begin{document}
\tableofcontents% Damit man die Auswirkungen auf das Inhaltsverzeichnis auch
                % sieht!
 
\blinddocument
\appendix
\blinddocument
\chapter{Noch ein Kapitel des Anhangs}
\section{Zwischenüberschrift}
\subsection{Foo}\label{Unterabschnitt1}
\blindtext
 
\subsection{Fu}\label{Unterabschnitt2}
 
Siehe Abschnitt~\ref{Unterabschnitt1}.
 
\end{document}
 
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 

Jetzt hast Du es also geschafft und mir den Code dafür doch noch entlockt. Vielleicht war das ja Absicht und der Grund, warum Du Dich geweigert hast, direkt auf meinem Code aufzubauen …

BTW: \othersectionlevelsformat ist übrigens mit Beispiel in der Anleitung erklärt. Die Anweisung \ifstr ist ebenfalls in der Anleitung erklärt. Falls Du die eher einfache Umdefinierung der Anweisung oben trotzdem nicht verstehst, frag gezielt nach. Falls das Problem das allgemeine Verständnis von \renewcommand ist, lies das bitte in einer LaTeX-Einführung nach. Die \protect werden benötigt, weil der Code ja mit \addtocontents in die toc-Datei geschrieben werden soll. Ohne die \protectc würde er dabei bereits expandiert.

Hallo Markus,

ganz ruhig! Ich bin Dir ja dankbar für Deine Hilfe und stelle die Fragen bestimmt nicht, um Dich zu ärgern.

Bei Deinen Beispielen war mir von Anfang an nicht klar, warum Du neue aufmachst. Ich hatte vermutet, dass das auf dem Missverständnis mit den sprechenden Platzhaltern beruht und gehofft, nachdem das ausgeräumt war, ganz normal weitermachen zu können. Insbesondere die % ACHTUNG-Kommentare haben mich davon abgehalten daran weiterzuarbeiten. Ganz nebenbei muss ich das ja auch noch alles in mein ursprüngliches XeLaTeX-Dokument zurück übersetzen, das (zumindest für meine LaTeX-Fähigkeiten) um einiges komplexer ist als das Minimalbeispiel hier.

Die \addsec*-Verwendung rührt daher, dass Du schriebst: Ich hatte ja bereits auf \addpart hingewiesen. Es gibt auch entsprechende Befehle für Kapitel (und sogar für Abschnitte). Ich habe mir daraufhin noch mal die entsprechende Stelle in der KOMA-Skript-Anleitung (scrguide.pdf) durchgelesen und – sagen wir mal so: meine Augen haben die Zeichen erkannt. Und dann habe ich Deinen Hinweis so gelesen, dass es hier besser wäre \addsec* anstatt \section* zu benutzen. Ich habe es jetzt wieder rückgängig gemacht und bin alles in allem bei meiner ersten Lösung angelangt.

Für mich stellt sich das Problem im Moment wie folgt dar: ich habe zwei Lösungen, die beide machen was ich will und zum selben PDF führen. Die eine ist technisch sauber (sagt der Profi), die andere verstehe ich (halbwegs). Und in dieser Situation tendiere ich dazu, die Lösung zu nehmen, die ich verstehe. Alldieweil die andere Lösung für mich eine Black Box darstellt, an der ich tunlichst nichts verändern sollte. (Eine Option, die ich in der anderen Variante zumindest theoretisch habe.)

Ich hatte diesen Teil des Forums als Anwender braucht Hilfe und weniger als Paketentwickler tauschen sich aus gelesen. Wie gesagt: ich bin Dir dankbar für Deine Hilfe. Aber die Tipps gehen soweit über das hinaus, was ich als Otto-Normal-Anwender verstehe (und meiner Meinung nach auch verstehen muss) und berühren so tiefliegende Funktionen, dass es wohl klüger ist die Finger davon zu lassen.

Eigentlich hatte ich gedacht, ich hätte eine einfache Frage gestellt. (Wie bekomme ich diesen blöden zweiten Punkt da weg?) Alles andere waren Nebenaspekte (insbesondere auch die Geschichte mit dem Inhaltsverzeichnis) und vielleicht war es dumm sie zu erwähnen. Aber ich hatte vermutet, dass sie zum Verständnis beitragen könnten.

Ich hatte dann gehofft, dass ich auf diese einfache Frage eine einfache Antwort à la Füge an dieser Stelle jenen Code ein, weil er das macht. erhalte. RTFM und probiere selber rum, ist nicht das, was einem ad hoc weiterhilft. Zumal ich lange in der KOMA-Skript-Anleitung gestöbert habe, bevor ich mich hier im Forum gemeldet habe. Unterm Strich mal wieder die Erkenntnis: LaTeX ist ein tolles Werkzeug, wenn man macht was LaTeX will. An sich ist das Programm sehr mächtig, aber diese Macht wird nicht in die Hände der Endnutzer gelegt. Was im Prinzip auch richtig ist, weil die eh nur Blödsinn anstellen. Nur, wenn man dann doch partout mal etwas ändern muss, wird es knifflig. Ich bin ja durchweg von LaTeX begeistert und auch bereit ein wenig in die Tiefen abzusteigen, aber letztlich ist das etwas was viele Endnutzer von LaTeX fernhält.

Aber alles in allem: noch mal danke! Ich habe jetzt eine Lösung, die für mich funktioniert und kann mich wieder dem Zuwenden, was mich eigentlich umtreibt. (Richtig, LaTeX-Pakete entwickeln ist es nicht.)

R.

Bild von Markus Kohm

Was bitte ist an meiner Lösung komplizierter als an Deiner? Die Lösung besteht letztlich aus

  1. Verwendung vorhandener Grundeinstellungen: \backmatter.
  2. Ändern der Anzeigetiefe nur im Inhaltsverzeichnis: \addtocontents, \protect und tocdepth.
  3. Feste Einstellung für Punkt nach Nummer nur im Inhaltsverzeichnis: \addtocontents, \protect, \renewcommand und \autodot.
  4. Änderung der Zählerausgabe für Unterabschnitte: \renewcommand und \thesubsection.
  5. Änderung des Zählerformats in Überschriften mit Sonderbehandlung der Abschnitts-Ebene: \renewcommand, \othersectionlevelsformat und \ifstr.
  6. Alles sauber in der Präambel an den Anhang gekoppelt: \makeatletter, \makeatother, \g@addto@macro und \appendix.

Dabei wurde noch erklärt, dass Punkt 3 im aktuellen Fall derzeit unerheblich ist. Das braucht man sich also tatsächlich nur anzuschauen, wenn die dort genannte Eventualität eintritt.
Für Punkt 6 wurde als Alternative das Paket etoolbox genannt, wobei vermutlich eigentlich \g@addto@macro auch nicht schwer zu verstehen ist.
Nachträglich erklärst Du, dass Punkt 2 ebenfalls unwichtig ist.

Punkt 3 fehlte in meinem ursprünglichen Vorschlag, Punkt 2 und 5 waren anders. Allerdings waren Hinweise zu den möglichen Änderungen bereits Teil meines ursprünglichen Vorschlags. Stattdessen hast Du den Vorschlag komplett über Bord geworfen und zweimal etwas neues gebastelt.

Du hast nicht das Anfängerforum, sondern das Anwenderforum verwendet. Deshalb darf ich bei meinen Antworten davon ausgehen, dass Du ganz normalen LaTeX-Code – und nichts anderes verwende ich oben in allen Lösungsvorschlagen – zusammen mit den größtenteils sehr ausführlichen Erklärungen in der KOMA-Script-Anleitung verstehst. Nun, das ist offenbar nicht der Fall. Aber was ist das Problem, dann konkret nachzufragen, statt wieder selbst etwas neues zu basteln, bei dem dann sofort auffällt, dass Dinge, die bei meinem Vorschlag funktioniert haben, nicht mehr funktionieren.

Im übrigen habe ich vorgekaute Lösungen bereits in meinem ersten Beitrag geliefert. Die zweite Lösung darin macht bereits fast, was Du gesucht hast. Die Änderung von tocdepth auf 0 statt -1, von der Du jetzt auch noch schreibst, dass sie nicht so wichtig ist, und die Änderung von \autodot zu einem festen Punkt ist wirklich minimal! Alles, was ich in meinem ersten Kommentar als Lösung vorgeschlagen habe, habe ich davor auch noch ausführlich erklärt – auch die Motivation des Achtung-Kommentars.

Die Änderungen von Nicht-XeLaTeX zu XeLATeX sind ebenfalls minimal, wobei ich wirklich nichts dafür kann, dass Du nicht gleich geschrieben hast, dass Du eine Lösung für XeLaTeX suchst.

Übrigens: Alle Änderungen, die bei meinen Vorschlägen notwendig waren, beschränken sich auf die Präambel!

Nichts desto trotz: Ich möchte wirklich wissen, was an meiner Lösung komplizierter ist. Bitte erkläre das, statt dich lang darüber auszulassen, dass Du ausschließlich vorgekaute, fertige Lösungen ohne Erklärung und Eigeninitiative haben willst, die Du aber bitte trotzdem verstanden haben willst. Dass die Intention dieses Forums oder zumindest meine Intention dieses Forums darin besteht, Dinge zu erklären, Dinge zu verbessern und Anleitung zum besseren Verständnis und langfristiger Selbsthilfe zu geben, muss ich hoffentlich nicht schon wieder erklären. Das sollte hinlänglich bekannt sein und dürfte mittelbar auch aus der Seitenbeschreibung hervor gehen. In der Vergangenheit konnte die KOMA-Script-Anleitung immer wieder dadurch verbessert werden, dass Leute erklärt haben, was und warum sie etwas nicht verstanden haben. Wenn Leute nur schreiben, dass ihnen etwas zu kompliziert ist, ohne zu erklären, was das konkrete Problem ist, dann wird sich nichts verbessern.

Es geht absolut nicht darum, ob mir Deine Lösungsidee gefällt oder ob ich mich daran störe, dass Du Dinge nicht weißt, die Du nun einmal nicht weißt. Es geht darum, das Problem zu verstehen und ob sich daraus für die Zukunft Verbesserungspotential ergibt. Es geht auch darum, dass ich hier keine Lösungen unkommentiert stehen lassen möchte, die in meinen Augen wieder das Potential haben, dass andere sie abkupfern und weiterverbreiten obwohl sie nicht wirklich empfehlenswert sind.

Hallo Markus,

ich versuche mich mal an einer Antwort. Ich fürchte ich wiederhole dabei ein wenig von dem, was ich zuvor gesagt habe.

Vorab: ich denke, unser Horizont was ein Anwender ist und was er versteht oder verstehen muss, geht sehr weit auseinander. Du hast mit KOMA-Script ein sehr mächtiges Paket (oder gar eine ganze Klasse) geschrieben. Ich klaube mir eine Präambel zusammen und freue mich dann über die Sachen, die LaTeX macht. Trotzdem würde ich mich noch als einigermaßen versierter LaTeX-Anwender bezeichnen. Und zumindest im Grund bemühe ich mich noch darum, zu verstehen was passiert. Wenn ich das mit dem Umgang anderer Leute mit LaTeX vergleiche, ist das eine Menge Engagement.

Zur konkreten Frage: ich wollte ein Dokument haben, dass im Hauptteil genauso aussieht wie jedes andere KOMA-Buch auch. Im Anhang sollte ein Teil, der nach zugegeben sehr eigenwilligen, aber festen Vorgaben erstellt wird. Eine Vorgabe war, dass die Kapitelüberschrift keinen Zähler erhält, die zweite dass der Abschnitt keinen Zähler erhält. Das habe ich mit den *-Versionen von \chapter und \section hinbekommen. Die dritte Vorgabe war, dass die Unterkapitel einen Zähler aus arabischer Ziffer und Punkt erhalten. Nach längerem rumsuchen, bin ich dazu auf \renewcommand*{\thesubsection}{\arabic{subsection}.} gestoßen und alles war wunderbar. Bis ich auf einen Unterabschnitt verwiesen habe und dort auf einmal der Punkt wieder auftauchte. Den wollte ich weg haben und habe trotz langem Suchen dafür keine Lösung gefunden.

Es tut mir leid, wenn ich dieses Problem nicht von Anfang an so klar geschildert habe. Ich habe mich bemüht dieses Problem in LaTeX zu formulieren und dabei ein möglichst einfaches Beispiel zu erstellen. Außerdem habe ich noch einen Hinweis darauf gegeben, wie der Anhang im Inhaltsverzeichnis auftauchen soll. Das war aber zu dem Zeitpunkt für mich ein Nebenaspekt. Weshalb ich den Hinweis in Klammern gesetzt habe. Im Nachhinein ist es dumm gewesen, dass ich das überhaupt erwähnt habe.

Deine Antwort (so wie ich sie wahrgenommen habe) bestand darin, mich auf grundsätzliche Fehler (Eingabecodierung, Sprachauswahl) hinzuweisen. Ich verstehe, dass dies Sachen sind, die Dir in anderem Kontext Probleme bereitet haben, bin mir aber nach wie vor nicht ganz sicher, ob das mein oben geschildertes Problem tangiert. Wie auch immer: ich habe diese Punkte in den folgenden Antworten aufgenommen. Ich bin mir unsicher, ob ich das richtig gemacht hast, da Du noch mal so explizit auf XeLaTeX hinweist.

Der zweite Teil Deiner Antwort bestand darin, mir mitzuteilen, dass meine Wünsche aus ästhetischen Gründen inakzeptabel sind. Da Du diesen Punkt in die Überschrift gesetzt hast, nehme ich an, dass er Dir besonders wichtig war. Ich hatte eigentlich gehofft, in meiner Eingangsfrage klar gestellt zu haben, dass ich die Vorgaben auch nicht wert schätze, aber dennoch gezwungen bin sie umzusetzen. Mein ästhetischen Empfinden bezog sich übrigens auf den Hauptteil des Dokuments, der sich bei Verwendung der Option numbers ebenfalls änderte, was nicht gewünscht war.

Dann bist Du zur eigentlichen Antwort übergegangen und hast auf die Befehle \part, \addpart und \part* verwiesen. Hier hätte ich mir gewünscht, dass Du mir sagst, wo ich sie in mein dargestelltes Minimalbeispiel einbauen soll und zu welchem Ergebnis sie führen. Zum warum hätte mir dann ein Verweis auf die KOMA-Skript-Anleitung genügt, in der ich mich dann bei Bedarf näher mit diesen Befehlen beschäftigt hätte. Ehrlich gesagt habe ich aber den ganzen Absatz überlesen, weil er auf einem Missverständnis in meinem Minimalbeispiel beruhte.

Dann antwortest Du zur Fragestellung des Inhaltsverzeichnisses. Wie gesagt, das spielte für mich zu dem Zeitpunkt eine untergeordnete Rolle. Aber auch hier wäre es hilfreicher gewesen, wenn Du gesagt hättest an welcher Stelle meines Minimalbeispiels ich das hätte einbauen sollen. Und, auch wenn ich das gar nicht erwähnt hatte, aber da Du darauf hinweist das Ganze noch mal als Negativbeispiel mit \setcounter.

Dann beantwortest Du eine Frage, die ich überhaupt nicht gestellt habe. Ich nehme an, das geschah in weiser Voraussicht, weil es ein Punkt ist, der vielleicht im Anschluss als Problem aufgetreten wäre. Wie Du merkst, sind wir an dieser Stelle aber schon meilenweit von meiner ursprünglichen Fragestellung entfernt, sodass es eher zu meiner Verwirrung beigetragen hat.

Dann verweist Du auf \backmatter und eigentlich ist es sehr schön, weil Du unmittelbar sagst, was es bewirkt: die Kapitel bekommen keinen Zähler, die Abschnitte und Unterabschnitte aber schon. Nur leider ist es nicht das was ich will, weil ja die Abschnitte auch keinen Zähler erhalten sollen.

Dann erwähnst Du, dass man das auch an den Aufruf von \appendix koppeln kann. Schön und gut, aber muss ich das an dieser Stelle machen? Oder kann ich das auch einfach so hinter \appendix schreiben? Und wenn nein, warum nicht? Und \g@addto@macro klingt für mich nach Programmierung und einer Ebene von LaTeX, die so tief liegt, dass ich eigentlich nicht in sie eingreifen will. Siehe dazu mein Eingangsstatement.

Dann folgt ein Beispiel Deinerseits, das komplett anders aussieht als das von mir vorgestellte Minimalbeispiel. Zu einigen Punkten hattest Du vorher was gesagt oder sie zumindest angedeutet, einige Befehl (adieresis, germandbls, \appendixname) tauchen komplett aus dem Nichts auf. Und bei wesentlichen Punkten wäre vorab eine kurze Erklärung hilfreich gewesen. (Warum wird numbers auf enddot gesetzt? Warum ist tocdepth −1?) Aber gut. Da das eh das falsche Beispiel war, konnte ich diesen Abschnitt auch komplett überlesen.

Dann kommt etwas, wo bei mir die Hoffnung aufkeimte, dass Du meine Eingangsfrage doch richtig verstanden hast. Offensichtlich ist das aber noch schlimmer als das, was Du dachtest was ich eigentlich vor hatte. Warum ist nicht klar. Doch auch hier folgt wieder ein Beispiel, dass sich von meinem Minimalbeispiel grundlegend unterscheidet. Also mal der Reihe nach:

  • Statt \documentclass{scrbook} verwendest Du \documentclass[numbers=enddot]{scrbook}. Ist das nicht dasselbe wie \KOMAoptions{numbers=enddot}? Das führte ja bei mir nicht zum gewünschten Ergebnis. Warum soll ich es hier trotzdem verwenden?
  • Dann legst Du Eingangscodierung und Sprache fest. Ich hatte ja verstanden, dass Dir das wichtig ist. Aber hat das irgendwelche Auswirkungen auf mein Minimalbeispiel?
  • Dann folgt wieder der Programmierteil. Unklar ist, warum der Befehl \appendix überhaupt geändert wird. Siehe oben.
  • Warum wird \backmatter verwendet, wenn das überhaupt nicht zum von mir gewünschten Ergebnis führt? Macht das an dieser Stelle noch etwas anderes, das ich wissen müsste?
  • Dann folgt \addtocontents{toc}{\protect\value{tocdepth}=-1\relax}. Du hattest vorher dazu etwas geschrieben und ich habe eine Ahnung davon, was es macht. Diesen Teil habe ich letztendlich ja auch übernommen. \protect ist mir unklar und auch, warum wir bei −1 anfangen.
  • Dann folgt ein Teil, den Du netterweise mit % ACHTUNG: Das sollte man besser nicht nachmachen! überschrieben hast. Ich nehme an, dass ich es aber dennoch machen soll.
  • \renewcommand*{\thesubsection}{\arabic{subsection}} kenne ich. Juchhu! Es fehlt der Punkt. Interessant (im Sinne von: auf diese entscheidende Änderung hättest Du ruhig hinweisen können).
  • Dann folgt der Absatz mit \othersectionlevelsformat. Zumindest aus meiner Perspektive stellt er die spätere Lösung des Problems dar. Umso erstaunlicher, dass er hier einfach vom Himmel fällt. Zumal Du ja bei der Schilderung von Nebenaspekten durchaus wortreich warst. Und eine kurze Erläuterung, was die einzelnen Befehle machen, wäre an dieser Stelle enorm hilfreich.
  • Du fügst das Inhaltsverzeichnis ein. Durchaus sinnvoll, aber dass ich es zuvor weggelassen habe, könnte durchaus ein Hinweis auf die Wichtigkeit dieses Aspekts für mich sein. Egal.
  • Dann änderst Du mein Minimalbeispiel. (\blinddocument statt \blindtext, zweiter Abschnitt im Anhang, …) Einen richtigen Grund kann ich dafür nicht erkennen. So weit ich es sehe tangiert das nicht meine Frage, oder?

Im nächsten Absatz ist meine Hoffnung wieder dahin, dass Deine Antwort meine Frage beantwortet. Ich hatte eigentlich gedacht, Dein Beispiel setzt meine Vorstellungen (mit den fremden Vorgaben) um. Aber offensichtlich doch nicht.

Okay, mal kucken was ich mitnehmen kann. \addtocontents{toc}{\protect\value{tocdepth}=-1\relax} klingt vernünftig und löst ein Problem, das ich bis dahin noch gar nicht richtig auf dem Schirm hatte. Ich schmeiße mal alle Befehle raus, die ich nicht verstehe und siehe da mit \addtocontents{toc}{\protect\setcounter{tocdepth}{0}} klappt es immer noch. (Ich bin mir gereade gar nicht mehr sicher, ob es auch ohne \protect ging und ich das nur einfach vergessen habe.) \renewcommand*{\othersectionlevelsformat}[3]{\ifstr{#1}{section}{}{#3\autodot\enskip} macht nicht ganz, was ich will. Also ersetze ich mal \autodot durch einen hart codierten Punkt. Auch hier Reduktion auf das Wesentliche, sprich \renewcommand*{\othersectionlevelsformat}[3]{\thesubsection.\enskip}. Alles wunderbar, nur die Nummerierung beginnt bei der falschen Zahl. Aber das kann ich ganz einfach mit \setcounter{subsection}{0} lösen. Heureka! Es klappt. Jetzt noch schnell im Originaldokument ausprobiert und auch dort führt es zu den gewünschten Ergebnissen. Juchhu, ich habe eine Lösung!

Du antwortest. Offensichtlich spielte \addpart für mein Problem doch eine Rolle. Komisch, galt das nicht nur für das Missverständnis. Na ja, dann greife ich mal generell darauf zu, wenn Du das so vehement forderst. Und da wo ich Code gekürzt habe, hatte er offensichtlich doch eine Funktion. Welche? Ich nehme es mal wieder mit rein, dann sollte ja alles in Ordnung sein. Jetzt müsste aber alles stimmen.

And then all hell breaks loose.

Okay, das Ganze scheint doch komplizierter zu sein. Aber ich habe ja eine Lösung, die macht was ich will. Also ist es besser, mich wieder auf meine eigentliche Arbeit zu konzentrieren.

Soweit meine Geschichte bis dahin.

Zu Deinen Fragen:

  1. Kein Problem, verwende ich ja auch. Auch, wenn ich mich nicht ganz sicher bin, was eigentlich ins Backmatter gehört und was nicht. (Also, \appendix\backmatter oder \backmatter\appendix.) Aber das ist eine inhaltliche Frage und spielt hier erstmal keine Rolle
  2. Inhaltsverzeichnis = Nebenaspekt, aber nun gut. * und \addcontentsline erscheint mir direkter und verständlicher, aber wie auch immer.
  3. Ich fürchte, da habe ich noch niemals das Problem verstanden.
  4. Jepp, der wesentliche Punkt. Und damit hatte ich ja auch schon begonnen.
  5. Das ist der für mich interessante Teil. Und das habe ich auch übernommen. Statt den wortreichen Erklärungen zu allen möglichen Nebenaspekten, wäre es sehr hilfreich gewesen, wenn Du hierauf detailliert eingegangen wärst.
  6. Hier ist mir noch immer unklar warum ich überhaupt in der Präambel rumfuschen soll. Das hat womöglich tiefgreifendere Änderungen als ich mir überhaupt wünsche und außerdem brauche ich die Änderungen ja nur einmal an einer Stelle. Das ist sicherlich keine LaTeX-Logik, aber manchmal im Leben unabdingbar. An sich scheint mir mein Vorgehen konsequent zu sein: grundlegende Dinge werden grundlegend festgelegt (also in der Präambel), einmalig Sachen vor Ort und generell fusche ich in den Grundeinstellungen nicht rum, wenn ich nicht genau weiß, was ich dort tue. War bis jetzt noch kein Frage (wie gesagt Minimalbeispiel), aber mal angenommen ich hätte noch einen zweiten Anhang, der komplett anders gestaltete werden soll. Rein hypothetisch. Dann wäre die Änderung in der Präambel vermutlich nicht die klügste Lösung, oder?

Das mit dem zweimal geändert kann man übrigens auch umgekehrt sehen. Ich habe jeweils ein Minimalbeispiel angegeben, dass Du umfangreich geändert hast. Und wie gesagt: nicht alle Änderungen hatten unbedingt etwas mit meiner Frage zu tun.

Zu den unterschiedlichen Horizonten hatte ich schon etwas gesagt. Wie aus meiner ausführlichen Schilderung oben hoffentlich ersichtlich wird, hatte ich statt einer gestellten Frage auf einmal ganz viele. Und da ist es schwierig an der entscheidenden Stelle anzusetzen. Tut mir leid, wenn das wie allgemeines Rumgemosere gewirkt hat. Zu den folgenden Sachen habe ich mich wohl ausführlich geäußert.

Und um es zusammenzufassen und für zukünftige Verbesserungen zu sorgen (neudeutsch heißt so etwas wohl tl;dr) vielleicht noch allgemein der Hinweis, was mein Problem war. Ich hatte ein konkretes Problem und habe auf eine konkrete Antwort gehofft. Nach dem Prinzip: wenn Du diesen Befehl eingibst, dann passiert das und das. Der Weg fängt gewissermaßen unten an und erkundet dann, was noch alles möglich oder nötig ist. Bei Dir habe ich häufig den Eindruck, dass Du eben weißt, was alles passieren kann. Gewissermaßen die Sicht von oben. Insbesondere wenn ich die KOMA-Skript-Anweisung lese ist das mein Eindruck. Generell würde ich mir da mehr Beispiele wünschen. (Der Befehl macht das und das. Beispiel Ergebnis ohne Befehl, Ergebnis mit Befehl.) Und eine Konzentration auf das Wesentliche. Ich weiß nicht, ob man das in der KOMA-Skript-Anweisung realisieren kann, vielleicht braucht es noch eine KOMAshort. (In Anlehnung an l2short.) Insgesamt habe ich Deine Antworten immer unter dem Motto gelesen Wo steht die Antwort auf meine Frage (und ehrlich gesagt lese ich die KOMA-Skript-Anleitung genauso) und dabei ist mir vieles über den Weg gelaufen, was für mich – zumindest auf den ersten Blick – nichts damit zu tun hatte.

Aber wie gesagt: vermutlich geht das Ganze darauf zurück, was wir unter einem Anwender verstehe. In meiner Sicht ist das jemand, der einen vorgegebenen Style nimmt, grundsätzlich weiß, dass LaTeX ein logisches Mark-Up und dann einfach seinen Text eingibt. Du erwartest die Kenntnis komplexer Befehle (und damit meine ich so etwas wie \makeatletter).

Abschließend nach diesem langen Sermon noch mal ein herzliches Danke schön für Deine Mühe. Auch wenn es nach dem gerade geschriebenen nicht so klingt, haben mir Deine Vorschläge doch sehr weitergeholfen. Selbst wenn meine Lösung für Dich unbefriedigend ist. Und generell ein herzliches Danke für KOMA-Skript. Was wäre die Welt bloß ohne… (vollkommen ohne Ironie.)

R.

Bild von Markus Kohm

Kurz gesagt und nimm das bitte nicht übel: Das Problem war, dass Deine Frage eigentlich ins Anfänger-Forum gehört und Du meine Antworten nicht komplett gelesen hast. Ich will das gerne auch begründen.

Robert T.:
Ich klaube mir eine Präambel zusammen

Das machen Anfänger so. Versierte Anwender, wissen hingegen wo etwas steht und verwenden in der Präambel dann gezielt das, was sie brauchen im Wissen, dass sie es brauchen, weil sie u. a. die Anleitungen zu den verwendeten Paketen gelesen haben.

Robert T.:
Ich verstehe, dass dies Sachen sind, die Dir in anderem Kontext Probleme bereitet haben, bin mir aber nach wie vor nicht ganz sicher, ob das mein oben geschildertes Problem tangiert.

Wieso in anderem Kontext. Wie ich bereits erklärt habe, bereitet das genau in Deinem Beispiel Probleme. Du verwendest das Paket blindtext. Ältere, aber noch immer sehr gebräuchliche Versionen von blindtext haben ein Problem, wenn die Sprache nicht deklariert ist. Also ist das für Dein Beispiel zwingend. In Deinem eigenen Beispiel ist die Überschrift »Zwischenüberschrift« verwendet. Darin kommt ein »ü« vor. Ein »ü« ist ein Sonderzeichen, das von der Eingabecodierung abhängt. Also ist es erforderlich entweder darauf hinzuweisen, dass XeLaTeX (oder LuaLaTeX) und ein Editor mit UTF8-Codierung zu verwenden ist oder aber man verwendet entweder inputenc oder selinput. Für das Beispiel selbst würde das übrigens auch mit XeLaTeX funktionieren, obwohl bei XeLaTeX der Verzicht auf inputenc/selinput besser ist.

Robert T.:
Ich hatte eigentlich gehofft, in meiner Eingangsfrage klar gestellt zu haben, dass ich die Vorgaben auch nicht wert schätze, aber dennoch gezwungen bin sie umzusetzen.

Ich hatte durchaus verstanden, dass der Anhang nun einmal so aussehen muss. Ich hatte Dich aber dahingehend verstanden, dass Du den Hauptteil nur aus einer persönlichen Geschmacksfrage gerne ohne den Punkt am Ende der Nummern hättest. Demnach hätte also der Hauptteil auch mit Punkt am Ende der Nummern gesetzt werden können und ich bin ausführlich darauf eingegangen, dass genau das die typografisch korrekte Lösung wäre. Ich habe zusätzlich mit einem Hinweis auf ein Zitat zweiter herausragender Typographen untermauert, dass typografische Korrektheit wichtiger ist als Dein persönlicher Geschmack.

Robert T.:
Dann bist Du zur eigentlichen Antwort übergegangen und hast auf die Befehle \part, \addpart und \part* verwiesen. Hier hätte ich mir gewünscht, dass Du mir sagst, wo ich sie in mein dargestelltes Minimalbeispiel einbauen soll und zu welchem Ergebnis sie führen.

Ich habe an dieser Stelle eindeutig auf die Anleitung verwiesen. Diese sagt klar, zu welchem Ergebnis \part, \addpart</cod> und <code>\part* führen und auch was die Unterschiede dieser Befehle sind. Wie in der Beschreibung des Forums zu finden ist, gehe ich davon aus, dass Anwender auch in der Lage sind, in der Anleitung nachzulesen, wenn man ihnen Befehle vorsetzt, von denen sie nicht wissen, was sie tun.

Dass ich mich auf die von Dir gesetzte Überschrift \chapter*{Anhang} bezogen hatte und das ein Fehlinterpretation Deines Beispiels war, hattest Du ja offensichtlich erkannt. Damit dürfte eigentlich auch klar sein, wo die Überschrift zu setzen war. Darüber hinaus habe ich ja nach der Erklärung dann ein Beispiel gebracht, in dem ich genau das gezeigt habe. Das dürfte also eindeutig sein. Ich denke, dass wir diesen Punkt also streichen können.

Robert T.:
Ehrlich gesagt habe ich aber den ganzen Absatz überlesen, weil er auf einem Missverständnis in meinem Minimalbeispiel beruhte.

Tja, das war aber ein grober Fehler Deinerseits. Du hättest an der Stelle natürlich trotzdem weiter lesen sollen. Mir dieses Versäumnis Deinerseits nun vorzuwerfen, finde ich ein wenig unfair. Daraus begründet sich dann nämlich auch der Code in meinem ersten Beispiel.

Robert T.:
Dann antwortest Du zur Fragestellung des Inhaltsverzeichnisses. Wie gesagt, das spielte für mich zu dem Zeitpunkt eine untergeordnete Rolle. Aber auch hier wäre es hilfreicher gewesen, wenn Du gesagt hättest an welcher Stelle meines Minimalbeispiels ich das hätte einbauen sollen.

Auch hier verweise ich darauf, dass das Beispiel, das auf die ganzen Erklärungen folgt natürlich nicht aus den Wolken gefallen ist, sondern genau das zeigt, was ich zuvor erkläre. Das wird dann also genau gezeigt, wie und wo man die zuvor erklärten Punkte umsetzt. Dazu ist das Beispiel so ausführlich mit Kommentaren versehen, dass nicht nur ein Anwender, sondern sogar ein Anfänger die Querbeziehung zum zuvor erklärten zumindest erkennen sollte. Aber selbst, wenn das nicht der Fall sein sollte: Warum hast Du das nicht gezielt nachgefragt?
Auf jeden Fall ist das wieder ein klares Zeichen, dass Du das falsche Forum verwendet hast. Das kann passieren. Aber bitte nicht mir das anlasten. Hättest Du gezielt nachgefragt, wäre mir das übrigens schon früher klar geworden.

Robert T.:
Dann beantwortest Du eine Frage, die ich überhaupt nicht gestellt habe. Ich nehme an, das geschah in weiser Voraussicht, weil es ein Punkt ist, der vielleicht im Anschluss als Problem aufgetreten wäre.

Logisch. Du willst nun aber hoffentlich nicht behaupten, es wäre nicht sinnvoll, dass ich mich bei meinen Antworten bemühe, weiter zu denken. Das ist hier ein öffentliches Forum. Selbst wenn das Problem bei Dir eventuell unerheblich ist: Schon beim nächsten ist es möglicherweise entscheidend. Also bemühe ich mich um saubere Lösungen und weise nach Möglichkeit auch frühzeitig auf mögliche Nebeneffekte und weitere Aspekte hin. Das hilft normalerweise auch Missverständnisse und Probleme zu vermeiden, die sonst häufig erst mit großer Verzögerung erkennbar werden und erheblichen Neuaufwand bedeuten.

Robert T.:
Wie Du merkst, sind wir an dieser Stelle aber schon meilenweit von meiner ursprünglichen Fragestellung entfernt

Das sehe ich nicht so. Wir sind hier eigentlich gerade erst am Anfang der ursprünglichen Fragestellung, wie Du sie geäußert hattest. Wir sind genau in einem Punkt von Deiner Intention entfernt, das ist die Sache mit \part*{\appendixname}. Aber das ist nicht weiter dramatisch, weil ich später ja genau auf diesen Punkt noch einmal zurück komme.

Robert T.:
Dann verweist Du auf \backmatter und eigentlich ist es sehr schön, weil Du unmittelbar sagst, was es bewirkt: die Kapitel bekommen keinen Zähler, die Abschnitte und Unterabschnitte aber schon. Nur leider ist es nicht das was ich will, weil ja die Abschnitte auch keinen Zähler erhalten sollen.

Du glaubst also, wenn ein einzelner Befehl nur einen Teil des gewünschten Ergebnisses liefert, dann kann er nicht Teil der Lösung sein, sondern verfehlt das Thema? Das wäre selbst für einen Anfänger eine grobe Fehleinschätzung. Wenn ein Befehl bereits einen wesentlichen Schritt in die richtige Richtung liefert, dann sollte man den unbedingt als Teil der Lösung in Betracht ziehen!

Robert T.:
Schön und gut, aber muss ich das an dieser Stelle machen?

Würde ich es sonst erwähnen? Spricht etwas dagegen?

Robert T.:
Oder kann ich das auch einfach so hinter \appendix schreiben?

Man kann vieles machen, was man nicht sollte. Eines der Grundprinzipien von LaTeX ist die Trennung von Form und Inhalt. Alles, was die Form betrifft, gehört in die Dokumentpräambel. Zwischen \begin{document} und \end{document} gehören Inhalt und Semantik. Dieses Grundprinzip sollte jeder Anfänger bereits möglichst früh lernen. Nach diesem Prinzip sollte jedem Anwender klar sein, dass die Befehle zur Änderung der Form des Anhangs in die Präambel gehören und Bestandteil der Umschaltung auf den Anhang sein sollten. Wenn ich das jemandem erst noch erklären muss, dann zeigt das, dass derjenige eben kein versierter Anwender, sondern ein blutiger Anfänger ist. Ob derjenige nun erst zwei Tage oder schon zwei Jahre mit LaTeX arbeitet, spielt keine Rolle. Ich erwähne das nicht um zu sagen: »Ätschi-bätschi, Du bist ein Anfänger!«. Ich erwähne das, um klar zu machen, wieso ich jemandem, der sich schon durch die Wahl des Forums als Anwender klassifiziert, die Vorteile der Verlagerung in die Präambel nicht erst erklärt habe.

Robert T.:
Und \g@addto@macro klingt für mich nach Programmierung und einer Ebene von LaTeX, die so tief liegt, dass ich eigentlich nicht in sie eingreifen will.

Ich hatte an der Stelle explizit auf das Paket etoolbox hingewiesen. Dieses bietet für denselben Zweck Befehle auf Anwenderebene. Da der einzige Gewinn in diesem Fall aber im Weglassen von \makeatletter und \makeatother besteht, habe ich tatsächlich auf die Verwendung verzichtet. Hier bin ich davon ausgegangen, dass ein Anwender mit dieser Anweisung höchstwahrscheinlich schon längst konfrontiert wurde oder in der Lage ist, aus dem recht deutlichen Namen auf die Funktion zu schließen oder zumindest ggf. gezielt nachzufragen, was denn die Anweisung genau macht. Im Anfängerforum hätte ich das tatsächlich anders gemacht.

Robert T.:
Dann folgt ein Beispiel Deinerseits, das komplett anders aussieht als das von mir vorgestellte Minimalbeispiel.

Natürlich sieht es anders aus. Hast Du tatsächlich erwartet, dass ich zunächst Kritikpunkte äußere und diese dann in meinem Ergebnis nicht berücksichtige? Ehrlich gesagt, hatte ich sogar Zweifel, dass Du Dein Beispiel selbst getestet hast. Wenn ich das nämlich mit latex, pdflatex, xelatex oder lualatex verarbeite, dann erhalte ich:

! Argument of \@sect has an extra }.
<inserted text> 
                \par 
l.18    \subsection{Foo \label{Abschnitt1}}

Mit latex und pdflatex erhalte ich zusätzlich

Missing character: There is no à in font cmssbx10!
Missing character: There is no ¼ in font cmssbx10!

und mit xelatex

Missing character: There is no ü in font cmssbx10!

unmittelbar vor der Fehlermeldung. Nun, vermutlich war es mein Fehler, dass ich von meinem Prinzip abgewichen bin, zunächst auf ein korrektes Minimalbeispiel zu bestehen. Aber ich wollte auch nicht päpstlicher als der Papst sein. Ich wusste ja, wie ich diese Probleme beseitigen kann.

Robert T.:
einige Befehl (adieresis, germandbls, \appendixname) tauchen komplett aus dem Nichts auf.

adiearesis und germandbl sind keine Befehle, sondern Optionen zum Befehl \SelectInputMappings. Der wiederum gehört zu Paket selinput, das ich zuvor nicht nur wärmstens empfohlen hatte. Ich hatte mit sogar die Mühe eines Link zum Paket (dort findet man auch die Anleitung) gemacht. Also darf ich auch erwarten, dass man sich das einmal anschaut, wenn man es noch nicht kennt. Sorry, aber wenn Du erwartest, dass ich Dir Anleitungen vorlese, dann bist Du nicht nur an diesem Forum sondern auch im Anfängerforum falsch. Es sollte hinlänglich bekannt sein, dass ich das grundsätzlich nicht mache. Da bin ich kompromisslos.

Robert T.:
Warum wird numbers auf enddot gesetzt?

Das hatte ich erklärt:

Markus Kohm:
Gliederungsnummern mal mit Punkt am Ende mal ohne zu setzen ist ganz unabhängig von Deinem ästhetischen Empfinden schlicht falsch. Man sollte Gleiches immer Gleich setzen. Also verwendet man den Punkt entweder oder man lässt ihn weg. Das geht ganz einfach mit Option numbers.

Robert T.:
Warum ist tocdepth −1?

Warum Änderung von tocdepth habe ich zuvor erklärt. Warum -1 steht im Kommentar zusammen mit dem Verweis auf die Anleitung.

Robert T.:
Da das eh das falsche Beispiel war, konnte ich diesen Abschnitt auch komplett überlesen.

Damit erübrigt sich dann wohl die Frage, ob Du das überhaupt gelesen hast. Du hast es offenbar nicht. Hättest Du aber vielleicht besser.

Robert T.:
Offensichtlich ist das aber noch schlimmer als das, was Du dachtest was ich eigentlich vor hatte. Warum ist nicht klar.

Das ist nicht klar? Obwohl Du bereits erkannt hattest, dass mir genau der Punkt so wichtig war, dass ich ihn in den Betreff gesetzt habe? Das erstaunt mich jetzt aber.

Robert T.:
Statt \documentclass{scrbook} verwendest Du \documentclass[numbers=enddot]{scrbook}. Ist das nicht dasselbe wie \KOMAoptions{numbers=enddot}? Das führte ja bei mir nicht zum gewünschten Ergebnis. Warum soll ich es hier trotzdem verwenden?

Hatte ich nicht geschrieben, was die typografisch einzig vertretbare Lösung ist? Bin ich nicht im Anschluss an dieses Beispiel noch einmal auf Deinen Geschmack und die möglichen Änderungen um diesen in diese Lösung einzufügen eingegangen? Nachdem Du bereits zugegeben hast, dass Du ganze Abschnitt meiner Antwort nicht gelesen hast: Hast Du diesen Teil denn wenigstens gelesen?

Robert T.:
Dann legst Du Eingangscodierung und Sprache fest. Ich hatte ja verstanden, dass Dir das wichtig ist. Aber hat das irgendwelche Auswirkungen auf mein Minimalbeispiel?

Aber sicher doch! Ohne die bekomme ich (auch bei Verwendung von XeLaTeX) kein korrektes »Zwischenüberschrift«. (Ganz abgesehen davon, dass Dein Beispiel ohnehin geändert werden musste, um einen fehlerfreien LaTeX-Lauf zu ermöglichen.) Außerdem solltest Du wie gesagt nicht erwarten, dass ich erst auf Mängel hinweise und sie dann nicht möglichst behebe. Ich mache viel Unfug, aber den sollte man von mir nicht erwarten!

Robert T.:
Warum wird \backmatter verwendet, wenn das überhaupt nicht zum von mir gewünschten Ergebnis führt? Macht das an dieser Stelle noch etwas anderes, das ich wissen müsste?

Ich hatte auf die Anleitung verwiesen. Dort steht, was \backmatter noch alles macht. Es hat beispielsweise den Vorteil, dass auch gleich die Nummerierung von Tabellen und Abbildungen mit behandelt. Die müsstest Du bei Deiner angeblichen Lösung nämlich ggf. auch noch extra berücksichtigen. Wenn Dich das wirklich interessiert hat, warum hast Du es dann nicht nachgelesen. Wenn es Dich nicht wirklich interessiert hat, warum hast Du nicht einfach darauf vertraut, dass der KOMA-Script-Autor schon wissen wird, was seine Befehle tun?

Robert T.:
\protect ist mir unklar und auch, warum wir bei −1 anfangen.

Das habe ich ja inzwischen erklärt. Hättest Du am besten direkt nachgefragt.
Wobei Du es ja vor \setcounter nachher selbst gesetzt hast. Dass Du da trotz vorheriger Warnung und Beispiel, wie man das Problem vermeiden kann, trotzdem \setcounter verwendet hast, hat mich extrem erstaunt und an meinem Verstand zweifeln lassen.

Robert T.:
Dann folgt ein Teil, den Du netterweise mit % ACHTUNG: Das sollte man besser nicht nachmachen! überschrieben hast. Ich nehme an, dass ich es aber dennoch machen soll.

Nö. Ich rate dringend davon ab. Es bewirkt etwas, was ich keinesfalls empfehlen kann, was Du aber haben willst. Hier lesen auch andere Leute. Üblicherweise wird Code mal eben einfach aus dem Internet kopiert. Da ist es mir sehr lieb, wenn diese Warnung mit kopiert wird. Nicht dass am Ende noch jemand behauptet, ich habe das empfohlen. Ich empfehle aus typografischen Gründen, im Anhang das Nummerierungsschema nicht neu zu erfinden, sondern entweder ganz auf Nummern zu verzichten oder dasselbe Schema wie im Hauptteil zu verwenden und lediglich die Kapitel mit Großbuchstaben statt mit arabischen Zahlen zu versehen. Ich denke, das geht aus der KOMA-Script-Anleitung und auch aus meinen Ausführungen meiner Antworten hier klar hervor.

Robert T.:
\renewcommand*{\thesubsection}{\arabic{subsection}} kenne ich. Juchhu! Es fehlt der Punkt. Interessant (im Sinne von: auf diese entscheidende Änderung hättest Du ruhig hinweisen können).

JA, da hast recht. Darauf hätte ich tatsächlich deutlich hinweisen können. Ich hatte angenommen, dass das mit meinen Hinweisen auf \…format und \autodot zumindest nach dem Studium der Anleitung klar genug hervor geht. Aber in diesem Punkt gebe ich Dir absolut recht: Hätte ich explizit drauf hinweisen sollen. Werde ich nachträglich noch ändern, damit andere es nicht so leicht übersehen.

Robert T.:
Dann folgt der Absatz mit \othersectionlevelsformat. Zumindest aus meiner Perspektive stellt er die spätere Lösung des Problems dar. Umso erstaunlicher, dass er hier einfach vom Himmel fällt.

Mag sein, dass der Eindruck entsteht, es würde vom Himmel fallen. Allerdings erwarte ich im Anwenderforum, dass man solche Befehle dann in der KOMA-Script-Anleitung nachschlägt. Dort ist \othersectionlevelsformat recht ausführlich beschrieben. Trotzdem ist diese Kritik berechtigt und ich werde auch hier meinen Kommentar noch ein wenig erweitern. Aber warum hast Du das nicht gleich nachgefragt, wenn es Dir nach Lesen der Anleitung noch immer unklar war?

Robert T.:
Du fügst das Inhaltsverzeichnis ein. Durchaus sinnvoll, aber dass ich es zuvor weggelassen habe, könnte durchaus ein Hinweis auf die Wichtigkeit dieses Aspekts für mich sein. Egal.

Sorry, aber nachdem Dein Beispiel nicht einmal ohne Fehler durchlief und Du bereits die Deklaration von Sprache und Codierung vergessen hattest, erwartest Du da ein wenig viel. Außerdem hattest Du explizit auf Wünsche bezüglich des Inhaltsverzeichnisses hingewiesen, also war es logisch die Auswirkungen meiner Änderungen auf das Inhaltsverzeichnis auch zu zeigen. Ich darf mich hoffentlich wundern, wenn dieser Befehl das Beispiel in Deinen Augen verkompliziert hat.

Robert T.:
Dann änderst Du mein Minimalbeispiel. (\blinddocument statt \blindtext, zweiter Abschnitt im Anhang, …) Einen richtigen Grund kann ich dafür nicht erkennen. So weit ich es sehe tangiert das nicht meine Frage, oder?

Selbstverständlich tangiert das Deine Frage. Du wolltest Änderungen bei \section und \subsection, die sich nur auf den Anhang auswirken. Wie kann ich die Unterschiede zwischen Hauptteil und Anhang zeigen, wenn im Hauptteil gar keine Überschriften dieser Ebene zu finden sind? Die einfachste Methode alle Gliederungsebenen und etwas Text zu zeigen ist \blinddocument. Und auch hier entzieht sich mir das Verständnis, warum das Beispiel dadurch komplizierter geworden sein soll. Ich würde eher das Gegenteil vermuten.

Robert T.:
Ich schmeiße mal alle Befehle raus, die ich nicht verstehe und siehe da mit \addtocontents{toc}{\protect\setcounter{tocdepth}{0}} klappt es immer noch.

Aber nur, wenn man meine diesbezügliche Warnung unbeachtet lässt. Vielleicht hätte ich das Beispiel tatsächlich noch komplizierter und auch noch eine Gleitumgebung nebst Verzeichnis einfügen sollen. Dann sieht man nämlich tatsächlich, dass das so alleine nicht geht.

Robert T.:
Also ersetze ich mal \autodot durch einen hart codierten Punkt. Auch hier Reduktion auf das Wesentliche, sprich \renewcommand*{\othersectionlevelsformat}[3]{\thesubsection.\enskip}.

Der hart codierte Punkt ist hier nicht das Problem. Das Problem ist, dass Du die Unterdrückung der Ausgabe der Nummer für die \section-Ebene rausgeworfen hast. Damit musst kannst Du dann auch \section nicht mehr verwenden und damit bekommt Du erst das Problem mit allen Nummern, die von \section normalerweise zurück gesetzt werden. Das Problem bekommst Du übrigens bei jedem neuen Abschnitt aufs neue und musst dort all diese Zähler jedes Mal von Hand zurück setzen. Das ist nicht nur bezüglich der Trennung von Form und Inhalt schlecht, es birgt auch ein erhebliches Potential für Fehler. Warum Du diesen entscheidenden Vorteil meiner Lösung über Bord geworfen hast oder sogar als Verkomplizierung betrachtest, ist mir schleierhaft. Dieser Punkt macht die Dinge eigentlich erst richtig einfach.

Robert T.:
aber mal angenommen ich hätte noch einen zweiten Anhang, der komplett anders gestaltete werden soll.

Was bitte soll ein zweiter Anhang sein. Es gibt einen Anhang und dieser kann mehrere Kapitel und meinetwegen sogar mehrere Teile haben. Aber selbst wenn es so etwas wie mehrere Anhänge geben würde, die unterschiedlich aussehen sollen: Dann definiert man dafür mehrere Befehle. Hättest Du beispielsweise zunächst einen Anhang, der ganz normal aussieht und dann später noch einen Anhang, wie Du ihn oben beschrieben hast, dann könnte man:

\newcommand*{\typomurksappendix}{%
{%
  \appendix
  \backmatter% Macht schon einmal eine ganze Menge von dem, was gewünscht wird
             % (siehe KOMA-Script-Anleitung, scrguide.pdf oder scrguien.pdf).
  \addtocontents{toc}{% Im Inhaltsverzeichnis:
    \protect\value{tocdepth}=0\relax% Ab hier nur noch \chapter
                                % im Inhaltsverzeichnis
                                % anzeigen (zu tocdepth siehe
                                % KOMA-Script-Anleitung, scrguide.pdf oder
                                % scrguien.pdf).
  % ACHTUNG: Ab hier beginnt das typographische Grauen!
  % ACHTUNG: Das sollte man besser nicht nachmachen!
    \protect\renewcommand*{\protect\autodot}{.}% Auch im Verzeichnis soll ab
                                % hier natürlich der Punkt verwendet werden.
                                % In der Realität wird sich das allerdings nicht
                                % auswirken, da zuvor ohnehin die Einträge ab \section
                                % über tocdepth deaktiviert wurden und die Einträge
                                % für Kapitel (wegen \backmatter) nicht nummeriert
                                % werden. Zur Vollständigkeit lasse ich das aber drin,
                                % falls tocdepth später doch noch geändert wird.
  }%
  \renewcommand*{\thesubsection}{\arabic{subsection}}%
  \renewcommand*{\othersectionlevelsformat}[3]{%
    \ifstr{#1}{section}{% Wenn Argument #1 "section" ist …
      % … gegen wir gar nichts aus.
    }{% Wenn das Argument etwas anderes ist, also "subsection",
      % "subsubsection" …
      #3.\enskip % … geben wir das dritte Argument (\thesubsection,
                        % \thesubsubsection …) gefolgt von einem hart codierten
                        % Punkt und einem Abstand von 0.5em aus.
    }%
  }%
}
\newcommand*{\niceappendix}{\appendix}

definieren und dann für den ersten Anhang \niceappendix und für den zweiten \typomurksappendix verwenden. Das würde auch noch funktionieren, wenn man den ersten Anhang komplett weglassen würde. Nur, wenn der erste Anhang mit dem zweiten vertauscht werden sollte, müsste man etwas mehr Aufwand treiben. Aber auch dann müsste man nichts am Anhang selbst, sondern nur an den Definitionen von \niceappendix und \typomurksappendix ändern. Ich könnte Dir nun natürlich auch sagen, was in diesem Fall zu ändern wäre, aber ich will das Beispiel nicht verkomplizieren.

Robert T.:
Und wie gesagt: nicht alle Änderungen hatten unbedingt etwas mit meiner Frage zu tun.

Alle Änderungen hatten mit Deiner Frage zu tun. Du wolltest das nur nicht wahr haben und hast spekuliert oder sogar gehofft, dass dem nicht so wäre.

Robert T.:
Beispiel Ergebnis ohne Befehl, Ergebnis mit Befehl.)

Ich kann doch hier nicht 100 von Beispiele für Teilspekte einer Antwort anführen. Was ist denn das Problem, das ggf. selbst auszuprobieren? Sorry, aber Du scheinst einen ganz falschen Eindruck von meiner Zeit zu haben. Schon mein Bemühen, Dich zu verstehen und doch noch an die Hand zu nehmen, kostet eigentlich viel mehr Zeit als ich habe. Dass ich jeden einzelnen Schritt und seine einzelnen Auswirkungen mit Beispielen und womöglich auch noch Bildern hier verdeutliche kann ich schlicht nicht leisten. Unter dem Anspruch würde ich zerbrechen. Gerade wenn – wie bei \othersectionlevelsformat – in der Anleitung bereits Beispiele und ausführliche Erklärungen zu finden sind, muss mir gestattet sein, hier etwas kürzer zu sein. Das gilt insbesondere im Anwenderforum. Im Anfängerforum bin ich oft ausführlicher als mir lieb ist. Hier aber bitte nicht auch noch!

Im übrigen hast Du ja gerade meine Erklärungen nach eigenem Bekunden weitgehend übersprungen. Da darf ich also laut bezweifeln, dass noch mehr Erklärungen und noch mehr Beispiele wirklich viel genutzt hätten. Aber wie gesagt: Das ist für mich ohnehin nicht zu leisten. Ich habe auch noch ein Leben und eine Arbeit. Wärst Du bereit, mich für die ganzen Erklärungen so zu bezahlen, dass ich diese andere Arbeit nicht mehr zu tun hätte? Nein, Du brauchst das jetzt nicht zu beantworten, ich würde das Angebot ohnehin nicht annehmen. Aber darüber nachdenken solltest Du einmal.

Robert T.:
Und eine Konzentration auf das Wesentliche.

Das ist ein sehr guter Punkt. Das Wesentliche steht bereits am Anfang meiner ersten Antwort: »Was Du als unschön empfindest, ist einzig korrekt«. Das hättest Du vielleicht ein wenig ernster nehmen sollen. Vielleicht hätte ich damit die Antwort auch schon beenden sollen statt mich auf lange Erklärungen einzulassen. Allerdings ist das nächste Wesentliche, dass es mir nicht darum geht, einem Hungrigen einen Fisch zu geben. Ich will vielen Hungrigen zeigen, wie man angelt. Wer nur einen Fisch will, ist hier falsch. Das habe ich immer gesagt, dazu stehe ich.

Und falls Du mit Deinen Auslassungen zu »KOMA-Script-Anweisung« die KOMA-Script-Anleitung« meinst: Die ist nicht von oben herab geschrieben, sondern in dem Bemühen, die Dinge zu erklären. Hier argumentierst Du dann auch etwas paradox. Zum einen möchtest Du keine Erklärungen haben, zum anderen möchtest Du aber mehr erklärt haben. Zum einen möchtest Du alles (Stichwort: KOMAshort), zum anderen möchtest Du aber noch mehr Beispiele. In der KOMA-Script-Anleitung – auch sind im Vergleich zu anderen Anleitungen – bereits sehr viele Beispiele! Im Quelltext sind alleine 142 Example-Umgebungen zu finden. Viele davon enthalten mehr als ein Beispiel oder mehrgliedrige Beispiele. Tatsächlich wird die KOMA-Script-Anleitung zusammen mit l2kurz häufig auch als Anfängeranleitung empfohlen, obwohl ich das gar nicht so mag und das auch nicht die Intention ist. Eigentlich beschweren sich auch eher die wirklich versierten Anwender, dass es keine Kurzreferenz ohne die ganzen Beispiele gibt. Das kann ich nachvollziehen.

Übrigens: \makeatletter wird in der KOMA-Script-Anleitung nur genau einmal in Kapitel 13 verwendet. Kapitel 13 ist im Experten-Teil und trotzdem wird dort erklärt, warum man \makeatletter an dieser Stelle braucht. Etwas später gibt es dann aber sogar noch eine Lösung für reine Anwender, die ohne \makeatletter auskommt. Also hast Du mit »KOMA-Script-Anweisung« vielleicht doch nicht die Anleitung gemeint.

Markus

PS: Eigentlich war meine Antwort noch länger. Allerdings hatte ich dafür so lange benötigt, dass mich komascript.de ausgeloggt hatte und damit die Berechtigung zum Versenden einer Antwort erloschen war. Die Antwort war also weg. Vielleicht klingt deshalb diese zweite Antwort etwas rauer, als sie eigentlich gedacht ist. Ich wollte einfach irgendwann auch fertig werden.

PPS: Gerade fällt mir auf: Eigentlich hätte ich nach dem ersten Absatz dieser Antwort auch nur schreiben können: »Schau Dir einfach einmal die Frage von p.&nbps;mueller an. Der hat sich ein Beispiel zusammengetragen, hat aber darin etwas nicht verstanden. Also fragt er gezielt nach. Er bekommt von mir eine weitschweifige Erklärung und ein Verweis auf nicht einmal die freie KOMA-Script-Anleitung, sondern das KOMA-Script-Buch einschließlich dort existierender Lösung zusammen mit Hinweisen zu einer weiteren Selbstbaulösung oder Informationsmöglichkeit – alles ohne eine Zeile Code von mir in der Antwort. Er geht in seiner eigenen Antwort dann genau auf diese Antwort ein. Dass das auch noch genau das war, was er wollte ist zwar erfreulich aber für mich nicht der springende Punkt. So stelle ich mir die Kommunikation mit einem Anwender vor. Bei Dir hatte ich hingegen bei Deinem Kommentar auf meine Antwort sofort das ungute Gefühl, dass Du meine Antwort weitgehend unbeachtet lässt. Und jetzt kommt der Hammer: Das Beispiel mit p. mueller stammt ursprünglich aus dem Anfängerforum gar nicht aus dem Anwenderforum! Ins Anwenderforum wurde das erst von mir verschoben.

Hallo Markus,

ich bemühe mich mal um eine kurze Antwort.

Was wir jeweils unter einem Anwender verstehen, ist nun mal unterschiedlich. Und da ist Deine Verschiebung in das Anfängerforum konsequent. (Ich habe den Thread jetzt sogar wiedergefunden, yippieh!)

Wenn man will, ist Deine Antwort Es wird klarer stellvertretend für den ganzen Thread. Du erklärst ausführlich Nebenaspekte (Eingangscodierung, Sprachwahl, Inhaltsverzeichnis) und lässt Dich wortreich dazu aus, warum es typografischen Grundregeln widerläuft, was ich vorhabe. (Noch mal: das ist mir bewusst. Ich komme aber trotzdem nicht drumherum.) Zum eigentlichen Problem äußerst Du Dich kaum.

Mir wäre eingangs eine Antwort nach dem Schema

Hallo Robert,

vorab: Dein Minimalbeispiel ist leider ein wenig zu minimal. Ohne Angabe einer Eingangscodierung und einer Sprachwahl kommt es zu Problemen. Füge einfach

 \usepackage[ngerman]{babel}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}

oder etwas Ähnliches in Dein Beispiel ein. Auf Deine eigentliche Fragestellung hat das keine Auswirkung, aber der Code läuft sauber durch.

Noch eine Bemerkung vorab: Dir ist hoffentlich klar, dass was Du vorhast sämtlichen typografischen Grundregeln widerläuft. Du hast sicherlich gute Gründe das zu machen, was Du tust, solltest Dir aber verdammt sicher sein, dass Du das wirklich willst.

Zu Deinem eigentlichen Problem: wir kümmern uns mal zuerst um den Punkt in der Referenz. Um das korrekte Tabellenverzeichnis kümmern wir uns später. Du änderst die Nummerierung des Unterabschnitts mit \renewcommand*{\thesubsection}{\arabic{subsection}.} Das ist falsch, weil… Nimm den hart codierten Punkt zunächst raus, also \renewcommand*{\thesubsection}{\arabic{subsection}}. Um ihn wieder in die Überschrift zu bekommen, gebe zusätzlich \renewcommand*{\othersectionlevelsformat}[3]{#3.\enskip} ein. Damit sollte es erstmal grundsätzlich klappen. \othersectionlevelsformat bewirkt, dass… Die Details findest Du in der KOMA-Script-Anleitung ab Seite X. Noch besser ist es, wenn Du…

hilfreicher gewesen. Das ist das, was ich mit dem Aufbau von unten meinte. Das nur noch mal, um aufzuzeigen, wo es hier zwischen Sender und Empfänger zu Missverständnissen gekommen ist.

Ich weiß Dein Engagement wirklich zu schätzen. Aber ich denke, das habe ich bereit ausreichend kund getan.

R.

PS: Ja, mit KOMA-Skript-Anweisung meinte ich tatsächlich die KOMA-Script-Anleitung. Eigentlich dachte ich, hätte ich das vor dem Senden flächendeckend korrigiert. Dass es mir zweimal durchgegangen ist, bitte ich zu entschuldigen und verweise einfach mal auf die fortgeschrittene Stunde.
PPS: Ich weiß, das Forum bietet keine andere Möglichkeit. Aber die Änderungen sind leider ein wenig intransparent. Ich hoffe, ich habe sie überall nachvollzogen.

Bild von Markus Kohm

Ich werde mir daher auch künftig nicht vorschreiben lassen, auf welche Weise ich meine Antworten formuliere und wo ich die Schwerpunkte bei meinen Antworten setze. Darüber hinaus denke ich, habe ich ausreichend begründet, warum ich ausführliche Antworten in der gegebenen Art bevorzuge. Das Internet ist nun einmal der Ort, an dem man nicht die Antworten bekommt, die man gerne hätte, sondern die die ein anderer zu geben bereit ist.

Anders gesagt: Nichts im Leben ist umsonst. Dafür, dass Du hier Fragen stellen darfst, musst Du mit meinen Antworten leben. Dafür dass ich hier mein Wissen kostenlos zur Verfügung stellen darf, muss ich mit Leuten leben, die glauben daraus Ansprüche ableiten zu dürfen.

Nur kurz zur Klarstellung: ich stelle hier keine Ansprüche. Die Frage war

Es geht darum, das Problem zu verstehen und ob sich daraus für die Zukunft Verbesserungspotential ergibt.

und dazu habe ich versucht Hinweise zu geben. Mehr nicht.

Da das aber alles nichts mehr mit der Eingangsfrage zu tun hat, endet für mich die Diskussion hier.

R.

Bild von Admin

Da sich inzwischen erwiesen hat, dass für die Beantwortung der Frage doch Anfängerinformationen notwendig waren und Markus seine Lösungsvorschläge inzwischen auch entsprechend angepasst hat, wurde das Thema entsprechend aus dem Forum "Anwender sucht Hilfe" hierher verschoben.

Administratorentscheidungen sind grundsätzlich nicht im Forum zu diskutieren. Für Fragen an die Administratoren ist die bekannte Administrator-E-Mail-Adresse oder das Forum Site zu verwenden.

Comments for "Punkt aus Abschnittsnummerierung in Referenz" abonnieren