我下载了一些我想要做一些更改的胶乳包,但是在这个包中存在文件include.m4,我不知道它是干什么的,也不知道它是如何生成的。在这里,它的台词:
m4_changequote([[, ]])m4_dnl
m4_dnl
m4_define([[m4_FILE_INIT]], [[m4_dnl
%
% This is automaticaly generated file, do not edit it.
%
]])m4_dnl
m4_dnl
m4_define([[m4_FILE_ID]], [[m4_dnl
m4_patsubst([[$1]], [[\$Date::? \([0-9]+\)-\([0-9]+\)-\([0-9]+\).*]], [[\1/\2/\3]])m4_dnl
v[[]]m4_ESKDX_VERSION]])m4_dnl
m4_dnl
m4_define([[m4_FILE_DATE]], [[m4_dnl
m4_patsubst([[$1]], [[\$Date::? \([0-9]+\)-\([0-9]+\)-\([0-9]+\).*]], [[\1/\2/\3]])]])m4_dnl
m4_dnl你能解释一下它是用哪个工具生成的吗?
史克。所以这个文件不是自动生成的?ANd您能帮我理解Makefile中的这些行吗:
M4FLAGS = -P -Dm4_ESKDX_INIT="m4_include($(TOP_DIR)/include.m4)" \
-Dm4_ESKDX_VERSION=$(VERSION) -Dm4_ESKDX_DATE=$(RELEASE_DATE)和规则:
%.def: %.def.in $(M4DEPS)
m4 $(M4FLAGS) $< >$@
%.sty: %.sty.in $(M4DEPS)
m4 $(M4FLAGS) $< >$@
%.cls: %.cls.in $(M4DEPS)
m4 $(M4FLAGS) $< >$@如我所见,GNU m4 options '-D‘将.sty .cls文件中的宏m4_ESKDX_INIT替换为m4_include(./m4_include.m4),然后options '-P’首先扩展文件include.m4,然后在include.m4中扩展宏。
发布于 2015-01-07 16:18:03
这是GNU m4宏处理器的宏。此文件设计为与--prefix-builtins命令行选项一起使用。当m4_计算此文件时,m4部件将被剥离。这个文件本身不做任何事情,它只定义了三个宏(FILE_INIT、FILE_ID和FILE_DATE),这些宏可能会在另一个步骤中使用。您可能需要在其他文件中查找对此文件的引用。基本思想是在通过m4运行另一个文件之前加载该文件,并在运行过程中替换这些宏。
关于自动生成的消息应该以注释的形式出现在最终文件中。正如我们在Makefile中的规则中所看到的,每个.def、.sty和.cls文件都是由一个同名的.in文件生成的(因此result.cls将由result.cls.in构建)。通过计算这些文件中的宏并用等效项替换它们。
因此,要修改这些文件,您需要编辑.in文件。
https://stackoverflow.com/questions/27823284
复制相似问题