Mich hätte interessiert, wie ich das

% How to make this better? \newcommand{\Chapter}[2][\thechapter]{ \chapter{#2}\label{ch:#1}% \addthumb{#2}{% \space\Large\sffamily\bfseries\thechapter}{white}{black} }

für den normalen Befehl \chapter[short]{long} hinbekomme, also so dass ich nicht \Chapter verwenden muss.

alt text

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}
\usepackage{thumbs}

% How to make this better?
\newcommand{\Chapter}[2][\thechapter]{
\chapter{#2}\label{ch:#1}%
\addthumb{#2}{%
\space\Large\sffamily\bfseries\thechapter}{white}{black}
}

\usepackage{mwe}
\begin{document}
\pagenumbering{arabic} %thumbs needs that?!

\Chapter{Chapter 1}
\section{Very important section}
\lipsum[1]

\Chapter{Chapter 2}
\lipsum[1-2]
\end{document}

gefragt 03 Jun, 13:38

cis's gravatar image

cis
9.3k21204335
Akzeptiert: 62%

bearbeitet 03 Jun, 13:46

Für so was gibt's titlesec.

(03 Jun, 19:18) Gelöscht

Was soll den bei \addchap und den Sternformen passieren? Die setzen zwar mit dem Beispiel keinen neuen, eigenen Thumb, aber die Seiten bekommen den des vorherigen Kapitels.

(06 Jun, 08:01) esdd

Ich würde entweder den KOMA-Autor um einen geeigneten Hook bitten, oder einen internen Befehl patchen (das Inhaltsverzeichnis bekommt dabei bewusst keinen Thumb). Meiner Ansicht nach, ist es keine gute Idee, automatisiert ein label zu setzen - wenn du die Kapitel umbenennst oder umstellst, fliegen dir die Referenzen um die Ohren.

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}
\usepackage{thumbs}
\usepackage[T1]{fontenc}
\usepackage{xpatch,expl3}
\ExplSyntaxOn\makeatletter
\cs_new_protected:Npn \addthumbstochapter #1
 {
  \int_compare:nNnTF { \c@secnumdepth } < { \chapternumdepth }
   { %für \addchap ??
    \addthumb{#1}{%
    \space\Large\sffamily\bfseries ??}{white}{black}
   }
   { %für \chapter
    \addthumb{#1}{%
    \space\Large\sffamily\bfseries \thechapter}{white}{black}}
 }
\ExplSyntaxOff
\patchcmd\scr@@startchapter
 {\@afterheading}
 {\@afterheading
  \addthumbstochapter{#2}%
 }
 {}
 {\fail}
\makeatother
\usepackage{mwe}
\begin{document}
\pagenumbering{arabic}
\tableofcontents
\chapter[short]{Chapter 1 \label{short}}
\section{Very important section}
\lipsum[1] \ref{short},\ref{Chapter 2}

\chapter{Chapter 2 \label{Chapter 2}}
\lipsum[1-2]

\addchap{addchap}
\end{document}
Permanenter link

beantwortet 04 Jun, 10:25

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.3k23

bearbeitet 05 Jun, 03:57

cis's gravatar image

cis
9.3k21204335

@UlrikeFischer Ok, kannst Du bitte das label als opt. Argument wieder rausnehmen?

(04 Jun, 15:29) cis
1

label{ch:\thechapter} ist komplett nutzlos.

(05 Jun, 01:51) Johannes

Diese Änderung zieht natürlich dann das Vergeben von Labels nach sich. Das habe ich jetzt mal geändert.

(05 Jun, 03:58) cis

Von einem Befehl mit mehreren direkt aufeinander folgenden optionalen Argument würde ich abraten, die Implementierung wäre nicht hübsch. Ich würde zu Folgendem raten:

EDIT: Ich habe die gesternte Form von \chapter vergessen, deshalb funktionieren Befehle wie \tableofcontents nicht, hier also eine korrigierte Implementierung:

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}
\usepackage{thumbs}

\usepackage{letltxmacro}
\usepackage{xparse}

\LetLtxMacro\chapterORIG\chapter
\RenewDocumentCommand \chapter { s o m o }
  {%
    \IfBooleanTF{#1}
      {\stopthumb\chapterORIG*}
      {%
        \cleardoublepage
        \addthumb{#3}{\Large\sffamily\bfseries\thechapter}{white}{black}%
        \IfValueTF{#2}
          {\chapterORIG[#2]}
          {\chapterORIG}%
      }%
      {#3\IfValueT{#4}{\label{#4}}}%
  }

\usepackage{mwe}
\begin{document}
\tableofcontents
\pagenumbering{arabic} %thumbs needs that?!

\chapter{Chapter 1}
\section{Very important section}
\lipsum[1]

Reference: \ref{label2}.

\chapter{Chapter 2}[label2]
\lipsum[1-2]
\end{document}
Permanenter link

beantwortet 03 Jun, 15:40

Skillmon's gravatar image

Skillmon
6914

bearbeitet 07 Jun, 16:46

@Skillmon Ah gut, mir ist gerade noch aufgefallen, dass im Inhaltsverzeichnis auch ein thumb erzeugt wird. Das müsste an sich etwas mit der chapter-Methode zu tun haben.
alt text

(04 Jun, 09:34) cis

@cis man könnte den \addthumb Befehl auch in ein \IfBooleanF{#1}{...} packen, um das zu verhindern.

(05 Jun, 05:10) Skillmon
1

Oder vielleicht \IfBooleanTF{#1}{\stopthumb}{...}. Damit würde dann auch für spätere \chapter* die Ausgabe von Thumbs unterdrückt bzw. unterbrochen. Darüber hinaus fehlt noch eine Aussage von @cis, wie sich \addchap bzw. dessen Sternform verhalten soll.

(06 Jun, 07:57) esdd

@esdd Guter Hinweis, danke.

(07 Jun, 16:44) Skillmon

Hier ist ein weiterer Vorschlag, bei dem alle Kapitel, die einen Eintrag ins Inhaltsverzeichnis erhalten, auch eine Randmarkierung bekommen. Der eventuell benötigte Eintrag ins Verzeichnis der Thumbs entspricht dann dem Eintrag ins Inhaltsverzeichnis.

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}
\usepackage{babel}
\usepackage{lipsum}
\usepackage{thumbs}
\usepackage[T1]{fontenc}
\usepackage{xpatch}
\xapptocmd{\addchaptertocentry}
  {\addthumb{#2}{\space\Large\sffamily\bfseries #1}{white}{black}}
  {}{\PatchFailed}
\AddtoDoHook{heading/branch/star/chapter}{\stopthumb}
\begin{document}
\pagenumbering{arabic}
\tableofcontents
\chapter[short]{Chapter 1\label{short}}
\section{Very important section}
\lipsum[1] \ref{short},\ref{Chapter 2}

\chapter{Chapter 2\label{Chapter 2}}
\lipsum[1-2]
\addchap{Beispiel für addchap}
\end{document}

Mit dem Code wird für nicht nummerierte Kapitel auch keine Nummer in der Randmarkierung ausgegeben. Ändern ließe sich das, in dem man mit \ifstr{#1}{}{...}{...} eine Fallunterscheidung für die Ausgabe der Randmarkierungen einfügt.

Eine andere Frage ist, was passieren soll, wenn nach dem Beginn der Randmarkierungen noch Kapitel ohne Eintrag ins Inhaltsverzeichnis folgen. Dann wird in diesen Kapiteln die Markierung des vorherigen Kapitels weiter verwendet. Sie kann aber auch mit \stopthumb unterbrochen werden. Dabei muss man Sorge dafür tragen, dass das (erst) auf der richtigen Seite wirksam wird:

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}
\usepackage{babel}
\usepackage{lipsum}
\usepackage{thumbs}
\usepackage[T1]{fontenc}
\usepackage{xpatch}
\xapptocmd{\addchaptertocentry}
  {\addthumb{#2}{\space\Large\sffamily\bfseries #1}{white}{black}}
  {}{\PatchFailed}
\begin{document}
\pagenumbering{arabic}
\tableofcontents
\chapter[short]{Chapter 1\label{short}}
\section{Very important section}
\lipsum[1] \ref{short},\ref{Chapter 2}

\chapter{Chapter 2\label{Chapter 2}}
\lipsum[1-2]
\addchap{Beispiel für addchap}
\lipsum[3]
\clearpage
\stopthumb
\addchap*{Beispiel für addchap* ohne Randmarkierung}
\lipsum[4]
\chapter{Chapter 3}
\lipsum[5-6]
\end{document}

Mit der aktuellen Prerelease von KOMA-Script lässt sich das auch mit dem Hook

\AddtoDoHook{heading/branch/star/chapter}{\stopthumb}

automatisieren.

\documentclass[ngerman, fontsize=9pt, paper=a5]{scrreprt}[2019/03/05]
\usepackage{babel}
\usepackage{lipsum}
\usepackage{thumbs}
\usepackage[T1]{fontenc}
\usepackage{xpatch}
\xapptocmd{\addchaptertocentry}
  {\addthumb{#2}{\space\Large\sffamily\bfseries #1}{white}{black}}
  {}{\PatchFailed}
\AddtoDoHook{heading/branch/star/chapter}{\stopthumb}
\begin{document}
\pagenumbering{arabic}
\tableofcontents
\chapter[short]{Chapter 1\label{short}}
\section{Very important section}
\lipsum[1] \ref{short},\ref{Chapter 2}

\chapter{Chapter 2\label{Chapter 2}}
\lipsum[1-2]
\addchap{Beispiel für addchap}
\lipsum[3]
\addchap*{Beispiel für addchap* ohne Randmarkierung}
\lipsum[4]
\addchap*{Beispiel für chapter* ohne Randmarkierung}
\lipsum[4]
\chapter{Chapter 3}
\lipsum[5-6]
\KOMAScriptVersion
\end{document}

Ergebnis:

alt text

Permanenter link

beantwortet 06 Jun, 08:59

esdd's gravatar image

esdd
15.1k103954

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×118
×36
×7
×5
×3

Frage gestellt: 03 Jun, 13:38

Frage wurde angeschaut: 452 Mal

Zuletzt aktualisiert: 07 Jun, 16:46