КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Перемещаемые аргументы и хрупкие команды
Если в аргументе команды \section(или любой другой LaTeX'овской команды для рубрикации) присутствует не только текст, но и TeX'овские команды, то при трансляции они могут иногда вызвать сообщение об ошибке. Чтобы этого избежать, команду надо "защитить": поставить непосредственно перед ней команду \protect. Приведем пример, когда возникает нужда в этой команде. Предположим, вы решили сказать LaTeX'у, что в каком-то месте заголовок раздела нельзя разрывать на печати, с помощью команды \nolinebreak. Тогда надо действовать следующим образом: \documentclass{article}
\begin{document} \section{Устойчивость по Ляпунову} ... \section {О некоторых свойствах функций \protect\nolinebreak\Ляпунова} Еще кое-что. \end{document} (Заметьте заодно, что команда \nolinebreak дана до пробела между словами, а не после — иначе она вообще не сработает, невзирая ни на какой \protect.) Если убрать в этом файле \protect, то на экране появится загадочное сообщение об ошибке. Такого рода ситуация может возникать, когда TeX'овская команда является частью текста, который будет записан в специальный файл и использован при следующем запуске LaTeX'а (в нашем случае информация о заголовке раздела записывается в файл с расширением toc для последующего использования в оглавлении). Если аргумент команды (в нашем случае команды \section) подвергается такой обработке, то его называют перемещаемым; команды, которые, будучи использованы внутри перемещаемого аргумента, могут вызвать ошибку, называются хрупкими. Из LaTeX'овских команд, которые могут реально понадобиться внутри заголовка раздела, большинство хрупкими не являются. Если вы сомневаетесь, не хрупка ли какая-то конкретная команда, можете спокойно ставить перед ней \protect — ничего плохого от этого не произойдет. Не являются хрупкими и не нуждаются в защите с помощью \protect команды для расстановки диакритических знаков, смены текущего шрифта и установки промежутков вручную. | |||||||||||
4. Лекция: Оформление текста в целом | ||||||||||||
Титульный лист, оглавление, список литературы, аннотация
Титульный лист
Для того, чтобы оформить заголовок ко всему документу, надо сделать две вещи: задать информацию для заголовка (автор, название и т.п.) и дать LaTeX'у команду этот заголовок сгенерировать. Второе делается с помощью команды \maketitle. Она создаст титульный лист, если это предусмотрено классом и опциями. (Если титульный лист не предусмотрен, то команда \maketitle разместит заданную вами информацию об авторе, заглавии и прочем на первой странице, выбрав подходящие шрифты и сделав подобающие отступы между титульной информацией и текстом.) По умолчанию для классов report и book титульный лист создается всегда (и не создается, если указана классовая опция notitlepage), для класса article титульный лист не создается (но будет создан, если указать классовую опцию titlepage). В классе proc титульная информация всегда печатается на первой странице текста.
Так как команда \maketitle генерирует текст, ее нельзя помещать в преамбуле документа.
Теперь объясним, как задавать LaTeX'у информацию для титула. Автор задается с помощью команды \author. Она принимает единственный обязательный аргумент — имя автора (в том виде, как вы хотите его видеть на титуле). Если авторов несколько, их имена должны быть разделены командой \and.
Заглавие задается с помощью команды \title. Если заглавие длинное, можно самому задать его разбиение на строки с помощью команды \\; если этого не сделать, заглавие будет разбито на центрированные строки автоматически, как если бы это был абзац в окружении {center}.
Следующий элемент информации для титула — команда \date. Она имеет один обязательный аргумент, в котором можно задать любой текст (например, дату, в согласии с переводом слова date), который будет размещен на титульном листе (или перед началом основного текста, если титульный лист не предусмотрен классом и/или опциями) в одной или нескольких центрированных строках (так же, как и текст, задаваемый в аргументе команды \title). В частности, можно оставить аргумент этой команды "пустым", если сказать \date{} - тогда соответствующий текст вообще не появится. Но если вы вообще не дадите эту команду, хотя бы и с пустым аргументом, то LaTeX напечатает на титуле дату своего запуска, причем по-английски1).
Команды \author, \title и \date можно давать в любом порядке, но обязательно до команды \maketitle (можно и в преамбуле). Команда \maketitle должна быть первой из команд, генерирующих текст.
Наконец, последнее, что можно сделать с информацией для титула документа, — это снабдить ее сносками. К любому из авторов, к любым словам в титуле или в тексте, содержащемся в аргументе команды \date, можно сделать сноску с помощью команды \thanks, имеющей один обязательный аргумент — текст сноски (в отличие от обычных сносок, абзацы в этом тексте нельзя разделять пустыми строками или командами \par; если в вашей сноске должно быть несколько абзацев, разделяйте их TeX'овской командой \endgraf).
Сноски будут напечатаны внизу титульного листа (или первой страницы, если титульный лист не предусмотрен). Пример:
\author{Борис Заходер}
\title{Винни-Пух и все-все-все\thanks{Вообще-то
это перевод из А.А.Милна}}
\date{}
Обратите внимание, что команда \thanks помещается внутри аргумента команд \title и/или \author.
Наконец, можно при желании вообще не использовать стиль оформления титульного листа, диктуемый нам LaTeX'ом. Сделать это очень просто — надо воспользоваться окружением {titlepage}. Текст между \begin{titlepage} и \end{titlepage} составит титульный лист, за оформление которого целиком отвечает тот, кто текст готовит. Сам LaTeX внутри этого окружения делает только три вещи:
В этом примере вы также можете видеть команду \cite с необязательным аргументом: он ставится перед обязательным; в квадратных скобках записывается текст, который будет через запятую напечатан после номеров ссылок. Как это обычно и происходит с автоматически генерируемыми LaTeX'ом ссылками, после первого запуска программы вы увидите сообщение о том, что ссылки не определены. Если в дальнейшем в процессе работы над текстом нумерация ссылок изменится, LaTeX сообщит вам об этом и предложит запустить программу еще раз, чтобы получить корректные ссылки. Если вам не нравится, что источники в списке литературы нумеруются, можно придумать для них свои обозначения, которые будут печататься вместо номеров. Для этого надо использовать команду \bibitem с необязательным аргументом, идущим перед обязательным. В квадратных скобках ставится то обозначение, которое будет заменять номер для этого источника. Например, можно написать так: \begin{thebibliography}{XXXX} ... \bibitem[EGA]{Groth} A.Grothendieck, J.Dieudonn\'e. \'El\'ements de G\'eom\'trie Alg\'ebrique. ... \end{thebibliography} После этого команда \cite{Groth} будет генерировать текст [EGA]. Списку литературы в целом LaTeX автоматически дает заглавие, определяемое командой \refname в классах article и proc и \bibname в классах report и book. Если это заглавие печатается по-английски, его можно переопределить. | ||||||||||||
4. Лекция: Оформление текста в целом | ||||||||||||
Предметный указатель
В отличие от списка литературы, который при использовании описанных выше команд \cite и \bibitem получается совершенно автоматически, процесс создания указателя автоматизирован в LaTeX'е не полностью. Именно, вы можете сделать две вещи:
Предметный указатель, получаемый из окружения {theindex}, печатается LaTeX'ом в две колонки (даже тогда, когда сам документ печатается в одну колонку). Кроме того, LaTeX автоматически дает указателю заглавие, определяемое командой \indexname (см. выше). Если вас не устраивает, что это название — английское, его можно переопределить (см. там же). В аргументе команды \index могут быть любые символы, и вообще текст в аргументе этой команды может быть неосмысленным или недопустимым с точки зрения TeX'а — в любом случае аргумент команды \index будет в неизменном виде переписан в idx-файл. Смысл тут в том, что в аргументе команды \index можно задавать вспомогательную информацию для программы обработки idx-файла (примеры тому вы найдете ниже). Единственное ограничение — не должно быть "несбалансированных" фигурных скобок, даже если эти скобки входят в состав команд \{ или \} (напомним, что вместо \{ или \} всегда можно написать \lbrace или \rbrace соответственно). Наконец, еще одна тонкость: команду \index нельзя использовать внутри необязательного аргумента таких команд, как \section, \chapter, \caption (подрисуночная подпись; см. следующий раздел) и т.п.
Дата добавления: 2014-01-03; Просмотров: 643; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |