Baskervaldx 및 BibLaTeX와의 글리프 충돌 방지

Baskervaldx 및 BibLaTeX와의 글리프 충돌 방지

여는 괄호 문자 바로 뒤에 "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의 커닝 적용 방식에 깊이 뿌리박혀 있기 때문에 이 문제와 유사한 문제를 적절하게 해결할 수 있는 방법이 없습니다.

처럼egreg 댓글에서 지적함글꼴에 정의된 사이의 커닝은 여기에 적용되지 (않습니다 .J

커닝 및 합자는 \writes( 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완전히 다시 작성하지 않는 한 기능을 유지하면서 이러한 커닝이 중요한 인프라를 모두 제거할 방법이 없습니다 .

관련 정보