Научный форум dxdy
Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Добавление в содержание без указания номера.
И в основном документе подключаю с помощью include.
При компиляции Latex добавляет в содержание «Заключение» с указанием на страницу, в тексте без указания номера главы ставит «Заключение», все вроде бы хорошо, но. При нажатии в содержании на Заключение переходит не на ту страницу.
Если убрать *, то кликабельность будет правильной, но номер главы появится.
Пробовал, как Львовский советовал, определить новую команду:
но выдает много ошибок, начиная, что команда l уже определена и т.д.
Использую MikTex, Windows 7.
Буду благодарен любой помощи.
Кто сейчас на конференции
Сейчас этот форум просматривают: YandexBot [bot]
Записки дебианщика
В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.
Оглавление и нумерация глав в LaTeX
Оглавление и нумерация разделов настраивается довольно просто в LaTeX, однако информация об этом разбросана по сайтам и книгам, которые искать вновь каждый раз лениво. Этот пост есть небольшая коллекция трюков на эту тему.
\setcounter < tocdepth > < n >%%where n is the level, starting with 0 (chapters only)
Однако это распространяется на весь документ сразу, и это может быть неудобно: если в документе есть Appendix, то отображать в оглавлении его subsections совсем не обязательно.
Для этого есть пакет tocvsec2 который позволяет нам менять уровень отображения разделов там, где нам надо. Например, если мы хотим в первой главе поменять подробность оглавления до section, в первой главе (внутри документа) пишем:
После этого наше оглавление выглядит так, как мы того хотели.
Как переименовать оглавление в LaTeX?
Иногда нужно переименовать «Оглавление» во что-нибдудь другое. Несложное действие само по себе, но дабы не гуглить, есть готовый рецепт:
\renewcommand\contentsname
%%% renaming the Table of Contents
вставить это в преамбулу документа, то есть до \begin < document >
Команда переименует Table of Contents в Projects List.
Как сделать главу в тексте без номера, но чтобы она была указана в Оглавлении?
Если нужно сделать так, чтобы заголовок главы состоял исключительно из её названия, но глава присутствовала бы в оглавлении, выкрутиться можно так:
Первое вырубает номер главы и слово ГЛАВА. Второе добавляет оное в оглавление, но без номера.
Как начать новую главу без новой страницы?
Обычно если вы начинаете в LaTeX документе новую главу, она начинается с новой страницы. Но если очень нужно, чтобы глава начиналась на той же странице в ЛаТеХ-документе? Это можно сделать с помощью переопределения команды \chapter <> в преамбуле документа так:
\makeatletter %%%%%
\renewcommand \chapter < \par %
\thispagestyle% \global\@ topnum \z @
\@ afterindentfalse \secdef\@ chapter \@ schapter>
\makeatother %%%%%
Римские цифры в оглавлении
Для любителей старины можно сделать в ЛаТеХ римские цифры в оглавлении. Для этого добавляем в преамбулу следующий код:
и наслаждаемся суровыми римскими цифрами в Subsections.
Обратно переопределить главу или раздел в арабские цифры можно следующим кодом в преамбуле:
Больше узнать о переопределении можно здесь.
Нумерация подразделов : subsection depth
Есть в нашем документе, скажем, \subsubsubsection <Замечание о кроликах>и мы хотим его занумеровать по разным причинам. Запросто! Добавляем в преамбулу параметр:
и это позволит занумеровать subsubsections в тексте.
\renewcommand
43 комментариев: |высказаться!| RSS-лента дискуссии.|
Ещё полезно было бы написать как сделать нумерацию глав, секций и прочего не с 0, а с 1.
@librarian комментирует.
Ещё полезно было бы написать как сделать нумерацию глав, секций и прочего не с 0, а с 1.
Если честно, не понял вопроса. Если не хочется вставлять chapter перед одинокой section, тогда может помочь это. Оно?
Добавил в пост ещё римские цифры. Мало ли, пригодится. Просто у скубентов сейчас пора дипломов, что отражается на стремительно возросшем числе заходов на мой пост Как сделать диплом в ЛаТеХе?
n=4 это chapter, section, subsection, subsubsection and paragraph
n=3 это chapter, section, subsection, subsubsection
n=2 это chapter, section, subsection,
n=1 это chapter, section,
n=0 это chapter,
«And» заменить на «и», в конце каждого пункта поставить точку с запятой (или оставить запятые, но тогда нужно поправить первые два пункта — там в конце ничего нет).
Команда переименует Table of Contents в Project List.
В Projects List. В коде так, по крайней мере.
Кстати, я бы ещё добавил трюк с удалением перевода страницы перед каждой главой вот отсюда. Я вот как раз недавно с такой потребностью столкнулся, думаю, и другим было бы полезно.
@Minoru комментирует.
«And» заменить на «и», в конце каждого пункта поставить точку с запятой
Ну ни фига ж себе ты суров, тааиищщ Редактор 🙂 Ну просто быка за рога! Сейчас я вот к тебе в комменты прийду отрываться 🙂
Но по делу. Исправлено.
В Projects List. В коде так, по крайней мере.
Пофиксено.
Кстати, я бы ещё добавил трюк с удалением перевода страницы перед каждой главой вот отсюда.
Минору, а я вот сам навскидку не помню такой приём. Может добавишь в комментах? Я всегда думал, что это встроенная фича.
@virenc Оно?
Ага, вроде оно самое.
@librarian комментирует.
Ага, вроде оно самое.
Как-то криво там написано. Очень уж красноглазо. Порывшись в своих заметках, нашёл про счётчики и запостил в пост. Спасибо, librarian, за наводку.
Михаил, во-первых хочу сказать, что мне Ваш блог всё больше нравится 🙂
А во-вторых, нет ли у Вас случайно распиленной функции \chapter? 🙂
А то я хочу, чтобы заголовок главы состоял исключительно из её названия (например, «Краткий обзор важнейших работ по выбросам», как у меня), вместо конкатенации его с «Глава n.», но ручками переписывать в \renewcommand не хочется, так как предчувствую, что сразу начнутся конфликты с \tableofcontents, а дедлайн с дипломом не оставляет времени играться, хоть в мирное время я и был самый большой любитель 🙂
PS. \chapter[optional]
Михаил, во-первых хочу сказать, что мне Ваш блог всё больше нравится 🙂
Ну, я очень рад, и всё такое. Тут вообще нахаляву много чего выкладывают, чего в других местах нету 🙂
А во-вторых, нет ли у Вас случайно распиленной функции \chapter?
В моих загашниках постов блога aka drafts чего только нет: начиная от настройки Самбы и заканчивая рабочей теорией холодного термоядерного синтеза 🙂 Так что оставайтесь на нашей волне, да 🙂
А то я хочу, чтобы заголовок главы состоял исключительно из её названия
Ммм. ну я всегда выкручивался так:
а дедлайн с дипломом не оставляет времени играться
Да я уж понял.
Отпишитесь в комментах, Лев, если оно работает и это то, что вы искали.
Ну..это почти то, что я хотел..спасибо. В крайнем случае при окончательной сшивке диплома так и сделаю.
Что пока сделал с Вашей подсказкой:
— вместо \chapter<> написал \chapter*<> в инициализации главы (убил упоминание этой главы в оглавлении, как в Библии написано; теперь название, написанное в <>, отображается в начале главы непосредственно (без конкатенации с «Глава 2. «))
— добавил в хидер (index.tex) перед инклюдом файла с главой строчку: \addcontentsline
Что пока получил с Вашей подсказкой:
— возможность вручную указать, что написано в начале главы (тот самый пресловутый «$Chaptername»)
— возможность вручную указать, как называется строчка в оглавлении
Если бы был распиленный код функции \chapter и можно было бы в нём поменять буквально одно место: что выводится в документ при вызове этой функции. 😉
Ура! Почитал Львовского, нашёл, заработало!
>> Кстати, я бы ещё добавил трюк с удалением перевода страницы перед каждой главой вот отсюда.
> Минору, а я вот сам навскидку не помню такой приём. Может добавишь в комментах? Я всегда думал, что это встроенная фича.
Дык это, «вот отсюда» — это ссылка на приём (второй листинг). Я его как раз недавно юзал, работает.
И это ни разу не встроенная фича — я обгуглился уже рецепт искать. Впрочем, насколько я понял, есть стили, которые сразу это делают, но report, увы, не таков.
Рекомендую рассмотреть использование пакетов «titlesec» и «titletoc».
@Лев комментирует.
Ну..это почти то, что я хотел..спасибо.
Пожалуйста.
Если бы был распиленный код функции \chapter и можно было бы в нём поменять буквально одно место
Переписывать стиль ради одной функции это значит потратить минимум полдня. Лев, оно того не стоит 🙂
Ура! Почитал Львовского, нашёл, заработало!
Вот что сила документации делает! 🙂
@Анонимный комментирует.
Рекомендую рассмотреть использование пакетов «titlesec» и «titletoc».
Спасибо, Анонимус, за интересные ссылки на пакеты.
Не знаю почему, но переименовать оглавление я смог только такой командой:
\AtBeginDocument<\renewcommand\contentsname
Просто \renewcommand\contentsname
привет всем)) пишу диплом в техе и пытаюсь самостоятельно разобраться в командах. С трудом, но получается)) (просто это не моя стихия). Проблема в том, что не получается создать верно оглавление и список литературы(( Просьба-если можно выложите примеры.. буду признательна Вам))
Есть такая проблема: Надо выровнить нумерацию в содержании и поменять шрифт section на прописные буквы (прописные буквы должны быть и в содержании и в самом тексте). Пожалуйста помогите =) Заранее спасибо!
Приветствую всех!
Скажите пожалуйста, как сделать так чтобы раздел в тексте отображался без точки между номером и заголовком, т.е.
Не так:
1. Теория
А вот так:
1 Теория
Нашел некоторые полезные штучки по теме. Вот может кому пригодятся!
\makeatletter % Эти две строки переопределяют нумерацию
\def\@biblabel#1 <#1. >% литературы, типа она будет [1],
% а 1. с пробелом после точки.
А вот эти штуки переименовывают, если их добавить
после \begin
Люди выручайте. Бился бился не могу найти инфу как уменьшить шрифт Содержания и не затронут шрифты других разделов?
Извините что аноним, просто стиль жизни такой. Подскажите плиз ответ на мой вопрос.
Проблему со шрифтом содержания решил. Оказалось все банально. Вот может кому надо будет:
<\footnotesize\tableofcontents>% Мелкое содержание
можно и другие шрифты использовать.
<\small\tableofcontents>% и т.д.
А вот так можно добавить что нибудь к содержанию
\addcontentsline
Очень хотелось бы знать ответы на вопросы Андрея Гавришина и Елены Шатровой. Каким кодом все таки можно убрать или поставить точку после номера главы или раздела (что бы было так 1. или так 1 без точки) тоже самое касается отображения слова Глава или Раздел перед 1. или 1 без точки. Интересно очень если кто знает подскажите.
Очень хотелось бы знать ответы на вопросы Андрея Гавришина и Елены Шатровой. Каким кодом все таки можно убрать или поставить точку после номера главы или раздела
Переопределением в преамбуле:
Первая команда поставит аж целых четыре точки в названии главы. Команда \arabic будет ставить цифры.
Интересно очень если кто знает подскажите.
Всё для тебя, Анонимус! Много информации по ссылке. Вот даже рабочий пример:
\renewcommand<\thechapter><\arabic
\renewcommand<\thesubsection><\arabic
Открываем Львовского на стр.297, и вуаля — видим те же самые строки, что и приведённые здесь без ссылки на первоисточник. virens, ты таки не поверить, но люди вроде меня учили LaTeX, штудируя Львовского. На мой взгляд, это лучшая книга по LaTeX, когда-либо изданная в России. А уж азы нужно учить исключительно по ней. Кстати, приложение Е. «LaTeX в России».
P.S. Можешь удалить и этот комментарий, но, по крайней мере, его ты прочтёшь.
@iv_vl комментирует.
Открываем Львовского на стр.297, и вуаля
ты таки не поверить, но люди вроде меня учили LaTeX, штудируя Львовского.
Я тоже его читал, что не отменяет необходимости написания постов типа некого минимума для написания диплома в латехе.
Смысл этого блога в том, чтобы содержать конкретные рецепты, а не перечитывать Львовского снова если тебе что-то нужно быстро найти.
это лучшая книга по LaTeX
Не знаю, как насчёт «лучшая», но во всяком случае исключительно хорошая и годная.
азы нужно учить исключительно по ней.
@virens комментирует…
…не отменяет необходимости написания постов типа некого минимума для написания диплома в латехе.
Если цель книги — объяснить, как всё работает, то сборника рецептов — представить рабочий вариант. Может сделать стилевой пакет? Так хоть сразу поставил и проверил, насколько эти рецепты подходят для диплома. А то в гугле отбоя нет от «просто рецептов», и у каждого автора они свои. А ответа на вопрос, почему нужно доверять конкретному рецепту, как с комсомольца на допросе, с автора не вытянуть. В конце-концов, в отличие от гуманитария, человек технический не должен просто заучивать рецепты.
Не знаю, как насчёт «лучшая», но во всяком случае исключительно хорошая и годная.
Сейчас азы уже не учат, а учат подключать тот или иной стилевой пакет, пример тому — «LaTeX в России» Балдина. Кому-то такой подход ближе, но это опять же на тему оформления рецептов в стилевой пакет. Кстати, ты принципиально не ставишь ссылки на первоисточники? (например, ту ссылку на Львовского, что я давал раньше.) С трудом верится, что никого книга не заинтересует, а нужны только рабочие рецепты. Видимо, от жизни я поотстал.
К готовым рецептам:
\makeatletter
\def\@seccntformat#1 <\csname the#1\endcsname.\ >% точка после номера раздела
\def\@biblabel#1 <#1.>% формат номеров в списке литературы
\makeatother
При этом меняется только отображение заголовка. В случае же переопределения \thesection и тп точка появится также при ссылках (В разделе \ref
Добрый день, Михаил. Подскажите пожалуйста, как убрать точки между главой и номером страницы.
Я недавно занимаюсь латехом, и даже не представляю в какую сторону капать. Спасибо)
@Юрий Шукуров комментирует.
Подскажите пожалуйста, как убрать точки между главой и номером страницы.
А как изменить выравнивание из такого
https://dl.dropboxusercontent.com/u/59069601/1.png
в такое
https://dl.dropboxusercontent.com/u/59069601/2.png
второй день ломаю голову.
пример кода
https://dl.dropboxusercontent.com/u/59069601/diplom.tex
Заранее очень благодарен.
В итоге все нормально нумеруется, но слово Семинар появляется и при слове Содержание, что как-то бредово. Как бы это можно грамотно исправить?
Здравствуйте.
Кто-нить сталкивался с проблемой, когда оглавление занимает больше одной страницы, а нумерация страниц не учитывает этого при генерации номеров страниц в оглавлении? Например, при генерации оглавления «Введение» помещается на 3 страницу, а введение в тексте находится на 4, т.к. само оглавление занимает 2 страницы. В случае, если оглавление умещается на 1 страницу, проблем не возникает.
Заранее спасибо.
Простите. Вопрос снимается. На 4-й раз генерации все исправилось.
Скажите, пожалуйста, как сделать в одном файле два оглавления: одно на русском, другое на английском?
нужно расположить книгу а5 на а4, слева четные стр, справа нечетные, получается только наоборот, нужно в издательство отдать, не знаю что делать (
Решил добавить свой комментарий, так как нигде не нашел описание titlesec на русском. Вдруг кому понадобится)). Просьба автору блока добавить этот комментарий в свою статью, если конечно это возможно и он еще читает комментарии)).
Краткий обзор пакета titlesec
Основная команда по переопределению формата рубрик:
\titleformat<«command»>[«shape»]<«format»><«label»><«sep»><«before-code»>[«after-code»]
Здесь
2) block – печатает всю главу в блоке (абзац) без дополнительного форматирования. Полезно в центрированном названии и специальном форматировании (включая графические инструменты, такие как picture, pspicture и т.д.)
Пример:
не знаю, не пользовался.
3) display – номер рубрики над тестом рубрики (как в стандартном \chapter).
Пример:
\titleformat<\section>[ display] <…
получим:
1.1
«Текст названия»
4) runin – оформление как в стандартном \paragraph.
5) leftmargin – ставит заголовок на левое поле страницы. Заголовки в самом конце страницы будут перемещены на следующую, а не будут торчать на нижнем поле, т.е. длинные заголовки могут привести к незаполненной странице. Далее см. док.
6) rightmargin – то же самое, но справа.
6) drop – текст документа (т.е. абзац следующий за заголовком) обтекает заголовок при условии, что данный абзац длиннее чем заголовок. Если нет, они перекрываются. Комментарии в leftmargin, применимы и здесь.
7) wrap – похож на drop. Разница лишь в том, что пространство, отведенное в drop на заголовок является фиксированным, а в wrap автоматически доводят до самой длинной строки. Есть ограничения (см. док.)
8) frame – вроде display, но заголовок окружен рамкой.
Внимание, если не задавать [«shape»], тогда он примет значение по умолчанию (hang). Например если написать
\titleformat<\chapter><\normalfont…
то номер главы будет на одном уровне с текстом названия главы.
Продолжение, ибо в один коммент не помещается)).
<«format»>— форматирование применяемое на весь заголовок (номер и текст). Или код, применяемый до заголовка, например рисование линии над заголовком (см. пример ниже) и т.д. Здесь можно применить команды: \filcenter – выравнивает заголовок по центру, \filright – выравнивает слева, \filleft – выравнивает справа (почему так х.з.)).
<«label»>— код до номера заголовка (на одном уровне с ним), форматирование номера заголовка.
<«sep»>— расстояние между номером и текстом заголовка (вертикальное в display, в frame – это расстояние от рамки до текста заголовка. Не должно быть равным нулю.
<«before-code»>— код до текста заголовка (на одном уровне с ним), форматирование текста заголовка. Если охота засунуть что то после текста заголовка, то нужно явно обраться к названию (опция explicit, к тексту обращаться как #1).
Например:
\usepackage[explicit]
\titleformat<\section><\normalfont\Large\bfseries><\thesection><0.5em>
<\normalfont\Large\bfseries#1%
\hspace<0.5em>\titlerule[2pt]>
Нарисует линию толщиной 2pt до конца страницы, после заголовка (на одном с ним базовой линии) на расстоянии 0.5em.
Пример. Нарисовать две линии над заголовком и одну под ним произвольной толщины.
\titleformat <\section>
<\titlerule[2pt]% первая линия толщиной 2pt
\vspace<2pt>% расстояние между двумя линиями
\titlerule[1pt]% вторая линия толщиной 1pt
\smallskip% расстояние до заголовка
\normalfont\Large\bfseries\filcenter >% выравниваем заголовок по центру
<\thechapter.>% нумерация с точкой
<1em>% расстояние между номером и текстом заголовка
<>% не изменяем формат текста заголовка
[ <\smallskip% растояние между линией и концом заголовка
\titlerule[1pt]>]% собственно сама линия
Внимание на конструкцию [<\smallskip\titlerule[1pt]>]. Просто [\smallskip\titlerule[1pt]] – выдаст ошибку. Вообще говоря, так можно нарисовать произвольное количество линий.
Теперь о команде по переопределению расстояния над/под/и т.д. рубриками:
Я так понял, основное отличие \titlespacing* от \titlespacing, то, что при \titlespacing* следующий после заголовка абзац текста не начинается с красной строки. Так что можно смело использовать \titlespacing и забыть про \indent.
Полная форма задания расстояний что то вроде <2ex plus 0.1ex minus 0.2ex>. Например:
\titlespacing<\section><0pt><2.5ex plus 0.1ex minus 0.2ex><2ex plus%
0.1ex minus 0.2ex>%
Можно использовать конструкцию <*N>эквивалентную Nex с некоторым растяжением и сужением (х.з. каким).
Например:
\titlespacing<\section><0pt> <*4>
Пример. Под подраздел должен обтекаться текстом.
\usepackage
\setcounter
\setcounter
\titleformat<\subsubsection>[wrap]% выбираем нужную форму
<\normalfont\normalsize\bfseries\filright>% выравниваем слева
<\thesubsubsection.>%нумерация с точкой
<0.5em>% расстояние между номером и текстом заголовка
<>% не изменяем формат текста заголовка
\titlespacing<\subsubsection><15pc>% максимальная ширина заголовка
<2ex plus 0.1ex minus 0.2ex>% отступ сверху и снизу заголовка
<1pc>% расстояние до текста документа
Здравствуйте! Подскажите, пожалуйста, как переопределить заголовки в Содержании (и м.б. тексте) так, чтобы не выделялись жирным (это по ГОСТу)? Я использую пакет pscyr, поэтому стандартное \textbf уже не прокатит
LaTeX + диплом
Продолжаем тему LaTeX + диплом.
Ставим задачу
Исходные условия:
Компьютер Acer Aspire One. Очень удачная машинка для студента, надо заметить. Нетбуки в Европе так и называют — студенческие компьютеры.
Операционная система — Linpus (читай Fedora 8).
Система верски — Latex в реализации teTex, ныне свернутая.
Требуется в течение недели получить текст диплома, оформленного по всем правилам учебного заведения.
В качестве основы для публикации после непродолжительного анализа был выбран пакет disser. Самое главное, что в нем подкупило — это ощущение целостности и наличие файла для сборки (т.е. Makefile).
Установка
Сначала автор хотел установить TeXLive, но это не получилось. Почему-то не запустился инсталлятор, а поскольку в perl’е автор не силен, желания разбираться не было никакого. Из пакетов с помощью yum был установлен teTeX.
Надо отметить, что процесс этот проходил не быстро, благо GPRS-интернет от Мегафон — удовольствие не быстрое (это не камень в огород Мегафона, а констотация факта. GPRS-интернет медленный!)
После этого из CTAN (www.ctan.org) были установлены пакеты disser и связанные с ним. Как определялись пакеты, которые надо установить? Экспериментальным путем.
В теле документа thesis.tex пишется \usepackage<какой_то_пакет>, затем дается команда
и проверяется наличие ошибки вида «не найден какой_то_пакет.sty». Если такая ошибка есть, то этот пакет скачивался из интернета, инсталлировался (с обязательным выполнением команды sudo texhash ) и процесс повторялся. Надо сказать, что автор установил довольно много пакетов, прежде чем понять, что же ему надо и на чем можно остановиться, поэтому намеренно не привожу перечень пакетов, которые были установлены.
Про среду следует сказать отдельно.
В документации к пакету disser приводятся примеры разных работ — кандидатской, докторской и магистерской диссертаций, а также работа бакалавра. Содержатся они в каталоге templates. Если бы было право на запись, то можно было бы прямо в каталоге, например, bachelor выполнить make и получить на выходе dvi-файл.
Но поскольку права на запись нет, примеры были скопированы в каталог
/Documents и работа велась там.
В Makefile были внесены изменения (был прописан абсолютный путь в директиве include), чтобы уже в копии можно было выполнять make.
Далее начался собственно процесс верстки.
Сборка диплома
Текст изначально планировался к набору в кодировке utf-8, но позже выяснилось, что BiBTeX не умеет обрабатывать библиотечные файлы в этой кодировке, а совместить две кодировки в одном проекте не получается. Может это и возможно, но дешевле оказалось весь проект верстать в cp1251.
Набор текста производился в редакторе geany, от которого требовалась только подсветка синтаксиса и умение работать в кодировке cp1251. Немаловажным фактом оказалась и возможность работать в режиме полного экрана (отключены все элементы интерфейса, кроме строки меню), поскольку экран компьютера маленький.
Пакет disser предполагает разбиение документа на небольшие, логически связанные порции. Так, введение и заключение находятся в отдельных файлах, intro.tex и concl.tex соответственно. Главы находятся в файлах 1.tex, 2.tex, 3.tex и т.д. Приложения в файлах app-1.tex, app-2.tex и т.д.
Сборка документа производится путем указания в файле thesis.tex (основной документ) следующих строк между \begin
Оглавление, по требованиям, находится в начале документа и начинается со страницы 2. Титульный лист для дипломной работы выдавался (печатался отдельно), поэтому никакой необходимости его верстать и включать в документ не было. Для отключения титульного листа в заголовке документа было указывается notitlepage, т.е.
где многоточием заменены другие опции.
Размер листа устанавливается пакетом geometry:
\usepackage[
a4paper, includefoot,
left=3cm, right=1cm, top=2cm, bottom=1.5cm,
headsep=1cm, footskip=1cm
]
Настройка заголовков
Надо отметить, что в пакете disser очень грамотно произведена настройка элементов текста, т.е. названий глав, секций, подсекций и т.д.
Например, для оформления названия главы имеются следующие команды:
\thechapteralign
\thechapterfont
\prethechapter
\postthechapter
\chapteralign
\chapterfont
\beforechapter
\afterchapter
Команды определяют оформление разных частей заголовка: \thechapteralign — выключку номера, \thechapterfont — шрифт номера, \prethechapter — текст до номера, \postthechapter — текст после номера, \chapteralign — выключку текста заголовка, \chapterfont — шрифт текста заголовка, \beforechapter — отступ до заголовка, \afterchapter — отступ после заголовка.
Такая же серия команд есть и для оформления заголовка в оглавлении.
Подобная настройка произведена для каждого уровня заголовков. Подробности — в файле disser.pdf.
Такое разбиение позволяет сделать, например, такой заголовок:
Глава 1.
Анализ текущего состояния
и указать разное оформление для номера и для текста заголовка.
В итоге, для диплома в преамбуле документа появились такие команды (показана только настройка главы):
> % ставим точку и пробел после номер
\renewcommand<\chapterfont> <\normalsize\bfseries>% шрифт текста заголовка
\renewcommand<\tocprethechapter><> % в оглавлении убираем слово «Глава»
Перекомпилируем и получаем правильно оформленные заголовки главы.
Другие заголовки
По умолчанию все заголовки в пакете disser набираются более крупным шрифтом, нежели основной текст. По требованиям же заголовки должны набираться тем же кеглем, что и основной текст (12), полужирного начертания.
Поэтому в преамбулу вписываем:
Заголовки второго и последующего уровня должны иметь такой же абзацный отступ, что и основной текст, т.е. номер секции не должен выступать влево по отношению к абзацному отступу.
Для этого в преамбулу включаем команды (основной текст имеет отступ 1 см)
Отступ от заголовка до текста должен быть не менее 6 пунктов:
Поскольку в дипломе было много мест, где подряд шли несколько заголовков разного уровня, автор пошел на некоторое нарушение в угоду визуальной составляющей и уменьшил размер отступа для заголовков третьего уровня до трех пунктов:
Текст заголовков
По требованиям заголовки набираются заглавными буквами. Исправить это оказалось довольно просто. В преамбуле указываем
По каким-то причинам «ОГЛАВЛЕНИЕ» и «БИБЛИОГРАФИЧЕСКИЙ СПИСОК» пришлось вставлять в тело документа, причем последнее — непосредственно перед библиографией.
Нумерация
Диплом по требованиям начинается с титульной страницы, после которой идет оглавление. Оглавление печатается на странице 2 и далее. Делается это с помощью команды
непосредственно перед \tableofcontents.
Приложения нумеруются с цифры 1. По умолчанию пакет disser предлагает нумерацию приложений с буквы «А» (кириллица). Для изменения формата номера в преамбуле пишется команда
\renewcommand<\theappendix><\arabic
Кроме того, текст «ПРИЛОЖЕНИЕ 1» выключается вправо. Делается это командой
в преамбуле. Команда \hfill заполняет все свободное пространство строки, «раздавливая» то, что стоит до и после нее в разные стороны строки.
Оглавление
В оглавление должны включаться заголовки всех уровней. По умолчанию пакет disser включает в оглавление только главы и секции. Подсекции — не включаются.
Чтобы исправить, в преамбулу добавляем команду
В случае с дипломом автора этого оказалось достаточно, поскольку заголовки ниже subsection не использовались. Если это будет не так, то нужно указать 3 или даже 4 в команде выше.
Команды разбиения текста (chapter, section и пр.) имеют необязательный параметр, позволяющий указать текст, который будет включен в оглавление. Это удобно использовать для переноса строк в случае длинных заголовков. Команда
позволяет по-разному оформить заголовок в тексте и в оглавлении.
Приложения в оглавления начинаются со слова «ПРИЛОЖЕНИЯ», которое ссылается на ту же страницу, что и первое приложение, т.е.
ПРИЛОЖЕНИЯ. 51
ПРИЛОЖЕНИЕ 1. Сводная таблица. 51
Делается это просто. В тексте первого приложения (в файле app-1.tex) в начало добавляются две команды:
\clearpage нужно для того, чтобы команды \addcontentsline и \chapter попали на одну страницу.
Библиографический список
Пакет disser для формирования библиографии использует команду bibtex8. В поставке teTeX этой команды нет, во всяком случае в тех репозиториях, которые подключены по умолчанию.
Поэтому автор скачал исходный код утилиты и собрал ее самостоятельно, после чего поместил ее в каталог /usr/bin рядом с утилитой bibtex, а в каталог с дипломом поместил файл gost705.bst, используемый пакетом disser.
Шрифт Times New Roman/12 pt
Нормоконтроллер не пропустил шрифт cm-super, используемый по умолчанию. Поэтому пришлось подключить пакет PsCyr для того, чтобы текст верстался именно Times New Roman. Мне этот шрифт категорически не нравится, но это формальность, так что пришлось сделать как указано.
По каким-то причинам при указании опции 12pt в \documentclass Latex отказался менять размер шрифта. Пришлось последовательно (с пересборкой диплома) указать шрифт 8pt, 9pt, 11pt и затем 12pt. После этого шрифт стал нужного размера.
Заключительные положения
Следует отметить, что на все эксперименты и настройку суммарно ушло около 3 дней. Это с учетом того, что знание Latex у автора до этого было довольно поверхностное.
Основную информацию автор почерпнул из книг К. В. Воронцова «Latex2e в примерах», С.М. Львовского «Набор и вёрстка в системе Latex» и, конечно, документации пакета disser, какой бы скудной она ни была.
Преимущества Latex для работ подобного плана огромны — ссылочный аппарат позволяет не заботиться о том, в каком порядке идут приложения, элементы библиографического списка, таблицы, рисунки и проч.; работа ведется с простыми текстовыми файлами, поэтому потеря форматирования из-за проблем внутри MS Word/OO Writer невозможна в принципе; высокое полиграфическое качество; совершено прозрачная работа с математикой.
Проблемы, конечно, тоже есть, но они нивелируются достоинствами: сложности с форматированием длинных таблиц, сложная работа с рисунками, особенно крупноформатными; не всегда очевидные способы борьбы с проблемными местами в тексте (висячие строки, слова, overfull, underfull) и т.д. В целом, для качественной работы в Latex нужно несколько больше знаний в полиграфии и программировании, чем при простой верстке в Word/Writer. Но оно того стоит.
Рыба текста главного файла диплома с использованием пакета disser:
\documentclass[bachelor,subf,12pt,notitlepage]
\usepackage
a4paper, mag=1000, includefoot,
left=3cm, right=1cm, top=2cm, bottom=1.5cm, headsep=1cm, footskip=1cm
]
\usepackage[T2A]
\usepackage[cp1251]
\usepackage[english,russian]
\usepackage
\usepackage
> % Меняем регистр слова «Приложение»
\renewcommand <\tocpretheappendix>