相对于上下文,引文环境中的字体较小

相对于上下文,引文环境中的字体较小

我希望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。以下假设您使用默认文档类(如articlebookreport)或不改变脚注打印机制的文档类\@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

相关内容