Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I want to have all quotes in the quote-environment in a smaller font. This is possible with the etoolbox-package and the command:

\AtBeginEnvironment{quote}{\small}

But if I use a quote-environment in a footnote, the quotation is set to fontsize 'small' and therefore larger than the footnote-size. In the footnote I would like it better to have the same size as the footnote text.

Is it possible to redefine the quote-invironment relative to the context?

share|improve this question

1 Answer 1

up vote 6 down vote accepted

It may be better to stick to a scaled version of the quote, regardless of the location of use (body text or footnote). In that regard, you were two letters and a package too short:

enter image description here

\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 uses \smaller to step the font down one size from the current font size. For scalable fonts at any size, also include lmodern.


Alternatively, conditional scaling is also possible for quote. The following assumes you're using a default document class (like article, book or report) or one that doesn't alter the footnote printing mechanise \@makefntext:

enter image description here

\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\newif\if@in@footnote@
\renewcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent\@in@footnote@true
    \hb@xt@1.8em{\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@ is set to true inside when creating the footnote, which is picked up inside the quote environment. If true, then no font change occurs, otherwise it uses \small.


Under the KOMA-script classes, you could use

\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
share|improve this answer
    
Thanks for the quick answer. I already tried the relsize-package, but for me it gives an even smaller font size. So the other approach is right for me and almost the solution. Unfortunately it clashes with a footnote redefinition. I use the scrreprt-class and the following redefinition:</br>>\deffootnote[2em]{2em}{1em}{\makebox[2em][r]{\bfseries\thefoo‌​tnotemark}\enskip}</br>> \setlength{\footnotesep}{.85\baselineskip}</br>> \renewcommand{\footnoterule}{} Any idea? –  peregrinustyss Feb 2 '13 at 19:27
    
@peregrinustyss: Try the KOMA-script suggestion at the bottom of the post (I just added it). –  Werner Feb 2 '13 at 20:43
    
Thanks a lot, now it works. – BTW, isn't it possible to edit a comment? Because I messed with my previous one and now there are strange characters … –  peregrinustyss Feb 2 '13 at 21:02
    
@peregrinustyss: You have 5 minutes to edit a comment... However, since the problem has been dealt with for KOMA-script, the comment(s) are actually obsolete. So we can delete them... –  Werner Feb 2 '13 at 21:04

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.