Alternativas más limpias a soluciones feas

Alternativas más limpias a soluciones feas

Estoy escribiendo soluciones a hojas de problemas con la clase de memorias. Quiero conservar las etiquetas de los problemas de las hojas originales.

Hoja de problemas 1

problema 1.13.1Lorem ipsum...

problema 1.13.2Lorem ipsum...

Esta es mi forma de hacerlo (MWE desordenado):

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

Una solución fea (1)se utiliza \labelenumipara forzar que el elemento enumerado aparezca en la ToC. El resultado es el que quiero, pero hay advertencias de hiperreferencia:

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.

Lo que tampoco me gusta de esto es el cambio de estilo de capítulo (2). Quiero que los nombres de los capítulos (hojas de problemas) aparezcan sólo en la ToC, pero también quiero que sean grandes.Contenidotítulo. Memoir tiene un comando \renewcommand{\printchaptertitle}[1]que permite desactivar los títulos de los capítulos (peroContenidoes también el título del capítulo).

¿Existen formas más limpias de lograr el mismo resultado?

PD: En el manual de memorias, el valor predeterminado \newcommand{\printchaptertitle}[1]{\chaptitlefont #1}en la página 88, da un error en el MWE anterior (con renewcommand), pero ##1no lo hace (y funciona).

Respuesta1

Esta podría ser una solución:

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

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

información relacionada