gpt4 book ai didi

python - 如何获得 minted 包来渲染具有可复制缩进的代码块?

转载 作者:行者123 更新时间:2023-12-01 05:11:28 63 4
gpt4 key购买 nike

肉眼观察,minted (Konrad Rudolph 的 LaTeX 包使用 Pygments 库进行代码突出显示)忠实地呈现传递给它的代码块,并以源代码中包含的任何缩进显示它们。

但是,如果您尝试从这些 block 之一复制并粘贴代码,您会注意到它们的可见缩进是使用不可复制来实现的空格,这样粘贴的代码就会丢失每行的前导空格。这是Python 代码块尤其有问题,因为在 Python 中缩进作为代码的一部分具有实际意义。

所以,这是我的问题:是否有某种方法可以类型转换来呈现代码块,当复制并粘贴,保留它们显示的源代码的缩进?

有关我的意思的示例,请参阅中的几个缩进代码块中的任何一个类型转换手册( foundhere ),或编译以下是可重现的最小示例:

\documentclass{article}

\usepackage{minted}
\newminted[python]{python}{frame=single}

\begin{document}

\begin{python}
def example1():
if verbose:
print 'Running example1'

verbose = True
example1()
\end{python}

\end{document}

最佳答案

这在 Acrobat Reader 中有效,至少在我的系统上有效,但在 SumatraPDF 和其他一些程序中无效。可能还有其他更好的解决方案。

\usepackage{color}
\usepackage{minted}
\newminted[python]{python}{frame=single}
\fvset{showspaces}
\renewcommand\FancyVerbSpace{\textcolor{white}{\char32}}

这会将 Pygments 用于格式化输出的 fancyvrb 设置为使用可见空格字符 (),然后通过将它们设为白色来使这些字符“不可见”。最终,这确实成为一个 TeX 问题,因为 Pygments 使用 fancyvrb 包作为其输出,而技巧是让 fancyvrb 创建(前导)空格,可以复制。

关于python - 如何获得 minted 包来渲染具有可复制缩进的代码块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147436/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com