optfile.cfl 重叠字母失败

optfile.cfl 重叠字母失败

我修改了找到的代码这里它使用 rlap 来写两个 lettrines,一个在另一个上面。我想要使用的字体恰好允许三种颜色,所以我在那里嵌套了另一种。它不需要补充 lettrine.cfg 文件就可以工作。如果文件本身不引用 optfile.cfl 文件,它可以与这样的文件一起使用。但是,如果 lettrine.cfg 指向 optfile.cfl,它会失败并显示“缺少 \endcsname 插入”。我如何让它在最后一个实例中工作?

这是一个带有标准字体的丑陋的说明性 MWE。

%\RequirePackage{filecontents}% uncomment to reproduce error - cfr
\begin{filecontents}{lettrine.cfg}
\setcounter{DefaultLines}{4}
\setlength{\DefaultFindent}{-0.1ex}
\setlength{\DefaultNindent}{0ex}
\renewcommand*{\DefaultLhang}{0.06}
\LettrineRealHeighttrue
\renewcommand{\DefaultOptionsFile}{optfile.cfl}
\endinput
\end{filecontents}

\begin{filecontents}{optfile.cfl}
\LettrineOptionsFor{X}{findent=6ex}
\LettrineOptionsFor{Y}{findent=5ex}
\endinput
\end{filecontents}

\documentclass{article}
\usepackage{lettrine}
\usepackage{xcolor}
\usepackage{lipsum}

\definecolor{Steel}{HTML}{66676A}
\definecolor{Mgold}{HTML}{D4AF37}
\definecolor{Offblack}{HTML}{1E1E1E}

\newcommand{\LettrineBackColor}{Mgold}
\newcommand{\LettrineDecoColor}{Steel}
\newcommand{\LettrineLetterColor}{Offblack}

\newcommand{\layerlettrine}[3][]{%
\lettrine[#1]{%
\rlap{\rlap{\color{\LettrineDecoColor} #2}%
     {\color{\LettrineBackColor} \em{#2}}}%
     {\color{\LettrineLetterColor}\lowercase{#2}}}{#3}%
}

\begin{document}

\lettrine{X}{omot} \lipsum[1]

\layerlettrine{Y}{olanda} \lipsum[2]

\end{document}

失败于:

("C:\Program Files\MiKTeX 2.9\tex\latex\lipsum\lipsum.sty")
No file mwe_lettrine.aux.
(optfile.cfl) (optfile.cfl)
! Missing \endcsname inserted.
<to be read again> 
                   \hbox 
l.25 \layerlettrine{Y}{olanda}
                               \lipsum[2]
? 

相关内容