2011-11-18 72 views
0

請參閱下面的代碼:如何在不鍵入BASE_NAME的情況下將參數BASE_NAME = myfile發送到命令行。我想只輸入發送參數(Linux)

$使PDF MYFILE

BASE_NAME = myfile 

LATEX  = latex 
PDFLATEX = pdflatex 
BIBTEX = bibtex 
MAKEINDEX = makeindex 
DVIPS  = dvips 
PS2PDF = ps2pdf 

pdf: $(BASE_NAME).pdf 
ps: $(BASE_NAME).ps 

$(BASE_NAME).ps: $(BASE_NAME).tex 
    $(LATEX) $< 
    $(BIBTEX) $(BASE_NAME) 
    $(LATEX) $< 
    $(LATEX) $< 
    $(DVIPS) -Ppdf $(BASE_NAME) 

$(BASE_NAME).pdf: $(BASE_NAME).tex 
    $(PDFLATEX) $< 

clean: 
    rm -f $(BASE_NAME)*.ps $(BASE_NAME)*.dvi *.log \ 
      *.aux *.blg *.toc \ 
      missfont.log $(BASE_NAME)*.bbl $(BASE_NAME)*.out \ 
      $(BASE_NAME)*.lof $(BASE_NAME)*.lot 

open: 
    acroread $(BASE_NAME).pdf 

另外,我該如何使用一個選擇型 $使PDF -o MYFILE 生成PDF,然後從選項中打開它 -

回答

0

你不能做你想做的。你可以做你的shell腳本,這樣做:你鍵入mymake pdf myfile,和你的mymake shell腳本將運行make pdf BASE_NAME=myfile

+0

怎麼會是這樣? –

1

你可以在你的目標是你的文件的名稱,這樣用pattern-rule。 $ @變量將包含文件的名稱。

%.pdf: 

     @echo [email protected]; 

-

$ make hello.pdf 
hello.pdf 

-

$ make path/to/hello.pdf 
path/to/hello.pdf 
+0

對不起,但我不明白。它不起作用。還是我做錯了?我編輯文件和數字''make hello.pdf''。但不行。 –

+0

請點擊文檔鏈接。仔細閱讀。使用'make --debug = b' –