開き括弧の直後に「j」のグリフが醜い「衝突」を起こしていることがわかりました。これは「J」を「通常通り」タイプセットすると起こりませんが、BibLaTeX でタイプセットすると起こり、「j」の場合よりずっとひどい状態になります。私の言っていることを理解するには、以下の MWE をコンパイルしてください。
これらの欠陥(私にとってはそうなのです)を体系的に、または「プログラム的に」修正するにはどうすればよいでしょうか?
\documentclass{memoir}
\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}
\usepackage{Baskervaldx}
\begin{filecontents*}{biblio.bib}
@Book{John,
author = { John },
title = {A Title},
}
\end{filecontents*}
\addbibresource{biblio.bib}
\begin{document}
(j) (J) against \autocite{John}
\end{document}
答え1
残念ながら、この原因はbiblatex
動作と TeX がカーニングを適用する方法に深く根ざしているため、この問題や同様の問題を適切に解決する方法がわかりません。
としてエグレ コメントで指摘しているフォントで定義されている(
との間のカーニングはここでは適用されません。J
カーニングと合字は、\write
s(biblatex
時々使用する必要がある)によって抑制されるだけでなく、非常に単純なグループ化や割り当てによっても抑制されます。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{Baskervaldx}
\begin{document}
\makeatletter
f\immediate\write\@auxout{}i\ (\immediate\write\@auxout{}J\
\makeatother
%
f\def\foo{bar}i\ (\def\foo{bar}J\
%
f\begingroup i\endgroup\ (\begingroup J\endgroup\
%
f\bgroup i\egroup\ (\bgroup J\egroup\
%
fi\ (J
\end{document}
これはegregのバグレポートでも議論されています。https://github.com/plk/biblatex/issues/598
biblatex
完全な書き直しをしない限り、カーニングに不可欠なインフラストラクチャをすべて削除しながら、その機能性を維持する方法はないと思います。