BibLaTeX では、エントリのタイトルに langid を使用して、ローカライズされた引用符、ハイフネーション、句読点を使用します。

BibLaTeX では、エントリのタイトルに langid を使用して、ローカライズされた引用符、ハイフネーション、句読点を使用します。

私が得るもの:

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} 

ここに画像の説明を入力してください

関連情報