Sie sind hier

Unklar warum

Hallo Markus, zunächst danke für die Unterstützung in 2015 und dir weiterhin viel Erfolg und Freude in 2016.

Hier mein Problem: Mir ist als Unwissender ist nicht klar, warum folgendes einen Fehler produziert (texlive2015 auf einem Mac OsX).

\documentclass{scrbook}
\newcommand{\LH}{\mathbf{ L \left( H \right) }}
\usepackage{scrlayer-scrpage}
\newmarks\chapternumbermark					
\newmarks\chaptertitlemark
\newmarks\sectionnumbermark
\newmarks\sectiontitlemark
%
\renewcommand*{\chaptermark}[1]{% 
  \marks\chapternumbermark{\chaptermarkformat}%
  \marks\chaptertitlemark{#1}%
}
%
\renewcommand*{\sectionmark}[1]{%
  \marks\sectionnumbermark{\sectionmarkformat}%
  \marks\sectiontitlemark{#1}%
}
%
\begin{document}
%
\chapter{$ \LH $}
\section{$ \LH $}
\subsection{$ \LH $}
%
\end{document} 

Deshalb ist \markboth im LaTeX-Kern auch so eigenartig definiert. Am besten orientiert man sich daran:

\documentclass{scrbook}
\newcommand{\LH}{\mathbf{ L \left( H \right) }}
\usepackage{scrlayer-scrpage}
\newmarks\chapternumbermark					
\newmarks\chaptertitlemark
\newmarks\sectionnumbermark
\newmarks\sectiontitlemark
%
\makeatletter
\newcommand*{\levelmark}[2]{%
  \begingroup
    \let\label\relax\let\index\relax\let\glossary\relax
    \unrestored@protected@xdef\@themark{\csname #1markformat\endcsname}%
    \@temptokena\expandafter{\@themark}%
    \expandafter\marks\csname #1numbermark\endcsname{\the\@temptokena}%
    \unrestored@protected@xdef\@themark{#2}%
    \@temptokena\expandafter{\@themark}%
    \expandafter\marks\csname #1titlemark\endcsname{\the\@temptokena}%
  \endgroup
  \if@nobreak\ifvmode\nobreak\fi\fi
}
\makeatother
\renewcommand*{\chaptermark}[1]{\levelmark{chapter}{#1}}
\renewcommand*{\sectionmark}[1]{\levelmark{section}{#1}}
\ihead{\firstmarks\chapternumbermark\enskip\firstmarks\chaptertitlemark}
\ifoot{\firstmarks\sectionnumbermark\enskip\firstmarks\sectiontitlemark}
 
\usepackage{mwe}
\begin{document}
%
\chapter{$ \LH $}
\section{$ \LH_s $}
\subsection{$ \LH_{ss} $}
\Blindtext[10]
%
\end{document}

Es sei darauf hingewiesen, dass man ohne das Zurücksetzen der Marken der tieferen Ebenen ggf. veraltete Marken im Kopf zeigt. Mit dem Zurücksetzen zeigt dagegen \firstmarks eventuell nicht das, was man sich wünschen würde. Ich habe zusammen mit Elke vor einiger Zeit mal einen Ansatz mit Marken je Ebene durchgespielt, der einige Probleme des klassischen Konzepts beseitigt hat, dafür aber neue, nicht lösbare Probleme aufgeworfen hat. Deshalb habe ich nach mehreren Tagen Arbeit das ganze wieder verworfen.

Marcus, danke für die Erläuterungen und den Code. Ich werde es ausprobieren.

/Anmerkung: Bislang gab es keine Probleme oder irgendwelche Merkwürdigkeiten. Danke für die Hilfe. Zum Verstehen benötige ich noch etwas Zeit.

--
Ulrich

Comments for "Unklar warum" abonnieren