我想在章节标题中使用 LaTeX 代码高亮功能。在标题本身中它可以工作,但在目录中则不行。下面是一个简单示例:
\documentclass{scrartcl}
\usepackage{minted}
\begin{document}
\tableofcontents
\section{\mintinline{python}{print ``this''}}
\mintinline{python}{print ``this''}
\section{\mintinline{latex}{\documentclass[]{}}}
\mintinline{latex}{\documentclass[]{}}
\end{document}
以及相应的输出:
文件中的完整错误.toc
如下:
\GenericError { }{LaTeX Error: Can be used only in preamble}{See the LaTeX manual or LaTeX Companion for explanation.}{Your command was ignored.\MessageBreak Type I <command> <return> to replace it with another command,\MessageBreak or <return> to continue without it.
对于如何允许\mintedinline
目录条目,有什么想法吗?
答案1
您要么增强\minline
命令,要么在部分命令中使用\protect
。但是,这并不能防止将\GenericError
问题分解为各个部分。您应该使用可选参数,并对诸如这样的命令\section
使用显式参数,否则将直接打印到,从而导致文件中出现两个语句。\protect
\documentclass
\mintinline
\documentclass
ToC
documentclass
但是,我怀疑将此文本放在章节标题和目录中的实用性!
\documentclass [A4]{scrartcl}
\usepackage{minted}
\usepackage{etoolbox}
\robustify\mintinline
\begin{document}
\tableofcontents
\section{\protect\mintinline{python}{print ``this''}}
\mintinline{python}{print ``this''}
\section[\mintinline{latex}{\protect\documentclass[]{}}]{\mintinline{latex}{\documentclass[]{}}}
\mintinline{latex}{\documentclass[]{}}
\end{document}