自 Acrobat 以来显然无法从命令行将 XML 转换为 PDF,我正在尝试使用 LaTeX 来实现它。
我发现minted
包做得很好(而且简单),因为它使用色素进行格式化,然后将格式化的文本放回到我的文档中。
该包运行良好,除了当我尝试转换为 PDF 时输入 XML 文档中的长行:PDF 中生成的 XML 内容超出了文档的右边框:
最后,提出一个问题:
有什么方法可以告诉 pygments 使用哪种页面宽度来输出(并且可能在需要换行时保持良好的缩进,就像 Internet Explorer 显示 XML 文件时一样)?
是的,我可以而是使用listings
包,但是使用那个包,据我所知,我必须定义关键字才能合理地突出显示 XML 内容,对吗?
答案1
minted
无法做到这一点,而且由于我不知道这个换行功能是如何实现的,所以listings
目前没有计划添加该功能。抱歉。:-(
我的建议:针对您的情况,请切换到listings
(或手动断线)。
答案2
pygments 似乎没有提供线宽的选项。我认为它本身无法处理这种事情。如果可以,那么只能在其latex
格式驱动程序中完成。
请注意,使用minted
/来显示文本,同时保留宏字符。不幸的是,它本身无法换行。该包可以做到这一点,但不支持单个转义字符!:-(pygments
fancyvrb
\
fancyvrb
listings
\
答案3
minted
通过 breaksymbol 提供此类中断= =\small\carriagereturn
。此 breaksymbol 定义要中断的符号。因此,您可以在任何需要中断的地方使用此符号。例如,我们使用回车符。您可以通过在需要中断的地方放置回车符来调整 XML 字符串。
\usepackage{minted}
\usepackage{dingbat}
\begin{document}
\begin{minted}[breaklines, breaksymbolleft=\carriagereturn]{xml}
<?xml version="1.0"?>
abracadabraabracadabraabracadabr
aabracadabraabracadabraabracadab
raabracadabraabracadabraabracada
braabracadabra
<project name="Package tcolorbox" default="documentation" basedir=".">
<description>
Apache Ant build file (http://ant.apache.org/)
</description>
</project>
\end{minted}
\end{document}