Работа в системе LaTeX



         

Сноски - часть 2


\renewcommand{\footnoterule}{}

(уж тут-то места по вертикали мы не займем!). Если вам вдруг понадобится задать совсем иной разделитель между сносками и текстом, можете переопределить команду \footnoterule принципиально по-иному. В этом случае необходимо знать следующее:

  1. команда \footnoterule будет выполняться в те моменты, когда TeX находится в вертикальном режиме;
  2. по окончании работы команды \footnoterule TeX должен снова оказаться в вертикальном режиме;
  3. текст, генерируемый командой \footnoterule, не должен, с точки зрения TeX'а, занимать места по вертикали.

Следующий параметр, от которого зависит оформление сносок, — это параметр со значением длины \footnotesep. Он означает следующее. В начале каждой сноски, для того чтобы линейка, отделяющая сноски от текста, не подходила к тексту слишком близко, вставляется невидимая линейка нулевой ширины наподобие \strut. Так вот, \footnotesep задает высоту этой линейки.

За вид номеров сносок в тексте отвечает команда \@makefnmark. По умолчанию она определена следующим образом:

\newcommand{\@makefnmark}{\hbox{\mathsurround=0pt $^{\@thefnmark}$}}

Здесь на место команды \@thefnmark при выполнении будет подставлен номер сноски (или то, что его заменяет, если мы пользовались командой \footnotemark). Обратите внимание, что номер сноски оформлен как верхний индекс в математической формуле — именно благодаря этому номера сносок печатаются над строкой. По этой же причине внутри группы, являющей собой аргумент команды \hbox, устанавливается в нуль параметр \mathsurround - иначе, если вы установили для него ненулевое значение, номер сноски будет окружен лишними пробелами.

И, наконец, самое главное — команда, генерирующая собственно текст сноски. Она называется \@makefntext. Вот ее стандартное определение, в котором аргумент #1 обозначает текст сноски, а команда \@thefnmark означает то же, что и выше:

\newcommand{\@makefntext}[1]{\parindent=1em\noindent \hbox to 1.8em{\hss\@makefnmark}#1}

При переопределении этой команды следует иметь в виду, что она будет выполняться внутри аргумента команды \parbox с длиной строки, равной ширине колонки текста; в приведенном выше определении применена команда \noindent, чтобы подавить абзацный отступ в первом абзаце сноски, в котором будет печататься ее номер.

Имейте в виду, что поскольку текст сноски, являющийся аргументом команды \@makefntext, может состоять из нескольких абзацев, переопределять эту команду надо с помощью \renewcommand без звездочки.




Содержание  Назад  Вперед