diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/disser/src |
Initial commit
Diffstat (limited to 'macros/latex/contrib/disser/src')
26 files changed, 5540 insertions, 0 deletions
diff --git a/macros/latex/contrib/disser/src/Makefile b/macros/latex/contrib/disser/src/Makefile new file mode 100644 index 0000000000..92bab2d943 --- /dev/null +++ b/macros/latex/contrib/disser/src/Makefile @@ -0,0 +1,112 @@ +# +# Makefile for disser package +# Author: Stanislav Kruchinin <stanislav.kruchinin@gmail.com> +# + +TARGET := disser +DTXFILES := $(TARGET) gost732 +MANUAL := manual + +CLSFILES := *.cls *.rtx +DOCFILES := $(addsuffix .pdf, $(DTXFILES) $(MANUAL)) +TEXTFILES := ../README ../README.ru ../ChangeLog +SRCFILES := *.dtx $(TARGET).ins dtx.ist $(MANUAL).tex Makefile \ + nomake.cmd + +TEXMF ?= /usr/share/texmf +DESTDIR ?= $(TEXMF) +CLSDIR ?= $(DESTDIR)/tex/latex/$(TARGET) +DOCDIR ?= $(DESTDIR)/doc/latex/$(TARGET) +SRCDIR ?= $(DESTDIR)/source/latex/$(TARGET) + +CLEXT ?= *.aux *.toc *.idx *.ind *.ilg *.log *.out *.lof *.lot *.lol \ + *.bbl *.blg *.bak *.dvi *.ps *.pdf *.synctex *.synctex.gz +CLFILES ?= $(CLEXT) $(CLSFILES) $(BSTFILES) + +LATEX ?= latex +PDFLATEX ?= pdflatex +MI ?= makeindex + +LATEXFLAGS ?= --src-specials +PDFLATEXFLAGS ?= --shell-escape --synctex=1 +MIFLAGS ?= -r -s dtx.ist + +.PHONY: all package doc dvi pdf clean install uninstall reinstall help + +all: package doc + +package: $(TARGET).cls + +doc: pdf + +dvi: $(addsuffix .dvi, $(DTXFILES) $(MANUAL)) + +pdf: $(DOCFILES) + +clean: + -rm -f $(CLFILES) + +install: all + mkdir -p $(CLSDIR) ;\ + mkdir -p $(BSTDIR) ;\ + mkdir -p $(CSFDIR) ;\ + mkdir -p $(DOCDIR) ;\ + mkdir -p $(SRCDIR) ;\ + cp $(CLSFILES) $(CLSDIR) ;\ + cp $(DOCFILES) $(DOCDIR) ;\ + cp $(TEXTFILES) $(DOCDIR) ;\ + cp $(SRCFILES) $(SRCDIR) + +uninstall: + -rm $(addprefix $(CLSDIR)/, $(CLSFILES)) + -rm $(addprefix $(DOCDIR)/, $(DOCFILES)) + -rm $(addprefix $(DOCDIR)/, $(notdir $(TEXTFILES))) + -rm $(addprefix $(SRCDIR)/, $(SRCFILES)) + -rmdir $(CLSDIR) + -rmdir $(DOCDIR) + -rmdir $(SRCDIR) + +reinstall: uninstall install + +$(TARGET).dvi: $(TARGET).dtx + $(LATEX) $(LATEXFLAGS) $< + $(MI) $(MIFLAGS) $(TARGET) + $(LATEX) $(LATEXFLAGS) $< + $(LATEX) $(LATEXFLAGS) $< + +$(TARGET).pdf: $(TARGET).dtx + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(MI) $(MIFLAGS) $(TARGET) + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(PDFLATEX) $(PDFLATEXFLAGS) $< + +%.cls: %.ins + $(LATEX) $^ + +%.dvi: %.dtx + $(LATEX) $(LATEXFLAGS) $< + $(LATEX) $(LATEXFLAGS) $< + +%.dvi: %.tex + $(LATEX) $(LATEXFLAGS) $< + $(LATEX) $(LATEXFLAGS) $< + +%.pdf: %.dtx + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(PDFLATEX) $(PDFLATEXFLAGS) $< + +%.pdf: %.tex + $(PDFLATEX) $(PDFLATEXFLAGS) $< + $(PDFLATEX) $(PDFLATEXFLAGS) $< + +help: + @echo " all (default) build package and documentation" ;\ + echo " clean remove output files" ;\ + echo " doc alias for pdf target" ;\ + echo " dvi build documentation in DVI format" ;\ + echo " help show description of targets" ;\ + echo " install install package and documentation" ;\ + echo " package build package" ;\ + echo " pdf build documentation in PDF format" ;\ + echo " reinstall reinstall package and documentation" ;\ + echo " uninstall uninstall package and documentation" diff --git a/macros/latex/contrib/disser/src/autoref.dtx b/macros/latex/contrib/disser/src/autoref.dtx new file mode 100644 index 0000000000..0b0f590d20 --- /dev/null +++ b/macros/latex/contrib/disser/src/autoref.dtx @@ -0,0 +1,91 @@ +% \begin{macrocode} + +%<autoref>\ProvidesFile{autoref.rtx} + +%<*autoref> +% \end{macrocode} +% \subsubsection{Стиль автореферата} +% +% Нумерация. +% \begin{macrocode} +\newcommand\autoref@the{\default@the} +\autoref@the + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle{ +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \begin{macrocode} +\ifundeflength\firstskip{1cm} +\ifundeflength\secondskip{3cm} +\ifundeflength\thirdskip{1cm} +\ifundeflength\fourthskip{1cm} +\ifundeflength\fifthskip{1cm} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \DescribeMacro{\authorfont}\index{Макросы!\verb*+\authorfont+} +% \DescribeMacro{\specfont}\index{Макросы!\verb*+\specfont+} +% \begin{macrocode} +\def\titlefont{\normalsize} +\def\topicfont{\Large\bfseries} +\def\authorfont{\large} +\def\specfont{\normalsize} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} + +\begin{flushright} +% \end{macrocode} +% Гриф секретности +% \begin{macrocode} + \ifDis@classified\classify\fi +% \end{macrocode} +% На правах рукописи +% \begin{macrocode} + \vskip\firstskip + {\normalfont\asmanuscript} + \ifDis@facsimile\facsimile\fi +\end{flushright} +\begin{center} +% \end{macrocode} +% Автор +% \begin{macrocode} + \vskip\secondskip + {\authorfont\@author} +% \end{macrocode} +% Название диссертации +% \begin{macrocode} + \vskip\thirdskip + {\topicfont\@topic\par} +% \end{macrocode} +% Шифр и наименование специальности +% \begin{macrocode} + \vskip\fourthskip + {\specfont\@specnum~--\ \@spec} +% \end{macrocode} +% Диссертация на соискание ученой степени... +% \begin{macrocode} + \vskip\fifthskip + {\titlefont\@title} +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} + \vfill + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</autoref> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/bachelor.dtx b/macros/latex/contrib/disser/src/bachelor.dtx new file mode 100644 index 0000000000..41ddcaf968 --- /dev/null +++ b/macros/latex/contrib/disser/src/bachelor.dtx @@ -0,0 +1,135 @@ +% \begin{macrocode} + +%<bachelor>\ProvidesFile{bachelor.rtx} + +%<*bachelor> +% \end{macrocode} +% \subsubsection{Стиль работы бакалавра} +% +% Нумерация. +% \begin{macrocode} +\newcommand\bachelor@the{\default@the} +\bachelor@the + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle[1][]{ +% \end{macrocode} +% Переопределения некоторых полей титульного листа для англоязычной версии. +% \begin{macrocode} +\ifthenelse{\equal{#1}{en}}{\@titlepage@entrue}{\@titlepage@enfalse} +\if@titlepage@en + \def\appos{Head of Department} + \def\approved{``Approved for defence''} + \def\revname{Reviewer} + \def\revsndname{\revname} + \def\revlabel{\revname} + \def\revsndlabel{\revsndname} + \def\saname{Scientific Supervisor} + \def\sasndname{\saname} + \def\salabel{\saname} + \def\sasndlabel{\saname} + \def\topicname{Topic} + \def\coursename{Speciality} + \def\studentname{Student} + \def\studentlabel{\studentname\hspace{6cm}} +\fi + +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \begin{macrocode} +\ifundeflength\firstskip{1.5cm} +\ifundeflength\secondskip{1.5cm} +\ifundeflength\thirdskip{1ex} +\ifundeflength\fourthskip{1ex} +\ifundeflength\fifthskip{2cm} +\ifundeflength\sixthskip{1.5ex} + +% \end{macrocode} +% Горизонтальный отступ перед чертой в текстовым поле для имени, ученой +% степени и звания научного руководителя и консультанта. +% \DescribeMacro{\fieldhshift}\index{Интервалы!\verb*+\fieldhshift+} +% \begin{macrocode} +\setlength\fieldhshift{8.5cm} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topiclabelfont}\index{Макросы!\verb*+\topiclabelfont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \begin{macrocode} +\def\titlefont{\Large\bfseries} +\def\topiclabelfont{\large} +\def\topicfont{\large\bfseries} + +% \end{macrocode} +% Работа +% \DescribeMacro{\workname}\index{Макросы!\verb*+\topicfont+} +% \begin{macrocode} +\def\workname{\CYRR\cyra\cyrb\cyro\cyrt\cyra} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} +% \end{macrocode} +% \paragraph{Название организации} +% \begin{macrocode} +\begin{center} + {\instfont\@institution} +\end{center} + +% \end{macrocode} +% Работа допущена к защите +% \begin{macrocode} +\vskip\firstskip +{\@approved} +\vskip\secondskip +% \end{macrocode} +% Заголовок +% \begin{macrocode} +\begin{center} + {\titlefont\@title} + \vskip\thirdskip +% \end{macrocode} +% Тема +% \begin{macrocode} + {\topiclabelfont\topiclabel\ } + {\topicfont\@topic} + \vskip\fourthskip\normalfont + {\courselabel\ \@coursenum~--\ \@course} +\end{center} + +% \end{macrocode} +% Специальность, автор, руководитель. +% \begin{macrocode} +\vskip\fifthskip +\begin{tabbing} +% \end{macrocode} +% +% Выполнил студент гр. номер... +% \begin{macrocode} + \studentlabel\=\makebox[\fieldhshift][l]{\hrulefill\ \@author}\\[\sixthskip] +% \end{macrocode} +% Научный руководитель. +% \begin{macrocode} + \ifx\@sa\empty\else\diplomafield{sa}\\[\sixthskip]\fi + \ifx\@sasnd\empty\else\diplomafield{sasnd}\\[\sixthskip]\fi +\end{tabbing} +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} +\vfill +\begin{center} + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</bachelor> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/candidate.dtx b/macros/latex/contrib/disser/src/candidate.dtx new file mode 100644 index 0000000000..73f0986916 --- /dev/null +++ b/macros/latex/contrib/disser/src/candidate.dtx @@ -0,0 +1,161 @@ +% \begin{macrocode} + +%<candidate>\ProvidesFile{candidate.rtx} + +%<*candidate> +% \end{macrocode} +% \subsubsection{Стиль кандидатской диссертации} +% +% Нумерация. +% \begin{macrocode} +\newcommand\candidate@the{\default@the} +\candidate@the + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle[1][]{ +\ifthenelse{\equal{#1}{en}}{\@titlepage@entrue}{\@titlepage@enfalse} +\if@titlepage@en + \def\appos{Head of Department} + \def\saname{Scientific Supervisor} + \def\salabel{\saname} + \def\sasndname{\saname} + \def\sasndlabel{\sasndname} + \def\sconname{Scientific Consultant} + \def\sconlabel{\sconname} + \def\sconsndname{\sconname} + \def\sconsndlabel{\sconname} + \def\topicname{Topic} + \def\asmanuscript{As Manuscript} +\fi + +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \DescribeMacro{\sixthskip}\index{Интервалы!\verb*+\sixthskip+} +% \DescribeMacro{\saskip}\index{Интервалы!\verb*+\saskip+} +% \DescribeMacro{\specskip}\index{Интервалы!\verb*+\specskip+} +% \begin{macrocode} +\ifx\firstskip\undefined + \newlength\firstskip + \ifx\@libcatnum\empty + \setlength\firstskip{4ex} + \else + \setlength\firstskip{2ex} + \fi +\fi +\ifundeflength\secondskip{2cm} +\ifundeflength\thirdskip{1cm} +\ifundeflength\fourthskip{1cm} +\ifundeflength\fifthskip{1cm} +\ifundeflength\sixthskip{0cm} +\ifundeflength\libcatskip{0cm} +\ifundeflength\specskip{-6pt} +\ifundeflength\saskip{0pt} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \DescribeMacro{\authorfont}\index{Макросы!\verb*+\authorfont+} +% \DescribeMacro{\specfont}\index{Макросы!\verb*+\specfont+} +% \begin{macrocode} +\def\titlefont{\normalsize} +\def\topicfont{\Large\bfseries} +\def\authorfont{\large} +\def\specfont{\normalsize} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} +% \end{macrocode} +% \paragraph{Название организации} +% \begin{macrocode} +\begin{center} + \instfont\@institution\par +\end{center} +\vskip\firstskip +\begin{flushright} +% \end{macrocode} +% Гриф секретности +% \begin{macrocode} + \ifDis@classified\classify\fi +% \end{macrocode} +% На правах рукописи +% \begin{macrocode} + \asmanuscript +% \end{macrocode} +% Факсимиле +% \begin{macrocode} + \ifDis@facsimile\facsimile\fi +% \end{macrocode} +% Номер УДК +% \begin{macrocode} + \ifx\@libcatnum\empty\else + \vskip\libcatskip + {\libcatname\ \@libcatnum} + \fi +\end{flushright} +\begin{center} +% \end{macrocode} +% Автор +% \begin{macrocode} + \vskip\secondskip + {\authorfont\@author} +% \end{macrocode} +% Название диссертации +% \begin{macrocode} + \vskip\thirdskip + {\topicfont\@topic\par} +% \end{macrocode} +% Шифр и наименование специальности +% \begin{macrocode} + \vskip\fourthskip + {\specfont\@specnum~--\ \@spec} + \ifx\@specsndnum\empty\else + \vskip\specskip + {\specfont\@specsndnum~--\ \@specsnd} + \fi +% \end{macrocode} +% Диссертация на соискание ученой степени... +% \begin{macrocode} + \vskip\fifthskip + {\titlefont\@title} +\end{center} +% \end{macrocode} +% Научный руководитель +% \begin{macrocode} +\ifx\@sa\empty\else + \vskip\sixthskip\disserfield{sa} +\fi +\ifx\@sasnd\empty\else + \vskip\saskip\disserfield{sasnd} +\fi +% \end{macrocode} +% Научный консультант +% \begin{macrocode} +\ifx\@scon\empty\else + \vskip\saskip + \disserfield{scon} +\fi +\ifx\@sconsnd\empty\else + \vskip\saskip + \disserfield{sconsnd} +\fi +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} +\vfill +\begin{center} + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</candidate> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/chapter.dtx b/macros/latex/contrib/disser/src/chapter.dtx new file mode 100644 index 0000000000..984d935219 --- /dev/null +++ b/macros/latex/contrib/disser/src/chapter.dtx @@ -0,0 +1,310 @@ + +% \iffalse +%%% From File: chapter.dtx +% \fi +% +% \begin{macrocode} + +%<*chapter> +% \end{macrocode} +% +% \subsection{Глава} +% +% \subsubsection{Параметры формата главы в оглавлении} +% +% \DescribeMacro{\tocprethechapter}\index{Макросы!\verb*+\tocprethechapter+} +% \DescribeMacro{\tocpostthechapter}\index{Макросы!\verb*+\tocpostthechapter+} +% \DescribeMacro{\tocchapterfill}\index{Макросы!\verb*+\tocchapterfill+} +% +% \DescribeMacro{\tocchapterfont}\index{Макросы!\verb*+\tocchapterfont+} +% \DescribeMacro{\tocchapterfillfont}\index{Макросы!\verb*+\tocchapterfillfont+} +% \DescribeMacro{\tocchapternumfont}\index{Макросы!\verb*+\tocchapternumfont+} +% \begin{macrocode} +\providecommand\tocprethechapter{\protect\chaptername~} +\providecommand\tocpostthechapter{.\@postskip} +\providecommand\tocchapterfill{\tocfill{.}} + +\providecommand\tocchapterfont{\bfseries} +\providecommand\tocchapterfillfont{\normalfont} +\providecommand\tocchapternumfont{\normalfont} + +% \end{macrocode} +% \subsubsection{Параметры формата нумеруемой главы в тексте} +% \DescribeMacro{\thechapteralign}\index{Макросы!\verb*+\thechapteralign+} +% \DescribeMacro{\thechapterfont}\index{Макросы!\verb*+\thechapterfont+} +% \DescribeMacro{\prethechapter}\index{Макросы!\verb*+\prethechapter+} +% \DescribeMacro{\postthechapter}\index{Макросы!\verb*+\postthechapter+} +% +% \DescribeMacro{\chapteralign}\index{Макросы!\verb*+\chapteralign+} +% \DescribeMacro{\chapterfont}\index{Макросы!\verb*+\chapterfont+} +% \DescribeMacro{\beforechapter}\index{Макросы!\verb*+\beforechapter+} +% \DescribeMacro{\afterchapter}\index{Макросы!\verb*+\afterchapter+} +% \begin{macrocode} +\providecommand\thechapteralign{\centering} +\providecommand\thechapterfont{\Large} +\providecommand\prethechapter{\protect\chaptername~} +\providecommand\postthechapter{\par\nobreak\vskip 5\p@} + +\providecommand\chapteralign{\centering} +\providecommand\chapterfont{\Large\bfseries} +\providecommand\beforechapter{} +\providecommand\afterchapter{\par\nobreak\vskip 20\p@} +\newlength{\chapterindent} +\setlength{\chapterindent}{0\p@} + +% \end{macrocode} +% \subsubsection{Параметры формата ненумеруемой главы в тексте} +% \DescribeMacro{\schapteralign}\index{Макросы!\verb*+\schapteralign+} +% \DescribeMacro{\schapterfont}\index{Макросы!\verb*+\schapterfont+} +% \DescribeMacro{\beforeschapter}\index{Макросы!\verb*+\beforeschapter+} +% \DescribeMacro{\afterschapter}\index{Макросы!\verb*+\afterschapter+} +% \begin{macrocode} +\providecommand\schapteralign{\chapteralign} +\providecommand\schapterfont{\chapterfont} +\providecommand\beforeschapter{\beforechapter} +\providecommand\afterschapter{\afterchapter} +\newlength{\schapterindent} +\setlength{\schapterindent}{0\p@} + +% \end{macrocode} +% +% \subsubsection{Низкоуровневые команды} +% +% Пустое определение колонтитула главы. +% \DescribeMacro{\chaptermark}\index{Макросы!\verb*+\chaptermark+} +% \begin{macrocode} +\newcommand*\chaptermark[1]{} + +% \end{macrocode} +% Интерфейс. +% \DescribeMacro{\chapter}\index{Макросы!\verb*+"\chapter+} +% \begin{macrocode} +\newcommand\chapter{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{\@chapterpagestyle}% + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} + +% \end{macrocode} +% Команда, формирующая нумеруемый заголовок |\chapter|. +% \DescribeMacro{\@chapter}\index{Макросы!\verb+"\"@chapter+} +% \begin{macrocode} +\def\@chapter[#1]#2{ + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + {\addcontentsline{toc}{chapter}{\@tocseccntformat{chapter} #1}}% + \else + {\addcontentsline{toc}{chapter}{#1}}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi +} + +% \end{macrocode} +% Формат нумеруемого заголовка. +% \DescribeMacro{\@makechapterhead}\index{Макросы!\verb+"\"@makechapterhead+} +% \begin{macrocode} +\def\@makechapterhead#1{{% + \parindent\z@ + \normalfont\hskip\chapterindent% + \ifnum \c@secnumdepth >\m@ne + {\thechapterfont\thechapteralign\@seccntformat{chapter}} + \fi + \interlinepenalty\@M + \chapterfont\chapteralign\beforechapter #1\afterchapter +}} + +% \end{macrocode} +% Команда, формирующая ненумеруемый заголовок |\chapter*|. +% \DescribeMacro{\@schapter}\index{Макросы!\verb+"\"@schapter+} +% \begin{macrocode} +\def\@schapter#1{ + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi +} + +% \end{macrocode} +% +% \DescribeMacro{\@makeschapterhead}\index{Макросы!\verb+"\"@makeschapterhead+} +% Формат ненумеруемого заголовка. +% \begin{macrocode} +\def\@makeschapterhead#1{{% + \parindent\z@ + \normalfont\hskip\schapterindent% + \interlinepenalty\@M + \schapteralign\schapterfont\beforeschapter #1\afterschapter +}} + +% \end{macrocode} +% +% \DescribeMacro{\l@chapter}\index{Макросы!\verb+"\l"@chapter+} +% Команда, создающая запись в оглавлении. +% \begin{macrocode} +\newcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty} + \vskip 1.0em \@plus\p@ + \setlength\@tempdima{1.5em} + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode\tocchapterfont + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak + \tocchapterfillfont\tocchapterfill\hfill + \nobreak\hb@xt@\@pnumwidth{\hss\tocchapternumfont #2}\par + \penalty\@highpenalty + \endgroup + \fi +} + +% \end{macrocode} +% +% \subsection{Приложение} +% +% \subsubsection{Параметры формата записи в оглавлении} +% \DescribeMacro{\tocpretheappendix}\index{Макросы!\verb*+\tocpretheappendix+} +% \DescribeMacro{\tocposttheappendix} +% \index{Макросы!\verb*+\tocposttheappendix+} +% \DescribeMacro{\tocappendixfill}\index{Макросы!\verb*+\tocappendixfill+} +% \DescribeMacro{\tocappendixfont}\index{Макросы!\verb*+\tocappendixfont+} +% \DescribeMacro{\tocappendixfillfont} +% \index{Макросы!\verb*+\tocappendixfillfont+} +% \DescribeMacro{\tocappendixnumfont} +% \index{Макросы!\verb*+\tocappendixnumfont+} +% \begin{macrocode} +\providecommand\tocpretheappendix{\protect\appendixname~} +\providecommand\tocposttheappendix{.\@postskip} +\providecommand\tocappendixfill{\tocfill{.}} + +\providecommand\tocappendixfont{\bfseries} +\providecommand\tocappendixfillfont{\normalfont} +\providecommand\tocappendixnumfont{\normalfont} + +% \end{macrocode} +% \subsubsection{Параметры формата в тексте} +% \DescribeMacro{\theappendixalign}\index{Макросы!\verb*+\theappendixalign+} +% \DescribeMacro{\theappendixfont}\index{Макросы!\verb*+\theappendixfont+} +% \DescribeMacro{\pretheappendix}\index{Макросы!\verb*+\pretheappendix+} +% \DescribeMacro{\posttheappendix}\index{Макросы!\verb*+\posttheappendix+} +% +% \DescribeMacro{\appendixalign}\index{Макросы!\verb*+\appendixalign+} +% \DescribeMacro{\appendixfont}\index{Макросы!\verb*+\appendixfont+} +% \DescribeMacro{\beforeappendix}\index{Макросы!\verb*+\beforeappendix+} +% \DescribeMacro{\afterappendix}\index{Макросы!\verb*+\afterappendix+} +% \begin{macrocode} +\providecommand\theappendixalign{\centering} +\providecommand\theappendixfont{\Large} +\providecommand\pretheappendix{\protect\appendixname~} +\providecommand\posttheappendix{\par\nobreak\vskip 5\p@} + +\providecommand\appendixalign{\centering} +\providecommand\appendixfont{\Large\bfseries} +\providecommand\beforeappendix{} +\providecommand\afterappendix{\par\nobreak\vskip 20\p@} +\providecommand\appendixindent{0\p@} +% \end{macrocode} +% +% Команда для создания глав приложений. Сохранение и восстановление +% значений параметров формата глав делаются для случая, когда +% приложения идут до списка литературы. +% \DescribeMacro{\appendix}\index{Макросы!\verb*+\appendix+} +% \begin{macrocode} +\newcommand\appendix{ + \setcounter{chapter}{0} + \setcounter{section}{0} + +% \end{macrocode} +% Сохранение старых значений. +% \begin{macrocode} + \let\oldtocprethechapter=\tocprethechapter + \let\oldtocpostthechapter=\tocpostthechapter + \let\oldtocchapterfill=\tocchapterfill + + \let\oldtocchapterfont=\tocchapterfont + \let\oldtocchapterfillfont=\tocchapterfillfont + \let\oldtocchapternumfont=\tocchapternumfont + + \let\oldthechapteralign=\thechapteralign + \let\oldthechapterfont=\thechapterfont + \let\oldprethechapter=\prethechapter + \let\oldpostthechapter=\postthechapter + + \let\oldchapteralign=\chapteralign + \let\oldchapterfont=\chapterfont + \let\oldchapterindent=\chapterindent + \let\oldbeforechapter=\afterchapter + \let\oldafterchapter=\afterchapter + \let\oldthechapter=\thechapter + +% \end{macrocode} +% Перезапись параметров формата главы для оформления приложений. +% \begin{macrocode} + \renewcommand\tocprethechapter{\tocpretheappendix} + \renewcommand\tocpostthechapter{\tocposttheappendix} + \renewcommand\tocchapterfill{\tocappendixfill} + + \renewcommand\tocchapterfont{\tocappendixfont} + \renewcommand\tocchapterfillfont{\tocappendixfillfont} + \renewcommand\tocchapternumfont{\tocappendixnumfont} + + \renewcommand\thechapteralign{\theappendixalign} + \renewcommand\thechapterfont{\theappendixfont} + \renewcommand\prethechapter{\pretheappendix} + \renewcommand\postthechapter{\posttheappendix} + + \renewcommand\chapteralign{\appendixalign} + \renewcommand\chapterfont{\appendixfont} + \renewcommand\beforechapter{\beforeappendix} + \renewcommand\afterchapter{\afterappendix} + \renewcommand\chapterindent{\appendixindent} + + \gdef\thechapter{\theappendix} +} + +% \end{macrocode} +% Восстановление исходных параметров формата заголовков глав. +% \DescribeMacro{\noappendix}\index{Макросы!\verb*+\noappendix+} +% \begin{macrocode} +\newcommand\noappendix{ + \let\tocprethechapter=\oldtocprethechapter + \let\tocpostthechapter=\oldtocpostthechapter + \let\tocchapterfill=\oldtocchapterfill + + \let\tocchapterfont=\oldtocchapterfont + \let\tocchapterfillfont=\oldtocchapterfillfont + \let\tocchapternumfont=\oldtocchapternumfont + + \let\thechapteralign=\oldthechapteralign + \let\thechapterfont=\oldthechapterfont + \let\prethechapter=\oldprethechapter + \let\postthechapter=\oldpostthechapter + + \let\chapteralign=\oldchapteralign + \let\chapterfont=\oldchapterfont + \let\beforechapter=\oldbeforechapter + \let\afterchapter=\oldafterchapter + + \gdef\thechapter{\oldthechapter} +} + +%</chapter> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/counters.dtx b/macros/latex/contrib/disser/src/counters.dtx new file mode 100644 index 0000000000..b1deb46a13 --- /dev/null +++ b/macros/latex/contrib/disser/src/counters.dtx @@ -0,0 +1,131 @@ + +% \iffalse +%%% From File: counters.dtx +% \fi +% +% \begin{macrocode} + +%<*counters> +% \end{macrocode} +% +% \subsection{Создание и настройка счетчиков} +% +% Максимальный уровень вложенности секций, помещаемых в оглавление +% (по умолчанию вносятся |\part|, |\chapter| и |\section|). +% \DescribeCounter{tocdepth} +% \begin{macrocode} +\setcounter{tocdepth}{1} +% \end{macrocode} +% Максимальный уровень вложенности нумеруемых секций +% (по умолчанию нумеруются |\part|, |\chapter|, |\section| и |\subsection|). +% \DescribeCounter{secnumdepth} +% \begin{macrocode} +\setcounter{secnumdepth}{2} + +% \end{macrocode} +% +% \DescribeCounter{part} +% \DescribeCounter{chapter} +% \DescribeCounter{section} +% \DescribeCounter{subsection} +% \DescribeCounter{subsubsection} +% \DescribeCounter{paragraph} +% \DescribeCounter{subparagraph} +% \begin{macrocode} +\newcounter{part} +\newcounter{chapter} +\newcounter{section}[chapter] +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] + +% \end{macrocode} +% +% \DescribeCounter{figure} +% \DescribeCounter{table} +% \begin{macrocode} +\newcounter{figure}[chapter] +\newcounter{table}[chapter] + +% \end{macrocode} +% +% Формат нумерации разделов документа в тексте. +% \DescribeMacro{\thepart}\index{Макросы!\verb*+\thepart+} +% \DescribeMacro{\thechapter}\index{Макросы!\verb*+\thechapter+} +% \DescribeMacro{\theappendix}\index{Макросы!\verb*+\theappendix+} +% \DescribeMacro{\thesection}\index{Макросы!\verb*+\thesection+} +% \DescribeMacro{\thesubsection}\index{Макросы!\verb*+\thesubsection+} +% \DescribeMacro{\thesubsubsection}\index{Макросы!\verb*+\thesubsubsection+} +% \DescribeMacro{\theparagraph}\index{Макросы!\verb*+\theparagraph+} +% \DescribeMacro{\thesubparagraph}\index{Макросы!\verb*+\thesubparagraph+} +% \begin{macrocode} + +\renewcommand\thepart{\Roman{part}} +\renewcommand\thechapter{\arabic{chapter}} +\newcommand\theappendix{\Asbuk{chapter}} +\renewcommand\thesection{% +\ifnum\c@chapter > \z@ + \thechapter.\arabic{section}% +\else\arabic{section}\fi} +\renewcommand\thesubsection{\thesection.\arabic{subsection}} +\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\renewcommand\theparagraph{\arabic{paragraph}} +\renewcommand\thesubparagraph{\theparagraph.\arabic{subparagraph}} + +% \end{macrocode} +% Формат нумерации разделов документа в оглавлении. +% \DescribeMacro{\tocthepart}\index{Макросы!\verb*+\tocthepart+} +% \DescribeMacro{\tocthechapter}\index{Макросы!\verb*+\tocthechapter+} +% \DescribeMacro{\toctheappendix}\index{Макросы!\verb*+\toctheappendix+} +% \DescribeMacro{\tocthesection}\index{Макросы!\verb*+\tocthesection+} +% \DescribeMacro{\tocthesubsection}\index{Макросы!\verb*+\tocthesubsection+} +% \DescribeMacro{\tocthesubsubsection}\index{Макросы!\verb*+\tocthesubsubsection+} +% \DescribeMacro{\toctheparagraph}\index{Макросы!\verb*+\toctheparagraph+} +% \DescribeMacro{\tocthesubparagraph}\index{Макросы!\verb*+\tocthesubparagraph+} +% \begin{macrocode} +\providecommand\tocthepart{\thepart} +\providecommand\tocthechapter{\thechapter} +\providecommand\toctheappendix{\theappendix} +\providecommand\tocthesection{\thesection} +\providecommand\tocthesubsection{\thesubsection} +\providecommand\tocthesubsubsection{\thesubsubsection} +\providecommand\toctheparagraph{\theparagraph} +\providecommand\tocthesubparagraph{\thesubparagraph} + +% \end{macrocode} +% +% Схема нумерации объектов по умолчанию. +% \DescribeMacro{\default@the}\index{Макросы!\verb*+\default"@the+} +% \begin{macrocode} +\newcommand\default@the{% +% \end{macrocode} +% Нумерация сносок и формул начинается заново в каждой главе. +% \begin{macrocode} + \@addtoreset{footnote}{chapter} + \@addtoreset{equation}{chapter} + +% \end{macrocode} +% Формат номера формулы. +% \DescribeMacro{\theequation}\index{Макросы!\verb*+\theequation+} +% \begin{macrocode} + \renewcommand\theequation{% + \ifnum\c@chapter > \z@\thechapter.\fi% + \@arabic\c@equation} +% \end{macrocode} +% Формат номера таблицы. +% \DescribeMacro{\thetable}\index{Макросы!\verb*+\thetable+} +% \begin{macrocode} + \renewcommand\thetable{% + \ifnum \c@chapter>\z@\thechapter.\fi% + \@arabic\c@table} +% \end{macrocode} +% Формат номера рисунка. +% \DescribeMacro{\thefigure}\index{Макросы!\verb*+\thefigure+} +% \begin{macrocode} + \renewcommand\thefigure{% + \ifnum \c@chapter>\z@\thechapter.\fi% + \@arabic\c@figure} +} +%</counters> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/custom.dtx b/macros/latex/contrib/disser/src/custom.dtx new file mode 100644 index 0000000000..f585d74e8f --- /dev/null +++ b/macros/latex/contrib/disser/src/custom.dtx @@ -0,0 +1,254 @@ + +% \iffalse +%%% From File: custom.dtx +% \fi +% +% \begin{macrocode} + +%<*custom> +% \end{macrocode} +% \subsection{Подключение и настройка сторонних пакетов} +% +% Прямые символы интегралов из шрифтов семейства Euler. +% \begin{macrocode} +\ifDis@fixint + \DeclareSymbolFont{EulerExtension}{U}{euex}{m}{n} + \DeclareMathSymbol\intop\mathop{EulerExtension}{"52} + \DeclareMathSymbol\ointop\mathop{EulerExtension}{"48} + \AtBeginDocument{% + \def\intkern@{\mkern -6mu }% + \def\ints@#1{\mkern -3mu + \mathop{\mkern 3mu + \intop + \ifnum #1=\z@ \intdots@ \else + \intkern@ + \ifnum #1>\tw@ \intop\intkern@ + \ifnum #1>\thr@@ \intop\intkern@ \fi + \fi + \fi + \intop + }\ilimits@ + }% + \renewcommand{\iint}{\DOTSI\protect\MultiIntegral{2}} + \renewcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}} + \renewcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}} + \renewcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}} + }{} +\fi + +% \end{macrocode} +% \subsubsection{Библиографические ссылки} +% \DescribePackage{natbib} +% \begin{macrocode} +\ifDis@natbib + \usepackage[square,comma,sort&compress,numbers]{natbib} +\else +% \end{macrocode} +% Пустые определения команд из пакета |natbib|. +% \DescribeMacro{\bibsection}\index{Макросы!\verb*+\bibsection+} +% \DescribeMacro{\bibpreamble}\index{Макросы!\verb*+\bibpreamble+} +% \DescribeMacro{\bibpostamble}\index{Макросы!\verb*+\bibpostamble+} +% \DescribeMacro{\bibsep}\index{Макросы!\verb*+\bibsep+} +% \begin{macrocode} + \providecommand*\bibsection{} + \providecommand*\bibpreamble{} + \providecommand*\bibpostamble{} + \newlength\bibsep +\fi + +% \end{macrocode} +% Команда, создающая заголовок библиографии. +% \DescribeMacro{\bibsection}\index{Макросы!\verb*+\bibsection+} +% \begin{macrocode} +\renewcommand\bibsection{\nchapter{\bibname}} + +% \end{macrocode} +% Преамбула окружения |thebibliography|. +% \DescribeMacro{\bibpreamble}\index{Макросы!\verb*+\bibpreamble+} +% \begin{macrocode} +\renewcommand\bibpreamble{% +% \end{macrocode} +% Формат номера в списке литературы. +% \DescribeMacro{\@biblabel}\index{Макросы!\verb*+"\"@biblabel+} +% \begin{macrocode} + \renewcommand\@biblabel[1]{##1.}% + \setlength\bibsep{0pt} +} + +\@ifpackageloaded{natbib}{ + \@ifundefined{chapter}{% + \renewcommand\bibsection{% + \nsection{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}% + }% + }{% + \@ifxundefined\NAT@sectionbib{% + \renewcommand\bibsection{% + \nchapter{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}% + }% + }{% + \renewcommand\bibsection{% + \nsection{\bibname\ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}% + }% + }% + }% +}{% + \@ifundefined{chapter}{% + \renewcommand\bibsection{% + \nsection{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}% + }% + }{} +% \end{macrocode} +% \DescribeEnv{thebibliography}\index{Окружения!\verb*+thebibliography+} +% \begin{macrocode} + \renewenvironment{thebibliography}[1]{ + \bibsection + \parindent\z@ + \bibpreamble\normalfont\selectfont + \list{\@biblabel{\@arabic\c@enumiv}}{\settowidth\labelwidth{\@biblabel{#1}}% + \setlength{\itemsep}{\bibsep} + \setlength{\parsep}{\bibsep} + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.\@m + }{% + \bibpostamble + \def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist + } +} + +% \end{macrocode} +% \subsubsection{Плавающие объекты} +% +% Пакеты \pkg{caption} и \pkg{subcaption} для вложенной нумерации плавающих +% объектов. +% \DescribePackage{caption} +% \DescribePackage{subcaption} +% \begin{macrocode} +\ifDis@subf + \usepackage[font=small,labelsep=period]{caption} + \usepackage[list=true,subrefformat=parens]{subcaption} + \captionsetup{compatibility=false} +% \end{macrocode} +% Формат счетчика. +% \begin{macrocode} + \DeclareCaptionSubType[asbuk]{figure} + \def\thesubfigure{\textit{\asbuk{subfigure}}} +% \end{macrocode} +% Формат ссылки через |\ref|. +% \DescribeMacro{\thefigsubsep}\index{Макросы!\verb*+\thefigsubsep+} +% \begin{macrocode} + \providecommand\thefigsubsep{,~} + \def\p@subfigure{\@nameuse{thefigure}\thefigsubsep} +\fi + +% \end{macrocode} +% \subsubsection{Hyperref} +% \begin{macrocode} +\ifpdf + \ifDis@href +% \end{macrocode} +% \DescribePackage{hyperref} +% \begin{macrocode} + \usepackage[pdftex,unicode]{hyperref} + \hypersetup{ + colorlinks = false, + bookmarksopen = true, + bookmarksnumbered = true, + bookmarksopenlevel = 2, + pdfstartview = {FitH}, + pdfborder = {0 0 0} + } + \pdfcompresslevel = 9 + \fi +% \end{macrocode} +% \DescribePackage{graphicx} +% \DescribePackage{cmap} +% \begin{macrocode} + \usepackage[pdftex]{graphicx} + \usepackage{cmap} +\else + \ifDis@href +% \end{macrocode} +% \DescribePackage{hyperref} +% \begin{macrocode} + \usepackage[hypertex,colorlinks=false]{hyperref} + \fi +% \end{macrocode} +% \DescribePackage{graphicx} +% \begin{macrocode} + \usepackage{graphicx} +\fi +\ifDis@href +% \end{macrocode} +% Включение и настройка цветных ссылок. +% \begin{macrocode} + \ifDis@colorlinks + \usepackage{color} + \definecolor{darkblue}{rgb}{0,0,.6} + \hypersetup{ + colorlinks = true, linkcolor = darkblue, + citecolor = darkblue, filecolor = darkblue, + menucolor = darkblue, urlcolor = darkblue + } + \fi +\fi + +% \end{macrocode} +% Команда, создающая цель для гиперссылок над заголовками ненумеруемых +% разделов. +% \DescribeMacro{\hrefphantom}\index{Макросы!\verb*+\hrefphantom+} +% \begin{macrocode} +\providecommand\hrefphantom[1]{% + \ifDis@href + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{#1*.\the\Hy@linkcounter}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% + \fi +} + +% \end{macrocode} +% Команды для создания ненумеруемых глав и секций, которые включаются в +% оглавление и PDF-закладки. +% \DescribeMacro{\nchapter}\index{Макросы!\verb*+\nchapter+} +% \DescribeMacro{\nsection}\index{Макросы!\verb*+\nsection+} +% \DescribeMacro{\nsubsection}\index{Макросы!\verb*+\nsubsection+} +% \DescribeMacro{\nsubsubsection}\index{Макросы!\verb*+\nsubsubsection+} +% \begin{macrocode} +\newcommand\nchapter[1]{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{\@chapterpagestyle}% + \global\@topnum\z@ + \hrefphantom{chapter} + \addcontentsline{toc}{chapter}{#1}% + \@afterindentfalse + \@schapter{#1} +} +\newcommand\nsection[1]{% + \hrefphantom{section}% + \addcontentsline{toc}{section}{#1} + \section*{#1} +} +\newcommand\nsubsection[1]{% + \hrefphantom{subsection}% + \addcontentsline{toc}{subsection}{#1} + \subsection*{#1} +} +\newcommand\nsubsubsection[1]{% + \hrefphantom{subsubsection}% + \addcontentsline{toc}{subsubsection}{#1} + \subsubsection*{#1} +} + +%</custom> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/disser.dtx b/macros/latex/contrib/disser/src/disser.dtx new file mode 100644 index 0000000000..92ca65b346 --- /dev/null +++ b/macros/latex/contrib/disser/src/disser.dtx @@ -0,0 +1,675 @@ +% \iffalse meta-comment +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% disser -- LaTeX document class for dissertations. +%% +%% Copyright (c) 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.drv}[2017/03/03 1.5.0 Document class for dissertations] + +\documentclass{ltxdoc} +\usepackage[a4paper,includeheadfoot,nohead,mag=1000, + left=5cm,right=1cm,top=1.5cm,bottom=1.5cm]{geometry} +\usepackage{ifpdf,indentfirst,tabularx,doc,makeidx,longtable,color} + +\definecolor{darkblue}{rgb}{0,0,.6} + +\ifpdf + \usepackage[pdftex,hyperindex,unicode]{hyperref} + \usepackage{cmap} +\else + \usepackage[hypertex]{hyperref} +\fi + +\hypersetup{ + pdftitle = {Documented source code of disser class}, + pdfauthor = {Stanislav Kruchinin}, + pdfsubject = {disser}, + pdfstartview = {FitH}, + pdfborder = {0 0 0}, + bookmarksopen = true, + bookmarksnumbered = true, + bookmarksopenlevel = 2, + colorlinks = true, linkcolor = darkblue, + citecolor = darkblue, filecolor = darkblue, + menucolor = darkblue, urlcolor = darkblue +} + +\IfFileExists{url.sty}{\usepackage{url}}{\newcommand\url{\texttt}} + +\usepackage[T2A]{fontenc} +\usepackage[cp1251]{inputenc} +\usepackage[english,russian]{babel} + +\usepackage{microtype} + +\MakeShortVerb{\|} + +\def\file#1{\texttt{#1}} +\def\pkg#1{\textsf{#1}} +\def\cmd#1{\texttt{#1}} + +\def\deflabel#1{\ttfamily #1\hfill} +\newenvironment{deflist}[1]{% + \begin{list}{}{% + \settowidth\labelwidth{\ttfamily #1}% + \setlength\leftmargin\labelwidth + \addtolength\leftmargin\labelsep + \let\makelabel\deflabel} +}{\end{list}} + +\newcommand\DescribePackage[1]{% + \DescribeEnv{#1}\index{Пакеты!\texttt{#1}} +} + +\newcommand\DescribeCounter[1]{% + \DescribeMacro{#1}\index{Счетчики!\texttt{#1}} +} + +\newcommand\DescribeOption[1]{ + \DescribeMacro{#1}\index{Опции!\texttt{#1}} +} + +\makeatletter + \def\IndexParms{% + \parindent \z@ + \columnsep 15pt + \parskip 0pt plus 1pt + \rightskip 15pt + \mathsurround \z@ + \parfillskip=-15pt + \small + \def\@idxitem{\normalfont\par\hangindent 30pt\bfseries}% + \def\subitem{\normalfont\par\hangindent 30pt}% + \def\subsubitem{\normalfont\par\hangindent 30pt\hspace*{15pt}}% + \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}% + } + \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi + \columnseprule \z@ \columnsep 35\p@ + \twocolumn[\index@prologue]% + \IndexParms \let\item\@idxitem \ignorespaces} + \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} +\makeatother + +\setlength\hfuzz{20pt} +\hbadness=10000 + +\makeindex + +\GetFileInfo{disser.drv} + +\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{titledefs.dtx} + \DocInput{titlepage.dtx} + \DocInput{bachelor.dtx} + \DocInput{specialist.dtx} + \DocInput{master.dtx} + \DocInput{candidate.dtx} + \DocInput{doctor.dtx} + \DocInput{autoref.dtx} + \DocInput{toc.dtx} + \DocInput{custom.dtx} + \IndexPrologue{\section{Предметный указатель}} + \printindex +\end{document} +%</driver> +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \title{\pkg{disser} "--- пакет для оформления диссертаций} +% \date{Версия \fileversion\\[6pt]\filedate} +% \author{Станислав Кручинин\\[6pt] +% \normalsize E-mail: +% \href{mailto:stanislav.kruchinin@gmail.com} +% {\texttt{stanislav.kruchinin@gmail.com}}} +% +% \maketitle +% +% \section*{Обзор документации} +% +% Документация пакета состоит из следующих файлов: +% \begin{deflist}{README, README.ru } +% \item[\href{file:manual.pdf}{manual.pdf}] +% Руководство пользователя. +% \item[README, README.ru] +% Информация о сборке и установке пакета. +% \item[ChangeLog] +% История версий. +% \end{deflist} +% +% Документированные исходные тексты: +% \begin{deflist}{README, README.ru } +% \item[\href{file:disser.pdf}{disser.dtx}] +% Исходный текст класса \pkg{disser} (данный файл). +% \item[\href{file:gost732.pdf}{gost732.dtx}] +% Исходный текст класса \pkg{gost732} для оформления документов в +% соответствии с ГОСТ 7.32-2001. +% \end{deflist} +% +% \clearpage +% \tableofcontents +% +% \section{Исходный текст класса}\parindent=0pt +% +% \begin{macrocode} + +%<*disser> +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{disser}[2017/03/03 1.4.1 Document class for dissertations] + +% \end{macrocode} +% Подключение пакета \pkg{kvoptions} для обработки опций в формате +% <<ключ = значение>>. +% \DescribePackage{kvoptions} +% \begin{macrocode} +\RequirePackage{kvoptions} + +% \end{macrocode} +% Определение операторов условного выполнения: +% \begin{itemize} +% \item подключение пакета \pkg{ifpdf}, определяющего команду |\ifpdf|. +% \DescribePackage{ifpdf} +% \begin{macrocode} +\RequirePackage{ifpdf} + +% \end{macrocode} +% \item подключение пакета \pkg{ifthen} для построчных сравнений. +% \DescribePackage{ifthen} +% \begin{macrocode} +\RequirePackage{ifthen} + +% \end{macrocode} +% \item Англоязычная версия титульного листа. +% \begin{macrocode} +\newif\if@titlepage@en\@titlepage@enfalse +% \end{macrocode} +% \item Разрешено оставлять одну колонку при двухколонном наборе. +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \item Отображение титульного листа (включено). +% \begin{macrocode} +\newif\if@titlepage\@titlepagetrue +% \end{macrocode} +% \item Главы начинаются только с нечетных страниц (отключено). +% \begin{macrocode} +\newif\if@openright\@openrightfalse +% \end{macrocode} +% \item Типы документов (по умолчанию candidate). +% \begin{macrocode} +\newif\ifDis@bachelor\Dis@bachelorfalse +\newif\ifDis@specialist\Dis@specialistfalse +\newif\ifDis@master\Dis@masterfalse +\newif\ifDis@candidate\Dis@candidatetrue +\newif\ifDis@doctor\Dis@doctorfalse +\newif\ifDis@autoref\Dis@autoreffalse +% \end{macrocode} +% \item Отображение УДК на титульном листе (отключено). +% \begin{macrocode} +\newif\ifDis@libcat\Dis@libcatfalse +% \end{macrocode} +% \item Отображение грифа секретности на титульном листе (отключено). +% \begin{macrocode} +\newif\ifDis@classified\Dis@classifiedfalse +% \end{macrocode} +% \item Отображение подписей диссертанта и ученого секретаря (отключено). +% \begin{macrocode} +\newif\ifDis@facsimile\Dis@facsimilefalse +% \end{macrocode} +% \item Подключение \pkg{hyperref} (отключено). +% \begin{macrocode} +\newif\ifDis@href\Dis@hreffalse +% \end{macrocode} +% \item Подключение \pkg{subcaption} (отключено). +% \begin{macrocode} +\newif\ifDis@subf\Dis@subffalse +% \end{macrocode} +% \item Шрифт Times как основной (отключено). +% \begin{macrocode} +\newif\ifDis@times\Dis@timesfalse +% \end{macrocode} +% \item Поддержка математических шрифтов MathTime Pro (отключено). +% \begin{macrocode} +\newif\ifDis@mtpro\Dis@mtprofalse +% \end{macrocode} +% \item Подключение \pkg{natbib} (отключено). +% \begin{macrocode} +\newif\ifDis@natbib\Dis@natbibfalse +% \end{macrocode} +% \item Использовать цветные ссылки (отключено). +% \begin{macrocode} +\newif\ifDis@colorlinks\Dis@colorlinksfalse +% \end{macrocode} +% \item Исправление знаков интегралов на более привычные (отключено). +% \begin{macrocode} +\newif\ifDis@fixint\Dis@fixintfalse +% \end{macrocode} +% \end{itemize} +% +% \subsection{Опции класса} +% +% Подключение пакета \pkg{hyperref} и необходимых настроек. +% \begin{macrocode} +\DeclareOption{href}{\Dis@hreftrue} +% \end{macrocode} +% Подключение пакета \pkg{subcaption} и необходимых настроек. +% \begin{macrocode} +\DeclareOption{subf}{\Dis@subftrue} +% \end{macrocode} +% Отображение УДК на титульном листе. +% \begin{macrocode} +\DeclareOption{libcat}{\Dis@libcattrue} +% \end{macrocode} +% Отображение грифа секретности. +% \begin{macrocode} +\DeclareOption{classified}{\Dis@classifiedtrue} +% \end{macrocode} +% Отображение подписей диссертанта и ученого секретаря. +% \begin{macrocode} +\DeclareOption{facsimile}{\Dis@facsimiletrue} +% \end{macrocode} +% Подключение пакета \pkg{natbib} и необходимых настроек. +% \begin{macrocode} +\DeclareOption{natbib}{\Dis@natbibtrue} +% \end{macrocode} +% Исправление знаков интегралов на более привычные. +% \begin{macrocode} +\DeclareOption{fixint}{\Dis@fixinttrue} +% \end{macrocode} +% Создание цветных ссылок. +% \begin{macrocode} +\DeclareOption{colorlinks}{\Dis@colorlinkstrue} +% \end{macrocode} +% Размеры листов. +% \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{16pt}{\renewcommand\@ptsize{16}} +\DeclareOption{18pt}{\renewcommand\@ptsize{18}} +\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} +% Если указана эта опция, то блоки текста в списке литературы будут печататься +% на новых строках и с отступом. +% \begin{macrocode} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par} + }% +} + +% \end{macrocode} +% Тип диссертации. +% \begin{macrocode} +\DeclareOption{bachelor}{% + \Dis@bachelortrue + \Dis@specialistfalse + \Dis@masterfalse + \Dis@candidatefalse + \Dis@doctorfalse + \Dis@autoreffalse +} +\DeclareOption{specialist}{% + \Dis@bachelorfalse + \Dis@specialisttrue + \Dis@masterfalse + \Dis@candidatefalse + \Dis@doctorfalse + \Dis@autoreffalse +} +\DeclareOption{master}{% + \Dis@bachelorfalse + \Dis@specialistfalse + \Dis@mastertrue + \Dis@candidatefalse + \Dis@doctorfalse + \Dis@autoreffalse +} +\DeclareOption{candidate}{% + \Dis@bachelorfalse + \Dis@specialistfalse + \Dis@masterfalse + \Dis@candidatetrue + \Dis@doctorfalse + \Dis@autoreffalse +} +\DeclareOption{doctor}{% + \Dis@bachelorfalse + \Dis@specialistfalse + \Dis@masterfalse + \Dis@candidatefalse + \Dis@doctortrue + \Dis@autoreffalse +} +\DeclareOption{autoref}{% + \Dis@bachelorfalse + \Dis@specialistfalse + \Dis@masterfalse + \Dis@candidatefalse + \Dis@doctorfalse + \Dis@autoreftrue +} + +% \end{macrocode} +% Обработка опций в формате <<ключ-значение>>. +% \begin{macrocode} +\SetupKeyvalOptions{ + family=Dis, + prefix=Dis@ +} + +\DeclareStringOption{substylefile} + +% \end{macrocode} +% Выполнение опций по умолчанию. +% \begin{macrocode} +\ExecuteOptions{a4paper,14pt,oneside,titlepage,onecolumn,final,openany,candidate} +% \end{macrocode} +% Выполнение пользовательских опций. +% \begin{macrocode} +\ProcessKeyvalOptions{Dis} +\ProcessOptions + +% \end{macrocode} +% Файл с описанием разметки титульного листа по умолчанию. +% \begin{macrocode} +\ifx\Dis@substylefile\@empty + \ifDis@bachelor \renewcommand*{\Dis@substylefile}{bachelor.rtx}\fi + \ifDis@specialist \renewcommand*{\Dis@substylefile}{specialist.rtx}\fi + \ifDis@master \renewcommand*{\Dis@substylefile}{master.rtx}\fi + \ifDis@candidate \renewcommand*{\Dis@substylefile}{candidate.rtx}\fi + \ifDis@doctor \renewcommand*{\Dis@substylefile}{doctor.rtx}\fi + \ifDis@autoref \renewcommand*{\Dis@substylefile}{autoref.rtx}\fi +\fi + +% \end{macrocode} +% Подключение стиля документа. +% \begin{macrocode} +\AtEndOfClass{\input{\Dis@substylefile}} + +% \end{macrocode} +% Определение команд изменения регистра |\MakeTextUppercase| и +% |\MakeTextLowercase|. +% \DescribePackage{textcase} +% \begin{macrocode} +\RequirePackage[overload]{textcase} + +% \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} +% Команда, объединяющая |\newlength| и |\setlength|. +% \DescribeMacro{\Dis@deflength}\index{Макросы!\verb*+\Dis"@deflength+} +% \begin{macrocode} +\providecommand\Dis@deflength[2]{\newlength{#1}\setlength{#1}{#2}} +\providecommand\ifundeflength[2]{% +\ifx#1\undefined \newlength{#1}\setlength{#1}{#2} \else \relax \fi +} + +% \end{macrocode} +% +% \subsection{Параметры текста} +% +% \DescribeMacro{\lineskip}\index{Интервалы!\verb*+\lineskip+} +% \DescribeMacro{\normallineskip}\index{Интервалы!\verb*+\normallineskip+} +% Вертикальный интервал между строками. Упоминаемый здесь и далее макрос +% |\p@| определяет стандартную единицу длины. По умолчанию она равна +% английскому пункту (pt). +% \begin{macrocode} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} + +% \end{macrocode} +% \DescribeMacro{\Dis@singlespacing} \index{Макросы!\verb*+\Dis"@singlespacing+} +% \DescribeMacro{\Dis@onehalfspacing}\index{Макросы!\verb*+\Dis"@onehalfspacing+} +% \DescribeMacro{\Dis@doublespacing} \index{Макросы!\verb*+\Dis"@doublespacing+} +% Характерные величины межстрочнах интервалов. +% \begin{macrocode} +\newcommand\Dis@singlespacing {\renewcommand\baselinestretch{1}\normalsize} +\newcommand\Dis@onehalfspacing{\renewcommand\baselinestretch{1.5}\normalsize} +\newcommand\Dis@doublespacing {\renewcommand\baselinestretch{2}\normalsize} +% \end{macrocode} +% Межстрочный интервал по умолчанию. +% \begin{macrocode} +\Dis@onehalfspacing + +% \end{macrocode} +% \DescribeMacro{\parindent}\index{Интервалы!\verb*+\parindent+} +% Абзацный отступ. +% \begin{macrocode} +\setlength\parindent{5ex} + +% \end{macrocode} +% Интервал между абзацами (добавляется к межстрочному). +% \DescribeMacro{\parskip}\index{Интервалы!\verb*+\parskip+} +% \begin{macrocode} +\setlength\parskip{0\p@ \@plus \p@} + +% \end{macrocode} +% +% Интервал между колонками текста. +% \DescribeMacro{\columnsep}\index{Интервалы!\verb*+\columnsep+} +% \begin{macrocode} +\setlength\columnsep{10\p@} + +% \end{macrocode} +% +% Ширина разделителя (линии) между колонками текста (по умолчанию его нет). +% \DescribeMacro{\columnseprule}\index{Интервалы!\verb*+\columnseprule+} +% \begin{macrocode} +\setlength\columnseprule{0\p@} + +% \end{macrocode} +% Характерные величины штрафов. Штраф --- мера <<красоты>> разбиения +% абзаца на строки. Чем больше величина, тем менее красиво. +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 + +% \end{macrocode} +% Всегда ставить отступ в первой строке первого абзаца. +% \begin{macrocode} +\let\@afterindentfalse\@afterindenttrue +\@afterindenttrue + +% \end{macrocode} +% Перенос в словах с дефисом. +% \begin{macrocode} +\lccode`\-=`\- +\defaulthyphenchar=127 +% \end{macrocode} +% Пустое определение макроса для вывода сегодняшней даты (переопределяется +% в \pkg{babel}). +% \DescribeMacro{\today}\index{Макросы!\verb*+\today+} +% \begin{macrocode} +\newcommand\today{} + +%</disser> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/disser.ins b/macros/latex/contrib/disser/src/disser.ins new file mode 100644 index 0000000000..221baf6b03 --- /dev/null +++ b/macros/latex/contrib/disser/src/disser.ins @@ -0,0 +1,58 @@ +%% +%% This file is part of the standard disser bundle. It extracts the +%% files from disser.dtx to be installed in the TeX hierarchy. +%% +%% This file may not be changed unless it is distributed under a +%% different name, accompanied by a copy of the original file. +%% The author of the changes and their scope should be clearly +%% documented, so that questions can be distributed to the proper author. +%% +\def\batchfile{disser.ins} + +\input docstrip +\preamble + +Copyright (c) Stanislav Kruchinin. +All rights reserved. + +This file is part of the disser package. + +\endpreamble + +\def\ffrom#1{\from{#1.dtx}{#1}} +\def\rtxfile#1{\file{#1.rtx}{\from{#1.dtx}{#1}}} +\def\clsfile#1{\file{#1.cls}{\from{#1.dtx}{#1}}} + +\keepsilent +\askforoverwritefalse + +\generate{% + \usedir{tex/latex/disser} + \file{disser.cls}{% + \ffrom{disser} + \ffrom{counters} + \ffrom{part} + \ffrom{chapter} + \ffrom{sections} + \ffrom{lists} + \ffrom{floats} + \ffrom{footnote} + \ffrom{env} + \ffrom{page} + \ffrom{titlepage} + \ffrom{toc} + \ffrom{custom} + } + \rtxfile{titledefs} + \rtxfile{bachelor} + \rtxfile{specialist} + \rtxfile{master} + \rtxfile{candidate} + \rtxfile{doctor} + \rtxfile{autoref} + \clsfile{gost732} + \nopostamble + \usedir{bibtex/bst/disser}% +} +\endbatchfile +\endinput diff --git a/macros/latex/contrib/disser/src/doctor.dtx b/macros/latex/contrib/disser/src/doctor.dtx new file mode 100644 index 0000000000..e528782e1a --- /dev/null +++ b/macros/latex/contrib/disser/src/doctor.dtx @@ -0,0 +1,146 @@ +% \begin{macrocode} + +%<doctor>\ProvidesFile{doctor.rtx} + +%<*doctor> +% \end{macrocode} +% \subsubsection{Стиль докторской диссертации} +% +% Нумерация. +% \begin{macrocode} +\newcommand\doctor@the{\default@the} +\doctor@the + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle[1][]{ +\ifthenelse{\equal{#1}{en}}{\@titlepage@entrue}{\@titlepage@enfalse} +\if@titlepage@en + \def\appos{Head of Department} + \def\sconname{Scientific Consultant} + \def\sconlabel{\sconname} + \def\sconsndname{\sconname} + \def\sconsndlabel{\sconname} + \def\topicname{Topic} + \def\asmanuscript{As Manuscript} +\fi + +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \DescribeMacro{\sixthskip}\index{Интервалы!\verb*+\sixthskip+} +% \DescribeMacro{\specskip}\index{Интервалы!\verb*+\specskip+} +% \begin{macrocode} +\ifx\firstskip\undefined + \newlength\firstskip + \ifx\@libcatnum\empty + \setlength\firstskip{4ex} + \else + \setlength\firstskip{2ex} + \fi +\fi +\ifundeflength\secondskip{3cm} +\ifundeflength\thirdskip{1cm} +\ifundeflength\fourthskip{1cm} +\ifundeflength\fifthskip{1cm} +\ifundeflength\sixthskip{0cm} +\ifundeflength\libcatskip{0cm} +\ifundeflength\specskip{-6pt} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \DescribeMacro{\authorfont}\index{Макросы!\verb*+\authorfont+} +% \DescribeMacro{\specfont}\index{Макросы!\verb*+\specfont+} +% \begin{macrocode} +\def\titlefont{\normalsize} +\def\topicfont{\Large\bfseries} +\def\authorfont{\large} +\def\specfont{\normalsize} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} +% \end{macrocode} +% \paragraph{Название организации} +% \begin{macrocode} +\begin{center} + \instfont\@institution\par +\end{center} +\vskip\firstskip +\begin{flushright} +% \end{macrocode} +% Гриф секретности +% \begin{macrocode} + \ifDis@classified\classify\fi +% \end{macrocode} +% На правах рукописи +% \begin{macrocode} + \asmanuscript +% \end{macrocode} +% Факсимиле +% \begin{macrocode} + \ifDis@facsimile\facsimile\fi +% \end{macrocode} +% Номер УДК +% \begin{macrocode} + \ifx\@libcatnum\empty\else + \vskip\libcatskip + {\libcatname\ \@libcatnum} + \fi +\end{flushright} +\begin{center} +% \end{macrocode} +% Автор +% \begin{macrocode} + \vskip\secondskip + {\authorfont\@author} +% \end{macrocode} +% Название диссертации +% \begin{macrocode} + \vskip\thirdskip + {\topicfont\@topic\par} +% \end{macrocode} +% Шифр и наименование специальности +% \begin{macrocode} + \vskip\fourthskip + {\specfont\@specnum~--\ \@spec} + \ifx\@specsndnum\empty\else + \vskip\specskip + {\specfont\@specsndnum~--\ \@specsnd} + \fi +% \end{macrocode} +% Диссертация на соискание ученой степени... +% \begin{macrocode} + \vskip\fifthskip + {\titlefont\@title} +\end{center} +% \end{macrocode} +% Научный консультант +% \begin{macrocode} +\ifx\@scon\empty\else + \vskip\sixthskip + \disserfield{scon} +\fi +\ifx\@sconsnd\empty\else + \vskip\sixthskip + \disserfield{sconsnd} +\fi +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} +\vfill +\begin{center} + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</doctor> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/dtx.ist b/macros/latex/contrib/disser/src/dtx.ist new file mode 100644 index 0000000000..850e35ce92 --- /dev/null +++ b/macros/latex/contrib/disser/src/dtx.ist @@ -0,0 +1,5 @@ +item_0 "\n \\vskip12pt \\item" +item_x1 "\n \\vskip6pt \\subitem" +delim_0 "\\hfill" +delim_1 "\\leaders\\hbox to 1em{\\hss.\\hss}\\hfill" +delim_2 "\\leaders\\hbox to 1em{\\hss.\\hss}\\hfill" diff --git a/macros/latex/contrib/disser/src/env.dtx b/macros/latex/contrib/disser/src/env.dtx new file mode 100644 index 0000000000..c1372c1394 --- /dev/null +++ b/macros/latex/contrib/disser/src/env.dtx @@ -0,0 +1,193 @@ + +% \iffalse +%%% From File: env.dtx +% \fi +% +% \begin{macrocode} + +%<*env> +% \end{macrocode} +% \subsection{Окружения} +% +% \DescribeEnv{description}\index{Окружения!\verb*+description+} +% \subsubsection{Примечание} +% \begin{macrocode} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\endlist} + +% \end{macrocode} +% \DescribeMacro{\descriptionlabel}\index{Макросы!\verb*+\descriptionlabel+} +% \begin{macrocode} +\newcommand*\descriptionlabel[1]{\hspace\labelsep\normalfont\bfseries #1} + +% \end{macrocode} +% \DescribeMacro{\abstractnamefont}\index{Макросы!\verb*+\abstractnamefont+} +% \DescribeMacro{\abstractfont}\index{Макросы!\verb*+\abstractfont+} +% \DescribeMacro{\postabstract}\index{Макросы!\verb*+\postabstract+} +% \begin{macrocode} +\newcommand\abstractnamefont{\bfseries\small} +\newcommand\abstractfont{\small} +\newcommand\postabstract{\par\vfil\null} + +% \end{macrocode} +% \DescribeEnv{abstract}\index{Окружения!\verb*+abstract+} +% \subsubsection{Аннотация} +% \begin{macrocode} +\if@titlepage + \newenvironment{abstract}{ + \thispagestyle{empty} + \@beginparpenalty\@lowpenalty + \begin{center}% + \abstractnamefont\abstractname + \@endparpenalty\@M + \end{center}\abstractfont + }{\postabstract} +\else + \newenvironment{abstract}{ + \if@twocolumn + \section*{\abstractname} + \else + \begin{center} + {\abstractnamefont\vspace{-.5em}\vspace{\z@}}% + \end{center}\abstractfont + \quotation + \fi + }{\if@twocolumn\else\endquotation\fi} +\fi + +% \end{macrocode} +% \DescribeEnv{quotation}\index{Окружения!\verb*+quotation+} +% \subsubsection{Цитирование} +% \begin{macrocode} +\newenvironment{quotation}{ + \list{}{ + \listparindent 1.5em + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@ + } + \item\relax +}{\endlist} + +% \end{macrocode} +% \DescribeEnv{quote}\index{Окружения!\verb*+quote+} +% \subsubsection{Выдержка} +% \begin{macrocode} +\newenvironment{quote}{ + \list{}{\rightmargin\leftmargin} + \item\relax +}{\endlist} + +% \end{macrocode} +% \DescribeEnv{titlepage}\index{Окружения!\verb*+titlepage+} +% \subsubsection{Титульный лист} +% \begin{macrocode} +\newenvironment{titlepage}{ + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty} + \setcounter{page}\@ne +}{ + \if@restonecol\twocolumn\else\newpage\fi + \if@twoside\else\setcounter{page}\@ne\fi +} + +% \end{macrocode} +% +% \DescribeEnv{figure}\index{Окружения!\verb*+figure+} +% \DescribeEnv{figure*}\index{Окружения!\verb*+figure*+} +% \subsubsection{Рисунок} +% \begin{macrocode} +\newenvironment{figure}{\@float{figure}}{\end@float} +\newenvironment{figure*}{\@dblfloat{figure}}{\end@dblfloat} +% \end{macrocode} +% +% \DescribeEnv{table}\index{Окружения!\verb*+table+} +% \DescribeEnv{table*}\index{Окружения!\verb*+table*+} +% \subsubsection{Таблица} +% \begin{macrocode} +\newenvironment{table}{\@float{table}}{\end@float} +\newenvironment{table*}{\@dblfloat{table}}{\end@dblfloat} +% \end{macrocode} +% +% \subsubsection{Генератор окружений типа <<теорема>>} +% +% \DescribeMacro{\newtheorem}\index{Макросы!\verb*+\newtheorem+} +% Переопределяем |\newtheorem| так, чтобы автоматически создавались +% параметры формата теорем. +% \begin{macrocode} + +\def\newtheorem#1{% +% \end{macrocode} +% \DescribeMacro{\theoremstyle}\index{Макросы!\verb*+\theoremstyle+} +% \DescribeMacro{\thetheoremstyle}\index{Макросы!\verb*+\thetheoremstyle+} +% \DescribeMacro{\postthetheorem}\index{Макросы!\verb*+\postthetheorem+} +% \DescribeMacro{\opargtheorem}\index{Макросы!\verb*+\opargtheorem+} +% \DescribeMacro{\preopargtheorem}\index{Макросы!\verb*+\preopargtheorem+} +% \DescribeMacro{\postopargtheorem}\index{Макросы!\verb*+\postopargtheorem+} +% \begin{macrocode} + { +% \end{macrocode} +% Стиль текста теоремы. +% \begin{macrocode} + \global\@namedef{#1style}{\itshape} +% \end{macrocode} +% Стиль заголовка и номера теоремы. +% \begin{macrocode} + \global\@namedef{the#1style}{\bfseries} +% \end{macrocode} +% Символ после номера. +% \begin{macrocode} + \global\@namedef{postthe#1}{.} +% \end{macrocode} +% Стиль опционального аргумента (текста в скобках после заголовка и номера). +% \begin{macrocode} + \global\@namedef{oparg#1style}{\upshape} +% \end{macrocode} +% Символы, окружающие опциональный аргумент (по умолчанию --- круглые скобки). +% \begin{macrocode} + \global\@namedef{preoparg#1}{(} + \global\@namedef{postoparg#1}{)} + } + \@ifnextchar[{\@othm{#1}}{\@nthm{#1}}% +} + +% \end{macrocode} +% У команд |\@begintheorem| и |\@opargbegintheorem| изменены аргументы, +% чтобы можно было использовать обобщенное форматирование. +% \DescribeMacro{\@xthm}\index{Макросы!\verb*+"\"@xthm+} +% \DescribeMacro{\@ythm}\index{Макросы!\verb*+"\"@ythm+} +% \DescribeMacro{\@begintheorem}\index{Макросы!\verb*+"\"@begintheorem+} +% \DescribeMacro{\@opargbegintheorem}\index{Макросы!\verb*+"\"@opargbegintheorem+} +% \DescribeMacro{\@endtheorem}\index{Макросы!\verb*+"\"@endtheorem+} +% \begin{macrocode} +\def\@xthm#1#2{% + \@begintheorem{#1}{#2}\ignorespaces} +\def\@ythm#1#2[#3]{% + \@opargbegintheorem{#1}{#2}{#3}\ignorespaces} + +\def\@begintheorem#1#2{\trivlist + \item[\hskip\labelsep% + {\csname the#1style\endcsname #2\ % + \csname the#1\endcsname\unskip\csname postthe#1\endcsname}]% + \csname #1style\endcsname% +} + +\def\@opargbegintheorem#1#2#3{\trivlist + \item[\hskip\labelsep% + {\csname the#1style\endcsname #2\ \csname the#1\endcsname}\ % + {\csname oparg#1style\endcsname% + \csname preoparg#1\endcsname #3% + \csname postoparg#1\endcsname}]% + \csname #1style\endcsname% +} + +\def\@endtheorem{\endtrivlist} + +%</env> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/floats.dtx b/macros/latex/contrib/disser/src/floats.dtx new file mode 100644 index 0000000000..0fff4ca0b1 --- /dev/null +++ b/macros/latex/contrib/disser/src/floats.dtx @@ -0,0 +1,229 @@ + +% \iffalse +%%% From File: floats.dtx +% \fi +% +% \begin{macrocode} + +%<*floats> +% \end{macrocode} +% +% \subsection{Плавающие объекты} +% \subsubsection{Параметры размещения плавающих объектов на странице} +% \paragraph{Количество объектов} +% \begin{itemize} +% \item Максимальное количество плавающих объектов, размещаемое вверху +% страницы (при двухколонном наборе --- вверху колонки). +% \DescribeCounter{topnumber} +% \begin{macrocode} +\setcounter{topnumber}{2} +% \end{macrocode} +% \item Максимальное количество плавающих объектов, размещаемое внизу +% страницы (при двухколонном наборе --- внизу колонки). +% \DescribeCounter{bottomnumber} +% \begin{macrocode} +\setcounter{bottomnumber}{1} +% \end{macrocode} +% \item Максимальное количество плавающих объектов, размещаемое +% на странице (при двухколонном наборе --- в колонке). +% \DescribeCounter{totalnumber} +% \begin{macrocode} +\setcounter{totalnumber}{3} +% \end{macrocode} +% \item При наборе в две колонки: максимальное количество плавающих +% объектов шириной во всю страницу, которое разрешается разместить вверху +% страницы +% \begin{macrocode} +\setcounter{dbltopnumber}{2} +% \end{macrocode} +% \end{itemize} +% +% \paragraph{Величина места, занимаемого плавающими объектами} +% \begin{itemize} +% \item Максимальная доля страницы по высоте, которую могут занимать +% плавающие объекты, размещаемые вверху страницы. +% \DescribeMacro{\topfraction}\index{Макросы!\verb*+\topfraction+} +% \begin{macrocode} +\renewcommand\topfraction{.7} +% \end{macrocode} +% \item Максимальная доля страницы по высоте, которую могут занимать +% плавающие объекты, размещаемые внизу страницы. +% \DescribeMacro{\bottomfraction}\index{Макросы!\verb*+\bottomfraction+} +% \begin{macrocode} +\renewcommand\bottomfraction{.3} +% \end{macrocode} +% \item Минимальная доля страницы, которую должен занимать текст, а не +% плавающие объекты на обычной странице (к страницам, создаваемым +% \LaTeX{}'ом +% специально для размещения плавающих объектов при обработке +% необязательного аргумента |p|, это не относится). +% \DescribeMacro{\textfraction}\index{Макросы!\verb*+\textfraction+} +% \begin{macrocode} +\renewcommand\textfraction{.2} +% \end{macrocode} +% \item Параметр, аналогичный предыдущему, относящийся к страницам для +% плавающих объектов. +% \DescribeMacro{\floatpagefraction}\index{Макросы!\verb*+\floatpagefraction+} +% \begin{macrocode} +\renewcommand\floatpagefraction{.5} +% \end{macrocode} +% \item Тоже, что |\topfraction|, применительно к иллюстрациям (таблицам) +% шириной в целую страницу при двухколонном наборе. +% \DescribeMacro{\dbltopfraction}\index{Макросы!\verb*+\dbltopfraction+} +% \begin{macrocode} +\renewcommand\dbltopfraction{.7} +% \end{macrocode} +% \item Тоже, что |\floatpagefraction|, применительно к иллюстрациям +% (таблицам) шириной в целую страницу при двухколонном наборе. +% \DescribeMacro{\dblfloatpagefraction}\index{Макросы!\verb*+\dblfloatpagefraction+} +% \begin{macrocode} +\renewcommand\dblfloatpagefraction{.5} +% \end{macrocode} +% \end{itemize} +% +% \subsubsection{Параметры формата подписей} +% +% \DescribeMacro{\abovecaptionskip}\index{Интервалы!\verb*+\abovecaptionskip+} +% Вертикальный интервал перед подписью. +% \begin{macrocode} +\Dis@deflength\abovecaptionskip{10\p@} +% \end{macrocode} +% \DescribeMacro{\belowcaptionskip}\index{Интервалы!\verb*+\belowcaptionskip+} +% Вертикальный интервал за подписью. +% \begin{macrocode} +\Dis@deflength\belowcaptionskip{0\p@} +% \end{macrocode} +% \DescribeMacro{\captionlabeldelim}\index{Макросы!\verb*+\captionlabeldelim+} +% Разделитель метки (постоянная часть + номер) и текста подписи. +% \begin{macrocode} +\newcommand\captionlabeldelim{.} +% \end{macrocode} +% \DescribeMacro{\captionfont}\index{Макросы!\verb*+\captionfont+} +% Шрифт подписи. +% \begin{macrocode} +\newcommand\captionfont{\small} +% \end{macrocode} +% \DescribeMacro{\captionlabelfont}\index{Макросы!\verb*+\captionlabelfont+} +% Шрифт метки. +% \begin{macrocode} +\newcommand\captionlabelfont{\small\selectfont} +% \end{macrocode} +% \DescribeMacro{\@makecaption}\index{Макросы!\verb+"\"@makecaption+} +% Низкоуровневая команда, создающая подпись. +% \begin{macrocode} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{{\captionlabelfont #1\captionlabeldelim} {\captionfont #2}}% + \ifdim \wd\@tempboxa >\hsize + {{\captionlabelfont #1\captionlabeldelim} {\captionfont #2}}\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip +} + +% \end{macrocode} +% +% \subsubsection{figure} +% +% \DescribeMacro{\thefigure}\index{Макросы!\verb*+\thefigure+} +% Формат номера. +% \begin{macrocode} +\renewcommand\thefigure{\ifnum \c@chapter>\z@\thechapter.\fi\@arabic\c@figure} + +% \end{macrocode} +% \DescribeMacro{\fps@figure} +% Дескриптор положения плавающих объектов типа |figure|. +% \begin{macrocode} +\def\fps@figure{tbp} +% \end{macrocode} +% \DescribeMacro{\ftype@figure} +% Номер типа плавающего объекта |figure|. +% \begin{macrocode} +\def\ftype@figure{1} +% \end{macrocode} +% \DescribeMacro{\ext@figure} +% Расширение файла со списком иллюстраций. +% \begin{macrocode} +\def\ext@figure{lof} +% \end{macrocode} +% \DescribeMacro{\fnum@figure} +% Формат заголовка подписи (Рис.~1). +% \begin{macrocode} +\def\fnum@figure{\figurename~\thefigure} + +% \end{macrocode} +% +% \subsubsection{table} +% +% \DescribeMacro{\thetable}\index{Макросы!\verb*+\thetable+} +% Формат номера. +% \begin{macrocode} +\renewcommand\thetable{\ifnum \c@chapter>\z@\thechapter.\fi\@arabic\c@table} + +% \end{macrocode} +% +% \DescribeMacro{\arraycolsep}\index{Интервалы!\verb*+\arraycolsep+} +% Промежуток между колонками в |array|. +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +% \end{macrocode} +% \DescribeMacro{\tabcolsep}\index{Интервалы!\verb*+\tabcolsep+} +% Промежуток между колонками в таблице. +% \begin{macrocode} +\setlength\tabcolsep{6\p@} +% \end{macrocode} +% \DescribeMacro{\arrayrulewidth}\index{Интервалы!\verb*+\arrayrulewidth+} +% Толщина линейки в |array|. +% \begin{macrocode} +\setlength\arrayrulewidth{.4\p@} +% \end{macrocode} +% \DescribeMacro{\doublerulesep}\index{Интервалы!\verb*+\doublerulesep+} +% Промежуток между линиями в двойной линейке |\hrule\hrule|. +% \begin{macrocode} +\setlength\doublerulesep{2\p@} +% \end{macrocode} +% \DescribeMacro{\tabbingsep}\index{Интервалы!\verb*+\tabbingsep+} +% Промежуток между столбцами в окружении |tabular|. +% \begin{macrocode} +\setlength\tabbingsep{\labelsep} +% \end{macrocode} +% Промежуток, добавляемый при наличии сноски при использовании окружения +% |minipage|. +% \begin{macrocode} +\skip\@mpfootins = \skip\footins +% \end{macrocode} +% \DescribeMacro{\fboxsep}\index{Интервалы!\verb*+\fboxsep+} +% Промежуток между линией и текстом в |\fbox|. +% \begin{macrocode} +\setlength\fboxsep{3\p@} +% \end{macrocode} +% \DescribeMacro{\fboxrule}\index{Интервалы!\verb*+\fboxrule+} +% Толщина линии для |\fbox|. +% \begin{macrocode} +\setlength\fboxrule{.4\p@} + +% \end{macrocode} +% \DescribeMacro{\fps@table} +% Описатель положения плавающих объектов типа |table|. +% \begin{macrocode} +\def\fps@table{tbp} +% \end{macrocode} +% \DescribeMacro{\ftype@table} +% Номер типа, ассоциированный с |figure|. +% \begin{macrocode} +\def\ftype@table{2} +% \end{macrocode} +% \DescribeMacro{\ext@table} +% Расширение файла, содержащего сгенерированный список таблиц. +% \begin{macrocode} +\def\ext@table{lot} +% \end{macrocode} +% \DescribeMacro{\fnum@table} +% Формат заголовка подписи (Таблица~1). +% \begin{macrocode} +\def\fnum@table{\tablename~\thetable} + +%</floats> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/footnote.dtx b/macros/latex/contrib/disser/src/footnote.dtx new file mode 100644 index 0000000000..838e06b769 --- /dev/null +++ b/macros/latex/contrib/disser/src/footnote.dtx @@ -0,0 +1,65 @@ + +% \iffalse +%%% From File: footnote.dtx +% \fi +% +% \begin{macrocode} + +%<*footnote> +% \end{macrocode} +% +% \subsection{Сноска} +% +% \end{macrocode} +% \DescribeMacro{\thefootnote}\index{Макросы!\verb+\thefootnote+} +% Формат счетчика сносок. +% \begin{macrocode} +\def\thefootnote{\@arabic\c@footnote} + +% \end{macrocode} +% \DescribeMacro{\thempfootnote}\index{Макросы!\verb+\thempfootnote+} +% Формат счетчика сносок внутри окружения |minipage|. +% \begin{macrocode} +\def\thempfootnote{{\itshape\@alph\c@mpfootnote}} + +% \end{macrocode} +% \DescribeMacro{\footnoterule}\index{Макросы!\verb+\footnoterule+} +% Команда, рисующая линию. +% \begin{macrocode} +\def\footnoterule{% + \kern-3\p@\hrule\@width.4\columnwidth\kern2.6\p@ +} + +% \end{macrocode} +% \DescribeMacro{\prethefootnote}\index{Макросы!\verb+\prethefootnote+} +% \DescribeMacro{\postthefootnote}\index{Макросы!\verb+\postthefootnote+} +% \DescribeMacro{\prefootnotetext}\index{Макросы!\verb+\prefootnotetext+} +% Дополнительный текст до и после номера сноски, перед текстом сноски. +% \begin{macrocode} +\providecommand\prethefootnote{} +\providecommand\postthefootnote{} +\providecommand\prefootnote{\;} +% \end{macrocode} +% \DescribeMacro{\footnoteindent}\index{Интервалы!\verb+\footnoteindent+} +% \begin{macrocode} +\Dis@deflength{\footnoteindent}{\parindent} + +% \end{macrocode} +% \DescribeMacro{\@makefnmark}\index{Макросы!\verb+\@makefnmark+} +% Формат метки сноски. +% \begin{macrocode} +\def\@makefnmark{\hbox{\prethefootnote% +\@textsuperscript{\normalfont\@thefnmark}% +\postthefootnote}} + +% \end{macrocode} +% \DescribeMacro{\@makefntext}\index{Макросы!\verb+\@makefntext+} +% Команда, создающая текст сноски. +% \begin{macrocode} +\newcommand\@makefntext[1]{% + \noindent\hspace{\footnoteindent}% + \@makefnmark\prefootnote #1 +} + +%</footnote> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/gost732.dtx b/macros/latex/contrib/disser/src/gost732.dtx new file mode 100644 index 0000000000..1d29304f00 --- /dev/null +++ b/macros/latex/contrib/disser/src/gost732.dtx @@ -0,0 +1,338 @@ +% \iffalse meta-comment +% +% gost732 -- GOST 7.32-2001 implementation. +% +% Copyright (c) Stanislav Kruchinin +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% http://www.latex-project.org/lppl/lppl-1-3c.txt +% and 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 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% Current Maintainer of this work is Stanislav Kruchinin. +% +% This work consists of the main source file gost732.dtx +% and the derived files +% gost732.cls, gost732.pdf. +% +% Distribution: +% CTAN:macros/latex/contrib/disser/src/gost732.dtx +% +% Unpacking: +% (a) If disser.ins present: +% latex disser.ins +% (b) Without disser.ins: +% tex gost732.dtx +% +% Documentation: +% latex gost732.dtx; ... +% +% Programm calls to get the documentation (example): +% pdflatex gost732.dtx +% makeindex -r -s dtx.ist gost732 +% pdflatex gost732.dtx +% pdflatex gost732.dtx +% +% Installation: +% TDS:tex/latex/disser/ +% TDS:doc/latex/disser/ +% TDS:source/latex/disser/ +% +%<*ignore> +\begingroup + \catcode123=1 % + \catcode125=2 % + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +%</ignore> +%<*install> +\input docstrip.tex +\Msg{************************************************************************} +\Msg{* Installation} +\Msg{* gost732: GOST 7.32-2001 implementation} +\Msg{************************************************************************} + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax +\preamble + +This is a generated file. + +This document class attempts to format LaTeX document according to +GOST 7.32-2001. + +Copyright (C) Stanislav Kruchinin + +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3c of this license or (at your option) any later +version. This version of this license is in + http://www.latex-project.org/lppl/lppl-1-3c.txt +and 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 2005/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +Current Maintainer of this work is Stanislav Kruchinin. + +This work consists of the main source file gost732.dtx +and the derived files + gost732.cls gost732.pdf. + +\endpreamble +\let\MetaPrefix\DoubleperCent + +\generate{% + \usedir{tex/latex/disser}% + \file{gost732.cls}{\from{gost732.dtx}{gost732}}% +} + +\catcode32=13\relax% active space +\let =\space% +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* file into a directory searched by TeX:} +\Msg{*} +\Msg{* gost732.cls} +\Msg{*} +\Msg{* To produce the documentation run the file `gost732.dtx'} +\Msg{* through LaTeX or pdfLaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +%</install> +%<*ignore> +\fi +%</ignore> +%<*driver> +\ProvidesFile{gost732.drv}[2017/03/03 1.5.0 GOST 7.32-2001 implementation] + +\documentclass{ltxdoc} +\usepackage[a4paper,includeheadfoot,nohead,mag=1000, + left=5cm,right=1cm,top=1.5cm,bottom=1.5cm]{geometry} +\usepackage{ifpdf,indentfirst,color} + +\definecolor{darkblue}{rgb}{0,0,.6} +\ifpdf + \usepackage[pdftex,hyperindex,unicode]{hyperref} + \usepackage{cmap} +\else + \usepackage[hypertex]{hyperref} +\fi + +\hypersetup{ + pdftitle = {Documented source code of gost732 class}, + pdfauthor = {Stanislav Kruchinin}, + pdfsubject = {disser}, + pdfstartview = {FitH}, + pdfborder = {0 0 0}, + bookmarksopen = true, + bookmarksnumbered = true, + bookmarksopenlevel = 2, + colorlinks = true, linkcolor = darkblue, + citecolor = darkblue, filecolor = darkblue, + menucolor = darkblue, urlcolor = darkblue +} + +\IfFileExists{url.sty}{\RequirePackage{url}}{\newcommand\url{\texttt}} + +\usepackage[T2A]{fontenc} +\usepackage[cp1251]{inputenc} +\usepackage[english,russian]{babel} + +\MakeShortVerb{\|} + +\def\file#1{\texttt{#1}} +\def\pkg#1{\textsf{#1}} +\def\cmd#1{\texttt{#1}} + +\setlength\hfuzz{20pt} +\hbadness=10000 + +\GetFileInfo{gost732.drv} +\begin{document} + \sloppy + \DocInput{gost732.dtx} +\end{document} +%</driver> +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \title{\pkg{gost732} --- класс для оформления документов в соответствии +% с ГОСТ 7.32-2001} +% \date{Версия \fileversion\\[6pt]\filedate} +% \author{Станислав Кручинин\\[6pt] +% \normalsize E-mail: +% \href{mailto:stanislav.kruchinin@gmail.com} +% {\texttt{stanislav.kruchinin@gmail.com}}} +% +% \maketitle +% +% \tableofcontents +% +% \section{Исходный текст}\parindent=0pt +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesClass{gost732}[2016/07/03 1.4.0 GOST 7.32-2001 implementation] + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{disser}} +\ProcessOptions\relax +\LoadClass[a4paper,14pt]{disser} + +% \end{macrocode} +% +% \subsection{Формат заголовков} +% +% \begin{macrocode} +\renewcommand\tocprethechapter{} +\renewcommand\tocpostthechapter{\@postskip} +\renewcommand\chapteralign{\centering} +\renewcommand\thechapterfont{\Large\bfseries} +\renewcommand\prethechapter{} +\renewcommand\postthechapter{\@postskip} +\renewcommand\afterchapter{\vskip 16\p@} + +\renewcommand\postthesection{\@postskip} +\renewcommand\tocpostthesection{\@postskip} +\renewcommand\sectionindent{1cm} + +\renewcommand\postthesubsection{\@postskip} +\renewcommand\tocpostthesubsection{\@postskip} +\renewcommand\subsectionindent{1cm} + +\renewcommand\postthesubsubsection{\@postskip} +\renewcommand\tocpostthesubsubsection{\@postskip} +\renewcommand\subsubsectionindent{1cm} + +\renewcommand\posttheparagraph{\@postskip} +\renewcommand\tocposttheparagraph{\@postskip} + +\renewcommand\postthesubparagraph{\@postskip} +\renewcommand\tocpostthesubparagraph{\@postskip} + +% \end{macrocode} +% Изменение стандартных заголовков. +% \begin{macrocode} +\AtBeginDocument{\addto\captionsrussian{% +\def\bibname{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRI\CYRS\CYRP\CYRO\CYRL\CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ % +\CYRI\CYRS\CYRT\CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV} +\def\figurename{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk} +\def\appendixname{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE\CYRN\CYRI\CYRE} +\def\contentsname{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA\CYRN\CYRI\CYRE} +\def\listfigurename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRI\CYRL\CYRL\CYRYU\CYRS\CYRT\CYRR\CYRA\CYRC\CYRI\CYRISHRT} +\def\listtablename{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ % +\CYRT\CYRA\CYRB\CYRL\CYRI\CYRC} +}} + +% \end{macrocode} +% Обозначения и сокращения. +% \begin{macrocode} +\renewcommand\defsname{% +\cyr\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN\CYRI\CYRYA\ % +\CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA +} + +\def\nomname{\defsname} + +\renewcommand\defs{% + \nchapter{\defsname} +} +\renewcommand\bibsection{% + \nchapter{\bibname} +} +\renewcommand\introname{% +\cyr\CYRV\CYRV\CYRE\CYRD\CYRE\CYRN\CYRI\CYRE +} +\renewcommand\reviewname{% +\cyr\CYRO\CYRB\CYRZ\CYRO\CYRR\ % +\CYRL\CYRI\CYRT\CYRE\CYRR\CYRA\CYRT\CYRU\CYRR\CYRERY +} +\renewcommand\conclusionname{% +\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU\CYRCH\CYRE\CYRN\CYRI\CYRE +} +% \end{macrocode} +% \subsection{Списки} +% \subsubsection{Нумерованный список} +% +% Формат счетчиков. +% \begin{macrocode} +\renewcommand\theenumi {\asbuk{enumi}} +\renewcommand\theenumii {\arabic{enumii}} +\renewcommand\theenumiii{\roman{enumiii}} +\renewcommand\theenumiv {\Asbuk{enumiv}} + +% \end{macrocode} +% +% Формат меток. +% \begin{macrocode} +\renewcommand\labelenumi {\theenumi)} +\renewcommand\labelenumii {\theenumii)} +\renewcommand\labelenumiii{\theenumiii)} +\renewcommand\labelenumiv {\theenumiv)} + +% \end{macrocode} +% Ссылочные префиксы. +% \begin{macrocode} +\renewcommand\p@enumii {\theenumi} +\renewcommand\p@enumiii {\theenumi.\theenumii} +\renewcommand\p@enumiv {\p@enumiii.\theenumiii} + +% \end{macrocode} +% +% \subsubsection{Маркированный список} +% +% Формат меток. +% \begin{macrocode} +\renewcommand\labelitemi {\normalfont\bfseries \textendash} +\renewcommand\labelitemii {\textbullet} +\renewcommand\labelitemiii{\textasteriskcentered} +\renewcommand\labelitemiv {\textperiodcentered} + +% \end{macrocode} +% +% \subsection{Подписи к плавающим объектам} +% \begin{macrocode} +\captionsetup{format=plain,justification=centering,labelsep=endash} +\captionsetup[longtable]{justification=raggedright,singlelinecheck=false} +\captionsetup[table]{justification=raggedright,singlelinecheck=false} + +% \end{macrocode} +% \subsection{Цитирование} +% Точка с запятой в качестве разделителя номеров цитируемой литературы. +% \begin{macrocode} +\setcitestyle{semicolon} + +% \end{macrocode} +% +% \subsection{Сноска} +% +% \begin{macrocode} +\renewcommand\postthefootnote{$^)$} + +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/disser/src/lists.dtx b/macros/latex/contrib/disser/src/lists.dtx new file mode 100644 index 0000000000..ec84f5ff5d --- /dev/null +++ b/macros/latex/contrib/disser/src/lists.dtx @@ -0,0 +1,108 @@ + +% \iffalse +%%% From File: lists.dtx +% \fi +% +% \begin{macrocode} + +%<*lists> +% \end{macrocode} +% +% \subsection{Списки} +% +% \DescribeMacro{\leftmargini}\index{Интервалы!\verb*+\leftmargini+} +% \DescribeMacro{\leftmarginii}\index{Интервалы!\verb*+\leftmarginii+} +% \DescribeMacro{\leftmarginiii}\index{Интервалы!\verb*+\leftmarginiii+} +% \DescribeMacro{\leftmarginiv}\index{Интервалы!\verb*+\leftmarginiv+} +% \DescribeMacro{\leftmarginv}\index{Интервалы!\verb*+\leftmarginv+} +% \DescribeMacro{\leftmarginvi}\index{Интервалы!\verb*+\leftmarginvi+} +% +% Величины отступов от левого поля окружения до поля перечня для элементов +% указанного уровня вложенности. +% \paragraph{1} +% \begin{macrocode} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\leftmargin \leftmargini +% \end{macrocode} +% \paragraph{2} +% \begin{macrocode} +\setlength\leftmarginii {2.2em} +% \end{macrocode} +% \paragraph{3} +% \begin{macrocode} +\setlength\leftmarginiii {1.87em} +% \end{macrocode} +% \paragraph{4} +% \begin{macrocode} +\setlength\leftmarginiv {1.7em} +% \end{macrocode} +% \paragraph{5 и 6} +% \begin{macrocode} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi {.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi {1em} +\fi +% \end{macrocode} +% Пробел между концом бокса метки и текстом первого элемента +% \begin{macrocode} +\setlength\labelsep{.5em} +% \end{macrocode} +% Номинальная ширина бокса, содержащего метку. +% \begin{macrocode} +\setlength\labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty + +% \end{macrocode} +% +% \subsubsection{Нумерованный список} +% +% Формат счетчиков. +% \begin{macrocode} +\renewcommand\theenumi {\arabic{enumi}} +\renewcommand\theenumii {\asbuk{enumii}} +\renewcommand\theenumiii{\roman{enumiii}} +\renewcommand\theenumiv {\Asbuk{enumiv}} +% \end{macrocode} +% +% \DescribeMacro{\labelenumi}\index{Макросы!\verb*+\labelenumi+} +% \DescribeMacro{\labelenumii}\index{Макросы!\verb*+\labelenumii+} +% \DescribeMacro{\labelenumiii}\index{Макросы!\verb*+\labelenumiii+} +% \DescribeMacro{\labelenumiv}\index{Макросы!\verb*+\labelenumiv+} +% Формат меток. +% \begin{macrocode} +\newcommand\labelenumi {\theenumi.} +\newcommand\labelenumii {\theenumii.} +\newcommand\labelenumiii{\theenumiii.} +\newcommand\labelenumiv {\theenumiv.} +% \end{macrocode} +% Ссылочные префиксы. +% \begin{macrocode} +\renewcommand\p@enumii {\theenumi} +\renewcommand\p@enumiii {\theenumi.\theenumii} +\renewcommand\p@enumiv {\p@enumiii.\theenumiii} +% \end{macrocode} +% +% \subsubsection{Маркированный список} +% +% \DescribeMacro{\labelitemi}\index{Макросы!\verb*+\labelitemi+} +% \DescribeMacro{\labelitemii}\index{Макросы!\verb*+\labelitemii+} +% \DescribeMacro{\labelitemiii}\index{Макросы!\verb*+\labelitemiii+} +% \DescribeMacro{\labelitemiv}\index{Макросы!\verb*+\labelitemiv+} +% Формат меток. +% \begin{macrocode} +\newcommand\labelitemi {\textbullet} +\newcommand\labelitemii {\normalfont\bfseries \textendash} +\newcommand\labelitemiii{\textasteriskcentered} +\newcommand\labelitemiv {\textperiodcentered} +%</lists> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/manual.tex b/macros/latex/contrib/disser/src/manual.tex new file mode 100644 index 0000000000..4ec792172b --- /dev/null +++ b/macros/latex/contrib/disser/src/manual.tex @@ -0,0 +1,500 @@ +\documentclass[a4paper,10pt]{article} +\usepackage[a4paper,includehead,includefoot,mag=1000, + left=3cm,right=2cm,top=1cm,bottom=2cm]{geometry} +\usepackage{doc,ifpdf,indentfirst,ltxtable,color} +\definecolor{darkblue}{rgb}{0,0,.6} + +\ifpdf + \usepackage[pdftex,hyperindex,unicode]{hyperref} + \usepackage{cmap} +\else + \usepackage[hypertex]{hyperref} +\fi + +\hypersetup{ + pdftitle = {User manual for disser package}, + pdfauthor = {Stanislav Kruchinin}, + pdfsubject = {disser}, + pdfstartview = {FitH}, + pdfborder = {0 0 0}, + bookmarksopen = true, + bookmarksnumbered = true, + bookmarksopenlevel = 2, + colorlinks = true, linkcolor = darkblue, + citecolor = darkblue, filecolor = darkblue, + menucolor = darkblue, urlcolor = darkblue +} + +\usepackage[T2A]{fontenc} +\usepackage[cp1251]{inputenc} +\usepackage[english,russian]{babel} + +\MakeShortVerb{\|} + +\def\file#1{\texttt{#1}} +\def\pkg#1{\textsf{#1}} +\def\cmd#1{\texttt{#1}} + +\def\deflabel#1{\ttfamily #1\hfill} +\newenvironment{deflist}[1]{% + \begin{list}{}{% + \settowidth\labelwidth{\ttfamily #1}% + \setlength\leftmargin\labelwidth + \addtolength\leftmargin\labelsep + \let\makelabel\deflabel} +}{\end{list}} + +\def\fileversion{1.5.0} +\sloppy + +\begin{document} +\title{Пакет \pkg{disser}: руководство пользователя} +\date{Версия \fileversion} +\author{Станислав Кручинин\\[6pt] +\normalsize E-mail: +\href{mailto:stanislav.kruchinin@gmail.com} +{\texttt{stanislav.kruchinin@gmail.com}}} + +\maketitle + +\begin{abstract}\noindent +Данный документ содержит руководство по использованию пакета \pkg{disser}. +Инструкции по установке и обновлению смотрите в файлах \file{README} и \file{README.ru}. +Описание исходных текстов содержится в файлах \href{file:disser.pdf}{\file{disser.pdf}}, \href{file:gost732.pdf}{\file{gost732.pdf}}. +\end{abstract} + +\tableofcontents + +\section{Введение} + +Пакет \pkg{disser} предназначен для верстки диссертаций и авторефератов в соответствии с требованиями ГОСТ~7.0.11--2011 и ВАК. +В состав пакета входят классы \file{disser.cls} и \file{gost732.cls}, а также скрипты для сборки пакета и документов (\file{Makefile}, \file{nomake.cmd}, файлы с расширениями \file{mk} и \file{cmd} в каталоге \file{include}). +Поскольку дипломы и диссертации имеют фиксированную структуру, в пакет также включены их шаблоны (каталог \file{templates}), которые рекомендуется использовать для создания своих документов. + +Одной из основных целей создания пакета~\pkg{disser} являлось устранение общего недостатка стандартных классов: отсутствия возможности настройки формата элементов титульного листа, заголовков и записей в автоматически генерируемых списках. +Для достижения этой цели была переопределена значительная часть команд, входящих в ядро \LaTeX{}, и введен ряд новых переменных, которые описаны в комментариях к исходным текстам. +Это позволило значительно упростить разработку пользовательских классов на базе~\pkg{disser}, которые удовлетворяют специфическим требованиями учебных заведений и диссертационных советов. +Примером реализации данного подхода является~\pkg{gost732}, предназначенный для верстки отчетов о НИР в соответствии с ГОСТ~7.32-2001. + +\section{Соответствие стандартам} + +Пакет позволяет создавать документы, удовлетворяющие следующим стандартам: +\begin{itemize} +\item \href{http://protect.gost.ru/document.aspx?control=8&id=171831}{ГОСТ Р 7.0.11--2011 <<Диссертация и автореферат диссертации. Структура и правила оформления>>}; +\item \href{http://protect.gost.ru/document.aspx?control=7&id=130946}{ГОСТ 7.32--2001 <<Отчет о научно-исследовательской работе. Структура и правила оформления>>}; +\item \href{http://protect.gost.ru/document.aspx?control=7&id=128845}{ГОСТ Р 7.0.4--2006 <<Издания. Выходные сведения. Общие требования и правила оформления>>}; +\item \href{http://protect.gost.ru/document.aspx?control=7&id=173511}{ГОСТ Р 7.0.5--2008 <<Библиографическая ссылка. Общие требования и правила составления>>}. +\end{itemize} + +\section{Опции класса}\label{s:opts} + +\textbf{Примечание:} полужирным выделены опции и значения, используемые по умолчанию. + +\extrarowheight=3pt +\tabcolsep=6pt +\arraycolsep=0pt +\newcolumntype{L}{>{\raggedright}p{4cm}} +\begin{longtable}{L|p{10.5cm}} +\hline\hline +\multicolumn{2}{c}{\textbf{Стандартные опции}}\\ +\hline + 8pt, 9pt, 10pt, 11pt, 12pt, \textbf{14pt}, 16pt, 18pt, 20pt & + Размер шрифта основного текста. +\\\hline + \textbf{a4paper}, a5paper, b5paper & + Размеры листов. +\\\hline + landscape & + Альбомная ориентация. +\\\hline + \textbf{oneside}, twoside & + Односторонняя или двухсторонняя печать. +\\\hline + draft, \textbf{final} & + Выводить (draft) или нет (final) пометки, фиксирующие переполнение горизонтального блока для данной строки. +\\\hline + fleqn & + Выключные формулы будут выравнены по левому краю, а не по центру. +\\\hline + leqno & + Номера будут размещены слева, а не справа от формул. +\\\hline + \textbf{openany}, openright & + Главы всегда будут начинаться только с нечетных страниц (т.\,е. справа, если смотреть на разворот) или c любых. +\\\hline + \textbf{onecolumn}, twocolumn & + Верстка в один или в два столбца. +\\\hline + openbib & + Блоки текста в списке литературы будут печататься на новых строках и с отступом. +\\\hline + \textbf{titlepage}, notitlepage & + Печатать титульный лист или нет. +\\\hline +\multicolumn{2}{c}{\textbf{Специфические настройки класса}} +\\\hline + autoref, bachelor, specialist, master, \textbf{candidate}, doctor & + Тип документа: автореферат, бакалаврский диплом, диплом специалиста, магистерская, кандидатская или докторская диссертация. +\\\hline + classified & + Включает вывод грифа секретности на титульном листе. +\\\hline + colorlinks & + Включает цветные гиперссылки. Цвета определяются соответствующими параметрами пакета \pkg{hyperref}. +\\\hline + facsimile & + Включает отображение подписей диссертанта и ученого секретаря на титульных листах автореферата и диссертации (только для кандидатских и докторских). + По умолчанию включена только в шаблоне автореферата. +\\\hline + fixint & + Включает замену стандартных знаков интегралов на прямые (из шрифта \pkg{euler}). +\\\hline + substylefile = filename.rtx & + Имя файла с описанием стиля документа (оформление титульного листа, нумерация формул, элементов списков и т.\,д.). + Опция предназначена для подключения собственных стилей документов, отличающихся от стандартных: \file{autoref.rtx}, + \file{bachelor.rtx}, \file{master.rtx}, \file{candidate.rtx}, \file{doctor.rtx}. + Если данной опции не присвоено значение, то по умолчанию подключается файл, имя которого совпадает с названием типа документа. +\\\hline +\multicolumn{2}{c}{\textbf{Опции для подключения и настройки сторонних пакетов}} +\\\hline + href & + Подключение пакета \pkg{hyperref} для создания гиперссылок. +\\\hline + subf & + Подключение пакета \pkg{subcaption} для вложенной нумерации рисунков. +\\\hline\hline +\end{longtable} + +\section{Шаблоны документов} + +Возможности пакета демонстрируются на примере шаблонов дипломов и диссертаций. +В каталоге \file{templates} содержатся документы в кодировке CP-1251, для верстки библиографии используются \BibTeX{}8 со стилем \pkg{gost2008}, пакеты \pkg{natbib} и \pkg{multibib}. +В каталоге \file{templates-utf8} содержатся документы в кодировке UTF-8, для верстки библиографии используются Biber и пакет Bib\LaTeX{} со стилем \pkg{biblatex-gost}. + +\section{Система сборки документов} + +Для автоматизации сборки и установки в состав пакета входят две системы скриптов: файлы \file{Makefile}, совместимые с GNU Make, и файлы \file{nomake.cmd}, написанные на языке командного интерпретатора \file{cmd.exe} (Windows 2000 и выше). +Скрипты поддерживают одинаковый набор целей (targets). +Использование в Unix-подобных окружениях: +\begin{verbatim} +make <target1> <target2> ... +\end{verbatim} +В Windows: +\begin{verbatim} +nomake <target1> <target2> ... +\end{verbatim} + +Далее приведены описания целей в зависимости от каталога, в котором производится сборка. + +\def\longestlabel{pdftotiffg44} + +\subsection{Каталог \file{disser}} + +\begin{deflist}{\longestlabel} +\item[all] + Сборка классов и шаблонов. +\item[clean] + Цель \cmd{clean} в каталогах \file{src} и \file{templates}. +\item[doc] + Сборка DVI- и PDF-версий документации. +\item[help] + Справка по целям сборки. +\item[install] + Копирование пакета, документации и шаблонов в дерево каталогов \TeX{}. + Соответствует цели \cmd{install} в каталогах \file{src} и \file{templates}. +\item[package] + Сборка пакета. + Соответствует цели \cmd{package} в каталоге \file{src}. + Цель по умолчанию. +\item[reinstall] + Переустановка пакета. + Соответствует цели \cmd{reinstall} в каталогах \file{src} и \file{templates}. +\item[srcdist] + Создание архива исходных текстов пакета с помощью команды \cmd{hg archive}. +\item[tds] + Создание архива скомпилированных файлов пакета и шаблонов. +\item[templates] + Сборка всех шаблонов. + Соответствует цели по умолчанию в каталоге \file{templates}. +\item[uninstall] + Удаление пакета из каталога \TeX{}. + Соответствует целям \cmd{uninstall} в каталогах \file{src} и \file{templates}. +\end{deflist} + +\subsection{Подкаталог \texttt{src}} + +\begin{deflist}{\longestlabel} +\item[all] + Сборка пакета и PDF-версии документации. + Цель по умолчанию. +\item[clean] + Удаление файлов, указанных в переменной |CLFILES|. +\item[doc] + Сборка DVI- и PDF-версий документации. +\item[dvi] + Сборка DVI-версии документации. +\item[help] + Справка по целям сборки. +\item[install] + Копирование пакета в дерево каталогов \TeX{}. +\item[package] + Сборка пакета. +\item[pdf] + Сборка PDF-версии документации. +\item[reinstall] + Переустановка пакета. +\item[uninstall] + Удаление пакета из каталога \TeX{}. +\end{deflist} + +\subsection{Подкаталоги \file{templates} и + \file{templates/<тип-диссертации>}} + +\begin{deflist}{\longestlabel} +\item[clean] + Удаление файлов, полученных при сборке документа. + Список файлов определяется переменной |CLFILES|. +\item[dvi] + Сборка DVI-файла. +\item[figclean] + Эквивалентно цели \cmd{clean} в каталоге \file{fig}. +\item[help] + Справка по целям сборки. +\item[html] + Конвертация DVI в HTML-файл с рисунками. + Используемая программа: \href{http://www.latex2html.org/}{\cmd{latex2html}}. +\item[pdf] + Сборка PDF-файла. Цель по умолчанию. +\item[pdf\_2on1] + Сборка PDF-файла с двумя страницами на один лист A4 и сохранением порядка следования страниц. +\item[pdf\_book] + Сборка PDF-файла с двумя страницами на один лист A4 для брошюрования. +\item[ps] + Сборка PostScript-файла. +\item[ps\_2on1] + Сборка PostScript-файла с двумя страницами на один лист A4 и сохранением порядка следования страниц. +\item[ps\_book] + Сборка PostScript-файла с двумя страницами на один лист A4 для брошюрования. +\item[rtf] + Конвертация из DVI в RTF. +\item[srcdist] + Сборка архива из содержимого текущего каталога. +\end{deflist} + +Помимо указанных выше целей, в каталоге \file{templates} доступны следующие: +\begin{deflist}{\longestlabel} +\item[install] + Копирование шаблонов в дерево каталогов \TeX{}. +\item[reinstall] + Переустановка шаблонов. +\item[uninstall] + Удаление шаблонов. +\end{deflist} + +\begin{flushleft} +\textbf{Примечания:} + +1) Файлы \file{nomake.cmd} в каталогах шаблонов зависят от \file{include/latex.nmk.cmd} и \file{include/latex.fig.nmk.cmd}. +Файлы \file{Makefile} зависят от \file{include/latex.mk} и \file{include/latex.fig.mk}. + +2) \file{Makefile} и \file{nomake.cmd} могут использовать цели из каталога \file{fig}. +\end{flushleft} + +\subsection{Подкаталоги \file{templates/<тип-диссертации>/fig}} + +\begin{deflist}{\longestlabel} +\item[bmtoeps] + Конвертация растровых изображений в EPS. + Используемая программа: \href{http://code.google.com/p/sam2p/}{\cmd{sam2p}}. + Список файлов определяется переменной |BMTOEPSFILES|. + По умолчанию обрабатываются все файлы с расширениями \file{jpg}, \file{png}, \file{tif}. +\item[clean] + Удаление файлов. + Список файлов определяется переменной |FIGCLFILES|. + По умолчанию обрабатываются все файлы с расширениями \file{pdf}, \file{jpg}, \file{png} и \file{tif}. +\item[epstoeps] + Псевдоним для \cmd{optimize}. +\item[epstopdf] + Конвертация EPS в PDF. + Используемая программа: \cmd{epstopdf} (входит в состав MiK\TeX{} и \TeX\ Live). + Список файлов определяется переменной |E2PFILES|. + По умолчанию обрабатываются все файлы с расширением \file{eps}. +\item[fixbb] + Исправление границ видимой области (bounding box) в EPS-файлах. + Используемая программа: \href{http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm}{\cmd{epstool}}. + Список файлов определяется переменной |FBBFILES|. + По умолчанию обрабатываются все файлы с расширением \file{eps}. +\item[help] + Справка по целям сборки. Цель по умолчанию. +\item[optimize] + Оптимизация EPS-файлов и исправление границ видимой области. + В результате оптимизации все шрифты переводятся в кривые. + Используемые программы: \cmd{eps2eps} из пакета Ghostscript и \cmd{epstool}. + Список файлов определяется переменной |OPTFILES|. + По умолчанию обрабатываются все файлы с расширением \file{eps}. +\item[pdftopng256] + Конвертация PDF в 256-цветный PNG. + Используемая программа: пакет Ghostscript. + Список файлов определяется переменной |PDF2PNGFILES|. + По умолчанию обрабатываются все файлы с расширением \file{pdf}. +\item[pdftotiffg4] + Конвертация PDF в черно-белый TIFF (алгоритм сжатия CCITT Group 4). + Используемая программа: пакет Ghostscript. + Список файлов определяется переменной |PDF2TIFFILES|. + По умолчанию обрабатываются все файлы с расширением \file{pdf}. +\end{deflist} + +\section{Стили колонтитулов} + +Поскольку в российских диссертациях обычно не используются колонтитулы, содержащие название текущей главы документа, то стили, реализованные в данном классе, влияют лишь на положение номера страницы. +Стиль колонтитулов обычных страниц документа задается в преамбуле командой |\pagestyle{<style>}|, а стиль страниц, с которых начинается новая глава "--- командой |\chapterpagestyle{<style>}|. +Здесь |<style>| может принимать следующие значения: +\begin{deflist}{\longestlabel} +\item[empty] Страница без номера. +\item[footleft] Номер внизу и слева. +\item[footcenter] Номер внизу и по середине. +\item[footright] Номер внизу и справа. +\item[headleft] Номер вверху и слева. +\item[headcenter] Номер вверху и по середине. +\item[headright] Номер вверху и справа. +\item[plain] Совпадает с |footcenter|. +\end{deflist} + +Для односторонних документов шрифт надписей в верхнем и нижнем колонтитулах можно задать путем переопределения команд |\headfont| и |\footfont|. +В двухсторонних документах следует использовать команды |\evenheadfont|, |\evenfootfont|, |\oddheadfont|, |\oddfootfont| для четных и нечетных страниц, соответственно. + +\textbf{Пример:} номера всех страниц одностороннего документа печатаются в верхнем колонтитуле по центру, шрифтом размера |\small|. +\begin{verbatim} +\def\headfont{\small} +\pagestyle{headcenter} +\chapterpagestyle{headcenter} +\end{verbatim} + +\section{Оформление библиографии} + +Для оформления библиографических ссылок в соответствии с ГОСТ Р 7.0.5-2008 используются стили \file{gost2008.bst} и \file{gost2008s.bst}. + +При описании русскоязычных источников следует явным образом присваивать полю |language| значение |russian|. +Пример: +\begin{verbatim} +@BOOK{Anselm_1978, + author = {А. И. Ансельм}, + title = {Введение в теорию полупроводников}, + publisher = {Наука}, + address = {Москва}, + year = {1978}, + language = {russian}, +} +\end{verbatim} +Для указания даты обращения к Интернет-ресурсам следует использовать поле |urldate|. Пример: +\begin{verbatim} +@INCOLLECTION{InP, + title = {InP Basic Parameters at 300 K}, + booktitle = {Electronic archive New Semiconductor Materials. + Characteristics and Properties}, + organization = {Ioffe Physico-Technical Institute}, + address = {St. Petersburg}, + year = {2001}, + url = {http://www.ioffe.rssi.ru/SVA/NSM/Semicond/InP/basic.html}, + urldate = {01.11.2009}, +} +\end{verbatim} + +Для работы с русскоязычными библиографическими ссылками необходимо использовать интерпретатор \cmd{bibtex8}, поддерживающий 8-битные символы. +В зависимости от кодировки текста в bib-файле, необходимо подключать соответствующий csf-файл с описанием кодовой страницы и порядка сортировки, например, \file{cp1251.csf} из пакета \pkg{gost}. + +Последовательность команд, используемая для полной сборки документа с библиографией в кодировке CP-1251, имеет следующий вид: +\begin{verbatim} +pdflatex <tex-file> +bibtex8 -H -c <csf-file> <aux-file> +pdflatex <tex-file> +pdflatex <tex-file> +\end{verbatim} +Здесь |<tex-file>| "--- файл документа, |<aux-file>| "--- имя aux-файла, который генерируется после первой этапа компиляции (совпадает с именем tex-файла), |<csf-file>| "--- файл описания кодовой страницы и порядка сортировки. + +Сборка документов в кодировке UTF-8: +\begin{verbatim} +pdflatex <tex-file> +biber <bcf-file> +pdflatex <tex-file> +pdflatex <tex-file> +\end{verbatim} + +\section{Авторефераты кандидатских и докторских диссертаций} + +\subsection{Общий текст} + +В соответствии с требованиями, раздел <<Общая характеристика работы>> автореферата и глава <<Введение>> диссертации должны совпадать. +Общие разделы создаются с помощью команды |\mkcommonsect| в файле \file{common.tex}, который подключается из \file{autoref.tex} и \file{thesis.tex}. + +Пример: +\begin{verbatim} +\mkcommonsect{novelty}{Научная новизна}{% +Текст раздела +} +\end{verbatim} +Здесь первый аргумент "--- корень имени создаваемых макросов (|\noveltysection| и |\noveltytext|), второй аргумент "--- заголовок раздела (значение |\noveltysection|), третий "--- текст раздела (значение |\noveltytext|). + +\subsection{Список работ диссертанта} + +В автореферате список работ диссертанта должен быть отделен от списка цитируемой литературы. +Для этого в документах с однобайтовой кодировкой используется пакет \pkg{multibib}, а для документов в кодировке UTF-8 "--- пакет Bib\LaTeX{}. +Описание библиографических ссылок на работы диссертанта должно находиться в файле \file{thesis.bib} вместе с остальными ссылками. + +Сборка автореферата в кодировке UTF-8 осуществляется стандартным способом. +Поскольку пакет \pkg{multibib} создает отдельные |aux|-файлы для каждой библиографии, полная сборка автореферата в кодировке CP-1251 выполняется следующей последовательностью команд: +\begin{verbatim} +pdflatex autoref +bibtex8 -H -c cp1251 autoref +bibtex8 -H -c cp1251 my +pdflatex autoref +pdflatex autoref +\end{verbatim} +В кодировке UTF-8 сборка документа с двумя библиографиями не отличается от стандартной. + +Операция полной сборки документов осуществляется командой: +\begin{verbatim} +nomake all +\end{verbatim} +в Windows или +\begin{verbatim} +make all +\end{verbatim} +в Unix-подобных окружениях. +Сборка только автореферата в Windows: +\begin{verbatim} +set target=autoref +nomake +\end{verbatim} +Для возврата к сборке диссертации следует однократно присвоить переменной |TARGET| значение |thesis|: +\begin{verbatim} +set target=thesis +nomake +\end{verbatim} + +Команда для сборки автореферата в Unix-подобных окружениях: +\begin{verbatim} +env TARGET=autoref make +\end{verbatim} + + +\subsection{Подписи диссертанта и ученого секретаря} + +Согласно требованиям, автореферат должен быть подписан диссертантом и ученым секретарем. +Для автоматической вставки графических файлов с подписями в классе предусмотрена опция \cmd{facsimile}. +Эта опция по умолчанию включена только в шаблонах авторефератов. +Факсимиле диссертанта находится в файле \file{./fig/facsimile.<type>}, факсимиле ученого секретаря диссертационного совета "--- в файле \file{./fig/sec-facsimile.<type>}. +Здесь \file{<type>} "--- один из типов графических файлов, поддерживаемых в \LaTeX{} (\file{eps}) или в pdf\LaTeX{} (\file{pdf}, \file{tif}, \file{png}). +Команда |\facsimile|, включающая файл с подписью диссертанта в документ, определена в файле \file{titledefs.dtx}. +Команда, включающая файл с подписью ученого секретаря, находится в файле \file{autoref.tex}. + +\section{Настройка пакета под нестандартные требования диссертационных советов} + +Код, определяющий вид титульного листа, нумерацию объектов и другие параметры, находится в файлах, имена которых совпадают с соответствующими опциями класса (см. раздел~\ref{s:opts}): +\file{autoref.dtx}, \file{bachelor.dtx}, \file{specialist.dtx}, \file{master.dtx}, \file{candidate.dtx}, \file{doctor.dtx}. +После сборки класса из исходных текстов из них получаются файлы с расширением |rtx|. + +Для внесения изменений в файлы пакета с расширениями |bst|, |cls| и |rtx| следует создавать их копии в каталоге с Вашим документом. +При сборке документа \LaTeX{} ищет подключаемые файлы в каталоге компилируемого |tex|-файла, поэтому будет использована локальная копия файлов с вашими изменениями. + +\end{document} diff --git a/macros/latex/contrib/disser/src/master.dtx b/macros/latex/contrib/disser/src/master.dtx new file mode 100644 index 0000000000..48844d2cc7 --- /dev/null +++ b/macros/latex/contrib/disser/src/master.dtx @@ -0,0 +1,149 @@ +% \begin{macrocode} + +%<master>\ProvidesFile{master.rtx} + +%<*master> +% \end{macrocode} +% \subsubsection{Стиль работы магистера} +% +% Нумерация. +% \begin{macrocode} +\newcommand\master@the{\default@the} +\master@the + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle[1][]{ +% \end{macrocode} +% Переопределения некоторых полей титульного листа для англоязычной версии. +% \begin{macrocode} +\ifthenelse{\equal{#1}{en}}{\@titlepage@entrue}{\@titlepage@enfalse} +\if@titlepage@en + \def\appos{Head of Department} + \def\approved{``Approved for defence''} + \def\revname{Reviewer} + \def\revsndname{\revname} + \def\revlabel{\revname} + \def\revsndlabel{\revsndname} + \def\saname{Scientific Supervisor} + \def\sasndname{\saname} + \def\salabel{\saname} + \def\sasndlabel{\saname} + \def\topicname{Topic} + \def\coursename{Speciality} + \def\studentname{Student} + \def\studentlabel{\studentname\hspace{6cm}} + \def\masterprogname{Master's Program} +\fi + +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \begin{macrocode} +\ifundeflength\firstskip{1ex} +\ifundeflength\secondskip{1ex} +\ifundeflength\thirdskip{1ex} +\ifundeflength\fourthskip{-1cm} +\ifundeflength\fifthskip{0ex} +\ifundeflength\sixthskip{1.5ex} + +% \end{macrocode} +% Горизонтальный отступ перед чертой в текстовым поле для имени, ученой +% степени и звания научного руководителя и консультанта. +% \DescribeMacro{\fieldhshift}\index{Интервалы!\verb*+\fieldhshift+} +% \begin{macrocode} +\setlength\fieldhshift{8.5cm} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topiclabelfont}\index{Макросы!\verb*+\topiclabelfont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \begin{macrocode} +\def\titlefont{\Large\bfseries} +\def\topiclabelfont{\large} +\def\topicfont{\large\bfseries} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} +% \end{macrocode} +% \paragraph{Название организации} +% \begin{macrocode} +\begin{center} + {\instfont\@institution} +\end{center} + +% \end{macrocode} +% Диссертация допущена к защите +% \begin{macrocode} +\vskip\firstskip +{\@approved} +\vskip\secondskip +% \end{macrocode} +% Заголовок +% \begin{macrocode} +\begin{center} + {\titlefont\@title} + \vskip\thirdskip +% \end{macrocode} +% Тема +% \begin{macrocode} + {\topiclabelfont\topiclabel\ } + {\topicfont\@topic} + \vskip\fourthskip\normalfont +\end{center} + +\begin{tabbing} + \phantom{\masterproglabel}\=\\ +% \end{macrocode} +% Направление +% \begin{macrocode} + \courselabel\>\ \@coursenum\ --\ \@course\\ +% \end{macrocode} +% Магистерская программа: номер -- название. +% \begin{macrocode} + \masterproglabel\>\ \@masterprognum\ --\ \@masterprog +\end{tabbing} +\vskip\fifthskip +\begin{tabbing} +% \end{macrocode} +% +% Выполнил студент гр. номер... +% \begin{macrocode} + \studentlabel\=\makebox[\fieldhshift][l]{\hrulefill\ \@author}\\[\sixthskip] +% \end{macrocode} +% Научный руководитель. +% \begin{macrocode} + \ifx\@sa\empty\else\diplomafield{sa}\\[\sixthskip]\fi + \ifx\@sasnd\empty\else\diplomafield{sasnd}\\[\sixthskip]\fi +% \end{macrocode} +% +% Рецензент +% \begin{macrocode} + \ifx\@rev\empty\else\diplomafield{rev}\\[\sixthskip]\fi + \ifx\@revsnd\empty\else\diplomafield{revsnd}\\[\sixthskip]\fi +% \end{macrocode} +% +% Консультант +% \begin{macrocode} + \ifx\@con\empty\else\diplomafield{con}\\[\sixthskip]\fi + \ifx\@consnd\empty\else\diplomafield{consnd}\fi +\end{tabbing} +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} +\vfill +\begin{center} + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</master> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/nomake.cmd b/macros/latex/contrib/disser/src/nomake.cmd new file mode 100644 index 0000000000..113291765b --- /dev/null +++ b/macros/latex/contrib/disser/src/nomake.cmd @@ -0,0 +1,130 @@ +@echo off
+
+rem nomake script for disser package
+rem Author: Stanislav Kruchinin <stanislav.kruchinin@gmail.com>
+
+if "%CMDEXTVERSION%"=="" (
+ echo This script requires command interpreter from Windows 2000 or above.
+ goto :eof
+)
+
+setlocal enabledelayedexpansion
+
+set target=disser
+set subclass=gost732
+set manual=manual
+
+set clsfiles=*.cls *.rtx
+set docfiles=%target%.pdf %subclass%.pdf %bst%.pdf %manual%.pdf
+set textfiles=..\README ..\README.ru ..\ChangeLog
+set srcfiles=*.dtx %target%.ins dtx.ist %manual%.tex Makefile nomake.cmd
+
+if "!texmf!"=="" set texmf=%allusersprofile%\Application Data\MiKTeX\2.9
+if "!destdir!"=="" set destdir=!texmf!
+if "!clsdir!"=="" set clsdir=!destdir!\tex\latex\%target%
+if "!docdir!"=="" set docdir=!destdir!\doc\latex\%target%
+if "!srcdir!"=="" set srcdir=!destdir!\source\latex\%target%
+
+if "!clext!"=="" set clext=*.aux *.toc *.idx *.ind *.ilg *.log *.out *.lof ^
+*.lot *.lol *.bbl *.blg *.bak *.dvi *.ps *.pdf *.synctex *.synctex.gz
+if "!clfiles!"=="" set clfiles=!clext! %clsfiles%
+
+if "!latex!"=="" set latex=latex
+if "!pdflatex!"=="" set pdflatex=pdflatex
+if "!mi!"=="" set mi=makeindex
+
+if "!latexflags!"=="" set latexflags=--src-specials
+if "!pdflatexflags!"=="" set pdflatexflags=--shell-escape --synctex=1
+if "!miflags!"=="" set miflags=-r -s dtx.ist
+
+
+if "%1"=="" (
+ call :all
+) else (
+ for %%f in (%*) do call :%%f
+)
+
+exit /b
+
+:all
+ call :package
+ call :doc
+goto :eof
+
+:clean
+ del !clfiles!
+goto :eof
+
+:doc
+ call :pdf
+goto :eof
+
+:dvi
+ !latex! !latexflags! %target%.dtx
+ !mi! !miflags! %target%
+ !latex! !latexflags! %target%.dtx
+ !latex! !latexflags! %target%.dtx
+
+ !latex! !latexflags! %subclass%.dtx
+ !latex! !latexflags! %subclass%.dtx
+
+ !latex! !latexflags! %bst%.dtx
+ !mi! !miflags! %bst%
+ !latex! !latexflags! %bst%.dtx
+ !latex! !latexflags! %bst%.dtx
+
+ !latex! !latexflags! %manual%.tex
+ !latex! !latexflags! %manual%.tex
+goto :eof
+
+:help
+ echo all ^(default^) build package and documentation
+ echo clean remove output files
+ echo doc alias for pdf target
+ echo dvi build documentation in DVI format
+ echo help show description of targets
+ echo install install package and documentation
+ echo package build package
+ echo pdf build documentation in PDF format
+ echo reinstall reinstall package and documentation
+ echo uninstall uninstall package and documentation
+goto :eof
+
+:install
+ if not exist %target%.cls call :all
+ if not exist "!clsdir!" mkdir "!clsdir!"
+ if not exist "!docdir!" mkdir "!docdir!"
+ if not exist "!srcdir!" mkdir "!srcdir!"
+ for %%f in (%clsfiles%) do xcopy /y /i /f %%f "!clsdir!"
+ for %%f in (%docfiles%) do xcopy /y /i /f %%f "!docdir!"
+ for %%f in (%textfiles%) do xcopy /y /i /f %%f "!docdir!"
+ for %%f in (%srcfiles%) do xcopy /y /i /f %%f "!srcdir!"
+goto :eof
+
+:package
+ %latex% %target%.ins
+goto :eof
+
+:pdf
+ !pdflatex! !pdflatexflags! %target%.dtx
+ !mi! !miflags! %target%
+ !pdflatex! !pdflatexflags! %target%.dtx
+ !pdflatex! !pdflatexflags! %target%.dtx
+
+ !pdflatex! !pdflatexflags! %subclass%.dtx
+ !pdflatex! !pdflatexflags! %subclass%.dtx
+
+ !pdflatex! !pdflatexflags! %manual%.tex
+ !pdflatex! !pdflatexflags! %manual%.tex
+goto :eof
+
+:reinstall
+ call :uninstall
+ call :install
+goto :eof
+
+:uninstall
+ rmdir /s /q "!clsdir!"
+ rmdir /s /q "!docdir!"
+ rmdir /s /q "!srcdir!"
+goto :eof
diff --git a/macros/latex/contrib/disser/src/page.dtx b/macros/latex/contrib/disser/src/page.dtx new file mode 100644 index 0000000000..6cae9cb4de --- /dev/null +++ b/macros/latex/contrib/disser/src/page.dtx @@ -0,0 +1,210 @@ + +% \iffalse +%%% From File: page.dtx +% \fi +% +% \begin{macrocode} + +%<*page> +% \end{macrocode} +% +% \subsection{Формат страниц} +% +% \subsubsection{Шрифт колонтитулов} +% \paragraph{Для двухсторонней печати}\hfil\\[6pt] +% Верхний, на четных страницах. +% \DescribeMacro{\evenheadfont}\index{Макросы!\verb*+\evenheadfont+} +% \begin{macrocode} +\newcommand\evenheadfont{\reset@font} +% \end{macrocode} +% Нижний на четных страницах. +% \DescribeMacro{\evenfootfont}\index{Макросы!\verb*+\evenfootfont+} +% \begin{macrocode} +\newcommand\evenfootfont{\reset@font} +% \end{macrocode} +% Верхний на нечетных страницах. +% \DescribeMacro{\oddheadfont}\index{Макросы!\verb*+\oddheadfont+} +% \begin{macrocode} +\newcommand\oddheadfont{\reset@font} +% \end{macrocode} +% Нижний на нечетных страницах. +% \DescribeMacro{\oddfootfont}\index{Макросы!\verb*+\oddfootfont+} +% \begin{macrocode} +\newcommand\oddfootfont{\reset@font} +% \end{macrocode} +% \paragraph{Для односторонней печати}\hfil\\[6pt] +% Верхний. +% \DescribeMacro{\headfont}\index{Макросы!\verb*+\headfont+} +% \begin{macrocode} +\newcommand\headfont{\reset@font} +% \end{macrocode} +% Нижний. +% \DescribeMacro{\footfont}\index{Макросы!\verb*+\footfont+} +% \begin{macrocode} +\newcommand\footfont{\reset@font} +% \end{macrocode} +% +% \subsubsection{Определения стилей колонтитулов} +% +% В диссертациях на русском языке не используются колонтитулы с заголовком текущей главы, +% поэтому все представленные стили влияют только на положение номера страницы. +% +% \paragraph{empty} +% \begin{macrocode} +\def\ps@empty{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@oddfoot\@empty + \let\@evenhead\@empty + \let\@evenfoot\@empty +} + +% \end{macrocode} +% \paragraph{footcenter} +% \begin{macrocode} +\def\ps@footcenter{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \def\@oddfoot{\footfont\hfil\thepage\hfil} + \def\@evenfoot{\footfont\hfil\thepage\hfil} +} + +% \end{macrocode} +% \paragraph{footleft} +% \begin{macrocode} +\if@twoside + \def\ps@footleft{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \def\@oddfoot{\oddfootfont\hfil\thepage} + \def\@evenfoot{\evenfootfont\thepage\hfil} + } +\else + \def\ps@footleft{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \def\@oddfoot{\footfont\thepage\hfil} + \def\@evenfoot{\footfont\thepage\hfil} + } +\fi + +% \end{macrocode} +% \paragraph{footright} +% \begin{macrocode} +\if@twoside + \def\ps@footright{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \def\@oddfoot{\oddfootfont\thepage\hfil} + \def\@evenfoot{\evenfootfont\hfil\thepage} + } +\else + \def\ps@footright{ + \let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \def\@oddfoot{\footfont\hfil\thepage} + \def\@evenfoot{\footfont\hfil\thepage} + } +\fi + +% \end{macrocode} +% \paragraph{headcenter} +% \begin{macrocode} +\def\ps@headcenter{ + \let\@mkboth\@gobbletwo + \def\@oddhead{\headfont\hfil\thepage\hfil} + \def\@evenhead{\headfont\hfil\thepage\hfil} + \let\@oddfoot\@empty + \let\@evenfoot\@empty +} + +% \end{macrocode} +% \paragraph{headright} +% \begin{macrocode} +\if@twoside + \def\ps@headright{ + \let\@mkboth\@gobbletwo + \def\@oddhead{\oddheadfont\thepage\hfil} + \def\@evenhead{\evenheadfont\hfil\thepage} + \let\@oddfoot\@empty + \let\@evenfoot\@empty + } +\else + \def\ps@headright{ + \let\@mkboth\@gobbletwo + \def\@oddhead{\headfont\hfil\thepage} + \def\@oddhead{\headfont\hfil\thepage} + \let\@oddfoot\@empty + \let\@evenfoot\@empty + } +\fi + +% \end{macrocode} +% \paragraph{headleft} +% \begin{macrocode} +\if@twoside + \def\ps@headleft{ + \let\@mkboth\@gobbletwo + \def\@oddhead{\oddheadfont\hfil\thepage} + \def\@evenhead{\evenheadfont\thepage\hfil} + \let\@oddfoot\@empty + \let\@evenfoot\@empty + } +\else + \def\ps@headleft{ + \let\@mkboth\@gobbletwo + \def\@oddhead{\headfont\thepage\hfil} + \def\@evenhead{\headfont\thepage\hfil} + \let\@oddfoot\@empty + \let\@evenfoot\@empty + } +\fi + +% \end{macrocode} +% \paragraph{plain}\hfil\\[6pt] +% \begin{macrocode} +\let\ps@plain=\ps@footcenter + +% \end{macrocode} +% \subsubsection{Стили колонтитулов по умолчанию} +% Стиль колонтитулов обычных страниц. +% \begin{macrocode} +\pagestyle{headcenter} + +% \end{macrocode} +% Команда, определяющая стиль страницы, с которой начинается глава. +% \DescribeMacro{\chapterpagestyle}\index{Макросы!\verb*+\chapterpagestyle+} +% \begin{macrocode} +\def\chapterpagestyle#1{\gdef\@chapterpagestyle{#1}} + +% \end{macrocode} +% Стиль колонтитулов страниц, с которых начинается глава. +% \begin{macrocode} +\chapterpagestyle{headcenter} +% \end{macrocode} +% Стиль нумерации страниц. +% \begin{macrocode} +\pagenumbering{arabic} +% \end{macrocode} +% Для односторонних документов разрешается делать страницы с разной высотой +% текста. +% \begin{macrocode} +\if@twoside\else\raggedbottom\fi +% \end{macrocode} +% Для двухколоночных документов: +% |\flushbottom| запрещает делать страницы с разной высотой текста, +% |\sloppy| включает менее жесткие ограничения на разрывы строк. +% \begin{macrocode} +\if@twocolumn + \twocolumn\sloppy\flushbottom +\else + \onecolumn +\fi + +%</page> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/part.dtx b/macros/latex/contrib/disser/src/part.dtx new file mode 100644 index 0000000000..8904b2a14a --- /dev/null +++ b/macros/latex/contrib/disser/src/part.dtx @@ -0,0 +1,205 @@ + +% \iffalse +%%% From File: part.dtx +% \fi +% +% \begin{macrocode} + +%<*part> +% \end{macrocode} +% \subsection{Часть} +% +% \subsubsection{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocprethepart}\index{Макросы!\verb*+\tocprethepart+} +% Префикс номера. +% \begin{macrocode} +\providecommand\tocprethepart{\partname~} +% \end{macrocode} +% \DescribeMacro{\tocpostthepart}\index{Макросы!\verb*+\tocpostthepart+} +% Постфикс номера. +% \begin{macrocode} +\providecommand\tocpostthepart{.\@postskip} +% \end{macrocode} +% \DescribeMacro{\tocpartfill}\index{Макросы!\verb*+\tocpartfill+} +% Заполнитель между названием и номером страницы. Для части по умолчанию +% отсутствует. Чтобы заполнить какими-либо символами, нужно присвоить +% |\tocpartfill| значение |\tocfill{символ}|. Для примера см. далее +% определение |\tocsectionfill|. +% \begin{macrocode} +\providecommand\tocpartfill{} +% \end{macrocode} +% \DescribeMacro{\tocpartfont}\index{Макросы!\verb*+\tocpartfont+} +% Шрифт заголовка записи. +% \begin{macrocode} +\providecommand\tocpartfont{\bfseries} +% \end{macrocode} +% \DescribeMacro{\tocpartfillfont}\index{Макросы!\verb*+\tocpartfillfont+} +% Шрифт заполнителя в оглавлении. +% \begin{macrocode} +\providecommand\tocpartfillfont{\normalfont} +% \end{macrocode} +% \DescribeMacro{\tocpartnumfont}\index{Макросы!\verb*+\tocpartnumfont+} +% Шрифт номера в оглавлении. +% \begin{macrocode} +\providecommand\tocpartnumfont{\normalfont} + +% \end{macrocode} +% +% \subsubsection{Параметры формата заголовка в тексте} +% +% Параметры номера и названия: выравнивание, шрифт, отступы, текст до и после. +% \DescribeMacro{\thepartalign}\index{Макросы!\verb*+\thepartalign+} +% \DescribeMacro{\thepartfont}\index{Макросы!\verb*+\thepartfont+} +% \DescribeMacro{\prethepart}\index{Макросы!\verb*+\prethepart+} +% \DescribeMacro{\postthepart}\index{Макросы!\verb*+\postthepart+} +% \DescribeMacro{\partalign}\index{Макросы!\verb*+\partalign+} +% \DescribeMacro{\partfont}\index{Макросы!\verb*+\partfont+} +% \DescribeMacro{\beforepart}\index{Макросы!\verb*+\beforepart+} +% \DescribeMacro{\afterpart}\index{Макросы!\verb*+\afterpart+} +% \begin{macrocode} +\providecommand\thepartalign{\centering} +\providecommand\thepartfont{\huge} +\providecommand\prethepart{\tocprethepart} +\providecommand\postthepart{\par\vskip 20\p@} + +\providecommand\partalign{\centering} +\providecommand\partfont{\huge\bfseries} +\providecommand\beforepart{} +\providecommand\afterpart{\par} + +% \end{macrocode} +% \DescribeMacro{\partpagestyle}\index{Макросы!\verb*+\partpagestyle+} +% Стиль страницы, на которой расположен заголовок части. +% \begin{macrocode} +\def\partpagestyle#1{\gdef\@partpagestyle{#1}} +\partpagestyle{empty} +% \end{macrocode} +% +% \subsubsection{Низкоуровневые команды} +% +% Описание структуры заголовков. +% \begin{itemize} +% \item в тексте, +% \DescribeMacro{\@seccntformat}\index{Макросы!\verb*+"\"@seccntformat+} +% \begin{macrocode} +\def\@seccntformat#1{% + \csname prethe#1\endcsname% + \csname the#1\endcsname% + \csname postthe#1\endcsname% +} + +% \end{macrocode} +% \item в Содержании. +% \DescribeMacro{\@tocseccntformat}\index{Макросы!\verb*+"\"@tocseccntformat+} +% \begin{macrocode} +\def\@tocseccntformat#1{% + \csname tocprethe#1\endcsname% + \csname tocthe#1\endcsname% + \csname tocpostthe#1\endcsname% +} + +% \end{macrocode} +% \end{itemize} +% \DescribeMacro{\part}\index{Макросы!\verb*+"\part+} +% Интерфейс. +% \begin{macrocode} +\newcommand\part{ + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \thispagestyle{\@partpagestyle}% + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \null\vfil\secdef\@part\@spart +} +% \end{macrocode} +% +% \DescribeMacro{\@part}\index{Макросы!\verb+"\"@part+} +% Команда, формирующая нумеруемый заголовок части |\part|. +% \begin{macrocode} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% +% \end{macrocode} +% Команда |\def\\{ }| используется для корректного отображения +% заголовков с принудительными разрывами строк. +% \begin{macrocode} + {\def\\{ }\addcontentsline{toc}{part}{\@tocseccntformat{part} #1}} + \else + {\def\\{ }\addcontentsline{toc}{part}{#1}} + \fi + \markboth{}{}% + {% + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax +% \end{macrocode} +% Постоянная часть заголовка и номер. +% \begin{macrocode} + {\thepartfont\partalign\@seccntformat{part}} + \fi% +% \end{macrocode} +% Название. +% \begin{macrocode} + {\partfont\partalign\beforepart #2\afterpart}% + } + \@endpart% +} + +% \end{macrocode} +% +% \DescribeMacro{\@spart}\index{Макросы!\verb+"\"@spart+} +% Команда, формирующая ненумеруемый заголовок части |\part*|. +% \begin{macrocode} +\def\@spart#1{% + \partalign{\interlinepenalty \@M% + \partfont\beforepart #1\afterpart}% + \@endpart +} + +% \end{macrocode} +% +% \DescribeMacro{\@endpart}\index{Макросы!\verb+"\"@endpart+} +% Завершение страницы с заголовком части. +% \begin{macrocode} +\def\@endpart{ + \vfil\newpage + \if@twoside + \null + \thispagestyle{\partpagestyle}% + \newpage + \fi + \if@tempswa\twocolumn\fi +} + +% \end{macrocode} +% \DescribeMacro{\l@part} +% Низкоуровневая команда, создающая запись в Содержании. +% \begin{macrocode} +\newcommand*\l@part[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \setlength\@tempdima{3em}% + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + {\leavevmode \tocpartfont #1\nobreak + \tocpartfillfont\tocpartfill\hfill + \hb@xt@\@pnumwidth{\hss\tocpartnumfont #2}} + \par\nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi +} + +%</part> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/sections.dtx b/macros/latex/contrib/disser/src/sections.dtx new file mode 100644 index 0000000000..81ef04661b --- /dev/null +++ b/macros/latex/contrib/disser/src/sections.dtx @@ -0,0 +1,415 @@ + +% \iffalse +%%% From File: sections.dtx +% \fi +% +% \begin{macrocode} + +%<*sections> +% \end{macrocode} +% \subsection{Секции и параграфы} +% +% \subsubsection{Section} +% +% \paragraph{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocprethesection}\index{Макросы!\verb*+\tocprethesection+} +% \DescribeMacro{\tocpostthesection}\index{Макросы!\verb*+\tocpostthesection+} +% \DescribeMacro{\tocsectionfill}\index{Макросы!\verb*+\tocsectionfill+} +% \DescribeMacro{\tocsectionfont}\index{Макросы!\verb*+\tocsectionfont+} +% \DescribeMacro{\tocsectionfillfont}\index{Макросы!\verb*+\tocsectionfillfont+} +% \DescribeMacro{\tocsectionnumfont}\index{Макросы!\verb*+\tocsectionnumfont+} +% \begin{macrocode} +\providecommand\tocprethesection{} +\providecommand\tocpostthesection{.\@postskip} +\providecommand\tocsectionfill{\tocfill{.}} + +\providecommand\tocsectionfont{\normalfont} +\providecommand\tocsectionfillfont{} +\providecommand\tocsectionnumfont{} +% \end{macrocode} +% \DescribeMacro{\tocsectionindent}\index{Макросы!\verb*+\tocsectionindent+} +% Величина отступа записи в оглавлении. +% \begin{macrocode} +\providecommand\tocsectionindent{1.5em} +% \end{macrocode} +% \DescribeMacro{\tocsectionnameindent}\index{Макросы!\verb*+\tocsectionnameindent+} +% Пробел после номера. +% \begin{macrocode} +\providecommand\tocsectionnameindent{2.6em} + +% \end{macrocode} +% \paragraph{Параметры формата в тексте} +% +% \DescribeMacro{\sectionfont}\index{Макросы!\verb*+\sectionfont+} +% \DescribeMacro{\prethesection}\index{Макросы!\verb*+\prethesection+} +% \DescribeMacro{\postthesection}\index{Макросы!\verb*+\postthesection+} +% \begin{macrocode} +\providecommand\sectionfont{\normalfont\large\bfseries} + +\providecommand\prethesection{} +\providecommand\postthesection{.~} + +% \end{macrocode} +% \DescribeMacro{\sectionindent}\index{Макросы!\verb*+\sectionindent+} +% Величина отступа заголовка секции на странице. +% \begin{macrocode} +\providecommand\sectionindent{\z@} +% \end{macrocode} +% \DescribeMacro{\beforesection}\index{Макросы!\verb*+\beforesection+} +% Величина вертикального отступа перед заголовком секции. +% \begin{macrocode} +\providecommand\beforesection{-3.5ex \@plus -1ex \@minus -.2ex} +% \end{macrocode} +% \DescribeMacro{\aftersection}\index{Макросы!\verb*+\aftersection+} +% Величина вертикального отступа после заголовка секции. +% \begin{macrocode} +\providecommand\aftersection{2.3ex \@plus.2ex} +% \end{macrocode} +% \DescribeMacro{\sectionalign}\index{Макросы!\verb*+\sectionalign+} +% Выравнивание заголовка. +% \begin{macrocode} +\providecommand\sectionalign{\raggedright} + +% \end{macrocode} +% \subsubsection{Subsection} +% \paragraph{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocprethesubsection}\index{Макросы!\verb*+\tocprethesubsection+} +% \DescribeMacro{\tocpostthesubsection}\index{Макросы!\verb*+\tocpostthesubsection+} +% \DescribeMacro{\tocsubsectionfill}\index{Макросы!\verb*+\tocsubsectionfill+} +% \DescribeMacro{\tocsubsectionfont}\index{Макросы!\verb*+\tocsubsectionfont+} +% \DescribeMacro{\tocsubsectionfillfont}\index{Макросы!\verb*+\tocsubsectionfillfont+} +% \DescribeMacro{\tocsubsectionnumfont}\index{Макросы!\verb*+\tocsubsectionnumfont+} +% \DescribeMacro{\tocsubsectionindent}\index{Макросы!\verb*+\tocsubsectionindent+} +% \DescribeMacro{\tocsubsectionnameindent}\index{Макросы!\verb*+\tocsubsectionnameindent+} +% \begin{macrocode} +\providecommand\tocprethesubsection{} +\providecommand\tocpostthesubsection{.\@postskip} +\providecommand\tocsubsectionfill{\tocfill{.}} + +\providecommand\tocsubsectionfont{\normalfont} +\providecommand\tocsubsectionfillfont{} +\providecommand\tocsubsectionnumfont{} + +\providecommand\tocsubsectionindent{4.1em} +\providecommand\tocsubsectionnameindent{3.5em} + +% \end{macrocode} +% \paragraph{Параметры формата в тексте} +% +% \DescribeMacro{\subsectionfont}\index{Макросы!\verb*+\subsectionfont+} +% \DescribeMacro{\prethesubsection}\index{Макросы!\verb*+\prethesubsection+} +% \DescribeMacro{\postthesubsection}\index{Макросы!\verb*+\postthesubsection+} +% \DescribeMacro{\subsectionindent}\index{Макросы!\verb*+\subsectionindent+} +% \DescribeMacro{\beforesubsection}\index{Макросы!\verb*+\beforesubsection+} +% \DescribeMacro{\aftersubsection}\index{Макросы!\verb*+\aftersubsection+} +% \DescribeMacro{\subsectionalign}\index{Макросы!\verb*+\subsectionalign+} +% \begin{macrocode} +\providecommand\subsectionfont{\normalfont\normalsize\bfseries} + +\providecommand\prethesubsection{} +\providecommand\postthesubsection{.~} + +\providecommand\subsectionindent{\z@} +\providecommand\beforesubsection{-3.25ex\@plus -1ex \@minus -.2ex} +\providecommand\aftersubsection{1.5ex \@plus .2ex} +\providecommand\subsectionalign{\raggedright} + +% \end{macrocode} +% \subsubsection{Subsubsection} +% \paragraph{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocprethesubsubsection}\index{Макросы!\verb*+\tocprethesubsubsection+} +% \DescribeMacro{\tocpostthesubsubsection}\index{Макросы!\verb*+\tocpostthesubsubsection+} +% \DescribeMacro{\tocsubsubsectionfill}\index{Макросы!\verb*+\tocsubsubsectionfill+} +% +% \DescribeMacro{\tocsubsubsectionfont}\index{Макросы!\verb*+\tocsubsubsectionfont+} +% \DescribeMacro{\tocsubsubsectionfillfont}\index{Макросы!\verb*+\tocsubsubsectionfillfont+} +% \DescribeMacro{\tocsubsubsectionnumfont}\index{Макросы!\verb*+\tocsubsubsectionnumfont+} +% +% \DescribeMacro{\tocsubsubsectionindent}\index{Макросы!\verb*+\tocsubsubsectionindent+} +% \DescribeMacro{\tocsubsubsectionnameindent}\index{Макросы!\verb*+\tocsubsubsectionnameindent+} +% \begin{macrocode} +\providecommand\tocprethesubsubsection{} +\providecommand\tocpostthesubsubsection{.\@postskip} +\providecommand\tocsubsubsectionfill{\tocfill{.}} + +\providecommand\tocsubsubsectionfont{\normalfont} +\providecommand\tocsubsubsectionfillfont{} +\providecommand\tocsubsubsectionnumfont{} + +\providecommand\tocsubsubsectionindent{7.6em} +\providecommand\tocsubsubsectionnameindent{4.7em} + +% \end{macrocode} +% \paragraph{Параметры формата в тексте} +% +% \DescribeMacro{\subsubsectionfont}\index{Макросы!\verb*+\subsubsectionfont+} +% \DescribeMacro{\prethesubsubsection}\index{Макросы!\verb*+\prethesubsubsection+} +% \DescribeMacro{\postthesubsubsection}\index{Макросы!\verb*+\postthesubsubsection+} +% \DescribeMacro{\subsubsectionindent}\index{Макросы!\verb*+\subsubsectionindent+} +% \DescribeMacro{\beforesubsubsection}\index{Макросы!\verb*+\beforesubsubsection+} +% \DescribeMacro{\aftersubsubsection}\index{Макросы!\verb*+\aftersubsubsection+} +% \DescribeMacro{\subsubsectionalign}\index{Макросы!\verb*+\subsubsectionalign+} +% \begin{macrocode} +\providecommand\subsubsectionfont{\normalfont\normalsize\bfseries} + +\providecommand\prethesubsubsection{} +\providecommand\postthesubsubsection{.~} + +\providecommand\subsubsectionindent{\z@} +\providecommand\beforesubsubsection{-3.25ex\@plus -1ex \@minus -.2ex} +\providecommand\aftersubsubsection{1.5ex \@plus .2ex} +\providecommand\subsubsectionalign{\raggedright} + +% \end{macrocode} +% \subsubsection{Paragraph} +% \paragraph{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocpretheparagraph}\index{Макросы!\verb*+\tocpretheparagraph+} +% \DescribeMacro{\tocposttheparagraph}\index{Макросы!\verb*+\tocposttheparagraph+} +% \DescribeMacro{\tocparagraphfill}\index{Макросы!\verb*+\tocparagraphfill+} +% +% \begin{macrocode} +\providecommand\tocpretheparagraph{} +\providecommand\tocposttheparagraph{.\@postskip} +\providecommand\tocparagraphfill{\tocfill{.}} + +% \end{macrocode} +% \DescribeMacro{\tocparagraphfont}\index{Макросы!\verb*+\tocparagraphfont+} +% \DescribeMacro{\tocparagraphfillfont}\index{Макросы!\verb*+\tocparagraphfillfont+} +% \DescribeMacro{\tocparagraphnumfont}\index{Макросы!\verb*+\tocparagraphnumfont+} +% \begin{macrocode} +\providecommand\tocparagraphfont{\normalfont} +\providecommand\tocparagraphfillfont{} +\providecommand\tocparagraphnumfont{} + +% \end{macrocode} +% \DescribeMacro{\tocparagraphindent}\index{Макросы!\verb*+\tocparagraphindent+} +% \DescribeMacro{\tocparagraphnameindent}\index{Макросы!\verb*+\tocparagraphnameindent+} +% \begin{macrocode} +\providecommand\tocparagraphindent{10em} +\providecommand\tocparagraphnameindent{5em} + +% \end{macrocode} +% \paragraph{Параметры формата в тексте} +% +% \DescribeMacro{\paragraphfont}\index{Макросы!\verb*+\paragraphfont+} +% +% \DescribeMacro{\pretheparagraph}\index{Макросы!\verb*+\pretheparagraph+} +% \DescribeMacro{\posttheparagraph}\index{Макросы!\verb*+\posttheparagraph+} +% +% \DescribeMacro{\paragraphindent}\index{Макросы!\verb*+\paragraphindent+} +% \DescribeMacro{\beforeparagraph}\index{Макросы!\verb*+\beforeparagraph+} +% \DescribeMacro{\afterparagraph}\index{Макросы!\verb*+\afterparagraph+} +% \DescribeMacro{\paragraphalign}\index{Макросы!\verb*+\paragraphalign+} +% \begin{macrocode} +\providecommand\paragraphfont{\normalfont\normalsize\bfseries} + +\providecommand\pretheparagraph{} +\providecommand\posttheparagraph{.~} + +\providecommand\paragraphindent{\z@} +\providecommand\beforeparagraph{3.25ex \@plus1ex \@minus.2ex} +\providecommand\afterparagraph{-1em} +\providecommand\paragraphalign{} + +% \end{macrocode} +% \subsubsection{Subparagraph} +% \paragraph{Параметры формата записи в оглавлении} +% +% \DescribeMacro{\tocprethesubparagraph}\index{Макросы!\verb*+\tocprethesubparagraph+} +% \DescribeMacro{\tocpostthesubparagraph}\index{Макросы!\verb*+\tocpostthesubparagraph+} +% \DescribeMacro{\tocsubparagraphfill}\index{Макросы!\verb*+\tocsubparagraphfill+} +% \begin{macrocode} +\providecommand\tocprethesubparagraph{} +\providecommand\tocpostthesubparagraph{.\@postskip} +\providecommand\tocsubparagraphfill{\tocfill{.}} + +% \end{macrocode} +% \DescribeMacro{\tocsubparagraphfont}\index{Макросы!\verb*+\tocsubparagraphfont+} +% \DescribeMacro{\tocsubparagraphfillfont}\index{Макросы!\verb*+\tocsubparagraphfillfont+} +% \DescribeMacro{\tocsubparagraphnumfont}\index{Макросы!\verb*+\tocsubparagraphnumfont+} +% \begin{macrocode} +\providecommand\tocsubparagraphfont{\normalfont} +\providecommand\tocsubparagraphfillfont{} +\providecommand\tocsubparagraphnumfont{} + +% \end{macrocode} +% \DescribeMacro{\tocsubparagraphindent}\index{Макросы!\verb*+\tocsubparagraphindent+} +% \DescribeMacro{\tocsubparagraphnameindent}\index{Макросы!\verb*+\tocsubparagraphnameindent+} +% \begin{macrocode} +\providecommand\tocsubparagraphindent{12em} +\providecommand\tocsubparagraphnameindent{6em} + +% \end{macrocode} +% \paragraph{Параметры формата в тексте} +% +% \DescribeMacro{\subparagraphfont}\index{Макросы!\verb*+\subparagraphfont+} +% +% \DescribeMacro{\prethesubparagraph}\index{Макросы!\verb*+\prethesubparagraph+} +% \DescribeMacro{\postthesubparagraph}\index{Макросы!\verb*+\postthesubparagraph+} +% +% \DescribeMacro{\subparagraphindent}\index{Макросы!\verb*+\subparagraphindent+} +% \DescribeMacro{\beforesubparagraph}\index{Макросы!\verb*+\beforesubparagraph+} +% \DescribeMacro{\aftersubparagraph}\index{Макросы!\verb*+\aftersubparagraph+} +% \DescribeMacro{\subparagraphalign}\index{Макросы!\verb*+\subparagraphalign+} +% \begin{macrocode} +\providecommand\subparagraphfont{\normalfont\normalsize\bfseries} + +\providecommand\prethesubparagraph{} +\providecommand\postthesubparagraph{.~} + +\providecommand\subparagraphindent{\parindent} +\providecommand\subparagraphalign{\raggedright} +\providecommand\beforesubparagraph{3.25ex \@plus1ex \@minus .2ex} +\providecommand\aftersubparagraph{-1em} + +% \end{macrocode} +% \subsubsection{Низкоуровневые команды} +% +% \DescribeMacro{\@startsection}\index{Макросы!\verb*+"\"@startsection+} +% Команда, создающая заголовки секций. +% \begin{macrocode} +\def\@startsection#1#2{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa \csname before#1\endcsname\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \@ifstar + {\@ssect{\csname #1indent\endcsname}% + {\csname before#1\endcsname}{\csname after#1\endcsname}% + {\csname #1font\endcsname\csname #1align\endcsname}}% + {\@dblarg{\@sect{#1}{#2}{\csname #1indent\endcsname}% + {\csname before#1\endcsname}{\csname after#1\endcsname}% + {\csname #1font\endcsname\csname #1align\endcsname}}}% +} + +% \end{macrocode} +% \DescribeMacro{\@ssect}\index{Макросы!\verb*+"\"@ssect+} +% Для ненумеруемых секций. +% \begin{macrocode} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}% +} + +% \end{macrocode} +% \DescribeMacro{\@sect}\index{Макросы!\verb*+"\"@sect+} +% Для нумеруемых секций. +% \begin{macrocode} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\@tocseccntformat{#1}}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\@tocseccntformat{#1}}% + \fi + #7}% + }% + \fi + \@xsect{#5}% +} + +% \end{macrocode} +% \DescribeMacro{\@tocline}\index{Макросы!\verb*+"\"@tocline+} +% Обобщенная версия стандартной команды, добавляющей запись в оглавление. +% \begin{macrocode} +\def\@tocline#1#2#3#4{% + \ifnum #2>\c@tocdepth \else + \vskip \z@ \@plus.2\p@ + {\leftskip \csname toc#1indent\endcsname\relax% + \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent \csname toc#1indent\endcsname\relax% + \@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \csname toc#1nameindent\endcsname\relax + \csname toc#1font\endcsname + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {#3}\nobreak + \csname toc#1fillfont\endcsname \csname toc#1fill\endcsname\hfill + \nobreak\hb@xt@\@pnumwidth{\hfil\csname toc#1numfont\endcsname #4}% + \par% + }% + \fi +} + +% \end{macrocode} +% Команды, создающие заголовки секций в тексте и записи в оглавлении. +% \DescribeMacro{\section}\index{Макросы!\verb*+\section+} +% \DescribeMacro{\l@section}\index{Макросы!\verb*+"\l"@section+} +% \begin{macrocode} +\newcommand\section{\@startsection{section}{1}} +\newcommand*\l@section{\@tocline{section}{1}} + +% \end{macrocode} +% \DescribeMacro{\subsection}\index{Макросы!\verb*+\subsection+} +% \DescribeMacro{\l@subsection}\index{Макросы!\verb*+"\l"@subsection+} +% \begin{macrocode} +\newcommand\subsection{\@startsection{subsection}{2}} +\newcommand*\l@subsection{\@tocline{subsection}{2}} + +% \end{macrocode} +% \DescribeMacro{\subsubsection}\index{Макросы!\verb*+\subsubsection+} +% \DescribeMacro{\l@subsubsection}\index{Макросы!\verb*+"\l"@subsubsection+} +% \begin{macrocode} +\newcommand\subsubsection{\@startsection{subsubsection}{3}} +\newcommand*\l@subsubsection{\@tocline{subsubsection}{3}} + +% \end{macrocode} +% \DescribeMacro{\paragraph}\index{Макросы!\verb*+\paragraph+} +% \DescribeMacro{\l@paragraph}\index{Макросы!\verb*+"\l"@paragraph+} +% \begin{macrocode} +\newcommand\paragraph{\@startsection{paragraph}{4}} +\newcommand*\l@paragraph{\@tocline{paragraph}{4}} + +% \end{macrocode} +% \DescribeMacro{\subparagraph}\index{Макросы!\verb*+\subparagraph+} +% \DescribeMacro{\l@subparagraph}\index{Макросы!\verb*+"\l"@subparagraph+} +% \begin{macrocode} +\newcommand\subparagraph{\@startsection{subparagraph}{5}} +\newcommand*\l@subparagraph{\@tocline{subparagraph}{5}} + +%</sections> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/specialist.dtx b/macros/latex/contrib/disser/src/specialist.dtx new file mode 100644 index 0000000000..6b22accf63 --- /dev/null +++ b/macros/latex/contrib/disser/src/specialist.dtx @@ -0,0 +1,152 @@ +% \begin{macrocode} + +%<specialist>\ProvidesFile{specialist.rtx} + +%<*specialist> +% \end{macrocode} +% \subsubsection{Стиль работы специалиста} +% +% Нумерация. +% \begin{macrocode} +\newcommand\specialist@the{\default@the} +\specialist@the + +\def\diplomafield#1{% + \csname #1label\endcsname\\% + \csname @#1status\endcsname\ \csname @#1\endcsname +} + +% \end{macrocode} +% Титульный лист. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} +\if@titlepage\renewcommand\maketitle[1][]{ +% \end{macrocode} +% Переопределения некоторых полей титульного листа для англоязычной версии. +% \begin{macrocode} +\ifthenelse{\equal{#1}{en}}{\@titlepage@entrue}{\@titlepage@enfalse} +\if@titlepage@en + \def\appos{Head of Department} + \def\approved{``Approved for defence''} + \def\revname{Reviewer} + \def\revsndname{\revname} + \def\revlabel{\revname} + \def\revsndlabel{\revsndname} + \def\saname{Scientific Supervisor} + \def\sasndname{\saname} + \def\salabel{\saname} + \def\sasndlabel{\saname} +\else + \def\appos{\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ % + \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt} + \def\approved{<<\CYRD\cyro\cyrp\cyru\cyrs\cyrt\cyri\cyrt\cyrsftsn\ % + \cyrk\ \cyrz\cyra\cyrshch\cyri\cyrt\cyre>>} +\fi + +% \end{macrocode} +% Вертикальные интервалы между элементами титульного листа. +% \DescribeMacro{\firstskip}\index{Интервалы!\verb*+\firstskip+} +% \DescribeMacro{\secondskip}\index{Интервалы!\verb*+\secondskip+} +% \DescribeMacro{\thirdskip}\index{Интервалы!\verb*+\thirdskip+} +% \DescribeMacro{\fourthskip}\index{Интервалы!\verb*+\fourthskip+} +% \DescribeMacro{\fifthskip}\index{Интервалы!\verb*+\fifthskip+} +% \begin{macrocode} +\ifundeflength\firstskip{1.5cm} +\ifundeflength\secondskip{1.5cm} +\ifundeflength\thirdskip{3ex} +\ifundeflength\fourthskip{1ex} +\ifundeflength\fifthskip{1ex} +\ifundeflength\sixthskip{2cm} +\ifundeflength\seventhskip{1ex} + +% \end{macrocode} +% Горизонтальный отступ перед чертой в текстовым поле для имени, ученой +% степени и звания научного руководителя и консультанта. +% \DescribeMacro{\fieldhshift}\index{Интервалы!\verb*+\fieldhshift+} +% \begin{macrocode} +\setlength\fieldhshift{8.5cm} + +% \end{macrocode} +% Шрифты элементов титульного листа. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topiclabelfont}\index{Макросы!\verb*+\topiclabelfont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \begin{macrocode} +\def\titlefont{\Large\bfseries} +\def\topiclabelfont{\large} +\def\topicfont{\large\bfseries} + +% \end{macrocode} +% Работа +% \DescribeMacro{\workname}\index{Макросы!\verb*+\topicfont+} +% \begin{macrocode} +\def\workname{\CYRR\cyra\cyrb\cyro\cyrt\cyra} + +\thispagestyle{empty} +\enlargethispage{1cm} +\vspace*{-2cm} +% \end{macrocode} +% \paragraph{Название организации} +% \begin{macrocode} +\begin{center} + {\instfont\@institution} +\end{center} + +\def\@approved{ +\hfill +\begin{minipage}{.5\linewidth} + {\approved}\hrulefill\\[9pt]% + \appos\\% + \@apname% +\end{minipage} +} + +% \end{macrocode} +% Допустить к защите +% \begin{macrocode} +\vskip\firstskip +{\@approved} +\vskip\secondskip +% \end{macrocode} +% Заголовок, автор, тема +% \begin{macrocode} +\begin{center} + {\titlefont\@title} + \vskip\thirdskip + {\@group} + \vskip\fourthskip + {\@author} + \vskip\fifthskip + {\topicfont\@topic} +\end{center} +\normalfont +% \end{macrocode} +% Руководитель, рецензент +% \begin{macrocode} +\vskip\sixthskip +\hfill +\begin{minipage}{.5\linewidth} + \ifx\@sa\empty\else + \vskip\seventhskip\diplomafield{sa} + \fi + \ifx\@sasnd\empty\else + \vskip\seventhskip\diplomafield{sasnd} + \fi + \ifx\@rev\empty\else + \vskip\seventhskip\diplomafield{rev} + \fi + \ifx\@revsnd\empty\else + \vskip\seventhskip\diplomafield{revsnd} + \fi +\end{minipage} +% \end{macrocode} +% \paragraph{Город и год} +% \begin{macrocode} +\vfill +\begin{center} + {\@city\cdsep\@date} +\end{center} +\normalfont\clearpage +}\fi +%</specialist> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/titledefs.dtx b/macros/latex/contrib/disser/src/titledefs.dtx new file mode 100644 index 0000000000..ea307de6ea --- /dev/null +++ b/macros/latex/contrib/disser/src/titledefs.dtx @@ -0,0 +1,514 @@ +% \begin{macrocode} + +%<titledefs>\ProvidesFile{titledefs.rtx} + +%<*titledefs> +% \end{macrocode} +% +% \subsection{Постоянные части заголовков, титульного листа и текста} +% +% \DescribeMacro{\abstractname}\index{Макросы!\verb+\abstractname+} +% Аннотация +% \begin{macrocode} +\def\abstractname{\cyr\CYRA\cyrn\cyrn\cyro\cyrt\cyra\cyrc\cyri\cyrya} +% \end{macrocode} +% \DescribeMacro{\titlepagename}\index{Макросы!\verb+\titlepagename+} +% Титульный лист +% \begin{macrocode} +\def\titlepagename{% +\cyr\CYRT\cyri\cyrt\cyru\cyrl\cyrsftsn\cyrn\cyrery\cyrishrt\ % +\cyrl\cyri\cyrs\cyrt} +% \end{macrocode} +% \DescribeMacro{\keywordsname}\index{Макросы!\verb+\keywordsname+} +% \DescribeMacro{\keywordslabel}\index{Макросы!\verb+\keywordslabel+} +% Ключевые слова +% \begin{macrocode} +\def\keywordsname{\cyr\CYRK\cyrk\cyryu\cyrch\cyre\cyrv\cyrery\cyre\ % +\cyrs\cyrl\cyro\cyrv\cyra} +\def\keywordslabel{\keywordsname:} +% \end{macrocode} +% \DescribeMacro{\workname}\index{Макросы!\verb+\workname+} +% Диссертация +% \begin{macrocode} +\def\workname{\cyr\CYRD\cyri\cyrs\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyri\cyrya} +% \end{macrocode} +% \DescribeMacro{\approved}\index{Макросы!\verb+\approved+} +% Диссертация допущена к защите (запись о допуске) +% \begin{macrocode} +\def\approved{\workname\ \cyrd\cyro\cyrp\cyru\cyrshch\cyre\cyrn\cyra\ % +\cyrk\ \cyrz\cyra\cyrshch\cyri\cyrt\cyre} +% \end{macrocode} +% \DescribeMacro{\appos}\index{Макросы!\verb+\appos+} +% Должность лица, допускающего к защите +% \begin{macrocode} +\def\appos{\cyr\cyrz\cyra\cyrv.\ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt} +% \end{macrocode} +% \DescribeMacro{\groupname}\index{Макросы!\verb+\groupname+} +% гр. (группа) +% \begin{macrocode} +\def\groupname{\cyr\cyrg\cyrr.} +% \end{macrocode} +% \DescribeMacro{\topicname}\index{Макросы!\verb+\topicname+} +% \DescribeMacro{\topiclabel}\index{Макросы!\verb+\topiclabel+} +% Тема +% \begin{macrocode} +\def\topicname{\cyr\CYRT\cyre\cyrm\cyra} +\def\topiclabel{\topicname:\ } +% \end{macrocode} +% \DescribeMacro{\coursename}\index{Макросы!\verb+\coursename+} +% \DescribeMacro{\courselabel}\index{Макросы!\verb+\courselabel+} +% Направление +% \begin{macrocode} +\def\coursename{\cyr\CYRN\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre} +\def\courselabel{\coursename:} +% \end{macrocode} +% \DescribeMacro{\specname}\index{Макросы!\verb+\specname+} +% \DescribeMacro{\speclabel}\index{Макросы!\verb+\speclabel+} +% Специальность +% \begin{macrocode} +\def\specname{% +\cyr\CYRS\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrsftsn} +\def\speclabel{\specname:} +% \end{macrocode} +% \DescribeMacro{\masterprogname}\index{Макросы!\verb+\masterprogname+} +% \DescribeMacro{\masterprogsep}\index{Макросы!\verb+\masterprogsep+} +% \DescribeMacro{\masterproglabel}\index{Макросы!\verb+\masterproglabel+} +% Магистерская программа +% \begin{macrocode} +\def\masterprogname{% +\cyr\CYRM\cyra\cyrg\cyri\cyrs\cyrt\cyre\cyrr\cyrs\cyrk\cyra\cyrya\ % +\cyrp\cyrr\cyro\cyrg\cyrr\cyra\cyrm\cyrm\cyra} +\def\masterproglabel{\masterprogname:} +% \end{macrocode} +% \DescribeMacro{\studentname}\index{Макросы!\verb+\studentname+} +% \DescribeMacro{\studentlabel}\index{Макросы!\verb+\studentlabel+} +% Выполнил студент +% \begin{macrocode} +\def\studentname{\cyr\CYRV\cyrery\cyrp\cyro\cyrl\cyrn\cyri\cyrl\ % +\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt} +\def\studentlabel{\studentname\ \groupname\ \@group\hspace{1.5cm}} +% \end{macrocode} +% \DescribeMacro{\saname}\index{Макросы!\verb+\saname+} +% \DescribeMacro{\salabel}\index{Макросы!\verb+\salabel+} +% Научный руководитель (sa -- сокр. от scientific adviser) +% \begin{macrocode} +\def\saname{\cyr\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ % +\cyrr\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn} +\def\sasndname{\saname} +\def\salabel{\saname} +\def\sasndlabel{\sasndname} +% \end{macrocode} +% \DescribeMacro{\scname}\index{Макросы!\verb+\scname+} +% \DescribeMacro{\sclabel}\index{Макросы!\verb+\sclabel+} +% Научный консультант (для докторских диссертаций) +% \begin{macrocode} +\def\sconname{\cyr\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ % +\cyrk\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt} +\def\sconsndname{\sconname} +\def\sconlabel{\sconname} +\def\sconsndlabel{\sconsndname} +% \end{macrocode} +% \DescribeMacro{\revname}\index{Макросы!\verb+\revname+} +% \DescribeMacro{\revlabel}\index{Макросы!\verb+\revlabel+} +% Рецензент +% \begin{macrocode} +\def\revname{\cyr\CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt} +\def\revsndname{\revname} +\def\revlabel{\revname} +\def\revsndlabel{\revsndname} +% \end{macrocode} +% \DescribeMacro{\conname}\index{Макросы!\verb+\conname+} +% \DescribeMacro{\conlabel}\index{Макросы!\verb+\conlabel+} +% Консультант (для магистерских дипломов) +% \begin{macrocode} +\def\conname{\cyr\CYRK\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt} +\def\consndname{\conname} +\def\conlabel{\conname\ \cyrp\cyro\ \@conspec} +\def\consndlabel{\consndname\ \cyrp\cyro\ \@consndspec} +% \end{macrocode} +% \DescribeMacro{\asmanuscript}\index{Макросы!\verb+\asmanuscript+} +% На правах рукописи +% \begin{macrocode} +\def\asmanuscript{\cyr\CYRN\cyra\ \cyrp\cyrr\cyra\cyrv\cyra\cyrh\ % +\cyrr\cyru\cyrk\cyro\cyrp\cyri\cyrs\cyri} +% \end{macrocode} +% \DescribeMacro{\libcatname}\index{Макросы!\verb+\libcatname+} +% УДК +% \begin{macrocode} +\def\libcatname{\cyr\CYRU\CYRD\CYRK} +% \end{macrocode} +% \DescribeMacro{\consultname}\index{Макросы!\verb+\consultname+} +% Консультанты +% \begin{macrocode} +\def\consultname{% +\cyr\CYRK\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt\cyrery:} +% \end{macrocode} +% +% \subsection{Интерфейс для определения элементов титульного листа} +% +% \DescribeMacro{\institution}\index{Макросы!\verb*+\institution+} +% Организация +% \begin{macrocode} +\def\institution#1{\gdef\@institution{#1}}\institution{} +% \end{macrocode} +% +% \DescribeMacro{\spec}\index{Макросы!\verb*+\spec+} +% \DescribeMacro{\specsnd}\index{Макросы!\verb*+\specsnd+} +% Название специальности +% \begin{macrocode} +\def\spec#1{\gdef\@spec{#1}}\spec{} +\def\specsnd#1{\gdef\@specsnd{#1}}\specsnd{} + +% \end{macrocode} +% \DescribeMacro{\specnum}\index{Макросы!\verb*+\specnum+} +% \DescribeMacro{\specsndnum}\index{Макросы!\verb*+\specsndnum+} +% Номер специальности +% \begin{macrocode} +\def\specnum#1{\gdef\@specnum{#1}}\specnum{} +\def\specsndnum#1{\gdef\@specsndnum{#1}}\specsndnum{} + +% \end{macrocode} +% \DescribeMacro{\course}\index{Макросы!\verb*+\course+} +% Название направления +% \begin{macrocode} +\def\course#1{\gdef\@course{#1}}\course{} +% \end{macrocode} +% \DescribeMacro{\coursenum}\index{Макросы!\verb*+\coursenum+} +% Номер направления +% \begin{macrocode} +\def\coursenum#1{\gdef\@coursenum{#1}}\coursenum{} +% \end{macrocode} +% \DescribeMacro{\keywords}\index{Макросы!\verb*+\keywords+} +% Ключевые слова +% \begin{macrocode} +\def\keywords#1{\gdef\@keywords{#1}}\keywords{} +% \end{macrocode} +% \DescribeMacro{\title}\index{Макросы!\verb*+\title+} +% Заголовок +% \begin{macrocode} +\def\title#1{\gdef\@title{#1}}\title{} +% \end{macrocode} +% \DescribeMacro{\topic}\index{Макросы!\verb*+\topic+} +% Тема +% \begin{macrocode} +\def\topic#1{\gdef\@topic{#1}}\topic{} +% \end{macrocode} +% \DescribeMacro{\author}\index{Макросы!\verb*+\author+} +% Автор +% \begin{macrocode} +\def\author#1{\gdef\@author{#1}}\author{} +% \end{macrocode} +% \DescribeMacro{\city}\index{Макросы!\verb*+\city+} +% Город +% \begin{macrocode} +\def\city#1{\gdef\@city{#1}}\city{} +% \end{macrocode} +% \DescribeMacro{\faculty}\index{Макросы!\verb*+\faculty+} +% Факультет +% \begin{macrocode} +\def\faculty#1{\gdef\@faculty{#1}}\faculty{} +% \end{macrocode} +% \DescribeMacro{\department}\index{Макросы!\verb*+\department+} +% кафедра +% \begin{macrocode} +\def\department#1{\gdef\@department{#1}}\department{} +% \end{macrocode} +% \DescribeMacro{\apname}\index{Макросы!\verb*+\apname+} +% ФИО лица, допускающего к защите (зав. кафедрой) +% \begin{macrocode} +\def\apname#1{\gdef\@apname{#1}}\apname{} +% \end{macrocode} +% \DescribeMacro{\libcatnum}\index{Макросы!\verb*+\libcatnum+} +% Номер УДК +% \begin{macrocode} +\def\libcatnum#1{\gdef\@libcatnum{#1}}\libcatnum{} +% \end{macrocode} +% \DescribeMacro{\group}\index{Макросы!\verb*+\group+} +% Академическая группа +% \begin{macrocode} +\def\group#1{\gdef\@group{#1}}\group{} +% \end{macrocode} +% \DescribeMacro{\masterprognum}\index{Макросы!\verb*+\masterprognum+} +% Номер магистерской программы +% \begin{macrocode} +\def\masterprognum#1{\gdef\@masterprognum{#1}}\masterprognum{} +% \end{macrocode} +% \DescribeMacro{\masterprog}\index{Макросы!\verb*+\masterprog+} +% Название магистерской программы +% \begin{macrocode} +\def\masterprog#1{\gdef\@masterprog{#1}}\masterprog{} +% \end{macrocode} +% Значение |\date| по умолчанию +% \begin{macrocode} +\date{\number\year} + +% \end{macrocode} +% \DescribeMacro{\yearname}\index{Макросы!\verb*+\yearname+} +% Сокращение года <<г.>> +% \begin{macrocode} +\def\yearname{\cyr\cyrg.} +% \end{macrocode} +% \DescribeMacro{\commonsect}\index{Макросы!\verb*+\commonsect+} +% \DescribeMacro{\postcommonsect}\index{Макросы!\verb*+\postcommonsect+} +% Формат заголовков общего текста <<Введения>> и автореферата. +% \begin{macrocode} +\let\commonsect=\textbf +\def\postcommonsect{\ } +% \end{macrocode} +% +% \subsubsection{Научные руководители} +% \DescribeMacro{\sa}\index{Макросы!\verb*+\sa+} +% \DescribeMacro{\sasnd}\index{Макросы!\verb*+\sasnd+} +% ФИО +% \begin{macrocode} +\def\sa#1{\gdef\@sa{#1}}\sa{} +\def\sasnd#1{\gdef\@sasnd{#1}}\sasnd{} + +% \end{macrocode} +% \DescribeMacro{\sastatus}\index{Макросы!\verb*+\sastatus+} +% \DescribeMacro{\sasndstatus}\index{Макросы!\verb*+\sasndstatus+} +% Учёное звание +% \begin{macrocode} +\def\sastatus#1{\gdef\@sastatus{#1}}\sastatus{} +\def\sasndstatus#1{\gdef\@sasndstatus{#1}}\sasndstatus{} + +% \end{macrocode} +% +% \subsubsection{Научные консультанты (для докторских диссертаций)} +% \DescribeMacro{\scon}\index{Макросы!\verb*+\scon+} +% \DescribeMacro{\sconsnd}\index{Макросы!\verb*+\sconsnd+} +% ФИО +% \begin{macrocode} +\def\scon#1{\gdef\@scon{#1}}\scon{} +\def\sconsnd#1{\gdef\@sconsnd{#1}}\sconsnd{} +% \end{macrocode} +% \DescribeMacro{\sconstatus}\index{Макросы!\verb*+\sconstatus+} +% \DescribeMacro{\sconsndstatus}\index{Макросы!\verb*+\sconsndstatus+} +% Учёное звание +% \begin{macrocode} +\def\sconstatus#1{\gdef\@sconstatus{#1}}\sconstatus{} +\def\sconsndstatus#1{\gdef\@sconsndstatus{#1}}\sconsndstatus{} + +% \end{macrocode} +% +% \subsubsection{Рецензенты} +% \DescribeMacro{\rev}\index{Макросы!\verb*+\rev+} +% \DescribeMacro{\revsnd}\index{Макросы!\verb*+\revsnd+} +% ФИО +% \begin{macrocode} +\def\rev#1{\gdef\@rev{#1}}\rev{} +\def\revsnd#1{\gdef\@revsnd{#1}}\revsnd{} +% \end{macrocode} +% \DescribeMacro{\revstatus}\index{Макросы!\verb*+\revstatus+} +% \DescribeMacro{\revsndstatus}\index{Макросы!\verb*+\revsndstatus+} +% Учёное звание +% \begin{macrocode} +\def\revstatus#1{\gdef\@revstatus{#1}}\revstatus{} +\def\revsndstatus#1{\gdef\@revsndstatus{#1}}\revsndstatus{} + +% \end{macrocode} +% +% \subsubsection{Консультанты (для магистерских дипломов)} +% \DescribeMacro{\con}\index{Макросы!\verb*+\con+} +% ФИО +% \begin{macrocode} +\def\con#1{\gdef\@con{#1}}\con{} +\def\consnd#1{\gdef\@consnd{#1}}\consnd{} +% \end{macrocode} +% \DescribeMacro{\conspec}\index{Макросы!\verb*+\conspec+} +% \DescribeMacro{\consndspec}\index{Макросы!\verb*+\consndspec+} +% Специальность +% \begin{macrocode} +\def\conspec#1{\gdef\@conspec{#1}}\conspec{} +\def\consndspec#1{\gdef\@consndspec{#1}}\consndspec{} +% \end{macrocode} +% \DescribeMacro{\constatus}\index{Макросы!\verb*+\constatus+} +% \DescribeMacro{\consndstatus}\index{Макросы!\verb*+\consndstatus+} +% Учёное звание и степень +% \begin{macrocode} +\def\constatus#1{\gdef\@constatus{#1}}\constatus{} +\def\consndstatus#1{\gdef\@consndstatus{#1}}\consndstatus{} + +% \end{macrocode} +% +% \subsubsection{Названия стандартных ненумеруемых глав} +% \begin{itemize} +% \item Содержание +% \DescribeMacro{\contentsname}\index{Макросы!\verb*+\contentsname+} +% \begin{macrocode} +\AtBeginDocument{% + \addto\captionsrussian{% + \def\contentsname{\cyr\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyre} + } +} + +% \end{macrocode} +% \item Введение +% \DescribeMacro{\introname}\index{Макросы!\verb*+\introname+} +% \DescribeMacro{\intro}\index{Макросы!\verb*+\intro+} +% \begin{macrocode} +\providecommand*\introname{\cyr\CYRV\cyrv\cyre\cyrd\cyre\cyrn\cyri\cyre} +\providecommand*\intro{\nchapter{\introname}} + +% \end{macrocode} +% \item Обзор литературы +% \DescribeMacro{\reviewname}\index{Макросы!\verb*+\reviewname+} +% \begin{macrocode} +\providecommand*\reviewname{\cyr\CYRO\cyrb\cyrz\cyro\cyrr\ % +\cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery} +\providecommand*\review{\nchapter{\reviewname}} + +% \end{macrocode} +% \item Заключение +% \DescribeMacro{\conclusionname}\index{Макросы!\verb*+\conclusionname+} +% \DescribeMacro{\conclusion}\index{Макросы!\verb*+\conclusion+} +% \begin{macrocode} +\providecommand*\conclusionname{% +\cyr\CYRZ\cyra\cyrk\cyrl\cyryu\cyrch\cyre\cyrn\cyri\cyre +} +\providecommand*\conclusion{\nchapter{\conclusionname}} + +% \end{macrocode} +% \item Список сокращений и условных обозначений +% \DescribeMacro{\defsname}\index{Макросы!\verb*+\defsname+} +% \DescribeMacro{\defs}\index{Макросы!\verb*+\defs+} +% \begin{macrocode} +\providecommand*\defsname{% +{\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\ % +\cyrs\cyro\cyrk\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrishrt\ \cyri\ % +\cyru\cyrs\cyrl\cyro\cyrv\cyrn\cyrery\cyrh\ % +\cyro\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyrishrt} +} +\providecommand*\defs{\nchapter{\defsname}} + +\AtBeginDocument{% + \addto\captionsrussian{\def\nomname{\defsname}} +} + +% \end{macrocode} +% \item Словарь терминов +% \DescribeMacro{\dictname}\index{Макросы!\verb*+\dictname+} +% \DescribeMacro{\dict}\index{Макросы!\verb*+\dict+} +% \begin{macrocode} +\providecommand*\dictname{% +{\cyr\CYRS\cyrl\cyro\cyrv\cyra\cyrr\cyrsftsn\ % +\cyrt\cyre\cyrr\cyrm\cyri\cyrn\cyro\cyrv} +} +\providecommand*\dict{\nchapter{\dictname}} + +% \end{macrocode} +% \item Список литературы +% \DescribeMacro{\contentsname}\index{Макросы!\verb*+\contentsname+} +% \begin{macrocode} +\AtBeginDocument{% + \addto\captionsrussian{% + \def\bibname{\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\ % + \cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery} + } +} + +% \end{macrocode} +% \item Список иллюстративного материала +% \DescribeMacro{\listfigurename}\index{Макросы!\verb*+\listfigurename+} +% \begin{macrocode} +\AtBeginDocument{% + \addto\captionsrussian{% + \def\listfigurename{\cyr\CYRS\cyrp\cyri\cyrs\cyro\cyrk\ % + \cyri\cyrl\cyrl\cyryu\cyrs\cyrt\cyrr\cyra\cyrt\cyri\cyrv\cyrn\cyro% + \cyrg\cyro\ % + \cyrm\cyra\cyrt\cyre\cyrr\cyri\cyra\cyrl\cyra} + } +} + +% \end{macrocode} +% \end{itemize} +% +% \subsubsection{Элементы титульного листа} +% \DescribeMacro{\fieldhshift}\index{Интервалы!\verb*+\fieldhshift+} +% \begin{macrocode} +\Dis@deflength\fieldhshift{8cm} + +% \end{macrocode} +% \DescribeMacro{\namefield}\index{Макросы!\verb*+\namefield+} +% Формат поля для подписи, имени, ученого звания и степени научных +% руководителей, рецензентов и консультанта для бакалаврского и магистерского +% дипломов. +% \begin{macrocode} +\providecommand\diplomafield[1]{% + \csname #1label\endcsname,\\% + \csname @#1status\endcsname\> + \makebox[\fieldhshift][l]{\hrulefill\ \csname @#1\endcsname} +} +% \end{macrocode} +% Аналогичное поле для кандидатской и докторской диссертации. +% \begin{macrocode} +\providecommand\disserfield[1]{% + \begin{tabbing} + \hspace{\fieldhshift}\={\csname #1label\endcsname}\\ + \>\csname @#1status\endcsname\\ + \>\csname @#1\endcsname + \end{tabbing} +} + +% \end{macrocode} +% +% \DescribeMacro{\@approved}\index{Макросы!\verb+"\"@approved+} +% Диссертация допущена к защите +% \begin{macrocode} +\providecommand\@approved{ + \begin{tabbing} + \hspace{8cm}\={\approved}\\ + \>\appos\\[9pt] + \>\makebox[8.5cm][r]{\hrulefill\ \@apname}\\[9pt] + \>\makebox[1.5cm][r]{<<\hrulefill>>} + \makebox[7cm][r]{\hrulefill\ \@date\,\yearname} + \end{tabbing} +} + +% \end{macrocode} +% \DescribeMacro{\datefield}\index{Макросы!\verb*+\datefield+} +% Поле для записи даты. Для отображения произвольного года нужно +% присвоить значение необязательному аргументу. +% \begin{macrocode} +\providecommand\datefield[1][\number\year]{<<\rule[0pt]{1cm}{.5pt}>>\ % +\rule[0pt]{3cm}{0.5pt}\ #1~\yearname} + +% \end{macrocode} +% \DescribeMacro{\mkcommonsect}\index{Макросы!\verb*+\mkcommonsect+} +% Генератор команд для общего текста диссертации и автореферата. +% \begin{macrocode} +\providecommand\mkcommonsect[3]{% + \@namedef{#1head}{#2} + \@namedef{#1section}{\commonsect{\expandafter\csname #1head\endcsname}% + \postcommonsect} + \@namedef{#1text}{#3} +} +\let\mkintrosect=\mkcommonsect + +% \end{macrocode} +% \DescribeMacro{\copynum}\index{Макросы!\verb*+\copynum+} +% \DescribeMacro{\classlabel}\index{Макросы!\verb*+\classlabel+} +% \DescribeMacro{\classify}\index{Макросы!\verb*+\classify+} +% Номер копии и гриф секретности. +% \begin{macrocode} +\def\copynum#1{\gdef\@copynum{#1}} +\copynum{1} +\def\classlabel#1{\gdef\@classlabel{#1}} +\classlabel{\cyr\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyrn\cyro} + +\def\classify{ + \begin{flushright} + \@classlabel\\ + {\cyr\CYREREV\cyrk\cyrz.~\textnumero\,\@copynum} + \end{flushright} + \vspace{2ex} +} + +% \end{macrocode} +% \DescribeMacro{\facsimile}\index{Макросы!\verb*+\facsimile+} +% Команда для включения графического файла с подписью диссертанта. +% \begin{macrocode} +\providecommand\facsimile{\vskip 6pt\includegraphics[width=3cm]{facsimile}} + +%</titledefs> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/titlepage.dtx b/macros/latex/contrib/disser/src/titlepage.dtx new file mode 100644 index 0000000000..db1dc886b8 --- /dev/null +++ b/macros/latex/contrib/disser/src/titlepage.dtx @@ -0,0 +1,74 @@ +% \begin{macrocode} + +%<*titlepage> +% \end{macrocode} +% +% \subsection{Титульный лист} +% +% Подключение констант и команд, используемых для верстки титульного листа. +% \begin{macrocode} +\input{titledefs.rtx} + +\if@titlepage +% \end{macrocode} +% Параметры частей титульного листа по умолчанию. +% \DescribeMacro{\titlefont}\index{Макросы!\verb*+\titlefont+} +% \DescribeMacro{\topiclabelfont}\index{Макросы!\verb*+\topiclabelfont+} +% \DescribeMacro{\topicfont}\index{Макросы!\verb*+\topicfont+} +% \DescribeMacro{\instfont}\index{Макросы!\verb*+\instfont+} +% \begin{macrocode} + \newcommand\titlefont{\Large\bfseries} + \newcommand\topiclabelfont{\large} + \newcommand\topicfont{\large\bfseries} + \newcommand\instfont{\normalfont} +% \end{macrocode} +% Разделитель между названием города и годом. +% \DescribeMacro{\cdsep}\index{Макросы!\verb*+\cdsep+} +% \begin{macrocode} + \newcommand\cdsep{~-- } + + \newcommand\maketitle{} + \setcounter{footnote}{0} +\else +% \end{macrocode} +% Заголовок без отдельного титульного листа. +% \DescribeMacro{\maketitle}\index{Макросы!\verb*+\maketitle+} +% \begin{macrocode} + \newcommand\maketitle{% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } +% \end{macrocode} +% \DescribeMacro{\@maketitle}\index{Макросы!\verb+"\"@maketitle+} +% Команда для форматирования заголовка документа без отдельного +% титульного листа (см. описание опции \cmd{notitlepage}). +% \begin{macrocode} + \def\@maketitle{% + \newpage + \null + \vskip 2em% + \begin{center}% + \let\footnotesize\small + \let\footnote\thanks + {\titlefont\@title\par}% + \vskip 1.5em% + {\large\lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em% + } +\fi % \if@titlepage +%</titlepage> +% \end{macrocode} diff --git a/macros/latex/contrib/disser/src/toc.dtx b/macros/latex/contrib/disser/src/toc.dtx new file mode 100644 index 0000000000..faa87c5f01 --- /dev/null +++ b/macros/latex/contrib/disser/src/toc.dtx @@ -0,0 +1,180 @@ + +% \iffalse +%%% From File: toc.dtx +% \fi +% +% \begin{macrocode} + +%<*toc> +% \end{macrocode} +% +% \subsection{Автоматически генерируемые списки (оглавление, предметный +% указатель и т.\,д.)} +% +% \subsubsection{Общие параметры} +% +% Горизонтальный пробел между постоянной и переменной частями заголовков. +% \DescribeMacro{\@postskip}\index{Макросы!\verb+"\"@postskip+} +% \begin{macrocode} +\def\@postskip{\texorpdfstring{\hskip1em}{ }} +% \end{macrocode} +% Длина пробела между заполнителем строки и номером страницы. +% \DescribeMacro{\@pnumwidth}\index{Макросы!\verb+"\"@pnumwidth+} +% \begin{macrocode} +\newcommand\@pnumwidth{1.55em} +% \end{macrocode} +% Правая граница текста. +% \DescribeMacro{\@tocrmarg}\index{Макросы!\verb+"\"@tocrmarg+} +% \begin{macrocode} +\newcommand\@tocrmarg{2.55em} +% \end{macrocode} +% Расстояние между символами (точками) в заполнителе между названием и номером +% (в единицах mu = 1/18 em, em --- длина буквы |M| текущего шрифта). +% \DescribeMacro{\@dotsep}\index{Макросы!\verb+"\"@dotsep+} +% \begin{macrocode} +\newcommand\@dotsep{4.5} +% \end{macrocode} +% Команда для заполнения промежутка между названием и номером страницы. +% \DescribeMacro{\tocfill}\index{Макросы!\verb*+\tocfill+} +% \begin{macrocode} +\def\tocfill#1{% + \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{#1}\mkern\@dotsep mu$}% +} + +% \end{macrocode} +% \subsubsection{Оглавление} +% +% Команда, создающая заголовок в тексте. +% \DescribeMacro{\tocsection}\index{Макросы!\verb*+\tocsection+} +% \begin{macrocode} +\newcommand\tocsection{\chapter*{\contentsname}} + +% \end{macrocode} +% \DescribeMacro{\tableofcontents}\index{Макросы!\verb*+\tableofcontents+} +% \begin{macrocode} +\newcommand\tableofcontents{% + \if@twocolumn% + \@restonecoltrue\onecolumn% + \else\@restonecolfalse\fi% + \tocsection% + \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}% + \@starttoc{toc}% + \if@restonecol\twocolumn\fi + \clearpage +} +% \end{macrocode} +% +% \subsubsection{Список иллюстраций} +% +% Команда, создающая заголовок в тексте. +% \DescribeMacro{\lofsection}\index{Макросы!\verb*+\lofsection+} +% \begin{macrocode} +\newcommand\lofsection{\nchapter{\listfigurename}} + +% \end{macrocode} +% \DescribeMacro{\listoffigures}\index{Макросы!\verb*+\listoffigures+} +% \begin{macrocode} +\newcommand\listoffigures{% + \if@twocolumn\@restonecoltrue\onecolumn% + \else\@restonecolfalse\fi% + \lofsection% + \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi +} + +% \end{macrocode} +% Формат элемента списка иллюстраций. +% \begin{macrocode} +\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} + +% \end{macrocode} +% +% \subsubsection{Список таблиц} +% +% Команда, создающая заголовок в тексте. +% \DescribeMacro{\lotsection}\index{Макросы!\verb*+\lotsection+} +% \begin{macrocode} +\newcommand\lotsection{\nchapter{\listtablename}} + +% \end{macrocode} +% \DescribeMacro{\listoftables}\index{Макросы!\verb*+\listoftables+} +% \begin{macrocode} +\newcommand\listoftables{% + \if@twocolumn\@restonecoltrue\onecolumn% + \else\@restonecolfalse\fi% + \lotsection% + \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi +} + +% \end{macrocode} +% Формат элемента списка таблиц. +% \begin{macrocode} +\let\l@table\l@figure + +% \end{macrocode} +% +% \subsubsection{Библиография} +% +% Окружение и заголовок будут переопределены в пакете \pkg{natbib} и далее +% в файле \file{custom.dtx}. +% \DescribeEnv{thebibliography}\index{Окружения!\verb*+thebibliography+} +% \begin{macrocode} +\newenvironment{thebibliography}[1]{}{} + +% \end{macrocode} +% Величина отступа для элементов списка литературы. +% \DescribeMacro{\bibindent}\index{Интервалы!\verb*+\bibindent+} +% \begin{macrocode} +\newdimen\bibindent +\setlength\bibindent{1.5em} +% \end{macrocode} +% Горизонтальный пробел между различными частями элемента библиографии. +% \DescribeMacro{\newblock}\index{Макросы!\verb*+\newblock+} +% \begin{macrocode} +\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} +\let\@openbib@code\@empty + +% \end{macrocode} +% +% \subsubsection{Предметный указатель} +% +% Команда, создающая заголовок в тексте. +% \DescribeMacro{\indexsection}\index{Макросы!\verb*+\indexsection+} +% \begin{macrocode} +\providecommand\indexsection{\twocolumn[\@makeschapterhead{\indexname}]} + +% \end{macrocode} +% +% \DescribeEnv{theindex}\index{Окружения!\verb*+theindex+} +% \begin{macrocode} +\newenvironment{theindex}{% + \if@twocolumn\@restonecolfalse% + \else\@restonecoltrue\fi% + \columnseprule \z@ + \columnsep 35\p@ + \indexsection% + \@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}% + \thispagestyle{plain} + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem% +}{\if@restonecol\onecolumn\else\clearpage\fi} +% \end{macrocode} +% Формат элементов. +% \DescribeMacro{\@idxitem}\index{Макросы!\verb+"\"@idxitem+} +% \DescribeMacro{\subitem}\index{Макросы!\verb*+\subitem+} +% \DescribeMacro{\subsubitem}\index{Макросы!\verb*+\subsubitem+} +% \begin{macrocode} +\newcommand\@idxitem{\par\hangindent 40\p@} +\newcommand\subitem{\@idxitem \hspace*{20\p@}} +\newcommand\subsubitem{\@idxitem \hspace*{30\p@}} +% \end{macrocode} +% Вертикальный пробел между элементами предметного указателя. +% \DescribeMacro{\indexspace}\index{Макросы!\verb*+\indexspace+} +% \begin{macrocode} +\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +%</toc> +% \end{macrocode} |