riscar o texto no título da seção

riscar o texto no título da seção

Parece que \st{}riscar um texto (riscado) não funciona no título da seção. Por exemplo, este

\documentclass{article}
\usepackage{soul,color}
\begin{document}
\section{\st{Motivation}}\label{sec:theproblem}
In this section, we are going to explain the detail and you will see...
\end{document}

falha enquanto funciona bem com o corpo do texto

\documentclass{article}
\usepackage{soul,color}
\begin{document}
\section{Motivation}\label{sec:theproblem}
In this section, we are going to \st{explain the detail} and you will see...
\end{document}

Aliás, sim, o soulpacote está incluído :)

ATUALIZAR

ATUALIZAR

Usar \protect\stfunciona bem, mas o bug é que, se você adicionar \usepackage{hyperref}, receberá este erro

! Argument of \let has an extra }.
<inserted text>
                \par
l.5 \section{\protect\st{Motivation}}
                                     \label{sec:theproblem}
?

O problema foi abordado porChristian Hupferem sua resposta.

Responder1

Versão inicial desta solução

O comportamento específico dos sectioningcomandos requer tratamento especial para que o conteúdo seja desenhado como título de capítulos etc, neste caso para o \stcomando do soulpacote. Deve ser protegido, ou seja, precedido por um arquivo \protect.

Editar

Acabei de testar: a \stmacro já é robusta. \protectnão é realmente necessário.

\documentclass{book}
\usepackage{soul}
\begin{document}
\tableofcontents
\chapter{\protect\st{This is crossed-out}}
\end{document}

insira a descrição da imagem aqui

Editar número dois

Se hyperreffor usado, isso gera um problema típico com marcadores e hiperlinks. Use \texorpdfstringpara se locomover para tal ai ;-)

\documentclass{book}
\usepackage{soul}
\usepackage[bookmarksopen=true]{hyperref}
\begin{document}
\tableofcontents
\chapter{\texorpdfstring{\st{This is crossed-out}}{This is not crossed out}}
\end{document}

Responder2

Na solução do user31729, o texto não riscado ("Isto não está riscado") não aparece no título ou no ToC. Se forem necessários soul e texto simples, como para mostrar uma correção, o seguinte código funciona:

\documentclass{article}
\usepackage{lipsum}
\usepackage{soul}
\usepackage{hyperref}
\begin{document}
  \tableofcontents
  \section{\texorpdfstring{\st{Old}{New}}{}}
  \lipsum[1]
\end{document}

Exemplo de saída

Imagem mostrando texto cruzado e não cruzado

informação relacionada