著者名にハイフンを使用する (biblatex と biber を使用し、giveninits=true を指定)

著者名にハイフンを使用する (biblatex と biber を使用し、giveninits=true を指定)

これはミコの質問著者のタイトルを で指定する方法についてgiveninits=true。ハイフンを含まないタイトルに有効な 2 つの回答が見つかりました。

さて、タイトル「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}

スクリーンショット

回避策を 1 つ知っているので、回答として投稿します。ただし、カスタム コマンドを定義し、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がここではotherに固定されており、アクティブにできないため、これが機能すると想定しています。moeweのコメントによると、gusbrsの回答これが機能するのは、「挿入は TeX コマンドを拡張しない Biber によって実行される」ためです。

コマンドを囲む中括弧がなぜ必要なのかはわかりませんが、中括弧がないとエラーが発生します。

これらのブレースの位置は、ミコの回答

\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}

ここに画像の説明を入力してください

関連情報