我有一个包含至少两个选项的乳胶项目:printable
(在脚注上添加可点击链接)和monochrome
(将羊毛文件放在黑色上)。这个选项可以作为单个选项使用,也可以同时使用(如果我想要一个带脚注的单色文档)。
所以,这是我的makefile的骨架:
printable:
${TEX} -jobname=${NAME} "\def\isprintable{1} \input{main.tex}"
monochrome:
${TEX} -jobname=${NAME} "\def\ismonochrome{1} \input{main.tex}"
此代码仅允许我以可打印格式 X 或单色文档获取文档。但不是同时两次。
我尝试了目标printable monochrome:
,但在这种情况下,我总是会得到一个可打印的单色文档,当我仅使用printable
或monochrome
目标调用make时。我无法获得唯一的单色文档或唯一可打印的文档。
那么,是否有可能在makefile上的目标之前创建一个ifthen结构来评估在执行之前粘贴的目标?
类似的东西:
if targets contain monochrome
then: ARG=${ARG} "\def\ismonochrome{1}"
if tragets contain printable
then: ARG=${ARG} "\def\isprintable{1}"
${TEX} -jobname=${NAME} "${ARG} \input{main.tex}"
是否可以使用makefile执行此操作,或者我必须以另一种方式开发?
答案 0 :(得分:0)
ifdef MONOCHROME
ARGS += \\def\\ismonochrome{1}
endif
ifdef PRINTABLE
ARGS += \\def\\isprintable{1}
endif
project:
${TEX} -jobname=${NAME} \"$(ARGS)\"
你可以用例如
来调用它make MONOCHROME=true PRINTABLE=yes
请注意,处理双引号,反斜杠和其他特殊字符可能需要一些“转义”;这可能需要对您的系统进行一些微调。