Streichen Sie den Text im Abschnittstitel

Streichen Sie den Text im Abschnittstitel

Es scheint, dass \st{}das Durchstreichen eines Textes (Durchstreichen) im Abschnittstitel nicht funktioniert. Zum Beispiel dies

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

schlägt fehl, während es mit dem Fließtext gut funktioniert

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

Übrigens, ja, das soulPaket ist enthalten :)

AKTUALISIEREN

AKTUALISIEREN

Die Verwendung von \protect\stfunktioniert einwandfrei, der Fehler besteht jedoch darin, dass beim Hinzufügen \usepackage{hyperref}dieser Fehler auftritt.

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

Das Problem wurde behoben durchChristian Hupferin seiner Antwort.

Antwort1

Frühe Version dieser Lösung

Das spezifische Verhalten der sectioningBefehle erfordert eine Sonderbehandlung für den Inhalt, der als Überschrift von Kapiteln usw. dienen soll, in diesem Fall für den \stBefehl aus dem soulPaket. Er muss geschützt sein, d. h \protect. ihm muss ein vorangestellt sein.

Bearbeiten

Ich habe es gerade getestet: Das \stMakro ist bereits robust. \protectwird nicht wirklich benötigt.

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

Bildbeschreibung hier eingeben

Bearbeiten Nummer Zwei

Wenn hyperrefverwendet, tritt das typische Problem mit Lesezeichen und Hyperlinks auf. Verwenden Sie , \texorpdfstringum dieses Problem zu umgehen ;-)

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

Antwort2

In der Lösung von user31729 erscheint der ungestrichene Text („Dies ist nicht durchgestrichen“) nicht im Titel oder im Inhaltsverzeichnis. Wenn sowohl Volltext als auch einfacher Text erforderlich sind, beispielsweise um eine Korrektur anzuzeigen, funktioniert der folgende Code:

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

Beispielausgabe

Bild mit durchgestrichenem und nicht durchgestrichenem Text

verwandte Informationen