我最近问了一个问题,想知道如何修改参考书目的顺序,因为其中一位作者有一个复合名称,但没有按字母顺序出现在它应该出现的位置。
我第一次这样做的时候,它起作用了,但不知何故现在不起作用了。我的 .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}