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