LuaLaTeX를 사용한 자동 커닝

LuaLaTeX를 사용한 자동 커닝

마침표 바로 위에 오른쪽 큰따옴표를 조판하는 방법이 있습니까(인용문이 마침표로 끝나는 경우)? 왼쪽(예: .")이나 오른쪽(예: ".)이 아니라 바로 위에 있습니다. 아래 사진은 예시입니다트리, 지도, 정리장 뤽 두몽(Jean-luc Doumont) 지음.

마침표 바로 위에 큰따옴표가 있습니다.

답변1

한 가지 방법은 따옴표와 마침표 사이에 부정적인 "커닝"을 추가하는 것입니다.

\documentclass{article}
\begin{document}
Here is an unkerned quotation mark: ``\dots''.

Here is a kerned quotation mark: ``\dots''\kern-0.5em.
\end{document}

커닝의 예

TeX 명령은 \kern-0.5em따옴표와 다음 마침표 사이에 음수 공백을 삽입합니다. 정확한 간격을 사용하여 약간의 작업을 수행해야 하지만 -0.5em글꼴 크기에 따라 크기가 조정되는 측정값을 사용하면 합리적으로 잘 작동합니다.

LuaLaTeX를 사용한 자동 커닝

다른 사람들이 제안한 것처럼 매크로를 사용하여 이 작업을 수행할 수 있지만 이 작업을 자동으로 수행하려면 글꼴별 커닝 테이블에 이 커닝 정보를 포함해야 하는 것으로 보입니다. 이 작업은 다음으로 수행할 수 있습니다.LuaLaTeX다음과 같이:

먼저 파일을 만듭니다.Palatino.fea

languagesystem DFLT dflt;
languagesystem latn dflt;
feature kern {
pos  \quotedblright \period -1000;
} kern;

이제 다음을 사용하여 이 글꼴 정보를 로드합니다 fontspec.

\documentclass{article}
\usepackage{fontspec}
\setmainfont[FeatureFile=Palatino.fea]{Palatino}

\begin{document}
Here is an automatically kerned quotation mark: ``\dots''.

Here is a manually kerned quotation mark: ``\dots''\kern-0.5em.
\end{document}

지금 이것을 컴파일해야 하며 lualatex사용하려는 모든 글꼴에 대한 사용자 정의 커닝 정보를 추가해야 합니다.

LuaLaTeX를 사용한 자동 커닝

답변2

나는 이것을 매크로로 감싸 \rlap인 -ed 마침표(또는 LaTeX의 의미에서는 ) 로 설정하겠습니다 .\makebox[0pt][l]

여기에 이미지 설명을 입력하세요

\documentclass{article}
\newcommand{\qperiod}{\rlap{.}}
\begin{document}
Some text: ``\dots''.

Some text: ``\dots''

Some text: ``\dots\qperiod''
\end{document}

매크로 래핑을 사용하면 필요할 때 전역적으로 수정할 수 있습니다.

답변3

여기서는 스택을 사용합니다. stacktype긴 경우 "L", 짧은 경우 "S"(기본값)입니다 . "L"인 경우 스태킹 "거리"는 기준선에서 기준선까지입니다. 로 설정하면 0pt두 구성 요소가 동일한 기준선을 공유한다는 의미입니다(반대로, 짧은 스택 거리는 "앵커" 상단과 스택 항목 하단 사이의 수직 간격입니다). 수평 정렬을 정의 stackalignment합니다(기본값 c=중심). 여기서는 왼쪽 정렬로 설정했습니다.

\documentclass{article}
\usepackage{stackengine}
\renewcommand\stacktype{L}
\renewcommand\stackalignment{l}
\begin{document}
by ``\dots\stackon[0pt]{.}{''}
\end{document}  

여기에 이미지 설명을 입력하세요

stackengine8개의 필수 인수가 있는 일반 매크로를 사용하면 모든 매개변수 설정을 우회하여 동일한 결과를 얻을 수 있습니다 .

by ``\dots\stackengine{0pt}{.}{''}{O}{l}{F}{F}{L}

8개의 필수 인수는 다음과 같습니다.

  • 스태킹 거리
  • 앵커 아이템
  • 쌓인 아이템
  • O(ver) 또는 U(nder) 스택
  • l(eft) c(enter) 또는 r(ight) 수평 정렬
  • "quietstack"에 대한 T/F("T"는 생성되었지만 인쇄되지 않음을 의미함)
  • "useanchorwidth"에 대한 T/F("T"는 앵커 너비가 전체 스택 너비를 결정함을 의미함)
  • S(짧은) 또는 L(옹) 스택

관련 정보