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=other
no 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:
Salida con pdflatex
Respuesta2
Usar autolang=other
(y cargar la T1
codificació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}