Pull to refresh

Реферат в LaTeX

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

Содержимое реферата


  • Файл управления (придерживаюсь логики, что существует один корневой файл .tex, а его внутренности вынесены в отдельные файлы, которые подгружаются)
  • Титульная страница
  • Страницы с содержимым
  • Содержание


Файл управления


  • В нем содержатся
  • шапка документа
  • переопределение базовых функций и определение новых
  • управление подключениями

Теперь немного подробнее по пунктам:

Шапка(преамбула)

\documentclass[a4paper,12pt]{article}

Обычно реферат печатают на бумаге формата A4 его и указываем. Тут же указываем и общий размер шрифта. С параметром article сложнее. Он по сути отвечает за общее стилистическое оформление структуры документа. Чтобы было понятнее приведу сравнение с book, что заставило сменить тип документа. В книгах обычно есть Глава, Часть и т.д. Если указывать только часть, без указания главы, то в автоматически генерируемом содержании будет вставляться запись вида «0.1 Часть1». Нуль в этой записи очень режет глаз и лишний он тут. Это конечно можно изменить отредактировав формат вывода, но есть способ проще — указать тип article. У него как раз «Часть» это верхний уровень блока текста.
\usepackage[cp1251]{inputenc}

Устанавливаем кодировку, тут думаю все очевидно.
\usepackage[english,russian]{babel}

Указываем какие языки использовать (в нашем случае с переносами).
\usepackage{amssymb,amsfonts,amsmath,cite,enumerate,float,indentfirst}

Подключаем дополнительные пакеты.
\usepackage[dvips]{graphicx} 

В реферате должна быть возможность вставки картинок, поэтому подключаем соответствующее расширение.
\graphicspath{{images/}}

В TeX картинка вставляется достаточно необычно, он сканирует папку указанную в настройках(функция выше) получает имена файлов из неё и при обработке документа подставляет картинки. Стоит отметить, что для нормального отображения картинок в PDF нужно использовать их в разрешении eps.

Так же важный момент, это корректно задать размеры страницы, а именно отступы. Данный кусок кода даю с минимальными комментариями:
\usepackage{geometry} % Меняем поля страницы
\geometry{left=2cm}% левое поле
\geometry{right=1.5cm}% правое поле
\geometry{top=1cm}% верхнее поле
\geometry{bottom=2cm}% нижнее поле


Переопределение базовых функций и определение новых

Я ввел всего одну новую команду, а именно вставку изображения. Вы можете её оформить под себя. У меня она выглядит следующим образом:
\newcommand{\imgh}[3]
{
\begin{figure}[h]
\center{\includegraphics[width=#1]{#2}}
\caption{#3}
\label{ris:#2}
\end{figure}
}


Её вызов — \imgh{45.25mm}{zb}{Пример}
  • Первый параметр — ширина
  • Второй параметр — название файла
  • Третий параметр — название подписи к изображению


Из переопределения удобно указать следующие команды:
\renewcommand{\theenumi}{\arabic{enumi}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumi}{\arabic{enumi}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\theenumii}{.\arabic{enumii}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}% Меняем везде перечисления на цифра.цифра
\renewcommand{\theenumiii}{.\arabic{enumiii}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}% Меняем везде перечисления на цифра.цифра


Управление подключениями

Место сбора всего документа.

\begin{document}
\input{RefProject-Title} % это титульный лист
\newpage
\tableofcontents % это оглавление, которое генерируется автоматически
\end{document}

Подключение конкретного файла осуществляется через input без указания разрешения. Удобно указывать перед каждым документом \newpage, тогда следующий автоматически начнется с новой страницы.

Титульная страница


По сути в ней есть только один важный момент — фамилия преподавателя и студента должны начинаться на одном уровне. Для этого используется следующий код:
\newbox{\lbox}
\savebox{\lbox}{\hbox{Пупкин Иван Иванович}}
\newlength{\maxl}
\setlength{\maxl}{\wd\lbox}
\hfill\parbox{11cm}{
\hspace*{5cm}\hspace*{-5cm}Студент:\hfill\hbox to\maxl{Тест Пользователь\hfill}\\
\hspace*{5cm}\hspace*{-5cm}Преподаватель:\hfill\hbox to\maxl{Пупкин Иван Иванович}\\
\\
\hspace*{5cm}\hspace*{-5cm}Группа:\hfill\hbox to\maxl{NNN}\\
}

указание полного имени в savebox нужно для определения полной(максимальной) длины, если фамилия и имя полностью не помещаются на страницу нужно изменить значение параметра parbox.

Страница с текстом


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

Файл я начинаю с кода
\newpage
\section{Постановка задачи}

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

Полный код:


Страница управления:

\documentclass[a4paper,12pt]{article} %размер бумаги устанавливаем А4, шрифт 12пунктов
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}	%кодировка
\usepackage[english,russian]{babel}%используем русский и английский языки с переносами
\usepackage{amssymb,amsfonts,amsmath,cite,enumerate,float,indentfirst} %пакеты расширений
\usepackage[dvips]{graphicx} %вставка графики
\graphicspath{{images/}}%путь к рисункам

\makeatletter
\renewcommand{\@biblabel}[1]{#1.} % Заменяем библиографию с квадратных скобок на точку:
\makeatother

\usepackage{geometry} % Меняем поля страницы
\geometry{left=2cm}% левое поле
\geometry{right=1.5cm}% правое поле
\geometry{top=1cm}% верхнее поле
\geometry{bottom=2cm}% нижнее поле

\renewcommand{\theenumi}{\arabic{enumi}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumi}{\arabic{enumi}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\theenumii}{.\arabic{enumii}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumii}{\arabic{enumi}.\arabic{enumii}.}% Меняем везде перечисления на цифра.цифра
\renewcommand{\theenumiii}{.\arabic{enumiii}}% Меняем везде перечисления на цифра.цифра
\renewcommand{\labelenumiii}{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}% Меняем везде перечисления на цифра.цифра

\newcommand{\imgh}[3]{\begin{figure}[h]\center{\includegraphics[width=#1]{#2}}\caption{#3}\label{ris:#2}\end{figure}}

\begin{document}
\input{RefProject-Title}% это титульный лист
\input{RefProject-Description}% это описание
\input{RefProject-Algoritm}% это описание алгоритмов
\input{RefProject-Finish}% заключение
\input{RefProject-App}% приложение
\newpage
\tableofcontents % это оглавление, которое генерируется автоматически
\end{document}


Титульная страница

\begin{titlepage}
\newpage

\begin{center}
НАЗВАНИЕ УЧЕБНОГО ЗАВЕДЕНИЯ \\
\end{center}

\vspace{8em}

\begin{center}
\Large Название кафедры \\ 
\end{center}

\vspace{2em}

\begin{center}
\textsc{\textbf{Название темы работы \linebreak длинное очень, набранное в \LaTeX{}}}
\end{center}

\vspace{6em}



\newbox{\lbox}
\savebox{\lbox}{\hbox{Пупкин Иван Иванович}}
\newlength{\maxl}
\setlength{\maxl}{\wd\lbox}
\hfill\parbox{11cm}{
\hspace*{5cm}\hspace*{-5cm}Студент:\hfill\hbox to\maxl{Тест Пользователь\hfill}\\
\hspace*{5cm}\hspace*{-5cm}Преподаватель:\hfill\hbox to\maxl{Пупкин Иван Иванович}\\
\\
\hspace*{5cm}\hspace*{-5cm}Группа:\hfill\hbox to\maxl{NNN}\\
}


\vspace{\fill}

\begin{center}
Санкт-Петербург \\2011
\end{center}

\end{titlepage}


Пример сгенерированного оглавления:

image


P.S. Если что-то описал недостаточно подробно спрашивайте уточню.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.