使用 \usepackage{droid} 时字符不会左对齐(但使用 helvet 时可以)

使用 \usepackage{droid} 时字符不会左对齐(但使用 helvet 时可以)

我观察到

Michael\\
Awa\\
Hans\\
Jürgen\\
Thomas\\
Hans\\
Peter\\

使用时将产生预期的结果

\usepackage{helvet}

然而,

\usepackage{droid}

最左边的字符不是“左对齐”,特别是“J”和“A”比“M”或“H”更靠左。我们可以改进吗?

完整代码如下:

\documentclass[a4paper,13pt]{article}
\usepackage[utf8]{inputenc}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{droid} %!
\usepackage[T1]{fontenc}
\begin{document}
1\\
Michael\\
Awa\\
Hans\\
Jürgen\\
Thomas\\
Hans\\
Peter\\
\end{document}

非常感谢,Stefan

赫尔韦特 机器人

答案1

Helvetica 也存在这个问题,但 Droid 中某些字母的侧边距似乎更宽。您可以查看并比较图片上部的侧边距(上方是 Droid,下方是 Helvetica);左侧的规则旨在说明某些大写字母的对齐方式。请注意,Droid 中的 J 的钩子略微超出了边界框。

无法访问 中的侧边距pdftex;但 XeTeX 中的 OpenType 或 TrueType 字体可以做到这一点。

在此处输入图片描述

使用 Xe(La)TeX 的方法如下:

\documentclass{article}
\usepackage{fontspec}

\setsansfont{Droid Sans}

\newcommand{\noleft}[1]{%
  \leavevmode\begingroup
  \edef\gid{\the\XeTeXcharglyph`#1}%
  \null\kern-\XeTeXglyphbounds 1 \gid
  #1%
  \endgroup
}

\begin{document}

\sffamily

\parbox[t]{1.5cm}{
\noindent\kern-0.1pt \smash{\vrule height 1.5ex depth 10cm width 0.1pt}%
\noleft{M}\\
\noleft{A}\\
\noleft{B}\\
\noleft{C}\\
\noleft{J}\\
\noleft{K}
}
\parbox[t]{1.5cm}{
\noindent\kern-0.1pt \smash{\vrule height 1.5 ex depth 10cm width 0.1pt}%
M\\
A\\
B\\
C\\
J\\
K
}

\end{document}

在此处输入图片描述

相关内容