更新(2015 年 10 月 6 日)

更新(2015 年 10 月 6 日)

如果字体系列没有粗体字体,那么我认为改用小型大写字母是合理的。但是当我重新定义\bfseries为时\scshape,这些小型大写字母中没有字距。我该如何设置?

\documentclass{article}
\usepackage[tracking = true, letterspace = 250]{microtype}
\usepackage{imfellEnglish}
    \DeclareMicrotypeSet*[tracking]{imfellenglishsc}{font = */IMFELLEnglishSC-TLF/*/*/*}
    \renewcommand*{\bfseries}{\scshape}
\begin{document}
\section{The first section}
\textsc{Abcde}
\end{document}

在此处输入图片描述

答案1

imfellEnglish软件包犯了一个根本性的错误:为了使用一组不同的小型大写字体,它将字体系列重新定义\scshape为更改字体系列的命令;而应该在文件级别解决该问题.fd

\documentclass{article}
\usepackage[tracking = true, letterspace = 250]{microtype}
\usepackage{letltxmacro}

% save the meaning of \scshape
\LetLtxMacro{\latexscshape}{\scshape}

\usepackage{imfellEnglish}

% provide good form of the family declaration
\makeatletter
\expandafter\ifx\csname IMFELLEnglish@scale\endcsname\relax
    \let\IMFELLEnglish@@scale\@empty
\else
    \edef\IMFELLEnglish@@scale{s*[\csname IMFELLEnglish@scale\endcsname]}%
\fi
\makeatother

\DeclareFontFamily{OT1}{IMFELLEnglish-TLF}{}

\DeclareFontShape{OT1}{IMFELLEnglish-TLF}{m}{n}{
      <-> \IMFELLEnglish@@scale IM_FELL_English_Roman-tlf-ot1
}{}

\DeclareFontShape{OT1}{IMFELLEnglish-TLF}{m}{it}{
      <-> \IMFELLEnglish@@scale IM_FELL_English_Italic-tlf-ot1
}{}

\DeclareFontShape{OT1}{IMFELLEnglish-TLF}{m}{sl}{
      <-> ssub * IMFELLEnglish-TLF/m/it
}{}

\DeclareFontShape{OT1}{IMFELLEnglish-TLF}{m}{sc}{
      <-> \IMFELLEnglish@@scale IM_FELL_English_SC-tlf-ot1
}{}

% restore the meaning of \scshape
\LetLtxMacro{\scshape}{\latexscshape}

% microtype settings
\DeclareMicrotypeSet*[tracking]{imfellenglishsc}{
  family = IMFELLEnglish-TLF,
  shape = sc,
}

% no bold face
\renewcommand{\bfseries}{\scshape}

\begin{document}

{\Large\scshape Hello world!}

\textsc{Hello world!}

\section{The first section fi ff}

Is this tracked as well? fi ff

\end{document}

在此处输入图片描述

更新(2015 年 10 月 6 日)

该包imfellEnglish已更新,现在代码更简单

\documentclass{article}
\usepackage[tracking = true, letterspace = 250]{microtype}
\usepackage{imfellEnglish}

\DeclareMicrotypeSet*[tracking]{imfellenglishsc}{
  family = IMFELLEnglish-TLF,
  shape = sc,
}

\renewcommand{\bfseries}{\scshape}

\begin{document}

{\Large\scshape Hello world!}

\textsc{Hello world!}

\section{The first section fi ff}

Is this tracked as well? fi ff

\end{document}

将返回与上面相同的输出。

答案2

随着新的修复IM Fell English(看egreg 的回答),则不再需要使用\DeclareMicrotypeSet,并且会自动将跟踪应用于\scshape

\documentclass{article}
\usepackage[tracking = true, letterspace = 250]{microtype}
\usepackage{imfellEnglish}
    \renewcommand*{\bfseries}{\scshape}
\begin{document}
\section{The first section}
\textsc{A ff fi} A ff fi
\end{document}

在此处输入图片描述

相关内容