我对 LaTeX 还很陌生。按照其他问题中关于在标题中使用小写字母的示例,我尝试在将其应用到某个部分时模仿它们,但没有成功:
我在 LyX2.0 中工作。
\documentclass{book}
\usepackage{textcase}
\begin{document}
\chapter{X}
\section{Y}
\section{Introduction to A\MakeLowercase{g} compounds}
\end{document}
我收到错误:
! Undefined control sequence.
\MakeLowercase ...owercaseUnsupportedInPdfStrings
l.17 ...roduction to A\MakeLowercase{g} compounds}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
这可能实现吗?
答案1
正如 egreg 指出的那样,该消息来自包hyperref
。您需要提供部分标题的替代方案,例如可以在 PDF 书签中使用的替代方案:
\section{Introduction to \texorpdfstring{A\MakeLowercase{g}}{Ag} compounds}
答案2
对于化学元素名称永远不应该大写的问题的一般解决方案如下。
\documentclass{book}
\usepackage{hyperref}
\usepackage{kantlipsum} % just to provide mock text
\makeatletter
\DeclareRobustCommand{\element}[1]{\@element#1\@nil}
\def\@element#1#2\@nil{%
#1%
\if\relax#2\relax\else\MakeLowercase{#2}\fi}
\pdfstringdefDisableCommands{\let\element\@firstofone}
\makeatother
\begin{document}
\mainmatter
\chapter{X}
\section{Introduction to \element{Ag} compounds}
\kant[1-20]
\end{document}
的参数\element
被拆分为第一个字母和可能的第二个字母。如果存在第二个字母,则将其传递给\MakeLowercase
。\element
然后,将宏添加到在构建书签时可能给 带来问题的宏集中hyperref
,重新定义它只是为了返回其参数。