关于等宽英文字体出现的单词间距不同而无法实现段落两端对齐的问题,有无更好的处理方式?
MWE和效果如下图。
\documentclass{article}
\usepackage{fontspec}
\usepackage{lipsum}
\setmonofont{Consolas}
\begin{document}
\lipsum[1]
{\ttfamily \lipsum[1]}
\end{document}
这个问题其实在 TSE 上已经有了解答了, 相关解答如下:
把上述的思路照搬过来,一个修改后的可以正常对齐的示例为:
\documentclass[english,11pt,oneside,article]{memoir}
\usepackage[english]{babel}
\usepackage{geometry}
\usepackage{lipsum}
\setlength{\emergencystretch}{2em}
\usepackage{letltxmacro}
\LetLtxMacro\origttfamily\ttfamily
\DeclareRobustCommand*{\ttfamily}{%
\origttfamily
\hyphenchar\font=`\-\relax
\fontdimen3\font=.25em\relax
\fontdimen4\font=.167em\relax
\fontdimen7\font=.167em\relax
}
\makeatletter
\DeclareRobustCommand\vttfamily{%
\not@math@alphabet\vttfamily\relax
\fontfamily{cmvtt}% cmvtt (Computer Modern) or lmvtt (Latin Modern)
\selectfont
}
\DeclareTextFontCommand{\textvtt}{\vttfamily}
\makeatother
\geometry{left=20mm,right=20mm, top=20mm, bottom=50mm}
\OnehalfSpacing
\leftskip3em\rightskip2em
\begin{document}
\lipsum[1]
{\ttfamily \lipsum[1]}
\end{document}
编译结果如下: