![防止跨行连字 + 强制右边距](https://linux22.com/image/316496/%E9%98%B2%E6%AD%A2%E8%B7%A8%E8%A1%8C%E8%BF%9E%E5%AD%97%20%2B%20%E5%BC%BA%E5%88%B6%E5%8F%B3%E8%BE%B9%E8%B7%9D.png)
这是我的第一个问题,所以可能听起来有些杂乱。到目前为止,我已经找到了有关防止跨行连字和设置边距的答案,但我无法将它们整合在一起。
这是我的论文,它有严格的格式要求,而且已经完成了。一位委员会成员告诉我使用自动插入的连字符来阻止单词跨行拆分,但是当我使用命令来阻止它时,单词经常会超出 1 英寸的右边距。我已将文件设置为右边不齐(这也是我的格式所要求的)。我使用了一个模板(指定为文档类),其中的边距和大多数其他格式已经根据我所在大学的要求进行了适当设置。不幸的是,由于我没有创建该文件,所以我不确定还有哪些其他设置已从默认设置更改。在我尝试更改连字符之前,边距看起来很完美。但是当我尝试阻止连字符(技术上可行)时,出现了这个边距问题。该文档很长,逐一查找每个有问题的单词是不可行的。
我相信这是主模板文件中设置边距的行.dtx
,我没有更改它。
\RequirePackage[letterpaper,margin=1in,includehead,nofoot]{geometry}
在我自己的序言中,我使用了许多软件包,包括ragged2e
,并在某些需要的地方包含\raggedright
命令。(我包括了我的完整列表,以防它们之间发生冲突。)我目前正在设置命令,\righthyphenmin
因为=8
这似乎是产生保守连字符的最小数字。
\documentclass[print]{nuthesis}
\usepackage{indentfirst}
\usepackage{titlesec}
\usepackage{lipsum}
\usepackage{url}
\usepackage{ctable}
\usepackage{multirow}
\usepackage[singlelinecheck=off]{caption}
\usepackage{chngcntr}
\usepackage{graphicx}
\usepackage{placeins}
\usepackage{graphicx}
\usepackage{color}
\usepackage{multirow}
\usepackage{caption}
\usepackage{ragged2e}
\graphicspath{{./figuresfolder/}}
\definecolor{gray}{gray}{0.65}
\righthyphenmin=8
模板还包括这些具有以下设置的包,我没有更改它们。
\documentclass{ltxdoc}
\usepackage{url}
\usepackage{booktabs}
\usepackage{fancyvrb}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\newcommand{\pkg}[1]{\textsf{#1}}
\setlength{\parskip}{.5\baselineskip}
\newlength{\codeSkip} \setlength{\codeSkip}{2ex}
我尝试了很多建议的答案,但每个答案都会产生一些问题。我不太确定模板如何与我创建或编辑的文件协同工作,这使我很难成功应用现有的答案。谢谢你的帮助。
答案1
\hyphenpenalty=10000
可以通过设置抑制普通连字符,以及\exhyphenpenalty=10000
禁止在明确的连字符处换行,更直接地抑制连字符。
如果未连字符的单词现在延伸到边缘,则可能需要增加“容忍度”并允许单词之间有更多的延伸;
\tolerance=1000 \emergencystretch=2em
应该会有所帮助。
结果仍然会不太正确,但比乳胶\sloppy
设置的结果要好一些。查看输出后改变这四个参数的值可以提供相当大的灵活性,以实现最佳的令人满意的结果。
在评论中,原始发帖者报告说,这些值是经过实验后选择的,以获得最令人满意的结果:
\hyphenpenalty=1000
\tolerance=500
\emergencystretch=2.5em