Utilice comillas localizadas, separación de palabras y puntuación en BibLaTeX usando langid para el título de las entradas

Utilice comillas localizadas, separación de palabras y puntuación en BibLaTeX usando langid para el título de las entradas

Lo que consigo:

A. Autor, « ¿Algún título de artículo? ». Cualquiera que sea el diario.

B. Buthor, «¿Un artículo? ». Otro diario.

Lo que me gustaría:

A. Autor, “¿Algún título de artículo?”. Cualquiera que sea el diario.

B. Buthor, «¿Un artículo? ». Otro diario.

Y la separación de palabras debería depender del idioma, por supuesto. ;)

autolang=otherno es una opción ya que traduciría algunas otras partes de la bibliografía que no quiero que se vean afectadas.

me he topado conBibLaTeX langid con autolang=hyphen hace que csquotes use comillas localizadasy el comportamiento anterior es principalmente lo que quiero (con el pequeño punto de que no sé cómo se comportó con la puntuación como los signos de interrogación anteriores).

MNWE:

\documentclass{scrartcl}

\usepackage[british,french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage[autolang=hyphen]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{eng,
  author = {Author, A.},
  title = {Some article title?},
  journal = {Whatever Journal},
  year = {2019},
  langid = {british},
}
@article{fra,
  author = {Buthor, B.},
  title = {Un article ?},
  journal = {Another Journal},
  year = {2019},
  langid = {french},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

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

Respuesta1

Puedes probar lo siguiente.

Un comentario sobre los signos de puntuación. Hay dos tipos en su ejemplo:

  • Signos de puntuación en campos, como por ejemplo el signo de interrogación en el título: {Some article title?},

  • Signos de puntuación creados por macros de biblatex, por ejemplo, los dos puntos después de In:.

El primer tipo es difícil de adaptar al lenguaje con pdflatex ya que los catcodes ya están congelados. Con lualatex funciona.

\documentclass{scrartcl}
\usepackage{ifluatex}
\ifluatex\else
 \usepackage[T1]{fontenc} %with pdflatex
\fi

\usepackage[british,french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage[autolang=hyphen]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{eng,
  author = {Author, A.},
  title = {Some article title?},
  journal = {Whatever Journal},
  year = {2019},
  langid = {british},
  editor={D. Editor}
}
@article{fra,
  author = {Buthor, B.},
  title = {Un article?},
  journal = {Another Journal},
  year = {2019},
  langid = {french},
  editor={D. Editor}
}

\end{filecontents*}
\addbibresource{\jobname.bib}

\makeatletter
\def\blx@hook@initlang{%
 \csq@reset=0 \csq@setstyle{\abx@field@langid}%
 %optional for the colon after "In":
 \ifdefstring{\abx@field@langid}{french}{}
  {\def\FDP@colonspace{}%
   \def\FDP@thinspace{}}%
 }
\makeatletter
\begin{document}

\nocite{*}
\printbibliography
\end{document}

Salida con lualatex:

ingrese la descripción de la imagen aquí

Salida con pdflatex

ingrese la descripción de la imagen aquí

Respuesta2

Usar autolang=other(y cargar la T1codificación de fuente) hace el trabajo:

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[british,french]{babel}
\usepackage[autostyle=true]{csquotes}
\usepackage[autolang=other]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@article{eng,
  author = {Author, A.},
  title = {Some article title?},
  journal = {Whatever Journal},
  year = {2019},
  langid = {british},
}
@article{fra,
  author = {Buthor, B.},
  title = {Un article ?},
  journal = {Another Journal},
  year = {2019},
  langid = {french},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}

\nocite{*}
\printbibliography

\end{document} 

ingrese la descripción de la imagen aquí

información relacionada