这是Mico 的问题关于如何使用 指定作者的标题giveninits=true
。已找到两个答案,适用于不包含连字符的标题。
现在,让我们考虑一下“Dr.-Ing.”这个头衔。对于这两个答案,我在连字符前面加了一个点:
\RequirePackage{filecontents}
\begin{filecontents*}{mybib.bib}
@unpublished{tet-skript-moewe,
author = {family={Schuhmann}, given={Prof. Dr.-Ing. Rolf}, given-i={Prof. Dr.-Ing. R}},
title = {Skriptum zu den {V}orlesungen
{T}heoretische {E}lektrotechnik {I} und {II}},
date = {2013-12-17},
note = {moewe's answer}
}
@unpublished{tet-skript-mico,
author = {{{\relax Prof. Dr.-Ing. R}olf} Schuhmann},
title = {Skriptum zu den {V}orlesungen
{T}heoretische {E}lektrotechnik {I} und {II}},
date = {2013-12-17},
note = {Mico's answer}
}
\end{filecontents*}
\documentclass{article}
\usepackage[backend=biber, giveninits=true]{biblatex}
\addbibresource{mybib.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
我知道一种解决方法,我将发布作为答案。但是,我不喜欢它,因为它涉及定义自定义命令,从而创建 bib 文件对 tex 文件的依赖关系。
有人知道更好的解决方案吗?
答案1
我真的不知道它为什么会起作用,但是你可以删除中的点Dr-Ing.
,然后添加的点就会在那里获得所需的结果:
\RequirePackage{filecontents}
\begin{filecontents*}{mybib.bib}
@unpublished{tet-skript-moewe,
author = {family={Schuhmann}, given={Prof. Dr.-Ing. Rolf}, given-i={Prof. Dr-Ing. R}},
title = {Skriptum zu den {V}orlesungen
{T}heoretische {E}lektrotechnik {I} und {II}},
date = {2013-12-17},
note = {moewe's answer}
}
@unpublished{tet-skript-mico,
author = {{{\relax Prof. Dr-Ing. R}olf} Schuhmann},
title = {Skriptum zu den {V}orlesungen
{T}heoretische {E}lektrotechnik {I} und {II}},
date = {2013-12-17},
note = {Mico's answer}
}
\end{filecontents*}
\documentclass{article}
\usepackage[backend=biber, giveninits=true]{biblatex}
\addbibresource{mybib.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
它适用于 Mico 和 moewe 的解决方案。
答案2
在命令中使用连字符可以避免插入额外的点。
我假设这样做有效,因为连字符的 catcode 在这里固定为其他,无法激活。根据 moewe 对gusbrs 的回答这是可行的,因为“插入是由 Biber 完成的,它不会扩展您的 TeX 命令”。
我不确定为什么需要在命令周围使用花括号,但如果没有它们,我就会收到错误。
这些支架的位置取决于Mico 的回答。
\RequirePackage{filecontents}
\begin{filecontents*}{mybib.bib}
@unpublished{tet-skript,
author = {{\Prof{} \DrIng{} R}olf Schuhmann},
title = {Skriptum zu den {V}orlesungen
{T}heoretische {E}lektrotechnik {I} und {II}},
date = {2013-12-17},
}
\end{filecontents*}
\documentclass{article}
\usepackage[backend=biber, firstinits=true]{biblatex}
\addbibresource{mybib.bib}
\newcommand{\DrIng}{Dr.-Ing.\@}
\newcommand{\Prof}{Prof.\@}
\begin{document}
\nocite{*}
\printbibliography
\end{document}