пакетный скрипт для pdflatex-makeindex-bibtex, который работает с текущим файлом в notepad ++ - PullRequest
2 голосов
/ 05 октября 2011

Я написал командный файл, который я использую для создания файла, содержащего сокращения и ссылки из латексного файла.Это работает очень хорошо.Я использую это изнутри notepad ++ Run menu.Моя проблема заключается в том, что мне приходится каждый раз менять имя файла из командного файла.Я хотел бы создать универсальный файл, который может работать с любым файлом.

вот мой рабочий скрипт

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex thesis.tex
bibtex thesis
pdflatex thesis.tex
pdflatex thesis.tex
makeindex.exe thesis.nlo -s nomencl.ist -o thesis.nls
pdflatex thesis.tex
START "" thesis.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

, а вот моя попытка

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2
bibtex thesis
pdflatex %2
pdflatex %2
makeindex.exe thesis.nlo -s nomencl.ist -o thesis.nls
pdflatex %2
START "" %2.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

, нокак вы можете видеть, есть проблема с командными строками bibtex и makeindex.exe, потому что расширение не должно быть предоставлено bibtex, и поэтому% 2, который ссылается на текущий открытый файл в notepad ++, не будет работать.Я также не знаю, как указать глобальные .nlo и .nls, чтобы mnakeindex мог найти правильные имена файлов, соответствующие имени файла tex.

Я делаю это пакетно из notepad ++, потому что мне не удалось сгенерировать номенклатуру с помощью текстовых текстов!!

Спасибо за любую помощь

Оказывается, что замена всех случаев thesis в пакетном файле на %2 действительно работает.Я думаю, я спросил слишком рано, но если у кого-то есть подобная проблема, вот решение:

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2.tex
bibtex %2
pdflatex %2.tex
pdflatex %2.tex
makeindex.exe %2.nlo -s nomencl.ist -o %2.nls
pdflatex %2.tex
START "" %2.pdf

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

Ответы [ 2 ]

0 голосов
/ 03 октября 2015
:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
PUSHD %1

:: Run Cleanup
call:cleanup
tskill acrobat  
pdflatex %2.tex
bibtex %2
pdflatex %2.tex
pdflatex %2.tex
makeindex.exe %2.nlo -s nomencl.ist -o %2.nls
pdflatex %2.tex
START "" %2.pdf
call:cleanup
goto:eof

:cleanup
:: del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof
0 голосов
/ 15 июля 2013

Я понимаю, что у вас уже есть решение, но есть другой способ.

Просто используйте команду "basename", чтобы удалить окончание.

Включить строку

filebase=$(basename $2 .pdf)

в вашем пакетном файле, а затем "filebase" будет "thesis", даже если вы введете в качестве ввода "thesis.pdf" (при необходимости замените $2).

...