Sauberere Alternativen zu hässlichen Workarounds

Sauberere Alternativen zu hässlichen Workarounds

Ich schreibe Lösungen für Aufgabenblätter im Memoirenunterricht. Ich möchte die Aufgabenbeschriftungen von den Originalblättern beibehalten.

Aufgabenblatt 1

Problem 1.13.1Lorem ipsum ...

Problem 1.13.2Lorem ipsum ...

So gehe ich vor (unordentliches MWE):

\documentclass[extrafontsizes,oneside,20pt]{memoir}

\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{memhfixc}

% ugly workaround (1)
\newcommand{\sectionitem}{%       
    \item\phantomsection\addcontentsline{toc}{section}{%           
        \let\sectionitemfont\relax%
        \labelenumi%
    \let\sectionitemfont\bfseries%
    }%
}

\def\mychapter{Problem sheet} 
\makechapterstyle{mine}{%
    \renewcommand{\printchaptername}{\chapnumfont \mychapter}
    \renewcommand{\printchaptertitle}[1]{}
}
\renewcommand*{\cftchaptername}{\mychapter\space} 

\begin{document}

\clearpage
\chapterstyle{default} % (2)
\tableofcontents
\clearpage
\chapterstyle{mine} % (2)

\let\sectionitemfont\bfseries
\chapter{A}
\begin{enumerate}[
    leftmargin=*,
    label=\sectionitemfont problem 1.13.\arabic*
]
\sectionitem Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\sectionitem Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\sectionitem Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\end{enumerate}

\end{document}

Hässlicher Workaround, (1)der \labelenumidas Auflisten von Elementen im Inhaltsverzeichnis erzwingt. Das Ergebnis ist das gewünschte, aber es gibt Hyperref-Warnungen:

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\<let>-command' on input line 39.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\sectionitemfont' on input line 39.

Was mir auch nicht gefällt, ist das Umschalten des Kapitelstils (2). Ich möchte, dass Kapitelnamen (Aufgabenblätter) nur im Inhaltsverzeichnis erscheinen, aber ich möchte auch großeInhaltTitel. Memoir hat einen Befehl \renewcommand{\printchaptertitle}[1], der es ermöglicht, Kapiteltitel auszuschalten (aberInhaltist gleichzeitig Kapitelüberschrift).

Gibt es sauberere Möglichkeiten, dasselbe Ergebnis zu erzielen?

PS: Im Memoirenhandbuch \newcommand{\printchaptertitle}[1]{\chaptitlefont #1}führt die Standardeinstellung auf Seite 88 zu einem Fehler im obigen MWE (mit renewcommand), ##1funktioniert aber nicht (und funktioniert).

Antwort1

Das könnte eine Lösung sein:

\documentclass[extrafontsizes,oneside,20pt]{memoir}

\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{memhfixc}



\newenvironment{probsol}[1][\thesection]{\begin{enumerate}[leftmargin=*,
    label=\sectionitemfont#1.\arabic{enumi}]\let\olditem\item\def\item{\olditem\addcontentsline{toc}{section}{#1.\arabic{enumi}}}}
{\end{enumerate}}
\def\mychapter{Problem sheet} 
\makechapterstyle{mine}{%
    \renewcommand{\printchaptername}{\chapnumfont \mychapter}
    \renewcommand{\printchaptertitle}[1]{}
}


\begin{document}

\clearpage
\chapterstyle{default} % (2)
\tableofcontents
\clearpage
\chapterstyle{mine} % (2)

\let\sectionitemfont\bfseries
\chapter{A}
\begin{probsol}[problem 1.13]
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit.\\
\textbf{solution}
\end{probsol}


\end{document}

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

verwandte Informationen