Яндекс.Метрика

    latex

    Шаблон курсовой работы в 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. Если что-то описал недостаточно подробно спрашивайте уточню.