From 494bd0475fd9f4b8ad307a7fb97b96d1f8093936 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 Nov 2009 19:57:36 +0000 Subject: disser 1.1.3 (6nov09) git-svn-id: svn://tug.org/texlive/trunk@16036 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/disser/Makefile | 122 +- Master/texmf-dist/source/latex/disser/autoref.dtx | 2 +- Master/texmf-dist/source/latex/disser/bachelor.dtx | 2 +- Master/texmf-dist/source/latex/disser/chapter.dtx | 21 +- Master/texmf-dist/source/latex/disser/counters.dtx | 12 +- Master/texmf-dist/source/latex/disser/custom.dtx | 29 +- .../texmf-dist/source/latex/disser/disser-bst.dtx | 1662 ------------------- Master/texmf-dist/source/latex/disser/disser.dtx | 82 +- Master/texmf-dist/source/latex/disser/disser.ins | 4 +- Master/texmf-dist/source/latex/disser/gost705.dtx | 1725 ++++++++++++++++++++ Master/texmf-dist/source/latex/disser/gost732.dtx | 14 +- Master/texmf-dist/source/latex/disser/lists.dtx | 1 + Master/texmf-dist/source/latex/disser/part.dtx | 25 +- Master/texmf-dist/source/latex/disser/sections.dtx | 60 +- .../texmf-dist/source/latex/disser/titledefs.dtx | 14 +- Master/texmf-dist/source/latex/disser/toc.dtx | 129 +- 16 files changed, 2013 insertions(+), 1891 deletions(-) delete mode 100644 Master/texmf-dist/source/latex/disser/disser-bst.dtx create mode 100644 Master/texmf-dist/source/latex/disser/gost705.dtx (limited to 'Master/texmf-dist/source/latex/disser') diff --git a/Master/texmf-dist/source/latex/disser/Makefile b/Master/texmf-dist/source/latex/disser/Makefile index 5fb3559a31a..fdc9261dd9a 100644 --- a/Master/texmf-dist/source/latex/disser/Makefile +++ b/Master/texmf-dist/source/latex/disser/Makefile @@ -1,86 +1,90 @@ # # Makefile for disser package # Author: Stanislav Kruchinin -# +# -TARGET=disser -SUBCLASS=gost732 -BST=disser-bst -MANUAL=manual +TARGET := disser +MAINDTX := disser gost732 gost705 +MANUAL := manual -CLSFILES=$(TARGET).cls *.rtx $(SUBCLASS).cls -BSTFILES=$(TARGET).bst $(TARGET)-s.bst -DOCFILES=$(TARGET).pdf $(SUBCLASS).pdf $(BST).pdf $(MANUAL).pdf -TEXTFILES=../README ../README.ru ../ChangeLog -SRCFILES=*.dtx *.ins $(MANUAL).tex +CLSFILES := *.cls *.rtx +BSTFILES := gost705.bst gost705s.bst +DOCFILES := $(addsuffix .pdf, $(MAINDTX) $(MANUAL)) +TEXTFILES := ../README ../README.ru ../ChangeLog +SRCFILES := *.dtx $(TARGET).ins $(TARGET).ist $(MANUAL).tex Makefile nomake.cmd -TEXMF?=/usr/share/texmf +TEXMF ?= /usr/share/texmf +DESTDIR ?= $(TEXMF) +CLSDIR ?= $(DESTDIR)/tex/latex/$(TARGET) +DOCDIR ?= $(DESTDIR)/doc/latex/$(TARGET) +BSTDIR ?= $(DESTDIR)/bibtex/bst/$(TARGET) +SRCDIR ?= $(DESTDIR)/source/latex/$(TARGET) -CLSDIR?=$(TEXMF)/tex/latex/$(TARGET) -DOCDIR?=$(TEXMF)/doc/latex/$(TARGET) -BSTDIR?=$(TEXMF)/bibtex/bst/$(TARGET) -SRCDIR?=$(TEXMF)/source/latex/$(TARGET) +CLEXT ?= *.aux *.toc *.idx *.ind *.ilg *.log *.out *.lof *.lot *.lol \ + *.bbl *.blg *.bak *.dvi *.ps *.pdf +CLFILES ?= $(CLEXT) $(CLSFILES) $(BSTFILES) -CLEXT?=*.log *.out *.aux *.dvi *.idx *.ilg *.ind *.glo *.toc *.bak *.bbl *.blg *.sav -CLFILES?=$(CLSFILES) $(BSTFILE) $(DOCFILES) $(CLEXT) +LATEX ?= latex +PDFLATEX ?= pdflatex +MI ?= makeindex -LATEX?=latex -PDFLATEX?=pdflatex -MI?=makeindex +LATEXFLAGS ?= --src-specials +PDFLATEXFLAGS ?= --shell-escape +MIFLAGS ?= -r -s disser.ist -LATEXFLAGS?= -PDFLATEXFLAGS?= all: package doc -package: $(TARGET).ins - $(LATEX) $^ +package: $(TARGET).cls doc: pdf -dvi: $(TARGET).dvi $(SUBCLASS).dvi $(BST).dvi $(MANUAL).dvi +dvi: $(addsuffix .dvi, $(MAINDTX) $(MANUAL)) -pdf: $(TARGET).pdf $(SUBCLASS).pdf $(BST).pdf $(MANUAL).pdf +pdf: $(DOCFILES) + +clean: + -rm -f $(CLFILES) install: all - mkdir -p $(CLSDIR) - mkdir -p $(BSTDIR) - mkdir -p $(DOCDIR) - mkdir -p $(SRCDIR) - cp $(CLSFILES) $(CLSDIR) - cp $(BSTFILES) $(BSTDIR) - cp $(DOCFILES) $(DOCDIR) - cp $(TEXTFILES) $(DOCDIR) + mkdir -p $(CLSDIR) ;\ + mkdir -p $(BSTDIR) ;\ + mkdir -p $(DOCDIR) ;\ + mkdir -p $(SRCDIR) ;\ + cp $(CLSFILES) $(CLSDIR) ;\ + cp $(BSTFILES) $(BSTDIR) ;\ + cp $(DOCFILES) $(DOCDIR) ;\ + cp $(TEXTFILES) $(DOCDIR) ;\ cp $(SRCFILES) $(SRCDIR) uninstall: - rm $(addprefix $(CLSDIR)/, $(CLSFILES)) - rm $(addprefix $(BSTDIR)/, $(BSTFILES)) - rm $(addprefix $(DOCDIR)/, $(DOCFILES)) - rm $(addprefix $(DOCDIR)/, $(notdir $(TEXTFILES))) - rm $(addprefix $(SRCDIR)/, $(SRCFILES)) - rmdir $(CLSDIR) - rmdir $(BSTDIR) - rmdir $(DOCDIR) - rmdir $(SRCDIR) + -rm $(addprefix $(CLSDIR)/, $(CLSFILES)) + -rm $(addprefix $(BSTDIR)/, $(BSTFILES)) + -rm $(addprefix $(DOCDIR)/, $(DOCFILES)) + -rm $(addprefix $(DOCDIR)/, $(notdir $(TEXTFILES))) + -rm $(addprefix $(SRCDIR)/, $(SRCFILES)) + -rmdir $(CLSDIR) + -rmdir $(BSTDIR) + -rmdir $(DOCDIR) + -rmdir $(SRCDIR) reinstall: uninstall install -clean: - rm -f $(CLFILES) - -disser.dvi: disser.dtx +$(TARGET).dvi: $(TARGET).dtx $(LATEX) $(LATEXFLAGS) $< $(MI) -r $(TARGET) $(LATEX) $(LATEXFLAGS) $< $(LATEX) $(LATEXFLAGS) $< -disser.pdf: disser.dtx +$(TARGET).pdf: $(TARGET).dtx $(PDFLATEX) $(PDFLATEXFLAGS) $< - $(MI) -r $(TARGET) + $(MI) $(MIFLAGS) $(TARGET) $(PDFLATEX) $(PDFLATEXFLAGS) $< $(PDFLATEX) $(PDFLATEXFLAGS) $< +%.cls: %.ins + $(LATEX) $^ + %.dvi: %.dtx $(LATEX) $(LATEXFLAGS) $< $(LATEX) $(LATEXFLAGS) $< @@ -98,13 +102,13 @@ disser.pdf: disser.dtx $(PDFLATEX) $(PDFLATEXFLAGS) $< help: - @echo " all (default) build package files and documentation" - @echo " package build package" - @echo " clean remove output files" - @echo " doc build DVI and PDF versions of documentation" - @echo " dvi build DVI version of documentation" - @echo " help show description of targets" - @echo " install install package and documentation" - @echo " pdf build PDF version of documentation" - @echo " reinstall reinstall package and documentation" - @echo " uninstall uninstall package and documentation" + @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/Master/texmf-dist/source/latex/disser/autoref.dtx b/Master/texmf-dist/source/latex/disser/autoref.dtx index 752616088d5..b8957d8cd8a 100644 --- a/Master/texmf-dist/source/latex/disser/autoref.dtx +++ b/Master/texmf-dist/source/latex/disser/autoref.dtx @@ -43,7 +43,7 @@ % Шифр и наименование специальности % \begin{macrocode} \vskip\fourthskip - {\specfont\@specnum~--\;\@spec} + {\specfont\@specnum~--\ \@spec} % \end{macrocode} % Диссертация на соискание ученой степени... % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/disser/bachelor.dtx b/Master/texmf-dist/source/latex/disser/bachelor.dtx index ae7742db795..5e8a6d21e3d 100644 --- a/Master/texmf-dist/source/latex/disser/bachelor.dtx +++ b/Master/texmf-dist/source/latex/disser/bachelor.dtx @@ -51,7 +51,7 @@ {\topiclabelfont\topiclabel\;} {\topicfont\@topic\par} \vskip\fourthskip\normalfont - \courselabel\ \@coursenum~-- \@course + \courselabel\ \@coursenum~--\ \@course \end{center} % \end{macrocode} % Специальность, автор, руководитель. diff --git a/Master/texmf-dist/source/latex/disser/chapter.dtx b/Master/texmf-dist/source/latex/disser/chapter.dtx index 3562d7b78ca..c29e0df9eb6 100644 --- a/Master/texmf-dist/source/latex/disser/chapter.dtx +++ b/Master/texmf-dist/source/latex/disser/chapter.dtx @@ -10,7 +10,7 @@ % % \subsection{Глава} % -% \subsubsection{Параметры формата записи в Содержании} +% \subsubsection{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocprethechapter}\index{Макросы!\verb*+\tocprethechapter+} % \DescribeMacro{\tocpostthechapter}\index{Макросы!\verb*+\tocpostthechapter+} @@ -59,8 +59,9 @@ % Пустое определение колонтитула главы. % \begin{macrocode} \newcommand*\chaptermark[1]{} + % \end{macrocode} -% \DescribeMacro{\chapter}\index{Макросы!\verb*+\chapter+} +% \DescribeMacro{\chapter}\index{Макросы!\verb*+"\chapter+} % Интерфейс. % \begin{macrocode} \newcommand\chapter{% @@ -140,7 +141,7 @@ % \end{macrocode} % % \DescribeMacro{\l@chapter}\index{Макросы!\verb+"\l"@chapter+} -% Команда, создающая запись в Содержании. +% Команда, создающая запись в оглавлении. % \begin{macrocode} \newcommand*\l@chapter[2]{% \ifnum \c@tocdepth >\m@ne @@ -165,14 +166,16 @@ % % \subsection{Приложение} % -% \subsubsection{Параметры формата записи в Содержании} +% \subsubsection{Параметры формата записи в оглавлении} % \DescribeMacro{\tocpretheappendix}\index{Макросы!\verb*+\tocpretheappendix+} -% \DescribeMacro{\tocposttheappendix}\index{Макросы!\verb*+\tocposttheappendix+} +% \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+} +% \DescribeMacro{\tocappendixfillfont} +% \index{Макросы!\verb*+\tocappendixfillfont+} +% \DescribeMacro{\tocappendixnumfont} +% \index{Макросы!\verb*+\tocappendixnumfont+} % \begin{macrocode} \providecommand\tocpretheappendix{\protect\appendixname~} \providecommand\tocposttheappendix{.\@postskip} @@ -207,7 +210,7 @@ % \end{macrocode} % % \DescribeMacro{\appendix}\index{Макросы!\verb*+\appendix+} -% Команда для создания глав Приложения. Сохранение и восстановление +% Команда для создания глав приложений. Сохранение и восстановление % значений параметров формата глав делаются для случая, когда % приложения идут до списка литературы. % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/disser/counters.dtx b/Master/texmf-dist/source/latex/disser/counters.dtx index 45f9fb514dd..3c87acd965d 100644 --- a/Master/texmf-dist/source/latex/disser/counters.dtx +++ b/Master/texmf-dist/source/latex/disser/counters.dtx @@ -10,7 +10,7 @@ % % \subsection{Создание и настройка счетчиков} % -% Максимальный уровень вложенности секций, помещаемых в Содержание +% Максимальный уровень вложенности секций, помещаемых в оглавление % (по умолчанию вносятся |\part|, |\chapter| и |\section|). % \DescribeMacro{tocdepth}\index{Счетчики!\verb*+tocdepth+} % \begin{macrocode} @@ -31,8 +31,6 @@ % \DescribeMacro{subsubsection}\index{Счетчики!\verb*+subsubsection+} % \DescribeMacro{paragraph}\index{Счетчики!\verb*+paragraph+} % \DescribeMacro{subparagraph}\index{Счетчики!\verb*+subparagraph+} -% \DescribeMacro{figure}\index{Счетчики!\verb*+figure+} -% \DescribeMacro{table}\index{Счетчики!\verb*+table+} % \begin{macrocode} \newcounter{part} \newcounter{chapter} @@ -41,6 +39,12 @@ \newcounter{subsubsection}[subsection] \newcounter{paragraph}[subsubsection] \newcounter{subparagraph}[paragraph] + +% \end{macrocode} +% +% \DescribeMacro{figure}\index{Счетчики!\verb*+figure+} +% \DescribeMacro{table}\index{Счетчики!\verb*+table+} +% \begin{macrocode} \newcounter{figure}[chapter] \newcounter{table}[chapter] @@ -69,7 +73,7 @@ \renewcommand\thesubparagraph{\theparagraph.\@arabic\c@subparagraph} % \end{macrocode} -% Формат нумерации разделов документа в Содержании. +% Формат нумерации разделов документа в оглавлении. % \DescribeMacro{\tocthepart}\index{Макросы!\verb*+\tocthepart+} % \DescribeMacro{\tocthechapter}\index{Макросы!\verb*+\tocthechapter+} % \DescribeMacro{\toctheappendix}\index{Макросы!\verb*+\toctheappendix+} diff --git a/Master/texmf-dist/source/latex/disser/custom.dtx b/Master/texmf-dist/source/latex/disser/custom.dtx index 2d86b8f44e7..85e07e68f1c 100644 --- a/Master/texmf-dist/source/latex/disser/custom.dtx +++ b/Master/texmf-dist/source/latex/disser/custom.dtx @@ -25,7 +25,7 @@ % \end{macrocode} % Реализация команд |\English| и |\Eng| без переключения кодировок шрифта. % Это необходимо для корректного отображения символа переноса строки при -% использовании пакетов |pscyr| и |cyrtimes|. +% использовании пакетов \pkg{pscyr} и \pkg{cyrtimes}. % \DescribeMacro{\English}\index{Макросы!\verb*+\English+} % \DescribeMacro{\Eng}\index{Макросы!\verb*+\Eng+} % \begin{macrocode} @@ -64,8 +64,8 @@ \IfFileExists{pscyr.sty}{ % \end{macrocode} % \DescribePackage{pscyr}\index{Пакеты!\verb*+pscyr+} -% Установка Times как шрифта по умолчанию. -% Выбор стандартного моноширинного шрифта. +% Установка Times как шрифта по умолчанию, выбор стандартного моноширинного +% шрифта. % \begin{macrocode} \usepackage{pscyr} \renewcommand\rmdefault{ftm} @@ -74,8 +74,8 @@ \IfFileExists{cyrtimes.sty}{ % \end{macrocode} % \DescribePackage{cyrtimes}\index{Пакеты!\verb*+cyrtimes+} -% Вместо |pscyr| может быть использован пакет |cyrtimes|, входящий в состав -% дистрибутива \TeX Live. +% Вместо \pkg{pscyr} может быть использован пакет \pkg{cyrtimes}, входящий в +% состав дистрибутива \TeX Live. % \begin{macrocode} \usepackage{cyrtimes} }{ @@ -118,10 +118,10 @@ % \subsubsection{Библиографические ссылки} % \DescribePackage{natbib}\index{Пакеты!\verb*+natbib+} % \begin{macrocode} -\usepackage[square, comma, sort&compress, numbers]{natbib} +\usepackage[square,comma,sort&compress,numbers]{natbib} % \end{macrocode} -% Переопределение для включения ссылки на список литературы в Содержание. +% Переопределение |\bibsection| для включения ссылки на список литературы в оглавление. % \DescribeMacro{\bibsection}\index{Макросы!\verb*+\bibsection+} % \begin{macrocode} \renewcommand\bibsection{\nchapter{\bibname}} @@ -160,11 +160,12 @@ % \subsubsection{Плавающие объекты} % % \DescribePackage{wrapfig}\index{Пакеты!\verb*+wrapfig+} -% Плавающие рисунки ``в оборку''. +% Плавающие рисунки <<в оборку>>. % \begin{macrocode} \usepackage{wrapfig} % \end{macrocode} -% Пакет для вложенной нумерации плавающих объектов. +% Пакеты \pkg{caption} и \pkg{subfig} для вложенной нумерации плавающих +% объектов. % \DescribePackage{caption}\index{Пакеты!\verb*+caption+} % \DescribePackage{subfig}\index{Пакеты!\verb*+subfig+} % \begin{macrocode} @@ -191,7 +192,7 @@ % \end{macrocode} % \DescribePackage{hyperref}\index{Пакеты!\verb*+hyperref+} % \begin{macrocode} - \usepackage[pdftex,unicode,hyperfigures=true]{hyperref} + \usepackage[pdftex,unicode]{hyperref} \hypersetup{ colorlinks = false, bookmarksopen = true, @@ -213,7 +214,7 @@ % \end{macrocode} % \DescribePackage{hyperref}\index{Пакеты!\verb*+hyperref+} % \begin{macrocode} - \usepackage[hypertex,colorlinks=false,hyperfigures=true]{hyperref} + \usepackage[hypertex,colorlinks=false]{hyperref} \fi % \end{macrocode} % \DescribePackage{graphicx}\index{Пакеты!\verb*+graphicx+} @@ -221,7 +222,7 @@ \usepackage{graphicx} \fi % \end{macrocode} -% Пакеты для исправления ошибок |hyperref|. +% Пакеты для исправления ошибок \pkg{hyperref}. % \DescribePackage{hypernat}\index{Пакеты!\verb*+hypernat+} % \DescribePackage{hypcap}\index{Пакеты!\verb*+hypcap+} % \begin{macrocode} @@ -232,7 +233,7 @@ % \end{macrocode} % \DescribeMacro{\metaphantom}\index{Макросы!\verb*+\metaphantom+} -% Команда, создающая цель для |hyperref| над заголовками ненумеруемых разделов. +% Команда, создающая цель для гиперссылок над заголовками ненумеруемых разделов. % \begin{macrocode} \def\metaphantom#1{% \ifDis@href @@ -244,7 +245,7 @@ % \end{macrocode} % Команды для создания ненумеруемых глав и секций, которые включаются в -% Содержание и PDF-закладки. +% оглавление и PDF-закладки. % \DescribeMacro{\nchapter}\index{Макросы!\verb*+\nchapter+} % \DescribeMacro{\nsection}\index{Макросы!\verb*+\nsection+} % \DescribeMacro{\nsubsection}\index{Макросы!\verb*+\nsubsection+} diff --git a/Master/texmf-dist/source/latex/disser/disser-bst.dtx b/Master/texmf-dist/source/latex/disser/disser-bst.dtx deleted file mode 100644 index 7e504c7d62d..00000000000 --- a/Master/texmf-dist/source/latex/disser/disser-bst.dtx +++ /dev/null @@ -1,1662 +0,0 @@ -% \iffalse meta-comment -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% This bibliography style attempts -%% to format bibliography according to -%% GOST 7.1-84 with some conventional modifications. -%% -%% Based on style gost71u.bst by Maksym Polyakov. -%% -%% For the Russian bibliographic entries -%% you need to create field -%% language = {russian}. -%% Default language is English. -%% Field numpages for books must contain number of pages. -%% Optional field url will format url (using hyperref, if loaded). -%% -%% Requires 8-bit bibtex with switch -B and csf file -%% supporting cyrillic. -%% -%% bibtex8 -B -c .csf -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%<*driver> -\ProvidesFile{disser-bst.drv}[2009/06/19 1.1.2 Bibliography style for dissertations.] - -\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, - colorlinks, - plainpages=false, - pdftitle = {User manual for disser}, - pdfauthor = {Stanislav Kruchinin}, - pdfsubject = {disser}, - pdfstartview = {FitH}, - pdfborder = {0 0 0}, - bookmarksopen, - bookmarksnumbered, - bookmarksopenlevel = 2, - pdfusetitle, - unicode]{hyperref} - \usepackage{cmap} -\else - \usepackage[hypertex]{hyperref} -\fi - -\hypersetup{ - colorlinks = true, linkcolor = darkblue, - citecolor = darkblue, filecolor = darkblue, - menucolor = darkblue, urlcolor = darkblue -} - -\IfFileExists{pscyr.sty}{% - \usepackage{pscyr} - \renewcommand\ttdefault{cmtt} - \renewcommand\rmdefault{ftm} -}{ - \IfFileExists{cyrtimes.sty}{% - \renewcommand\ttdefault{cmtt} - \renewcommand\rmdefault{ftm} - }{} -} -\IfFileExists{url.sty}{\RequirePackage{url}}{\newcommand\url{\texttt}} -\usepackage[T2A]{fontenc} -\usepackage[cp1251]{inputenc} -\usepackage[english,russian]{babel} - -\MakeShortVerb{\|} - -\setlength\hfuzz{20pt} -\hbadness=10000 - -\GetFileInfo{disser-bst.drv} -\begin{document} - \sloppy - \PrintChanges - \DocInput{disser-bst.dtx} -\end{document} -% -% \fi -% \GetFileInfo{disser-bst.drv} -% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% \title{Стили библиографии: \texttt{disser} и \texttt{disser-s}} -% \date{Версия \fileversion\\[6pt]\filedate} -% \author{Станислав Кручинин\\[6pt] -% \normalsize E-mail: -% \href{mailto:stanislav.kruchinin@gmail.com} -% {\texttt{stanislav.kruchinin@gmail.com}}} -% -% \maketitle -% -% \section{Исходный текст}\parindent=0pt -% \begin{macrocode} - -%<*disser-bst|disser-s-bst> - -% \end{macrocode} -% Список полей, используемых в bib-файлах. -% \begin{macrocode} -ENTRY - { address - annote - author - booktitle - bookauthor - chapter - edition - editor - compiler - howpublished - institution - journal - key - month - note - number - organization - pages - numpages - publisher - school - series - title - type - volume - year - language - booklanguage - url - } - {} - { label } - -% \end{macrocode} -% Список глобальных целочисленных переменных. -% \begin{macrocode} -INTEGERS { output.state before.all mid.sentence after.sentence after.block -after.dblslash after.slash after.column after.semicolumn } - -% \end{macrocode} -% Инициализация переменных. -% \begin{macrocode} -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.dblslash := - #5 'after.slash := - #6 'after.column := - #7 'after.semicolumn := -} - -% \end{macrocode} -% Глобальные строковые переменные. -% \begin{macrocode} -STRINGS { s t } - -STRINGS { curlanguage } - -% \end{macrocode} -% Изменение текущего языка. -% \begin{macrocode} -FUNCTION {change.language} -{ booklanguage empty$ - {""} - { - booklanguage 'curlanguage := - "\selectlanguageifdefined{" - curlanguage * - "}" * - } - if$ -} - -% \end{macrocode} -% Базовая функция вывода библиографической записи. -% \begin{macrocode} -FUNCTION {output.nonnull} -%%%{ 's := -{ swap$ - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - " " quote$ "--- " * * write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { output.state after.dblslash = - { "~//" * change.language * " " * write$ } - { output.state after.slash = - { "~/ " * write$ } - { output.state after.column = - { ": " * write$ } - { output.state after.semicolumn = - { "; " * write$ } - { add.period$ " " * write$ } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ -%%% s -} - -% \end{macrocode} -% Обертки для |output.nonnull|. -% \begin{macrocode} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.dblslash} -{ output.state before.all = - 'skip$ - { after.dblslash 'output.state := } - if$ -} - -FUNCTION {new.slash} -{ output.state before.all = - 'skip$ - { after.slash 'output.state := } - if$ -} - -FUNCTION {new.column} -{ output.state before.all = - 'skip$ - { after.column 'output.state := } - if$ -} - -FUNCTION {new.semicolumn} -{ output.state before.all = - 'skip$ - { after.semicolumn 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -% \end{macrocode} -% Логические операторы. -% \begin{macrocode} -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -FUNCTION {non.stop} -{ duplicate$ - "}" * add.period$ - #-1 #1 substring$ "." = -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\BibEmph{" swap$ * "}" * } - if$ -} - -FUNCTION {space.word} -{ " " swap$ * " " * } - -% \end{macrocode} -% Сокращения. -% \begin{macrocode} -FUNCTION {bbl.edby} % { "\bbledby{}" } -{ - curlanguage "english" = - {"Ed. by "} - { curlanguage "russian" = - {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} - {"language is not defined: " language "edited by" * * warning$ "edited by"} - if$} - if$ -} - -FUNCTION {bbl.cmplr} -{ - curlanguage "english" = - {"Compiler "} - { curlanguage "russian" = - {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} - {"language is not defined: " language "compiler" * * warning$ "compiler"} - if$} - if$ -} - -FUNCTION {bbl.edition} % { "\bbledition{}" } -{ - curlanguage "english" = - {"edition"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz\cyrd.}"} - {"language is not defined: " language "edition" * * warning$ "edition"} - if$} - if$ -} - -FUNCTION {bbl.vvolume} % { "\bblVolume{}" } -{ - curlanguage "english" = - {"Volume"} - { curlanguage "russian" = - {"\CYRT\cyro\cyrm"} - {"language is not defined: " language "Volume" * * warning$ "Volume"} - if$} - if$ -} - -FUNCTION {bbl.vvol} % { "\bblVol{}" } -{ - curlanguage "english" = - {"Vol."} - { curlanguage "russian" = - {"\CYRT."} - {"language is not defined: " language "Vol." * * warning$ "Vol."} - if$} - if$ -} - -FUNCTION {bbl.iissue} % { "\bblIssue{}" } -{ - curlanguage "english" = - {"Issue"} - { curlanguage "russian" = - {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$ -} - -FUNCTION {bbl.iiss} % { "\bblIss{}" } -{ - curlanguage "english" = - {"Iss."} - { curlanguage "russian" = - {"\CYRV\cyrery\cyrp."} - {"language is not defined: " language * warning$ "Issue"} - if$} - if$ -} - -FUNCTION {bbl.of} % { "\bblof{}" } -{ - curlanguage "english" = - {"of"} - { curlanguage "russian" = - {"{\cyr\cyri\cyrz}"} - {"language is not defined: " language "of" * * warning$ "of"} - if$} - if$ -} - -FUNCTION {bbl.etal} % { "\bblof{}" } -{ - curlanguage "english" = - {"et~al."} - { curlanguage "russian" = - {"{\cyr\cyri~\cyrd\cyrr.}"} - {"language is not defined: " language "at al" * * warning$ "at al."} - if$} - if$ -} - -FUNCTION {bbl.nnumber} % { "\bblNumber{}" } -{ - curlanguage "english" = - {"Number"} - { curlanguage "russian" = - {"\CYRN\cyro\cyrm\cyre\cyrr"} - {"language is not defined: " language "Number" * * warning$ "Number"} - if$} - if$ -} - -FUNCTION {bbl.number} % { "\bblnumber{}" } -{ - curlanguage "english" = - {"number"} - { curlanguage "russian" = - {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} - {"language is not defined: " language "number" * * warning$ "number"} - if$} - if$ -} - -FUNCTION {bbl.nr} % { "\bblno{}" } -{ - curlanguage "english" = - {"no."} - { curlanguage "russian" = - {"{\cyr\textnumero}"} - {"language is not defined: " language "no." * * warning$ "no."} - if$} - if$ -} - -FUNCTION {bbl.nnr} % { "\bblno{}" } -{ - curlanguage "english" = - {"No."} - { curlanguage "russian" = - {"{\cyr\textnumero}"} - {"language is not defined: " language "No." * * warning$ "No."} - if$} - if$ -} - -FUNCTION {bbl.in} % { "\bblin{}" } -{ - curlanguage "english" = - {"in"} - { curlanguage "russian" = - {"{\cyr\cyrv}"} - {"language is not defined: " language "in" * * warning$ "in"} - if$} - if$ -} - -FUNCTION {bbl.iin} % { "\bblIn{}" } -{ - curlanguage "english" = - {"In"} - { curlanguage "russian" = - {"\CYRV"} - {"language is not defined: " language "In" * * warning$ "In"} - if$} - if$ -} - -FUNCTION {bbl.pages} % { "\bblpp." } -{ - curlanguage "english" = - {"pp."} - { curlanguage "russian" = - {"{\cyr\cyrs.}"} - {"language is not defined: " language "pp." * * warning$ "pp."} - if$} - if$ -} - -FUNCTION {bbl.page} % { "\bblp." } -{ - curlanguage "english" = - {"p."} - { curlanguage "russian" = - {"{\cyr\cyrs.}"} - {"language is not defined: " language "p." * * warning$ "p."} - if$} - if$ -} - -FUNCTION {bbl.ppages} % { "\bblPp." } -{ - curlanguage "english" = - {"Pp."} - { curlanguage "russian" = - {"{\cyr\CYRS.}"} - {"language is not defined: " language "Pp." * * warning$ "Pp."} - if$} - if$ -} - -FUNCTION {bbl.ppage} % { "\bblP." } -{ - curlanguage "english" = - {"P."} - { curlanguage "russian" = - {"{\cyr\CYRS.}"} - {"language is not defined: " language "P." * * warning$ "P."} - if$} - if$ -} - -FUNCTION {bbl.techrep} -{ - curlanguage "english" = - {"Tech. Rep."} - { curlanguage "russian" = - {"{\cyr\CYRT\cyre\cyrh. \cyrd\cyro\cyrk\cyrl\cyra\cyrd.}"} - {"language is not defined: " language "Tech. Rep." * * warning$ "P."} - if$} - if$ -} - -FUNCTION {bbl.mthesis} -{ - curlanguage "english" = - {"Master's thesis"} - { curlanguage "russian" = - {"{\cyr\CYRM\cyra\cyrg\cyri\cyrs\cyrt\cyre\cyrr\cyrs\cyrk\cyra\cyrya\ \cyrd\cyri\cyrs\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyri\cyrya}"} - {"language is not defined: " language "Master's thesis" * * warning$ "P."} - if$} - if$ -} - -FUNCTION {bbl.phdthesis} -{ - curlanguage "english" = - {"Ph.D. thesis"} - { curlanguage "russian" = - {"{\cyr\CYRK\cyra\cyrn\cyrd\cyri\cyrd\cyra\cyrt\cyrs\cyrk\cyra\cyrya \cyrd\cyri\cyrs\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyri\cyrya}"} - {"language is not defined: " language "Ph.D. thesis" * * warning$ "P."} - if$} - if$ -} - -% \end{macrocode} -% Глобальные целочисленные переменные. -% \begin{macrocode} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - { - nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - t "others" = - t "~others" = - or - { " " * bbl.etal * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.names.rev} -{ 's := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{f.}{~vv}{~ll}{, jj}" format.name$ 't := - nameptr #1 > - { - nameptr #4 = - numnames #4 > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - t "others" = - t "~others" = - or - { " " * bbl.etal * } - { ", " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names emphasize } - if$ -} - -FUNCTION {format.bookauthors} -{ bookauthor empty$ - { "" } - { bookauthor format.names } - if$ -} - -FUNCTION {format.authors.after} -{ author empty$ - { "" } - { author format.names.rev } - if$ -} - -FUNCTION {format.bookauthors.after} -{ bookauthor empty$ - { "" } - { bookauthor format.names.rev } - if$ -} - -FUNCTION {format.editors.after} -{ editor empty$ - { "" } - { bbl.edby editor format.names.rev * } - if$ -} - -FUNCTION { format.compiler.after } -{ compiler empty$ - { "" } - { bbl.cmplr compiler format.names.rev * } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { month empty$ - { "" } - { "there's a month but no year in " cite$ * warning$ - month - } - if$ - } - { month empty$ - 'year - { year ". " quote$ "--- " month * * * * } - if$ - } - if$ -} - -FUNCTION {output.address.publisher.date} -{ - address empty$ - 'skip$ - { address output - publisher empty$ - 'skip$ - { new.column - } - if$ - } - if$ - publisher output - format.date output -} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem[" write$ - "\BibPrefix" write$ - label write$ - "\BibPostfix" write$ - "]{" write$ - cite$ write$ - "}" write$ - newline$ - language empty$ - {"english" 'curlanguage :=} - {language 'curlanguage :=} - if$ - "\selectlanguageifdefined{" write$ - curlanguage write$ - "}" write$ newline$ - "" - before.all 'output.state := -} - -FUNCTION {n.dashify} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.iin - " " * } - -FUNCTION {format.btitle} -{ title } - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {tie.connect} -{"~" -swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.vvol volume tie.connect - series empty$ - 'skip$ - { bbl.of space.word * series emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { "there's a number but no series in " cite$ * warning$ - bbl.nnr } - { - %new.dblslash - new.sentence - series - bbl.nr - tie.or.space.connect} - if$ - number tie.or.space.connect - } - if$ - } - { "" } - if$ -} - -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -FUNCTION {convert.edition} -{ edition } - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { convert.edition "l" change.case$ " " * bbl.edition * } - { convert.edition "t" change.case$ " " * bbl.edition * } - if$ - } - if$ -} - -INTEGERS { multiresult } - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bbl.ppages pages n.dashify tie.connect } - { bbl.ppage pages tie.connect } - if$ - } - if$ -} - -FUNCTION {format.pages.page} -{ pages empty$ - { numpages empty$ - { "" } - { numpages bbl.pages tie.connect } - if$} - { format.pages} - if$ -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - number empty$ - 'skip$ - { - ", no." number tie.or.space.connect * - volume empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - } - if$ - pages empty$ - 'skip$ - { duplicate$ empty$ - { pop$ format.pages } - { ": " * pages n.dashify * } - if$ - } - if$ -} - -FUNCTION {format.volume} -{ volume empty$ - { "" } - { bbl.vvol volume tie.or.space.connect } - if$ -} - -FUNCTION {format.number} -{ number empty$ - { "" } - { bbl.nr number tie.or.space.connect } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - key empty$ not and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {author.before} -{ - author empty$ - 'skip$ - { - format.authors output - new.sentence - } - if$ -} - -FUNCTION {bookauthor.before} -{ - bookauthor empty$ - 'skip$ - { - format.bookauthors output - new.sentence - } - if$ -} - -FUNCTION {author.after} -{ - author empty$ - 'skip$ - {author num.names$ #3 > - {format.authors.after output - new.semicolumn } - 'skip$ - if$} - if$ -} - -FUNCTION {bookauthor.after} -{ - bookauthor empty$ - 'skip$ - {bookauthor num.names$ #3 > - {format.bookauthors.after output - new.semicolumn } - 'skip$ - if$} - if$ -} - -FUNCTION {editor.organization.after} -{ - compiler empty$ - {} - { format.compiler.after output - new.semicolumn - } - if$ - editor empty$ - {} - { format.editors.after output - new.semicolumn - } - if$ - organization empty$ - {} - {organization output - new.semicolumn - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { after.sentence 'output.state := - "\BibUrl{ " url * "}" * - } - if$ -} - -FUNCTION {format.annote} -{ annote empty$ - { "" } -{ after.sentence 'output.state := - "\BibAnnote{" annote add.period$ * "}" * -} - if$ -} - -FUNCTION {article} -{ output.bibitem - author.before - format.title "title" output.check - new.dblslash - journal emphasize "journal" output.check - new.block - format.date output - new.block - format.volume output - format.number output - new.block - format.pages.page output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author.before - format.btitle "title" output.check - editor.organization.after - new.sentence - format.number.series output - new.block - format.edition output - new.block - output.address.publisher.date - new.block - format.bvolume output - new.block - format.pages.page output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - author.before - format.title "title" output.check - editor.organization.after - new.block - howpublished output - address output - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author.before - format.btitle "title" output.check - new.dblslash - bookauthor.before - booktitle "booktitle" output.check - editor.organization.after - new.block - format.edition output - new.block - format.number.series output - new.sentence - output.address.publisher.date - new.block - format.bvolume output - new.block - format.pages.page output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author.before - new.sentence - format.title "title" output.check - new.dblslash - booktitle "booktitle" output.check - new.slash - editor.organization.after - new.block - output.address.publisher.date - new.block - format.bvolume output - format.number.series output - new.block - format.pages.page output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - author.before - new.sentence - format.title "title" output.check - new.dblslash - booktitle "booktitle" output.check - new.slash - editor.organization.after - new.block - format.bvolume output - format.number.series output - new.block - address empty$ - { publisher output - format.date "year" output.check - } - { address output.nonnull - new.column - publisher output - format.date "year" output.check - } - if$ - new.block - format.pages.page output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output.nonnull - address output - } - if$ - } - { format.authors output.nonnull } - if$ - new.block - format.btitle "title" output.check - author empty$ - { organization empty$ - { - address new.block.checka - address output - } - 'skip$ - if$ - } - { - organization address new.block.checkb - organization output - address output - } - if$ - format.edition output - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle "title" output.check - new.block - bbl.mthesis format.thesis.type output.nonnull - school "school" output.check - address output - format.date "year" output.check - new.block - note output - new.block - format.url output - format.annote output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.sentence.checkb - format.title output - howpublished new.block.checka - howpublished output - new.block - format.date output - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.sentence - format.btitle "title" output.check - new.column - bbl.phdthesis format.thesis.type output.nonnull - new.slash - school "school" output.check - new.block - output.address.publisher.date - new.block - format.pages.page output - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.btitle "title" output.check - new.slash - editor.organization.after - new.block - format.bvolume output - format.number.series output - address empty$ - { publisher output - format.date "year" output.check - } - { address output.nonnull - format.date "year" output.check - new.sentence - publisher output - } - if$ - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - author.before - new.sentence - format.title "title" output.check - new.column - format.tr.number output.nonnull - editor.organization.after - new.block - address output - new.column - institution "institution" output.check - format.date "year" output.check - new.block - note output - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - author.before - format.btitle "title" output.check - editor.organization.after - new.block - note "note" output.check - new.sentence - format.url output - format.annote output - fin.entry -} - -FUNCTION {default.type} { misc } - -MACRO {jan} {"\bbljan{}"} - -MACRO {feb} {"\bblfeb{}"} - -MACRO {mar} {"\bblmar{}"} - -MACRO {apr} {"\bblapr{}"} - -MACRO {may} {"\bblmay{}"} - -MACRO {jun} {"\bbljun{}"} - -MACRO {jul} {"\bbljul{}"} - -MACRO {aug} {"\bblaug{}"} - -MACRO {sep} {"\bblsep{}"} - -MACRO {oct} {"\bbloct{}"} - -MACRO {nov} {"\bblnov{}"} - -MACRO {dec} {"\bbldec{}"} - -MACRO {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - -%<*disser-s-bst> - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * } - 'skip$ - if$ - s nameptr - "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" - format.name$ 't := - nameptr numnames = t "others" = and - { "et al" * } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - -FUNCTION {author.title.sort} -{ author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { title sort.format.title } - if$ - } - { - author num.names$ #4 < - {author sort.format.names } - {title sort.format.title} - if$ - } - if$ -} - - -FUNCTION {presort} -{ - author.title.sort - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT - -% - -STRINGS { longest.label } - -INTEGERS { number.label longest.label.width } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} - -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} - -EXECUTE {initialize.longest.label} - -ITERATE {longest.label.pass} - -FUNCTION {begin.bib} -{ - "\ifx\undefined\BibPrefix\def\BibPrefix{}\else\fi" write$ newline$ - "\ifx\undefined\BibPostfix\def\BibPostfix{}\else\fi" write$ newline$ - "\begin{thebibliography}{\BibPrefix" longest.label * "\BibPostfix}" * write$ newline$ - "\def\selectlanguageifdefined#1{" write$ newline$ - "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ - "\else\language\csname l@#1\endcsname\fi}" write$ newline$ - "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ - "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ - "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ - "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ - preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - -% -% \end{macrocode} diff --git a/Master/texmf-dist/source/latex/disser/disser.dtx b/Master/texmf-dist/source/latex/disser/disser.dtx index 6757a7688ff..50867c23199 100644 --- a/Master/texmf-dist/source/latex/disser/disser.dtx +++ b/Master/texmf-dist/source/latex/disser/disser.dtx @@ -19,7 +19,7 @@ %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{disser.drv}[2009/06/11 1.1.2 Document class for dissertations] +\ProvidesFile{disser.drv}[2009/11/05 1.1.3 Document class for dissertations] \documentclass{ltxdoc} \usepackage[a4paper, includeheadfoot, nohead, mag=1000, @@ -32,7 +32,6 @@ \ifpdf \usepackage[pdftex,hyperindex,unicode]{hyperref} \usepackage{cmap} - \usepackage{hypdestopt} \else \usepackage[hypertex]{hyperref} \fi @@ -69,6 +68,10 @@ \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}{}{% @@ -80,12 +83,20 @@ \let\DescribePackage=\DescribeEnv -\makeindex - -\setlength\hfuzz{20pt} -\hbadness=10000 - \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]% @@ -93,6 +104,11 @@ \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi} \makeatother +\setlength\hfuzz{20pt} +\hbadness=10000 + +\makeindex + \begin{document} \sloppy \PrintChanges @@ -123,7 +139,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% \title{|disser| "--- пакет для оформления диссертаций} +% \title{\pkg{disser} "--- пакет для оформления диссертаций} % \date{Версия \fileversion\\[6pt]\filedate} % \author{Станислав Кручинин\\[6pt] % \normalsize E-mail: @@ -134,24 +150,26 @@ % % \section*{Обзор документации} % -% Документация пакета |disser| состоит из следующих файлов: -% -% \begin{deflist}{README, README.ru} -% \item[\href{file:manual.pdf}{manual.pdf}] Руководство пользователя. -% \item[README, README.ru] Информация о сборке и установке пакета -% (текстовые файлы). -% \item[ChangeLog] История версий (текстовый файл). +% Документация пакета состоит из следующих файлов: +% \begin{deflist}{README, README.ru } +% \item[\href{file:manual.pdf}{manual.pdf}] +% Руководство пользователя. +% \item[README, README.ru] +% Информация о сборке и установке пакета. +% \item[ChangeLog] +% История версий. % \end{deflist} % % Документированные исходные тексты: -% \begin{deflist}{disser-bst.dtx} -% \item[\href{file:disser.pdf}{disser.dtx}] Исходный текст класса |disser| -% (данный файл). +% \begin{deflist}{README, README.ru } +% \item[\href{file:disser.pdf}{disser.dtx}] +% Исходный текст класса \pkg{disser} (данный файл). % \item[\href{file:gost732.pdf}{gost732.dtx}] -% Исходный текст класса класса |gost732| для оформления документов в +% Исходный текст класса \pkg{gost732} для оформления документов в % соответствии с ГОСТ 7.32-2001. -% \item[\href{file:disser-bst.pdf}{disser-bst.dtx}] -% Исходный текст стилей библиографии |disser.bst| и |disser-s.bst|. +% \item[\href{file:gost705.pdf}{gost705.dtx}] +% Исходный текст стилей библиографии \pkg{gost705.bst} и +% \pkg{gost705s.bst}. % \end{deflist} % % \clearpage @@ -163,7 +181,7 @@ %<*disser> \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{disser}[2009/06/11 1.1.2 Document class for dissertations] +\ProvidesClass{disser}[2009/11/05 1.1.3 Document class for dissertations] % \end{macrocode} % Расширение файлов, включаемых в |disser.cls|. @@ -173,7 +191,7 @@ % \end{macrocode} % Определение операторов условного выполнения. % \begin{itemize} -% \item подключение пакета, определяющего |\ifpdf|. +% \item подключение пакета \pkg{ifpdf}, определяющего команду |\ifpdf|. % \DescribePackage{ifpdf}\index{Пакеты!\verb*+ifpdf+} % \begin{macrocode} \RequirePackage{ifpdf} @@ -207,15 +225,16 @@ % \begin{macrocode} \newif\ifDis@facsimile\Dis@facsimilefalse % \end{macrocode} -% \item Подключение пакетов |amsmath|, |amsfonts|, |amssymb| (включено). +% \item Подключение пакетов \pkg{amsmath}, \pkg{amsfonts}, \pkg{amssymb} +% (включено). % \begin{macrocode} \newif\ifDis@ams\Dis@amstrue % \end{macrocode} -% \item Подключение |hyperref| (отключено). +% \item Подключение \pkg{hyperref} (отключено). % \begin{macrocode} \newif\ifDis@href\Dis@hreffalse % \end{macrocode} -% \item Подключение |subfig| (отключено). +% \item Подключение \pkg{subfig} (отключено). % \begin{macrocode} \newif\ifDis@subf\Dis@subffalse % \end{macrocode} @@ -232,17 +251,18 @@ % % \subsection{Опции класса} % -% Подключение пакета |kvoptions| для обработки опций в формате -% |ключ = значение|. +% Подключение пакета \pkg{kvoptions} для обработки опций в формате +% <<ключ = значение>>. +% \DescribePackage{kvoptions}\index{Пакеты!\verb*+kvoptions+} % \begin{macrocode} \RequirePackage{kvoptions}[2006/08/17] % \end{macrocode} -% Подключение пакета |hyperref| и необходимых настроек. +% Подключение пакета \pkg{hyperref} и необходимых настроек. % \begin{macrocode} \DeclareOption{href}{\Dis@hreftrue} % \end{macrocode} -% Подключение пакета |subfig| и необходимых настроек. +% Подключение пакета \pkg{subfig} и необходимых настроек. % \begin{macrocode} \DeclareOption{subf}{\Dis@subftrue} % \end{macrocode} @@ -254,7 +274,7 @@ % \begin{macrocode} \DeclareOption{facsimile}{\Dis@facsimiletrue} % \end{macrocode} -% Не подключать пакеты |amsmath|, |amsfonts|, |amssymb|. +% Не подключать пакеты \pkg{amsmath}, \pkg{amsfonts}, \pkg{amssymb}. % \begin{macrocode} \DeclareOption{noams}{\Dis@amsfalse} diff --git a/Master/texmf-dist/source/latex/disser/disser.ins b/Master/texmf-dist/source/latex/disser/disser.ins index 9be2772c2db..069565b51ae 100644 --- a/Master/texmf-dist/source/latex/disser/disser.ins +++ b/Master/texmf-dist/source/latex/disser/disser.ins @@ -51,8 +51,8 @@ This file is part of the disser package. \rtxfile{autoref} \clsfile{gost732} \nopostamble - \file{disser.bst}{\from{disser-bst.dtx}{disser-bst}} - \file{disser-s.bst}{\from{disser-bst.dtx}{disser-s-bst}} + \file{gost705.bst}{\from{gost705.dtx}{gost705}} + \file{gost705s.bst}{\from{gost705.dtx}{gost705s}} } %\def\npostamble{}\usepostamble\npostamble \endbatchfile diff --git a/Master/texmf-dist/source/latex/disser/gost705.dtx b/Master/texmf-dist/source/latex/disser/gost705.dtx new file mode 100644 index 00000000000..a10b81cd27f --- /dev/null +++ b/Master/texmf-dist/source/latex/disser/gost705.dtx @@ -0,0 +1,1725 @@ +% \iffalse meta-comment +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 with some conventional modifications. +%% +%% Based on style gost71u.bst by Maksym Polyakov. +%% +%% For the Russian bibliographic entries +%% you need to create field +%% language = {russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% Requires 8-bit bibtex with switch -B and csf file +%% supporting cyrillic. +%% +%% bibtex8 -B -c .csf +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%<*driver> +\ProvidesFile{gost705.drv}[2009/10/27 1.1.3 Bibliography style for dissertations.] + +\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, + colorlinks, + plainpages=false, + pdftitle = {Documented source code of the disser package}, + pdfauthor = {Stanislav Kruchinin}, + pdfsubject = {disser}, + pdfstartview = {FitH}, + pdfborder = {0 0 0}, + bookmarksopen, + bookmarksnumbered, + bookmarksopenlevel = 2, + pdfusetitle, + unicode]{hyperref} + \usepackage{cmap} +\else + \usepackage[hypertex]{hyperref} +\fi + +\hypersetup{ + colorlinks = true, linkcolor = darkblue, + citecolor = darkblue, filecolor = darkblue, + menucolor = darkblue, urlcolor = darkblue +} + +\IfFileExists{pscyr.sty}{% + \usepackage{pscyr} + \renewcommand\ttdefault{cmtt} + \renewcommand\rmdefault{ftm} +}{ + \IfFileExists{cyrtimes.sty}{% + \renewcommand\ttdefault{cmtt} + \renewcommand\rmdefault{ftm} + }{} +} +\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{gost705.drv} +\begin{document} + \sloppy + \PrintChanges + \DocInput{gost705.dtx} +\end{document} +% +% \fi +% \GetFileInfo{gost705.drv} +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \title{\pkg{gost705} и \pkg{gost705s} "--- стили оформления библиографии +% в соответствии с ГОСТ Р 7.0.5-2008} +% \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} + +%<*gost705|gost705s> + +% \end{macrocode} +% \subsection{Поля, используемые в bib-файлах} +% \begin{macrocode} +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + urldate + } + {} + { label } + +% \end{macrocode} +% \subsection{Объявление и инициализация переменных и констант} +% \begin{macrocode} +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +% \end{macrocode} +% \subsection{Переключение языка} +% \begin{macrocode} +FUNCTION {change.language} +{ booklanguage empty$ + { "" } + { booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +% \end{macrocode} +% \subsection{Вывод библиографической записи} +% \begin{macrocode} +FUNCTION {output.nonnull} +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ " " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% \end{macrocode} +% \subsection{Вывод блоков и ограничителей} +% \begin{macrocode} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := } + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +% \end{macrocode} +% \subsection{Общепринятые сокращения} +% \begin{macrocode} +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ + curlanguage "english" = + { "Ed. by " } + { curlanguage "russian" = + { "{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }" } + { "language is not defined: " language "edited by" * * warning$ "edited by" } + if$ + } + if$ +} + +FUNCTION {bbl.cmplr} +{ + curlanguage "english" = + { "Compiler " } + { curlanguage "russian" = + { "{\cyr\CYRS\cyro\cyrs\cyrt.\ }" } + { "language is not defined: " language "compiler" * * warning$ "compiler" } + if$ + } + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ + curlanguage "english" = + { "edition" } + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$ + } + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ + curlanguage "english" = + { "Volume" } + { curlanguage "russian" = + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$ + } + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ + curlanguage "english" = + { "Vol." } + { curlanguage "russian" = + { "\CYRT." } + { "language is not defined: " language "Vol." * * warning$ "Vol." } + if$ + } + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ + curlanguage "english" = + { "Issue" } + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$ + } + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ + curlanguage "english" = + {"Iss."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$ + } + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ + curlanguage "english" = + {"of"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$ + } + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ + curlanguage "english" = + { "et~al." } + { curlanguage "russian" = + { "{\cyr\cyri~\cyrd\cyrr.}" } + { "language is not defined: " language "at al" * * warning$ "at al." } + if$ + } + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ + curlanguage "english" = + { "Number" } + { curlanguage "russian" = + { "\CYRN\cyro\cyrm\cyre\cyrr"} + { "language is not defined: " language "Number" * * warning$ "Number" } + if$ + } + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ + curlanguage "english" = + { "number" } + { curlanguage "russian" = + { "{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + { "language is not defined: " language "number" * * warning$ "number" } + if$ + } + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ + curlanguage "english" = + { "no." } + { curlanguage "russian" = + { "{\cyr\textnumero}" } + { "language is not defined: " language "no." * * warning$ "no." } + if$ + } + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ + curlanguage "english" = + { "No." } + { curlanguage "russian" = + { "{\cyr\textnumero}" } + { "language is not defined: " language "No." * * warning$ "No." } + if$ + } + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ + curlanguage "english" = + { "in" } + { curlanguage "russian" = + { "{\cyr\cyrv}" } + { "language is not defined: " language "in" * * warning$ "in" } + if$ + } + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ + curlanguage "english" = + { "In" } + { curlanguage "russian" = + { "\CYRV" } + { "language is not defined: " language "In" * * warning$ "In" } + if$ + } + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ + curlanguage "english" = + { "pp." } + { curlanguage "russian" = + { "{\cyr\cyrs.}" } + { "language is not defined: " language "pp." * * warning$ "pp." } + if$ + } + if$ +} + +FUNCTION {bbl.page} % { "\bblp." } +{ + curlanguage "english" = + {"p."} + { curlanguage "russian" = + { "{\cyr\cyrs.}"} + { "language is not defined: " language "p." * * warning$ "p." } + if$ + } + if$ +} + +FUNCTION {bbl.ppages} % { "\bblPp." } +{ + curlanguage "english" = + { "Pp." } + { curlanguage "russian" = + { "{\cyr\CYRS.}" } + { "language is not defined: " language "Pp." * * warning$ "Pp." } + if$ + } + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ + curlanguage "english" = + { "P." } + { curlanguage "russian" = + { "{\cyr\CYRS.}" } + { "language is not defined: " language "P." * * warning$ "P." } + if$ + } + if$ +} + +FUNCTION {bbl.techrep} +{ + curlanguage "english" = + { "Tech. Rep." } + { curlanguage "russian" = + { "{\cyr\CYRT\cyre\cyrh.\ \cyrd\cyro\cyrk\cyrl\cyra\cyrd.}" } + { "language is not defined: " language "Tech. Rep." * * warning$ "P." } + if$ + } + if$ +} + +FUNCTION {bbl.mthesis} +{ + curlanguage "english" = + { "Master's thesis" } + { curlanguage "russian" = + { "{\cyr\CYRM\cyra\cyrg\cyri\cyrs\cyrt\cyre\cyrr\cyrs\cyrk\cyra\cyrya\ \cyrd\cyri\cyrs\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyri\cyrya}" } + { "language is not defined: " language "Master's thesis" * * warning$ "P." } + if$ + } + if$ +} + +FUNCTION {bbl.phdthesis} +{ + curlanguage "english" = + { "Ph.D. thesis" } + { curlanguage "russian" = + { "{\cyr\CYRK\cyra\cyrn\cyrd\cyri\cyrd\cyra\cyrt\cyrs\cyrk\cyra\cyrya\ \cyrd\cyri\cyrs\cyrs\cyre\cyrr\cyrt\cyra\cyrc\cyri\cyrya}" } + { "language is not defined: " language "Ph.D. thesis" * * warning$ "P." } + if$ + } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +% \end{macrocode} +% \subsection{Формат элементов библиографических ссылок} +% \begin{macrocode} +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~f.}{, jj}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize } + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names } + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev } + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev } + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * } + if$ +} + +FUNCTION { format.compiler.after } +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + "\BibPrefix" write$ + label write$ + "\BibPostfix" write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + { "english" 'curlanguage := } + { language 'curlanguage := } + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.btitle} +{ title } + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} +{"~" +swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr + } + { new.sentence + series + bbl.nr + tie.or.space.connect + } + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition } + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$ + } + { format.pages } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ author empty$ + 'skip$ + { + format.authors output + new.sentence + } + if$ +} + +FUNCTION {bookauthor.before} +{ bookauthor empty$ + 'skip$ + { + format.bookauthors output + new.sentence + } + if$ +} + +FUNCTION {author.after} +{ author empty$ + 'skip$ + { author num.names$ #3 > + { format.authors.after output + new.semicolumn + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {bookauthor.after} +{ bookauthor empty$ + 'skip$ + { bookauthor num.names$ #3 > + { format.bookauthors.after output + new.semicolumn + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {editor.organization.after} +{ compiler empty$ + 'skip$ + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + 'skip$ + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + 'skip$ + { organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "\BibUrl{" url * "}" * } + if$ +} + +FUNCTION {format.urldate} +{ urldate empty$ + { "" } + { add.blank + "\BibUrlDate{" urldate * "}" * + } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { format.url output + format.urldate output + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } + { after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * + } + if$ +} + +% \end{macrocode} +% \subsection{Описание типов библиографических ссылок} +% \begin{macrocode} +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.block + output.url + new.block + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + output.url + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + howpublished output + new.block + format.date output + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + editor.organization.after + new.block + note "note" output.check + new.sentence + output.url + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +% \end{macrocode} +% \subsection{Сокращения названий месяцев и журналов} +% \begin{macrocode} +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +% \end{macrocode} +% \subsection{Функции для сортировки списка литературы по именам авторов и названиям} +% \begin{macrocode} +%<*gost705s> +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { + author sort.format.names} + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author sort.format.names + } + if$ +} + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +% + +% \end{macrocode} +% \subsection{Вычисление длины табуляции между номером и текстом} +% \begin{macrocode} +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +% \end{macrocode} +% \subsection{Формирование окружения thebibliography} +% \subsubsection{Преамбула} +% \begin{macrocode} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\makeatletter\renewcommand{\@biblabel}[1]{#1.}\makeatother" + write$ newline$ + "\ifx\undefined\BibPrefix\def\BibPrefix{}\else\fi" + write$ newline$ + "\ifx\undefined\BibPostfix\def\BibPostfix{}\else\fi" + write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{#1}\else\fi" + write$ newline$ + "\ifx\undefined\url\def\url#1{\texttt{#1}}\else\fi" + write$ newline$ + "\ifx\undefined\urlprefix\def\urlprefix{URL: }\else\fi" + write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\urlprefix\url{#1}}\else\fi" + write$ newline$ + "\ifx\undefined\BibUrlDate\long\def\BibUrlDate#1{({%" + write$ newline$ + "\cyr\cyrd\cyra\cyrt\cyra\ %" + write$ newline$ + "\cyro\cyrb\cyrr\cyra\cyrshch\cyre\cyrn\cyri\cyrya}: #1)}\else\fi" + write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{#1}\else\fi" + write$ newline$ + "\begin{thebibliography}{\BibPrefix" longest.label * "\BibPostfix}" * + write$ newline$ + "\def\selectlanguageifdefined#1{" + write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" + write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" + write$ newline$ +} + +% \end{macrocode} +% \subsubsection{Начало} +% \begin{macrocode} +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +% \end{macrocode} +% \subsubsection{Конец} +% \begin{macrocode} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +% +% \end{macrocode} diff --git a/Master/texmf-dist/source/latex/disser/gost732.dtx b/Master/texmf-dist/source/latex/disser/gost732.dtx index 9f69893c5b4..9fbb5e3c2f8 100644 --- a/Master/texmf-dist/source/latex/disser/gost732.dtx +++ b/Master/texmf-dist/source/latex/disser/gost732.dtx @@ -20,7 +20,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*driver> -\ProvidesFile{gost732.drv}[2009/06/19 1.1.2 GOST 7.32-2001 implementation] +\ProvidesFile{gost732.drv}[2009/11/05 1.1.3 GOST 7.32-2001 implementation] \documentclass{ltxdoc} \usepackage[a4paper, includeheadfoot, nohead, mag=1000, @@ -69,6 +69,10 @@ \MakeShortVerb{\|} +\def\file#1{\texttt{#1}} +\def\pkg#1{\textsf{#1}} +\def\cmd#1{\texttt{#1}} + \setlength\hfuzz{20pt} \hbadness=10000 @@ -82,7 +86,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% \title{\texttt{gost732} --- класс для оформления документов в соответствии +% \title{\pkg{gost732} --- класс для оформления документов в соответствии % с ГОСТ 7.32-2001} % \date{Версия \fileversion\\[6pt]\filedate} % \author{Станислав Кручинин\\[6pt] @@ -101,7 +105,7 @@ % Диссертационные советы, как правило, не предъявляют каких-либо требований % к форматированию, за исключением тех, что реализованы в классе |disser|. % Однако, если возникнет вопрос о соответствии верстки диссертации каким-либо -% ГОСТам, то следует воспользоваться наиболее подходящим среди существующих +% ГОСТам, то следует воспользоваться наиболее подходящим среди существующих % стандартов --- ГОСТ~7.32-2001 <<Отчет о научно-исследовательской работе>>, % который реализован в данном классе. % @@ -109,7 +113,7 @@ % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1999/12/01] -\ProvidesClass{gost732}[2009/06/19 1.1.2 GOST 7.32-2001 implementation] +\ProvidesClass{gost732}[2009/11/05 1.1.3 GOST 7.32-2001 implementation] \DeclareOption*{\PassOptionsToClass{\CurrentOption}{disser}} \ProcessOptions\relax @@ -234,7 +238,7 @@ % \subsection{Сноска} % % \begin{macrocode} -\renewcommand\postthefootnote{)} +\renewcommand\postthefootnote{$^)$} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/disser/lists.dtx b/Master/texmf-dist/source/latex/disser/lists.dtx index a266a6a0c60..0ee1573ea02 100644 --- a/Master/texmf-dist/source/latex/disser/lists.dtx +++ b/Master/texmf-dist/source/latex/disser/lists.dtx @@ -16,6 +16,7 @@ % \DescribeMacro{\leftmarginiv}\index{Расстояния!\verb*+\leftmarginiv+} % \DescribeMacro{\leftmarginv}\index{Расстояния!\verb*+\leftmarginv+} % \DescribeMacro{\leftmarginvi}\index{Расстояния!\verb*+\leftmarginvi+} +% % Величины отступов от левого поля окружения до поля перечня для элементов % указанного уровня вложенности. % \paragraph{1} diff --git a/Master/texmf-dist/source/latex/disser/part.dtx b/Master/texmf-dist/source/latex/disser/part.dtx index 633d63b225d..df9a5cc90cf 100644 --- a/Master/texmf-dist/source/latex/disser/part.dtx +++ b/Master/texmf-dist/source/latex/disser/part.dtx @@ -9,44 +9,46 @@ % \end{macrocode} % \subsection{Часть} % -% \subsubsection{Параметры формата записи в Содержании} +% \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|. +% отсутствует. Чтобы заполнить какими-либо символами, нужно присвоить +% |\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{Параметры формата в тексте} +% \subsubsection{Параметры формата заголовка в тексте} +% +% Параметры номера и названия: выравнивание, шрифт, отступы, текст до и после. % \DescribeMacro{\thepartalign}\index{Макросы!\verb*+\thepartalign+} % \DescribeMacro{\thepartfont}\index{Макросы!\verb*+\thepartfont+} % \DescribeMacro{\prethepart}\index{Макросы!\verb*+\prethepart+} @@ -55,7 +57,6 @@ % \DescribeMacro{\partfont}\index{Макросы!\verb*+\partfont+} % \DescribeMacro{\beforepart}\index{Макросы!\verb*+\beforepart+} % \DescribeMacro{\afterpart}\index{Макросы!\verb*+\afterpart+} -% Параметры номера и названия: выравнивание, шрифт, отступы, текст до и после. % \begin{macrocode} \providecommand\thepartalign{\centering} \providecommand\thepartfont{\huge} @@ -100,7 +101,7 @@ % \end{macrocode} % \end{itemize} -% \DescribeMacro{\part}\index{Макросы!\verb*+\part+} +% \DescribeMacro{\part}\index{Макросы!\verb*+"\part+} % Интерфейс. % \begin{macrocode} \newcommand\part{ diff --git a/Master/texmf-dist/source/latex/disser/sections.dtx b/Master/texmf-dist/source/latex/disser/sections.dtx index fca34184ffd..004f6da3607 100644 --- a/Master/texmf-dist/source/latex/disser/sections.dtx +++ b/Master/texmf-dist/source/latex/disser/sections.dtx @@ -11,7 +11,7 @@ % % \subsubsection{Section} % -% \paragraph{Параметры формата записи в Содержании} +% \paragraph{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocprethesection}\index{Макросы!\verb*+\tocprethesection+} % \DescribeMacro{\tocpostthesection}\index{Макросы!\verb*+\tocpostthesection+} @@ -29,7 +29,7 @@ \providecommand\tocsectionnumfont{} % \end{macrocode} % \DescribeMacro{\tocsectionindent}\index{Макросы!\verb*+\tocsectionindent+} -% Величина отступа записи в Содержании. +% Величина отступа записи в оглавлении. % \begin{macrocode} \providecommand\tocsectionindent{1.5em} % \end{macrocode} @@ -73,7 +73,7 @@ % \end{macrocode} % \subsubsection{Subsection} -% \paragraph{Параметры формата записи в Содержании} +% \paragraph{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocprethesubsection}\index{Макросы!\verb*+\tocprethesubsection+} % \DescribeMacro{\tocpostthesubsection}\index{Макросы!\verb*+\tocpostthesubsection+} @@ -118,7 +118,7 @@ % \end{macrocode} % \subsubsection{Subsubsection} -% \paragraph{Параметры формата записи в Содержании} +% \paragraph{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocprethesubsubsection}\index{Макросы!\verb*+\tocprethesubsubsection+} % \DescribeMacro{\tocpostthesubsubsection}\index{Макросы!\verb*+\tocpostthesubsubsection+} @@ -165,7 +165,7 @@ % \end{macrocode} % \subsubsection{Paragraph} -% \paragraph{Параметры формата записи в Содержании} +% \paragraph{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocpretheparagraph}\index{Макросы!\verb*+\tocpretheparagraph+} % \DescribeMacro{\tocposttheparagraph}\index{Макросы!\verb*+\tocposttheparagraph+} @@ -217,27 +217,29 @@ % \end{macrocode} % \subsubsection{Subparagraph} -% \paragraph{Параметры формата записи в Содержании} +% \paragraph{Параметры формата записи в оглавлении} % % \DescribeMacro{\tocprethesubparagraph}\index{Макросы!\verb*+\tocprethesubparagraph+} % \DescribeMacro{\tocpostthesubparagraph}\index{Макросы!\verb*+\tocpostthesubparagraph+} % \DescribeMacro{\tocsubparagraphfill}\index{Макросы!\verb*+\tocsubparagraphfill+} -% -% \DescribeMacro{\tocsubparagraphfont}\index{Макросы!\verb*+\tocsubparagraphfont+} -% \DescribeMacro{\tocsubparagraphfillfont}\index{Макросы!\verb*+\tocsubparagraphfillfont+} -% \DescribeMacro{\tocsubparagraphnumfont}\index{Макросы!\verb*+\tocsubparagraphnumfont+} -% -% \DescribeMacro{\tocsubparagraphindent}\index{Макросы!\verb*+\tocsubparagraphindent+} -% \DescribeMacro{\tocsubparagraphnameindent}\index{Макросы!\verb*+\tocsubparagraphnameindent+} % \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} @@ -267,7 +269,7 @@ % \end{macrocode} % \subsubsection{Низкоуровневые команды} % -% \DescribeMacro{\@startsection}\index{Макросы!\verb+"\"@startsection+} +% \DescribeMacro{\@startsection}\index{Макросы!\verb*+"\"@startsection+} % Команда, создающая заголовки секций. % \begin{macrocode} \def\@startsection#1#2{% @@ -293,7 +295,7 @@ } % \end{macrocode} -% \DescribeMacro{\@ssect}\index{Макросы!\verb+"\"@ssect+} +% \DescribeMacro{\@ssect}\index{Макросы!\verb*+"\"@ssect+} % Для ненумеруемых секций. % \begin{macrocode} \def\@ssect#1#2#3#4#5{% @@ -311,7 +313,7 @@ } % \end{macrocode} -% \DescribeMacro{\@sect}\index{Макросы!\verb+"\"@sect+} +% \DescribeMacro{\@sect}\index{Макросы!\verb*+"\"@sect+} % Для нумеруемых секций. % \begin{macrocode} \def\@sect#1#2#3#4#5#6[#7]#8{% @@ -350,8 +352,8 @@ % \end{macrocode} % -% \DescribeMacro{\@tocline}\index{Макросы!\verb+"\"@tocline+} -% Обобщенная версия команды, добавляющей запись в Содержание. +% \DescribeMacro{\@tocline}\index{Макросы!\verb*+"\"@tocline+} +% Обобщенная версия стандартной команды, добавляющей запись в оглавление. % \begin{macrocode} \def\@tocline#1#2#3#4{% \ifnum #2>\c@tocdepth \else @@ -375,37 +377,37 @@ % \end{macrocode} % -% Команда, создающие секции в тексте и в Содержании. -% \DescribeMacro{\section}\index{Макросы!\verb+\section+} -% \DescribeMacro{\l@section}\index{Макросы!\verb+\l@section+} +% Команды, создающие заголовки секций в тексте и записи в оглавлении. +% \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+} +% \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+} +% \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+} +% \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+} +% \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}} diff --git a/Master/texmf-dist/source/latex/disser/titledefs.dtx b/Master/texmf-dist/source/latex/disser/titledefs.dtx index 24005ae5382..b30881d935f 100644 --- a/Master/texmf-dist/source/latex/disser/titledefs.dtx +++ b/Master/texmf-dist/source/latex/disser/titledefs.dtx @@ -72,7 +72,8 @@ % \DescribeMacro{\speclabel}\index{Макросы!\verb+\speclabel+} % Специальность % \begin{macrocode} -\def\specname{\cyr\CYRS\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrsftsn} +\def\specname{% +\cyr\CYRS\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro\cyrs\cyrt\cyrsftsn} \def\specsep{:} \def\speclabel{\specname\specsep} % \end{macrocode} @@ -81,7 +82,8 @@ % \DescribeMacro{\masterproglabel}\index{Макросы!\verb+\masterproglabel+} % Магистерская программа % \begin{macrocode} -\def\masterprogname{\cyr\CYRM\cyra\cyrg\cyri\cyrs\cyrt\cyre\cyrr\cyrs\cyrk\cyra\cyrya\ % +\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\masterprogsep{:} \def\masterproglabel{\masterprogname\masterprogsep} @@ -130,7 +132,8 @@ % \DescribeMacro{\consultname}\index{Макросы!\verb+\consultname+} % Консультанты % \begin{macrocode} -\def\consultname{\cyr\CYRK\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt\cyrery:} +\def\consultname{% +\cyr\CYRK\cyro\cyrn\cyrs\cyru\cyrl\cyrsftsn\cyrt\cyra\cyrn\cyrt\cyrery:} % \end{macrocode} % % \subsection{Интерфейс для определения элементов титульного листа} @@ -282,9 +285,9 @@ % \end{macrocode} % -% \subsubsection{Названия ненумеруемых глав, входящих в Содержание} -% \begin{itemize} +% \subsubsection{Названия ненумеруемых глав} % +% \begin{itemize} % \item Содержание % \DescribeMacro{\contentsname}\index{Макросы!\verb*+\contentsname+} % \begin{macrocode} @@ -328,6 +331,7 @@ \newcommand\reviewname{\cyr\CYRO\cyrb\cyrz\cyro\cyrr\ % \cyrl\cyri\cyrt\cyre\cyrr\cyra\cyrt\cyru\cyrr\cyrery} \newcommand\review{\nchapter{\reviewname}} + % \end{macrocode} % % \subsubsection{Поля титульного листа} diff --git a/Master/texmf-dist/source/latex/disser/toc.dtx b/Master/texmf-dist/source/latex/disser/toc.dtx index 555883910bd..2f207dca0cb 100644 --- a/Master/texmf-dist/source/latex/disser/toc.dtx +++ b/Master/texmf-dist/source/latex/disser/toc.dtx @@ -8,15 +8,16 @@ %<*toc> % \end{macrocode} % -% \subsection{Автоматически генерируемые списки (содержание, индекс и т.\,д.)} -% \subsubsection{Параметры} +% \subsection{Автоматически генерируемые списки (оглавление, предметный указатель и т.\,д.)} % -% Горизонтальный пробел между постоянной и переменной частями заголовков +% \subsubsection{Общие параметры} +% +% Горизонтальный пробел между постоянной и переменной частями заголовков. % \DescribeMacro{\@postskip}\index{Макросы!\verb+"\"@postskip+} % \begin{macrocode} \def\@postskip{\hskip1em} % \end{macrocode} -% Длина пробела между заполнителем и номером страницы. +% Длина пробела между заполнителем строки и номером страницы. % \DescribeMacro{\@pnumwidth}\index{Макросы!\verb+"\"@pnumwidth+} % \begin{macrocode} \newcommand\@pnumwidth{1.55em} @@ -35,43 +36,26 @@ % Команда для заполнения промежутка между названием и номером страницы. % \DescribeMacro{\tocfill}\index{Макросы!\verb*+\tocfill+} % \begin{macrocode} -\def\tocfill#1{ - \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{#1}\mkern\@dotsep mu$} +\def\tocfill#1{% + \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{#1}\mkern\@dotsep mu$}% } + % \end{macrocode} -% Вертикальный пробел между элементами предметного указателя. -% \DescribeMacro{\indexspace}\index{Макросы!\verb*+\indexspace+} -% \begin{macrocode} -\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} -% \end{macrocode} -% Величина отступа для элементов списка литературы. -% \DescribeMacro{\bibindent}\index{Расстояния!\verb*+\bibindent+} -% \begin{macrocode} -\newdimen\bibindent -\setlength\bibindent{1.5em} -% \end{macrocode} -% Горизонтальный пробел между различными частями элемента библиографии. -% \DescribeMacro{\newblock}\index{Макросы!\verb*+\newblock+} +% \subsubsection{Оглавление} +% +% \DescribeMacro{\tocsection}\index{Макросы!\verb*+\tocsection+} % \begin{macrocode} -\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em} -\let\@openbib@code\@empty +\newcommand\tocsection{\chapter*{\contentsname}} % \end{macrocode} % % \DescribeMacro{\tableofcontents}\index{Макросы!\verb*+\tableofcontents+} % \begin{macrocode} \newcommand\tableofcontents{% -% \end{macrocode} -% -% \begin{macrocode} - \if@twocolumn - \@restonecoltrue\onecolumn - \else - \@restonecolfalse - \fi - \chapter*{\contentsname% - \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname} - }% + \if@twocolumn\@restonecoltrue\onecolumn% + \else\@restonecolfalse\fi% + \tocsection% + \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}% \@starttoc{toc}% \if@restonecol\twocolumn\fi \clearpage @@ -80,44 +64,48 @@ % % \subsubsection{Список иллюстраций} % -% \DescribeMacro{\listoffigures}\index{Макросы!\verb*+\listoffigures+} +% \DescribeMacro{\lofsection}\index{Макросы!\verb*+\lofsection+} % \begin{macrocode} -\newcommand\listoffigures{% - \if@twocolumn\@restonecoltrue\onecolumn - \else\@restonecolfalse\fi +\newcommand\lofsection{\nchapter{\listfigurename}} + % \end{macrocode} -% Вместо стандартной команды |\chapter*| используется |\nchapter|, чтобы список -% отображался в Содержании. % +% \DescribeMacro{\listoffigures}\index{Макросы!\verb*+\listoffigures+} % \begin{macrocode} - \nchapter{% - \listfigurename% - \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}% - }% +\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 - \nchapter{% - \listtablename% - \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}% - }% + \if@twocolumn\@restonecoltrue\onecolumn% + \else\@restonecolfalse\fi% + \lotsection% + \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}% \@starttoc{lot}% \if@restonecol\twocolumn\fi } + % \end{macrocode} % Формат элемента списка таблиц. % \begin{macrocode} @@ -126,22 +114,44 @@ % \end{macrocode} % % \subsubsection{Библиография} -% Данное окружение будет переопределено в пакете |natbib|. +% +% Окружение и заголовок будут переопределены в пакете \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 +\newenvironment{theindex}{% + \if@twocolumn\@restonecolfalse% + \else\@restonecoltrue\fi% \columnseprule \z@ \columnsep 35\p@ - \twocolumn[\@makeschapterhead{\indexname}]% + \indexsection% \@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}% \thispagestyle{plain} \parindent\z@ @@ -149,7 +159,7 @@ \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+} @@ -157,5 +167,10 @@ \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} % % \end{macrocode} -- cgit v1.2.3