Alternativas mais limpas para soluções alternativas feias

Alternativas mais limpas para soluções alternativas feias

Estou escrevendo soluções para folhas de problemas com aula de memórias. Quero manter as etiquetas dos problemas nas folhas originais.

Folha de problemas 1

problema 1.13.1Lorem ipsum...

problema 1.13.2Lorem ipsum...

Aqui está a minha maneira de fazer isso (MWE desarrumado):

\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}

Uma solução alternativa feia (1)é usada \labelenumipara forçar a enumeração do item a aparecer no ToC. O resultado é o que eu quero, mas há avisos de hiperref:

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.

O que também não gosto nisso é a troca de estilo de capítulo (2). Quero que os nomes dos capítulos (folhas de problemas) apareçam apenas no ToC, mas também quero manter nomes grandesConteúdotítulo. Memoir possui comando \renewcommand{\printchaptertitle}[1]que permite desligar títulos de capítulos (masConteúdotambém é o título do capítulo).

Existem maneiras mais limpas de alcançar o mesmo resultado?

PS No manual de memórias, o padrão \newcommand{\printchaptertitle}[1]{\chaptitlefont #1}na página 88, dá erro no MWE acima (com renewcommand), mas ##1não dá (e funciona).

Responder1

Esta poderia ser uma solução:

\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}

insira a descrição da imagem aqui

insira a descrição da imagem aqui

informação relacionada