
Я хочу изменить \footnotesize
так, чтобы все сноски были размером \scriptsize
. Я мог бы сделать это с помощью
\renewcommand{\footnotesize}{\scriptsize}
Но я также хочу использовать его \footnotesize
в его первоначальном значении для всех подписей (и других частей) моего документа. В данный момент я использую
\usepackage[font=footnotesize,labelfont=bf]{caption}
Например, есть ли способ скопировать команду, например, в \captionsize
и затем изменить исходную команду, не изменяя копию? Это должно все равно масштабироваться, если я изменю свой документ с 11pt на 12pt или что-то еще.
И нет,
\newcommand{\captionsize}{\footnotesize}
\renewcommand{\footnotesize}{\scriptsize}
не работает.
решение1
Я думаю, что можно уменьшить заголовки и текст в рисунках и таблицах, команда называется \small
. Сноски устанавливаются в \footnotesize
, как уже следует из названия. \scriptsize
слишком мал, это размер, предназначенный для нижних и верхних индексов. Если никто не должен читать сноски, то гораздо проще и безопаснее удалить сноски.
Тем не менее, команды размера можно переопределить. Немного меньшие, чем исходные версии, могут быть приемлемым компромиссом.
Размер \small
подписей можно задать с помощью пакета caption
:
\usepackage[font=small]{caption}
Команды размера обычно определяются в size10.clo
, size11.clo
, size12.clo
которые загружаются стандартными классами для параметра размера документа ( 10pt
, 11pt
, 12pt
, default: 10pt
).
Пример для size10.clo
. Он определяет меньшие размеры шрифта:
\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}
Переопределение может повторять определения с \renewcommand
вместо \newcommand
. Вместо криптических макросов ( \@vipt
) могут быть заданы обычные спецификации размера ( 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
В примере уменьшены размеры шрифта и пропуски базовой линии для \small
, \footnotesize
и \scriptsize
на \@setfontsize
полпункта каждый.
решение2
В зависимости от класса вашего документа может потребоваться изменение патча.
\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}