我倾向于使用该minted
包在我的文档中包含代码示例,这会产生非常好的输出。但是,由于 Pygments 总是产生逐字输出,环境如果我需要讨论它的特定功能,则无法内联代码。排版内联代码以与生成的代码一起使用的最佳方法是什么minted
?
listings
仅使用for 包是我考虑过的一个选项,但同时使用和\lstinline
似乎有点奇怪。我过去曾使用过,但(在我看来以及根据我尝试过的示例)我认为输出不如使用 生成的输出好。还有其他我不知道的生成内联代码的方法吗?minted
listings
listings
minted
答案1
minted
如果您愿意修补它,您可以这样做:
\documentclass{minimal}
\usepackage{ifplatform}
\ifwindows\else
\newcommand*{\TestAppExists}[1]{% there is no `which -s` on Linux
\immediate\write18{which -- '#1' > /dev/null && touch -- '\jobname.aex'}%
\IfFileExists{\jobname.aex}{%
\AppExiststrue
\DeleteFile{\jobname.aex}%
}{%
\AppExistsfalse
}
}
\fi
\usepackage{minted}
\makeatletter
% avoid space tokens since we're in horizontal mode
\renewcommand\mint[3][]{%
\DefineShortVerb{#3}%
\minted@resetoptions
\setkeys{minted@opt}{#1}%
\SaveVerb[aftersave={%
\UndefineShortVerb{#3}%
\minted@savecode{\FV@SV@minted@verb}%
\minted@pygmentize{#2}%
\DeleteFile{\jobname.pyg}}]{minted@verb}#3}
\renewcommand\minted@savecode[1]{%
\immediate\openout\minted@code\jobname.pyg\relax
\immediate\write\minted@code{#1}%
\immediate\closeout\minted@code}
\renewcommand\minted@pygmentize[2][\jobname.pyg]{%
\def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
\minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
\minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
-o \jobname.out.pyg #1}%
\immediate\write18{\minted@cmd}%
\ifthenelse{\equal{\minted@opt@bgcolor}{}}%
{}%
{\begin{minted@colorbg}{\minted@opt@bgcolor}}%
\input{\jobname.out.pyg}%
\ifthenelse{\equal{\minted@opt@bgcolor}{}}%
{}%
{\end{minted@colorbg}}%
\DeleteFile{\jobname.out.pyg}}
\makeatother
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}
\begin{document}
This is some inline code \mint{c++}|for i=1;i<20;i++| and more \ldots
\end{document}
答案2
AFIK,这是一个您不能使用 Pygments 的区域。
从“打字”的角度来看,实现这一目标的最简单方法是使用“简短的逐字记录”。
\documentclass{article}
\usepackage{fancyvrb}
\DefineShortVerb{\|}
\begin{document}
This is some inline code |for i=1;i<20;i++| and more \ldots
\end{document}
该软件包fancyvrb
还提供了许多定制功能。
答案3
答案4
该\mintinline
功能允许您使用该包编写内联代码minted
。