суббота, 7 мая 2011 г.

Шаблон документа LaTeX для статьи по прикладной математике

Выкладываю преамбулу документа, которую использовал при наборе моей дипломной работы.


% размер бумаги и кегль шрифта, класс документа --- ``отчёт''
\documentclass[a4paper,14pt]{extreport} 
  % используем cp1251 ТОЛЬКО потому, что bibtex 
  %   умеет сортировать только ASCII-строки, увы
\usepackage[cp1251]{inputenc} 
  % ещё можно T1, но пусть будет T2A
\usepackage[T2A]{fontenc} 
  % переносы и типографские правила для русского 
  %   _затем_ английского языков
\usepackage[english,russian]{babel} 
  % ядро для научной статьи
\usepackage{amssymb,amsfonts,amsmath,mathtext}

Пакеты amssymb, amsfonts, amsmath и mathtext нужны для того, чтобы в полной мере пользоваться возможностями набора формул в LaTeX. Это, соответственно, поддержка специальных символов, цивильные математические шрифты, новые environment'ы для удобства набора формул и возможность включать в формулы произвольный текст.

% цитирование и нумерованные списки 
\usepackage{cite,enumerate}

Если честно, я не имею ни малейшего представления, почему для поддержки таких элементарных вещей надо подключать дополнительный пакет. Тем более, если TeX изначально разрабатывался как средство typesetting'а для книг.

% красная строка
\usepackage{indentfirst} 
  % подписи к рисункам  
\usepackage[labelsep=period]{caption}
  % диаграммы и черчение
\usepackage{pstricks,pst-plot,pb-diagram} 
  % оформление листингов программ
\usepackage{listings}
  % поддержка .eps-графики
\usepackage{graphicx} 
\graphicspath{{images/}} %путь к рисункам

Заканчиваем вставлять вещи «из коробки». Теперь начинаем кастомизацию.

% меняем поля
\usepackage{geometry}
\geometry{left=3cm}
\geometry{right=2cm}
\geometry{top=2cm}
\geometry{bottom=2cm}

 % изменяем оформление заголовков
\usepackage{titlesec}
% Формат записи: \titleformat{command}[shape]{format}{label}{sep}{before}[after]
\titleformat{\chapter}[block]{\raggedright\huge\bfseries}{\chaptertitlename\ \thechapter.}{0.5em}{}
\titleformat{\section} {\raggedright\Large\bfseries}{\thesection}{1em}{}
\titleformat{\subsection} {\raggedright\large\bfseries}{\thesubsection}{1em}{}
\titleformat{\subsubsection} {\raggedright\normalsize\bfseries}{\thesubsubsection}{1em}{}
% Формат записи: \titlespacing*{command}{left}{beforesep}{aftersep}[right]
\titlespacing*{\chapter} {0pt}{0pt}{2em}
\titlespacing*{\section} {0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}
\titlespacing*{\subsection} {0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

  % формулы нумеруются внутри каждой главы
\numberwithin{equation}{chapter} 

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

  % Меняем везде перечисления на цифра.цифра
\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}.}

На всякий случай пара сниппетов для математиков

% Операции извлечения мнимой части и действительной части 
%   согласно русской типографской традиции (иначе будут набраны готическим шрифтом)
\renewcommand{\Im}{\mathop{\text{Im}}}
\renewcommand{\Re}{\mathop{\text{Re}}}

% Операторы дивергенции и градиента
\DeclareMathOperator{\Divergence}{div}
\DeclareMathOperator{\Gradient}{grad}

Раздел «Содержание» вставляем так:

% это оглавление, которое генерируется автоматически
\renewcommand{\contentsname}{Содержание}
\tableofcontents 
\newpage


Дальше работа разбивается на кусочки, каждый из которых вставляется командой \include{}:

% Математический аппарат
\include{mathematics}

% Программная реализация
\include{programming}

% Анализ результатов
\include{results}


Список литературы вставляем следующим образом, при условии, что библиография у нас в BibTex в файле bibliography.bib:

% Список использованной литературы 
\renewcommand{\bibname}{Список литературы} % для \documentclass{book} и ниже, ``Литература''
\renewcommand{\refname}{Список литературы} % для \documentclass{article} и ниже, ``Источники''
\addcontentsline{toc}{chapter}{Список литературы}
\bibliographystyle{gost780s}
\bibliography{bibliography}{}


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