remover decorações de texto no cabeçalho

remover decorações de texto no cabeçalho

Eu poderia remover decorações de texto, como destaque ou todos, do sumário, mas não da linha do cabeçalho. Fiz isso sem colocar o texto simples no parâmetro opcional \chapter[]{}porque o pandoc é usado para converter o texto em látex e atualmente não suporta parâmetros opcionais.

Aqui está um MWE simples:

\documentclass[oneside]{book}

\usepackage{xcolor}
\usepackage{soul}
\usepackage{todonotes}
\usepackage{lipsum}
\usepackage{ulem}
\DeclareRobustCommand{\nohl}[1]{#1}
\addtocontents{toc}{\begingroup%
  \protect\renewcommand{\protect\todo}[1]{}
  \let\hl\nohl
}
\AtEndDocument{%
  \addtocontents{toc}{\endgroup}
}

\begin{document}

\tableofcontents

{\let\clearpage\relax \chapter{Header with \hl{highlights} and \sout{deletions}}}

\section[A second header with a note]{A second header with a note\todo{keep it}}

\lipsum[1-2]

\end{document}

decorações de cabeçalho

Como posso remover o destaque na linha do cabeçalho (padrão e com fantasihdr) sem usar o parâmetro opcional de \chapter? Ou é possível remover qualquer comando/macro de látex e apenas manter o texto interno?

BTW: o \DeclareRobustCommande \let\hl\nohlé uma solução alternativa porque \protect\renewcommand{\hl}[1]{#1}produz o erro! Illegal parameter number in definition of \reserved@a.

Responder1

Você pode verificar se o comando está indo para o índice ou cabeçalhos com \ifx\protect\@unexpandable@protect <code for moving text> \else <normal code> \fi.

Observe que para que isso funcione, é importante que a macro assim definidanãoser protegido/"robusto".

Experimente isto:

\documentclass[oneside]{book}

\usepackage{xcolor}
\usepackage{soul}
\usepackage{todonotes}
\usepackage{lipsum}
\usepackage{ulem}

\makeatletter
\newcommand\ifmoving{%
    \ifx\protect\@unexpandable@protect
        \expandafter\@firstoftwo
    \else
        \expandafter\@secondoftwo
    \fi
}

\let\oldhl\hl
% If you used \DeclareRobustCommand or \protected\def it would not work.
\renewcommand\hl{\ifmoving{}{\oldhl}}
\makeatother


\begin{document}

\tableofcontents

{\let\clearpage\relax \chapter{Header with \hl{highlights} and \sout{deletions}}}

\section[A second header with a note]{A second header with a note\todo{keep it}}

\lipsum[1-2]

\end{document}

informação relacionada