使用 classicthesis 的字幕中的数学方程,即使使用 texorpdfstring 也不可能

使用 classicthesis 的字幕中的数学方程,即使使用 texorpdfstring 也不可能

通常,当使用 classicthesis 包在标题中使用数学方程式时,可以使用 \texorpdfstring 来解决问题。但这里似乎不起作用,不知道为什么。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[nochapters]{classicthesis}
\usepackage{amsmath, scalerel}
\newcommand{\antishriek}{\scalerel*{$¡$}{!}}

\begin{document}
\subsection{\texorpdfstring{$a^{\antishriek}$}{TEXT}}
\end{document}

答案1

\scalerel是一个脆弱的命令。你可以\antishriek使用以下命令定义\DeclareRobustCommand

\DeclareRobustCommand{\antishriek}{\scalerel*{$¡$}{!}}

\protect或在移动论点中使用(分节标题或说明)

\subsection{\texorpdfstring{$a^{\protect\antishriek}$}{TEXT}}

也许您对不同的定义感兴趣\antishriek

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[nochapters]{classicthesis}
\usepackage{amsmath}

\DeclareMathSymbol{\antishriek}{\mathord}{operators}{'74}

\begin{document}

\subsection{\texorpdfstring{$a^{\antishriek}+a^{!}$}{TEXT}}

\end{document}

enter image description here

如果想让反向感叹号和感叹号升高到同一水平,可以这样做

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[nochapters]{classicthesis}
\usepackage{amsmath}

\DeclareMathSymbol{\antishrieksymbol}{\mathord}{operators}{'74}

\makeatletter
\DeclareRobustCommand{\antishriek}{{\mathpalette\anti@shriek\relax}}
\newcommand\anti@shriek[2]{%
  \raisebox{\depth}{$\m@th#1\antishrieksymbol$}%
}
\makeatother


\begin{document}

\subsection{\texorpdfstring{$a^{\antishriek}+a^{!}$}{TEXT}}

\end{document}

enter image description here

相关内容