在 Makefile 中我有:
我还尝试将配方中的%替换为$%,但此变量似乎为空。
不满意的解决方案:在配方中添加一行以创建(make)变量,该变量将保存
这个规则的作用是:images/schematic.pdf: images/schematic.svg
inkscape -D -z --file=$^ --export-pdf=$@ --export-latex sed -i "s:schematic:images/schematic:g" $@_tex
- 使用inkscape将文件转换为latex-ready的
.pdf
PDF文件和相应的.pdf_tex
文本文件(请参见此答案:https://tex.stackexchange.com/a/2107/104581) - 修改所提到的
.pdf_tex
文件,以便它不会破坏从“更高”的目录(即当.pdf_tex
文件在./images
中时,它不会破坏编译)
我的问题:
我有很多这种形式的规则,即只更改schematic
。 我想使用一个pattern-rule,将schematic
替换为%
。 并在配方中使用%
(在sed命令中)。
然而这条规则:
不起作用:配方中的%被字面解释。images/%.pdf: images/%.svg
inkscape -D -z --file=$^ --export-pdf=$@ --export-latex sed -i "s:%:images/%:g" $@_tex
我还尝试将配方中的%替换为$%,但此变量似乎为空。
不满意的解决方案:在配方中添加一行以创建(make)变量,该变量将保存
notdir(removeprefix($<))
的结果(使用this question或调用bash,因为GNU Make中没有removeprefix)。