Tex: подробное описание С. М. Львовский


Download 1.51 Mb.
Pdf ko'rish
bet132/143
Sana08.05.2023
Hajmi1.51 Mb.
#1444247
1   ...   128   129   130   131   132   133   134   135   ...   143
Bog'liq
LaTeX-Lvovsky

7.2. Сноски
Стиль оформления сносок зависит от многих вещей. Начнем с пробела между страницей
и сносками. Чтобы его изменить, надо применить команду \setlength с необычным пер

вым аргументом. Вот, например, как выглядит команда, устанавливающая стандартную для
L
A
TEXа величину этого пробела:
\setlength{\skip\footins}{12pt plus 4pt minus 4pt}
То, что пробел сделан растяжимым (см. раздел
VIII.3.3
),
— это понятно, а почему в первом
аргументе целых две команды и что они значат, объяснить в рамках этой книги невозможно.
Так что воспринимайте этот рецепт для установки пробела между текстом и сносками чи

сто догматически (кому не лень, может попытаться узнать всю правду из пятнадцатой главы
книги [
2
]).
Далее, сноски обычно отделяются от текста не только пробелом, но и линейкой. Чтобы за

дать вид этой линейки, отличный от стандартного, либо задать какой-то другой разделитель,
надо переопределить команду \footnoterule, которая в стандарте определена так:
\newcommand{\footnoterule}{\vspace*{-3pt}
\hrule width .4\columnwidth
\vspace*{2.6pt}}
К этому макроопределению необходим комментарий: непонятно, зачем нужны команды \vspace.
Дело в том, что
«текст», генерируемый командой \footnoterule, не должен, с точки зрения
TEXа, занимать места по вертикали (фактически он располагается внутри пробела между
текстом и сносками, о котором шла речь выше). Поэтому мы сначала отступаем на 3 пунк

та вверх, затем печатаем линейку (вспомним, что по умолчанию линейка, генерируемая ко

мандой \hrule, имеет ширину 0,4 пункта), и затем спускаемся на 2,6 пункта вниз. В итоге
получается, что и линейка напечаталась, и места по вертикали мы не занимаем, посколь

ку
−3 + 0,4 + 2,6 = 0. Если Вы хотите изменить ширину или толщину линейки, коман
ду \footnoterule можно переопределить; только не забудьте проследить, чтобы толщина
линейки была скомпенсирована отрицательным \vspace’ом! Можно, собственно говоря,
сделать так, чтобы этой линейки вообще не было, сказав
\renewcommand{\footnoterule}{}
(уж в этом-то случае можно не сомневаться, что места по вертикали мы не займем!). Если
Вам вдруг понадобится задать совсем иной разделитель между сносками и текстом, можете
переопределить команду \footnoterule и принципиально по-иному. В этом случае необхо

димо знать следующее:
• Команда \footnoterule будет вызываться в те моменты, когда TEX находится в верти
кальном режиме.


IX.7. РАЗНОЕ
206
• По окончании работы команды \footnoterule TEX должен снова оказаться в верти
кальном режиме.
• Текст, генерируемый командой \footnoterule, не должен, с точки зрения TEXа, зани
мать места по вертикали.
Следующий параметр, от которого зависит оформление сносок,
— это параметр со зна
чением длины \footnotesep. Он означает следующее. В начале каждой сноски, для того,
чтобы линейка, отделяющая сноски от текста, не подходила к тексту слишком близко, вста

вляется невидимая линейка нулевой ширины наподобие \strut’а (см. раздел 9.3 главы III).
Так вот, \footnotesep задает высоту этой линейки.
За вид номеров сносок в тексте отвечает команда \@makefnmark. По умолчанию она опре

делена следующим образом:
\newcommand{\@makefnmark}{\hbox{\mathsurround=0pt
$^{\@thefnmark}$}}
Здесь на место команды \@thefnmark при выполнении будет подставлен номер сноски (или
то, что его заменяет, если мы пользовались командой \footnotemark). Обратите внимание,
что номер сноски оформлен как верхний индекс в математической формуле
— именно за
счет этого номера сносок печатаются над строкой. По этой же причине внутри группы, явля

ющей собой аргумент команды \hbox, устанавливается в нуль параметр \mathsurround

иначе, если Вы установили для него ненулевое значение, номер сноски будет окружен лиш

ними пробелами (если Вы пропустили раздел про \mathsurround, можете проигнорировать
это место).
И, наконец, самое главное
— команда, генерирующая собственно текст сноски. Она на
зывается \@makefntext. Вот ее стандартное определение, в котором аргумент #1 обозначает
текст сноски, а на команда \@thefnmark означает то же, что и выше:
\newcommand{\@makefntext}[1]{\parindent=1em\noindent
\hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
При переопределении этой команды следует иметь в виду, что она будет выполняться внутри
аргумента команды \parbox с длиной строки, равной ширине колонки текста; в приведенном
выше определении применена команда \noindent, чтобы подавить абзацный отступ в первом
абзаце сноски, в котором будет печататься ее номер.
Если Вы захотите переопределить \@makefntext таким образом, чтобы изменилось оформ

ление номера сноски, например, чтоб он печатался так,
10
)
то не забудьте изменить оформле

ние номера сносок и в самом тексте, переопределив согласованным образом команду \@makefnmark.

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   128   129   130   131   132   133   134   135   ...   143




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling