以下代码模仿了 Steven B. Segletes 对在自制的 Lettrine 中向图像添加字母:
\documentclass[12pt]{book}
\usepackage{yfonts,xcolor,scalerel,stackengine,lettrine}
\definecolor{Blood}{RGB}{142,0,28}
\definecolor{Gold}{RGB}{255,179,0}
\setlength{\textwidth}{5.5in}
\fboxsep=1pt
\newcommand\mylettrine[2][2.75ex]{\scaleto{\colorbox{Blood}{%
\initfamily\textcolor{Gold}{\abovebaseline[0pt]{#2}}}}{#1}\,}
\usepackage[sfdefault]{cabin}
\begin{document}
\thispagestyle{empty}
\LARGE
\lettrine[lines=3,loversize=0.25,nindent=0.4em,findent=-0.6em]{\mylettrine{N}}{on} semper erat aestas.\\[30pt]
\lettrine[lines=3,loversize=0.25,nindent=0.4em,findent=-0.6em]{\mylettrine{W}}{}\\[30pt]
\lettrine[lines=3,loversize=0.25,nindent=0.4em,findent=-0.6em]{\mylettrine{R}}{}
\end{document}
产生输出
正如您所见,字母并非都是统一的尺寸 - 而且stackengine
似乎可以很好地适应各种字母尺寸;然而,需要进行一些“调整”,因为initfamily
我试图添加背景颜色的字母还包含超出给定字母的装饰性花饰,因此,在彩色框的外面我试图“堆叠”字母。
我尝试过用\fboxsep
各种方法调整命令,但似乎让情况变得更糟了。
问题:有没有办法?如果有,我该如何统一调整彩色背景,以便所有这些initfamily
装饰性字母都能合理地显示在彩色背景的中央,并且所有跳跃的花饰都能很好地包含在方形彩色框内?
谢谢。
答案1
您可以定义一个框命令,该命令对每个字母使用定义的填充。
我只是凭眼睛看的。
\documentclass[12pt]{book}
\usepackage{yfonts,color,lettrine}
\definecolor{Blood}{RGB}{142,0,28}
\definecolor{Gold}{RGB}{255,179,0}
\setlength{\textwidth}{3in}
\begin{document}
\newcommand\qqq[1]{{%
\setlength\fboxsep{0pt}%
\colorbox{Blood}{%
\sbox0{\color{Gold}\initfamily#1}%
\ifcsname Left #1\endcsname\kern\csname Left #1\endcsname\fi
\ifcsname Top #1\endcsname\ht0=\dimexpr\ht0+\csname Top #1\endcsname\relax\fi
\ifcsname Bottom #1\endcsname\dp0=\dimexpr\dp0+\csname Bottom #1\endcsname\relax\fi
\box0 %
\ifcsname Right #1\endcsname\kern\csname Right #1\endcsname\fi
}}}
\expandafter\def\csname Left A\endcsname{1pt}
\expandafter\def\csname Left B\endcsname{3pt}
\expandafter\def\csname Left D\endcsname{.5pt}
\expandafter\def\csname Left E\endcsname{.1pt}
\expandafter\def\csname Left I\endcsname{2pt}
\expandafter\def\csname Left J\endcsname{2pt}
\expandafter\def\csname Left M\endcsname{3pt}
\expandafter\def\csname Left N\endcsname{2pt}
\expandafter\def\csname Left O\endcsname{2pt}
\expandafter\def\csname Left P\endcsname{.5pt}
\expandafter\def\csname Left Q\endcsname{2pt}
\expandafter\def\csname Left Y\endcsname{1pt}
\expandafter\def\csname Right C\endcsname{.5pt}
\expandafter\def\csname Right G\endcsname{.5pt}
\expandafter\def\csname Right H\endcsname{.1pt}
\expandafter\def\csname Right L\endcsname{.1pt}
\expandafter\def\csname Right P\endcsname{2pt}
\expandafter\def\csname Top A\endcsname{.5pt}
\expandafter\def\csname Top B\endcsname{3pt}
\expandafter\def\csname Top C\endcsname{3pt}
\expandafter\def\csname Top D\endcsname{2pt}
\expandafter\def\csname Top E\endcsname{1pt}
\expandafter\def\csname Top F\endcsname{3.5pt}
\expandafter\def\csname Top G\endcsname{3.5pt}
\expandafter\def\csname Top H\endcsname{3pt}
\expandafter\def\csname Top I\endcsname{2pt}
\expandafter\def\csname Top J\endcsname{2pt}
\expandafter\def\csname Top K\endcsname{3pt}
\expandafter\def\csname Top L\endcsname{1pt}
\expandafter\def\csname Top M\endcsname{1pt}
\expandafter\def\csname Top N\endcsname{2pt}
\expandafter\def\csname Top O\endcsname{2.5pt}
\expandafter\def\csname Top P\endcsname{2.5pt}
\expandafter\def\csname Top Q\endcsname{2pt}
\expandafter\def\csname Top R\endcsname{2.5pt}
\expandafter\def\csname Top S\endcsname{3pt}
\expandafter\def\csname Top T\endcsname{3.5pt}
\expandafter\def\csname Top U\endcsname{2pt}
\expandafter\def\csname Top V\endcsname{2pt}
\expandafter\def\csname Top W\endcsname{2pt}
\expandafter\def\csname Top X\endcsname{3pt}
\expandafter\def\csname Top Y\endcsname{4pt}
\expandafter\def\csname Top Z\endcsname{3pt}
\expandafter\def\csname Bottom A\endcsname{1.5pt}
\expandafter\def\csname Bottom B\endcsname{.1pt}
\expandafter\def\csname Bottom K\endcsname{.1pt}
\expandafter\def\csname Bottom M\endcsname{2pt}
\expandafter\def\csname Bottom N\endcsname{.5pt}
\expandafter\def\csname Bottom O\endcsname{.5pt}
\expandafter\def\csname Bottom P\endcsname{1.5pt}
\expandafter\def\csname Bottom Q\endcsname{.5pt}
\expandafter\def\csname Bottom R\endcsname{1.5pt}
\expandafter\def\csname Bottom U\endcsname{.1pt}
\expandafter\def\csname Bottom X\endcsname{.1pt}
\expandafter\def\csname Bottom Y\endcsname{.1pt}
% just for tests
\def\doqqq#1{#1: \qqq{#1}\par\doqqq}
\long\def\stopqqq#1\doqqq{}
\doqqq ABCDEFGHIJKLMNOPQRSTUVWXYZ\stopqqq
\end{document}