我正在尝试修改剑桥工程论文模板按照我的导师的要求,以类似 AIP 的样式显示参考书目中的参考文献。模板中的默认参考书目选项为:
\RequirePackage[backend=biber, style=numeric-comp, citestyle=numeric, sorting=nty, natbib=True]{biblatex}
\addbibresource{References/references}
\begin{document}
...
\bibliographystyle{unsrt}
\bibliography
...
\end{document}
目前,这会产生带有文章标题但没有期刊名称的参考文献(与 AIP 样式还有其他区别)
我尝试过将style=numeric-comp
其改为style=phys
,但这不会影响参考书目。
我尝试将以上内容更改为:
\usepackage[backend=biber,style=phys]{biblatex}
\addbibresource{References/references.bib}
\begin{document}
...
\printbibliography
...
\end{document}
然而,在第一次编译运行中,这导致我的文档编译时没有参考书目,并且我的所有文内引用都显示为引用关键字(例如 [ji2009]),而不是数字引用或??,第二次编译时无法生成 pdf(我使用的是 overleaf,但当我尝试使用 Texmaker 分别编译 biber 和 pdflatex 时,同样无法编译)。当参考书目关键字的格式为“name2009a”时,似乎会失败(例如,使用“li2019”没问题,但同时包含“li2009”和“li2009a”时会失败),但这可能是巧合。
有没有办法改变这一点,要么使用该phys
选项,要么修改参考书目显示的字段?
以下内容也包含在 .cls 文件中 - 我custombib
在类选项中使用:
% ******************************* Bibliography *********************************
\newif\ifsetBib\setBibfalse % Custom Bibliography = true/false
\newif\ifsetBiBLaTeX\setBiBLaTeXfalse % BiBLaTeX = True / False
\newif\ifPHD@biblatex\PHD@biblatexfalse % BiBLaTeX
\DeclareOption{biblatex}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style aleady specified. Please check the document class
options in case you have defined two bibliography styles.}
\else
\PHD@biblatextrue
\fi
}
\newif\ifPHD@authoryear\PHD@authoryearfalse % Author-Year citation
\DeclareOption{authoryear}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style aleady specified. Please check the document class
options in case you have defined two bibliography styles.}
\else
\PHD@authoryeartrue
\setBibtrue
\fi
}
\newif\ifPHD@numbered\PHD@numberedfalse % Numbered citiation
\DeclareOption{numbered}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style aleady specified. Please check the document class
options in case you have defined two bibliography styles.}
\else
\PHD@numberedtrue
\setBibtrue
\fi
}
\newif\ifuseCustomBib\useCustomBibfalse % Custom Bibliography
\DeclareOption{custombib}{
\ifsetBib
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style aleady specified. Please check the document class
options in case you have defined two bibliography styles.}
\else
\ifPHD@biblatex
\ClassWarning{PhDThesisPSnPDF}{Bibliography selection conflict: A
bibliography style aleady specified. Please check the document class
options in case you have defined two bibliography styles.}
\else
\useCustomBibtrue
\setBibtrue
\fi
\fi
}
答案1
最终找到了编译问题的根本原因——将其添加到这里以防其他人将来搜索类似的东西!
请注意,CUED(剑桥大学工程系)论文模板 .cls 文件有两个部分,分别涉及参考文献和参考书目。如果您确实需要删除所有模板默认值并替换为您自己的设置,请确保删除/注释掉两个都.cls 文件中的子部分!
要用 AIP/ 样式引用替换默认引用phys
:
已移除两个都.cls 文件中与参考文献/参考书目相关的子部分
从序言文件中删除了所有参考设置,并替换为
\usepackage[backend=biber,style=phys]{biblatex} \addbibresource{References/references.bib}
仅保留以下类设置:
\documentclass[a4paper,12pt,times]{PhDThesisPSnPDF}
导致其他引用失败(尤其是@online
带有 URL 的引用)的问题涉及我设置的自定义命令。由于我经常在方程式外使用下标,因此我早期设置了以下快捷方式:
\let\sb\textsubscript
事实证明,有一个\sb
命令可以打印参考书目/ url 格式/某物在@online
参考文献中。
在我删除的所有子文档中进行了大量的查找和替换搜索后\sb
,一切终于顺利运行了。我花了几周的时间重新构建并煞费苦心地寻找问题,我意识到这非常特定于我的自定义快捷方式,但希望这可以为某人节省一些时间!
(就上下文而言,从默认模板设置更改为phys
样式的原因是我的主管的指定)