latex →
Шаблон курсовой работы в Latex
Потребовалось оформить реферат в 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}
Пример сгенерированного оглавления:
P.S. Если что-то описал недостаточно подробно спрашивайте уточню.
16.06.2011 14:06+0400