are 매크로 name:delim
는 name: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
.