作者标题中的连字符(使用 biblatex 和 biber 并且 giveninits=true)

作者标题中的连字符(使用 biblatex 和 biber 并且 giveninits=true)

这是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}

在此处输入图片描述

相关内容