Диплом

Решил попробовать написать диплом с помощью LaTeX. Здесь будут полезные заметки о том, как это было.

Исходные ссылки

Бложик сурового челябинского программиста, рассказывающий о том как писать дипом по требованиям ЕСКД

Бложик его друга, рассказывающий о том же самом

набор ссылок о LaTeX вообще от Балдина

прелестный конспект по LaTeX

Пашин диплом, Ирин диплом

Начало

Работаю в Убунте. Сначала надо поставить все, что может быть нужно Латеху. Использовать будем TeXLive

sudo apt-get install texlive-full kile

это выкачает нам с гигабайт пакетов, которых все равно будет недостаточно1) вообще говоря, среди этих пакетов будет поддержка арабского и прочая лабуда, а потому пару гигов ставить вовсе необязательно. можно установить telive-basic и недостающие пакеты по ходу :)

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

Установка пакетов

Пусть нам нужен поставить какой-нибудь экзотический пакет. На примере нафиг не нужного пакета ЕСКД мы попробуем это сделать.

качаем ЕСКД-пакет и пример диплома. Открываем пример диплома в Kile и пытаемся скомпилять. Не находится пакет eskdz. Оно и не мудрено. Читаем мануалы на http://lostclus.linux.kiev.ua/%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%8B/eskdx официальной странице пакета.

начинаем пытаться ставить пакет ЕСКД. Мануала типа “отключи голову” нету, а потому надо понять, как вообще в латехе ставить пакеты.

Последовательность действий:

скачать нужный пакет, распаковать его в папку /usr/share/texmf/tex/latex (в других дистрибах поищите texmf, например, командой locate)

вызвать команду texhashe

либо же нужно распаковать содержимое пакета в ту же папку, где вы работаете. более подробно

Сборка в Kile

при сборке в Kile ничего собираться не будет по команде QuickPreview. Причина этому такова: kile пытается собрать текст сразу в pdf. При этом возникают странные ошибки типа missing $ in usepackage statement. Нужно изменить порядок сборки: сначала компилять исходники в dvi (для этого натравливать на %target команду latex), затем переводить это в pdf (dvi2pdf), затем отображать (будь наготове: по умолчанию Kile пытается вызвать программу Okular). Настройки задаются в Preferences –> Build.

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

Своя LaTeX-шапка по стандарту В.В.Яновского

Отступы, полуторный интервал и прочие фетиши

тута много http://u995.livejournal.com/5765.html

Библиография

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

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

KBibTeX+UTF=отстой и плохо работает. Если хочется редактировать файлики базы библиографии. используем JabRef. Сохраним базу под именем biblio

подключение базы выглядит так: \bibliography{biblio}. Перед этим в шапке стоит выбрать стиль, которым мы оформляем библиографию: \bibliographystyle{utf8gost71s}.

Отныне всё, о чем нам надо заботиться - это вставлять в текст ссылочки командой \cite{id-шник}. Id-шник мы наполняли в KBibTeX-е.

вот статьи, в которых процесс расписан подробнее:

простая статья-1 простая статья-2

большая подробная статья

файл с гостовой библиографией нашелся по ссылке с ЛОРа

как создавать свои шаблоны оформления библиографии

Нумерация в списках

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

1. бла
1.1. блабла
1.1.1. Блаааааааааааааа
1.2. буэээээ
2. ужоснах

мы будем использоваться стандартный enumerate-список с переопределенными счетчиками. По умолчанию, enumerate выдаст вот такое:

1. бла
а блабла
i Блаааааааааааааа
b буэээээ
2. ужоснах

Добавим в начало документа заклинание

%хороший нумерованный список enumerate
% переопределить нумерацию первого уровня: цифра и точка
\renewcommand\labelenumi{\arabic{enumi}.}
% переопределить нумерацию второго уровня: нумерация первого + цифра и точка
\renewcommand\labelenumii{\theenumi.\arabic{enumii}.}
% третьего...
\renewcommand\labelenumiii{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}

Нумерация в секциях и главах

по Евангелию от Януса введение не нумеруется. Тогда вместо \chapter{Введение} пишем \chapter*{Введение}. Если введение разделено на секции и мы не хотим, чтобы они нумеровались 0.1 Постановка проблемы, пользуем \section*{Блабла}

приложения нумеруются отдельно. Вот нам мануал как это сделать LaTeX & Заголовки приложений

Формулы

Я использую Kile, в котором WYSIWYG'a нету. Для формул, думаю, стоит пользоваться специальным редактором. Превосходный онлайн-редактор можно найти тут. Из офлайновых у нас есть KFormula - приятный вусивуг для каждодневного юзанья. В Маздае имеется просто шикарная программа MathType, которая умеет экпортировать в LaTeX.

для освоения синтаксиса с головой хватило визуального редактора и этого мануала

При помощи \label и \ref вы можете в тексте ссылаться на уравнение.

\begin{equation}
\label{eq:eps}
\epsilon > 0
\end{equation}
Из (\ref{eq:eps})
выводим что все плохо

Таблички

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

неплохое введение

офигенное введение

введение в виде презенташки

Мои грабли и их решения

Широкие таблицы

если при создании таблицы вы юзаете tabular, и она залезает за правый край - выбирайте tabularx!

вот код

\begin{tabularx}{\textwidth}{ |X|X|X|X| }
\hline
Название метода & Цель & Объект анализа & Критерий оценивания \\
\hline
Основанный на данных & hhhh & hhhhhh & hhhhhhh \\
\hline
\end{tabularx}

решение пришло отсюда

Иногда при юзаньи tabularx все едет и налезает друг на друга. Тогда лучше юзать обычные команды таблиц с выравниванием в столбцах не c и не X, Fа задавая его явно: p[25pt]. Что такое pt и как его переводить в сантиметры - я не знаю. Но методом тыка все выйдет хорошо.

Оглавление

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

\setcounter{secnumdepth}{4} % глубина нумеруемых разделов

\setcounter{tocdepth}{1} % глубина оглавления

\tableofcontents - собственно вставка оглавления

Плавающие таблицы

\tabular удобно помещать в плавающую \table - тогда на табличку будет удобнее ссылаться, её можно будет органично подписывать и пр.

потой мы создаем таблички, которые довольно длинны. LaTeX в таких случаях бывает не очень адекватным, и таблица “уплывает” очень далеко от текста, около которого она объявлена. Тогда у нас два выхода: разорвать таблицу (для чего надо воспользоваться командой longtable) либо же, перенести эту таблицу на следующую страницу. Я боюсь \longtable, поэтому воспользовался вторым способом.

\usepackage{float} % важный пункт! Иначе LaTeX даже и не ругнется, а таблица продолжит плавать не пойми где

В основе определения стоимости разработки лежит перечень проведенных работ и трудоемкость их выполнения, показанные в Таблице ~\ref{table_labour_intensity}.
\newpage
\begin{table}[H] % h - означает мягкое "here, please". При включении пакета float мы можем использовать H, что означает "HERE"
\centering

решение пришло отсюда ====Таблички, расположенные на нескольних страницах]]

не юзайте subertabular!

вот способ. Юзаем longtable

\begin{longtable}{|p{3cm}|p{4cm}|p{6cm}|p{3cm}|}
\hline
Название & Цель & Описание & Стадия применения\\
\endfirsthead
\hline
OntoMetric
&
выбор онтологии, отвечающей заданным критериям, из набора имеющихся

Картинки

Так как компиляем мы в dvi, вставлять можно картинки только в формате eps. Для убунты нашлась команда convert:

convert Pasta.jpg Pasta.eps . Для маздая слышал о программе jpeg2ps.

вставка требует \usepackage{graphicx}

вставляем командой \includegraphics{файлик} . Выравниваем, помещая картинку в блок \begin{center} \end{center}. Ресайзим, помещая в блок \scalebox{величина}{ }

Презенташка

презентации классно создавать с помощью пакета beamer. Введение вот тут первые шаги

хороший пример динамические менюшки

Перевод ошибок LaTeX