希望有人之前遇到过这种情况......
我想引用一篇以笔名发表的论文,自然我会把它放在引号中。即“学生”(1908 年)。然而,在最后的印刷参考书目中,“学生”(1908 年)现在位于列表顶部,而不是与其他 S 条目一起位于下方。是否有命令可以告诉 LaTeX 按字母顺序对我的参考文献进行排序并忽略标点符号?
答案1
以下两步解决方案适用于 BibTeX 和 biber。
插入指令
@preamble{ "\providecommand{\noopsort}[1]{} " }
在 bib 文件的开头。或者,插入指令
\providecommand{\noopsort}[1]{}
在你的主 tex 文件的序言中。
将
author
相关条目的字段从author = {`Student'},
到
author = {\noopsort{Student}`Student'},
的参数
\noopsort
必须是您希望 BibTeX 或 biber 执行排序的名称的形式。
进行这些更改后,请务必执行完整的重新编译循环:latex-bibtex-latex-latex 或 latex-biber-latex。
答案2
biblatex
有sortname
该字段。sortname
仅用于排序目的,并且可以替换author
,editor
如果打印名称不应与排序名称相同。
文档biblatex
对该字段的解释如下
[
sortname
] 用于修改书目排序顺序的名称或名称列表。如果存在,则在对书目进行排序时使用此列表代替author
或editor
。有关更多详细信息,请参阅 §3.5。此字段由后端处理使用,不会出现在 中.bbl
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{student,
author = {{\enquote{Student}}},
sortname = {Student},
title = {On the Importance of the Civil Service},
date = {1980},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson,nussbaum,worman,student}
\printbibliography
\end{document}