Как сделать титульный лист в латехе

Обновлено: 05.07.2024

Привет, Хабр! Всех, кого не очень устраивает увлекательное заполнение вордовских официальных бланков, приглашаю под кат.

.
Все имена и названия вымышлены. Любые совпадения с реальными людьми, организациями и адресами случайны.
.

Преамбула

В 2019 работать в латехе достаточно легко: выбираешь редактор по душе, объявляешь тип документа, подгружаешь нужные пакеты и больше не вспоминаешь про оформление своего текста.

Ничего не изменилось и в этот раз: выбираем формат А4, 12 кегль и отключаем титульную страницу. Если я не ошибаюсь, то часть этих опций являются значениями по-умолчанию для класса article. Заодно подключаем пакет, нормализующий отображение в pdf:


Затем необходимо указать кодировку исходного текста, семейство шрифтов и подключить русский язык:


Стандартные поля в латехе на мой взгляд совсем широкие, явно шире полей в исходном бланке. Работать с ними я предпочитаю с помощью пакета geometry. Обычно я использую по 2 см со всех сторон. Вежливо отказываемся от колонтитулов:


Поскольку у нас используются подстрочные пояснения, необходимо увеличить междустрочный интервал. Это легко сделать с помощью \linespread, но я предпочитаю специализированный пакет:


В присланном бланке присутствовал логотип компании, однако, если вам не нужны изображения в документе, данный пакет можно не подключать:

Тело документа

Вбиваем привычные begin-end и начинаем творить. Дизайн у нас будет абсолютно ручной, поэтому не помешает очистить стиль страницы:

Здесь ничего сложного: объявляем плавающий объект, используем определенный в graphicx макрос includegraphics с необходимой шириной и радуемся жизни. Более того, pdflatex отлично дружит с форматом png.

В заявлении обычно присутствует штамп. На хабре я видел, как его релизуют с помощью таблицы с заданной шириной. Такой подход мне не понравился, поскольку у таблицы есть параметры arraystretch и tabcolsep, которые немного портят отступы и форматирование. Их всегда можно переопределить, но на мой взгляд в разы легче воспользоваться окружением minipage. Лично я предпочитаю, чтобы машина сама подобрала необходимые интервалы, для этого существует hfill. Однако, нам не всегда необходимо заполнить всю строку, как, например, в случае с датой. Здесь мы с помощью rule оставим необходимое место:


Сделать строку для номера указа также не составит труда. Кажется, в каком-то из пакетов отдельно определен символ "№", но я нахожу нерациональным подключать целый пакет только ради него:

Указываем название документа и выравниваем по центру строки:

Наконец, нам выдалась возможность воспользоваться пакетом ulem. Для нас пакет примечателен в первую очередь тем, что подчеркнутый текст автоматически переносится на следующую строку в отличие от underline. Мы не знаем, сколько пространства займет текст, и чтобы линии всегда доходили до полей, мы добавляем hfill.


Теперь мы дошли до самой интересной части документа. Подстрочные пояснения мы реализуем с помощью макроса underset пакета amsmath. Единственная проблема, возникающая при таком подходе — работа в математическом режиме. Соответственно, hfill нам уже не поможет. Тут нам придется проделать немного больше работы: вручную растянуть боксы с помощью hspace и расставить при необходимости принудительные переносы. Изначально я пытался автоматизировать и эту часть при помощи resizebox пакета graphicx, но это не привело к удобоваримым результатам. (Приглашаю в комментарии знатоков ТеХ-программирования).


Самая юридически важная часть заявления:


Наконец, назначаем ответственных экспертов. Можем оставить и так, а можем вписать реальные фамилии и должности, не забыв при этом про hspace:

Финальные штрихи

Почти всегда любой документ разбит на логические части, которые очень легко расположить на листе, поместив между ними vfill. Возвращаясь к оформлению строк, если никак не получается сделать ровную линию до полей, то можно оставить ее немного меньше и уже в начало строки добавить hfiil.

Тёмная сторона ФизФака МГУ

Тёмная сторона ФизФака МГУ

Тёмная сторона ФизФака МГУ запись закреплена

Ребят, кто может поделиться титульным листом курсовой на LaTeX? Буду крайне признателен

ЧАСТЬ 2: Мы говорим на русском языке и пользуемся операционной системой GNU/Linux — подобное на нашей планете встречается не так уж часто. Хотите стать ещё более элитарным подмножеством? Евгений Балдин знает уникальный рецепт — используйте LaTeX!

Содержание

Базовые элементы

Чтобы отобразить эти символы при печати необходимы дополнительные усилия. Предыдущий параграф в текстовом редакторе выглядел бы так:

Это: >, >, >, > [1] , >, >, >, >, > и >. В процессе изложения их роль будет раскрыта.

Группировка осуществляется с помощью фигурных скобок: . Фигурные скобки при печати не отображаются.

Сложные конструкции, которые имеют открывающую и закрывающую команды (например, окружения), тоже группируют текст.

Командам LaTeX могут передаваться внешние аргументы:

В квадратные скобки заключаются необязательные параметры (param1 и param2), а в фигурные — обязательные (param3 и param4). Некоторые из команд LaTeX влияют только на свои аргументы. Например, команда

выводит слово текст жирным шрифтом.

Часть команд LaTeX являются своеобразными переключателями режимов. Область действия декларативной команды может ограничиваться логической группой или единицей структуры печатного документа, например, страницей.

Окружения могут вкладываться друг в друга, как матрёшки, но их области действия не могут перекрываться.

Логика документа

Вид документа определяется выбором класса и стилей. Хорошим приёмом является наличие личных готовых шаблонов с уже предопределёнными предпочтениями, которые могут меняться по мере развития документа.

Структура файла LaTeX

Текстовый tex-файл состоит из двух частей: заголовка или преамбулы и собственно самого текста, и выглядит примерно следующим образом:

Первым делом с помощью инструкции \documentclass осуществляется выбор класса документа. Далее загружаются стилевые пакеты.

К вопросу о переносах

Пожалуй, единственное, что, возможно, потребует настройки в свежеустановленном дистрибутиве LaTeX, это включение переносов. Этой проблемы заведомо не возникает при установке TeX Live и в большинстве современных дистрибутивах GNU/Linux, но всякое бывает.

Для установки переносов можно воспользоваться утилитой texconfig [3] . После запуска программы следует выбрать меню HYPHENATION, а затем меню LaTeX. Далее будет предложено отредактировать [4] файл переносов language.dat. Обычно достаточно таких настроек:

Всё остальное по желанию можно закомментировать. По умолчанию, когда включаются переносы для определённого языка, все остальные правила переносов отключаются. Но в случае английского и русского языков это можно обойти, воспользовавшись русско-английской таблицей переносов:

Следует понимать, что подобная настройка с точки зрения философии LaTeX не совсем корректна. Для гарантированно одинакового результата компиляции независимо от платформы лучше поступиться некоторыми удобствами.

Класс документа

С помощью обязательной инструкции \documentclass[опции] можно указать, к какому классу будет относиться рабочий текст.

Класс документа следует выбирать в зависимости от того, что должен представлять из себя текст. Для начала можно остановиться на стандартном классе article. Этот класс разработан специально для статей и небольших отчётов. Для отчётов побольше можно использовать класс report, а для книг — класс book.

Перечисленные стандартные классы сложились очень давно и многие производные классы документов основаны на них. Как следствие, стандартные базовые классы абсолютно статичны, поэтому для специализированных вещей используются свои классы. Например, для научных статей популярны различные модификации revtex4. Вячеслав Фёдоров разработал класс eskd (стандарт ЕСКД), который можно найти на CTAN или в стандартной поставке TeX Live. Те, кто недоволен большими полями в стандартных LaTeX-классах, могут обратить внимание на набор классов KOMA-script (scrartcl, scrreprt и scrbook вместо article, report и book, соответственно).

Поначалу в выбранном классе ничего менять не следует. То, что кажется с непривычки неудобным, на самом деле может улучшать восприятие печатной копии. Например, относительно узкая ширина текста в стандартных классах (следствие больших полей) позволяет при прочтении охватывать взглядом всю строку целиком, что увеличивает скорость чтения.

Как правило, разумные модификации можно осуществить через параметры в команде выбора класса, например:

a4paper — размер листа бумаги (можно выбрать другой стандарт, например, a5paper), 12pt — базовый размер шрифта (в стандартных классах доступны размеры в 10pt и 11pt), а oneside — односторонняя печать (удобнее при просмотре электронной версии).

Стили

Для проверки правописания следует использовать словарь Александра Лебедева. Этот словарь построен на основе словаря русского языка для ispell, первоначально составленного Нилом Далтоном (Neal Dalton) в 1992 г. После тщательной проверки и исправления примерно 4000 ошибок в словаре Нила Далтона, в словарь были добавлены отсутствовавшие в нём правила образования форм существительных, прилагательных, причастий, наречий, изменены правила формирования окончаний глаголов, так что affix-файл можно считать переписанным заново. Одновременно в словарь было добавлено большое число слов.

Словарь постоянно совершенствуется, дополняется и корректируется. Последнюю версию словаря можно найти на авторской страничке Александра Лебедева.

Стилевой файл (.sty) или пакет представляет из себя набор макросов и определений, созданных для решения какой-то определённой задачи. Для подключения стилевого файла используется команда \usepackage[опции].

Основное отличие классов от пакетов в том, что один документ может включать один класс и сколько угодно стилевых пакетов. Фактически, на любую задачу в LaTeX находится ответ в виде соответствующего пакета. В стандартной поставке TeX Live присутствует свыше двух тысяч .sty-файлов, кроме того, ничего не мешает создать свой, оптимизированный под локальные задачи.

К вопросу о кириллизации

Чтобы кириллизовать LaTeX, необходимы шрифты. Благодаря Ольге Лапко на свете есть шрифты семейства lh, которые отлично согласуются с базовыми шрифтами Computer Modern. Мало иметь просто кириллические буквы — надо, чтобы их начертания соответствовали и другим шрифтам, в том числе, математическим. В 2001 году Владимир Волович проделал огромную работу по переводу METAFONT-шрифтов в формат Type1, что теперь позволяет создавать не только хорошие печатные копии, но и вполне качественные электронные pdf-версии документов.

Тело документа

Всё, что заключено внутри окружения document, является телом документа. Если у вас есть какие-то куски текста, которые печатать не хочется, а выкинуть жалко, то их достаточно вынести в конец за инструкцию \end.

Логика набора

Печатаю со скоростью 4000 знаков в минуту.

Правда, такая белиберда получается!

Мало открыть файл в текстовом редакторе и начать набирать. Нажимать на клавиши надо осмысленно.

Печатаем текст

При наборе книги/статьи/заметки основное вовсе не команды, а сам текст. Правила очень просты.

Пробельные символы используются в LaTeX для разделения слов. Пробелы в начале строки игнорируются. Символ перевода строки так же воспринимается как пробел. Если в конце строки сразу за последним словом вставить знак комментария:

то разделения слов не происходит. Иногда этот приём может оказаться полезным.

Для того, чтобы начать новый абзац, необходимо оставить пустую строку:

Число пустых строк между абзацами не имеет значения.

Пунктуация

290px Распространённые TeX-лого. Команда \NCC определена в пакете ncclatex. Остальные команды заведомо определены в пакете texnames.

Напечатанный текст обезличивается. Нет эмоций — только буквы. Единственное, что остаётся — это знаки пунктуации и, возможно, смайлики ☺.

Расстояние между словами LaTeX выбирает по своему усмотрению для максимально равномерного заполнения страницы. Но иногда необходимо указать размер пробела вручную:

Дефисы, минусы и тире

В издательских системах, основанных на TeX’e, различают дефис (hyphen), короткое тире (en-dash), длинное тире (em-dash) и знак минуса.

При подключении пакета babel с опцией russian появляются дополнительные команды, позволяющие более строго следовать русским печатным традициям.

Правила могут показаться немного запутанными, но к ним быстро привыкаешь, и они того стоят.

Переносы В большинстве случаев LaTeX грамотно переносит слова, но в случае сложных слов, которые пишутся через дефис, перенос происходит только по дефису. Аналогично проблемы возникают, когда слово частично состоит из английских букв, а частично из кириллицы.

Прямо в тексте перенос можно указать с помощью команды \-, например: дель\-та-функ\-ция, \TeXно\-ло\-гия.

При наличии русского языка в \texttt вместо дефиса в сложном слове можно поставить команду "=, например, дельта"=функция. В этом случае переносы будут сделаны корректно без подсказки. Для часто упоминаемых слов можно задать шаблон переноса с помощью команды:

Обычно, образцы переноса лучше определять в заголовке документа. Следует понимать, что образцы автоматически не склоняются, поэтому надо предусмотреть всевозможные варианты окончаний.

С помощью команды \hyphenation можно запретить перенос слова в нежелательных местах, просто не указав место разрыва. В тексте запрет переноса можно оформить с помощью инструкции \mbox.

Многоточие печатается с помощью команды \ldots. Если многоточие идёт после точки, то необходимо вставить неразрывный пробел ~.

В русском языке длительность ударного гласного примерно в 1.5-2 раза длиннее безударного. Если ударение поставить не в том месте, то слово будет звучать совсем по другому.

В корне \textbf "--- \textbf под ударением пишется гласная в соответствии с произношением, без ударения "--- \textbf .

В пакете babel, кроме всего прочего, определены традиционные русские кавычки. Если в начале или в конце текста встречаются внутренние и внешние кавычки, то они должны различаться между собой рисунком.

Структурная логика

Титульный лист

Создания титульного листа это отдельная задача, в которой визуальная составляющая обычно превалирует над структурной. В этом случае следует воспользоваться окружением titlepage. При инициализации этого окружения создаётся чистая страница, которой присваивается номер один, а содержание этой страницы полностью определяется фантазией автора. Но, в любом случае, это следует делать после написания самого текста. Обычно достаточно стандартного заголовка:

Команда \maketitle создаёт стандартный титульный заголовок, используя информацию о названии документа (\title), авторе (\author) и дате написания текста (\date). Команда \thanks правильным образом позволяет оформить подстрочное примечание на титульной странице. Если авторов более чем один, то их можно перечислять, разделяя командой \and — в этом случае список авторов печатается в виде таблицы.

В статьях (производные от класса article) вслед за заголовком следует обязательная аннотация, которая оформляется с помощью окружения abstract.

Секционирование

Часто бывает полезно сразу же за титульной страницей вывести оглавление с помощью команды \tableofcontents. Для этого в тексте должно присутствовать логическое разбиение на разделы.

Далее по старшинству следуют:

Если воспользоваться необязательным параметром команды секционирования, его значение заместит основной заголовок при печати оглавления и создании колонтитулов.

Перекрёстные ссылки

Одной из основных причин, по которой LaTeX вытеснил обычный TeX из текстовых редакторов TeXников, является механизм нумерации и создания ссылок.

Чтобы сослаться на раздел, в нём необходимо оставить метку \label. А затем можно использовать команды:

Когда ссылки идут через метку, то номер раздела и номер страницы определяется LaTeX автоматически. Причём автоматическая нумерация свойственна не только командам секционирования — точно так же можно ссылаться на формулы, таблицы, картинки и листинги программ. Для этого необходимо оставить метку \label в соответствующем окружении.

Сложные документы

С помощью команды \input можно вставлять в документ другой tex-файл. LaTeX просто добавляет содержимое по месту команды, считывая файл либо до конца, либо до первой встретившейся инструкции \endinput. Совершенно не важно, в какой части документа встречается \input. Бывает довольно удобно вынести преамбулу в отдельный файл. В имени файла можно опустить расширение .tex.

Для включения текста можно применить другой способ:

Декларация \include позволяет включить только tex-файл (при написании имени расширение .tex опускается). В преамбуле с помощью команды \includeonly можно перечислить, какие части надо подключить при текущей сборке. При этом сохраняется правильная нумерация страниц и можно сослаться на не включённые в эту сборку разделы. Это довольно актуально в случае больших текстов в процессе их создания, так как значительно ускоряет компиляцию.

Допустим, у вас верстается книга достаточно большого объёма и вы структурировали
её двумя уровнями иерархии. Главный файл лежит в корневом каталоге и называется
videogamebook2.tex . Он вызывает глобальные макросы типа \documentclass
и затем подключает главы следующим образом:

То есть, каждая отдельная "глава" книги лежит в отдельной папке, и её главный
файл называется chapter.tex .

Эти файлы глав содержат вызовы макросов, локальные для главы, и затем подключают
разделы. Разделы в таком случае нужно подключать так:

Видно, что разделы также лежат каждый в своей подпапке и файлы называются просто
section.tex .

Заметьте, что пути всё ещё начинаются от корневого каталога проекта (!).

Довольно очевидно, что если вы хотите разбивать разделы более низкого уровня
так же по отдельным файлам, вам придётся сохранять такой стиль указания путей.

Иллюстрации, подключаемые во вложенных файлах

Усложним задачу: допустим, мы хотим иллюстрировать наш текст, используя стандартный
пакет graphicx . Иллюстрации, соответствующие разделу, у нас лежат в подкаталоге
этого раздела, рядом с файлом section.tex .

Тогда в заголовке section.tex можно написать, что:

а в тексте писать просто

То есть, путь надо писать опять-таки от корня, и обязательно завершать слешем,
иначе LaTeX вас не поймёт.

Читайте также: