2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3, 4, 5 ... 8  След.
 
 Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 18:35 
Уважаемые коллеги,

(слова в заголовке повторяются из соображений SEO)

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

Есть в интернете серия статей на этот счет - от Сурового Челябинского Программиста и в Записках Дебианщика, но уж какие-то они сумбурные и суровые. Мне не хочется повторять их труд, поэтому скажем так - с введением в LaTeX знакомимся по соответствующей литературе, а готовый шаблон для адаптации под себя можно будет взять тут.

Итак, код комментирован, поэтому всё итак должно быть более ли менее понятно. Специфика:

  • Базовый класс - extarticle (аналог article)
  • Русский язык, русские символы в формулах, кодировка - UTF-8, мат. шрифты - AMS
  • Базовый размер шрифта - 14pt
  • Нумерация страниц (кроме первой) - правый верхний угол
  • Поля - 3 см - левое, 1 см - правое, верхнее и нижнее - 1 см
  • Красивые ссылки на литературу + стиль gost780u

Шаблон главного документа диплома

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
% $Id: diploma.tex 90 2009-06-11 12:51:46Z zyv $

% The extsizes classes and class options provide support for sizes eight, nine,
% ten, eleven, twelve, fourteen, seventeen and twenty points.
% http://www.ctan.org/tex-archive/macros/ ... /extsizes/
\documentclass[a4paper,14pt]{extarticle}

% PDF search & cut'n'paste
\usepackage{cmap}

% Better sans-serif fonts
\usepackage{pscyr}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\sfdefault}{ftx}
\renewcommand{\ttdefault}{cmtt}

% Cyrillic support
\usepackage{mathtext}
\usepackage[T2A]{fontenc}
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}
\usepackage[utf8]{inputenc}

% Also be sure to add
%
% english hyphen
% ruseng ruenhyph
% =russian
%
% to ~/.texlive2008/texmf-var/tex/generic/config/language.dat

\usepackage[english,russian]{babel}

% AMS font faces
\usepackage{amsmath, amsfonts, amssymb}

% Support for the upright and bold greek letters
\usepackage{bm}
\usepackage[Symbolsmallscale]{upgreek}
\makeatletter
        \newcommand{\bfgreek}[1]{\bm{\@nameuse{up#1}}}
\makeatother

% Detect whether PDFLaTeX is in use
\usepackage{ifpdf}

% Graphics
\ifpdf
        \usepackage[pdftex]{graphicx}
\else
        \usepackage{graphicx}
\fi

\graphicspath{{images/}}

% Indent the first paragraph as well
\usepackage{indentfirst}

% According to GOST, sections should be called chapters in diploma
\usepackage{titlesec}

\setcounter{tocdepth}{2}

\titleformat{\section}[block]{\bfseries\large\sffamily\raggedright}
        {Глава~\Roman{section}.}{1ex}{}
\titleformat{\subsection}[block]{\bfseries\normalsize\sffamily\raggedright}
        {\arabic{section}.\arabic{subsection}.}{1ex}{}
\titleformat{\subsubsection}[block]{\normalsize\sffamily\raggedright}
        {\arabic{section}.\arabic{subsection}.\arabic{subsubsection}.}{1ex}{}

\titlespacing*{\section}      {0pt}{3.50ex plus 1ex minus .2ex}{2.3ex plus .2ex}
\titlespacing*{\subsection}   {0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}
\titlespacing*{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

\usepackage[titles]{tocloft}

\renewcommand{\cftsecpresnum}{Глава~}
\renewcommand{\cftsecleader}{\bfseries\cftdotfill{\cftdotsep}}
\renewcommand{\cftsecaftersnum}{.}
\renewcommand{\cftsubsecaftersnum}{.}

\newlength{\zyvseclen}
\settowidth{\zyvseclen}{\bfseries\cftsecpresnum\cftsecaftersnum}
\addtolength{\zyvseclen}{2mm}
\addtolength{\cftsecnumwidth}{\zyvseclen}

\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
\renewcommand{\thesubsubsection}
        {\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}

% Page numbering at the right topmost part of the page
\pagestyle{myheadings}

% Provides support for setting the spacing between lines in a document. Package
% options include singlespacing, onehalfspacing, and doublespacing.
% http://www.ctan.org/tex-archive/macros/ ... /setspace/
\usepackage{setspace}

% Alternative geometry
\usepackage[top=2cm, bottom=2cm, left=3cm, right=1cm]{geometry}

% Hyperlinks
\ifpdf
        \usepackage[pdftex]{hyperref}
\else
        \usepackage{hyperref}
\fi

\hypersetup{
        unicode=true,
        pdftitle={
        },
        pdfauthor={},
        pdfkeywords={
        },
        colorlinks,
        citecolor=black,
        filecolor=black,
        linkcolor=black,
        urlcolor=blue
}

% Fix links to floats
\usepackage[all]{hypcap}

% Nice citations [1,2,3,4] -> [1-4]
\usepackage[numbers,sort&compress]{natbib}

% [1] -> 1. in the bibliography
\makeatletter
\renewcommand\@biblabel[1]{#1.}
\makeatother

% Russian-styled figure and table captions
\usepackage[labelsep=period]{caption}

% Here we define the relationships for the counters: normaly we should
% reset the eq, figure & table counters every chapter
\makeatletter
\@addtoreset{equation}{section} % Equation counter
\@addtoreset{figure}{section} % Figure counter
\@addtoreset{table}{section} % Table counter
\makeatother

\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
\renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}
\renewcommand{\thetable}{\arabic{section}.\arabic{table}}

% Keeps floats `in their place', preventing them from floating past a
% "\FloatBarrier" command into another section.  The floats should not move
% past every "\section".
\usepackage[section]{placeins}

% Compressed lists: compactitem etc.
\usepackage{paralist}

% Useful for individually placing figures on a separate page with
% \afterpage{\clearpage \begin{figure}[p] ... }
\usepackage{afterpage}

% Allow landscape pages for graphics, call like:
%
%       \afterpage{\clearpage
%       \begin{landscape}
%       \begin{figure}[p]
%       ...
%       \end{figure}
%       \end{landscape}
%       }
\ifpdf
        \usepackage{pdflscape}
\else
        \usepackage{lscape}
\fi

% This declaration makes TeX less fussy about line breaking. This can
% prevent overfull boxes, but may leave too much space between words.
% As this really isn't a fine art typography, we'll turn it on, so
% we won't have paragraphs which spans on the margins...
\sloppy

\begin{document}

% ------------------------------------------------------------------------------
% Обложка
\include{diploma-title}

% ------------------------------------------------------------------------------
% Оглавление
\tableofcontents

% ------------------------------------------------------------------------------
% Текст работы
\begin{onehalfspacing}
        \include{diploma-intro}
        \include{diploma-ch01}
        \include{diploma-ch02}
        \include{diploma-ch03}
        \include{diploma-conclusion}
        \include{diploma-safety}
\end{onehalfspacing}

% ------------------------------------------------------------------------------
% Список литературы
\phantomsection
\renewcommand{\refname}{Список литературы}
\addcontentsline{toc}{section}{Список литературы}

\bibliographystyle{gost780u}
\bibliography{biblio/diploma}

\end{document}


Шаблон титульной страницы

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
% $Id: diploma-title.tex 52 2009-06-04 09:46:14Z zyv $

\thispagestyle{empty}

\begin{center}

        \textsc{Федеральное агентство по образованию}\\[0.2cm]

        \textsc{Государственное образовательное учреждение высшего
профессионального образования \\ <<Иракский государственный университет
им.~Д.В.~Буша>>}\\[0.7cm]

        Арбузолитейный факультет\\[0.5cm]

        Специальность <<Фундаментальный исламизм и физическая
софистика>>\\[0.7cm]

        Кафедра общей демократии\\[0.7cm]

        \textsc{Дипломная работа}\\[0.7cm]

        \begin{large}
                \textsc{\textbf{Восстановление архитектуры разрушенных
городов по многобахчевым дынным полям методом всеобщего голосования}}
        \end{large}

\end{center}

\vspace{0.7cm}

\textit{<<К защите допущен>>:}

\begin{center}
        \begin{tabular}{ll}
                Зав. кафедрой общей демократии, \\
                профессор, д.ф.-м.н. &
                        \begin{tabular}{ll}
                                \underline{\phantom{Четкая подпись}} &
                                Иванов И.И.
                        \end{tabular}
        \\[0.7cm]
                Научный руководитель, \\
                профессор, в.н.с. ЁКЛ ЭМЭН,\\
                д.ф.-м.н. &
                        \begin{tabular}{ll}
                                \underline{\phantom{Четкая подпись}} &
                                Петров П.П.
                        \end{tabular}
        \\[0.7cm]
                Рецензент, \\
                зав. лаб. ЖЗ ИКЛ,\\
                д.ф.-м.н. &
                        \begin{tabular}{ll}
                                \underline{\phantom{Четкая подпись}} &
                                Сидоров С.С.
                        \end{tabular}
        \\[0.7cm]
                Консультант по технике\\
                безопасности, ассистент\\
                каф. софистики &
                        \begin{tabular}{ll}
                                \underline{\phantom{Четкая подпись}} &
                                Рейсфейдер Р.Р.
                        \end{tabular}
        \\[0.7cm]
        Дипломник &
                        \begin{tabular}{ll}
                                \underline{\phantom{Четкая подпись}} &
                                Ватманн В.В.
                        \end{tabular}
        \end{tabular}

        \vspace{1.5cm}

        г. Анкара, 2009

\end{center}
 

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 20:52 
Аватара пользователя
Заголовки без засечек:
Используется синтаксис LaTeX
\makeatletter
\renewcommand{\section}{\@startsection{section}{1}%
{0pt}{3.25ex plus 1ex minus .2ex}%
{1.5ex plus .2ex}{\bfseries\large\sffamily}}

\renewcommand{\subsection}{\@startsection{subsection}{2}%
{0pt}{3.25ex plus 1ex minus .2ex}%
{1.5ex plus .2ex}{\bfseries\let\sffamily}}
\makeatother


P.S. Из чистого любопытства: это какой такой ГОСТ, чтобы главы начинались со слова "Глава" в дипломах? Дипломы по каким специальностям предполагается так оформлять?

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 21:10 
А теперь, как говорится, внимание, первый вопрос.

Надо сделать так, как я понимаю, из выданных мне шаблонов, чтобы, во-первых, главы назывались "Глава N. Blah-blah-blah", во-вторых, так и выводились в ToC, в-третьих, показывалось только два уровня вложенности заголовков (это я сделал уже), в-четвертых, после глав чтобы точечки тоже были до номера страницы, в-пятых, чтобы подразделы главы не назывались "Глава 1.2. Foo-foo-foo".

Нашел пакеты titlesec & titletoc, но не могу понять куда лошадь запрягать. Как не вызываю разные команды, ничего не компилируется. Помогите, пожалуйста.

Спасибо большое за ответ!

Хммм, вы знаете, я в это время искал способ сделать "главы". Смастерил вот что:

Используется синтаксис LaTeX
\renewcommand{\thesection}{\Roman{section}}
\titlelabel{Глава \thetitle. }
\renewcommand{\numberline}[1]{Глава #1. }


Плохо в этом коде то, что в оглавлении по какой-то причине у суб-секций теперь появляется вместо римских цифр типа 1.2., 1.3. и т.п. "Глава I.1", "Глава I.2" и т.д., что очень неприятно.

А ваш код, во-первых (у меня), работает только на section, но не на subsection, причем шрифт какой-то страшненький, если это CMR Sans-Serif, то я надеялся, что он не так катастрофичен. Может быть есть что-то более Helvetica-подобное? Во-вторых, он не отражается на оглавлении и плюс к тому выдаёт ошибку при компилировании с моим кодом для подстановки "Глава ".

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 21:17 
Аватара пользователя
Поправил предыдущее сообщение.
Helvetica-подобного у меня вряд ли найдется - работаю под виндой. Есть пакет pscyr, но я с ним не работал.

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 21:41 
yurik78 в сообщении #216780 писал(а):
P.S. Из чистого любопытства: это какой такой ГОСТ, чтобы главы начинались со слова "Глава" в дипломах? Дипломы по каким специальностям предполагается так оформлять?


Ссылку на номер ГОСТА не скажу, т.к. мне самому его не сказали, но специальность - без проблем: "Фундаментальная радиофизика и физическая электроника", радиофизический факультет госуниверситета города Н-ска. Вообще информации, конечно, кот наплакал, мне сказали, что мол, вот такие-то требования (я их выше озвучил) и выдали несколько PDF-ок с готовыми дипломами, которые им якобы удовлетворяют. Так что вот мучаюсь, что с этими главами делать...

А код ваш, тем не менее, не компилируется, теперь ни совместно с моим, ни без него, к сожалению, вот что выдает, когда сам по себе:

./diploma-ch01.tex:5:Extra }, or forgotten \endgroup. ...�ированные культуры (MEA)}

Когда с моим, то вылетает на первом же \section.

./diploma-ch01.tex:3:Undefined control sequence. ...�йрональной активности}

А откуда вы взяли эти числа, если не секрет, из article? Может быть есть стандартный пакет как-то для переключений... В частности в titlesec есть команда

\titleformat{ command }[ shape ]{ format }{ label }{ sep }{ before }[ after ]

Только я никак не пойму, как ей пользоваться.

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение24.05.2009, 23:01 
Аватара пользователя
Числа примерно соответствуют отступам (сверху и снизу) классу article.

./diploma-ch01.tex:5:Extra }, or forgotten \endgroup. ...�ированные культуры (MEA)}

По-моему где-то синтаксическая ошибка. Все должно компилироваться, проверено много раз. Давайте преамбулу документа посмотрим, может что-нибудь найдем.

Попробуйте так:
Используется синтаксис LaTeX
\titleformat{\section}{\large\sffamily}{\thesection}{1ex}{}
\titlespacing{\section}{0\parindent}%
    {3.5ex plus .1ex minus .2ex}{2.3ex minus .1ex}{}

\titleformat{\subsection}{\sffamily}{\thesubsection}{1ex}{}
\titlespacing{\subsection}{0\parindent}%
    {3.5ex plus .1ex minus .2ex}{1.5ex minus .1ex}
 

Отточия в содержании после главы:
Используется синтаксис LaTeX
\dottedcontents{section}[1.5em]{}{2.3em}{1pc}

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 01:27 
yurik78
Спасибо большое на помощь! Вы навели меня на правильно направление работ. Ваш код у меня не компилировался из-за команды \let. Не знаю почему. Но новые варианты через titlesec работают отлично.

Посмотрите, пожалуйста, мою новую преамбулу. Во-первых, я взял фонт Букварь из PSCyr для санс-серифов, потому, что CMR страшен как моя смерть, лучше уж повеситься. Во-вторых, я переопределил section, subsection и subsubsection как от нас требуют (а для subsubsection в каком файле мне найти правильный spacing?).

Осталась одна проблема - ToC. Ваша команда для точек действительно ставит точки, но, во-первых, убирает жирный, который там был, а, во-вторых, что самое неприятное, портит главы. Хотелось бы найти способ поставить точки, и, в одно и то же время убрать "Глава" из подсекций + сделать \thesection для подсекций не римским, а назад арабским. Что для этого надо сделать с \numberline понять не могу...

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 03:09 
Аватара пользователя
ZYV, пожалуйста.

Исправьте определение section:
Код:
\renewcommand{\thesection}{\arabic{section}}
.........
\titleformat{\section}
   {\bfseries\large\sffamily}
   {Глава~\arabic{section}.~}{1ex}{}

arabic - это арабские цифры, Roman - большие римские.

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 08:32 
Аватара пользователя
ZYV в сообщении #216726 писал(а):
Код:
\documentclass[a4paper,14pt]{extarticle}

В случае, если надо использовать ГОСТ'овские рамки, см. eskdx.
ZYV в сообщении #216726 писал(а):
Код:
% Список литературы
\phantomsection
\addcontentsline{toc}{section}{Список литературы}

А
Код:
\renewcommand{\refname}{Список литературы}

задействовать не проще?

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 10:26 
Аватара пользователя
Такой вопрос, а как можно сделать так, чтобы элементы списка литературы не заключались в квадратные скобки? А то у меня сейчас он выглядит как:
[1] Книга1
[2] Книга2.
А хотелось, чтобы было так:
1. Книга1
2. Книга2.
Второй сопуствующий вопрос, как переименовать "Список литературы"? Чтобы вместо него выводился список использованных источников?

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 11:40 
Аватара пользователя
Cat
Код:
\makeatletter
\renewcommand{\@biblabel}[1]{#1.\hfil}
\makeatother
\addto\captionsrussian{\def\refname{Список использованных источников}}

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 11:46 
.Serj. в сообщении #216929 писал(а):
А
Код:
\renewcommand{\refname}{Список литературы}
задействовать не проще?


К сожалению, не проще. При этом, он не появляется в оглавлении, а если использовать только вашу команду + \addcontentsline - получаем проблемы со ссылкой на него из ToC - попадает на предыдущую главу.

Cat
Возьмите исправленный шаблон из первого поста, хотя yurik78 меня уже опередил. Замените там "Список литературы" на то, что вам нужно.

P.S. Таки тоже как я прогибаетесь под изменчивый ГОСТ, ха-ха! :) (шутка)

yurik78 в сообщении #216906 писал(а):
ZYV, пожалуйста.


Не-не-не, то ли я плохо объяснил, что мне нужно, то ли вы неправильно поняли. Давайте отталкиваться, от того, что есть сейчас: заголовки в самом тексте самым замечательным образом отформатированы как надо. Но надо исправить оформление ToC. А именно:

  • Добавить перед \sections "Глава" и номер сделать \Roman, для остальных (\subsection) не менять
  • Поставить точки после цифр (1.1., 2.3., Глава I. и т.п.)
  • Поставить отточие после \sections
  • Жирность для \section оставить как есть

Думаю тогда всё, больше ничего не нужно будет :) Я так понимаю, надо переопределить \dottedcontents для \section и \subsection, но не понимаю как :(

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 12:50 
Аватара пользователя
Спасибо, всё заработало. А как еще настроить подписи к рисункам, чтобы было не Рис.N:, а Рис.N?

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 13:03 
Cat
Попробуйте добавить последней строчкой в мою преамбулу \usepackage{caption} - если сработает, поправлю первый пост. А вас ответ относительно ToC не интересует также как и меня? Может быть вместе чего-нибудь придумаем.

 
 
 
 Re: Оформление дипломной работы (диплома) в LaTeX
Сообщение25.05.2009, 14:27 
Аватара пользователя
Пока сдаюсь.
Меня все чаще посещают мысли, что было бы проще переделать класс, в котором есть chapter.

 
 
 [ Сообщений: 118 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group