diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/disser/disser.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/disser/disser.dtx | 575 |
1 files changed, 575 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/disser/disser.dtx b/Master/texmf-dist/source/latex/disser/disser.dtx new file mode 100644 index 00000000000..2e6adff6c7b --- /dev/null +++ b/Master/texmf-dist/source/latex/disser/disser.dtx @@ -0,0 +1,575 @@ +%\iffalse +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% disser -- LaTeX document class for dissertations. +%% +%% Copyright (c) 2004-2006 Stanislav Kruchinin +%% +%% It may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%<driver>\ProvidesFile{disser.dtx} +%<*driver> +\documentclass{ltxdoc} +\usepackage[a4paper, includehead, includefoot, mag=1000, + left=4cm, right=1.5cm, top=1cm, bottom=2cm]{geometry} +\usepackage[T2A]{fontenc} +\usepackage[cp1251]{inputenc} +\usepackage[english,russian]{babel} + +\usepackage[unicode, + pdftitle = {Documentation for the disser package}, + pdfauthor = {Stanislav Kruchinin}, + pdfsubject = {disser}, + pdfstartview = {FitH}, + pdfborder = {0 0 0}, + bookmarksopen = true, + bookmarksnumbered = true, + bookmarksopenlevel = 2 + ]{hyperref} +\usepackage{cmap} + +\let\package\textsf +\IfFileExists{pscyr.sty}{% + \usepackage{pscyr} + \renewcommand\ttdefault{cmtt} + \renewcommand\rmdefault{ftm} +}{} +\usepackage{tabularx,doc} +\IfFileExists{url.sty}{\RequirePackage{url}}{\newcommand\url{\texttt}} + +\hypersetup{ + colorlinks = true, + colorlinks = true, + linkcolor = black, citecolor=blue, + filecolor = blue, menucolor=blue, + pagecolor = blue, urlcolor=blue +} + +%\OnlyDescription % uncomment to suppress code line listing +\RecordChanges % uncomment for a change history +%\CodelineIndex\EnableCrossrefs % uncomment for command index + +\MakeShortVerb{\|} +\parindent=0pt + +\begin{document} +\sloppy + \DocInput{disser.dtx} + \DocInput{counters.dtx} + \DocInput{part.dtx} + \DocInput{chapter.dtx} + \DocInput{sections.dtx} + \DocInput{lists.dtx} + \DocInput{floats.dtx} + \DocInput{env.dtx} + \DocInput{page.dtx} + \DocInput{titlepage.dtx} + \DocInput{bachelor.dtx} + \DocInput{master.dtx} + \DocInput{candidate.dtx} + \DocInput{doctor.dtx} + \DocInput{autoref.dtx} + \DocInput{toc.dtx} + \DocInput{custom.dtx} + \DocInput{gost732.dtx} + \PrintChanges +\end{document} +%</driver> +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \def\fileversion{1.0.2} +% +% \title{|disser| "--- класс \LaTeX{} для оформления диссертаций} +% \author{Станислав Кручинин\\[6pt] +% \normalsize E-mail: +% \href{mailto:stas@crypt.org.ru}{\texttt{stas@crypt.org.ru}}} +% \date{Версия \fileversion} +% +% \maketitle +% +% \begin{abstract}\noindent +% Данный документ содержит описание исходных текстов. +% Инструкции по установке смотрите в файлах |README| и |README.ru|. +% \end{abstract} +% +% \tableofcontents +% +% \section{Введение} +% +% Класс |disser| был создан в результате объединения множества дополнений и +% исправлений для |extreport|, написанных автором при оформлении +% бакалаврской и магистерской работ по физике. Основной целью являлось +% устранение одного из главных недостатков стандартных классов --- +% отсутствия возможности прямого изменения формата элементов титульного +% листа, заголовков и записей в автоматически генерируемых списках +% (содержание, список иллюстраций, список таблиц). Предполагается, что +% пользователи будут активно изменять текст в соответствии со своими +% требованиями, поэтому он разбит на несколько файлов и снабжен подробными +% комментариями. +% +% \section{Исходный текст} +% +% \begin{macrocode} + +%<disser>\NeedsTeXFormat{LaTeX2e} +%<disser>\ProvidesClass{disser}[2006/09/06 Document class for dissertations.] +%<disser>\ProvidesPackage{disser} + +%<bachelor>\ProvidesFile{bachelor.rtx} +%<master>\ProvidesFile{master.rtx} +%<candidate>\ProvidesFile{candidate.rtx} +%<doctor>\ProvidesFile{doctor.rtx} +%<autoref>\ProvidesFile{autoref.rtx} +%<titledefs>\ProvidesFile{titledefs.rtx} + +%<*disser> +% \end{macrocode} +% Расширение включаемых файлов. +% \begin{macrocode} +\def\substyle@ext{.rtx} +% \end{macrocode} +% Определение условий. +% \begin{itemize} +% \item |true|, если включена опция, оставляющая одну колонку при +% двухколонном наборе. +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \item |true|, если разрешена титульная страница. +% \begin{macrocode} +\newif\if@titlepage\@titlepagetrue +% \end{macrocode} +% \item Соответствующие типы диссертаций. +% \begin{macrocode} +\newif\if@bachelor\@bachelorfalse +\newif\if@master\@masterfalse +\newif\if@candidate\@candidatefalse +\newif\if@doctor\@doctorfalse +\newif\if@autoref\@autoreffalse +% \end{macrocode} +% \item |true|, если главы начинаются только с нечетных страниц. +% \begin{macrocode} +\newif\if@openright +% \end{macrocode} +% \item |true|, если подключается |hyperref|. +% \begin{macrocode} +\newif\ifhref\hreffalse +% \end{macrocode} +% \item |true|, если файл обрабатывается pdf\LaTeX{}. +% \begin{macrocode} +\newif\ifpdf + \ifx\pdfoutput\undefined + \else + \ifx\pdfoutput\relax + \else + \ifcase\pdfoutput + \else + \pdftrue + \fi + \fi + \fi + +\newif\ifsubf\subffalse + +% \end{macrocode} +% \end{itemize} +% \subsection{Опции класса} +% +% Размер листов. +% \begin{macrocode} + +\DeclareOption{a4paper}{% + \setlength\paperheight{297mm} + \setlength\paperwidth {210mm} +} +\DeclareOption{a5paper}{% + \setlength\paperheight{210mm} + \setlength\paperwidth {148mm} +} +\DeclareOption{b5paper}{% + \setlength\paperheight{250mm} + \setlength\paperwidth {176mm} +} +% \end{macrocode} +% Альбомная ориентация. +% \begin{macrocode} +\DeclareOption{landscape}{% + \setlength\@tempdima {\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth {\@tempdima} +} + +% \end{macrocode} +% Размер шрифта основного текста. +% \begin{macrocode} +\newcommand\@ptsize{} +\DeclareOption{8pt} {\renewcommand\@ptsize{8}} +\DeclareOption{9pt} {\renewcommand\@ptsize{9}} +\DeclareOption{10pt}{\renewcommand\@ptsize{10}} +\DeclareOption{11pt}{\renewcommand\@ptsize{11}} +\DeclareOption{12pt}{\renewcommand\@ptsize{12}} +\DeclareOption{14pt}{\renewcommand\@ptsize{14}} +\DeclareOption{17pt}{\renewcommand\@ptsize{17}} +\DeclareOption{20pt}{\renewcommand\@ptsize{20}} + +% \end{macrocode} +% Установка полей для односторонней или двухсторонней печати. +% \begin{macrocode} +\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} +\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} + +% \end{macrocode} +% Включение сообщений о строках, выходящих за поля. +% \begin{macrocode} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} + +% \end{macrocode} +% Печатать титульный лист или нет. +% \begin{macrocode} +\DeclareOption{titlepage} {\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} + +% \end{macrocode} +% Главы будут начинаться только на нечетной странице (будет всегда справа на +% развороте) или на первой доступной. +% \begin{macrocode} +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} + +% \end{macrocode} +% Верстка в один или в два столбца. +% \begin{macrocode} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} + +% \end{macrocode} +% Номера размещаются слева, а не справа от формул. +% \begin{macrocode} +\DeclareOption{leqno}{\input{leqno.clo}} + +% \end{macrocode} +% Выключные формулы будут выравнены по левому краю, а не по центру. +% \begin{macrocode} +\DeclareOption{fleqn}{\input{fleqn.clo}} +% \end{macrocode} +% Использовать в тексте и формулах шрифт Times вместо Computer Modern Roman. +% \begin{macrocode} +\DeclareOption{times}{ + \AtEndOfPackage{% + \usepackage{pscyr} +% \end{macrocode} +% Пакет |txfonts| необходимо подключать \textbf{после} |pscyr| для +% корректного определения символов, составленных из двух других (таких как +% $\hbar$ и $\neq$). +% \begin{macrocode} + \usepackage{txfonts} +% \end{macrocode} +% Установка Times как шрифта по умолчанию. +% \begin{macrocode} + \renewcommand{\rmdefault}{ftm} + } +} +% \end{macrocode} +% Если указана эта опция, то блоки текста в списке литературы будут печататься на новых строках и с отступом. +% \begin{macrocode} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par} + }% +} +% \end{macrocode} +% Включение пакета |hyperref| и необходимых настроек. +% \begin{macrocode} +\DeclareOption{href}{\hreftrue} + +% \end{macrocode} +% Включение пакета |subfigure| и необходимых настроек. +% \begin{macrocode} +\DeclareOption{subf}{\subftrue} + +% \end{macrocode} +% Тип диссертации. +% \begin{macrocode} +\DeclareOption{bachelor}{% + \@bachelortrue\@masterfalse\@candidatefalse\@doctorfalse\@autoreffalse +} +\DeclareOption{master}{% + \@bachelorfalse\@mastertrue\@candidatefalse\@doctorfalse\@autoreffalse +} +\DeclareOption{candidate}{% + \@bachelorfalse\@masterfalse\@candidatetrue\@doctorfalse\@autoreffalse +} +\DeclareOption{doctor}{% + \@bachelorfalse\@masterfalse\@candidatefalse\@doctortrue\@autoreffalse +} +\DeclareOption{autoref}{% + \@bachelorfalse\@masterfalse\@candidatefalse\@doctorfalse\@autoreftrue +} +% \end{macrocode} +% Команды изменения регистра. +% \DescribeMacro{\MakeTextUppercase} +% \begin{macrocode} +\DeclareRobustCommand\MakeTextUppercase{% + \@uclcnotmath{\def\i{I}\def\j{J}}{##1##2}\uppercase} + +\protected@edef\MakeTextUppercase#1{\MakeTextUppercase{#1}} + +% \end{macrocode} +% \DescribeMacro{\MakeTextLowercase} +% \begin{macrocode} +\DeclareRobustCommand\MakeTextLowercase{% + \@uclcnotmath{}{##2##1}\lowercase} + +\protected@edef\MakeTextLowercase#1{\MakeTextLowercase{#1}} + +% \end{macrocode} +% Выполнение опций по умолчанию. +% \begin{macrocode} +\ExecuteOptions{a4paper,14pt,oneside,titlepage,onecolumn,final,openany} +% \end{macrocode} +% Выполнение пользовательских опций. +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% \subsection{Настройка шрифтов} +% \subsubsection{Определение размеров} +% \begin{macrocode} +\def\EC@family#1#2#3#4#5{% + \DeclareFontShape{#1}{#2}{#3}{#4}% + {<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74>% + <24.88><29.86><35.83><42.99><51.59>genb*#5}{}} +\EC@family{T1}{cmr}{m}{n}{ecrm} +\EC@family{T1}{cmr}{m}{sl}{ecsl} +\EC@family{T1}{cmr}{m}{it}{ecti} +\EC@family{T1}{cmr}{m}{sc}{eccc} +\EC@family{T1}{cmr}{bx}{n}{ecbx} +\EC@family{T1}{cmr}{b}{n}{ecrb} +\EC@family{T1}{cmr}{bx}{it}{ecbi} +\EC@family{T1}{cmr}{bx}{sl}{ecbl} +\EC@family{T1}{cmr}{bx}{sc}{ecxc} +\EC@family{T1}{cmr}{m}{ui}{ecui} +\DeclareFontShape{OT1}{cmr}{m}{n}% + {<5><6><7><8><9><10><12>gen*cmr% + <10.95>cmr10% + <14.4>cmr12% + <17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmr17}{} +\DeclareFontShape{OT1}{cmr}{m}{sl}% + {<5><6><7>cmsl8% + <8><9>gen*cmsl% + <10><10.95>cmsl10% + <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmsl12% + }{} +\DeclareFontShape{OT1}{cmr}{m}{it}% + {<5><6><7>cmti7% + <8>cmti8% + <9>cmti9% + <10><10.95>cmti10% + <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmti12% + }{} +\DeclareFontShape{OT1}{cmr}{m}{sc}% + {<5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmcsc10% + }{} +\DeclareFontShape{OT1}{cmr}{m}{ui}{ + <5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmu10% +}{} +\DeclareFontShape{OT1}{cmr}{b}{n}{ + <5><6><7><8><9><10><10.95><12>% + <14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmb10% +}{} +\DeclareFontShape{OT1}{cmr}{bx}{n}{ + <5><6><7><8><9>gen*cmbx% + <10><10.95>cmbx10% + <12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbx12% +}{} +\DeclareFontShape{OT1}{cmr}{bx}{sl}{<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbxsl10% +}{} +\DeclareFontShape{OT1}{cmr}{bx}{it}{<5><6><7><8><9>% + <10><10.95><12><14.4><17.28><20.74><24.88><29.86><35.83><42.99><51.59>cmbxti10% +}{} +\input{size\@ptsize.clo} +\RequirePackage{exscale} + +% \end{macrocode} +% +% \subsubsection{Старые команды изменения начертания шрифтов (без NFSS)} +% +% В текстовом режиме. +% \begin{macrocode} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape} {\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape} {\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape} {\@nomath\sc} +% \end{macrocode} +% В математическом режиме. +% \begin{macrocode} +\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal} + +% \end{macrocode} +% +% \subsection{Параметры текста} +% +% Вертикальный интервал между строками. Упоминаемый здесь и далее макрос |\p@| +% определяет единицу длины. По умолчанию она равна английскому пункту (pt). +% \DescribeMacro{\lineskip} +% \DescribeMacro{\normallineskip} +% \begin{macrocode} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +% \end{macrocode} +% +% \DescribeMacro{\singlespacing} +% \DescribeMacro{\onehalfspacing} +% \DescribeMacro{\doublespacing} +% Команды задания величины межстрочного интервала. +% \begin{macrocode} +\newcommand\singlespacing {\renewcommand\baselinestretch{1}} +\newcommand\onehalfspacing{\renewcommand\baselinestretch{1.5}} +\newcommand\doublespacing {\renewcommand\baselinestretch{2}} +% \end{macrocode} +% Установка межстрочного интервала по умолчанию. +% \begin{macrocode} +\onehalfspacing\normalsize +% \end{macrocode} +% Интервал между абзацами (добавляется к межстрочному). +% \DescribeMacro{\parskip} +% \begin{macrocode} +\setlength\parskip{0\p@ \@plus \p@} +% \end{macrocode} +% +% \subsection{Параметры размещения плавающих объектов на странице} +% \subsubsection{Количество объектов} +% \begin{itemize} +% \item Максимальное количество плавающих объектов, размещаемое вверху +% страницы (при двухколонном наборе --- вверху колонки). +% \begin{macrocode} +\setcounter{topnumber}{2} +% \end{macrocode} +% \item Максимальное количество плавающих объектов, размещаемое внизу +% страницы (при двухколонном наборе --- внизу колонки). +% \begin{macrocode} +\setcounter{bottomnumber}{1} +% \end{macrocode} +% \item Максимальное количество плавающих объектов, размещаемое +% на странице (при двухколонном наборе --- в колонке). +% \begin{macrocode} +\setcounter{totalnumber}{3} +% \end{macrocode} +% \item При наборе в две колонки: максимальное количество плавающих +% объектов шириной во всю страницу, которое разрешается разместить вверху +% страницы +% \begin{macrocode} +\setcounter{dbltopnumber}{2} +% \end{macrocode} +% \end{itemize} +% +% \subsubsection{Величина места, занимаемого плавающими объектами} +% \begin{itemize} +% \item Максимальная доля страницы по высоте, которую могут занимать +% плавающие объекты, размещаемые вверху страницы. +% \DescribeMacro{\topfraction} +% \begin{macrocode} +\renewcommand\topfraction{.7} +% \end{macrocode} +% \item Максимальная доля страницы по высоте, которую могут занимать +% плавающие объекты, размещаемые внизу страницы. +% \DescribeMacro{\bottomfraction} +% \begin{macrocode} +\renewcommand\bottomfraction{.3} +% \end{macrocode} +% \item Минимальная доля страницы, которую должен занимать текст, а не +% плавающие объекты на обычной странице (к страницам, создаваемым +% \LaTeX{}'ом +% специально для размещения плавающих объектов при обработке +% необязательного аргумента |p|, это не относится). +% \DescribeMacro{\bottomfraction} +% \begin{macrocode} +\renewcommand\textfraction{.2} +% \end{macrocode} +% \item Параметр, аналогичный предыдущему, относящийся к страницам для +% плавающих объектов. +% \DescribeMacro{\floatpagefraction} +% \begin{macrocode} +\renewcommand\floatpagefraction{.5} +% \end{macrocode} +% \item Тоже, что |\topfraction|, применительно к иллюстрациям (таблицам) +% шириной в целую страницу при двухколонном наборе. +% \DescribeMacro{\dbltopfraction} +% \begin{macrocode} +\renewcommand\dbltopfraction{.7} +% \end{macrocode} +% \item Тоже, что |\floatpagefraction|, применительно к иллюстрациям +% (таблицам) шириной в целую страницу при двухколонном наборе. +% \DescribeMacro{\dblfloatpagefraction} +% \begin{macrocode} +\renewcommand\dblfloatpagefraction{.5} +% \end{macrocode} +% \end{itemize} +% Максимальный уровень вложенности заголовков, помещаемых в Содержание +% (по умолчанию вносятся только |\part|, |\chapter| и |\section|). +% \DescribeMacro{tocdepth} +% \begin{macrocode} +\setcounter{tocdepth}{1} +% \end{macrocode} +% Максимальный уровень вложенности нумеруемых секций +% (по умолчанию нумеруются |\part|, |\chapter|, |\section| и |\subsection|). +% \DescribeMacro{secnumdepth} +% \begin{macrocode} +\setcounter{secnumdepth}{2} +% \end{macrocode} +% Описание структуры постоянных частей заголовков +% \begin{itemize} +% \item в тексте, +% \DescribeMacro{\@seccntformat} +% \begin{macrocode} +\def\@seccntformat#1{% + \csname prethe#1\endcsname% + \csname the#1\endcsname% + \csname postthe#1\endcsname% +} +% \end{macrocode} +% \item в Содержании. +% \DescribeMacro{\@tocseccntformat} +% \begin{macrocode} +\def\@tocseccntformat#1{% + \csname tocprethe#1\endcsname% + \csname tocthe#1\endcsname% + \csname tocpostthe#1\endcsname% +} + +% \end{macrocode} +% \end{itemize} +% Характерные величины штрафов. Штраф --- мера <<красоты>> разбиения +% абзаца на строки. Чем больше величина, тем менее красиво. +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +%</disser> +% \end{macrocode} |