可以使用宏更改(丑陋的)MinionPro 撇号字距调整值吗?

可以使用宏更改(丑陋的)MinionPro 撇号字距调整值吗?

如果我们比较这三行文本

Linné's naming scheme.

{Linné'}s naming scheme.

{{Linné}'}s naming scheme.

在 MinionPro 中排版,然后查看最终的 pdf

在此处输入图片描述

我们注意到只有最后一行导致了勉强可以接受的结果。原因是:MinionPro 有错误的撇号字距调整设置。(事实上,这些设置非常糟糕,以至于带有许多撇号的语言,例如法语,根本无法使用标准 MinionPro 包进行排版。)

最好的解决方案是改进 MinionPro。但不幸的是,这个软件包没有得到维护。地下存在一个支持撇号的 MinionPro 版本,但它是一种 hack。

有没有办法调整撇号的字距在乳胶宏中(我使用 dvi-ps-pdf 路线,带有 MinionPro 和 microtype、pdflatex 和 texlive 2014;字体是 .pfb,因此不是 opentype,而是 postscript。)

我尝试了建议

\SetExtraKerning
  [ unit     = space   ]
  { encoding = {OT1,T1,LY1} }
  {
    '  = {3000, }
  }

但没有成功。

PS 一个最小的例子是这样的:

\documentclass{book} 

\usepackage[OT1,T1]{fontenc}
\usepackage[utf8]{inputenc}      
\usepackage{MinionPro}      
\usepackage[british]{babel}
\usepackage{microtype} 

\begin{document}

Linné's naming scheme.

{Linné'}s naming scheme.

{{Linné}'}s naming scheme.

\end{document}

PPS MinionPro 中的字形“(双引号)的字距调整存在一个相关但较小的问题。

答案1

解决方案是使用MinionPro选项加载loosequotes

\usepackage[loosequotes]{MinionPro}

梅威瑟:

\documentclass{book}

\usepackage[OT1,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[loosequotes]{MinionPro}
\usepackage[british]{babel}
\usepackage{microtype}

\begin{document}

Linné's naming scheme.

{Linné'}s naming scheme.

{{Linné}'}s naming scheme.

\end{document} 

在此处输入图片描述

来自MinionPro手册:

loosequotes

MinionPro 的引号设置得相当紧。这会导致撇号loosequotes的间距不理想。此选项会稍微增加引号的侧边距。此选项需要 pdfTEX 1.40 和 microtype 2.0。请注意,此选项会阻止对包含撇号的单词进行连字。此类单词需要显式连字命令\-

如果要使用该\SetExtraKerning功能,您必须加载microtype该选项kerning=true

\usepackage[kerning=true]{microtype}

梅威瑟:

\documentclass{book}

\usepackage[OT1,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{MinionPro}
\usepackage[british]{babel}
\usepackage[kerning=true]{microtype}

\SetExtraKerning
  [ unit     = space   ]
  { encoding = {OT1,T1,LY1} }
  {
    '  = {3000, }
  }

\begin{document}

Linné's naming scheme.

{Linné'}s naming scheme.

{{Linné}'}s naming scheme.

\end{document}

在此处输入图片描述

为了完整性,如果要更改该字符前后的间距,请使用类似

\SetExtraKerning
  [ unit     = space   ]
  { encoding = {OT1,T1,LY1} }
  {
    '  = {500, 400}
  }

其中500表示间距400间距字符(以 的千分之一为单位1em)。

相关内容