私が得るもの:
A. 著者、「何らかの記事タイトル?」。どんなジャーナルでも。
B. Buthor、「Un article ?」。別のジャーナル。
私が望むこと:
A. 著者「何か記事のタイトルですか?」。どんなジャーナルでも。
B. Buthor、「Un article ?」。別のジャーナル。
もちろん、ハイフネーションは言語によって異なります。;)
autolang=other
影響を受けたくない参考文献の他の部分を翻訳してしまうため、これはオプションではありません。
私は偶然見つけたBibLaTeX langid を autolang=hyphen に設定すると、csquotes はローカライズされた引用符を使用するようになります。古い動作は、ほぼ私が望んでいるとおりです (ただし、上記の疑問符のような句読点に対してどのように動作するかはわかりません)。
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}
答え1
以下の方法を試すことができます。
句読点についてのコメント。例には 2 つの種類があります。
フィールド内の句読点(例:タイトル内の疑問符:
{Some article title?}
,biblatex のマクロによって作成された句読点 (例: . の後のコロン)
In:
。
最初のタイプは、catcodes がすでに固定されているため、pdflatex で言語に適応するのが困難です。lualatex では動作します。
\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}
lualatex による出力:
pdflatexで出力
答え2
使用autolang=other
(およびT1
フォント エンコーディングのロード)すると、次のようになります。
\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}