有人知道我如何向期刊提交包含源代码突出显示的论文吗?minted
https://github.com/gpoore/minted? 我真的很喜欢突出显示并且不想回到,但是我有点怀疑期刊编辑是否会在他们的 python 安装中安装lstlisting
最新的 Tex Live 以及安装。pygments
有没有办法将minted
代码转换listings
为 svgs 并将它们放在 latex 文档中?
答案1
按照@Johannes_B建议,我为每个代码清单创建了一个单独的 tex 文件,然后将其编译为 pdf 并用作原始文档中的图表。我使用文档类独立为每个代码清单创建了一个单独的 pdf 文件。
\documentclass[varwidth=6cm, border={0.5cm 0.1cm 0.1cm 0.1cm}]{standalone}
\usepackage{minted}
\setminted[python]{breaklines, linenos, frame=lines, framesep=2mm, fontsize=\footnotesize, numbersep=5pt}
\begin{document}
\begin{minted}{python}
cool = python.code()
\end{minted}
\end{document}
答案2
处于相同的情况并且有许多代码清单,我不想为每个清单创建一个单独的 tex 文件。我发现,通过minted
在下面的第 4 行将环境声明为“独立环境”,您可以拥有多个在生成的 pdf 中获取单独页面的清单:
\documentclass[varwidth=6cm, border={0.5cm 0.1cm 0.1cm 0.1cm}]{standalone}
\usepackage{minted}
\setminted[python]{breaklines, linenos, frame=lines, framesep=2mm, fontsize=\footnotesize, numbersep=5pt}
\standaloneenv{minted}
\begin{document}
\begin{minted}{python}
cool = python.code()
\end{minted}
\begin{minted}{python}
more_cool = python.code()
\end{minted}
% Many more minted blocks go here
\end{document}
使用 nicepdftk
程序我们可以将其拆分成每页一个 pdf:
$ pdftk document-name.pdf burst
这为我们提供了pg_NNNN.pdf
以 NNNN 命名的 pdf 文件,范围从 0001 及以上。每页的左侧、顶部和底部均被正确裁剪,但右侧有一些空白,因此所有页面的宽度都与类选项中指定的宽度一致。通过将设置varwidth
为纸张中所需的线宽,这可以很好地与配合使用includegraphics
。
为了在其他文档(这些 pdf 现在作为图形包含在内)中获取名为“Listing 1”等的浮点数,可以在序言中放入以下内容:
\usepackage{float}
\floatstyle{ruled}
\newfloat{listing}{thp}{lop}
\floatname{listing}{Listing}
然后在文档正文中
\begin{listing}[htbp]
\includegraphics[width=\linewidth]{pg_0001.pdf}
\caption{Showing some code.}
\label{lst:somecode}
\end{listing}
See the code in \cref{lst:somecode} for an example.