如何处理等宽字体段落排版可能出现的问题?

发布于 2024-07-21 19:44:38

关于等宽英文字体出现的单词间距不同而无法实现段落两端对齐的问题,有无更好的处理方式?

是否等宽字体不应该用于整个段落的排版,而只用于代码块?

或者说可以设置允许单词断行?

MWE和效果如下图。

\documentclass{article}
\usepackage{fontspec}
\usepackage{lipsum}
\setmonofont{Consolas}
\begin{document}
\lipsum[1]

{\ttfamily \lipsum[1]}

\end{document}

image.png

查看更多

关注者
0
被浏览
521
Eureka
Eureka 2024-08-16
这家伙很懒,什么也没写!

这个问题其实在 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}

编译结果如下:
image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览