使用 XeTeX 时,我注意到文档中的第一行发生了偏移,\usepackage{indentfirst}
这是我不希望发生的。在 LaTeX 中一切正常。示例:
XeTeX:
\documentclass[a4paper,oneside,14pt]{book}
\usepackage{xltxtra}
\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage{extsizes}
\usepackage{indentfirst}
\usepackage{fancyhdr}
\pagestyle{plain}
\linespread{1.5}
\setdefaultlanguage{ukrainian}
\setmainfont{Times New Roman}
乳胶:
\documentclass[a4paper,oneside,14pt]{book}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[ukrainian]{babel}
\usepackage{extsizes}
\usepackage{indentfirst}
\usepackage{fancyhdr}
\pagestyle{plain}
\linespread{1.5}
问题是如何修复此缩进?我应该使用一些手动缩进来代替吗indentfirst
?那会不会变成“轮子”?
答案1
这不是缩进问题:您应该Overfull \hbox
在排版过程中收到一条消息,您可以通过启用选项draft
来测试它\documentclass
,这将在超出的行旁边弹出一个黑色斑点。
在这种情况下,重写通常是最简单的补救措施。更改分页参数也会有所帮助。无论如何,只有当文档处于“几乎最终”形式时才应解决此类问题。
顺便说一下,Polyglossia 对乌克兰语的设置是
\PolyglossiaSetup{ukrainian}{
script=Cyrillic,
scripttag=cyrl,
langtag=UKR,
hyphennames={ukrainian},
hyphenmins={2,2},
frenchspacing=true,
fontsetup=true
}
不包括indentfirst
。除了加载indentfirst
包,您还可以说
\setmainlanguage{ukrainian}
\PolyglossiaSetup{ukrainian}{indentfirst=true}
这不会改变其他语言的设置。本地更改还是全局更改(使用包)取决于许多因素,因此请自行选择。
请注意 是\setdefaultlanguage
的弃用名称\setmainlanguage
。
一个提示
一个有趣的方法是将\emergencystretch
本地设置为段落(不在列表环境中,因为列表环境中事情不能按预期进行),以便 TeX 有更多的机会纠正错误的断点,你可以说
Text of a paragraph that doesn't set well
and here's where it ends.{\emergencystretch=1.5em\par}
Here starts the following paragraph.
答案2
我认为 Werner 的想法是正确的。我用其他字体测试了相同的文本并获得了正确的缩进。
更改后geometry
我得到了正确的结果,但我认为我的解决方案不是那么优雅,但它有效(使用 Times New Roman 和西里尔文本)。