4

Makefile には、スクリプトからの出力を、図の番号 $f++ をインクリメントし、行の前に Figure $f: を追加する perl 式にパイプすることによって、LaTeX ペーパーから図のリストを作成するルールがあります。

コマンド ラインからは、次のように正常に動作します。

% texdepend -format=1 -print=f MilestonesProject | perl -pe 'unless (/^#/){$f++; s/^/Figure $f: /}' > FIGLIST

FIGLIST の生成:

# texdepend, v0.96 (Michael Friendly (friendly@yorku.ca))
# commandline: texdepend -format=1 -print=f MilestonesProject
# FIGS =
Figure 1: fig/langren-google-overlay2.pdf
Figure 2: fig/mileyears4.png
Figure 3: fig/datavis-schema-3.pdf
Figure 4: fig/datavis-timeline2.png
...

これを Makefile で機能させる方法がわかりません。Perl 式の $f が make によって解釈され、それを引用する方法や、make から見えないようにする方法がわからないからです。

私の Makefile での私の最近の試み:

## Generate FIGLIST; doesnt work due to Make quoting
FIGLIST:
    $(TEXDEPEND) -format=1 -print=f $(MAIN)  | perl -pe 'unless (/^#/){\$f++; s/^/Figure \$f: /}' > FIGLIST

誰か助けてくれませんか?

-マイケル

4

1 に答える 1

4

ドル記号を 2 倍にします。

## Generate FIGLIST
FIGLIST:
    $(TEXDEPEND) -format=1 -print=f $(MAIN) \
    | perl -pe 'unless (/^\#/){$$f++; s/^/Figure $$f: /}' > $@

コメント記号もバックスラッシュでエスケープする必要がある場合があります。念のためそうしました。

http://www.gnu.org/software/make/manual/html_node/Variables-in-Recipes.html#Variables-in-Recipesも参照してください

于 2012-12-03T20:42:14.750 に答える