通过命令行使用 Biber 和 MiKTeX

通过命令行使用 Biber 和 MiKTeX

我正在尝试在 Windows 上设置 Notepad++,以便可以使用它编译 LaTeX 文档非常好的解决方案,使用批处理文件编译我的文档。
但是,给出的示例使用了bibtex,而我更喜欢使用biber

我尝试简单地用替换bibtex批处理文件中的所有引用biber,但在编译时出现错误,例如

LaTeX Warning: Empty bibliography on input line 19.

LaTeX Warning: There were undefined references.

Package biblatex Warning: Please (re)run Biber on the file:
(main)                main
(main)                and rerun LaTeX afterwards.

除了参考书目之外,文档编译正确,参考书目未找到,无法编译。我知道问题一定出在批处理文件上,因为我的 MWE 可以使用 TeXStudio 编译,也可以通过cmd使用命令手动编译

cd [path to directory]
pdflatex main.tex
biber main
pdflatex main.tex

梅威瑟:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[backend=biber, style=ieee, sorting=ynt]{biblatex}

\addbibresource{bibliography.bib}

\title{A Minimum Working Example}
\date{}

\begin{document}

    \maketitle
    \tableofcontents

    \section{Citing a Thing}
        \cite{QuackQuack}

    \printbibliography[heading = bibintoc]
    \nocite{*}

\end{document}

参考书目:

@article{QuackQuack,
   author = {A. Author},
   title = {Quack quack quack},
   journaltitle = {Journal of Ducks},
   volume = {1},
   pages = {1},
   year = {2016}
}

批处理文件:

::I don't know what the next line does
%~d1
::sets working directory
cd %1
::calls pdflatex and biber on my file
pdflatex %2  
biber %2
pdflatex %2
pdflatex %2
::opens/refreshes the pdf in SumatraPDF
START "" "C:\Program Files\SumatraPDF\SumatraPDF.exe" %3 -reuse-instance

我检查过问题,并确保我的 MiKTeX 安装和所有软件包都是最新的

我在网上找不到任何其他解决方案,这个问题难倒了我问过的每个人——任何帮助都将不胜感激

答案1

我找到了解决问题的方法:

我运行的批处理脚本有三个参数-

"$CURRENT_DIRECTORY",在脚本中表示为%1

"$(NAME_PART).tex",表示为%2

"$(NAME_PART).pdf",代表%3

这是将参数“main.tex”传递给biber,这导致了问题的出现。我编辑了脚本以接受 4 个参数,现在%3传递了"$NAME_PART",现在将其提供给 biber ,%4现在传递了之前传递给 的值%3

修改后的脚本内容如下:

%~d1  
cd %1
pdflatex %2  
biber %3
pdflatex %2
START "" "C:\Program Files\SumatraPDF\SumatraPDF.exe" %4 -reuse-instance

这成功编译了参考书目和所有参考资料。我得出的结论是,biber 不喜欢被赋予带有扩展名的文件名.tex,而更喜欢被赋予不带扩展名的文件名

相关内容