我正在尝试使用gpp
(通用预处理器)在 之前和之后添加一些附加信息#include
。代码如下:
\define{\code{filename}}{PRE \include{\filename} POST} ==> \code{./t.txt} <==
输出结果如下:
$ gpp -T t.mkd -o t.out t.mkd:2: error: Requested include file not found
\filename
我认为引用存在问题,\include
因为\filename
只会被评估一次,\code
而元宏将在定义时存储它们的参数(如果我理解正确的话)。
我尝试了很多不同的东西,虽然这显然是一个 RTFM 类型的问题,但我对该工具的预期用途太有限,不值得花费大量时间学习该工具(而不仅仅是尝试另一个预处理器和另一个预处理器,直到一个工作得足够好 - 我开始用 gpp 测试,因为如果我们以后需要更多的话,它似乎很有能力)。
附言:抱歉,没有相关标签。我的声誉不够,无法创建标签,唯一弹出的标签是macro
。
答案1
您可能会在堆栈溢出比超级用户要好。
但与此同时,考虑到最新版本的通用进程于 2004 年发布,可能很难找到具备这方面的专业知识的人来帮助你。如果使用其他预处理器是一种选择,我建议米4,其 GNU 版本定期更新并被广泛使用——尤其是作为 GNUautoconf
软件的一部分。在m4
等效代码中(在文件中t.m4
)将是:
define(`code',`PRE include(`$1') POST')dnl
code(`./t.txt')
给定一个文件,t.txt
内容如下:
This is the content of the file t.txt.
...该命令m4 t.m4
产生:
PRE This is the content of the file t.txt.
POST