![O que name:delim e name:hook fazem no biblatex?](https://rvso.com/image/476235/O%20que%20name%3Adelim%20e%20name%3Ahook%20fazem%20no%20biblatex%3F.png)
As macros name:delim
are name:hook
parecem de baixo nível e cada uma leva apenas um argumento que normalmente é uma combinação de namepart
s. Mesmo assim, Moewe tem o cuidado de combiná-los de diferentes maneiras.
Aqui está um esquema de exibição de nome padrão embiblatex.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}}}%
Aqui estão suas soluções personalizadas para exibiçãoNomes etíopes
\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}}
\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}}}
Obviamente há um padrão, mas não vejo que eles afetem a saída visível. Então, quero saber quanta atenção devo prestar a isso enquanto tento montar minha própria exibição de nome personalizada.
Debiblatex.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}}}
{}}
Responder1
name:delim
compõe o delimitador entre nomes diferentes. Normalmente ( multinamedelim
) é uma vírgula ou alguma pontuação chata, mas o último delimitador pode ser especial ( finalnamedelim
), por exemplo, às vezes é um "e". Em alguns idiomas o finalnamedelim
("e") pode mudar de forma dependendo da palavra/nome que se segue (em espanhol você deve alternar entre "y" e "e"). É por isso que name:delim
recebe algumas informações sobre o nome para que possa decidir a forma do “e”. De modo geral, a ordem dos argumentos no argumento de name:delim
deve seguir a ordem das partes do nome impressa pela bibmacro relevante. (Isso era verdade para o caso da Etiópia, mas não para a macro CJK. Mudei isso na postagem vinculada.)
name:hook
tem um papel semelhante. Mas isso se aplica apenas ao primeiro nome. É relevante para coisas comoeditado porem francês, ondeporseriadeoud'dependendo do nome.
A menos que você use uma linguagem na qual seja necessário modificar palavras dependendo do que se segue (e essa modificação seja implementada por biblatex
), você não notará diferença nos formatos de seu nome quando não alimentar os argumentos "na ordem correta".
A regra geral é que name:delim
e name:hook
devem ser alimentados os argumentos da parte do nome na mesma ordem em que são impressos pela macro.