セクションタイトルのテキストを消す

セクションタイトルのテキストを消す

\st{}テキストを消す(取り消し線を引く)機能はセクションタイトルでは機能しないようです。例えば、

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

本文では問題なく動作するが、失敗する

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

ちなみに、soulパッケージは含まれています:)

アップデート

アップデート

を使用すると\protect\st問題なく動作しますが、バグがあり、 を追加すると\usepackage{hyperref}このエラーが発生します。

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

この問題は、クリスチャン・フプファー彼の答えの中で。

答え1

このソリューションの初期バージョン

コマンドの特定の動作では、sectioningコンテンツを章のタイトルなどとして設計する場合、パッケージ\stからのコマンドに対して特別な処理が必要です。これは保護されている必要があります。soulつまり、 が前に付く必要があります。\protect

編集

今テストしたところ、\stマクロはすでに堅牢なので、\protect実際には必要ありません。

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

ここに画像の説明を入力してください

編集番号2

を使用するとhyperref、ブックマークとハイパーリンクに関する典型的な問題が発生します。\texorpdfstringこのような問題を回避するには を使用してください ;-)

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

答え2

user31729 のソリューションでは、取り消し線が引かれていないテキスト (「取り消し線が引かれていません」) はタイトルにも目次にも表示されません。訂正を表示するなど、本文とプレーン テキストの両方が必要な場合は、次のコードが機能します。

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

サンプル出力

交差したテキストと交差していないテキストを示す画像

関連情報