Poner en negrita un nombre que contenga un espacio vacío en la bibliografía biblatex

Poner en negrita un nombre que contenga un espacio vacío en la bibliografía biblatex

Estoy implementando la primera solución presentada.aquíponer en negrita una selección de nombres en la bibliografía biblatex.

El problema que tengo es con los nombres que contienen un espacio vacío " ". La solución no se aplica entonces. Ejemplo Le Texier:

@article{schindlerHowFarPeople2022,
  title = {How Far Do People Travel to Use Urban Green Space? {{A}} Comparison of Three {{European}} Cities},
  author = {Schindler, Mirjam and Le Texier, Marion and Caruso, Geoffrey},
  date = {2022-04-01},
  journaltitle = {Applied Geography},
  volume = {141},
  pages = {102673},
  doi = {10.1016/j.apgeog.2022.102673},
}

Formé el filtro basándome en el ejemplo dado en la solución propuesta:

    \forcsvlist{\listadd\boldnames} %this is the model of filter
      {{Herrmann, Wolfgang~A.}, {Herrmann, W.~A.}, {Herrmann, Wolfgang\bibnamedelima A.},
      {Herrmann, W\bibinitperiod\bibinitdelim A\bibinitperiod}}
   \forcsvlist{\listadd\boldnames} %this is my implementation of the filter
      {{Le Texier, Marion}, {Le~Texier, Marion}, {Le Texier, M.}, {Texier, M\bibinitperiod}}

Los filtros funcionan para todos los nombres de autores, pero fallan para este nombre en particular que contiene un espacio vacío.

Respuesta1

Los nombres con espacios pueden ser complicados en el enfoque basado en cadenas. Si revisa el .bblarchivo, verá que Biber produce

    {{hash=31cbf23407084cad2911631ec94eba70}{%
       family={Le\bibnamedelima Texier},
       familyi={L\bibinitperiod\bibinitdelim T\bibinitperiod},
       given={Marion},
       giveni={M\bibinitperiod}}}%

eso es todo biblatex, así que tendrás que usar Le\bibnamedelima Texieren lugar deLe Texier

\forcsvlist{\listadd\boldnames}
  {{Le\bibnamedelima Texier, Marion}, {Le\bibnamedelima Texier, M\bibinitperiod}}

Esto funciona como se muestra en el siguiente MWE

\documentclass{article}
\usepackage{biblatex}
\usepackage{xpatch}

\makeatletter
\newbibmacro*{name:bold}[2]{%
  \edef\blx@tmp@name{\expandonce#1, \expandonce#2}%
  \def\do##1{\ifdefstring{\blx@tmp@name}{##1}{\bfseries\listbreak}{}}%
  \dolistloop{\boldnames}}
\newcommand*{\boldnames}{}
\makeatother

\xpretobibmacro{name:family}{\begingroup\usebibmacro{name:bold}{#1}{#2}}{}{}
\xpretobibmacro{name:given-family}{\begingroup\usebibmacro{name:bold}{#1}{#2}}{}{}
\xpretobibmacro{name:family-given}{\begingroup\usebibmacro{name:bold}{#1}{#2}}{}{}
\xpretobibmacro{name:delim}{\begingroup\normalfont}{}{}

\xapptobibmacro{name:family}{\endgroup}{}{}
\xapptobibmacro{name:given-family}{\endgroup}{}{}
\xapptobibmacro{name:family-given}{\endgroup}{}{}
\xapptobibmacro{name:delim}{\endgroup}{}{}


\forcsvlist{\listadd\boldnames}
  {{Le\bibnamedelima Texier, Marion}, {Le\bibnamedelima Texier, M\bibinitperiod}}

\begin{filecontents}{\jobname.bib}
@article{schindlerHowFarPeople2022,
  title        = {How Far Do People Travel to Use Urban Green Space?
                  A Comparison of Three {European} Cities},
  author       = {Schindler, Mirjam and Le Texier, Marion
                  and Caruso, Geoffrey},
  date         = {2022-04-01},
  journaltitle = {Applied Geography},
  volume       = {141},
  pages        = {102673},
  doi          = {10.1016/j.apgeog.2022.102673},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

% just for demonstration
\ExecuteBibliographyOptions{maxnames=99,giveninits}
\DeclareNameAlias{default}{family-given/given-family}

\begin{document}
\nocite{schindlerHowFarPeople2022}
\printbibliography
\end{document}

Schindler, M., M. Le Texier y G. Caruso. “¿Hasta dónde viaja la gente para utilizar los espacios verdes urbanos? Una comparación de tres ciudades europeas”. En: Geografía Aplicada 141 (1 de abril de 2022), pág. 102673. doi: 10.1016/j.apgeog.2022.102673.


Cuestiones como esta son la razón por la que recomiendo encarecidamente un enfoque basado en hash tal como se implementa enmi respuestaaPoner en negrita un autor específico usando biblatex.

Esto entonces se vería como el siguiente, donde puede pasar el nombre tal \addboldnamescomo lo escribiría en el .bibarchivo.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[backend=biber,style=numeric]{biblatex}

\makeatletter
\def\nhblx@bibfile@name{\jobname -nhblx.bib}
\newwrite\nhblx@bibfile
\immediate\openout\nhblx@bibfile=\nhblx@bibfile@name

\immediate\write\nhblx@bibfile{%
  @comment{Auto-generated file}\blx@nl}

\newcounter{nhblx@name}
\setcounter{nhblx@name}{0}

\newcommand*{\nhblx@writenametobib}[1]{%
  \stepcounter{nhblx@name}%
  \edef\nhblx@tmp@nocite{%
    \noexpand\AfterPreamble{%
      \noexpand\setbox0\noexpand\vbox{%
        \noexpand\nhblx@getmethehash{nhblx@name@\the\value{nhblx@name}}}}%
  }%
  \nhblx@tmp@nocite
  \immediate\write\nhblx@bibfile{%
    @misc{nhblx@name@\the\value{nhblx@name}, author = {\unexpanded{#1}}, %
          options = {dataonly=true},}%
  }%
}

\AtEndDocument{%
  \closeout\nhblx@bibfile}

\addbibresource{\nhblx@bibfile@name}

\newcommand*{\nhblx@boldhashes}{}
\DeclareNameFormat{nhblx@hashextract}{%
  \xifinlist{\thefield{hash}}{\nhblx@boldhashes}
    {}
    {\listxadd{\nhblx@boldhashes}{\thefield{hash}}}}

\DeclareCiteCommand{\nhblx@getmethehash}
  {}
  {\printnames[nhblx@hashextract][1-999]{author}}
  {}
  {}

\newcommand*{\addboldnames}{\forcsvlist\nhblx@writenametobib}
\newcommand*{\resetboldnames}{\def\nhblx@boldhashes{}}

\newcommand*{\ifhashinboldlist}{%
  \xifinlist{\thefield{hash}}{\nhblx@boldhashes}}
\makeatother

\newcommand*{\mkboldifhashinlist}[1]{%
  \ifhashinboldlist
    {\mkbibbold{#1}}
    {#1}}

\DeclareNameWrapperFormat{boldifhashinlist}{%
  \renewcommand*{\mkbibcompletename}{\mkboldifhashinlist}%
  #1}

\DeclareNameWrapperAlias{sortname}{default}
\DeclareNameWrapperAlias{default}{boldifhashinlist}

\addboldnames{{Le Texier, Marion}}

\begin{filecontents}{\jobname.bib}
@article{schindlerHowFarPeople2022,
  title        = {How Far Do People Travel to Use Urban Green Space?
                  A Comparison of Three {European} Cities},
  author       = {Schindler, Mirjam and Le Texier, Marion
                  and Caruso, Geoffrey},
  date         = {2022-04-01},
  journaltitle = {Applied Geography},
  volume       = {141},
  pages        = {102673},
  doi          = {10.1016/j.apgeog.2022.102673},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\nocite{schindlerHowFarPeople2022}
\printbibliography
\end{document}

Mirjam Schindler, Marion Le Texier y Geoffrey Caruso. “¿Hasta dónde viaja la gente para utilizar los espacios verdes urbanos? Una comparación de tres ciudades europeas”. En: Geografía Aplicada 141 (1 de abril de 2022), pág. 102673. doi: 10.1016/j.apgeog.2022.102673.

información relacionada