방금 OSX 10.8.5를 실행하는 MacBookpro에 MacTex 2014 정식 버전을 설치했는데, xelatex로 컴파일된 이 최소한의 문서의 출력에 놀랐습니다.
\documentclass[]{article}
\usepackage[frenchb]{babel}
\usepackage{fontspec}
\usepackage{xltxtra,xunicode}
\setmainfont{Minion Pro}
\setromanfont[Mapping=tex-text]{Minion Pro}
\setsansfont{Myriad Pro}
\setmonofont{Source Code Pro}
\frenchspacing
\begin{document}
l'étranger, l'équipe
\end{document}
간격이 잘못된 것 같습니다("l"과 다음 단어가 너무 가깝습니다). 아니면 Minion Pro에서 어떻게 보일까요? 제가 간과한 옵션이 있나요?
답변1
이 문제는 대부분의 Adobe 글꼴(Adobe, 듣고 있나요?)에 영향을 미칩니다. xetex
에서 이에 대해 수행할 수 있는 작업을 충분히 알지 못하지만 글꼴 자체를 편집하지 않고도 커닝을 조정하는 기능 파일을 작성할 수 있습니다 xetex
. luatex
생각보다 훨씬 쉽습니다. 예:
\documentclass[12pt]{article}
\usepackage[french]{babel}
\usepackage{filecontents,fontspec,microtype}
\begin{filecontents*}{minion.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
feature kern {
pos \quoteright \a 10;
pos \quoteright \eacute 10;
pos \quoteright \o 10;
} kern;
\end{filecontents*}
\setmainfont{Minion Pro}[
FeatureFile={minion.fea}]
\frenchspacing
\begin{document}
l’étranger
d’accord
d’ores et déjà
\end{document}
pos \quoteright \e 10;
아포스트로피 뒤에 올 수 있는 항목을 나열할 때까지 다음 과 같은 줄을 계속 추가하면 됩니다 . 원하는 대로 빡빡하거나 느슨해질 때까지 값을 가지고 놀 수 있습니다(1, 10, 20...).
이중 언어 문서를 작성 중이고 다른 언어에 더 엄격한 커닝이 필요한 경우(다른 언어에 대해서는 잘 모르겠습니다) 정의한 기능을 어떤 언어에 적용할지 지정할 수 있습니다. 더 많은 작업이 필요하지만 기술은 다음 페이지에 설명되어 있습니다.tex.stackexchange.com/a/142664/7883.
업데이트: 버전 2.7부터 luaotfload
기능 파일은 더 이상 지원되지 않습니다. 보다tex.stackexchange.com/a/312160/7883이 문제를 해결하는 새로운 방법을 찾으세요.
답변2
현재 XeTeX의 interchartoken 메커니즘을 사용하여 아포스트로피와 후속 문자 사이의 커닝을 비활성화하고 있습니다.
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\ApostropheClass
\XeTeXcharclass`'\ApostropheClass
\newXeTeXintercharclass\AfterApostropheClass
\XeTeXcharclass`a\AfterApostropheClass
\XeTeXcharclass`A\AfterApostropheClass
\XeTeXcharclass`à\AfterApostropheClass
\XeTeXcharclass`â\AfterApostropheClass
\XeTeXcharclass`e\AfterApostropheClass
\XeTeXcharclass`E\AfterApostropheClass
\XeTeXcharclass`é\AfterApostropheClass
\XeTeXcharclass`è\AfterApostropheClass
\XeTeXcharclass`ê\AfterApostropheClass
\XeTeXcharclass`i\AfterApostropheClass
\XeTeXcharclass`o\AfterApostropheClass
\XeTeXcharclass`ò\AfterApostropheClass
\XeTeXcharclass`U\AfterApostropheClass
\XeTeXcharclass`u\AfterApostropheClass
\XeTeXcharclass`ù\AfterApostropheClass
\XeTeXcharclass`y\AfterApostropheClass
\XeTeXinterchartoks\ApostropheClass\AfterApostropheClass={\penalty\@M\hskip\z@}
하이픈 연결이 비활성화되는 것을 방지하기 위해 컨 대신 접착제를 삽입하고 있습니다. 글루 위치에서 줄 바꿈을 방지하기 위해 패널티가 있습니다.