XeLatex 및 polyglossia의 잘못된 간격
Xelatex와 fontspec
렌더링 용 패키지를 사용하는 다국어 Latex 문서가 있습니다. 내 렌더링 된 문서는 특히 영어에서 만족스럽지 못한 간격을 보여줍니다. 종종 어떤 종류의 구두점 뒤의 공백이 너무 넓습니다. 전에이 문제가 발생하지 않았기 때문에 화가 나거나 일부 패키지 업데이트로 인해 변경된 사항이 있는지 스스로에게 묻습니다. 예는 다음과 같습니다.

하이픈 연결이 일어나지 않는다는 사실이 눈에 띕니다. 그러나 이것은 문서의 뒷부분에 하이픈 연결의 경우가 있지만 많지는 않기 때문에 우연 일 수 있습니다. 독일어로 된 결과가 더 좋습니다. 아무도 여기에서 나를 도울 수 있습니까?
다음은 코드 예입니다.
\documentclass[a4paper,10pt,twoside]{memoir}
\usepackage{polyglossia}
\usepackage{xltxtra}
\usepackage{fontspec}
\setmainlanguage[spelling=old,babelshorthands=true,script=latin]{german}
\setotherlanguage[variant=polytonic]{greek}{}
\setotherlanguages{english, french, italian, spanish, latin, portuguese}
\usepackage{blindtext}
\begin{document}
\blinddocument
\begin{english}
\blinddocument
\end{english}
\end{document}
답변
로 데이비드 칼라일은 코멘트에 말한다, 이것은 예상되는 동작은 다음과 같습니다 기본 텍 잎으로 단어 사이보다는 문장의 마침표 후 약간 더 큰 공간. 이 동작은 TeX 명령으로 알려져 \nonfrenchspacing
있습니다.
이것은 영어 타이포그래피에서 흔하거나 (적어도 완전히 드문 것은 아니지만) (마침표 등을 통해 더 큰 공간을 남겨 두는 것이 좋은 아이디어인지에 대한 논쟁이 있지만) 일반적으로 다른 경우에는 수행되지 않습니다. 언어. 이러한 상황을 위해 TeX에는 \frenchspacing
구두점 뒤의 공백이 단어 간 공백과 동일하게되는 명령 이 있습니다.
따라서이 \frenchspacing
행동을 본다면 이에 대응하라고 말할 것입니다.
현지화 패키지가 babel
및 polyglossia
관련되어 있을 때 해당 패키지는 국가 규칙에 따라 언어가 전환되면 \frenchspacing
/ \nonfrenchspacing
상태를 변경할 수 있습니다 .
의 최신 버전을 polyglossia
사용 하면 항상 완전히 비활성화 \nonfrenchspacing
하고 강제 하는 방법이 있습니다. 항상 실행 \frenchspacing
하도록 설정된 내부 매크로 \polyglossia@lang@frenchspacing:n
를 재정의하면 됩니다.\(non)frenchspacing
\frenchspacing
\documentclass[a4paper,10pt,twoside]{memoir}
\usepackage{polyglossia}
\usepackage{fontspec}
\makeatletter
\ExplSyntaxOn
\cs_set_nopar:Nn{\polyglossia@lang@frenchspacing:n}{\frenchspacing}
\ExplSyntaxOff
\makeatother
\setmainlanguage[spelling=old,babelshorthands=true,script=latin]{german}
\setotherlanguage[variant=polytonic]{greek}{}
\setotherlanguages{english, french, italian, spanish, latin, portuguese}
\usepackage{blindtext}
\begin{document}
\blinddocument
\begin{english}
\blinddocument
\end{english}
\end{document}
그러나이 접근 방식에 대한 대안이 있습니다. 예를 들어 폴리 글로시 아 : 어디서나 모든 언어에 대해`\ frenchspacing`을 설정하는 방법은 무엇입니까? .
매우 급진적 인 또 다른 대안 (아마도 물건을 깨뜨릴 가능성이 있음)은
\def\nonfrenchspacing{\frenchspacing}
\AtBeginDocument{\frenchspacing}