Я обнаружил, что есть уродливое "столкновение" глифа для "j" сразу после глифа открывающей скобки. Этого не происходит с "J", когда набор выполняется "обычно", но это происходит, и это намного хуже, чем с "j", когда набор выполняется через BibLaTeX. Пожалуйста, скомпилируйте 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
сохранив при этом ее функциональность, за исключением полной переписывания.