我正在写一篇关于 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
了解.log
了https://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}