修改等宽字体文本的连字行为

修改等宽字体文本的连字行为

我使用等宽字体,费了一番功夫才将它连字符化。但是连字符行为相当奇怪,文档的右侧也很难看。

右边

有没有办法强制它总是连字符(即使有很多-s)以便右侧对齐?简单地更改\hyphenpenalty为 0 似乎没用。或者有其他方法可以让右侧看起来更好?

下面是 MWE。

\documentclass{article}

\usepackage[margin=1in,showframe]{geometry}

\usepackage[T1]{fontenc}
\usepackage{courierten}
\renewcommand{\familydefault}{\ttdefault}
\frenchspacing

\usepackage{silence}%
\WarningsOff[hyphenat]
\WarningFilter{latexfont}{Some font}%
\WarningFilter{latexfont}{Font shape}%
\usepackage[htt]{hyphenat}

\AtBeginDocument{%
  \sloppy%
  \hbadness=10000%
  \hyphenpenalty=0% This seems to be useless
}

\usepackage{microtype}
\usepackage{blindtext}

\begin{document}
\blindtext[10]
\end{document}

答案1

使用\spaceskip,它将覆盖字体定义的单词间间距,这在等宽字体中没有灵活性。

\documentclass{article}

\usepackage[margin=1in,showframe]{geometry}

\usepackage[T1]{fontenc}
\usepackage{courierten}
\renewcommand{\familydefault}{\ttdefault}
\frenchspacing
\setlength{\spaceskip}{0.3em plus 0.3em minus 0.1em}
%\setlength{\xspaceskip}{1em plus 0.5em} % not used because of \frenchspacing

\usepackage{silence}%
\WarningsOff[hyphenat]
\WarningFilter{latexfont}{Some font}%
\WarningFilter{latexfont}{Font shape}%
\usepackage[htt]{hyphenat}

\AtBeginDocument{%
  %\sloppy         % why?
  %\hbadness=10000 % <- this is useless
  \hyphenpenalty=0 % <- this is not
}

\usepackage{microtype}
\usepackage{blindtext}

\begin{document}
\blindtext[10]
\end{document}

在此处输入图片描述

设置\hbadness为 10000 没有什么重要意义。相反,设置\hyphenpenalty为 0 允许使用更多连字符。请注意,尾随空格常量之后需要。

该图像显示了 所做的突出microtype

如果没有设置,\hyphenpenalty也没有突出,我得到

在此处输入图片描述

也许,应该稍微修改一下字体的凸出设置。

这是第一行的图片(带有突起)

在此处输入图片描述

相当长的一段文字。

相关内容