Оформление документов в Latex

Оформление документов в Latex

В этой статье опишу какие же настройки документов мы применяем в наших проектах.

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

Немного теории

Latex работает с пакетами и подключая разные пакеты можно добиться нужного оформления документов.

Для подключения пакетов используется команда

\usepackage[опции]{пакет}

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

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

Мы используем стандартный класс документов article с дополнительными настройками:

  • a4paper — формат бумаги;
  • 12pt — размер шрифта.

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

\documentclass[a4paper,12pt]{article}

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

Настройки окружения

Следующей строчкой любого нашего документа является подключение файла окружения env.tex:

\documentclass[a4paper,12pt]{article} \input{config/env}

В этом файле мы создаем переменные, в которых указываем параметры проекта:

  • Наименование проекта;
  • Реквизиты заказчика (если проект коммерческий);
  • Реквизиты исполнителя;
  • Наименование всех этапов проекта;
  • Сроки проекта;
  • Команда проекта;
  • Наименование документов, которые готовятся в проекте
  • И т. д.

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

Пример содержания файла env.tex:

% Реквизиты Контракта \newcommand{\gknum}{№~00000 от 01.01.2022~г.} \newcommand{\gkname}{Разработка чего-то для кого-то} % ЗАКАЗЧИК \newcommand{\client}{Полное наименование Заказчика} \newcommand{\clientShort}{Краткое наименование Заказчика} \newcommand{\cliebyBoss}{ФИО директора} \newcommand{\clientBossPost}{Должность директора} % ИСПОЛНИТЕЛЬ \newcommand{\perfomer}{Полное наименование Исполнителя} \newcommand{\perfomerShort}{Краткое наименование Исполнителя} \newcommand{\perfomerBoss}{ФИО директора} \newcommand{\perfomerBossPost}{Должность директора} % Этапы работ \newcommand{\stageOne}{1.~Первый этап} \newcommand{\stageTwo}{2.~Второй этап} \newcommand{\stageThree}{3.~Третий этап} % Документы % 1 ЭТАП \newcommand{\docStageOneReport}{Отчёт по первому этапу} % 2 ЭТАП \newcommand{\docStageTwoReport}{Отчет по выполнению работ <<\stageTwo>>} % 3 ЭТАП \newcommand{\docStageThreeReport}{Отчет по выполнению работ <<\stageThree>>}

Настройки оформления

И только третей строкой мы подключаем в файл документа настройки оформления settings.tex

\documentclass[a4paper,12pt]{article} \input{config/env} \input{config/settings}

Первыми строками файла settings.tex являются пакеты настройки поддержки русского языка:

\usepackage[T2A]{fontenc} % Кириллические шрифты \usepackage[utf8]{inputenc} % Кодировка документа \usepackage[english,russian]{babel} % Для поддержки русского языка

Для возможности работы с таблицами мы подключаем следующие пакеты:

\usepackage{longtable} % Таблицы с повторяющимся заголовком \usepackage{multirow} % объединение строк

Пакет longtable дает возможность создавать таблицы, расположенные на нескольких страницах. Все таблицы создаваемые с помощью этого пакета имеют позиционирование «начинать в текущем месте». Так же этот пакет дает возможность работы с шапками и подвалами таблиц.

Следующий набор пакетов необходим для работы с графикой:

\usepackage{graphicx} % Работа с графикой \usepackage{float} % Позиционирование плавающих объектов \usepackage{MnSymbol} % Пакет символов

Пакет graphicx позволяет вставлять изображения в документ. Работает как с растровыми изображениями, так и с векторными (необходимо заранее переконвертировать в формат pdf).

пакет MnSymbol - один из множества пакетов с символами. Подбирать пакет с символами нужно исходя из собственных потребностей. Нам подошел именно этот. Так же мы используем пакет Fontawesome5 для того чтобы не делать скрины элементов интерфейса.

Следующий набор пакетов и настроек предназначен непосредственно для оформления внешнего вида документов

\usepackage{cmap} % поиск по pdf \usepackage{chngcntr} % подчиненные счетчики \usepackage[a4paper, left=30.00mm, right=10.00mm, top=20.00mm, bottom=20.00mm]{geometry} %установка полей \usepackage[singlelinecheck=false]{caption} % настройка подписей \usepackage{setspace} % межстрочный интервал \onehalfspacing % 1,5 интервал \usepackage{soul} % начертание текста \usepackage{indentfirst} % отступ первой строки \setlength{\parindent}{1.25cm} % установка красной строки \usepackage{microtype} % улучшение выравнивания по ширине \usepackage{lscape} % изменение ориентации страницы

Пакет cmap - позволяет осуществлять поиск и копировать текст из скомпилированного pdf файла. Без этого пакета вставить куда-либо скопированный текст будет невозможно, т.к. вставляться будут иероглифы.

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

Пакет caption пригодится для смены формата подписей у изображений и таблиц.

Следующий блок настроек отвечает за оформление внешнего вида ссылок и не только.

\usepackage{hyperref} % Вставка ссылок в документ \usepackage[usenames,dvipsnames,svgnames,table,rgb]{xcolor} % подключение цветовых схем \hypersetup{% настройка внешнего вида ссылок unicode=true, colorlinks=true, linkcolor=black, % внутренние ссылки citecolor=green, % ссылки на библиографию filecolor=magenta, % ссылки на файлы urlcolor=blue % внешние ссылки }

Остановлюсь подробнее на пакете xcolor. Пакет отвечает за подключение цветовых схем, которые можно использовать во всем документе (т.е. не только в настройках ссылок). Цветовых схем в пакете огромное количество. Выбирайте те что нужны.

Настройка отображения списков:

\usepackage{paralist} % имитация списков для выравнивания по красной строке % маркированный \renewcommand{\labelitemi}{--} \renewcommand{\labelitemii}{\textopenbullet} \renewcommand{\labelitemiii}{\textbullet} \renewcommand{\labelitemiv}{$\filledmedsquare$} % нумерованный \renewcommand{\theenumi}{\arabic{enumi}} \counterwithin{enumii}{enumi} \counterwithin{enumiii}{enumii} \counterwithin{enumiv}{enumiii} \renewcommand{\labelenumii}{\theenumii.} \renewcommand{\labelenumiii}{\theenumiii.} \renewcommand{\labelenumiv}{\theenumiv.} %настройка списков \usepackage{enumitem} \setlist{nosep, leftmargin=1.7cm}

Списки в Latex уже имеют определенный внешний вид. Нас этот внешний вид не устраивал, поэтому мы их переопределили, используя команду \renewcommand.

Переопределение подписи рисунков и таблиц:

\RequirePackage{caption} \DeclareCaptionLabelFormat{custom}{Рисунок #2} \DeclareCaptionLabelSeparator{defffis}{ -- } \captionsetup[figure]{justification=centering,labelformat=custom,labelsep=defffis} \captionsetup[table]{format=hang,justification=raggedright,labelsep=defffis}

Переопределение внешнего вида заголовков и оглавления:

\usepackage{titlesec} % переопределение форматов заголовков % section \titleformat{\section} {\filright\LARGE\bfseries}{\thesection}{1em}{} \newcommand{\sectionbreak}{\clearpage} % subsection \titleformat{\subsection} {\filright\normalfont\large\bfseries}{\thesubsection}{1em}{} % subsubsection \titleformat{\subsubsection} {\filright\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{} % paragraph \titleformat{\paragraph}[block] {\filright\normalfont\normalsize\bfseries}{\theparagraph}{1em}{} \counterwithin{paragraph}{subsubsection} % subparagraph \titleformat{\subparagraph}[block] {\filright\normalfont\normalsize\bfseries}{\thesubparagraph}{1em}{} \counterwithin{subparagraph}{paragraph} \setcounter{secnumdepth}{5} \setcounter{tocdepth}{5} % количество уровней в оглавлении

Последние 3 блока настроек я не буду комментировать в этой статье, а посвящу им отдельные посты. И так же в отдельный пост вынесу еще один блок настроек, связанный с нумерацией строк в таблице (здесь я даже не буду приводить код этих настроек).

22
Начать дискуссию