劃掉章節標題中的文字

劃掉章節標題中的文字

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

在此輸入影像描述

編輯二號

如果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}

樣本輸出

顯示交叉和未交叉文字的圖像

相關內容