我修改了找到的代码这里它使用 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]
?