Отправка параметров для создания (Linux или другой вариант * nix) - PullRequest
3 голосов
/ 18 ноября 2011

См. Код ниже: Как отправить параметр BASE_NAME = myfile в командную строку без ввода BASE_NAME.Я хочу ввести только

$make 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

Кроме того, как использовать параметр типа

$make pdf -o myfile

для создания PDF-файла, а затем открыть егоиз опции -o?

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Это не вопрос TeX как таковой, , но, тем не менее ...

Вам гораздо лучше, если вы будете указывать общие правила вместо конкретных. Кроме того, если вы хотите открыть свои файлы, Makefile соглашения предлагают команду make open вместо make -o.

Я обычно так делаю

# The only thing that changes!
TEXFILES = firstfile.tex secondfile.tex  

PDFS = ${TEXFILES:%.tex=%.pdf}

all: $(PDFS)

open: all
    for x in ${PDFS}; do (xpdf $$x &); done

# You can write a similar rule for ps...
%.pdf: %.tex  
    pdflatex $*
    -bibtex $*
    pdflatex $*
    - while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log || \
    grep -q '^Package natbib Warning: Citation(s) may have changed' $*.log ) \
    do pdflatex $*; done


clean:
   $(RM) *.aux *.bbl *.dvi *.log *.out *.toc *.blg *.lof *.lot

distclean: clean
       $(RM) $(PDFS)
1 голос
/ 18 ноября 2011

Я думаю, вам следует изменить Makefile, как написал Борис:

%.pdf: %.tex
     pdflatex $<

После того, как вы сможете запустить make myfile.pdf или make foo.pdf или что-нибудь еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...