对参考书目进行排序并忽略标点符号

对参考书目进行排序并忽略标点符号

希望有人之前遇到过这种情况......

我想引用一篇以笔名发表的论文,自然我会把它放在引号中。即“学生”(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

biblatexsortname该字段。sortname仅用于排序目的,并且可以替换authoreditor如果打印名称不应与排序名称相同。

文档biblatex对该字段的解释如下

[ sortname] 用于修改书目排序顺序的名称或名称列表。如果存在,则在对书目进行排序时使用此列表代替authoreditor。有关更多详细信息,请参阅 §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}

努斯鲍姆 - 西格弗里德森 - “学生” - 沃曼

相关内容