Composición tipográfica de una cita completa cuyo título termina con una palabra entre llaves

Composición tipográfica de una cita completa cuyo título termina con una palabra entre llaves

Estoy usando Biblatex y necesito componer citas completas en el texto de mi documento, así que estoy usando\longfullcitecomando de moewe. Si bien funciona correctamente la mayor parte del tiempo, tiene problemas con las entradas de Biber/BibTeX donde la última palabra de un campo está entre llaves (para forzar el uso de mayúsculas). En estos casos, \longfullcitees posible que no se escriba correctamente en mayúscula la siguiente palabra. Tomemos el siguiente ejemplo:

\documentclass{article}

\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@inproceedings{blow2015,
  author       = {Blow, Joe},
  title        = {{GNU} loves me},
  year         = 2015,
  booktitle    = {Proceedings of Some Conference},
}

@inproceedings{blow2016,
  author       = {Blow, Joe},
  title        = {I love {GNU}},
  year         = 2016,
  booktitle    = {Proceedings of Some Conference},
}
\end{filecontents}

\addbibresource{test.bib}

\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}

Aquí está el resultado:

salida del documento anterior, que muestra que el primer \longfullcite escribe correctamente en mayúscula "En", pero el segundo no

Tenga en cuenta la inconsistencia en el uso de mayúsculas en la palabra "In" producida por los dos \longfullcitecomandos. Por el contrario, las citas emitidas por \printbibliographyescriben correctamente "In" en mayúscula para ambas entradas.

¿Qué está causando esta inconsistencia y cómo puedo solucionarla o solucionarla (preferiblemente cambiando la definición \longfullciteen lugar de cambiar el .bibarchivo)?

Respuesta1

Este es un problema conocido (https://github.com/plk/biblatex/issues/295) y afecta a todas las citas dentro del texto, aunque probablemente solo sea realmente visible con algo \fullcitecomo -. Desafortunadamente, las posibilidades de encontrar una solución adecuada son bastante escasas. biblatexEl rastreador de puntuación modifica en gran medida los factores de espacio existentes, pero hacerlo en las citas puede tener efectos no deseados en el texto fuera de las citas.

Tendría que agregar \@letras mayúsculas después al final del título. Pero puedes hacer eso automáticamente en el formato, si lo deseas

\DeclareFieldFormat{title}{\mkbibemph{#1\@}}
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{\mkbibquote{#1\isdot\@}}
\DeclareFieldFormat
  [suppbook,suppcollection,suppperiodical]
  {title}{#1\@}

Respuesta2

Truco sucio:

Inserta algo invisible sin ancho. Estoy seguro de que esto puede causar problemas, pero todavía no sé qué problemas :)

\documentclass{article}

\usepackage{biblatex}
\makeatletter
\newcommand{\tempmaxup}[1]{\def\blx@maxcitenames{\blx@maxbibnames}#1}
\makeatother
\DeclareCiteCommand{\longfullcite}[\tempmaxup]
  {\usebibmacro{prenote}}
  {\usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}

\usepackage{filecontents}

\begin{filecontents}{test.bib}
@inproceedings{blow2015,
  author       = {Blow, Joe},
  title        = {{GNU} loves me},
  year         = 2015,
  booktitle    = {Proceedings of Some Conference},
}

@inproceedings{blow2016,
  author       = {Blow, Joe},
  title        = {I love {GNU}\mbox{}},
  year         = 2016,
  booktitle    = {Proceedings of Some Conference},
}
\end{filecontents}

\addbibresource{test.bib}

\begin{document}
\nocite{*}
\noindent
\longfullcite{blow2015}\\
\longfullcite{blow2016}
\printbibliography
\end{document}

información relacionada