自定义环境中的 Lettrine

自定义环境中的 Lettrine

我想lettrine在自定义类中使用 -package 来修改某个部分的第一个字母。通常的做法是

\lettrine{T}{est} of my text

对我来说,问题是我不想每次打开环境时都要写这个。因此,我正在寻找一种解决方案,它能产生与上述相同的结果,但写成

\begin{Testenvironment}
    Test of my text
\end{Testenvironment}

这可能吗?如果可以,怎么做?

答案1

也许不是完整的解决方案,但它通过“忽略”环境的强制参数来发挥作用。

由于LaTeX要求强制参数以 分隔{...},因此使用不带 的参数{...}只会抓取第一个标记:

例如

\newcommand{\foo}[1]
\foo This is is a nice text

只会抓取这里的第一个字符,即T并假定这是参数,这正是 OP 想要实现的。

但是,\foo \something不行!

颜色设置等必须按照lettrine手册中所示使用,所以\foo \textcolor{red}{T}在这里也不起作用!

\documentclass{article}

\usepackage{xcolor}
\usepackage{lettrine}

\newenvironment{Testenvironment}[2][]{%
  \lettrine[#1]{#2}{}%
}{}

\usepackage{blindtext}

\begin{document}

\begin{Testenvironment}
  Test of my text which is not very long at the moment but it seems to work at least for easy texts. 
\end{Testenvironment}

\begin{Testenvironment}[findent=10pt]
  {\textcolor{red}{T}}his another example
\end{Testenvironment}


\end{document}

在此处输入图片描述

相关内容