name:delim 및 name:hook은 biblatex에서 무엇을 합니까?

name:delim 및 name:hook은 biblatex에서 무엇을 합니까?

are 매크로 name:delimname:hook낮은 수준으로 보이며 각각은 일반적으로 s의 조합인 하나의 인수만 사용합니다 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비슷한 역할을 합니다. 그러나 이는 이름에만 적용됩니다. 다음과 같은 것과 관련이 있습니다.편집자프랑스어로, 여기서~에 의해될 것이다또는디'이름에 따라.


다음에 나오는 내용에 따라 단어를 수정해야 하는 언어를 사용하지 않는 한(그리고 해당 수정은 에 의해 구현됨 biblatex) 인수를 "올바른 순서"로 제공하지 않으면 이름 형식의 차이를 알 수 없습니다.

일반적인 경험 법칙은 매크로에 의해 인쇄되는 것과 동일한 순서로 이름 부분 인수를 제공해야 한다는 것 name:delim입니다 name:hook.

관련 정보