有一个问题目前对我来说似乎无法解决。我正在排版一本俄语书,我注意到,在某些情况下,会出现一个溢出的框,无法通过手动\hyphenation
或\linebreak
甚至 来解决\emergencystretch
,因为这是破折号造成的。根据排版规则,如果行即将在此点断开,则破折号必须留在行尾,这就是为什么不能考虑将其移动到下一行的开头的原因。
我尝试应用microtype
,但似乎无法压缩破折号(仅当它位于行末且导致过满时)。或者老实说,根本无法压缩它。如果我重新定义破折号符号的宽度,书中的其他位置也会出现同样的问题。
改变文本主体的宽度也没有带来预期的效果,因为出现了与上述相同的情况。
以下是 MWE:
\documentclass[fontsize=11pt,russian,open=any]{scrbook}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{fancyhdr}
\usepackage[paperwidth=14.2cm, paperheight=20.4cm, top=1cm, bottom=1.3cm, twoside, inner=1.0cm, outer=1.2cm, bindingoffset=0.5cm, footskip=0.65cm, headsep=0cm, headheight=0cm, voffset=0pt, hoffset=0pt]{geometry}
\usepackage[kerning=true, tracking=true, spacing=true, selected=true, babel=true, stretch=10, shrink=10]{microtype}
\deffootnote[1.5em]{0.5em}{0em}{
\textsuperscript{\thefootnotemark}}
\setlength{\parindent}{1.25em}
\setlength{\emergencystretch}{1pt}
\frenchspacing
\righthyphenmin=2
\renewcommand{\baselinestretch}{0.9}
\clubpenalty=10000
\widowpenalty=10000
\flushbottom
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EC,OC]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\begin{document}
Когда его вопль, отражаясь испуганной белкой от пустых котлов и голых стен, замер, завязнув в тягучей темноте, снова воцарилась тишина, нарушить которую было не в силах даже потрескивание дров в одиноком камине. Конечно, надо было бы пойти бросить в него ещё несколько поленьев, но за это время эти подонки смогут улизнуть или спрятаться получше!..
--- Да. Его так зовут. Забавно, правда? Царство Костей. Костей~--- правитель Царства Костей.
Агафон насупился, поколебался несколько секунд между <<Именно секрет>> и <<А тебе зачем?>>, но вздохнул подавленно, махнул рукой и признался.
--- В Царство Костей,~--- с надеждой вскинул на него глаза Иван~--- уж не вспомнит ли дед ещё что-нибудь полезное?
--- Ну хорошо. А как насчёт неразговаривания с набитым ртом?~--- не сдавался Костей.
\end{document}
哦,我正在使用 TeXstudio 2.5.2。
如果你仔细观察截图,你会发现有时甚至连连字符符号也会突出到边距中,这也会导致水平盒子过满:
我想知道如何处理这些溢出的框。有没有办法根据符号在文本中的位置来缩小它们的大小,或者类似的东西?
答案1
您可以使破折号前后的空格比普通的字空格具有更大的灵活性。此处的设置只留下一个溢出的框,这不是由破折号引起的,而是因为 TeX 找不到合适的换行位置,我添加了一个来添加\-
额外的连字符选项,但这可能不是合适的位置,因为不幸的是我无法读取脚本。无论如何,它与周围的间距无关---
\documentclass[fontsize=11pt,russian,open=any]{scrbook}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{fancyhdr}
\usepackage[paperwidth=14.2cm, paperheight=20.4cm, top=1cm, bottom=1.3cm, twoside, inner=1.0cm, outer=1.2cm, bindingoffset=0.5cm, footskip=0.65cm, headsep=0cm, headheight=0cm, voffset=0pt, hoffset=0pt]{geometry}
\usepackage[kerning=true, tracking=true, spacing=true, selected=true, babel=true, stretch=10, shrink=10]{microtype}
\deffootnote[1.5em]{0.5em}{0em}{
\textsuperscript{\thefootnotemark}}
\setlength{\parindent}{1.25em}
\setlength{\emergencystretch}{1pt}
\frenchspacing
\righthyphenmin=2
\renewcommand{\baselinestretch}{0.9}
\clubpenalty=10000
\widowpenalty=10000
\flushbottom
\def\mydash{\ifhmode\nobreak\hspace{.33em plus .1em minus .25em}\fi---\hspace{ .33em plus .1em minus .25em}}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EC,OC]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\begin{document}
Когда его вопль, отражаясь испуганной белкой от пустых котлов и голых стен, замер, завязнув в тягучей темноте, снова воцарилась тишина, нарушить которую было не в силах даже потрескивание дров в одиноком камине. Конечно, надо было бы пойти бросить в него ещё несколько поленьев, но за это время эти подонки смогут улизнуть или спрятаться получше!..
\mydash Да. Его так зовут. Забавно, правда? Царство Костей. Костей\mydash правитель Царства Костей.
Агафон насупился, поколебался несколько секунд между <<Име\-нно секрет>> и <<А тебе зачем?>>, но вздохнул подавленно, махнул рукой и признался.
\mydash В Царство Костей,\mydash с надеждой вскинул на него глаза Иван\mydash уж не вспомнит ли дед ещё что-нибудь полезное?
\mydash Ну хорошо. А как насчёт неразговаривания с набитым ртом?\mydash не сдавался Костей.
\end{document}