在我的学校,博士论文通常被称为学位论文,而不是论文。
我的 bibtex 文件有以下条目:
@phdthesis{Alsolami2012Auth,
title = {An examination of keystroke dynamics for continuous user authentication},
school = {Queensland University of Technology},
author = {Alsolami, Eesa},
year = {2012}, %other attributes omitted
}
它的渲染结果如下:
[2] Eesa Alsolami. An examination of keystroke dynamics for continuous user authentication.
PhD thesis, Queensland University of Technology, 2012.
有什么办法可以让它显示“博士论文”而不是“博士论文”?
另外,为什么这是 LaTeX 的默认设置?更改它会不会不寻常或不太好?
编辑:我使用的是plain
参考书目样式。我可能也会使用ieeetr
:
\bibliographystyle{plain}
\bibliography{myBibFile1,myBibFile2}
答案1
所使用的文本plain.bst
被硬编码到文件本身中,因此无法从文档中自定义。
您可以做的是复制plain.bst
并编辑它,然后使用该副本作为您的参考书目样式。
在 TeX Live 系统中,plain.bst
位于/usr/local/texlive/2013/texmf-dist/bibtex/bst/base/plain.bst
。复制此文件并命名为plain-diss.bst
(或其他名称)。将其保存在与文档相同的文件夹中,或将其放在 中的本地texmf
文件夹中texmf/bibtex/bst/
。
编辑文件,搜索“thesis”,你会发现以下函数:
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
new.block
format.btitle "title" output.check
new.block
"PhD thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
更改 "PhD thesis"
为"PhD dissertation"
,然后保存文件。
在您的文档中,使用\bibliographystyle{plain-diss}
而不是{plain}
。
相同的通用解决方案也适用于ieeetr.bst
。
biblatex 解决方案
另一种方法是使用biblatex
,它可以轻松自定义这些内容。以下是说明如何执行此操作的示意图:
\documentclass{article}
\usepackage[style=numeric]{biblatex}
\usepackage[american]{babel}
\addbibresource{<your-bib-fil>.bib}
\DefineBibliographyStrings{american}{phdthesis = {PhD dissertation}}
\begin{document}
\cite{<cite-key>}
\printbibliography
\end{document}
答案2
为了快速修复,您可以使用该type
字段,尽管它会使文件不可移植。
\begin{filecontents*}{\jobname.bib}
@phdthesis{Alsolami2012Auth,
title = {An examination of keystroke dynamics for continuous user authentication},
school = {Queensland University of Technology},
author = {Alsolami, Eesa},
year = {2012},
type = {{PhD} dissertation},
}
\end{filecontents*}
\documentclass{article}
\begin{document}
\cite{Alsolami2012Auth}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}