章节标题中与 \verb 相关的奇怪错误

章节标题中与 \verb 相关的奇怪错误

我正在写一篇关于 LaTeX 的文档,作为我同学的指南。我采用了目前的做法,即使用\verb来显示代码,以区分代码和文本(反引号和 4 个空格缩进)。问题是,我的章节标题是包名,例如\subsection*(\verb"thmtools")加上\addcontentsline{toc}{subsection}{\verb"thmtools"}。结果是以下错误:

Runaway argument?
|\@empty \relax \hbox {}#I\catcode `\ \active \<let>-command \csname\endcsname
./Preambolo consigliato.tex:586: Paragraph ended before \HyPsd@@ProtectSpacesFi
was complete.
<to be read again> 
               \par 
l.586 ...ntsline{toc}{subsection}{\verb"geometry"}`

因此,我尝试构建一个 MWE 发布在这里,写道:

\documentclass{report}  
\begin{document}  
\section*{\verb"mu"}  
\addcontentsline{toc}{section}{\verb"mu"}  
\tableofcontents  
\end{document}

仅这样错误就变为:

./mu26.tex:13: LaTeX Error: \verb illegal in command argument.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.13 \section*{\verb"mu"}

更奇怪的是,thmtools标题错误消失了,而错误geometry又出现了!我已经大致.tex了解.loghttps://gist.github.com/anonymous/8235120、和.aux.out.synctex.gz.toc.pdf空白或无法访问。为什么这发生什么了?

答案1

对于您的 MWE,\texttt这是正确的方法,因为您使用的逐字不包含任何特殊字符。即使包含,也可以\textbackslash使用类似的东西来模拟逐字字符。

但是,要将实际的逐字内容塞入章节标题,可以先将其放入一个框中。问题是,框不会随着章节标题和目录的不同字体大小而缩放。因此,缩放逐字框甚至可以克服这个困难。

\documentclass{article}
\usepackage{verbatimbox}
\usepackage{scalerel}
\begin{document}
\begin{myverbbox}[\strut]{\verbA}
\verbatim $#%@^
\end{myverbbox}
\begin{myverbbox}[\strut]{\verbB}
\verbatim gjp with descenders
\end{myverbbox}

\tableofcontents

\section{This is \scaleto{\verbA}{\ht\strutbox+\dp\strutbox}}

\verbA\ is the actual verbatim text\\
\scaleto{\verbA}{\ht\strutbox+\dp\strutbox} is the scaled verbatim text


\section{This is \scaleto{\verbB}{\ht\strutbox+\dp\strutbox}}

\verbB\ is the actual verbatim text\\
\scaleto{\verbB}{\ht\strutbox+\dp\strutbox} is the scaled verbatim text

\end{document}

在此处输入图片描述

相关内容