无法订购参考书目

无法订购参考书目

我最近问了一个问题,想知道如何修改参考书目的顺序,因为其中一位作者有一个复合名称,但没有按字母顺序出现在它应该出现的位置。

问题是,它有一个答案这里

我第一次这样做的时候,它起作用了,但不知何故现在不起作用了。我的 .bib 文件的开头有一行

@preamble{"\providecommand{\noop}[1]{}"}

当包含该引用时,我有;

author = {\noop{Gathen} Joachim von zur Gathen and Jürguen Gerhard}

当我通过 进行编译时latex,biblatex,latex,latex。在参考部分中它显示如下:

在此处输入图片描述

N和 之间P。这是为什么呢?

我正在使用 article 类。这有什么问题吗?

我想这与我写名字的方式有关,因为我使用的风格缩写了所有作者的名字,但保持这个名字完整(Joachim)。

编辑:我包括一个 MWE:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,english,es-tabla]{babel}

\begin{document}
\cite{CA}, \cite{NAT}, \cite{UC}.

\bibliographystyle{abbrv}
\bibliography{bibliography}
\end{document}

bib 文件将包含:

@Book{UC,
author = {Christof Paar and Jan Pelzl},
title = {Understanding Cryptography},
publisher = {Springer},
year = {2010}
}

@Book{CA,
author = {\noop{A} {von zur Gathen}, Joachim and Jürguen Gerhard},
ALTeditor = {•},
title = {Modern Computer Algebra},
publisher = {Cambridge Univ. Press},
year = {2003},
edition = {second}
}

@Book{NAT,
  author =   {Melvyn B. Nathanson},
  ALTeditor =    {},
  title =        {Elementary methods in Number Theory},
  publisher =    {Springer},
  year =         {2000}}

这重现了与上图相同的顺序。

答案1

您应该将整个内容放在\noop{...}{...}括号中:

\begin{filecontents*}{\jobname.bib}
@Book{UC,
author = {Christof Paar and Jan Pelzl},
title = {Understanding Cryptography},
publisher = {Springer},
year = {2010},
}

@Book{CA,
author = {{\noop{Gathen}{von zur Gathen}}, Joachim and Jürguen Gerhard},
title = {Modern Computer Algebra},
publisher = {Cambridge Univ. Press},
year = {2003},
edition = {second},
}

@Book{NAT,
  author =   {Melvyn B. Nathanson},
  title =        {Elementary methods in Number Theory},
  publisher =    {Springer},
  year =         {2000},
}
\end{filecontents*}

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,english,es-tabla]{babel}

\providecommand{\noop}[2]{#2}

\begin{document}
\cite{CA}, \cite{NAT}, \cite{UC}.

\bibliographystyle{abbrv}
\bibliography{\jobname}
\end{document}

filecontents*只是为了使示例自成一体,无需担心地使用单独的文件。

在此处输入图片描述

答案2

如果你使用编译则bilatex+biber不需要\noop括号:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[spanish,english,es-tabla]{babel}
\usepackage{filecontents}

\begin{filecontents}{mybib.bib}
@Book{UC,
author = {Christof Paar and Jan Pelzl},
title = {Understanding Cryptography},
publisher = {Springer},
year = {2010}
}

@Book{CA,
author = {von zur Gathen, Joachim and Jürguen Gerhard},
ALTeditor = {•},
title = {Modern Computer Algebra},
publisher = {Cambridge Univ. Press},
year = {2003},
edition = {2}
}

@Book{NAT,
author = {Melvyn B. Nathanson},
ALTeditor = {},
title = {Elementary methods in Number Theory},
publisher = {Springer},
year = {2000}}
\end{filecontents}

\usepackage[firstinits]{biblatex}
\addbibresource{mybib.bib}

\begin{document}

\cite{CA}, \cite{NAT}, \cite{UC}.

\printbibliography

\end{document} 

在此处输入图片描述

相关内容