在 latex 文档中动态使用 RTF 代码

在 latex 文档中动态使用 RTF 代码

我正在寻找一种在乳胶文档中动态使用富文本格式代码的方法。

背景是这样的:我想将 Visual Studio 中格式化的编程源代码粘贴到我的乳胶代码中,因为 VS 格式化代码的能力远远超过任何乳胶包,因为它可以根据其定义对自定义类名进行着色。VS 通过将 RTF 文本复制到剪贴板来支持此功能。

我现在想在 latex 中插入此格式化的代码,而不必手动处理每个代码片段。我希望得到这样的结果:

\begin{rtf-code}
    {\rtf\ansi{\fonttbl{\f0 Consolas;}}{\colortbl;\red0\green0\blue255;\red43\green145\blue175;\red163\green21\blue21;}\f0 \fs19            \cf1 foreach\cf0  (\cf1 var\cf0  fsf \cf1 in\cf0  fsFiles)\par          \{\par              \cf1 if\cf0  (System.IO.\cf2 Path\cf0 .GetExtension(fsf).Equals(\cf3 ".txt"\cf0 , \cf2 StringComparison\cf0 .InvariantCultureIgnoreCase))\par               \{\par                  \cf2 Console\cf0 .WriteLine(\cf3 "Importing routes data from '\{0\}'..."\cf0 , fsf);\par                    ebdImp.ImportData(fsf, \cf3 ""\cf0 );\par               \}\par          \}\par }
\end{rtf-code}

对于代码本身的转换,我发现RTF 到 LaTeX 转换工具 rtf2latex2e

因此,我现在正在寻找一种方法将此工具动态嵌入到我的 latex 构建中。目标是定义一个执行以下操作的环境(或命令或其他):

  1. 将随附的代码导出到临时文件
  2. 在其上运行 rtf2latex2e(shell 执行)
  3. 导入结果文件,用 latex 代替 rtf 代码进行进一步处理

这样的事真的可能吗?有人能给我一些提示,从哪里开始吗(不关心工具本身,它是开源的,我会修改它以生成正确的乳胶代码)?

答案1

解决方案主要包括书写

\usepackage{fancyvrb,standalone}
\newenvironment{rtf-code}
  {\VerbatimOut{temporary.rtf}}
  {\endVerbatimOut\immediate\write18{rtf2latex2e temporary.rtf}%
   \input{temporary}}

并呼叫pdflatex -shell-escape

相关内容