Как сделать пункты в латехе
Записки дебианщика
В этом блоге публикуются заметки и решения, найденные в процессе работы, освоения и жизни в дистрибутиве Debian GNU/Linux.
Как оформить текст в LaTeX: структура текста
Этот пост является частью большой статьи
«Как оформить диплом в LaTeX?»,
которую написал virens,
ведущий блога «Записки дебианщика».
В этом посте показывается, как сделать текст структурированным в LaTeX. Рассматривается создание разделов, глав и списков.
Структура текста
Большое количество вордолюбов просто не подозревает о наличии такой простой вещи, как стили. Отчасти потому, что Word так потворствует бардаку в документе и отсутствии у него логической структуры. Документ превращается в единый поток текста, разбавленный вечно прыгающими картинками, уродливыми формулами и библиографическими ссылками и намертво вбитыми номерами.
LaTeX, наоборот, вынуждает автора текста в какой бы то ни было форме структурировать документ, иначе на выходе будет сгенерирован именно тот бесформенный поток текста, который набьёт нерадивый автор. Команды \section <>, \subsection <> и \chapter <> есть то, чему учат книжки по ЛаТеХу буквально с первых же страниц, и незадачливый латехник просто вынужден их использовать.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
Ссылки на разделы и главы
Естественно, что на разделы вы будете время от времени ссылаться. Поэтому хорошей морской практикой считается постановка ссылок на все разделы. Для этого на раздел нужно поставить метку командой (кто бы мог подумать, правда?) \label < Textssylki >.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
Многим говорят так: «мне лень думать и я лучше поставлю ссылку \label < UR1 >, а потом найду поиском». Заканчивается это бардаком в документе. Ссылки на литературу, равно как и на уравнения, должны быть осмысленными. Не надо уподобляться вордописцам с их склонностью «быстрей да попроще» и переделыванием по сто раз. В общем, плохая ссылка на уравнение выглядит так: \ref < ur2 >, а хорошая ссылка \ref < eq:equation_of_convolution >.
То же самое, как я уже говорил, с ссылками на главы и разделы. Правила хорошего тона такие: метка на раздел \label < sec:opisanierazdela >, метка на уравнение \label < eq:opisanie >, метка на таблицу \label < tab:tabliza >.
А теперь, товарищи, самый смак: все ссылки в наших ЛаТеХовских документах относительные, так что текст можно перетаскивать кусками по всему диплому, и при перекомпиляции документа всё автоматически за нас сделает LaTeX.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
В результате увидите следующее:
1. это первое,
2. а это второе,
3. и последнее.
Списки и перечни можно друг в друга вкладывать, то есть можно делать так:
\begin < enumerate >
В результате получим:
1. это первое,
2. а это второе,
3. и последнее.
Признаком хорошего тона являются отступы при наборе таких окружений: будет легче разобраться, что в каком порядке перечисляется.
Этот материал написал Михаил Конник aka virens и опубликовал на своём блоге Записки дебианщика.
Ненумерованные списки в научно-технической литературе не в почёте, но всё-таки приведу их:
\begin < itemize >
\item это первое,
\item а это второе,
\item и последнее.
\end
18 комментариев: |высказаться!| RSS-лента дискуссии.|
тут бы сразу ещё и про автоматическое оглавление, и про то что если добавить * то раздел не попадёт в оглавление,
как сделать чтобы список литературы добавлялся в оглавление я писал в комментариях к предыдущим постам.
worldmind
и если надо перевод на следующую страницу
Понятное дело все разделы нумеруются автоматически
Есть тонкость которую необходимо учитывать, введение обычно нумеровать не надо, но в оглавлении оно должно быть, решали мы это следующим способом:
здесь звёздочка после section указывает latex что этот раздел не нужно нумеровать и добавлять в оглавление, а вторая команда добавляет в оглавление пункт «Введение», команда \tocsecindent делает отступ для этого пункта, чтобы он был выровнен как все, оно определена в преамбуле так:
Соответственно, перед списком литературы пишем:
А если использовать пакет hyperref
Ещё надо поправить небольшой косяк, переименовывая и добавляя в оглавление список литературы мы используем две команды:
и тогда эти две команды примут вид
«paragraph» по-английски означает вовсе не параграф, а абзац. Да и в тексте латеха команда \paragraph никакой параграф не задает, а именно немного выделяет тот абзац, который начинает. Проверьте
ваш перевод слова paragraph, безусловно, правильный.
Однако, формление раздела, заданного командой \paragraph<текст_заголовка>, определено в стилевом файле. Например, в article это ненумерованный заголовок, набранный в подбор с последующим текстом.
так что вы тоже проверяйте, прежде чем чего-то писать.
2 Анонимный комментирует.
Облегчу тебе работу, в этот пост, как мне кажется, стоит добавить раздел «Оглавление», с примерно следующим содержанием:
Спасибо!
Я хочу сделать отдельный пост, посвящённый оглавлению и титульному листу. И я обязательно добавлю туда этот материал. Просто сейчас мне нужно собрать по Тайге все свои записи по ЛаТеХу и выложить тут. Шлифовка текста впереди.
2 Анонимный комментирует.
Ещё надо поправить небольшой косяк, переименовывая и добавляя в оглавление список литературы мы используем две команды:
\addto\captionsrussian<\def\refname<Использованные источники>>
Ага, точно. Я забыл об этом написать, но обязательно включу это в текст. На новогодних праздниках выделю для этого день и добавлю.
Да и как правило такой крупной формой как «Глава» пользуются достаточно редко.
По крайней мере Введение и пара глав обязательны.
2 Анонимный комментирует.
Однако, формление раздела, заданного командой \paragraph<текст_заголовка>, определено в стилевом файле.
В классе report, насколько я знаю, \paragraph действительно не выделяет абзац.
Друзья, большое вам спасибо за дополнения, я их обязательно внесу в текст, когда закончу выкладывать материалы и начну подводить итоги уходящего года.
Вопрос к многоуважаемому автору: есть ли возможность сделать нумерованные многоуровневые списки следующим образом:
1. Пункт 1
1.1. подпункт-1
1.2. подпункт-2
(т.е. с «полной» нумерацией подпунктов)?
есть возможность, нужно просто сделать класс документа article
После прочтения всей статьи остался непонятным такой вопрос: каким образом сделать абзац, начинающийся с команды \paragraph с красной строки. Аналогичная проблема с первым абзацем в разделе была решена с помощью \usepackage
Подскажите, пожалуйста, а как быть в данном случае?
Можно добавить раздел «Литература» в оглавление просто подключив пакет «tocbibind»
Вопрос, как сделать оглавление следующего вида:
1. Глава 1. Летающая рыба
Т.е. что бы и наименование глав попадало в оглавление?
почему ссылки выделяются в квадратных рамках? как это убрать
Здравствуйте! Подскажите, пожалуйста, есть ли возможность в окружении itemize в случае, когда пользователь сам задает формат значка элемента перечня (скажем, «первый», «второй», «третий» вместо точек по умолчанию) выровнять заданные значки по левому краю?
Столкнулся с такой проблемой! Есть содержание в конце которого есть приложения А, Б, В и т.д. В содержании надо что бы были включены подразделы до 3 цифр (1.1 и 1.1.1), а в приложении подразделов А.1.1 или А.1 не должно быть. Как такое сделать в инете не нашел. МОЖЕТ КТО ЗНАЕТ
Как сделать пункты в латехе
В последующих раздела я изложу очень короткое введение в LaTeX, но всем, кто хочет изучить LaTeX, я бы рекомендовал Не столь краткое введение в LaTeX [Not So Short Introduction to LaTeX]. Этот 95-страничный документ можно бесплатно скачать из Сети: смотрите в Дополнительные источники.
LaTeX устанавливается вместес большинс твом современных Linux-дистрибутивов. Проверить правильность его установки можно с помощью команды:
Моя система отзывается на нее так:
Общая структура документа
Вот пример очень короткого, но, тем не менее, полноценного документа LaTeX:
Преамбула данного выше примера содержит лишь одну команду: \pagestyle
Синтаксис
Задание структуры документа
В зависимости от documentclass LaTeX знает о трех или четырех уровнях заголовков. В класс article три уровня разделов, в то время, как в классе book сожержит главу в качестве четвертого заголовка самого верхнего уровня.
\chapter< Название главы > % только в классах book и report
\subsubsection< Заголовок подраздела подраздела >
Обратите внимание, что как и в POD, команды секционирования работают подобно разделителям. Они не группируют текст с помощью маркировки начала и окончания раздела, но простое их появление задает деление текста на группы. Как вы увидите в следующем месяце, в DocBook все иначе.
Списки
В состав LaTeX входит три окружения для создания списков:
Собственно элементы списка вводятся командой » \item » и могут состоять из нескольких абзацев.
Примеры:
Список из ненумерованных элементов Нумерованный список Список описаний
Перекрестные ссылки
Примеры использования \ref :
Пример использования \pageref :
Определение собственных команд и окружений
Одним из главных преимуществ системы предпечатной подготовки LaTeX является то, что пользователь имеет возможность определять собственные команды и окружения. Скажем, вы хотите использовать специальную разметку для всех заменяемых параметров в описании утилиты UN*X, например чтобы:
отображалась, скажем, так:
где команды \utilityname и \replaceable переключают, соответственно, шрифт «жирность» и «курсивность» шрифта. Использование команд \utilityname и \replaceable позволит сделать оформление всего документа последовательным:
Для того, чтобы определить новую команду LaTeX, воспользуйтесь
\newcommand< имя-команды >[ число-аргументов ]< последовательность команд >
Для нашего примера, определим \utilityname и \replaceable следующим образом:
Предопределенные комнады \textbf и \textit переключают стиль шрифта на текстовой полужирный (в противоположность математическому полужирному шрифту) и тектсовой курсивный соответственно. Аргументы обозначаются # цифра, где цифра может принимать значения от 1 до 9.
Для того, чтобы дать представление о полезности наши «свежеопределенных» команд, предположим, что мы хотим сгенерировать указатель для всех утилит, упомянутых в тексте. Команда \index< термин > помещает термин в указатель. Для этого нам достаточно лишь изменить определение \utilityname :
и все! (Для любопытных: уровни индексов разделяются символами вертикальной черты. Так что, вероятно, мы предпочтем команду \index
Новые окружения определяются так:
\newenvironment< имя-окружения >[ число-аргументов ]< стартовая-последовательность >< завершающая-последовательность >
главное отличие заключается в том, что \newenvironment две командные последовательности: одна, starting-sequence, открывает окружение, а другая, ending-sequence, завершает его. Продолжая пример с оформлением цитат, выровненых по правому краю, мы определим собственное окружение для оформления цитат:
которое можно будет использовать так:
Физическая разметка [Inline Markup]
LaTeX предоставляет богатейшие возможности физической разметки, меняющей внешний вид текста. Здесь я ограничусь обсуждением лишь тех трех команд, которые уже упоминались при обсуждении формат «Старой, доброй и простой документации Perl» [Perl’s plain old documentation]: выделения (эмфазы), курсива, полужирного и машинописного стиля шрифта.
Последовательность вызова утилит LaTeX
Обычно файлы LaTeX имеют расширение tex. Эти tex-файлы преобразуются в так называемые файлы, не зависящие от устройства (dvi). dvi файлы являются двоичным представлением исходного текста. Их можно просмотреть в консольном режиме с помощью dvisvga (при условии, что терминал поддерживает графику высокого разрешения), или, например, с помощью xdvi в среде X11. Часто файлы dvi преобразуют в Postscript с помощью dvips. Если предпочтителен формат PDF, то утилита pdflatex может создать pdf из tex за один шаг.
latex2html
Пока все нормально. LaTeX позволяет подготовить великолепно выглядящие документы на Postscript’е, а «единоутробная» утилита pdf делает то же самое, но в переносимом формате документов. Разве мы не говорили, что нам нужет и HTML тоже? Конечно говорили! Но тут LaTeX нам не помощник, для этого нам нужен другой инструмент: latex2html. Эта утилита преобразует исходные файлы LaTeX в набор html-файлов, связанные гиперссылками в соответствии со структурой исходного документа.
Загрузить latex2html можно с его домашней страницы: http://www.latex2html.org. Можно взять его и на http://www.ctan.org, а лучше с одного из зеркал. Для того, чтобы выяснить, установлен ли latex2html в вашей системе выполните команду:
должно быть что-то вроде этого:
в преамбулу вашего документа. Теперь файл my_document.tex может быть преобразован в HTML следующим вызовом
Еще раз о ссылках
latex2html берет на себя заботу практически обо всех проблемах, возникающих при преобразовании файла LaTeX в набор html-файлов. Однако ссылки на другие части того же документа или на другие документы концептуально отличаются в печатной документации и HTML. Рассмотрим следующий фрагмент LaTeX
в котором LaTeX послушно заменяет \pageref
Ниже мы обобщим наши результаты, используя цилиндрическую систему координат. Смотрите определение координатной системы на странице [*].
Latex2html нуждается в нашей помощи! Для экранной версии, абзац с ссылкой нужно перефразировать, например так:
\hyperref[ тип-ссылки ]< текст для html-версии >< текст, предшествующий ссылке в LaTeX-версии >< текст, следующий за ссылкой в LaTeX версии >
Необязательный параметр тип-ссылки устанавливает, какой счетчик будет использоваться ссылкой:
Вот наш пример, переписанный с использованием \hyperref
LaTeX преобразует это так
Ниже мы обобщим наши результаты, используя цилиндрическую систему координат. Смотрите определение координатной системы на странице 97.
а latex2html создает
после обработки того же исходного текста.
Гиперссылки
\htmladdnormallink< текст ссылки >< универсальный локатор ресурса >
\htmladdnormallinkfoot< текст ссылки >< универсальный локатор ресурса >
В HTML версии обе команды генерируют гиперссылку вида URL«>текст ссылки. В LaTeX версии первая только вставляет текст ссылки, полностью подавляя вывод части URL. Вторая команда добавляет к этому сноску, содержащую универсальный локатор ресурса. Типичным примером применения этих команд может служить следующий
в LaTeX результат первой команды будет
Текст этой статьи можно скачать с нашего веб-сайта.
во втором варианте веб-сайт дополняется маркером сноски, а сама сноска с URL помещается внизу страницы. HTML в обеих случаях выглядит так
Текст этой статьи можно скачать с нашего веб-сайта.
Команды, специфичные для конкретного формата
В качестве крайнего средства можно использовать несколько команд, позволяющих автору полностью разделить текст между LaTeX и HTML версиями:
Советую прибегать к разделению текстов только в том случае, когда никакая другая специализированная команда или окружение latex2html не в состоянии создать желаемую разметку. Разделение на разные ветви всегда требует дополнительных усилий по их синхронизации.
Плюсы и минусы latex2html
Дополнительные источники
Если вам повезло, то в вашем LaTeX есть руководство в виде веб-страницю, Hypertext Help with LaTeX. В моем дистрибутиве S.u.S.E. оно установлено по адресу file:///usr/share/texmf/doc/latex/latex2e-html/ltx-2.html
Веб-руководство не может заменить начинающему ни Краткого руководства ни книги Лампорта. Но они очень полезны для «пользователя промежуточной квалификации», если под рукой нет печатного руководства.
Оформление отчета о НИР в LaTeX
Оформление отчетов о научно-исследовательской работе (НИР) регламентируется стандартами ГОСТ 7.32-2001 (Россия, Беларусь) и ДСТУ 3008-95 (Украина). Далее мы будем придерживаться требований ДСТУ, но большинство рассматриваемых приемов подойдет и для ГОСТ, возможно, после небольшой переработки.
Стандарты оформления отчетов используются при подготовке многих других видов документов, в частности, курсовых и дипломных работ. К тому же, толкования требований стандарта в разных организациях различаются. Поэтому мы стремились к тому, чтобы создать некий «конструктор», из которого пользователь с минимальными знаниями LaTeX сможет выделить необходимые ему элементы оформления.
Стандарт
Тексты ДСТУ 3008-95 из Интернет отличаются деталями, в частности, в примерах оформления списков. Поэтому мы используем скан бумажной версии стандарта.
Оформление текста стандарта иногда ошибочно принимают за образец оформления отчета. В действительности, стандарт и отчет — разные виды документов, и образцами могут служить только примеры из текста стандарта.
Приступим
Предполагается, что читатель:
Запишем простейший документ LaTeX:
Шрифт
Стандарт требует, чтобы шрифт был высотой не менее 1.8 мм. По сложившейся традиции текст отчета набирается шрифтом размера 14 пунктов. Укажем этот размер при помощью опции 14pt класса extreport
Класс документа extreport («расширенный» отчет) выбран в качестве базового как раз потому, что поддерживает 14-пунктовый основной шрифт, чего нет у «обычного» отчета (класса report ).
Размер страницы
Стандарт предполагает оформление отчета на листах формата A4. Добавим соответствующую опцию
Величина полей страницы должна составлять: верхнего, левого и нижнего — не менее 20 мм, правого — не менее 10 мм. Чтобы обеспечить нужные размеры, воспользуемся пакетом geometry:
В нашем случае отступ от правого края страницы равен 15 мм, от остальных — 25 мм. Параметр hmargin пакета geometry задает размеры горизонтальных полей, а vmargin — вертикальных. Так что в нашем случае удобнее записать:
Междустрочный интервал
Число строк на странице не должно превышать 40. Эксперименты с текстом показали, что при указанных выше отступах, требования стандарта удовлетворяются при одинарном машинописном интервале.
Самостоятельно проверить это можно с помощью пакета lipsum, вставляющего в документ бессмысленный текст (lorem ipsum. ) для заполнения места.
Абзацный отступ
По умолчанию TeX делает первую строку текста, следующую после заголовка структурного элемента, лишенной абзацного отступа. Таковы британские полиграфические традиции. Изменить эту установку поможет пакет indentfirst
Стандарт требует, чтобы величина абзацного отступа была равна пяти знакам, не уточняя, что это за знаки. Сделаем абзацный отступ равным по ширине пяти строчным буквам основного шрифта
ex — единица измерения, равная ширине латинской буквы ‘x’ шрифта по умолчанию (Computer Modern Roman, 14 пт).
Нумерация страниц
Номер страницы отчета проставляется арабскими цифрами в правом верхнем углу страницы. В классе extreport номера ставятся внизу и по центру страницы. Исправим это, изменив с помощью пакета fancyhdr стиль колонтитула:
Здесь мы: очищаем колонтитулы (иначе номер страницы продолжит отображаться внизу), указываем номер страницы \thepage в правой части верхнего колонтитула ( \rhead ) и убираем горизонтальную линию, разделяющую колонтитул и основной текст (делаем ее толщину равной нулю).
Заголовки
Заголовки разделов выполняются прописными буквами по центру, а заголовки пунктов и подпунктов — с абзацного отступа строчными буквами, начиная с первой прописной. Точки после номеров структурных элементов не ставятся.
Еще одна необходимая команда — \titlespacing* — устанавливает отступы слева, перед, после и справа от заголовка.
Настроим заголовок раздела ( chapter ):
Расстояние между меткой и текстом заголовка задаем в единицах шрифта: em — ширина буквы ‘M’ основного шрифта документа. ‘*n’ в \titlespacing обозначает расстояние в n букв ‘x’ по высоте или ширине.
Настройка заголовка пункта ( section ):
В результате получим заголовок пункта, начинающийся с абзацного отступа и содержащий висящую метку (номер пункта)
Если нужно, чтобы заголовок имел вид обычного абзаца, запишем его стиль так
Заголовки подпунктов оформляются аналогично.
Кроме того, могут понадобится заголовки 4-го уровня. Их можно печатать прямо в тексте и не помещать в оглавление. В начале нужно «скомандовать» классу extreport нумеровать заголовки 4-го уровня (по умолчанию нумеруются только заголовки первых трех уровней)
Опция runin указывает, что заголовок будет помещаться в основном тексте.
Вот что получается в результате
Содержание
Содержание по умолчанию называется «Оглавление». Исправим это
Перед текстом заголовка главы в содержании делается отступ. Стандарт никак это не регламентирует, но традиции оформления отчетов в конкретной организации могут этого не допускать. Отменяем этот отступ с помощью пакета titletoc:
Строки заголовков в содержании превращаются в гиперссылки после подключения пакета hyperref:
Опция hidelinks нужна, чтобы скрыть рамку, окружающую гиперссылку.
Математика
Обычно с отображением формул TeX замечательно справляется безо всякой настройки. Однако, даже здесь могут возникнуть «хитрые» ситуации. Например, система уравнений
Дроби явно маловаты. Чтобы решить эту проблему, подключим пакеты от American Mathematical Society, содержащие многочисленные настройки и символы, используемые при оформлении математических текстов
С помощью \dfrac из amsmath можно увеличить цифры в дробях
Пространство по вертикали между уравнениями изменяется командой \arraystretch
Будучи помещенной в окружение (например, в equation ), \arraystretch действует только на данный объект (систему уравнений). Если же поместить команду в преамбулу, то она будет действовать глобально — на весь документ. С помощью \arraystretch можно также регулировать пространство по вертикали в массивах и таблицах.
Вместо array для записи систем уравнений можно воспользоваться окружением aligned из пакета amsmath
Отрегулировать пробел до и после выключной формулы можно, переопределив окружение equation
В данном случае мы добавляем по 3 пункта к пробелам, которыми ТеХ по умолчанию окружает формулу.
Кроме того, подключим пакет icomma, позволяющий использовать запятую в качестве разделителя целой и дробной частей числа в формулах (в англоязычной литературе таким разделителем является точка):
Рисунки и таблицы
Чтобы настроить формат подписей подключим пакеты caption и subcaption. Последний нужен для создания рисунков, состоящих из нескольких взаимосвязанных частей.
Опция tableposition пакета caption управляет размещением заголовка относительно таблицы. В данном случае заголовок будет расположен над таблицей.
С помощью команды \DeclareCaptionLabelFormat настраивается оформление подписи, которое затем будет использоваться для всех рисунков и таблиц документа. Первый параметр ( #1 ) этой команды, определяющий стандартный текст метки, мы не используем; параметр #2 задает номер рисунка/таблицы.
\DeclareCaptionLabelSeparator настраивает разделитель между меткой и текстом подписи. В нашем случае это тире.
Команда \captionsetup устанавливает настройки оформления подписей к объектам (рисункам, таблицам):
Обычный \captionsetup выдает предупреждение, если стиль для какого-то типа объектов не использовался в документе. Например, настройки \captionsetup[table] заданы, а ни одного окружения table в документе нет. Существует «звездный» вариант команды — \captionsetup* — который этого не делает, поэтому мы используем именно его.
Увеличим вертикальный просвет между строками таблицы с помощью
Согласно стандарту, горизонтальные и вертикальные линии, разграничивающие строки таблицы, а также линии, ограничивающие таблицу слева, справа и снизу, можно не проводить, если их отсутствие не затрудняет пользование таблицей. Поэтому может оказаться полезным пакет booktabs, который как раз и предполагает подобный подход к оформлению таблиц.
Многострочный заголовок таблицы отображается так
Его можно оформить с висящей меткой
или с абзацным отступом
Рисунки вставляются в документ с помощью окружения figure :
Заголовки рисунков и таблиц настраиваются аналогично
При размещении рисунков и таблиц возникает следующая проблема: стандарт требует, чтобы они помещались непосредственно после упоминания в тексте или на следующей странице, тогда как TeX стремится обеспечить максимальное полиграфическое качество документа. В результате рисунок (таблица) может появиться в документе через несколько страниц после упоминания, если с точки зрения качества заполнения страницы так будет лучше. Все дело в том, что окружения figure и table — «плавающие», т.е. меняющие свое положение в документе. Стандарт же, по сути, требует зафиксировать расположение рисунка (таблицы).
В этом случае желательно помочь ТеХ’у, и поместить рисунок вблизи от того места документа, где он должен появиться. Напоминает работу в Word’е, не правда ли?
Рисунки можно размещать на отдельных страницах. Для этого в преамбуле документа следует записать:
Вставлять такие рисунки нужно с помощью окружения figure без опций, т.е. без [htbp] или чего-то подобного.
Длинные таблицы, занимающие несколько страниц, удобно создавать с помощью пакета longtable.
Следующий пример показывает, как реализовать этот подход:
Пакет threeparttable поможет при создании примечаний и сносок к таблицам. Пакет makecell позволит создать уникальное оформление ячеек.
Списки
Требования к спискам в стандарте следующие:
Установим метки пунктов в соответствии с этими требованиями:
Согласно стандарту, списки первого уровня детализации должны начинаться с абзацного отступа, второго и последующих уровней — с отступа относительно предыдущего уровня. Величина этого последнего отступа в стандарте не задана.
Опция leftmargin устанавливает левую границу текста списка равной отступу в начале абзаца.
Рассмотрим следующий пример:
Каждый пункт списка содержит текст, задача которого — занимать, по крайней мере, две строки. Сделаем аналогично еще два списка, вложив нумерованный список внутрь маркированного, и нумерованные списки — друг в друга.
С указанными выше настройками списков, получим:
Иногда требуется выравнивание не по тексту пункта, а по метке. При этом пункт списка должен вести себя как обычный абзац (не выравниваться по первой строке, а тянуться вплоть до левой границы текста). Вот что имеется в виду:
Сделать это можно с помощью опции wide :
Кроме того, мне не нравится использование дефисов в качестве маркеров, и я заменяю их на «минус»:
В сумме эти изменения дают следующий результат:
Сноски
Сноски обозначаются надстрочными знаками в виде арабских цифр со скобкой
Листинги
Листинги программ оформляются с помощью пакета minted
С настройками по умолчанию листинг программы на C++ выглядит следующим образом
Стиль подсветки синтаксиса можно установить командой
Если документ предполагается печатать на черно-белом принтере, то подсветку синтаксиса можно отключить
Чтобы получить тот же результат, не указывая опции в каждом окружении, можно написать в преамбуле
Тогда в тексте исходный код помещаем в окружение
Листинги могут использоваться в качестве иллюстраций, и помещаться в окружение figure
Приложения
Если приложения оформляется как продолжение отчета, то оно должно начинаться с новой страницы. Приложение должно иметь заголовок, напечатанный вверху строчными буквами, начиная с первой прописной, симметрично относительно текста страницы. Посередине строки над заголовком строчными буквами с первой прописной должно быть напечатано слово «Приложение» и большая буква, обозначающая приложение.
Для оформления приложений подключим пакет appendix
Создадим стиль раздела приложения и назовем его \append
Текст приложения включается в документ после библиографических ссылок при помощи окружения appendices
Переносы
По стандарту, перенос слов не допускается в заголовках разделов.
Проще всего добиться этого, вставив перед потенциально переносимым словом разрыв строки \linebreak (этот вид разрыва сохраняет выравнивание строки по ширине). Побочным эффектом будет появление такого же разрыва в оглавлении документа, но его можно избежать, использовав команду \section в форме
Другой вариант: переопределить заголовок с помощью пакета titlesec и включить в новое определение команду, запрещающую перенос.
Пример определения заголовка:
В нашем примере значение \righthyphenmin равно 62 буквам.
Иногда требование к переносам расширяют до полной отмены переносов в документе, сохраняя при этом выравнивание по ширине.
Значения \tolerance и \emergencystretch подбираются экспериментально, например:
Кроме того, полезно подключить пакет microtype. Он улучшает читаемость текста, управляя размерами пробелов между словами и прочими деликатными микротипографическими операциями. В результате использования microtype сокращается число переносов.
Полезные мелочи
Чтобы иметь возможность искать и копировать из получившегося PDF-файла набранный кириллицей текст, используется пакет cmap
Ссылки
Читайте также
Комментарии
Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.