使用 babel+microtype 中的 frenchb 跟踪小写字体

使用 babel+microtype 中的 frenchb 跟踪小写字体

当我加载法语 babel plus 时,我无法启用小型大写字母跟踪(无论字体是否具有小型大写字母)microtype。此问题仅出现在该部分的标题中,并且仅当这些标题包含某些字符!, »和其他字符时才会出现。如果我禁用trackingfrom microtype,一切正常。

LuaTeX error /texmf-dist/tex/generic/babel-french/frenchb.lua:66: attempt to index a nil value. \section{SSS! » !}

以下是手册第 38 页的摘录frenchb,其中说 babel 对小型大写字母进行了调整:

\bsc:由于姓氏应以小写字母书写且不得使用连字符,因此我们提供了一个命令(其名称来自 Boxed Small Caps)来轻松输入姓氏。请注意,此命令已随 frenchb 的第 2 版而改变:使用 \kern0pt 代替 \hbox,因为 \hbox 会破坏 microtype 的字体扩展;作为(积极的?)副作用,现在可以在显式连字符上用连字符连接组合名称(例如 Dupont-Durand)。用法:Jean~\bsc{Duchemin}。

\DeclareRobustCommand*{\bsc}[1]{\leavevmode\begingroup\kern0pt \scshape #1\endgroup}
\ifLaTeXe\else\let\scshape\relax\fi

当使用而不使用lualatex进行编译时,我没有错误,而当仅存在 时,我也没有错误。microtypebabelbabelmicrotype+babel如果我没有使用以下命令重新定义我的部分,则 **不会出错\scshape**

我需要polyglossia因为我有其他具有特殊字体的语言。我没有错误,当我禁用trackingmicrotype但仍然保持babel+polyglossia+microtype...加上我的定义\section

这是tex文件

\documentclass[oneside,a4paper, 12pt]{article}

\usepackage[frenchb]{babel}%%


\usepackage{fontspec}
\defaultfontfeatures{
Ligatures=TeX,
%Mapping=tex-text,
SmallCapsFeatures={Renderer=Basic}
}
\setmainfont{TeX Gyre Termes}

\usepackage{polyglossia}
\setmainlanguage{french}



\makeatletter
\renewcommand\section{%
\penalty-9999
\@startsection {section}{1}{0em}{0\parskip}{1cm}{%
\centering\rmfamily\bfseries\scshape%
\righthyphenmin=62%
}
}
\makeatother


\usepackage[%
babel=true,
%protrusion=true,
%expansion=true,
%%%%%activate={true,nocompatibility}
%kerning=false,
%spacing=false,
tracking=true,
%factor=1100,
%stretch=40,
%shrink=10
]{microtype}
\SetTracking{encoding={*}, family= *, shape=sc}{33}

\begin{document}

\section{SSS! » !}



\end{document}

相关内容