5

I want to change \footnotesize such that all footnotes are sized in \scriptsize. I could do this with

\renewcommand{\footnotesize}{\scriptsize}

But I also want to use \footnotesize in its original meaning for all captions (and other parts) of my document. At the moment I am using

\usepackage[font=footnotesize,labelfont=bf]{caption}

For example, is there a way to copy the command, e.g. in \captionsize and then change the original command without changing the copy? This should still scale if I would change my document from 11pt to 12pt or else.

And no,

\newcommand{\captionsize}{\footnotesize}
\renewcommand{\footnotesize}{\scriptsize}

does not work.

2
  • Maybe \let\svfootnote\footnote \renewcommand\footnote[1]{\svfootnote{\scriptsize#1}}. Of course, that removes the use of the optional argument. For that, maybe \renewcommand\footnote[2][\thefootnote]{\stepcounter{footnote}\svfootnote[#1]{\scriptsize#2}} Nov 16 '16 at 19:42
  • 1
    Related: tex.stackexchange.com/questions/46197/…. The final part of jon's answer there, redefining \@footnotetext, provides a fix for your problem, where his \normalsize should be set, in your case, to \scriptsize. Nov 16 '16 at 19:51
4

I think it is ok to make caption titles and text in figures and tables smaller, the command is called \small. Footnotes are set in \footnotesize, as the name already tells. \scriptsize is much too small, it is the size intended for sub- and superscripts. If nobody should be able to read footnotes, then it is much easier and safer to remove the footnotes.

Nevertheless, the size commands can be redefined. A little smaller than the original versions might be a still acceptable compromise.

Size \small for captions can be set by package caption:

\usepackage[font=small]{caption}

The size commands are usually defined in size10.clo, size11.clo, size12.clo that are loaded by the standard classes for the document size option (10pt, 11pt, 12pt, default: 10pt).

Example for size10.clo. It defines the smaller font sizes:

\newcommand\small{%
   \@setfontsize\small\@ixpt{11}%
   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus2\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\newcommand\footnotesize{%
   \@setfontsize\footnotesize\@viiipt{9.5}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}

A redefinition can repeat the definitions with \renewcommand instead of \newcommand. Instead of cryptic macros (\@vipt), normal size specifications can be given (6pt).

\makeatletter
\renewcommand\small{%
   \@setfontsize\small{8.5}{10.5}%
   \setlength{\abovedisplayskip}{8.5pt plus 3pt minus 4pt}%
   \setlength{\abovedisplayshortskip}{0pt plus 2pt}%
   \setlength{\belowdisplayshortskip}{4pt plus 2pt minus 2pt}%
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \setlength{\belowdisplayskip}{\abovedisplayskip}%
}
\renewcommand\footnotesize{%
   \@setfontsize\footnotesize{7.5}{9}%
   \setlength{\abovedisplayskip}{6pt plus 2pt minus 4pt}%
   \setlength{\abovedisplayshortskip}{0pt plus 1pt}%
   \setlength{\belowdisplayshortskip}{3pt plus 1pt minus 2pt}%
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \setlength}{belowdisplayskip}{\abovedisplayskip}%
}
\renewcommand\scriptsize{\@setfontsize\scriptsize{6.5}{7.5}}%
\renewcommand\tiny{\@setfontsize\tiny{5}{6}}
\makeatother

The example has decreased the font sizes and baseline skips for \small, \footnotesize, and \scriptsize in \@setfontsize by one half point each.

2

Depending on your document class, the patch might need a change.

\documentclass{article}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\@footnotetext}{\footnotesize}{\scriptsize}{}{}
\makeatother

\setlength{\textheight}{3cm} % just to keep the image small

\begin{document}

Some text with a footnote\footnote{This will be in scriptsize}

{\footnotesize This text is in footnotesize\par}

{\scriptsize This text is in scriptsize for comparison\par}

\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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