biblatex で name:delim と name:hook は何をしますか?

biblatex で name:delim と name:hook は何をしますか?

areマクロname:delimname:hook低レベルのようで、それぞれが 1 つの引数のみを取り、通常は複数の引数の組み合わせになりますnamepart。しかし、Moewe はそれらをさまざまな方法で組み合わせるように注意しています。

標準的な名前表示方式は次のとおりです。biblatex.def

\newbibmacro*{name:family}[4]{%
  \ifuseprefix
    {\usebibmacro{name:delim}{#3#1}%
     \usebibmacro{name:hook}{#3#1}%
     \mkbibcompletenamefamily{%
       \ifdefvoid{#3}
         {}
         {\ifcapital
            {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
            {\mkbibnameprefix{#3}\isdot}%
          \ifprefchar{}{\bibnamedelimc}}%
       \mkbibnamefamily{#1}\isdot}}
    {\usebibmacro{name:delim}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibcompletenamefamily{%
       \mkbibnamefamily{#1}\isdot}}}%

ディスプレイ用のカスタムソリューションはこちらエチオピアの名前

\newbibmacro*{name:ethiopian}[3]{%
  \usebibmacro{name:delim}{#1#2#3}%
  \usebibmacro{name:hook}{#1#2#3}%
  \mkbibethgiven{#1}%
  \ifdefvoid{#2}{}{\bibnamedelimd\mkbibethpat{#2}\isdot}%
  \ifdefvoid{#3}{}{\bibnamedelimd\mkbibethpap{#3}\isdot}}

そしてCJK 名

\newbibmacro*{name:cjk}[3]{%
  \usebibmacro{name:delim}{#2#3#1}%
  \usebibmacro{name:hook}{#2#3#1}%
  \mkbibnamefamily{#1}%
  \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}}%
  \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnamecjk{#3}}}

明らかにパターンはありますが、それが目に見える出力に影響を与えるとは思えません。そのため、独自のカスタム名表示をまとめようとするときに、これにどの程度注意を払う必要があるかを知りたいです。

からbiblatex.def:

\newbibmacro*{name:hook}[1]{%
  \ifnumequal{\value{listcount}}{1}
    {\lbx@initnamehook{#1}}
    {}}


\newbibmacro*{name:delim}[1]{%
  \ifnumgreater{\value{listcount}}{\value{liststart}}
    {\ifboolexpr{
       test {\ifnumless{\value{listcount}}{\value{liststop}}}
       or
       test \ifmorenames
     }
       {\printdelim{multinamedelim}}
       {\lbx@finalnamedelim{#1}}}
    {}}

答え1

name:delim異なる名前の間の区切り文字をタイプセットします。通常 ( multinamedelim) はカンマまたはそのような退屈な句読点ですが、最後の区切り文字は特別な ( finalnamedelim) になることがあります。たとえば、"and" の場合もあります。言語によっては、finalnamedelim("and") は後に続く単語/名前に応じて形式が変わる場合があります (スペイン語では "y" と "e" を切り替える必要があります)。そのため、 にはname:delim名前に関する情報が与えられ、"and" の形式を決定できます。一般的に、 の引数の順序は、name:delim関連する bibmacro によって印刷される名前部分の順序に従う必要があります。(これはエチオピアの場合には当てはまりましたが、CJK マクロには当てはまりませんでした。リンクされた投稿でこれを変更しました。)

name:hook同様の役割があります。しかし、これはファーストネームにのみ適用されます。次のような場合に関係します。によって編集フランス語では、によるだろうまたはd'名前によって異なります。


後続の内容に応じて単語を変更する必要がある言語 (およびその変更が によって実装されているbiblatex) を使用しない限り、引数を「正しい順序」で入力しなくても、名前の形式に違いは見られません。

一般的な経験則としては、name:delimマクロname:hookによって印刷されるのと同じ順序で、名前部分の引数を入力する必要があります。

関連情報