以下 MCE 表明pdfpages
'addtotoc
选项即使对于基本数学运算也能正常工作,但是,如果取消注释注释行,则表明它不适用于不太基本的数学运算(此处\mathbf
,尽管此命令在通常的 ToC 中工作良好),编译失败并出现错误:
! Undefined control sequence.
\GenericError ...
#4 \errhelp \@err@ ...
l.11 }]{example-image.pdf}
\protect
之前添加\mathbf{R}^{n}
没有帮助。
您是否了解发生了什么情况以及如何解决它?
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\tableofcontents
\includepdf[
pages=-,
addtotoc={
1,section,1,{No math},ex-1
, 1,section,1,{Basic math: $R^{n}$},ex-2
% , 1,section,1,{Not so basic math: $\mathbf{R}^{n}$},ex-3
}]{example-image.pdf}
\section{$\mathbf{R}^{n}$}
\end{document}
答案1
pdfpages 使用起来\edef
有点频繁......
\documentclass{article}
\usepackage{pdfpages}
\makeatletter
\define@key{pdfpages}{addtotoc}{\protected@edef\AM@toclist{#1,}}%replace \edef
\makeatother
\begin{document}
\tableofcontents
\includepdf[
pages=-,
addtotoc={
%1,section,1,{No math},ex-1
%, 1,section,1,{Basic math: $R^{n}$},ex-2
1,section,1,{Not so basic math: $\mathbf{R}^{n}$},ex-3
}]{example-image.pdf}
\section{$\mathbf{R}^{n}$}
\end{document}
答案2
这是一种可能性。
您unicode-math
可以使用\symbf{<characters>}
适用于希腊字母和拉丁字母的。
使用 xelatex 或 lualatex 进行编译。
\documentclass{article}
\usepackage{unicode-math}% added <<<<<<<<
\setmathfont{XITSMath-Regular.otf}% added <<<<<<<<
\usepackage{pdfpages}
\begin{document}
\tableofcontents
\includepdf[
pages=-,
addtotoc={
1,section,1,{No math},ex-1
, 1,section,1,{Basic math: $R^{n}$},ex-2
, 1,section,1,{Not so basic math: $\symbf{R}^{n}$},ex-3 %changed <<<<<
}]{example-image.pdf}
\section{$\mathbf{R}^{n}$}
\end{document}
或者
\documentclass{article}
\usepackage{fontspec} % added <<<<
\usepackage{unicode-math}% added <<<<
\usepackage{pdfpages}
\begin{document}
\tableofcontents
\includepdf[
pages=-,
addtotoc={
1,section,1,{No math},ex-1
, 1,section,1,{Basic math: $R^{n}$},ex-2
, 1,section,1,{Not so basic math: $\mathbf{R}^{n}$},ex-3
}]{example-image.pdf}
\section{$\mathbf{R}^{n}$}
\end{document}
答案3
最后,我找到了一个解决方案。如下面的 MCE 所示,\textit
使用 来阻止罪魁祸首命令的扩展就足够了(对于带有参数的命令,也许是必要的:参见 )\noexpand
:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\tableofcontents
\includepdf[
pages=-,
addtotoc={
1,section,1,{No math},ex-1
, 1,section,1,{Basic math: $R^{n}$},ex-2
, 1,section,1,{Not so basic math: {$\noexpand\mathbf{R}^{n}$}},ex-3
, 1,section,1,{Not so basic command: \noexpand\textit{Foo}},ex-4
}]{example-image.pdf}
\section{$\mathbf{R}^{n}$}
\end{document}