我发现在左括号字形后面的“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
我认为,除非彻底重写,否则没有办法摆脱所有这些对字距调整至关重要的基础设施,同时又保留其功能。