![相对于上下文,引文环境中的字体较小](https://linux22.com/image/262324/%E7%9B%B8%E5%AF%B9%E4%BA%8E%E4%B8%8A%E4%B8%8B%E6%96%87%EF%BC%8C%E5%BC%95%E6%96%87%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%AD%97%E4%BD%93%E8%BE%83%E5%B0%8F.png)
我希望quote
-environment 中的所有引号都采用较小的字体。这可以通过etoolbox
-package 和命令:
\AtBeginEnvironment{quote}{\small}
但是,如果我在脚注中使用引文环境,则引文的字体大小将设置为“小”,因此比脚注大小大。在脚注中,我更希望它的大小与脚注文本的大小相同。
是否可以重新定义quote
相对于上下文的环境?
答案1
不管使用的位置如何(正文或脚注),最好坚持使用缩减版的引文。在这方面,你少了两封信和一个包裹:
\documentclass{article}
\usepackage{relsize,etoolbox}% http://ctan.org/pkg/{relsize,etoolbox}
\AtBeginEnvironment{quote}{\smaller}% Step font down one size relative to current font.
\begin{document}
Here is some text.
\begin{quote}
This is a quote.
\end{quote}
Here is some more text\footnote{Some text.
\begin{quote}
This is a quote in a footnote.
\end{quote}
Some more text.}
\end{document}
relsize
用于\smaller
将字体从当前字体大小减小一个大小。对于任意大小的可缩放字体,还包括lmodern
。
另外,也可以对 进行条件缩放quote
。以下假设您使用默认文档类(如article
、book
或report
)或不改变脚注打印机制的文档类\@makefntext
:
\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\newif\if@in@footnote@
\renewcommand\@makefntext[1]{%
\parindent 1em%
\noindent\@in@footnote@true
\hb@[email protected]{\hss\@makefnmark}#1}
\AtBeginEnvironment{quote}{\if@in@footnote@\else\small\fi}
\makeatother
\begin{document}
Here is some text.
\begin{quote}
This is a quote.
\end{quote}
Here is some more text\footnote{Some text.
\begin{quote}
This is a quote in a footnote.
\end{quote}
Some more text.}
\end{document}
\if@in@footnote@
在创建脚注时,将其设置为 true,并在环境内部拾取quote
。如果为 true,则不会发生字体变化,否则使用\small
。
在下面KOMA 脚本课程,你可以使用
\makeatletter
\newif\if@in@footnote@
\renewcommand{\@footnotetext}[1]{%
\scr@saved@footnotetext{\@in@footnote@true #1}%
\csname FN@mf@prepare\endcsname
}
\AtBeginEnvironment{quote}{\if@in@footnote@\else\small\fi}
\makeatother