我在用这个模板写我的论文。模板使用 Natlib 作为参考,而我真正需要的是 Biblatex。
当我尝试将 \usepackage[natbib] 更改为 biblatex 时,我收到错误消息
This is BibTeX, Version 0.99d (TeX Live 2016/Debian)
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
The top-level auxiliary file: aagot-1-report.aux
The style file: acm.bst
Illegal, another \bibstyle command---line 80 of file aagot-1-report.aux
: \bibstyle
: {acm}
I'm skipping whatever remains of this command
Database file #1: Mendeleytry.bib.bib
Warning--I didn't find a database entry for ""
You've used 14 entries,code here
解决方案
\usepackage[backend=bibtex, natbib=true, style=numeric]{biblatex}
没有用。
另一个可能的解决方案是从头开始重新编译以删除 .aux 文件,但这会导致
/usr/share/texlive/texmf-dist/tex/latex/biblatex/biblatex.sty:462:
LaTeX Error:
Command \bibhang already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.462 \newlength{\bibhang}
我曾尝试使用这个“marco”来覆盖 \requirePackage 设置,但这也没有用,并导致
LaTeX Error: Two \documentclass or \documentstyle comm
ands.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.45 \documentclass[whitelogo]{
tudelft-report}
我似乎无法删除任何文档类,除非获得 tudelft-package 和 biblatex 引用的功能(或者实际上根本无法让它工作!)
(no line number):
[0] Config.pm:343> INFO - This is Biber 2.5
[0] Config.pm:346> INFO - Logfile is 'aagot-1-report.blg'
[62] biber:290> INFO - === Tue Apr 24, 2018, 22:24:06
[246] Utils.pm:165> ERROR - aagot-1-report.bcf is malformed, last biblatex
run probably failed. Deleted aagot-1-report.bbl
[246] Biber.pm:113> INFO - ERRORS: 1
有什么方法可以让这个模板与 Biblatex 兼容吗?Natlib 似乎深深植根于文件中,我不知道如何更改它/访问设置/“.sty”文件。我可以将示例文档类与 biblatex 结合使用(而不是标准 natbib),而不会丢失文档类其余部分的重要部分吗?
非常感谢 :)
答案1
如果您是代尔夫特理工大学的学生,您可能需要与您的导师核实您是否确实需要使用biblatex
。您也可以联系模板的负责人寻求帮助。
如果你不是在代尔夫特理工大学学习,你可能不应该使用该模板。如果你想要更改任何内容,这种模板真的很难修改——如果你不是在代尔夫特理工大学,你很可能需要进行一些更改。另请参阅https://github.com/johannesbottcher/templateConfusion。如果出现问题,这样的模板调试起来要比从已建立的文档类(如、、report
KOMAbook
类之一或)开始调试memoir
困难得多。模板通常会加载许多包,通常是许多您不需要或不想要的包 - 这大大增加了不兼容的可能性(正如您必须发现的那样)。如果您使用如此复杂的设置,人们也很难帮助您。
此外,这里可能还存在法律问题:可以从https://www.tudelft.nl/en/tu-delft-corporate-design/downloads/没有明确的许可声明。尽管我通常会假设将模板用于您的文档是没问题的(虽然我不是我的朋友),但这些模板也包括了内部字体,TUDelft-UltraLight.ttf
并且没有许可证指示——使用没有许可证的字体可能会更加成问题。
无论如何,您的问题是类(和.tex
文件)加载natbib
。natbib
与 不兼容biblatex
。因此,如果您想使用,biblatex
则需要阻止类加载natbib
。这可以通过包来完成scrlfile
:添加\RequirePackage{scrlfile}
,然后\PreventPackageFromLoading{natbib}
在加载之前\documentclass{tudelft-report}
。除此之外,您还需要按照以下步骤操作要切换到 biblatex 该怎么做?和如何从 natbib 过渡到 biblatex?
来自report.tex
https://www.tudelft.nl/en/tu-delft-corporate-design/downloads/那么看起来就像
\RequirePackage{scrlfile} % <- to prevent
\PreventPackageFromLoading{natbib} % <- natbib from loading
\documentclass[whitelogo]{tudelft-report}
\usepackage[backend=biber,style=numeric,natbib=true]{biblatex}% <- load biblatex instead
\addbibresource{report.bib}% <- the .bib file needs to be given here
%\usepackage{natbib}% <- no idea why the template loads natbib again, again we don't do that
\usepackage{changes}
\begin{document}
\frontmatter
\title[tudelft-white]{Title}
\subtitle[tudelft-black]{Optional subtitle}
\author[tudelft-white]{J.\ Random Author}
\affiliation{Technische Universiteit Delft}
\coverimage{tank.jpg}
\covertext[tudelft-white]{
\textbf{Cover Text} \\
possibly \\
spanning
multiple
lines
\vfill
ISBN 000-00-0000-000-0
}
\setpagecolor{tudelft-cyan}
\makecover[split]
\input{title}
\input{preface}
\tableofcontents
\mainmatter
\input{chapter-1}
\appendix
\cite{Reference1,Reference2,Reference3}
\printbibliography% <- to print the bibliography
\end{document}
请记住,在此文件上运行 Biber 而不是 BibTeX。请参阅Biblatex 与 Biber:配置我的编辑器以避免未定义的引用(看使用问号或粗体引用关键字代替引用编号有关 Biber 和 BibTeX 的背景知识,请参阅biber 故障排除用于 Biber 问题的急救)。
如果你使用的是代尔夫特理工大学论文模板,dissertation.cls
则需要停止natbib
和chapterbib
加载,这样你的文件将以
\RequirePackage{scrlfile} % <- to prevent
\PreventPackageFromLoading{natbib} % <- natbib and
\PreventPackageFromLoading{chapterbib} % <- chapterbib from loading
\documentclass{dissertation}
\usepackage[backend=biber,style=numeric,natbib=true]{biblatex}% <- load biblatex instead
\addbibresource{diss.bib}% <- the .bib file needs to be given here