summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/eskdx/source
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/eskdx/source')
-rw-r--r--macros/latex/contrib/eskdx/source/Makefile22
-rw-r--r--macros/latex/contrib/eskdx/source/eskdafterpkg.sty.in57
-rw-r--r--macros/latex/contrib/eskdx/source/eskdappsheet.sty.in80
-rw-r--r--macros/latex/contrib/eskdx/source/eskdbiblist.sty.in44
-rw-r--r--macros/latex/contrib/eskdx/source/eskdcap.sty.in32
-rw-r--r--macros/latex/contrib/eskdx/source/eskdchngsheet.sty.in96
-rw-r--r--macros/latex/contrib/eskdx/source/eskddstu.sty.in48
-rw-r--r--macros/latex/contrib/eskdx/source/eskdexplan.sty.in40
-rw-r--r--macros/latex/contrib/eskdx/source/eskdfont.sty.in55
-rw-r--r--macros/latex/contrib/eskdx/source/eskdfootnote.sty.in81
-rw-r--r--macros/latex/contrib/eskdx/source/eskdfreesize.sty.in174
-rw-r--r--macros/latex/contrib/eskdx/source/eskdgraph.cls.in51
-rw-r--r--macros/latex/contrib/eskdx/source/eskdhash.sty.in59
-rw-r--r--macros/latex/contrib/eskdx/source/eskdindent.sty.in29
-rw-r--r--macros/latex/contrib/eskdx/source/eskdinfo.sty.in118
-rw-r--r--macros/latex/contrib/eskdx/source/eskdlang.sty.in45
-rw-r--r--macros/latex/contrib/eskdx/source/eskdlist.sty.in52
-rw-r--r--macros/latex/contrib/eskdx/source/eskdpara.sty.in49
-rw-r--r--macros/latex/contrib/eskdx/source/eskdplain.sty.in73
-rw-r--r--macros/latex/contrib/eskdx/source/eskdrussian.def.in177
-rw-r--r--macros/latex/contrib/eskdx/source/eskdsect.sty.in201
-rw-r--r--macros/latex/contrib/eskdx/source/eskdspec.sty.in93
-rw-r--r--macros/latex/contrib/eskdx/source/eskdspecii.sty.in179
-rw-r--r--macros/latex/contrib/eskdx/source/eskdstamp.sty.in1199
-rw-r--r--macros/latex/contrib/eskdx/source/eskdtab.cls.in49
-rw-r--r--macros/latex/contrib/eskdx/source/eskdtext.cls.in114
-rw-r--r--macros/latex/contrib/eskdx/source/eskdtitle.sty.in136
-rw-r--r--macros/latex/contrib/eskdx/source/eskdtitlebase.sty.in93
-rw-r--r--macros/latex/contrib/eskdx/source/eskdtotal.sty.in58
-rw-r--r--macros/latex/contrib/eskdx/source/eskdukrainian.def.in179
30 files changed, 3683 insertions, 0 deletions
diff --git a/macros/latex/contrib/eskdx/source/Makefile b/macros/latex/contrib/eskdx/source/Makefile
new file mode 100644
index 0000000000..ca4c7656ba
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/Makefile
@@ -0,0 +1,22 @@
+# Process this file with GNU make
+TOP_DIR = ..
+SOURCES = $(notdir $(shell grep ^source $(TOP_DIR)/manifest.txt))
+UNPACKED = $(patsubst %.in, %, $(filter %.in, $(SOURCES)))
+
+DIST_FILES = \
+ Makefile \
+ $(SOURCES)
+
+include $(TOP_DIR)/include.mak
+
+%.def: %.def.in $(M4DEPS)
+ m4 $(M4FLAGS) $< >$@
+%.sty: %.sty.in $(M4DEPS)
+ m4 $(M4FLAGS) $< >$@
+%.cls: %.cls.in $(M4DEPS)
+ m4 $(M4FLAGS) $< >$@
+
+all: $(UNPACKED)
+
+clean:
+ rm -f $(UNPACKED)
diff --git a/macros/latex/contrib/eskdx/source/eskdafterpkg.sty.in b/macros/latex/contrib/eskdx/source/eskdafterpkg.sty.in
new file mode 100644
index 0000000000..8ea002c730
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdafterpkg.sty.in
@@ -0,0 +1,57 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+% The author of original code of this file is Alexander I. Rozhenko.
+% The code is taken from afterpackage.sty from ncctools bundle.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdafterpkg}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Apply Commands After Package]
+
+\newcommand*\ESKD@after@package[1]{%
+ \expandafter\ifx\csname ver@#1.\@pkgextension\endcsname\relax
+ \@ifundefined{#1.\@pkgextension-@dd}{%
+ \expandafter\let\csname#1.\@pkgextension-@dd\endcsname\@empty
+ \expandafter\@onlypreamble\csname#1.\@pkgextension-@dd\endcsname
+ }{}%
+ \wlog{After Package Info: Collect commands for #1\on@line}%
+ \def\@tempa{%
+ \expandafter\g@addto@macro\csname#1.\@pkgextension-@dd\endcsname}%
+ \else
+ \ATP@apply@info{#1}%
+ \let\@tempa\@firstofone
+ \fi
+ \@tempa
+}
+\@onlypreamble\ESKD@after@package
+\let\ESKD@ATP@popfilename\@popfilename
+\@onlypreamble\ESKD@ATP@popfilename
+\def\@popfilename{%
+ \@ifundefined{\@currname.\@currext-@dd}{}{%
+ \ESKD@ATP@apply@info{\@currname}%
+ \csname\@currname.\@currext-@dd\endcsname
+ \expandafter\let\csname\@currname.\@currext-@dd\endcsname\relax
+ }%
+ \ESKD@ATP@popfilename
+}
+\def\ESKD@ATP@apply@info#1{%
+ \wlog{After Package Info: Apply commands to #1\on@line}%
+}
+\@onlypreamble\ESKD@ATP@apply@info
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdappsheet.sty.in b/macros/latex/contrib/eskdx/source/eskdappsheet.sty.in
new file mode 100644
index 0000000000..d063232c88
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdappsheet.sty.in
@@ -0,0 +1,80 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdappsheet}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Approving Sheet GOST 2.105]
+
+\RequirePackage{eskdlang}
+\RequirePackage{eskdtitle}
+
+\newcount\ESKD@appsheet@doc@cnt
+\ESKD@appsheet@doc@cnt = 0
+
+m4_dnl добавляет документ в список документов,
+m4_dnl на которые распространяется данный ЛУ
+\newcommand{\ESKDapprovingDoc}[1]{%
+ \advance \ESKD@appsheet@doc@cnt 1
+ \@namedef{ESKD@appsheet@doc@\number\ESKD@appsheet@doc@cnt}{#1}}
+
+m4_dnl слова "Лист утверждения"
+\renewcommand{\ESKDtheTitleFieldV}{%
+ \ESKDapprovingSheetName}
+
+m4_dnl обозначение - ЛУ
+\renewcommand{\ESKDtheTitleFieldVI}{%
+ \MakeUppercase{\ESKDtheSignature}}
+
+m4_dnl количество листов ЛУ
+\renewcommand{\ESKDtheTitleFieldVII}{}
+
+m4_dnl список документов, на которые распространяется данный ЛУ
+\def\ESKDtheTitleFieldVIIIlb{}
+\renewcommand{\ESKDtheTitleFieldVIIIlb}{%
+ \ESKD@tmpcnta = 1
+ \ESKD@tmpcntb = \ESKD@appsheet@doc@cnt
+ \advance \ESKD@tmpcntb 1
+ \loop
+ \ifnum \ESKD@tmpcnta < \ESKD@tmpcntb
+ \@nameuse{ESKD@appsheet@doc@\number\ESKD@tmpcnta}\par
+ \advance \ESKD@tmpcnta 2
+ \repeat}
+\def\ESKDtheTitleFieldVIIIrb{}
+\renewcommand{\ESKDtheTitleFieldVIIIrb}{%
+ \ESKD@tmpcnta = 2
+ \ESKD@tmpcntb = \ESKD@appsheet@doc@cnt
+ \advance \ESKD@tmpcntb 1
+ \loop
+ \ifnum \ESKD@tmpcnta < \ESKD@tmpcntb
+ \@nameuse{ESKD@appsheet@doc@\number\ESKD@tmpcnta}\par
+ \advance \ESKD@tmpcnta 2
+ \repeat}
+\renewcommand{\ESKDtheTitleFieldVIII}{%
+ \ESKD@title@split@field{\ESKDtheTitleFieldVIIIl}{\ESKDtheTitleFieldVIIIr}
+ \par
+ \ESKD@title@split@field{\ESKDtheTitleFieldVIIIlb}{\ESKDtheTitleFieldVIIIrb}}
+
+m4_dnl графы 14 - 18 по ГОСТ 2.104
+\renewcommand{\ESKDtheTitleFieldX}{}
+
+\renewcommand{\ESKDtitleFontX}{\ESKDfontIII}
+
+m4_dnl печатает лист утверждения
+\newcommand{\ESKDmakeApprovingSheet}{\maketitle}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdbiblist.sty.in b/macros/latex/contrib/eskdx/source/eskdbiblist.sty.in
new file mode 100644
index 0000000000..20c6529646
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdbiblist.sty.in
@@ -0,0 +1,44 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdbiblist}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Bibliography List]
+
+\renewcommand{\@biblabel}[1]{#1.}
+
+\def\thebibliography#1{%
+ \section*{\refname}\addcontentsline{toc}{section}{\refname}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+\def\endthebibliography{\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdcap.sty.in b/macros/latex/contrib/eskdx/source/eskdcap.sty.in
new file mode 100644
index 0000000000..e0c77ab014
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdcap.sty.in
@@ -0,0 +1,32 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdcap}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Captions]
+
+\RequirePackage{caption}
+\DeclareCaptionLabelSeparator{dash}{ -- }
+\captionsetup[table]{%
+labelsep=dash,justification=raggedright,singlelinecheck=false,%
+aboveskip=3mm,belowskip=0mm}
+\captionsetup[figure]{%
+labelsep=dash,justification=centering,singlelinecheck=false,%
+aboveskip=0mm,belowskip=3mm}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdchngsheet.sty.in b/macros/latex/contrib/eskdx/source/eskdchngsheet.sty.in
new file mode 100644
index 0000000000..2390ac6bc5
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdchngsheet.sty.in
@@ -0,0 +1,96 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdchngsheet}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Sheet of Changes GOST 2.503-90]
+
+\RequirePackage{eskdlang}
+\RequirePackage{eskdstamp}
+\RequirePackage{array}
+\RequirePackage{longtable}
+
+\newcommand{\ESKDchngColumnIwidth}{.08\textwidth}
+\newcommand{\ESKDchngColumnIIwidth}{.08\textwidth}
+\newcommand{\ESKDchngColumnIIIwidth}{.08\textwidth}
+\newcommand{\ESKDchngColumnIVwidth}{.08\textwidth}
+\newcommand{\ESKDchngColumnVwidth}{.08\textwidth}
+\newcommand{\ESKDchngColumnVIwidth}{.15\textwidth}
+\newcommand{\ESKDchngColumnVIIwidth}{.10\textwidth}
+\newcommand{\ESKDchngColumnVIIIwidth}{.15\textwidth}
+\newcommand{\ESKDchngColumnIXwidth}{.10\textwidth}
+\newcommand{\ESKDchngColumnXwidth}{.10\textwidth}
+
+\newenvironment{ESKDchangeSheet}{%
+\ESKDclearDoublePage
+\setlength{\tabcolsep}{0.5mm}
+\newcolumntype{s}{>{\ESKDfontTabBody}c}
+\newcolumntype{S}{>{\ESKDfontTabHead}c}
+\noindent
+\begin{longtable}{|*{10}{s|}}
+\hline
+\multicolumn{10}{|S|}{\ESKDchangeSheetName}\\\hline
+&\multicolumn{4}{S|}{\ESKDchngColumnsIIhName}&&&&&\\\cline{2-5}
+\parbox[c]{\ESKDchngColumnIwidth-2\tabcolsep-1.5\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXIVname}&
+\parbox[c]{\ESKDchngColumnIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIIname}&
+\parbox[c]{\ESKDchngColumnIIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIIIname}&
+\parbox[c]{\ESKDchngColumnIVwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIVname}&
+\parbox[c]{\ESKDchngColumnVwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnVname}&
+\parbox[c]{\ESKDchngColumnVIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDchngColumnVIname}&
+\parbox[c]{\ESKDchngColumnVIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIname}&
+\parbox[c]{\ESKDchngColumnVIIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDchngColumnVIIIname\vspace{1mm}}&
+\parbox[c]{\ESKDchngColumnIXwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIIname}&
+\parbox[c]{\ESKDchngColumnXwidth-2\tabcolsep-1.5\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIIIname}\\\hline
+\endfirsthead
+\hline
+&\multicolumn{4}{S|}{\ESKDchngColumnsIIhName}&&&&&\\\cline{2-5}
+\parbox[c]{\ESKDchngColumnIwidth-2\tabcolsep-1.5\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXIVname}&
+\parbox[c]{\ESKDchngColumnIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIIname}&
+\parbox[c]{\ESKDchngColumnIIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIIIname}&
+\parbox[c]{\ESKDchngColumnIVwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnIVname}&
+\parbox[c]{\ESKDchngColumnVwidth-2\tabcolsep-\arrayrulewidth}{%
+ \centering\ESKDfontTabHead\ESKDchngColumnVname}&
+\parbox[c]{\ESKDchngColumnVIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDchngColumnVIname}&
+\parbox[c]{\ESKDchngColumnVIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIname}&
+\parbox[c]{\ESKDchngColumnVIIIwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDchngColumnVIIIname\vspace{1mm}}&
+\parbox[c]{\ESKDchngColumnIXwidth-2\tabcolsep-\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIIname}&
+\parbox[c]{\ESKDchngColumnXwidth-2\tabcolsep-1.5\arrayrulewidth}{%
+ \vspace{-\baselineskip}\centering\ESKDfontTabHead\ESKDcolumnXVIIIname}\\\hline
+\endhead
+\hline
+\endfoot}{\end{longtable}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskddstu.sty.in b/macros/latex/contrib/eskdx/source/eskddstu.sty.in
new file mode 100644
index 0000000000..debac790a5
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskddstu.sty.in
@@ -0,0 +1,48 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskddstu}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-20#$]]) Ukrainian DSTU implementation]
+
+
+% Настройка пояснений к формулам согласно ДСТУ 3008, п. 7.10.3
+
+% временная длина для передачи внутрь окружения {list}
+% величины абзацного отступа
+\setlength{\ESKDexplanIndent}{\parindent}
+
+% определим нашу собственную команду для замены \makelabel
+\newcommand{\ESKD@dstu@expl@label}[1]{%
+ \ifthenelse{\equal{}{#1}}
+ {}
+ {\hspace{\ESKDexplanIndent}#1}%
+}
+
+\renewenvironment{ESKDexplanation}[1][\ESKDexplanWidth]{%
+ \begin{list}{}{\setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\labelwidth}{0pt}%
+ \setlength{\leftmargin}{0pt}%
+ \let\makelabel\ESKD@dstu@expl@label}}{%
+ \end{list}}
+
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdexplan.sty.in b/macros/latex/contrib/eskdx/source/eskdexplan.sty.in
new file mode 100644
index 0000000000..8fe2f93698
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdexplan.sty.in
@@ -0,0 +1,40 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdexplan}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-19#$]]) ESKD Explanation]
+
+\RequirePackage{eskdlang}
+
+\newlength{\ESKDexplanIndent}
+% По умолчанию пояснения к формулам прижимаются левому к краю страницы
+% и не имеют отступа, так как ГОСТ 2.105-95 четко не говорит нужно ли
+% ставить отступ перед пояснениями или нет.
+\setlength{\ESKDexplanIndent}{0pt}
+
+\newenvironment{ESKDexplanation}[1][\ESKDexplanWidth]{%
+ \begin{list}{}{\setlength{\parsep}{0pt}%
+ \setlength{\topsep}{0pt}%
+ \setlength{\itemsep}{0pt}%
+ \setlength{\labelsep}{0pt}%
+ \setlength{\labelwidth}{#1}%
+ \setlength{\leftmargin}{\labelwidth+\ESKDexplanIndent}}}{%
+ \end{list}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdfont.sty.in b/macros/latex/contrib/eskdx/source/eskdfont.sty.in
new file mode 100644
index 0000000000..062d66c774
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdfont.sty.in
@@ -0,0 +1,55 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdfont}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Font Definitions]
+
+\newcommand{\ESKDfontBaseLineStretch}{1}
+
+\newcommand{\ESKDfontSetBaseLineStretch}{%
+ \renewcommand{\baselinestretch}{\ESKDfontBaseLineStretch}}
+
+\newcommand{\ESKDfontShape}{\slshape}
+
+\newcommand{\ESKDfontIIsize}{\fontsize{8pt}{10pt}}
+\newcommand{\ESKDfontIIIsize}{\fontsize{10pt}{12pt}}
+\newcommand{\ESKDfontVsize}{\fontsize{16pt}{18pt}}
+\newcommand{\ESKDfontVIIsize}{\fontsize{20pt}{23pt}}
+\newcommand{\ESKDfontXsize}{\fontsize{32pt}{38pt}}
+
+\newcommand{\ESKDfontII}{%
+ \ESKDfontSetBaseLineStretch
+ \ESKDfontIIsize\selectfont\ESKDfontShape}
+\newcommand{\ESKDfontIII}{%
+ \ESKDfontSetBaseLineStretch
+ \ESKDfontIIIsize\selectfont\ESKDfontShape}
+\newcommand{\ESKDfontV}{%
+ \ESKDfontSetBaseLineStretch
+ \ESKDfontVsize\selectfont\ESKDfontShape}
+\newcommand{\ESKDfontVII}{%
+ \ESKDfontSetBaseLineStretch
+ \ESKDfontVIIsize\selectfont\ESKDfontShape}
+\newcommand{\ESKDfontX}{%
+ \ESKDfontSetBaseLineStretch
+ \ESKDfontXsize\selectfont\ESKDfontShape}
+
+\newcommand{\ESKDfontTabHead}{\ESKDfontIII}
+\newcommand{\ESKDfontTabBody}{\ESKDfontIII}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdfootnote.sty.in b/macros/latex/contrib/eskdx/source/eskdfootnote.sty.in
new file mode 100644
index 0000000000..2124949175
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdfootnote.sty.in
@@ -0,0 +1,81 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdfootnote}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Footnote Settings]
+
+% Нумероваться сноски должны в пределах одной страницы.
+% Самое очевидное решение - переподчинить счетчик footnote счетчику page,
+% но такой метод будет давать сбои, если сноска вставлена
+% близко к концу страницы.
+% Эту проблему решил Обердайк в своем пакете zref
+
+% пакет amsmath должен быть загружен ПЕРЕД zref
+% возможно стоит загружать его в классе eskdtext
+% а не здесь
+\RequirePackage{amsmath}
+\RequirePackage{zref-perpage}
+
+% привязываем сброс счетчика сносок к границам страниц
+\zmakeperpage{footnote}
+
+\let\footnotesize\small
+
+% Нижеследующая строка была взята из eskddstu.sty.
+% Согласно ГОСT 2.105-95 после метки сноски должна быть закрывающая скобка.
+% Стандарт межгосударственный и данная строка будет более
+% уместно смотреться здесь
+\renewcommand{\thefootnote}{\arabic{footnote})}
+
+% Помимо арабских цифр с закрывающей скобкой
+% стандарт допускает использование звездочек.
+% Более четырех использовать <<не рекомендуется>>.
+% Сложно сказать, что это значит. Наверное,
+% на усмотрение нормоконтроля.
+% Для удобства определим команду \fnasterisk
+% по аналогии с \fnsymbol
+\def\fnasterisk#1{\expandafter\@fnasterisk\csname c@#1\endcsname}
+\def\@fnasterisk#1{%
+ \ifcase#1%
+ % empty for zero value
+ \or*%
+ \or**%
+ \or***%
+ \or****%
+ \else\PackageError{eskdfootnote}{Too many asterisks}%
+ {GOST 2.105-95 does not recommend to use\MessageBreak
+ more then 4 asterisks in footnotes.\MessageBreak
+ Use 'footnotearabic' option in documentclass instead}%
+ \fi%
+}
+
+% Принимаемые опции
+\DeclareOption{footnotearabic}{\renewcommand{\thefootnote}{\arabic{footnote})}}
+\DeclareOption{footnoteasterisk}{\renewcommand{\thefootnote}{\fnasterisk{footnote}}}
+\ProcessOptions\relax
+
+% Метка сноски должна находиться по срезу абзацного отступа.
+% Для этого вставляем пустой бокс шириной в абзацный отступ,
+% после него бокс с меткой сноски, а за ним, собственно, текст.
+\renewcommand\@makefntext[1]{%
+ \parindent 15mm%
+ \noindent%
+ \hbox to \parindent{}\hbox{\hss\@makefnmark} #1}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdfreesize.sty.in b/macros/latex/contrib/eskdx/source/eskdfreesize.sty.in
new file mode 100644
index 0000000000..8648ba6364
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdfreesize.sty.in
@@ -0,0 +1,174 @@
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+
+% Пакет предоставляет возможность вставки листа
+% почти любого размера (ограничения описаны в руководстве
+% пользователя eskdx):
+
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdfreesize}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-02-20#$]]) Inserting Free Size Sheets]
+
+\RequirePackage{eskdstamp}
+
+% переключение размера возможно только в pdflatex.
+% Tем не менее, latex тоже сможет собрать такой документ,
+% но все большие страницы
+% обрежет по размерам формата, установленного в documentclass
+\RequirePackage{ifpdf}
+\ifpdf{}
+\else{\PackageWarningNoLine{eskdfreesize}
+ {It's better to compile this document with pdflatex.\MessageBreak
+ In DVI you will get only part of the inserted big sheet}}
+\fi
+
+
+
+% в eskdstamp для ускорения отрисовки рамки применен \savebox
+% в нашем случае это неудобно, будем рисовать персонально
+% на каждой странице
+\newcommand{\ESKDdrawFrameFree}{%
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){%
+ \setlength{\unitlength}{1mm}%
+ \begin{picture}(0,0)(0,0)
+ \linethickness{\ESKDlineThick}
+ \put(0,\ESKDltu{\ESKDframeH}){\line(1,0){\ESKDltu{\ESKDframeW}}}
+ \put(0,0){\line(1,0){\ESKDltu{\ESKDframeW}}}
+ \put(0,0){\line(0,1){\ESKDltu{\ESKDframeH}}}
+ \put(\ESKDltu{\ESKDframeW},0){\line(0,1){\ESKDltu{\ESKDframeH}}}
+ \end{picture}}}
+
+% содержимое нестандартной графы 32 по умолчанию
+\newcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDemptyFormatName}}
+
+% определим нашу собственную нестандартную графу 32
+\newcommand{\ESKDdrawColumnXXXIIfree}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-50mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY-3.7mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \makebox[50mm][r]{\ESKDfontIII\ESKDtheColumnXXXIIfree}}}
+
+
+
+% Определим новый стиль. Подробнее про определение своих стилей
+% можно прочитать в руководстве пользователя eskdx,
+% или заглянуть в eskdstamp.sty,
+% кусок оттуда был использован как основа для стиля freesize
+\ESKDnewStyle{freesize}{8mm}
+\ESKDputOnStyle{freesize}{frame}{\ESKDdrawFrameFree}
+\ESKDputOnStyle{freesize}{stamp}{\ESKDdrawStampIIa}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{freesize}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+\ifESKD@enable@column@xxvi
+ \ESKDputOnStyle{freesize}{columnxxvi}{\ESKDdrawColumnXXVI}
+\fi
+\ifESKD@enable@columns@xxvii
+ \ESKDputOnStyle{freesize}{columnsxxvii}{\ESKDdrawColumnsXXVIIi}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{freesize}{columnxxxi}{\ESKDdrawColumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ % наша новая графа 32
+ \ESKDputOnStyle{freesize}{columnxxxii}{\ESKDdrawColumnXXXIIfree}
+\fi
+\ifESKD@enable@column@xxxiii
+ \ESKDputOnStyle{freesize}{columnxxxiii}{\ESKDdrawColumnXXXIII}
+\fi
+\ifESKD@enable@column@xxxiv
+ \ESKDputOnStyle{freesize}{columnxxxiv}{\ESKDdrawColumnXXXIV}
+\fi
+\ifESKD@zonelabels%
+ \ESKDputOnStyle{freesize}{zonelabels}{\ESKDdrawZoneLabelsI}
+\fi
+
+
+% вспомогательные счетчики для записей в лог
+\newcounter{ESKD@free@sizepagebegin}
+\newcounter{ESKD@free@sizepageend}
+
+% теперь самое сложное - сам переключатель
+\newcommand{\ESKDfreeSize}[3]{%
+ \ESKDclearDoublePage%
+ \setcounter{ESKD@free@sizepagebegin}{\value{page}}% запомним текущую страницу
+ \pdfpagewidth=#1%
+ \pdfpageheight=#2%
+ \setlength{\ESKD@origin@y}{#2-1in}%
+ \setlength{\ESKDframeW}{\pdfpagewidth-\ESKD@margin@si-\ESKD@margin@so}%
+ \setlength{\ESKDframeH}{\pdfpageheight-\ESKD@margin@t-\ESKD@margin@b}%
+ \ESKDstyle{freesize}%
+ \expandafter{#3}%
+ % зафиксируем факт вставки листа в \jobname.log
+ \ESKDclearDoublePage%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDemptyFormatName}}% сброс графы 32
+ \setcounter{ESKD@free@sizepageend}{\value{page}}%
+ \addtocounter{ESKD@free@sizepageend}{-1}%
+ \ifthenelse{\value{ESKD@free@sizepagebegin}<\value{ESKD@free@sizepageend}}% латех начал новую страницу
+ {\immediate\write0{eskdfreesize: sheet(s) with size (#1 x #2) inserted
+ at page(s) \noexpand[\arabic{ESKD@free@sizepagebegin}%
+ -\arabic{ESKD@free@sizepageend}\noexpand]}}
+ {\immediate\write0{eskdfreesize: sheet(s) with size (#1 x #2) inserted
+ at page(s) \noexpand[\arabic{ESKD@free@sizepageend}\noexpand]}}
+ % теперь вернем всё как было до нас
+ \setlength{\ESKD@origin@y}{\paperheight-1in}%
+ \pdfpageheight=\paperheight%
+ \pdfpagewidth=\paperwidth%
+ \setlength{\ESKDframeW}{\paperwidth-\ESKD@margin@si-\ESKD@margin@so}%
+ \setlength{\ESKDframeH}{\paperheight-\ESKD@margin@t-\ESKD@margin@b}%
+ \ESKDstyle{\ESKD@default@style@other}%
+ \newpage%
+}
+
+
+% Определим несколько готовых к употреблению форматов
+\newcommand{\ESKDlandscapeAIII}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa3FormatName}}%
+ \ESKDfreeSize{420mm}{297mm}{#1}}
+
+\newcommand{\ESKDportraitAIII}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa3FormatName}}%
+ \ESKDfreeSize{297mm}{420mm}{#1}}
+
+\newcommand{\ESKDlandscapeAII}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa2FormatName}}%
+ \ESKDfreeSize{594mm}{420mm}{#1}}
+
+\newcommand{\ESKDportraitAII}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa2FormatName}}%
+ \ESKDfreeSize{420mm}{594mm}{#1}}
+
+\newcommand{\ESKDlandscapeAI}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa1FormatName}}%
+ \ESKDfreeSize{841mm}{594mm}{#1}}
+
+\newcommand{\ESKDportraitAI}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa1FormatName}}%
+ \ESKDfreeSize{594mm}{841mm}{#1}}
+
+\newcommand{\ESKDlandscapeAZERO}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa0FormatName}}%
+ \ESKDfreeSize{1189mm}{841mm}{#1}}
+
+\newcommand{\ESKDportraitAZERO}[1]{%
+ \renewcommand\ESKDtheColumnXXXIIfree{\@nameuse{ESKDa0FormatName}}%
+ \ESKDfreeSize{841mm}{1189mm}{#1}}
+
+\newcommand{\ESKDlandscapeBanner}[1]{%
+ % Пятиметровое полотно для подшивки гармошкой в обычную папку А4.
+ % Просто для демонстрации
+ \ESKDfreeSize{5000mm}{297mm}{#1}}
diff --git a/macros/latex/contrib/eskdx/source/eskdgraph.cls.in b/macros/latex/contrib/eskdx/source/eskdgraph.cls.in
new file mode 100644
index 0000000000..3ef8d0cbc3
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdgraph.cls.in
@@ -0,0 +1,51 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{eskdgraph}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Graphical Documentation]
+
+\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{article}}
+\DeclareOption{twoside}{%
+ \ClassError{eskdgraph}{Two side printing is not allowed for
+ graphical documentation}{}}
+\DeclareOption{formII}{%
+ \ClassError{eskdgraph}{formII style is for textual documentation}{}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eskdstamp}}
+
+\ProcessOptions\relax
+
+\LoadClass{article}
+\RequirePackage{eskdlang}
+\RequirePackage[formI,columnxxvi,ignorestamp]{eskdstamp}
+\RequirePackage{eskdinfo}
+
+\newenvironment{ESKDdrawing}{%
+ \clearpage\mbox{}\strut\par\vspace{-\baselineskip}\vfill%
+ \begin{center}}{\end{center}\vfill\clearpage}
+
+m4_dnl vim:ft=tex:ai:sw=2
diff --git a/macros/latex/contrib/eskdx/source/eskdhash.sty.in b/macros/latex/contrib/eskdx/source/eskdhash.sty.in
new file mode 100644
index 0000000000..1edc76f611
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdhash.sty.in
@@ -0,0 +1,59 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdhash}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Hash Routines]
+
+\newcommand{\ESKD@hash@new}[1]{%
+ \global\expandafter\newcount\csname ESKD@hash@c@#1\endcsname
+ \global\csname ESKD@hash@c@#1\endcsname = 0
+ \global\expandafter\newcount\csname ESKD@hash@p@#1\endcsname
+ \global\csname ESKD@hash@p@#1\endcsname = 0\relax}
+
+\newcommand{\ESKD@hash@set}[3]{%
+ \expandafter\ifx\csname ESKD@hash@v@#1@#2\endcsname\relax
+ \expandafter\gdef\csname ESKD@hash@k@#1@\expandafter\number\csname
+ ESKD@hash@c@#1\endcsname\endcsname{#2}
+ \expandafter\advance\csname ESKD@hash@c@#1\endcsname 1
+ \fi
+ \expandafter\gdef\csname ESKD@hash@v@#1@#2\endcsname{#3}}
+
+\newcommand{\ESKD@hash@get}[2]{%
+ \csname ESKD@hash@v@#1@#2\endcsname}
+
+\newcommand{\ESKD@hash@reset}[1]{%
+ \csname ESKD@hash@p@#1\endcsname = 0\relax}
+
+\newcommand{\ESKD@hash@next@key}[1]{%
+ \csname ESKD@hash@k@#1@\expandafter\number\csname
+ ESKD@hash@p@#1\endcsname\endcsname
+ \expandafter\advance\csname ESKD@hash@p@#1\endcsname 1\relax}
+
+\newcommand{\ESKD@hash@next@value}[1]{%
+ \csname ESKD@hash@v@#1@\csname ESKD@hash@k@#1@\expandafter\number\csname
+ ESKD@hash@p@#1\endcsname\endcsname\endcsname
+ \expandafter\advance\csname ESKD@hash@p@#1\endcsname 1\relax}
+
+\newcommand{\ESKD@hash@count}[1]{%
+ \expandafter\number\csname ESKD@hash@c@#1\endcsname}
+
+\newcommand{\ESKD@hash@pos}[1]{%
+ \expandafter\number\csname ESKD@hash@p@#1\endcsname}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdindent.sty.in b/macros/latex/contrib/eskdx/source/eskdindent.sty.in
new file mode 100644
index 0000000000..f69c21e3e8
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdindent.sty.in
@@ -0,0 +1,29 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdindent}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Paragraph Indent]
+
+\RequirePackage{indentfirst}
+m4_dnl отступ в начале абзаца
+m4_dnl Абзацы в тексте начинают отступом, равным пяти ударам пишущей машинки
+m4_dnl (15 - 17 мм)
+\setlength{\parindent}{15mm}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdinfo.sty.in b/macros/latex/contrib/eskdx/source/eskdinfo.sty.in
new file mode 100644
index 0000000000..4d5f08dd4e
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdinfo.sty.in
@@ -0,0 +1,118 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdinfo}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Document Information]
+
+m4_dnl ведомство
+\newcommand{\ESKDtheDepartment}{}
+\newcommand{\ESKDdepartment}[1]{\renewcommand{\ESKDtheDepartment}{#1}}
+
+m4_dnl предприятие
+\newcommand{\ESKDtheCompany}{}
+\newcommand{\ESKDcompany}[1]{\renewcommand{\ESKDtheCompany}{#1}}
+
+m4_dnl код по классификатору продукции
+\newcommand{\ESKDtheClassCode}{}
+\newcommand{\ESKDclassCode}[1]{\renewcommand{\ESKDtheClassCode}{#1}}
+
+m4_dnl наименование изделия/тема
+\newcommand{\ESKDtheUnitName}{}
+\newcommand{\ESKDunitName}[1]{%
+ \renewcommand{\ESKDtheUnitName}{#1}%
+ \renewcommand{\@title}{#1}}
+\newcommand{\ESKDtheTitle}{\ESKDtheUnitName}
+\newcommand{\ESKDtitle}[1]{\ESKDunitName{#1}}
+\renewcommand{\title}[1]{\ESKDunitName{#1}}
+
+m4_dnl название документа
+\newcommand{\ESKDtheDocName}{}
+\newcommand{\ESKDdocName}[1]{\renewcommand{\ESKDtheDocName}{#1}}
+
+m4_dnl обозначение документа
+\newcommand{\ESKDtheSignature}{}
+\newcommand{\ESKDsignature}[1]{\renewcommand{\ESKDtheSignature}{#1}}
+
+m4_dnl литера
+\newcommand{\ESKDtheLetterI}{}
+\newcommand{\ESKDtheLetterII}{}
+\newcommand{\ESKDtheLetterIII}{}
+\newcommand{\ESKDletter}[3]{%
+ \renewcommand{\ESKDtheLetterI}{#1}%
+ \renewcommand{\ESKDtheLetterII}{#2}%
+ \renewcommand{\ESKDtheLetterIII}{#3}}
+
+m4_dnl обозначение материала детали
+\newcommand{\ESKDtheMaterial}{}
+\newcommand{\ESKDmaterial}[1]{%
+ \renewcommand{\ESKDtheMaterial}{#1}}
+
+m4_dnl масса изделия
+\newcommand{\ESKDtheMass}{}
+\newcommand{\ESKDmass}[1]{%
+ \renewcommand{\ESKDtheMass}{#1}}
+
+m4_dnl масштаб
+\newcommand{\ESKDtheScale}{}
+\newcommand{\ESKDscale}[1]{%
+ \renewcommand{\ESKDtheScale}{#1}}
+
+m4_dnl группа, индекс, или наименование предприятия
+\newcommand{\ESKDtheGroup}{}
+\newcommand{\ESKDgroup}[1]{\renewcommand{\ESKDtheGroup}{#1}}
+
+m4_dnl фамилия автора
+\newcommand{\ESKDtheAuthor}{}
+\newcommand{\ESKDauthor}[1]{%
+ \renewcommand{\ESKDtheAuthor}{#1}%
+ \renewcommand{\@author}{#1}}
+\renewcommand{\author}[1]{\ESKDauthor{#1}}
+
+m4_dnl фамилия проверяющего
+\newcommand{\ESKDtheChecker}{}
+\newcommand{\ESKDchecker}[1]{\renewcommand{\ESKDtheChecker}{#1}}
+
+m4_dnl фамилия нормоконтролера
+\newcommand{\ESKDtheNormContr}{}
+\newcommand{\ESKDnormContr}[1]{\renewcommand{\ESKDtheNormContr}{#1}}
+
+m4_dnl фамилия утвердившего
+\newcommand{\ESKDtheApprovedBy}{}
+\newcommand{\ESKDapprovedBy}[1]{\renewcommand{\ESKDtheApprovedBy}{#1}}
+
+m4_dnl дата
+\newcommand{\ESKDtheYear}{\number\year}
+\newcommand{\ESKDtheMonth}{\number\month}
+\newcommand{\ESKDtheDay}{\number\day}
+\def\ESKD@set@date#1/#2/#3 enddate{%
+ \renewcommand{\ESKDtheYear}{#1}%
+ \renewcommand{\ESKDtheMonth}{#2}%
+ \renewcommand{\ESKDtheDay}{#3}}
+\newcommand{\ESKDdate}[1]{%
+ \ESKD@set@date #1 enddate%
+ \renewcommand{\@date}{#1}}
+\renewcommand{\date}[1]{\ESKDdate{#1}}
+
+\RequirePackage{eskdafterpkg}
+m4_dnl настройки пакета hyperref
+\ESKD@after@package{hyperref}{%
+ \hypersetup{breaklinks,pdftitle=\ESKDtheUnitName,%
+ pdfsubject=\ESKDtheDocName,pdfauthor=\ESKDtheAuthor}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdlang.sty.in b/macros/latex/contrib/eskdx/source/eskdlang.sty.in
new file mode 100644
index 0000000000..eba4913aa5
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdlang.sty.in
@@ -0,0 +1,45 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdlang}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Language]
+
+\newcommand{\ESKD@lang}{russian}
+
+\newif\ifESKD@given@encoding
+\ESKD@given@encodingfalse
+
+\DeclareOption{russian}{\renewcommand{\ESKD@lang}{russian}}
+\DeclareOption{ukrainian}{\renewcommand{\ESKD@lang}{ukrainian}}
+\DeclareOption*{%
+ \PassOptionsToPackage{\CurrentOption}{inputenc}%
+ \ESKD@given@encodingtrue}
+
+\ProcessOptions\relax
+
+m4_dnl установка кодировки
+\ifESKD@given@encoding
+ \RequirePackage{inputenc}
+\fi
+
+m4_dnl установка языка
+\RequirePackage[\ESKD@lang]{babel}
+\input{eskd\ESKD@lang.def}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdlist.sty.in b/macros/latex/contrib/eskdx/source/eskdlist.sty.in
new file mode 100644
index 0000000000..74ef89208d
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdlist.sty.in
@@ -0,0 +1,52 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdlist}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) List]
+\RequirePackage{calc}
+
+m4_dnl установки нумерованных списков
+\renewcommand{\theenumi}{\asbuk{enumi}}
+\renewcommand{\labelenumi}{\theenumi)}
+\renewcommand{\theenumii}{\arabic{enumii}}
+\renewcommand{\labelenumii}{\theenumii)}
+
+m4_dnl установки маркированных списков
+\renewcommand{\labelitemi}{\bfseries\textendash}
+\renewcommand{\labelitemii}{\bfseries\textendash}
+\renewcommand{\labelitemiii}{\bfseries\textendash}
+\renewcommand{\labelitemiv}{\bfseries\textendash}
+
+m4_dnl установки отступов
+\renewcommand{\@listi}{%
+ \setlength{\itemsep}{0pt}}
+\renewcommand{\@listii}{%
+ \setlength{\itemsep}{0pt}}
+\renewcommand{\@listiii}{%
+ \setlength{\itemsep}{0pt}}
+\renewcommand{\@listiv}{%
+ \setlength{\itemsep}{0pt}}
+\let\@listI\@listi
+\@listi
+
+\setlength{\labelwidth}{\parindent+.7em+\labelsep}
+\setlength{\itemindent}{0pt}
+\setlength{\leftmargin}{\labelwidth}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdpara.sty.in b/macros/latex/contrib/eskdx/source/eskdpara.sty.in
new file mode 100644
index 0000000000..acbd98a895
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdpara.sty.in
@@ -0,0 +1,49 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdpara}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Paragraphs]
+
+\RequirePackage{eskdsect}
+
+\newcommand{\ESKDparagraphAlign}{\ESKDsectAlignLeft}
+\newcommand{\ESKDsubparagraphAlign}{\ESKDsectAlignLeft}
+
+\newcommand{\ESKDparagraphStyle}{\normalfont\normalsize\bfseries}
+\newcommand{\ESKDsubparagraphStyle}{\normalfont\normalsize\bfseries}
+
+\newlength{\ESKDparagraphSkipBefore}
+\newlength{\ESKDparagraphSkipAfter}
+\setlength{\ESKDparagraphSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
+\setlength{\ESKDparagraphSkipAfter}{15mm \@plus 1mm \@minus 2mm}
+\newlength{\ESKDsubparagraphSkipBefore}
+\newlength{\ESKDsubparagraphSkipAfter}
+\setlength{\ESKDsubparagraphSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
+\setlength{\ESKDsubparagraphSkipAfter}{15mm \@plus 1mm \@minus 2mm}
+
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
+ {\ESKDparagraphSkipBefore}%
+ {\ESKDparagraphSkipAfter}%
+ {\ESKDparagraphAlign\ESKDparagraphStyle}}
+\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {\ESKDsubparagraphSkipBefore}%
+ {\ESKDsubparagraphSkipAfter}%
+ {\ESKDsubparagraphAlign\ESKDsubparagraphStyle}}
+
diff --git a/macros/latex/contrib/eskdx/source/eskdplain.sty.in b/macros/latex/contrib/eskdx/source/eskdplain.sty.in
new file mode 100644
index 0000000000..1de82cfb1a
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdplain.sty.in
@@ -0,0 +1,73 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdplain}[m4_dnl
+m4_FILE_ID([[$Date:: 2011-05-09#$]]) Plain Page Style]
+
+\RequirePackage{eskdstamp}
+\RequirePackage{calc}
+
+\def\ESKD@plain@vt{%
+ \setlength{\ESKD@tmpdimc}{%
+ \ESKDframeY+\ESKDframeH-\ESKD@padding@v}}
+
+\def\ESKD@plain@vb{%
+ \setlength{\ESKD@tmpdimc}{%
+ \ESKDframeY+\ESKD@padding@v-15mm}}
+
+\def\ESKD@plain@hl{%
+ \ifESKD@twoside
+ \ifodd\c@page\raggedright\else\raggedleft\fi
+ \else\raggedright\fi}
+
+\def\ESKD@plain@hr{%
+ \ifESKD@twoside
+ \ifodd\c@page\raggedleft\else\raggedright\fi
+ \else\raggedleft\fi}
+
+\def\ESKD@plain@hc{\centering}
+
+\let\ESKD@plain@ha\ESKD@plain@hc
+\let\ESKD@plain@va\ESKD@plain@vb
+
+\DeclareOption{numbertop}{\let\ESKD@plain@va\ESKD@plain@vt}
+\DeclareOption{numberbottom}{\let\ESKD@plain@va\ESKD@plain@vb}
+\DeclareOption{numberleft}{\let\ESKD@plain@ha\ESKD@plain@hl}
+\DeclareOption{numbercenter}{\let\ESKD@plain@ha\ESKD@plain@hc}
+\DeclareOption{numberright}{\let\ESKD@plain@ha\ESKD@plain@hr}
+
+\ProcessOptions\relax
+
+\newcommand{\ESKDdrawPlainPageNumber}{
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKD@padding@h}
+ \setlength{\ESKD@tmpdimb}{\ESKDframeW-2\ESKD@padding@h}
+ \ESKD@plain@va
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimc}){%
+ \parbox[b][15mm][c]{\ESKD@tmpdimb}{%
+ \reset@font\normalsize\normalsfcodes
+ \ESKD@plain@ha\thepage}}}
+
+\ESKDnewStyle{plain}{0mm}
+\ESKDputOnStyle{plain}{pagenumber}{\ESKDdrawPlainPageNumber}
+
+\ESKDdefaultTitleStyle{empty}
+\ESKDdefaultFirstStyle{plain}
+\ESKDdefaultStyle{plain}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdrussian.def.in b/macros/latex/contrib/eskdx/source/eskdrussian.def.in
new file mode 100644
index 0000000000..90cecd2975
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdrussian.def.in
@@ -0,0 +1,177 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\ProvidesFile{eskdrussian.def}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-17#$]]) Language File]
+
+\newcommand{\ESKDcolumnIVname}{%
+ \cyr\CYRL\cyri\cyrt.}
+\newcommand{\ESKDcolumnVname}{%
+ \cyr\CYRM\cyra\cyrs\cyrs\cyra}
+\newcommand{\ESKDcolumnVIname}{%
+ \cyr\CYRM\cyra\cyrs\cyrsh\cyrt\cyra\cyrb}
+\newcommand{\ESKDcolumnVIIname}{%
+ \cyr\CYRL\cyri\cyrs\cyrt}
+\newcommand{\ESKDcolumnVIItwosideName}{%
+ \cyr\CYRS\cyrt\cyrr.}
+\newcommand{\ESKDcolumnVIIIname}{%
+ \cyr\CYRL\cyri\cyrs\cyrt\cyro\cyrv}
+\newcommand{\ESKDcolumnVIIItwosideName}{%
+ \cyr\CYRS\cyrt\cyrr\cyra\cyrn\cyri\cyrc}
+\newcommand{\ESKDcolumnXfIname}{%
+ \cyr\CYRR\cyra\cyrz\cyrr\cyra\cyrb.}
+\newcommand{\ESKDcolumnXfIIname}{%
+ \cyr\CYRP\cyrr\cyro\cyrv.}
+\newcommand{\ESKDcolumnXfIIIname}{%
+ \cyr\CYRT. \cyrk\cyro\cyrn\cyrt\cyrr.}
+\newcommand{\ESKDcolumnXfIVname}{}
+\newcommand{\ESKDcolumnXfVname}{%
+ \cyr\CYRN. \cyrk\cyro\cyrn\cyrt\cyrr.}
+\newcommand{\ESKDcolumnXfVIname}{%
+ \cyr\CYRU\cyrt\cyrv.}
+\newcommand{\ESKDcolumnXIVname}{%
+ \cyr\CYRI\cyrz\cyrm.}
+\newcommand{\ESKDcolumnXVname}{%
+ \cyr\CYRL\cyri\cyrs\cyrt}
+\newcommand{\ESKDcolumnXVIname}{%
+ \No\ \cyr\cyrd\cyro\cyrk\cyru\cyrm.}
+\newcommand{\ESKDcolumnXVIIname}{%
+ \cyr\CYRP\cyro\cyrd\cyrp.}
+\newcommand{\ESKDcolumnXVIIIname}{%
+ \cyr\CYRD\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXIXname}{%
+ \cyr\CYRI\cyrn\cyrv. \No\ \cyrp\cyro\cyrd\cyrl.}
+\newcommand{\ESKDcolumnXXname}{%
+ \cyr\CYRP\cyro\cyrd\cyrp. \cyri\ \cyrd\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXXIname}{%
+ \cyr\CYRV\cyrz\cyra\cyrm. \cyri\cyrn\cyrv. \No}
+\newcommand{\ESKDcolumnXXIIname}{%
+ \cyr\CYRI\cyrn\cyrv. \No\ \cyrd\cyru\cyrb\cyrl.}
+\newcommand{\ESKDcolumnXXIIIname}{%
+ \cyr\CYRP\cyro\cyrd\cyrp. \cyri\ \cyrd\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXXIVname}{%
+ \cyr\CYRS\cyrp\cyrr\cyra\cyrv. \No}
+\newcommand{\ESKDcolumnXXVname}{%
+ \cyr\CYRP\cyre\cyrr\cyrv. \cyrp\cyrr\cyri\cyrm\cyre\cyrn.}
+\newcommand{\ESKDcolumnXXXIname}{%
+ \cyr\CYRK\cyro\cyrp\cyri\cyrr\cyro\cyrv\cyra\cyrl}
+\@namedef{ESKDa0FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}0}
+\@namedef{ESKDa1FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}1}
+\@namedef{ESKDa2FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}2}
+\@namedef{ESKDa3FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}3}
+\@namedef{ESKDa4FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}4}
+\@namedef{ESKDemptyFormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \ \ \ }
+\newcommand{\ESKDcolumnXXXIIIname}{%
+ \cyr\CYRZ\cyro\cyrn\cyra}
+
+\newcommand{\ESKDagreedName}{%
+ \cyr\CYRS\cyro\cyrg\cyrl\cyra\cyrs\cyro\cyrv\cyra\cyrn\cyro}
+\newcommand{\ESKDapprovingName}{%
+ \cyr\CYRU\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyra\cyryu}
+\newcommand{\ESKDapprovedName}{%
+ \cyr\CYRU\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyre\cyrn}
+\newcommand{\ESKDapprovingSheetName}{%
+ \cyr\CYRL\cyri\cyrs\cyrt\ %
+ \cyru\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyre\cyrn\cyri\cyrya}
+
+\newlength{\ESKDexplanWidth}
+\setlength{\ESKDexplanWidth}{1.8em}
+
+\addto\captionsrussian{%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk}}%
+}
+
+\newcommand{\ESKDspecColumnIname}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt}
+\newcommand{\ESKDspecColumnIIname}{%
+ \cyr\CYRZ\cyro\cyrn\cyra}
+\newcommand{\ESKDspecColumnIIIname}{%
+ \cyr\CYRP\cyro\cyrz.}
+\newcommand{\ESKDspecColumnIVname}{%
+ \cyr\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyre}
+\newcommand{\ESKDspecColumnVname}{%
+ \cyr\CYRN\cyra\cyri\cyrm\cyre\cyrn\cyro\cyrv\cyra\cyrn\cyri\cyre}
+\newcommand{\ESKDspecColumnVIname}{%
+ \cyr\CYRK\cyro\cyrl.}
+\newcommand{\ESKDspecColumnVIIname}{%
+ \cyr\CYRP\cyrr\cyri\cyrm\cyre\cyrch\cyra\cyrn\cyri\cyre}
+
+\newcommand{\ESKDspecIIcolumnIname}{\ESKDspecColumnIname}
+\newcommand{\ESKDspecIIcolumnIIname}{\ESKDspecColumnIIname}
+\newcommand{\ESKDspecIIcolumnIIIname}{\ESKDspecColumnIIIname}
+\newcommand{\ESKDspecIIcolumnIVname}{\ESKDspecColumnIVname}
+\newcommand{\ESKDspecIIcolumnVname}{\ESKDspecColumnVname}
+\newcommand{\ESKDspecIIcolumnVIname}{\ESKDspecColumnVIname}
+\newcommand{\ESKDspecIIcolumnVIIname}{%
+ \cyr\CYRM\cyra\cyrs\cyrs\cyra}
+\newcommand{\ESKDspecIIcolumnVIIIname}{%
+ \cyr\CYRM\cyra\cyrt\cyre\cyrr\cyri\cyra\cyrl}
+\newcommand{\ESKDspecIIcolumnIXname}{\ESKDspecColumnVIIname}
+
+\newcommand{\ESKDchangeSheetName}{%
+ \cyr\CYRL\cyri\cyrs\cyrt\ %
+ \cyrr\cyre\cyrg\cyri\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyri\ %
+ \cyri\cyrz\cyrm\cyre\cyrn\cyre\cyrn\cyri\cyrishrt}
+\newcommand{\ESKDchngColumnsIIhName}{%
+ \cyr\CYRN\cyro\cyrm\cyre\cyrr\cyra\ \cyrl\cyri\cyrs\cyrt\cyro\cyrv\ %
+ (\cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc)}
+\newcommand{\ESKDchngColumnIIname}{%
+ \cyr\cyri\cyrz\-\cyrm\cyre\-\cyrn\cyre\cyrn\-\cyrn\cyrery\cyrh}
+\newcommand{\ESKDchngColumnIIIname}{%
+ \cyr\cyrz\cyra\-\cyrm\cyre\-\cyrn\cyre\cyrn\-\cyrn\cyrery\cyrh}
+\newcommand{\ESKDchngColumnIVname}{%
+ \cyr\cyrn\cyro\-\cyrv\cyrery\cyrh}
+\newcommand{\ESKDchngColumnVname}{%
+ \cyr\cyra\cyrn\-\cyrn\cyru\-\cyrl\cyri\-\cyrr\cyro\-\cyrv\cyra\cyrn\-%
+ \cyrn\cyrery\cyrh}
+\newcommand{\ESKDchngColumnVIname}{%
+ \cyr\CYRV\cyrs\cyre\cyrg\cyro\ \cyrl\cyri\cyrs\cyrt\cyro\cyrv\ %
+ (\cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc) \cyrv\ \cyrd\cyro\cyrk\cyru\cyrm.}
+\newcommand{\ESKDchngColumnVIIIname}{%
+ \cyr\CYRV\cyrh\cyro\cyrd\cyrya\cyrshch\cyri\cyrishrt\ \No\ %
+ \cyrs\cyro\cyrp\cyrr\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn
+ \cyrn\cyro\cyrg\cyro\ \cyrd\cyro\cyrk\cyru\cyrm. \cyri\ %
+ \cyrd\cyra\cyrt\cyra}
+
+\def\@Asbuk#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or\CYRZH\or
+ \CYRI\or\CYRK\or\CYRL\or\CYRM\or\CYRN\or
+ \CYRP\or\CYRR\or\CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or
+ \CYRC\or\CYRSH\or\CYRSHCH\or\CYREREV\or\CYRYU\or
+ \CYRYA\else{\@tempcnta \number #1\relax
+ \advance\@tempcnta -25\relax
+ \protect\number\@tempcnta}
+ \fi}
+\def\@asbuk#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or\cyrzh\or
+ \cyri\or\cyrk\or\cyrl\or\cyrm\or\cyrn\or
+ \cyrp\or\cyrr\or\cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or
+ \cyrc\or\cyrsh\or\cyrshch\or\cyrerev\or\cyryu\or
+ \cyrya\else{\@tempcnta \number #1\relax
+ \advance\@tempcnta -25\relax
+ \protect\number\@tempcnta}
+ \fi}
+
+m4_dnl vim:ft=tex:ai:sw=2
diff --git a/macros/latex/contrib/eskdx/source/eskdsect.sty.in b/macros/latex/contrib/eskdx/source/eskdsect.sty.in
new file mode 100644
index 0000000000..42ffb60be5
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdsect.sty.in
@@ -0,0 +1,201 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdsect}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Sectioning]
+
+\newcommand{\ESKD@point@style}{single}
+
+\DeclareOption{pointsingle}{\renewcommand{\ESKD@point@style}{single}}
+\DeclareOption{pointsection}{\renewcommand{\ESKD@point@style}{section}}
+\DeclareOption{pointsubsection}{\renewcommand{\ESKD@point@style}{subsection}}
+
+\ProcessOptions\relax
+
+\def\@startsection#1#2#3#4#5#6{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \divide \@tempskipa by 2
+ \vskip -\@tempskipa
+ \vskip\z@skip
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+m4_dnl выравнивание заголовков рубрикации
+\newcommand{\ESKDsectAlignLeft}{%
+ \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip%
+ \leftskip\z@skip}
+\newcommand{\ESKDsectAlignRight}{%
+ \let\\\@centercr\rightskip\z@skip\leftskip\@flushglue
+ \parindent\z@\parfillskip\z@skip}
+\newcommand{\ESKDsectAlignCenter}{%
+ \let\\\@centercr
+ \rightskip\@flushglue\leftskip\@flushglue
+ \parindent\z@\parfillskip\z@skip}
+
+\newcommand{\ESKDsectionAlign}{\ESKDsectAlignLeft}
+\newcommand{\ESKDsubsectionAlign}{\ESKDsectAlignLeft}
+\newcommand{\ESKDsubsubsectionAlign}{\ESKDsectAlignLeft}
+
+m4_dnl короткий способ установки выравнивания заголовков
+\newcommand{\ESKDsectAlign}[2]{%
+ \expandafter\renewcommand\csname\string ESKD#1Align\endcsname{%
+ \@nameuse{ESKDsectAlign#2}}}
+
+m4_dnl стиль заголовков рубрикации
+\newcommand{\ESKDsectionStyle}{\normalfont\Large\bfseries\MakeUppercase}
+\newcommand{\ESKDsubsectionStyle}{\normalfont\large\bfseries}
+\newcommand{\ESKDsubsubsectionStyle}{\normalfont\normalsize\bfseries}
+
+m4_dnl короткий способ установки стиля заголовков
+\newcommand{\ESKDsectStyle}[2]{%
+ \expandafter\renewcommand\csname\string ESKD#1Style\endcsname{#2}}
+
+m4_dnl вертикальные отступы заголовков рубрикации
+\newlength{\ESKDsectionSkipBefore}
+\newlength{\ESKDsectionSkipAfter}
+\setlength{\ESKDsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
+\setlength{\ESKDsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
+\newlength{\ESKDsubsectionSkipBefore}
+\newlength{\ESKDsubsectionSkipAfter}
+\setlength{\ESKDsubsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
+\setlength{\ESKDsubsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
+\newlength{\ESKDsubsubsectionSkipBefore}
+\newlength{\ESKDsubsubsectionSkipAfter}
+\setlength{\ESKDsubsubsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
+\setlength{\ESKDsubsubsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
+
+m4_dnl которкий способ установки отступов
+\providecommand{\plus}{\@plus}
+\providecommand{\minus}{\@minus}
+
+\newcommand{\ESKDsectSkip}[3]{%
+ \expandafter\setlength\csname\string ESKD#1SkipBefore\endcsname{#2}%
+ \expandafter\setlength\csname\string ESKD#1SkipAfter\endcsname{#3}}
+
+\renewcommand\section{\@startsection {section}{1}{\parindent}%
+ {\ESKDsectionSkipBefore}%
+ {\ESKDsectionSkipAfter}%
+ {\ESKDsectionAlign\ESKDsectionStyle}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\parindent}%
+ {\ESKDsubsectionSkipBefore}%
+ {\ESKDsubsectionSkipAfter}%
+ {\ESKDsubsectionAlign\ESKDsubsectionStyle}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\parindent}%
+ {\ESKDsubsubsectionSkipBefore}%
+ {\ESKDsubsubsectionSkipAfter}%
+ {\ESKDsubsubsectionAlign\ESKDsubsubsectionStyle}}
+
+\renewcommand{\thesection}{\arabic{section}}
+\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}
+\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}
+\newif\ifESKD@point@style@single
+\ESKD@point@style@singlefalse
+
+\newcommand{\ESKD@point@style@single}{
+ \newcounter{point}
+ \renewcommand{\thepoint}{\arabic{point}}
+ \newcommand{\theHpoint}{\arabic{point}}
+ \ESKD@point@style@singletrue}
+
+\newcommand{\ESKD@point@style@section}{
+ \newcounter{point}[section]
+ \renewcommand{\thepoint}{\thesection.\arabic{point}}
+ \newcommand{\theHpoint}{\theHsection.\arabic{point}}}
+
+\newcommand{\ESKD@point@style@subsection}{
+ \newcounter{point}[subsection]
+ \renewcommand{\thepoint}{\thesubsection.\arabic{point}}
+ \newcommand{\theHpoint}{\theHsubsection.\arabic{point}}}
+
+\@nameuse{ESKD@point@style@\ESKD@point@style}
+\newcounter{subpoint}[point]
+\newcounter{subsubpoint}[subpoint]
+\renewcommand{\thesubpoint}{\thepoint.\arabic{subpoint}}
+\newcommand{\theHsubpoint}{\theHpoint.\arabic{subpoint}}
+\renewcommand{\thesubsubpoint}{\thesubpoint.\arabic{subsubpoint}}
+\newcommand{\theHsubsubpoint}{\theHsubpoint.\arabic{subsubpoint}}
+
+\newcommand{\point}{%
+ \par\refstepcounter{point}\thepoint\quad}
+\newcommand{\subpoint}{%
+ \par\refstepcounter{subpoint}\thesubpoint\quad}
+\newcommand{\subsubpoint}{%
+ \par\refstepcounter{subsubpoint}\thesubsubpoint\quad}
+
+m4_dnl приложения
+\newcounter{appendix}
+\renewcommand{\theappendix}{\Asbuk{appendix}}
+\newlength{\ESKDappendixSkip}
+\setlength{\ESKDappendixSkip}{15mm \@plus 3mm \@minus 10mm}
+
+\newcommand{\ESKDappendix}[2]{%
+ \ESKDclearDoublePage%
+ \refstepcounter{appendix}%
+ \setcounter{point}{0}%
+ \ifESKD@point@style@single%
+ \renewcommand{\thepoint}{\theappendix.\arabic{point}}%
+ \fi
+ \setcounter{section}{0}%
+ \renewcommand{\thesection}{\theappendix.\arabic{section}}%
+ \setcounter{equation}{0}%
+ \renewcommand{\theequation}{\theappendix.\arabic{equation}}%
+ \setcounter{figure}{0}%
+ \renewcommand{\thefigure}{\theappendix.\arabic{figure}}%
+ \setcounter{table}{0}%
+ \renewcommand{\thetable}{\theappendix.\arabic{table}}%
+ \addcontentsline{toc}{section}{\appendixname\ \theappendix\ #2}%
+ \begin{list}{}{%
+ \setlength{\itemindent}{0mm}%
+ \setlength{\labelwidth}{0mm}%
+ \setlength{\labelsep}{0mm}%
+ \setlength{\leftmargin}{0mm}%
+ \setlength{\topsep}{0mm}%
+ \setlength{\parskip}{0mm}%
+ \setlength{\partopsep}{0mm}%
+ \setlength{\itemsep}{0mm}%
+ \setlength{\parsep}{0mm}}
+ \item\centering\appendixname\ \theappendix
+ \ifx#1\@empty\else\\(#1)\fi\\
+ \item\centering\bf #2
+ \end{list}%
+ \par\nobreak\addvspace{\ESKDappendixSkip}}
+
+m4_dnl содержание
+\renewcommand\tableofcontents{%
+ \begingroup
+ \ESKDsectAlign{section}{Center}
+ \section*{\contentsname
+ \@mkboth{%
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
+ \endgroup
+ \@starttoc{toc}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdspec.sty.in b/macros/latex/contrib/eskdx/source/eskdspec.sty.in
new file mode 100644
index 0000000000..d436e2ff5f
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdspec.sty.in
@@ -0,0 +1,93 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdspec}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Specification GOST 2.106.95]
+
+\RequirePackage{eskdlang}
+\RequirePackage{eskdstamp}
+\RequirePackage{rotating}
+\RequirePackage{array}
+\RequirePackage{longtable}
+
+\newcommand{\ESKDdrawSpecification}{
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){%
+ \begin{picture}(0,0)
+ \ESKD@tmpdimb=\ESKDframeH
+ \ESKD@tmpdima=\ESKD@style@sh@formII
+ \ESKD@tmpdimc=8mm
+ \advance\ESKD@tmpdimb -\ESKD@tmpdima
+ \advance\ESKD@tmpdimb -15mm
+ \divide\ESKD@tmpdimb by \ESKD@tmpdimc
+ \ESKD@tmpcnta=\ESKD@tmpdimb
+ \ESKD@tmpdimb=\ESKD@tmpdimc
+ \multiply\ESKD@tmpdimb by \ESKD@tmpcnta
+ \advance\ESKD@tmpdimb 15mm
+ \ESKD@tmpdima=\ESKDframeH
+ \advance\ESKD@tmpdima -\ESKD@tmpdimb
+ \linethickness{\ESKDlineThick}
+ \put(6,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(12,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(20,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(90,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(153,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(163,\ESKDltu{\ESKD@tmpdima}){\line(0,1){\ESKDltu{\ESKD@tmpdimb}}}
+ \ESKD@tmpdimb=\ESKDframeH
+ \advance\ESKD@tmpdimb -15mm
+ \put(0,\ESKDltu{\ESKD@tmpdimb}){\line(1,0){\ESKDltu{\ESKDframeW}}}
+ \linethickness{\ESKDlineThin}
+ \multiput(0,\ESKDltu{\ESKD@tmpdima})(0, 8){\the\ESKD@tmpcnta}{%
+ \line(1,0){\ESKDltu{\ESKDframeW}}}
+ \end{picture}}}
+
+m4_dnl спецификация
+\newenvironment{ESKDspecification}{%
+\ESKDputOnStyle{formII}{specification}{\ESKDdrawSpecification}
+\ESKDputOnStyle{formIIab}{specification}{\ESKDdrawSpecification}
+\begin{ESKDzeroPadding}%
+\setlength{\tabcolsep}{0.5mm}%
+\setlength{\LTpre}{0mm}%
+\setlength{\LTpost}{0mm}%
+\setlength{\LTleft}{0mm}%
+\setlength{\LTright}{\fill}%
+\newcolumntype{s}{>{\ESKDfontTabBody}c}%
+\newcolumntype{n}{>{\parbox[c][8mm][c]{1mm}{%
+ \rule{0mm}{0mm}}\ESKDfontTabBody}l}%
+\noindent%
+\begin{longtable}{ssssnss}
+\parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecColumnIname\end{sideways}}&
+\parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecColumnIIname\end{sideways}}&
+\parbox[c][15mm][c]{7mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecColumnIIIname\end{sideways}}&
+\parbox[c][15mm][c]{69mm}{\centering\ESKDfontTabHead%
+\ESKDspecColumnIVname}&
+\parbox[c][15mm][c]{61mm}{\centering\ESKDfontTabHead%
+\ESKDspecColumnVname}&
+\parbox[c][15mm][c]{9mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecColumnVIname\end{sideways}}&
+\parbox[c][15mm][c]{21mm}{\centering\ESKDfontTabHead%
+\ESKDspecColumnVIIname}\endhead}{%
+\end{longtable}%
+\end{ESKDzeroPadding}%
+\ESKDremoveFromStyle{formII}{spec}%
+\ESKDremoveFromStyle{formIIab}{spec}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdspecii.sty.in b/macros/latex/contrib/eskdx/source/eskdspecii.sty.in
new file mode 100644
index 0000000000..2dd2b7c963
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdspecii.sty.in
@@ -0,0 +1,179 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdspecii}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Specification GOST 2.106.95 Form 2]
+
+\RequirePackage{eskdlang}
+\RequirePackage{eskdstamp}
+\RequirePackage{rotating}
+\RequirePackage{chngpage}
+\RequirePackage{lscape}
+\RequirePackage{array}
+\RequirePackage{longtable}
+
+\newcommand{\ESKDdrawSpecificationII}{
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){%
+ \begin{picture}(0,0)
+ \ESKD@tmpdimb=\ESKDframeW
+ \ESKD@tmpdimc=8mm
+ \advance\ESKD@tmpdimb -70mm
+ \divide\ESKD@tmpdimb by \ESKD@tmpdimc
+ \ESKD@tmpcnta=\ESKD@tmpdimb
+ \ESKD@tmpdimb=\ESKD@tmpdimc
+ \multiply\ESKD@tmpdimb by \ESKD@tmpcnta
+ \advance\ESKD@tmpdimb 15mm
+ \linethickness{\ESKDlineThick}
+ \put(0,6){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,12){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,20){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,90){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,162){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,172){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,182){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(0,257){\line(1,0){\ESKDltu{\ESKD@tmpdimb}}}
+ \put(15,0){\line(0,1){\ESKDltu{\ESKDframeH}}}
+ \linethickness{\ESKDlineThin}
+ \multiput(23,0)(8, 0){\the\ESKD@tmpcnta}{%
+ \line(0,1){\ESKDltu{\ESKDframeH}}}
+ \end{picture}}}
+
+\newcommand{\ESKDdrawSpecIIstampII}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW}
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-185mm}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\usebox{\ESKD@stamp@ii@box}\end{sideways}}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\ESKD@stamp@ii@var\end{sideways}}}
+
+\newcommand{\ESKDdrawSpecIIstampIIa}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW}
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-185mm}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\usebox{\ESKD@stamp@ii@a@box}\end{sideways}}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\ESKD@stamp@ii@a@var\end{sideways}}}
+
+\ifESKD@enable@columns@xxvii
+\newcommand{\ESKDdrawSpecIIcolumnsXXVII}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-48mm}
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-120mm}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\usebox{\ESKD@columns@xxvii@ii@box}\end{sideways}}%
+ \addtolength{\ESKD@tmpdima}{8mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}\usebox{\ESKD@column@xxx@box}\end{sideways}}}
+\fi
+
+\ifESKD@enable@column@xxxi
+\newcommand{\ESKDdrawSpecIIcolumnXXXI}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW+1.2mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-120mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}%
+ \makebox[70mm][r]{\ESKDfontIII\ESKDcolumnXXXIname\hspace{4em}}%
+ \end{sideways}}}
+\fi
+
+\ifESKD@enable@column@xxxii
+\newcommand{\ESKDdrawSpecIIcolumnXXXII}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW+1.2mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-50mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{sideways}%
+ \makebox[50mm][r]{\ESKDfontIII\ESKDtheColumnXXXII}%
+ \end{sideways}}}
+\fi
+
+\ESKDnewStyle{specII}{0mm}
+\ESKDputOnStyle{specII}{frame}{\ESKDdrawFrame}
+\ESKDputOnStyle{specII}{stamp}{\ESKDdrawSpecIIstampII}
+\ESKDputOnStyle{specII}{specification}{\ESKDdrawSpecificationII}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{specII}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+\ifESKD@enable@columns@xxiv
+ \ESKDputOnStyle{specII}{columnsxxiv}{\ESKDdrawColumnsXXIV}
+\fi
+\ifESKD@enable@columns@xxvii
+ \ESKDputOnStyle{specII}{columnsxxvii}{\ESKDdrawSpecIIcolumnsXXVII}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{specII}{columnxxxi}{\ESKDdrawSpecIIcolumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ \ESKDputOnStyle{specII}{columnxxxii}{\ESKDdrawSpecIIcolumnXXXII}
+\fi
+
+\ESKDnewStyle{specIIa}{0mm}
+\ESKDputOnStyle{specIIa}{frame}{\ESKDdrawFrame}
+\ESKDputOnStyle{specIIa}{stamp}{\ESKDdrawSpecIIstampIIa}
+\ESKDputOnStyle{specIIa}{specification}{\ESKDdrawSpecificationII}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{specIIa}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{specIIa}{columnxxxi}{\ESKDdrawSpecIIcolumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ \ESKDputOnStyle{specIIa}{columnxxxii}{\ESKDdrawSpecIIcolumnXXXII}
+\fi
+
+\ESKDdefaultFirstStyle{specII}
+\ESKDdefaultStyle{specIIa}
+
+m4_dnl спецификация
+\newenvironment{ESKDspecificationII}{%
+\begin{ESKDzeroPadding}%
+\changetext{}{-55mm}{}{}{}%
+\begin{landscape}
+\setlength{\tabcolsep}{0.5mm}%
+\setlength{\LTpre}{0mm}%
+\setlength{\LTpost}{0mm}%
+\setlength{\LTleft}{0mm}%
+\setlength{\LTright}{\fill}%
+\newcolumntype{s}{>{\ESKDfontTabBody}c}%
+\newcolumntype{n}{>{\parbox[c][8mm][c]{1mm}{%
+ \rule{0mm}{0mm}}\ESKDfontTabBody}l}%
+\noindent%
+\begin{longtable}{ssssnssss}
+\parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecIIcolumnIname\end{sideways}}&
+\parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecIIcolumnIIname\end{sideways}}&
+\parbox[c][15mm][c]{7mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecIIcolumnIIIname\end{sideways}}&
+\parbox[c][15mm][c]{69mm}{\centering\ESKDfontTabHead%
+\ESKDspecIIcolumnIVname}&
+\parbox[c][15mm][c]{71mm}{\centering\ESKDfontTabHead%
+\ESKDspecIIcolumnVname}&
+\parbox[c][15mm][c]{9mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecIIcolumnVIname\end{sideways}}&
+\parbox[c][15mm][c]{9mm}{\centering\begin{sideways}\ESKDfontTabHead%
+\ESKDspecIIcolumnVIIname\end{sideways}}&
+\parbox[c][15mm][c]{74mm}{\centering\ESKDfontTabHead%
+\ESKDspecIIcolumnVIIIname}&
+\parbox[c][15mm][c]{29mm}{\centering\ESKDfontTabHead%
+\ESKDspecIIcolumnIXname}\endhead}{%
+\end{longtable}%
+\end{landscape}%
+\changetext{}{55mm}{}{}{}%
+\end{ESKDzeroPadding}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdstamp.sty.in b/macros/latex/contrib/eskdx/source/eskdstamp.sty.in
new file mode 100644
index 0000000000..66faf87bb5
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdstamp.sty.in
@@ -0,0 +1,1199 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdstamp}[m4_dnl
+m4_FILE_ID([[$Date:: 2011-05-06#$]]) Stamp GOST 2.104-68]
+
+\RequirePackage{calc}
+
+m4_dnl формат бумаги:
+\newcommand{\ESKD@paper}{a4}
+
+m4_dnl ориентация страницы
+\newif\ifESKD@landscape
+\ESKD@landscapefalse
+\newif\ifESKD@given@landscape
+\ESKD@given@landscapefalse
+
+m4_dnl стиль по умолчанию для титульного листа
+\newcommand{\ESKD@default@style@title}{title}
+m4_dnl стиль по умолчанию для певрой станицы (не считая титульной)
+\newcommand{\ESKD@default@style@first}{formII}
+m4_dnl стиль по умолчанию для остальных страниц
+\newcommand{\ESKD@default@style@other}{formIIab}
+
+m4_dnl поля
+\newlength{\ESKD@margin@si}
+\newlength{\ESKD@margin@so}
+\newlength{\ESKD@margin@t}
+\newlength{\ESKD@margin@b}
+\setlength{\ESKD@margin@si}{20mm}
+\setlength{\ESKD@margin@so}{5mm}
+\setlength{\ESKD@margin@t}{5mm}
+\setlength{\ESKD@margin@b}{5mm}
+
+m4_dnl толщина линий
+\newlength{\ESKDlineThick}
+\newlength{\ESKDlineThin}
+\setlength{\ESKDlineThick}{.4mm}
+\setlength{\ESKDlineThin}{.2mm}
+
+m4_dnl расстояние между рамкой и текстом
+\newlength{\ESKD@padding@h}
+\newlength{\ESKD@padding@v}
+\setlength{\ESKD@padding@h}{3mm}
+\setlength{\ESKD@padding@v}{10mm}
+
+\newif\ifESKD@ignstamp
+\ESKD@ignstampfalse
+
+\newif\ifESKD@enable@column@vii
+\ESKD@enable@column@viitrue
+\newif\ifESKD@given@column@vii
+\ESKD@given@column@viifalse
+
+\newif\ifESKD@enable@column@viii
+\ESKD@enable@column@viiitrue
+
+\newif\ifESKD@enable@columns@xix
+\ESKD@enable@columns@xixtrue
+
+\newif\ifESKD@enable@columns@xxiv
+\ESKD@enable@columns@xxivfalse
+
+\newif\ifESKD@enable@column@xxvi
+\ESKD@enable@column@xxvifalse
+
+\newif\ifESKD@enable@columns@xxvii
+\ESKD@enable@columns@xxviifalse
+
+\newif\ifESKD@enable@column@xxxi
+\ESKD@enable@column@xxxitrue
+
+\newif\ifESKD@enable@column@xxxii
+\ESKD@enable@column@xxxiitrue
+
+\newif\ifESKD@enable@column@xxxiii
+\ESKD@enable@column@xxxiiifalse
+
+\newif\ifESKD@enable@column@xxxiv
+\ESKD@enable@column@xxxivfalse
+
+\newif\ifESKD@twoside
+\ESKD@twosidefalse
+
+\newif\ifESKD@zonelabels
+\ESKD@zonelabelsfalse
+
+\RequirePackage{keyval}
+
+m4_dnl определение опций
+\DeclareOption{a0paper}{\renewcommand{\ESKD@paper}{a0}}
+\DeclareOption{a1paper}{\renewcommand{\ESKD@paper}{a1}}
+\DeclareOption{a2paper}{\renewcommand{\ESKD@paper}{a2}}
+\DeclareOption{a3paper}{\renewcommand{\ESKD@paper}{a3}}
+\DeclareOption{a4paper}{\renewcommand{\ESKD@paper}{a4}}
+\DeclareOption{landscape}{%
+ \ESKD@landscapetrue%
+ \ESKD@given@landscapetrue}
+\DeclareOption{portrait}{%
+ \ESKD@landscapefalse%
+ \ESKD@given@landscapetrue}
+\define@key{eskd}{reduceheight}{\addtolength{\ESKD@margin@b}{#1}}
+\DeclareOption{formI}{%
+ \renewcommand{\ESKD@default@style@first}{formI}
+ \renewcommand{\ESKD@default@style@other}{formIIab}
+ \renewcommand{\ESKD@default@style@title}{title}}
+\DeclareOption{formII}{%
+ \renewcommand{\ESKD@default@style@first}{formII}
+ \renewcommand{\ESKD@default@style@other}{formIIab}
+ \renewcommand{\ESKD@default@style@title}{title}}
+\DeclareOption{emptystyle}{%
+ \renewcommand{\ESKD@default@style@first}{empty}
+ \renewcommand{\ESKD@default@style@other}{empty}
+ \renewcommand{\ESKD@default@style@title}{empty}}
+\DeclareOption{stitching}{\setlength{\ESKD@margin@si}{20mm}}
+\DeclareOption{nostitching}{%
+ \setlength{\ESKD@margin@si}{5mm}%
+ \ESKD@enable@columns@xixfalse%
+ \ESKD@enable@columns@xxivfalse}
+\DeclareOption{ignorestamp}{\ESKD@ignstamptrue}
+\DeclareOption{noignorestamp}{\ESKD@ignstampfalse}
+\DeclareOption{columnvii}{%
+ \ESKD@enable@column@viitrue%
+ \ESKD@given@column@viitrue}
+\DeclareOption{nocolumnvii}{
+ \ESKD@enable@column@viifalse%
+ \ESKD@given@column@viitrue}
+\DeclareOption{columnviii}{\ESKD@enable@column@viiitrue}
+\DeclareOption{nocolumnviii}{\ESKD@enable@column@viiifalse}
+\DeclareOption{columnsxix}{\ESKD@enable@columns@xixtrue}
+\DeclareOption{nocolumnsxix}{\ESKD@enable@columns@xixfalse}
+\DeclareOption{columnsxxiv}{\ESKD@enable@columns@xxivtrue}
+\DeclareOption{nocolumnsxxiv}{\ESKD@enable@columns@xxivfalse}
+\DeclareOption{columnxxvi}{\ESKD@enable@column@xxvitrue}
+\DeclareOption{nocolumnxxvi}{\ESKD@enable@column@xxvifalse}
+\DeclareOption{columnsxxvii}{\ESKD@enable@columns@xxviitrue}
+\DeclareOption{nocolumnsxxvii}{\ESKD@enable@columns@xxviifalse}
+\DeclareOption{columnxxxi}{\ESKD@enable@column@xxxitrue}
+\DeclareOption{nocolumnxxxi}{\ESKD@enable@column@xxxifalse}
+\DeclareOption{columnxxxii}{\ESKD@enable@column@xxxiitrue}
+\DeclareOption{nocolumnxxxii}{\ESKD@enable@column@xxxiifalse}
+\DeclareOption{columnxxxiii}{\ESKD@enable@column@xxxiiitrue}
+\DeclareOption{nocolumnxxxiii}{\ESKD@enable@column@xxxiiifalse}
+\DeclareOption{columnxxxiv}{\ESKD@enable@column@xxxivtrue}
+\DeclareOption{nocolumnxxxiv}{\ESKD@enable@column@xxxivfalse}
+\DeclareOption{simple}{%
+ \ESKD@enable@columns@xixfalse%
+ \ESKD@enable@column@xxxifalse%
+ \ESKD@enable@column@xxxiifalse}
+\DeclareOption{twoside}{\ESKD@twosidetrue}
+\DeclareOption{oneside}{\ESKD@twosidefalse}
+\DeclareOption{zonelabels}{\ESKD@zonelabelstrue}
+\DeclareOption{nozonelabels}{\ESKD@zonelabelsfalse}
+\define@key{eskd}{linethick}{\setlength{\ESKDlineThick}{#1}}
+\define@key{eskd}{linethin}{\setlength{\ESKDlineThin}{#1}}
+\define@key{eskd}{vpadding}{\setlength{\ESKD@padding@v}{#1}}
+\define@key{eskd}{hpadding}{\setlength{\ESKD@padding@h}{#1}}
+
+\DeclareOption*{\edef\@tempa{\noexpand\setkeys{eskd}{\CurrentOption}}\@tempa}
+
+\ProcessOptions\relax
+
+m4_dnl некоторые константы для сравнения
+\newcommand{\ESKD@cmp@empty}{}
+\newcommand{\ESKD@cmp@aIVpaper}{a4}
+\newcommand{\ESKD@cmp@landscape}{landscape}
+
+m4_dnl определение ориентации страницы
+\ifESKD@given@landscape\else
+ \ifx\ESKD@paper\ESKD@cmp@aIVpaper%
+ \ESKD@landscapefalse
+ \else
+ \ESKD@landscapetrue
+ \fi
+\fi
+
+m4_dnl настройка геометрии страницы
+\RequirePackage[\ESKD@paper paper,%
+\ifESKD@landscape landscape\else portrait\fi,%
+tmargin=\ESKD@margin@t+\ESKD@padding@v,%
+bmargin=\ESKD@margin@b+\ESKD@padding@v,%
+inner=\ESKD@margin@si+\ESKD@padding@h,%
+outer=\ESKD@margin@so+\ESKD@padding@h,%
+headheight=0mm,headsep=0mm,footskip=0mm]{geometry}
+
+\RequirePackage{lastpage}
+
+\def\ESKD@secondof#1#2#3endof{#2}
+\def\ESKD@p@genum#1{%
+ \ifx#1\relax 0\else
+ \expandafter\ESKD@secondof#1endof
+ \fi}
+\def\ESKD@pagenum#1{\expandafter\ESKD@p@genum\csname r@#1\endcsname}
+
+m4_dnl нужна ли графа 7
+\ifESKD@given@column@vii\else
+ \AtBeginDocument{%
+ \ifnum \ESKD@pagenum{LastPage} = 1
+ \ESKD@enable@column@viifalse%
+ \fi}
+\fi
+
+m4_dnl определение ориентации графы 26
+\newif\ifESKD@column@xxvi@portrait
+\ESKD@column@xxvi@portraittrue
+\ifESKD@landscape\ESKD@column@xxvi@portraitfalse\fi
+\ifx\ESKD@paper\ESKD@cmp@aIVpaper\ESKD@column@xxvi@portraitfalse\fi
+
+m4_dnl временные длины
+\newlength{\ESKD@tmpdima}
+\newlength{\ESKD@tmpdimb}
+\newlength{\ESKD@tmpdimc}
+
+m4_dnl временные счетчики
+\newcount\ESKD@tmpcnta
+\newcount\ESKD@tmpcntb
+
+m4_dnl параметры отметок зон
+\newcount\ESKD@zonelabel@hc
+\newcount\ESKD@zonelabel@vc
+\newlength{\ESKD@zonelabel@hs}
+\newlength{\ESKD@zonelabel@vs}
+\newcount\ESKD@zonelabel@cnt
+\ifESKD@zonelabels
+ \@namedef{ESKD@zonelabel@init@a4}{%
+ \ESKD@zonelabel@hc = 1 \ESKD@zonelabel@vc = 1\relax}
+ \@namedef{ESKD@zonelabel@init@a3}{%
+ \ESKD@zonelabel@hc = 1 \ESKD@zonelabel@vc = 2\relax}
+ \@namedef{ESKD@zonelabel@init@a2}{%
+ \ESKD@zonelabel@hc = 2 \ESKD@zonelabel@vc = 2\relax}
+ \@namedef{ESKD@zonelabel@init@a1}{%
+ \ESKD@zonelabel@hc = 2 \ESKD@zonelabel@vc = 4\relax}
+ \@namedef{ESKD@zonelabel@init@a0}{%
+ \ESKD@zonelabel@hc = 4 \ESKD@zonelabel@vc = 4\relax}
+ \@nameuse{ESKD@zonelabel@init@\ESKD@paper}
+ \ifESKD@landscape
+ \ESKD@tmpcnta = \ESKD@zonelabel@hc
+ \ESKD@zonelabel@hc = \ESKD@zonelabel@vc
+ \ESKD@zonelabel@vc = \ESKD@tmpcnta
+ \fi
+ \ESKD@zonelabel@hs = \paperwidth
+ \ESKD@zonelabel@vs = \paperheight
+ \divide \ESKD@zonelabel@hs by \ESKD@zonelabel@hc
+ \divide \ESKD@zonelabel@vs by \ESKD@zonelabel@vc
+ \ESKD@zonelabel@cnt = 0
+\fi
+
+m4_dnl нижний левый край страницы
+\newlength{\ESKD@origin@x}
+\newlength{\ESKD@origin@y}
+\setlength{\ESKD@origin@x}{1in}
+\setlength{\ESKD@origin@y}{\paperheight-1in}
+
+m4_dnl позиция рамки
+\newlength{\ESKDframeX}
+\newlength{\ESKDframeY}
+
+m4_dnl ширина и высота рамки
+\newlength{\ESKDframeW}
+\newlength{\ESKDframeH}
+\setlength{\ESKDframeW}{\paperwidth-\ESKD@margin@si-\ESKD@margin@so}
+\setlength{\ESKDframeH}{\paperheight-\ESKD@margin@t-\ESKD@margin@b}
+
+m4_dnl позиция штампа
+\newlength{\ESKDstampX}
+\newlength{\ESKDstampY}
+
+\RequirePackage{eskdfont}
+\RequirePackage{eskdlang}
+
+m4_dnl переводит длинну в единицу
+\newcommand*{\ESKDltu}[1]{#1\@gobble}
+
+m4_dnl расширяется в аргумент только на передней стороне листа
+\newcommand{\ESKDonFrontSideOnly}[1]{%
+ \ifESKD@twoside\ifodd\c@page#1\fi\else#1\fi}
+
+\RequirePackage{rotating}
+
+m4_dnl рамка
+\newsavebox{\ESKD@frame@box}
+\AtBeginDocument{%
+\savebox{\ESKD@frame@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,\ESKDltu{\ESKDframeH}){\line(1,0){\ESKDltu{\ESKDframeW}}}
+\put(0,0){\line(1,0){\ESKDltu{\ESKDframeW}}}
+\put(0,0){\line(0,1){\ESKDltu{\ESKDframeH}}}
+\put(\ESKDltu{\ESKDframeW},0){\line(0,1){\ESKDltu{\ESKDframeH}}}
+\end{picture}}}
+\newcommand{\ESKDdrawFrame}{%
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){%
+ \usebox{\ESKD@frame@box}}}
+
+m4_dnl штамп форма 1
+\newsavebox{\ESKD@stamp@i@box}
+\AtBeginDocument{%
+\savebox{\ESKD@stamp@i@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,55){\line(1,0){185}}
+\put(65,40){\line(1,0){120}}
+\put(0,35){\line(1,0){65}}
+\put(135,35){\line(1,0){50}}
+\put(0,30){\line(1,0){65}}
+\put(135,20){\line(1,0){50}}
+\put(65,15){\line(1,0){120}}
+\linethickness{\ESKDlineThin}
+\multiput(0,50)(0,-5){3}{\line(1,0){65}}
+\multiput(0,25)(0,-5){5}{\line(1,0){65}}
+\linethickness{\ESKDlineThick}
+\put(0,0){\line(0,1){55}}
+\put(7,30){\line(0,1){25}}
+\put(17,0){\line(0,1){55}}
+\put(40,0){\line(0,1){55}}
+\put(55,0){\line(0,1){55}}
+\put(65,0){\line(0,1){55}}
+\put(135,0){\line(0,1){40}}
+\put(150,20){\line(0,1){20}}
+\put(155,15){\line(0,1){5}}
+\put(167,20){\line(0,1){20}}
+\linethickness{\ESKDlineThin}
+\multiput(140,20)(5,0){2}{\line(0,1){15}}
+\put(67, 41){\parbox[b][13mm][c]{106mm}{\centering\ESKDfontVII\ESKDtheColumnII}}
+\put(135, 36.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnIVname}}
+\put(150, 36.3){\makebox[17mm]{\ESKDfontIII\ESKDcolumnVname}}
+\put(167, 36.3){\makebox[18mm]{\ESKDfontIII\ESKDcolumnVIname}}
+\put(0.5, 26.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIname}}
+\put(0.5, 21.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIIname}}
+\put(0.5, 16.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIIIname}}
+\put(0.5, 11.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIVname}}
+\put(0.5, 6.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfVname}}
+\put(0.5, 1.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfVIname}}
+\put(17.5, 26.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfI}}
+\put(17.5, 21.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfII}}
+\put(17.5, 16.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfIII}}
+\put(17.5, 11.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfIV}}
+\put(17.5, 6.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfV}}
+\put(17.5, 1.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfVI}}
+\put(0, 31.3){\makebox[7mm]{\ESKDfontIII\ESKDcolumnXIVname}}
+\put(7, 31.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVname}}
+\put(17, 31.3){\makebox[23mm]{\ESKDfontIII\ESKDcolumnXVIname}}
+\put(40, 31.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnXVIIname}}
+\put(55, 31.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVIIIname}}
+\end{picture}}}
+\newcommand{\ESKD@stamp@i@var}{%
+\begin{picture}(0,0)(0,0)
+\ifnum \c@page = 1
+ \put(67, 16){\parbox[b][23mm][c]{66mm}{\centering\ESKDfontV\ESKDtheColumnI}}
+ \put(67, 1){\parbox[b][13mm][c]{66mm}{\centering\ESKDfontV\ESKDtheColumnIII}}
+ \put(135, 26.3){\makebox[5mm]{\ESKDfontIII\ESKDtheColumnIVfI}}
+ \put(140, 26.3){\makebox[5mm]{\ESKDfontIII\ESKDtheColumnIVfII}}
+ \put(145, 26.3){\makebox[5mm]{\ESKDfontIII\ESKDtheColumnIVfIII}}
+ \put(151, 21){\parbox[b][13mm][c]{15mm}{\centering\ESKDfontIII\ESKDtheColumnV}}
+ \put(168, 21){\parbox[b][13mm][c]{16mm}{\centering\ESKDfontIII\ESKDtheColumnVI}}
+ \ifESKD@enable@column@viii
+ \put(155, 16.3){\makebox[30mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIIItwosideName\else\ESKDcolumnVIIIname\fi%
+ \ \pageref{LastPage}}}
+ \fi
+ \put(137, 1){\parbox[b][13mm][c]{46mm}{\centering\ESKDfontV\ESKDtheColumnIX}}
+\fi
+\ifESKD@enable@column@vii
+ \put(135, 16.3){\makebox[20mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIItwosideName\else\ESKDcolumnVIIname\fi\ \thepage}}
+\fi
+\end{picture}}
+\newcommand{\ESKDdrawStampI}{%
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \usebox{\ESKD@stamp@i@box}}
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \ESKD@stamp@i@var}}
+
+m4_dnl штамп форма 2
+\newsavebox{\ESKD@stamp@ii@box}
+\AtBeginDocument{%
+\savebox{\ESKD@stamp@ii@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,40){\line(1,0){185}}
+\put(0,30){\line(1,0){65}}
+\put(0,25){\line(1,0){185}}
+\put(135,20){\line(1,0){50}}
+\put(135,15){\line(1,0){50}}
+\linethickness{\ESKDlineThin}
+\put(0,35){\line(1,0){65}}
+\multiput(0,20)(0,-5){4}{\line(1,0){65}}
+\linethickness{\ESKDlineThick}
+\put(0,0){\line(0,1){40}}
+\put(7,25){\line(0,1){15}}
+\put(17,0){\line(0,1){40}}
+\put(40,0){\line(0,1){40}}
+\put(55,0){\line(0,1){40}}
+\put(65,0){\line(0,1){40}}
+\put(135,0){\line(0,1){25}}
+\put(140,15){\line(0,1){5}}
+\put(145,15){\line(0,1){5}}
+\put(150,15){\line(0,1){10}}
+\put(165,15){\line(0,1){10}}
+\put(67, 1){\parbox[b][23mm][c]{66mm}{\centering\ESKDfontV\ESKDtheColumnI}}
+\put(67, 26){\parbox[b][13mm][c]{106mm}{\centering\ESKDfontVII\ESKDtheColumnII}}
+\put(135, 21.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnIVname}}
+\put(135, 16.3){\makebox[5mm][c]{\ESKDfontIII\ESKDtheColumnIVfI}}
+\put(140, 16.3){\makebox[5mm][c]{\ESKDfontIII\ESKDtheColumnIVfII}}
+\put(145, 16.3){\makebox[5mm][c]{\ESKDfontIII\ESKDtheColumnIVfIII}}
+\put(150, 21.3){\makebox[15mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIItwosideName\else\ESKDcolumnVIIname\fi}}
+\put(165, 21.3){\makebox[20mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIIItwosideName\else\ESKDcolumnVIIIname\fi}}
+\put(137, 1){\parbox[b][13mm][c]{46mm}{\centering\ESKDfontV\ESKDtheColumnIX}}
+\put(0.5, 21.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIname}}
+\put(0.5, 16.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIIname}}
+\put(0.5, 11.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfIVname}}
+\put(0.5, 6.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfVname}}
+\put(0.5, 1.3){\makebox[16mm][l]{\ESKDfontIII\ESKDcolumnXfVIname}}
+\put(17.5, 21.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfI}}
+\put(17.5, 16.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfII}}
+\put(17.5, 11.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfIV}}
+\put(17.5, 6.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfV}}
+\put(17.5, 1.3){\makebox[22mm][l]{\ESKDfontIII\ESKDtheColumnXIfVI}}
+\put(0, 26.3){\makebox[7mm]{\ESKDfontIII\ESKDcolumnXIVname}}
+\put(7, 26.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVname}}
+\put(17, 26.3){\makebox[23mm]{\ESKDfontIII\ESKDcolumnXVIname}}
+\put(40, 26.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnXVIIname}}
+\put(55, 26.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVIIIname}}
+\end{picture}}}
+\newcommand{\ESKD@stamp@ii@var}{%
+\begin{picture}(0,0)(0,0)
+\ifESKD@enable@column@vii
+ \put(150, 16.3){\makebox[15mm]{\ESKDfontIII\thepage}}
+\fi
+\ifESKD@enable@column@viii
+ \put(165, 16.3){\makebox[20mm]{\ESKDfontIII\pageref{LastPage}}}
+\fi
+\end{picture}}
+\newcommand{\ESKDdrawStampII}{%
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \usebox{\ESKD@stamp@ii@box}}
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \ESKD@stamp@ii@var}}
+
+m4_dnl штамп форма 2а
+\newsavebox{\ESKD@stamp@ii@a@box}
+\AtBeginDocument{%
+\savebox{\ESKD@stamp@ii@a@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,15){\line(1,0){185}}
+\put(175,8){\line(1,0){10}}
+\put(0,5){\line(1,0){65}}
+\linethickness{\ESKDlineThin}
+\put(0,10){\line(1,0){65}}
+\linethickness{\ESKDlineThick}
+\put(0,0){\line(0,1){15}}
+\put(7,0){\line(0,1){15}}
+\put(17,0){\line(0,1){15}}
+\put(40,0){\line(0,1){15}}
+\put(55,0){\line(0,1){15}}
+\put(65,0){\line(0,1){15}}
+\put(175,0){\line(0,1){15}}
+\put(67, 1){\parbox[b][13mm][c]{106mm}{\centering\ESKDfontVII\ESKDtheColumnII}}
+\put(175, 10.3){\makebox[10mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIItwosideName\else\ESKDcolumnVIIname\fi}}
+\put(0, 1.3){\makebox[7mm]{\ESKDfontIII\ESKDcolumnXIVname}}
+\put(7, 1.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVname}}
+\put(17, 1.3){\makebox[23mm]{\ESKDfontIII\ESKDcolumnXVIname}}
+\put(40, 1.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnXVIIname}}
+\put(55, 1.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVIIIname}}
+\end{picture}}}
+\newcommand{\ESKD@stamp@ii@a@var}{%
+\begin{picture}(0,0)(0,0)
+\ifESKD@enable@column@vii
+ \put(175, 3){\makebox[10mm]{\ESKDfontIII\thepage}}
+\fi
+\end{picture}}
+\newcommand{\ESKDdrawStampIIa}{%
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \usebox{\ESKD@stamp@ii@a@box}}
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \ESKD@stamp@ii@a@var}}
+
+m4_dnl штамп форма 2б
+\newsavebox{\ESKD@stamp@ii@b@box}
+\AtBeginDocument{%
+\savebox{\ESKD@stamp@ii@b@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,15){\line(1,0){185}}
+\put(0,8){\line(1,0){10}}
+\put(120,5){\line(1,0){65}}
+\linethickness{\ESKDlineThin}
+\put(120,10){\line(1,0){65}}
+\linethickness{\ESKDlineThick}
+\put(0,0){\line(0,1){15}}
+\put(10,0){\line(0,1){15}}
+\put(120,0){\line(0,1){15}}
+\put(127,0){\line(0,1){15}}
+\put(137,0){\line(0,1){15}}
+\put(160,0){\line(0,1){15}}
+\put(175,0){\line(0,1){15}}
+\put(12, 1){\parbox[b][13mm][c]{106mm}{\centering\ESKDfontVII\ESKDtheColumnII}}
+\put(0, 10.3){\makebox[10mm]{\ESKDfontIII%
+ \ifESKD@twoside\ESKDcolumnVIItwosideName\else\ESKDcolumnVIIname\fi}}
+\put(120, 1.3){\makebox[7mm]{\ESKDfontIII\ESKDcolumnXIVname}}
+\put(127, 1.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVname}}
+\put(137, 1.3){\makebox[23mm]{\ESKDfontIII\ESKDcolumnXVIname}}
+\put(160, 1.3){\makebox[15mm]{\ESKDfontIII\ESKDcolumnXVIIname}}
+\put(175, 1.3){\makebox[10mm]{\ESKDfontIII\ESKDcolumnXVIIIname}}
+\end{picture}}}
+\newcommand{\ESKD@stamp@ii@b@var}{%
+\begin{picture}(0,0)(0,0)
+\ifESKD@enable@column@vii
+ \put(0, 3){\makebox[10mm]{\ESKDfontIII\thepage}}
+\fi
+\end{picture}}
+\newcommand{\ESKDdrawStampIIb}{%
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \usebox{\ESKD@stamp@ii@b@box}}
+ \put(\ESKDltu{\ESKDstampX},\ESKDltu{\ESKDstampY}){%
+ \ESKD@stamp@ii@b@var}}
+
+m4_dnl графы от 19 по 23
+\ifESKD@enable@columns@xix
+\newsavebox{\ESKD@columns@xix@box}
+\AtBeginDocument{%
+\savebox{\ESKD@columns@xix@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,12){\line(1,0){145}}
+\put(0,7){\line(1,0){145}}
+\put(0,0){\line(0,1){12}}
+\put(25,0){\line(0,1){12}}
+\put(60,0){\line(0,1){12}}
+\put(85,0){\line(0,1){12}}
+\put(110,0){\line(0,1){12}}
+\put(145,0){\line(0,1){12}}
+\put(0, 8.3){\makebox[25mm]{\ESKDfontIII\ESKDcolumnXIXname}}
+\put(0, 2.3){\makebox[25mm]{\ESKDfontIII\ESKDtheColumnXIX}}
+\put(25, 8.3){\makebox[35mm]{\ESKDfontIII\ESKDcolumnXXname}}
+\put(60, 8.3){\makebox[25mm]{\ESKDfontIII\ESKDcolumnXXIname}}
+\put(60, 2.3){\makebox[25mm]{\ESKDfontIII\ESKDtheColumnXXI}}
+\put(85, 8.3){\makebox[25mm]{\ESKDfontIII\ESKDcolumnXXIIname}}
+\put(85, 2.3){\makebox[25mm]{\ESKDfontIII\ESKDtheColumnXXII}}
+\put(110, 8.3){\makebox[35mm]{\ESKDfontIII\ESKDcolumnXXIIIname}}
+\end{picture}}}
+\newcommand{\ESKDdrawColumnsXIX}{%
+ \ESKDonFrontSideOnly{%
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKDframeY}){%
+ \begin{turn}{90}\usebox{\ESKD@columns@xix@box}\end{turn}}}}
+\fi
+
+m4_dnl графы 24 и 25
+\ifESKD@enable@columns@xxiv
+\newsavebox{\ESKD@columns@xxiv@box}
+\AtBeginDocument{%
+\savebox{\ESKD@columns@xxiv@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,12){\line(1,0){120}}
+\put(0,7){\line(1,0){120}}
+\put(0,0){\line(0,1){12}}
+\put(60,0){\line(0,1){12}}
+\put(120,0){\line(0,1){12}}
+\put(0, 8.3){\makebox[60mm]{\ESKDfontIII\ESKDcolumnXXIVname}}
+\put(0, 2.3){\makebox[60mm]{\ESKDfontIII\ESKDtheColumnXXIV}}
+\put(60, 8.3){\makebox[60mm]{\ESKDfontIII\ESKDcolumnXXVname}}
+\put(60, 2.3){\makebox[60mm]{\ESKDfontIII\ESKDtheColumnXXV}}
+\end{picture}}}
+\newcommand{\ESKDdrawColumnsXXIV}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeY+167mm}
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKD@tmpdima}){%
+ \begin{turn}{90}\usebox{\ESKD@columns@xxiv@box}\end{turn}}}
+\fi
+
+m4_dnl графа 26
+\ifESKD@enable@column@xxvi
+\newsavebox{\ESKD@column@xxvi@box}
+\AtBeginDocument{%
+\savebox{\ESKD@column@xxvi@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,0){\line(1,0){70}}
+\put(70,0){\line(0,1){14}}
+\put(1,13){\begin{turn}{180}\parbox[b][12mm][c]{68mm}{%
+ \centering\ESKDfontV\ESKDtheColumnII}\end{turn}}
+\end{picture}}}
+\newcommand{\ESKDdrawColumnXXVI}{%
+ \ifESKD@column@xxvi@portrait%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-14mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{turn}{270}\usebox{\ESKD@column@xxvi@box}\end{turn}}%
+ \else%
+ \setlength{\ESKD@tmpdima}{\ESKDframeY+\ESKDframeH-14mm}%
+ \put(\ESKDltu{\ESKDframeX},\ESKDltu{\ESKD@tmpdima}){%
+ \usebox{\ESKD@column@xxvi@box}}%
+ \fi}
+\fi
+
+\ifESKD@enable@columns@xxvii
+m4_dnl графы 27, 28, 29, 30
+\newsavebox{\ESKD@columns@xxvii@i@box}
+\AtBeginDocument{%
+\savebox{\ESKD@columns@xxvii@i@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(14,7){\line(1,0){53}}
+\put(0,0){\line(1,0){67}}
+\put(14,0){\line(0,1){14}}
+\put(67,0){\line(0,1){14}}
+\put(0,13){\begin{turn}{180}\parbox[b][12mm][c]{14mm}{%
+ \centering\ESKDfontV\ESKDtheColumnXXVII}\end{turn}}
+\put(14,11.7){\begin{turn}{180}\makebox[53mm][c]{%
+ \ESKDfontIII\ESKDtheColumnXXVIII}\end{turn}}
+\put(14,4.7){\begin{turn}{180}\makebox[53mm][c]{%
+ \ESKDfontIII\ESKDtheColumnXXIX}\end{turn}}
+\end{picture}}}
+\newsavebox{\ESKD@columns@xxvii@ii@box}
+\AtBeginDocument{%
+\savebox{\ESKD@columns@xxvii@ii@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,14){\line(1,0){120}}
+\put(0,0){\line(0,1){14}}
+\put(14,0){\line(0,1){14}}
+\put(67,0){\line(0,1){14}}
+\put(0,0){\parbox[b][14mm][c]{14mm}{%
+ \centering\ESKDfontIII\ESKDtheColumnXXVII}}
+\put(15,0){\parbox[b][14mm][c]{51mm}{%
+ \centering\ESKDfontIII\ESKDtheColumnXXVIII}}
+\put(68,0){\parbox[b][14mm][c]{51mm}{%
+ \centering\ESKDfontIII\ESKDtheColumnXXIX}}
+\end{picture}}}
+\newsavebox{\ESKD@column@xxx@box}
+\AtBeginDocument{%
+\savebox{\ESKD@column@xxx@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,8){\line(1,0){120}}
+\put(0,0){\line(0,1){8}}
+\put(1,1){\parbox[b][6mm][c]{118mm}{\centering\ESKDfontV\ESKDtheColumnXXX}}
+\end{picture}}}
+\newcommand{\ESKDdrawColumnsXXVIIi}{%
+ \ifESKD@column@xxvi@portrait%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-14mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-70mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{turn}{270}\usebox{\ESKD@columns@xxvii@i@box}\end{turn}}%
+ \else%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+70mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY+\ESKDframeH-14mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@columns@xxvii@i@box}}%
+ \fi%
+ \setlength{\ESKD@tmpdima}{\ESKDstampX+65mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDstampY+55mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@column@xxx@box}}}%
+\newcommand{\ESKDdrawColumnsXXVIIii}{%
+ \setlength{\ESKD@tmpdima}{\ESKDstampX+65mm}
+ \setlength{\ESKD@tmpdimb}{\ESKDstampY+48mm}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@columns@xxvii@ii@box}}%
+ \setlength{\ESKD@tmpdimb}{\ESKDstampY+40mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@column@xxx@box}}}
+\fi
+
+m4_dnl графа 31
+\ifESKD@enable@column@xxxi
+\newcommand{\ESKDdrawColumnXXXI}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-120mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY-3.7mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \makebox[70mm][r]{\ESKDfontIII\ESKDcolumnXXXIname\hspace{4em}}}}
+\fi
+
+m4_dnl графа 32
+\ifESKD@enable@column@xxxii
+\newcommand{\ESKDdrawColumnXXXII}{%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX+\ESKDframeW-50mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDframeY-3.7mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \makebox[50mm][r]{\ESKDfontIII\ESKDtheColumnXXXII}}}
+\fi
+
+m4_dnl графа 33
+\ifESKD@enable@column@xxxiii
+\newsavebox{\ESKD@column@xxxiii@box}
+\AtBeginDocument{%
+\savebox{\ESKD@column@xxxiii@box}{%
+\setlength{\unitlength}{1mm}%
+\begin{picture}(0,0)(0,0)
+\linethickness{\ESKDlineThick}
+\put(0,25){\line(1,0){20}}
+\put(0,5){\line(1,0){20}}
+\put(0,0){\line(1,0){20}}
+\put(0,0){\line(0,1){25}}
+\linethickness{\ESKDlineThin}
+\multiput(0,20)(0,-5){3}{\line(1,0){20}}
+\put(0,1.3){\makebox[20mm][c]{\ESKDfontIII\ESKDcolumnXXXIIIname}}
+\end{picture}}}
+\newcommand{\ESKDdrawColumnXXXIII}{%
+ \setlength{\ESKD@tmpdima}{\ESKDstampX-20mm}%
+ \setlength{\ESKD@tmpdimb}{\ESKDstampY+30mm}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@column@xxxiii@box}}}
+\fi
+
+m4_dnl графа 34
+\ifESKD@enable@column@xxxiv
+\newsavebox{\ESKD@column@xxxiv@box}
+\AtBeginDocument{%
+\savebox{\ESKD@column@xxxiv@box}{%
+\setlength{\fboxrule}{\ESKDlineThick}%
+\setlength{\fboxsep}{1.3mm}%
+\parbox[b][100mm+\fboxrule][t]{70mm+\fboxrule}{%
+ \framebox{%
+ \parbox{70mm-2\fboxsep-\fboxrule}{\centering\ESKDfontIII%
+ \ESKDtheColumnXXXIV\rule{0mm}{7mm-2\fboxsep-\fboxrule}}}}}}
+\newcommand{\ESKDdrawColumnXXXIV}{%
+ \ifESKD@column@xxvi@portrait%
+ \setlength{\ESKD@tmpdima}{%
+ \ESKDframeX+\ESKDframeW-114mm-.5\ESKDlineThick}%
+ \setlength{\ESKD@tmpdimb}{%
+ \ESKDframeY+\ESKDframeH+.5\ESKDlineThick}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \begin{turn}{270}\usebox{\ESKD@column@xxxiv@box}\end{turn}}%
+ \else%
+ \setlength{\ESKD@tmpdima}{\ESKDframeX-.5\ESKDlineThick}%
+ \setlength{\ESKD@tmpdimb}{%
+ \ESKDframeY+\ESKDframeH-114mm-.5\ESKDlineThick}%
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \usebox{\ESKD@column@xxxiv@box}}%
+ \fi}
+\fi
+
+m4_dnl обозначения зон
+\ifESKD@zonelabels
+\newcommand{\ESKD@make@h@zonelabels}{
+ \ESKD@tmpcnta = 1
+ \ESKD@tmpdima = \paperwidth
+ \ESKD@tmpdimb = \ESKDframeY
+ \advance \ESKD@tmpdimb \ESKDframeH
+ \ESKD@tmpdimc = \ESKDframeY
+ \advance \ESKD@tmpdimc -5mm
+ \loop
+ \advance \ESKD@tmpdima -\ESKD@zonelabel@hs
+ \global\advance \ESKD@zonelabel@cnt 1
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){%
+ \parbox[b][5mm][c]{\ESKD@zonelabel@hs}{%
+ \centering\ESKDfontIII\number\ESKD@zonelabel@cnt}}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimc}){%
+ \parbox[b][5mm][c]{\ESKD@zonelabel@hs}{%
+ \centering\ESKDfontIII\number\ESKD@zonelabel@cnt}}
+ \ifnum \ESKD@tmpcnta < \ESKD@zonelabel@hc
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimb}){\line(0,1){5}}
+ \put(\ESKDltu{\ESKD@tmpdima},\ESKDltu{\ESKD@tmpdimc}){\line(0,1){5}}
+ \advance \ESKD@tmpcnta 1
+ \repeat
+}
+\newcommand{\ESKD@make@v@zonelabels}[1]{
+ \ESKD@tmpcnta = 1
+ \ESKD@tmpdima = 0mm
+ \ESKD@tmpdimb = \ESKDframeX
+ \advance \ESKD@tmpdimb -5mm
+ \ESKD@tmpdimc = \ESKDframeX
+ \advance \ESKD@tmpdimc \ESKDframeW
+ \loop
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \parbox[b][\ESKD@zonelabel@vs][c]{5mm}{%
+ \centering\ESKDfontIII\@Alph\ESKD@tmpcnta
+ \ifnum\ESKD@tmpcnta = 1
+ \ifESKD@enable@columns@xix
+ \par\rule{0mm}{3.5mm-\ESKD@zonelabel@vs+310mm}
+ \fi
+ \fi}}
+ \put(\ESKDltu{\ESKD@tmpdimc},\ESKDltu{\ESKD@tmpdima}){%
+ \parbox[b][\ESKD@zonelabel@vs][c]{5mm}{%
+ \centering\ESKDfontIII\@Alph\ESKD@tmpcnta}}
+ \ifnum \ESKD@tmpcnta < \ESKD@zonelabel@vc
+ \advance \ESKD@tmpdima \ESKD@zonelabel@vs
+ \ifnum \ESKD@tmpcnta = #1\else
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){\line(1,0){5}}
+ \fi
+ \put(\ESKDltu{\ESKD@tmpdimc},\ESKDltu{\ESKD@tmpdima}){\line(1,0){5}}
+ \advance \ESKD@tmpcnta 1
+ \repeat
+}
+\newcommand{\ESKDdrawZoneLabelsI}{%
+\linethickness{\ESKDlineThick}
+\ESKD@make@h@zonelabels
+\ifESKD@enable@columns@xxiv
+ \ifdim \ESKD@zonelabel@vs < 292mm
+ \ESKD@make@v@zonelabels{1}\else
+ \ESKD@make@v@zonelabels{0}\fi
+\else
+ \ESKD@make@v@zonelabels{0}
+\fi
+\ifdim \ESKD@margin@si > 5mm
+ \ESKD@tmpdima = \ESKDframeY
+ \ESKD@tmpdimb = \ESKDframeX
+ \advance \ESKD@tmpdimb -5mm
+ \ifESKD@enable@columns@xix\else
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){145}}
+ \fi
+ \advance \ESKD@tmpdima 145mm
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){22}}
+ \advance \ESKD@tmpdima 22mm
+ \ifESKD@enable@columns@xxiv\else
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){120}}
+ \fi
+ \advance \ESKD@tmpdima 120mm
+ \ESKD@tmpdimc = \ESKDframeY
+ \advance \ESKD@tmpdimc \ESKDframeH
+ \advance \ESKD@tmpdimc -\ESKD@tmpdima
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){\ESKDltu{\ESKD@tmpdimc}}}
+ \advance \ESKD@tmpdima \ESKD@tmpdimc
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(1,0){5}}
+\fi}
+\newcommand{\ESKDdrawZoneLabelsII}{%
+\linethickness{\ESKDlineThick}
+\ESKD@make@h@zonelabels
+\ESKD@make@v@zonelabels{0}
+\ifdim \ESKD@margin@si > 5mm
+ \ESKD@tmpdima = \ESKDframeY
+ \ESKD@tmpdimb = \ESKDframeX
+ \advance \ESKD@tmpdimb -5mm
+ \ifESKD@enable@columns@xix\else
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){145}}
+ \fi
+ \advance \ESKD@tmpdima 145mm
+ \ESKD@tmpdimc = \ESKDframeY
+ \advance \ESKD@tmpdimc \ESKDframeH
+ \advance \ESKD@tmpdimc -\ESKD@tmpdima
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(0,1){\ESKDltu{\ESKD@tmpdimc}}}
+ \advance \ESKD@tmpdima \ESKD@tmpdimc
+ \put(\ESKDltu{\ESKD@tmpdimb},\ESKDltu{\ESKD@tmpdima}){%
+ \line(1,0){5}}
+\fi}
+\fi
+
+\RequirePackage{eskdhash}
+
+m4_dnl создает новый стиль страницы
+\newcommand{\ESKDnewStyle}[2]{%
+ \ESKD@hash@new{@style@draw@#1}%
+ \@namedef{ESKD@style@sh@#1}{#2}}
+
+m4_dnl установка элементов стиля
+\newcommand{\ESKDputOnStyle}[3]{%
+ \ESKD@hash@set{@style@draw@#1}{#2}{#3}}
+\newcommand{\ESKDremoveFromStyle}[2]{%
+ \ESKD@hash@set{@style@draw@#1}{#2}{}}
+
+m4_dnl пустой стиль
+\ESKDnewStyle{empty}{0mm}
+
+m4_dnl стиль титульной страницы
+\ESKDnewStyle{title}{0mm}
+\ESKDputOnStyle{title}{frame}{\ESKDdrawFrame}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{title}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+
+m4_dnl форма 1
+\ESKDnewStyle{formI}{\ifESKD@enable@columns@xxvii 63mm\else 55mm\fi}
+\ESKDputOnStyle{formI}{frame}{\ESKDdrawFrame}
+\ESKDputOnStyle{formI}{stamp}{\ESKDdrawStampI}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{formI}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+\ifESKD@enable@columns@xxiv
+ \ESKDputOnStyle{formI}{columnsxxiv}{\ESKDdrawColumnsXXIV}
+\fi
+\ifESKD@enable@column@xxvi
+ \ESKDputOnStyle{formI}{columnxxvi}{\ESKDdrawColumnXXVI}
+\fi
+\ifESKD@enable@columns@xxvii
+ \ESKDputOnStyle{formI}{columnsxxvii}{\ESKDdrawColumnsXXVIIi}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{formI}{columnxxxi}{\ESKDdrawColumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ \ESKDputOnStyle{formI}{columnxxxii}{\ESKDdrawColumnXXXII}
+\fi
+\ifESKD@enable@column@xxxiii
+ \ESKDputOnStyle{formI}{columnxxxiii}{\ESKDdrawColumnXXXIII}
+\fi
+\ifESKD@enable@column@xxxiv
+ \ESKDputOnStyle{formI}{columnxxxiv}{\ESKDdrawColumnXXXIV}
+\fi
+\ifESKD@zonelabels%
+ \ESKDputOnStyle{formI}{zonelabels}{\ESKDdrawZoneLabelsI}
+\fi
+
+m4_dnl форма 2
+\ESKDnewStyle{formII}{\ifESKD@enable@columns@xxvii 62mm\else 40mm\fi}
+\ESKDputOnStyle{formII}{frame}{\ESKDdrawFrame}
+\ESKDputOnStyle{formII}{stamp}{\ESKDdrawStampII}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{formII}{columnsxix}{\ESKDdrawColumnsXIX}
+\fi
+\ifESKD@enable@columns@xxiv
+ \ESKDputOnStyle{formII}{columnsxxiv}{\ESKDdrawColumnsXXIV}
+\fi
+\ifESKD@enable@columns@xxvii
+ \ESKDputOnStyle{formII}{columnsxxvii}{\ESKDdrawColumnsXXVIIii}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{formII}{columnxxxi}{\ESKDdrawColumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ \ESKDputOnStyle{formII}{columnxxxii}{\ESKDdrawColumnXXXII}
+\fi
+
+m4_dnl форма 2а и 2б
+\ESKDnewStyle{formIIab}{15mm}
+\ESKDputOnStyle{formIIab}{frame}{\ESKDdrawFrame}
+\ESKDputOnStyle{formIIab}{stamp}{%
+ \ifESKD@twoside%
+ \ifodd\c@page\ESKDdrawStampIIa\else\ESKDdrawStampIIb\fi%
+ \else\ESKDdrawStampIIa\fi}
+\ifESKD@enable@columns@xix
+ \ESKDputOnStyle{formIIab}{columnsxix}{%
+ \ifESKD@twoside\ifodd\c@page\ESKDdrawColumnsXIX\fi%
+ \else\ESKDdrawColumnsXIX\fi}
+\fi
+\ifESKD@enable@column@xxxi
+ \ESKDputOnStyle{formIIab}{columnxxxi}{\ESKDdrawColumnXXXI}
+\fi
+\ifESKD@enable@column@xxxii
+ \ESKDputOnStyle{formIIab}{columnxxxii}{\ESKDdrawColumnXXXII}
+\fi
+\ifESKD@zonelabels
+ \ESKDputOnStyle{formIIab}{zonelabels}{\ESKDdrawZoneLabelsII}
+\fi
+
+m4_dnl текущее расстояние от текста до рамки
+\newlength{\ESKD@curpad@h}
+\newlength{\ESKD@curpad@v}
+\setlength{\ESKD@curpad@h}{\ESKD@padding@h}
+\setlength{\ESKD@curpad@v}{\ESKD@padding@v}
+
+\RequirePackage{everyshi}
+\def\ESKD@curstyle{}
+\def\ESKD@thisstyle{}
+\def\ESKD@extra@Hook{}
+\def\ESKD@extra@ThisHook{}
+\newcommand{\ESKD@ShipoutPicture}{%
+ \bgroup
+ \ifESKD@twoside
+ \ifodd\c@page
+ \ESKDframeX=\ESKD@margin@si
+ \else
+ \ESKDframeX=\ESKD@margin@so
+ \fi
+ \else
+ \ESKDframeX=\ESKD@margin@si
+ \fi
+ \ESKDframeY=\ESKD@margin@b
+ \ESKDstampX=\ESKDframeX
+ \advance\ESKDstampX \ESKDframeW
+ \advance\ESKDstampX -185mm
+ \ESKDstampY=\ESKDframeY
+ \unitlength=1mm
+ \global\setbox\@cclv\vbox{%
+ \vbox{\let\protect\relax
+ \begin{picture}(0,0)(\ESKDltu{\ESKD@origin@x},\ESKDltu{\ESKD@origin@y})%
+ \ifx\ESKD@thisstyle\@empty
+ \let\ESKD@thisstyle\ESKD@curstyle
+ \fi
+ \loop
+ \ifnum \ESKD@hash@pos{@style@draw@\ESKD@thisstyle} %
+ < \ESKD@hash@count{@style@draw@\ESKD@thisstyle}
+ \ESKD@hash@next@value{@style@draw@\ESKD@thisstyle}\relax
+ \repeat
+ \ifx\ESKD@extra@ThisHook\@empty%
+ \ESKD@extra@Hook\else\ESKD@extra@ThisHook%
+ \fi%
+ \global\let\ESKD@thisstyle\@empty%
+ \global\let\ESKD@extra@ThisHook\@empty%
+ \end{picture}}%
+ \nointerlineskip%
+ \box\@cclv}%
+ \egroup
+}
+\EveryShipout{\ESKD@ShipoutPicture}
+
+\RequirePackage{chngpage}
+\RequirePackage{ifpdf}
+
+m4_dnl устанавливает стиль текущей и последующих страниц
+% \ESKD@tmpdima --- width
+% \ESKD@tmpdimb --- height
+\newcommand{\ESKDstyle}[1]{%
+\pagestyle{empty}%
+\def\ESKD@curstyle{#1}%
+\ifpdf%
+ \setlength{\ESKD@tmpdimb}{\pdfpageheight}%
+ \setlength{\ESKD@tmpdima}{\pdfpagewidth}%
+\else%
+ \setlength{\ESKD@tmpdima}{\paperwidth}%
+ \setlength{\ESKD@tmpdimb}{\paperheight}%
+\fi%
+\changetext{\ESKD@tmpdimb-\ESKD@margin@t-\ESKD@margin@b-2\ESKD@curpad@v%
+ \expandafter-\@nameuse{ESKD@style@sh@\ifESKD@ignstamp empty\else #1\fi}-\textheight}%
+ {\ESKD@tmpdima-\ESKD@margin@si-\ESKD@margin@so-2\ESKD@padding@h-\textwidth}{}{}{}%
+\let\ESKD@thisstyle\@empty}
+
+m4_dnl устанавливает стиль текущей страницы
+\newcommand{\ESKDthisStyle}[1]{%
+\thispagestyle{empty}%
+\def\ESKD@thisstyle{#1}%
+\ifpdf%
+ \setlength{\ESKD@tmpdimb}{\pdfpageheight}%
+\else%
+ \setlength{\ESKD@tmpdimb}{\paperheight}%
+\fi%
+\setlength{\vsize}{\ESKD@tmpdimb-\ESKD@margin@t-\ESKD@margin@b-2\ESKD@curpad@v%
+ \expandafter-\@nameuse{ESKD@style@sh@\ifESKD@ignstamp empty\else #1\fi}}%
+\setlength{\@colht}{\vsize}\setlength{\@colroom}{\vsize}}
+
+m4_dnl команды для размещения дополнительной графики
+\newcommand{\ESKDput}[1]{\def\ESKD@extra@Hook{#1}}
+\newcommand{\ESKDthisPut}[1]{\def\ESKD@extra@ThisHook{#1}}
+
+m4_dnl
+\newcommand{\ESKDclearDoublePage}{%
+ \ifESKD@twoside%
+ \clearpage%
+ \ifodd\c@page\else\ESKDthisStyle{empty}\rule{0mm}{0mm}\newpage\fi%
+ \else\clearpage\fi}
+
+\ESKDstyle{\ESKD@default@style@other}
+\AtBeginDocument{%
+ \ifx\ESKD@default@style@first\ESKD@default@style@other\else
+ \ESKDthisStyle{\ESKD@default@style@first}%
+ \fi}
+
+m4_dnl устанавливает стиль по умолчанию для титульного листа
+\newcommand{\ESKDdefaultTitleStyle}[1]{%
+ \renewcommand{\ESKD@default@style@title}{#1}}
+m4_dnl устанавливает стиль по умолчанию первой страницы
+\newcommand{\ESKDdefaultFirstStyle}[1]{%
+ \renewcommand{\ESKD@default@style@first}{#1}}
+m4_dnl устанавливает стиль по умолчанию остальных страниц
+\newcommand{\ESKDdefaultStyle}[1]{%
+ \renewcommand{\ESKD@default@style@other}{#1}%
+ \ESKDstyle{#1}}
+
+\newcommand{\ESKDsetPadding}[2]{%
+ \changepage{%
+ 2\ESKD@curpad@v-#2-#2}{%
+ 2\ESKD@curpad@h-#1-#1}{%
+ #1-\ESKD@curpad@h}{%
+ #1-\ESKD@curpad@h}{}{%
+ #2-\ESKD@curpad@v}{}{}{}
+ \setlength{\ESKD@curpad@h}{#1}
+ \setlength{\ESKD@curpad@v}{#2}
+ \edef\ESKD@tmpcmda{\ESKD@thisstyle}
+ \ifx\ESKD@tmpcmda\@empty\else
+ \ESKDthisStyle{\ESKD@tmpcmda}
+ \fi}
+
+\newenvironment{ESKDpadding}[2]{%
+ \newpage\ESKDsetPadding{#1}{#2}}{%
+ \clearpage\ESKDsetPadding{\ESKD@padding@h}{\ESKD@padding@v}}
+
+\newenvironment{ESKDzeroPadding}{%
+ \begin{ESKDpadding}{0mm}{0mm}}{\end{ESKDpadding}}
+
+\RequirePackage{eskdinfo}
+
+m4_dnl графа 1 -- наименование изделия/документа
+\newcommand{\ESKDtheColumnI}{\ESKDtheTitle\par\ESKDtheDocName}
+\newcommand{\ESKDcolumnI}[1]{\renewcommand{\ESKDtheColumnI}{#1}}
+m4_dnl графа 2 -- обозначение документа
+\newcommand{\ESKDtheColumnII}{\ESKDtheSignature}
+\newcommand{\ESKDcolumnII}[1]{\renewcommand{\ESKDtheColumnII}{#1}}
+m4_dnl графа 3 -- обозначение материала детали
+\newcommand{\ESKDtheColumnIII}{\ESKDtheMaterial}
+\newcommand{\ESKDcolumnIII}[1]{\renewcommand{\ESKDtheColumnIII}{#1}}
+m4_dnl графа 4 -- литера
+m4_dnl поле 1
+\newcommand{\ESKDtheColumnIVfI}{\ESKDtheLetterI}
+\newcommand{\ESKDcolumnIVfI}[1]{\renewcommand{\ESKDtheColumnIVfI}{#1}}
+m4_dnl поле 2
+\newcommand{\ESKDtheColumnIVfII}{\ESKDtheLetterII}
+\newcommand{\ESKDcolumnIVfII}[1]{\renewcommand{\ESKDtheColumnIVfII}{#1}}
+m4_dnl поле 3
+\newcommand{\ESKDtheColumnIVfIII}{\ESKDtheLetterIII}
+\newcommand{\ESKDcolumnIVfIII}[1]{\renewcommand{\ESKDtheColumnIVfIII}{#1}}
+m4_dnl графа 5 -- масса изделия
+\newcommand{\ESKDtheColumnV}{\ESKDtheMass}
+\newcommand{\ESKDcolumnV}[1]{\renewcommand{\ESKDtheColumnV}{#1}}
+m4_dnl графа 6 -- масштаб
+\newcommand{\ESKDtheColumnVI}{\ESKDtheScale}
+\newcommand{\ESKDcolumnVI}[1]{\renewcommand{\ESKDtheColumnVI}{#1}}
+m4_dnl графа 9 -- наименование или различительный индекс предприятия
+\newcommand{\ESKDtheColumnIX}{\ESKDtheGroup}
+\newcommand{\ESKDcolumnIX}[1]{\renewcommand{\ESKDtheColumnIX}{#1}}
+m4_dnl графа 11 -- фамилии лиц, подписывающих документ
+m4_dnl поле 1 -- разработал
+\newcommand{\ESKDtheColumnXIfI}{\ESKDtheAuthor}
+\newcommand{\ESKDcolumnXIfI}[1]{\renewcommand{\ESKDtheColumnXIfI}{#1}}
+m4_dnl поле 2 -- проверил
+\newcommand{\ESKDtheColumnXIfII}{\ESKDtheChecker}
+\newcommand{\ESKDcolumnXIfII}[1]{\renewcommand{\ESKDtheColumnXIfII}{#1}}
+m4_dnl поле 3 -- Т.контр
+\newcommand{\ESKDtheColumnXIfIII}{}
+\newcommand{\ESKDcolumnXIfIII}[1]{\renewcommand{\ESKDtheColumnXIfIII}{#1}}
+m4_dnl поле 4 -- неизвестный
+\newcommand{\ESKDtheColumnXIfIV}{}
+\newcommand{\ESKDcolumnXIfIV}[1]{\renewcommand{\ESKDtheColumnXIfIV}{#1}}
+m4_dnl поле 5 -- нормист
+\newcommand{\ESKDtheColumnXIfV}{\ESKDtheNormContr}
+\newcommand{\ESKDcolumnXIfV}[1]{\renewcommand{\ESKDtheColumnXIfV}{#1}}
+m4_dnl поле 6 -- утвердил
+\newcommand{\ESKDtheColumnXIfVI}{\ESKDtheApprovedBy}
+\newcommand{\ESKDcolumnXIfVI}[1]{\renewcommand{\ESKDtheColumnXIfVI}{#1}}
+m4_dnl графа 19 -- инвентарный номер подлинника по ГОСТ 2.501 68
+\newcommand{\ESKDtheColumnXIX}{}
+\newcommand{\ESKDcolumnXIX}[1]{\renewcommand{\ESKDtheColumnXIX}{#1}}
+m4_dnl графа 21 -- инвентарный номер подлинника, взамен которого выпущен
+m4_dnl данный подлинник по ГОСТ 2.503-90
+\newcommand{\ESKDtheColumnXXI}{}
+\newcommand{\ESKDcolumnXXI}[1]{\renewcommand{\ESKDtheColumnXXI}{#1}}
+m4_dnl графа 22 -- инвентарный номер дубликата по ГОСТ 2.502-68
+\newcommand{\ESKDtheColumnXXII}{}
+\newcommand{\ESKDcolumnXXII}[1]{\renewcommand{\ESKDtheColumnXXII}{#1}}
+m4_dnl графа 24 -- обозначение документа, взамен или на основании
+m4_dnl которого выпущен данный документ
+\newcommand{\ESKDtheColumnXXIV}{}
+\newcommand{\ESKDcolumnXXIV}[1]{\renewcommand{\ESKDtheColumnXXIV}{#1}}
+m4_dnl графа 25 -- обозначение соответствующего документа, в котором впервые
+m4_dnl записан данный документ
+\newcommand{\ESKDtheColumnXXV}{}
+\newcommand{\ESKDcolumnXXV}[1]{\renewcommand{\ESKDtheColumnXXV}{#1}}
+m4_dnl графа 27 -- знак, установленный заказчиком в соответствии
+m4_dnl с требованиями нормативно-технической документации и проставляемый
+m4_dnl представителем заказчика
+\newcommand{\ESKDtheColumnXXVII}{}
+\newcommand{\ESKDcolumnXXVII}[1]{\renewcommand{\ESKDtheColumnXXVII}{#1}}
+m4_dnl графа 28 -- номер решения и год утверждения документации
+m4_dnl соответствующей литеры
+\newcommand{\ESKDtheColumnXXVIII}{}
+\newcommand{\ESKDcolumnXXVIII}[1]{\renewcommand{\ESKDtheColumnXXVIII}{#1}}
+m4_dnl графа 29 -- номер решения и год утверждения документации
+\newcommand{\ESKDtheColumnXXIX}{}
+\newcommand{\ESKDcolumnXXIX}[1]{\renewcommand{\ESKDtheColumnXXIX}{#1}}
+m4_dnl графа 30 -- индекс заказчика в соответствии с нормативно-технической
+m4_dnl документацией
+\newcommand{\ESKDtheColumnXXX}{}
+\newcommand{\ESKDcolumnXXX}[1]{\renewcommand{\ESKDtheColumnXXX}{#1}}
+m4_dnl графа 32 -- обозначение формата листа по ГОСТ 2.301-68
+\newcommand{\ESKDtheColumnXXXII}{\@nameuse{ESKD\ESKD@paper FormatName}}
+\newcommand{\ESKDcolumnXXXII}[1]{\renewcommand{\ESKDtheColumnXXXII}{#1}}
+m4_dnl графа 34 -- номера авторских свидетельств на изобретения,
+m4_dnl использованные в данном изделии
+\newcommand{\ESKDtheColumnXXXIV}{}
+\newcommand{\ESKDcolumnXXXIV}[1]{\renewcommand{\ESKDtheColumnXXXIV}{#1}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdtab.cls.in b/macros/latex/contrib/eskdx/source/eskdtab.cls.in
new file mode 100644
index 0000000000..78ced74433
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdtab.cls.in
@@ -0,0 +1,49 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{eskdtab}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Tabular Documentation]
+
+\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{twoside}{%
+ \PassOptionsToClass{\CurrentOption}{article}%
+ \PassOptionsToPackage{\CurrentOption}{eskdstamp}}
+\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{article}}
+\DeclareOption{formI}{%
+ \ClassError{eskdtext}{formI style is for graphical documentaion}{}}
+\DeclareOption{zonelabels}{%
+ \ClassError{eskdtext}{Zone labels is not allowed for tabular documentaion}{}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eskdstamp}}
+
+\ProcessOptions\relax
+
+\LoadClass{article}
+\RequirePackage{eskdlang}
+\RequirePackage[a4paper,formII]{eskdstamp}
+\RequirePackage{eskdinfo}
+
+m4_dnl vim:ft=tex:ai:sw=2
diff --git a/macros/latex/contrib/eskdx/source/eskdtext.cls.in b/macros/latex/contrib/eskdx/source/eskdtext.cls.in
new file mode 100644
index 0000000000..36c7791e80
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdtext.cls.in
@@ -0,0 +1,114 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{eskdtext}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Textual Documentation]
+
+\newcommand{\ESKD@docfont}{14pt}
+\newcommand{\ESKD@float@style}{single}
+\newcommand{\ESKD@equation@style}{single}
+
+\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{eskdlang}}
+\DeclareOption{12pt}{\renewcommand{\ESKD@docfont}{12pt}}
+\DeclareOption{14pt}{\renewcommand{\ESKD@docfont}{14pt}}
+\DeclareOption{pointsingle}{\PassOptionsToPackage{\CurrentOption}{eskdsect}}
+\DeclareOption{pointsection}{\PassOptionsToPackage{\CurrentOption}{eskdsect}}
+\DeclareOption{pointsubsection}{\PassOptionsToPackage{\CurrentOption}{eskdsect}}
+\DeclareOption{floatsingle}{\renewcommand{\ESKD@float@style}{single}}
+\DeclareOption{floatsection}{\renewcommand{\ESKD@float@style}{section}}
+\DeclareOption{floatsubsection}{\renewcommand{\ESKD@float@style}{subsection}}
+\DeclareOption{equationsingle}{\renewcommand{\ESKD@equation@style}{single}}
+\DeclareOption{equationsection}{\renewcommand{\ESKD@equation@style}{section}}
+\DeclareOption{equationsubsection}{\renewcommand{\ESKD@equation@style}{subsection}}
+\DeclareOption{footnotearabic}{\PassOptionsToPackage{\CurrentOption}{eskdfootnote}}
+\DeclareOption{footnoteasterisk}{\PassOptionsToPackage{\CurrentOption}{eskdfootnote}}
+\DeclareOption{twoside}{%
+ \PassOptionsToClass{\CurrentOption}{extarticle}%
+ \PassOptionsToPackage{\CurrentOption}{eskdstamp}}
+\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{extarticle}}
+\DeclareOption{formI}{%
+ \ClassError{eskdtext}{formI style is for graphical documentaion}{}}
+\DeclareOption{zonelabels}{%
+ \ClassError{eskdtext}{Zone labels is not allowed for textual documentaion}{}}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{eskdstamp}}
+
+\ProcessOptions\relax
+
+\LoadClass[\ESKD@docfont]{extarticle}
+\RequirePackage{eskdlang}
+\RequirePackage[a4paper,formII]{eskdstamp}
+\RequirePackage{eskdindent}
+\RequirePackage{eskdlist}
+\RequirePackage{eskdsect}
+\RequirePackage{eskdcap}
+\RequirePackage{eskdfootnote}
+\RequirePackage{eskdbiblist}
+\RequirePackage{eskdexplan}
+\RequirePackage{eskdinfo}
+\RequirePackage{eskdtitlebase}
+\RequirePackage{eskdtitle}
+
+m4_dnl межстрочный интервал
+\linespread{1.25}
+
+m4_dnl стиль нумерации плавающих объектов
+\newcommand{\ESKD@float@style@single}{}
+
+\newcommand{\ESKD@float@style@section}{
+ \@addtoreset{figure}{section}
+ \@addtoreset{table}{section}
+ \renewcommand{\thefigure}{%
+ \ifnum \c@section>\z@ \thesection.\fi \arabic{figure}}
+ \renewcommand{\thetable}{%
+ \ifnum \c@section>\z@ \thesection.\fi \arabic{table}}}
+
+\newcommand{\ESKD@float@style@subsection}{
+ \@addtoreset{figure}{subsection}
+ \@addtoreset{table}{subsection}
+ \renewcommand{\thefigure}{%
+ \ifnum \c@subsection>\z@ \thesubsection.\fi \arabic{figure}}
+ \renewcommand{\thetable}{%
+ \ifnum \c@subsection>\z@ \thesubsection.\fi \arabic{table}}}
+
+\@nameuse{ESKD@float@style@\ESKD@float@style}
+
+m4_dnl стиль нумерации формул
+\newcommand{\ESKD@equation@style@single}{}
+
+\newcommand{\ESKD@equation@style@section}{
+ \@addtoreset{equation}{section}
+ \renewcommand{\theequation}{%
+ \ifnum \c@section>\z@ \thesection.\fi \arabic{equation}}}
+
+\newcommand{\ESKD@equation@style@subsection}{
+ \@addtoreset{equation}{subsection}
+ \renewcommand{\theequation}{%
+ \ifnum \c@subsection>\z@ \thesubsection.\fi \arabic{equation}}}
+
+\@nameuse{ESKD@equation@style@\ESKD@equation@style}
+
+m4_dnl vim:ft=tex:ai:sw=2
diff --git a/macros/latex/contrib/eskdx/source/eskdtitle.sty.in b/macros/latex/contrib/eskdx/source/eskdtitle.sty.in
new file mode 100644
index 0000000000..9ac32d0d29
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdtitle.sty.in
@@ -0,0 +1,136 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdtitle}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Title GOST 2.105]
+
+\RequirePackage{eskdstamp}
+\RequirePackage{eskdlang}
+\RequirePackage{eskdinfo}
+\RequirePackage{eskdtitlebase}
+
+\newcommand{\ESKD@title@split@field}[2]{%
+ \parbox[t]{.4\hsize}{\raggedright#1}\hfill
+ \parbox[t]{.4\hsize}{\raggedright#2}}
+
+\renewcommand{\ESKDtheTitleFieldI}{%
+ \ESKDtheDepartment\par\ESKDtheCompany}
+
+\def\ESKDtheTitleFieldIIl{}
+\renewcommand{\ESKDtheTitleFieldIIl}{%
+ \ESKDtheClassCode}
+\def\ESKDtheTitleFieldIIr{}
+\renewcommand{\ESKDtheTitleFieldIIr}{}
+\renewcommand{\ESKDtheTitleFieldII}{%
+ \ESKD@title@split@field{\ESKDtheTitleFieldIIl}{\ESKDtheTitleFieldIIr}}
+
+\def\ESKDtheTitleFieldIIIl{}
+\renewcommand{\ESKDtheTitleFieldIIIl}{%
+ \ifx\ESKD@title@approving@sheet\@undefined
+ \expandafter\ifx\csname ESKD@title@agreed@name@1\endcsname\relax\else
+ \textbf{\MakeUppercase{\ESKDagreedName}}\\
+ \ESKD@title@make@stamp{agreed}{1}
+ \fi
+ \else
+ \textbf{\MakeUppercase{\ESKDapprovedName}}\\
+ \ESKD@title@approving@sheet
+ \fi}
+\def\ESKDtheTitleFieldIIIr{}
+\renewcommand{\ESKDtheTitleFieldIIIr}{%
+ \ifx\ESKD@title@approving@sheet\@undefined
+ \expandafter\ifx\csname ESKD@title@approved@name@1\endcsname\relax\else
+ \textbf{\MakeUppercase{\ESKDapprovingName}}\\
+ \ESKD@title@make@stamp{approved}{1}
+ \fi
+ \fi}
+\renewcommand{\ESKDtheTitleFieldIII}{%
+ \ESKD@title@split@field{\ESKDtheTitleFieldIIIl}{\ESKDtheTitleFieldIIIr}}
+
+\renewcommand{\ESKDtheTitleFieldIV}{%
+ \MakeUppercase{\ESKDtheTitle}\par\ESKDtheDocName}
+
+\renewcommand{\ESKDtheTitleFieldV}{}
+
+\renewcommand{\ESKDtheTitleFieldVI}{%
+ \MakeUppercase{\ESKDtheSignature}}
+
+\renewcommand{\ESKDtheTitleFieldVII}{}
+
+\def\ESKDtheTitleFieldVIIIl{}
+\renewcommand{\ESKDtheTitleFieldVIIIl}{%
+ \ifx\ESKD@title@approving@sheet\@undefined
+ \ESKD@tmpcnta = 1
+ \loop
+ \ifnum \ESKD@tmpcnta < \ESKD@title@agreed@cnt
+ \advance \ESKD@tmpcnta 1
+ \ESKD@title@make@stamp{agreed}{\number\ESKD@tmpcnta}
+ \par\vspace{5mm}
+ \repeat
+ \fi}
+\def\ESKDtheTitleFieldVIIIr{}
+\renewcommand{\ESKDtheTitleFieldVIIIr}{%
+ \ifx\ESKD@title@approving@sheet\@undefined
+ \ESKD@tmpcnta = 0
+ \loop
+ \ifnum \ESKD@tmpcnta < \ESKD@title@designed@cnt
+ \advance \ESKD@tmpcnta 1
+ \ESKD@title@make@stamp{designed}{\number\ESKD@tmpcnta}
+ \par\vspace{5mm}
+ \repeat
+ \fi}
+\renewcommand{\ESKDtheTitleFieldVIII}{%
+ \ESKD@title@split@field{\ESKDtheTitleFieldVIIIl}{\ESKDtheTitleFieldVIIIr}}
+
+\renewcommand{\ESKDtheTitleFieldX}{\ESKDtheYear}
+
+\renewcommand{\ESKDtitleFontI}{\ESKDfontV}
+\renewcommand{\ESKDtitleFontII}{\ESKDfontIII}
+\renewcommand{\ESKDtitleFontIII}{%
+ \ESKDfontIII\renewcommand{\baselinestretch}{1.50}\selectfont}
+\renewcommand{\ESKDtitleFontIV}{\ESKDfontV}
+\renewcommand{\ESKDtitleFontV}{\ESKDfontV}
+\renewcommand{\ESKDtitleFontVI}{\ESKDfontV}
+\renewcommand{\ESKDtitleFontVII}{\ESKDfontIII}
+\renewcommand{\ESKDtitleFontVIII}{%
+ \ESKDfontIII\renewcommand{\baselinestretch}{1.25}\selectfont}
+\renewcommand{\ESKDtitleFontX}{\ESKDfontV}
+
+\renewcommand{\maketitle}{%
+ \begin{ESKDtitlePage}
+ \setlength{\topsep}{0mm}
+ \noindent
+ \parbox[c][.28\vsize][t]{\hsize}{%
+ \begin{center}\ESKDtitleFontI\bfseries\ESKDtheTitleFieldI\end{center}
+ \vspace{5mm \@plus 15mm \@minus 3mm}
+ \begin{center}\ESKDtitleFontII\ESKDtheTitleFieldII\end{center}
+ \vspace{10mm \@plus 20mm \@minus 6mm}
+ \begin{center}\ESKDtitleFontIII\ESKDtheTitleFieldIII\end{center}}
+ \par\vspace{10mm \@plus 2mm \@minus 4mm}\noindent
+ \parbox[c][.30\vsize][t]{\hsize}{%
+ \begin{center}\ESKDtitleFontIV\bfseries\ESKDtheTitleFieldIV\end{center}
+ \begin{center}\ESKDtitleFontV\ESKDtheTitleFieldV\end{center}
+ \begin{center}\ESKDtitleFontVI\ESKDtheTitleFieldVI\end{center}
+ \begin{center}\ESKDtitleFontVII\ESKDtheTitleFieldVII\end{center}}
+ \par\vspace{4mm \@plus 2mm \@minus 2mm}\noindent
+ \begin{center}\ESKDtitleFontVIII\ESKDtheTitleFieldVIII\end{center}
+ \vfill
+ \begin{center}\ESKDtitleFontX\ESKDtheTitleFieldX\end{center}
+ \end{ESKDtitlePage}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdtitlebase.sty.in b/macros/latex/contrib/eskdx/source/eskdtitlebase.sty.in
new file mode 100644
index 0000000000..404abfa225
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdtitlebase.sty.in
@@ -0,0 +1,93 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdtitlebase}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Base Title Commands]
+
+m4_dnl должность и фамилия утверждающего
+\newcommand{\ESKDtitleApprovedBy}[2]{%
+ \@namedef{ESKD@title@approved@post@1}{#1}
+ \@namedef{ESKD@title@approved@name@1}{#2}}
+
+\newcount\ESKD@title@agreed@cnt
+\newcount\ESKD@title@designed@cnt
+\ESKD@title@agreed@cnt = 0
+\ESKD@title@designed@cnt = 0
+
+m4_dnl добавляет согласовавшего в список согласовавших
+\newcommand{\ESKDtitleAgreedBy}[2]{%
+ \advance \ESKD@title@agreed@cnt 1
+ \@namedef{ESKD@title@agreed@post@\number\ESKD@title@agreed@cnt}{#1}
+ \@namedef{ESKD@title@agreed@name@\number\ESKD@title@agreed@cnt}{#2}}
+
+m4_dnl добавляет автора в список авторов
+\newcommand{\ESKDtitleDesignedBy}[2]{%
+ \advance \ESKD@title@designed@cnt 1
+ \@namedef{ESKD@title@designed@post@\number\ESKD@title@designed@cnt}{#1}
+ \@namedef{ESKD@title@designed@name@\number\ESKD@title@designed@cnt}{#2}}
+
+\let\ESKD@title@approving@sheet\@undefinded
+m4_dnl в наличии лист утверждения
+\newcommand{\ESKDtitleApprovingSheet}[1]{%
+ \def\ESKD@title@approving@sheet{#1}}
+
+m4_dnl печатает гриф согласования/утверждения
+\newcommand{\ESKDtitleMakeStamp}[2]{#1\\\rule{2cm}{.1mm}\ #2\\
+``\rule{.8cm}{.1mm}'' \rule{2.3cm}{.1mm}\ \rule{1.5cm}{.1mm}}
+
+\newcommand{\ESKD@title@make@stamp}[2]{%
+ \ESKDtitleMakeStamp{%
+ \@nameuse{ESKD@title@#1@post@#2}}{%
+ \@nameuse{ESKD@title@#1@name@#2}}}
+
+m4_dnl поля титульного листа
+\newcommand{\ESKDtheTitleFieldI}{}
+\newcommand{\ESKDtheTitleFieldII}{}
+\newcommand{\ESKDtheTitleFieldIII}{}
+\newcommand{\ESKDtheTitleFieldIV}{}
+\newcommand{\ESKDtheTitleFieldV}{}
+\newcommand{\ESKDtheTitleFieldVI}{}
+\newcommand{\ESKDtheTitleFieldVII}{}
+\newcommand{\ESKDtheTitleFieldVIII}{}
+\newcommand{\ESKDtheTitleFieldIX}{}
+\newcommand{\ESKDtheTitleFieldX}{}
+\newcommand{\ESKDtitleFontI}{}
+\newcommand{\ESKDtitleFontII}{}
+\newcommand{\ESKDtitleFontIII}{}
+\newcommand{\ESKDtitleFontIV}{}
+\newcommand{\ESKDtitleFontV}{}
+\newcommand{\ESKDtitleFontVI}{}
+\newcommand{\ESKDtitleFontVII}{}
+\newcommand{\ESKDtitleFontVIII}{}
+\newcommand{\ESKDtitleFontIX}{}
+\newcommand{\ESKDtitleFontX}{}
+
+\def\ESKD@title@after@page{%
+ \ESKDclearDoublePage
+ \ESKDstyle{\ESKD@default@style@other}
+ \ESKDthisStyle{\ESKD@default@style@first}}
+
+m4_dnl базовый шаблон для любого титульного листа
+\newenvironment{ESKDtitlePage}{%
+ \begin{ESKDpadding}{5mm}{5mm}
+ \ESKDstyle{\ESKD@default@style@title}}{%
+ \end{ESKDpadding}
+ \aftergroup\ESKD@title@after@page}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdtotal.sty.in b/macros/latex/contrib/eskdx/source/eskdtotal.sty.in
new file mode 100644
index 0000000000..5f8d8225c9
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdtotal.sty.in
@@ -0,0 +1,58 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{eskdtotal}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-14#$]]) Total number of tables, figures, etc]
+
+\RequirePackage{eskdsect}
+
+\let\ESKD@old@caption\@caption
+\let\ESKD@old@bibitem\bibitem
+
+\newcounter{ESKD@figure}
+\newcounter{ESKD@table}
+\newcounter{ESKD@bibitem}
+
+\long\def\@caption#1[#2]#3{%
+ \stepcounter{ESKD@#1}%
+ \ESKD@old@caption{#1}[#2]{#3}}
+
+\long\def\bibitem{%
+ \stepcounter{ESKD@bibitem}%
+ \ESKD@old@bibitem}
+
+\def\ESKD@total@save#1#2{%
+ \immediate\write\@auxout{%
+ \string\gdef\string\ESKD@total@saved@\string#1{\arabic{#2}}}}
+
+\AtEndDocument{%
+ \ESKD@total@save{figure}{ESKD@figure}
+ \ESKD@total@save{table}{ESKD@table}
+ \ESKD@total@save{bibitem}{ESKD@bibitem}
+ \ESKD@total@save{appendix}{appendix}
+ \clearpage
+ \addtocounter{page}{-1}
+ \ESKD@total@save{page}{page}
+ \addtocounter{page}{1}}
+
+\newcommand{\ESKDtotal}[1]{%
+ \@ifundefined{ESKD@total@saved@#1}{?}{%
+ \@nameuse{ESKD@total@saved@#1}}}
+
+m4_dnl vim:ft=tex:sw=2:ai
diff --git a/macros/latex/contrib/eskdx/source/eskdukrainian.def.in b/macros/latex/contrib/eskdx/source/eskdukrainian.def.in
new file mode 100644
index 0000000000..d2d2aaa6f7
--- /dev/null
+++ b/macros/latex/contrib/eskdx/source/eskdukrainian.def.in
@@ -0,0 +1,179 @@
+% Copyright 2006 Konstantin Korikov <lostclus@ua.fm>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% This Current Maintainer of this work is Konstantin Korikov.
+%
+% This work consists of all files listed in manifest.txt.
+%
+m4_ESKDX_INIT
+m4_FILE_INIT
+\ProvidesFile{eskdukrainian.def}[m4_dnl
+m4_FILE_ID([[$Date:: 2010-01-17#$]]) Language File]
+
+\newcommand{\ESKDcolumnIVname}{%
+ \cyr\CYRL\cyri\cyrt.}
+\newcommand{\ESKDcolumnVname}{%
+ \cyr\CYRM\cyra\cyrs\cyra}
+\newcommand{\ESKDcolumnVIname}{%
+ \cyr\CYRM\cyra\cyrs\cyrsh\cyrt\cyra\cyrb}
+\newcommand{\ESKDcolumnVIIname}{%
+ \cyr\CYRA\cyrr\cyrk\cyru\cyrsh}
+\newcommand{\ESKDcolumnVIItwosideName}{%
+ \cyr\CYRS\cyrt\cyro\cyrr.}
+\newcommand{\ESKDcolumnVIIIname}{%
+ \cyr\CYRA\cyrr\cyrk\cyru\cyrsh\cyrii\cyrv}
+\newcommand{\ESKDcolumnVIIItwosideName}{%
+ \cyr\CYRS\cyrt\cyro\cyrr\cyrii\cyrn\cyro\cyrk}
+\newcommand{\ESKDcolumnXfIname}{%
+ \cyr\CYRR\cyro\cyrz\cyrr\cyro\cyrb\cyri\cyrv}
+\newcommand{\ESKDcolumnXfIIname}{%
+ \cyr\CYRP\cyre\cyrr\cyre\cyrv\cyrii\cyrr\cyri\cyrv}
+\newcommand{\ESKDcolumnXfIIIname}{%
+ \cyr\CYRT. \cyrk\cyro\cyrn\cyrt\cyrr.}
+\newcommand{\ESKDcolumnXfIVname}{}
+\newcommand{\ESKDcolumnXfVname}{%
+ \cyr\CYRN. \cyrk\cyro\cyrn\cyrt\cyrr.}
+\newcommand{\ESKDcolumnXfVIname}{%
+ \cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyri\cyrv}
+\newcommand{\ESKDcolumnXIVname}{%
+ \cyr\CYRZ\cyrm.}
+\newcommand{\ESKDcolumnXVname}{%
+ \cyr\CYRL\cyri\cyrs\cyrt}
+\newcommand{\ESKDcolumnXVIname}{%
+ \No\ \cyr\cyrd\cyro\cyrk\cyru\cyrm.}
+\newcommand{\ESKDcolumnXVIIname}{%
+ \cyr\CYRP\cyrii\cyrd\cyrp.}
+\newcommand{\ESKDcolumnXVIIIname}{%
+ \cyr\CYRD\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXIXname}{%
+ \cyr\CYRII\cyrn\cyrv. \No\ \cyro\cyrr\cyrii\cyrg.}
+\newcommand{\ESKDcolumnXXname}{%
+ \cyr\CYRP\cyrii\cyrd\cyrp. \cyrii\ \cyrd\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXXIname}{%
+ \cyr\CYRV\cyrz\cyra\cyrm. \cyrii\cyrn\cyrv. \No}
+\newcommand{\ESKDcolumnXXIIname}{%
+ \cyr\CYRII\cyrn\cyrv. \No\ \cyrd\cyru\cyrb\cyrl.}
+\newcommand{\ESKDcolumnXXIIIname}{%
+ \cyr\CYRP\cyrii\cyrd\cyrp. \cyrii\ \cyrd\cyra\cyrt\cyra}
+\newcommand{\ESKDcolumnXXIVname}{%
+ \cyr\CYRS\cyrp\cyrr\cyra\cyrv. \No}
+\newcommand{\ESKDcolumnXXVname}{%
+ \cyr\CYRP\cyre\cyrr\cyrsh. \cyrz\cyra\cyrs\cyrt.}
+\newcommand{\ESKDcolumnXXXIname}{%
+ \cyr\CYRK\cyro\cyrp\cyrii\cyryu\cyrv\cyra\cyrv}
+\@namedef{ESKDa0FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}0}
+\@namedef{ESKDa1FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}1}
+\@namedef{ESKDa2FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}2}
+\@namedef{ESKDa3FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}3}
+\@namedef{ESKDa4FormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}4}
+\@namedef{ESKDemptyFormatName}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \ \ \ }
+\newcommand{\ESKDcolumnXXXIIIname}{%
+ \cyr\CYRZ\cyro\cyrn\cyra}
+
+\newcommand{\ESKDagreedName}{%
+ \cyr\CYRP\cyro\cyrg\cyro\cyrd\cyrzh\cyre\cyrn\cyro}
+\newcommand{\ESKDapprovingName}{%
+ \cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyru\cyryu}
+\newcommand{\ESKDapprovedName}{%
+ \cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyre\cyrn\cyro}
+\newcommand{\ESKDapprovingSheetName}{%
+ \cyr\CYRL\cyri\cyrs\cyrt\ %
+ \cyrz\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyre\cyrn\cyrn\cyrya}
+
+\newlength{\ESKDexplanWidth}
+\setlength{\ESKDexplanWidth}{1.5em}
+
+\addto\captionsukrainian{%
+ \def\tablename{{\cyr\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyrya}}%
+ \def\figurename{{\cyr\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk}}%
+ \def\refname{{\cyr\CYRP\cyre\cyrr\cyre\cyrl\cyrii\cyrk\
+ \cyrp\cyro\cyrs\cyri\cyrl\cyra\cyrn\cyrsftsn}}}
+
+\newcommand{\ESKDspecColumnIname}{%
+ \cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt}
+\newcommand{\ESKDspecColumnIIname}{%
+ \cyr\CYRZ\cyro\cyrn\cyra}
+\newcommand{\ESKDspecColumnIIIname}{%
+ \cyr\CYRP\cyro\cyrz.}
+\newcommand{\ESKDspecColumnIVname}{%
+ \cyr\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}
+\newcommand{\ESKDspecColumnVname}{%
+ \cyr\CYRN\cyra\cyrishrt\cyrm\cyre\cyrn\cyru\cyrv\cyra\cyrn\cyrn\cyrya}
+\newcommand{\ESKDspecColumnVIname}{%
+ \cyr\CYRK\cyrii\cyrl\cyrsftsn\cyrk.}
+\newcommand{\ESKDspecColumnVIIname}{%
+ \cyr\CYRP\cyrr\cyri\cyrm\cyrii\cyrt\cyrk\cyra}
+
+\newcommand{\ESKDspecIIcolumnIname}{\ESKDspecColumnIname}
+\newcommand{\ESKDspecIIcolumnIIname}{\ESKDspecColumnIIname}
+\newcommand{\ESKDspecIIcolumnIIIname}{\ESKDspecColumnIIIname}
+\newcommand{\ESKDspecIIcolumnIVname}{\ESKDspecColumnIVname}
+\newcommand{\ESKDspecIIcolumnVname}{\ESKDspecColumnVname}
+\newcommand{\ESKDspecIIcolumnVIname}{\ESKDspecColumnVIname}
+\newcommand{\ESKDspecIIcolumnVIIname}{%
+ \cyr\CYRM\cyra\cyrs\cyra}
+\newcommand{\ESKDspecIIcolumnVIIIname}{%
+ \cyr\CYRM\cyra\cyrt\cyre\cyrr\cyrii\cyra\cyrl}
+\newcommand{\ESKDspecIIcolumnIXname}{\ESKDspecColumnVIIname}
+
+\newcommand{\ESKDchangeSheetName}{%
+ \cyr\CYRL\cyri\cyrs\cyrt\ %
+ \cyrr\cyre\cyrie\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyryi\ %
+ \cyrz\cyrm\cyrii\cyrn}
+\newcommand{\ESKDchngColumnsIIhName}{%
+ \cyr\CYRN\cyro\cyrm\cyre\cyrr\cyri\ \cyra\cyrr\cyrk\cyru\cyrsh\cyrii\cyrv\ %
+ (\cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyro\cyrk)}
+\newcommand{\ESKDchngColumnIIname}{%
+ \cyr\cyrz\cyrm\cyrii\-\cyrn\cyre\-\cyrn\cyri\cyrh}
+\newcommand{\ESKDchngColumnIIIname}{%
+ \cyr\cyrz\cyra\-\cyrm\cyrii\-\cyrn\cyre\-\cyrn\cyri\cyrh}
+\newcommand{\ESKDchngColumnIVname}{%
+ \cyr\cyrn\cyro\-\cyrv\cyri\cyrh}
+\newcommand{\ESKDchngColumnVname}{%
+ \cyr\cyra\cyrn\cyru\-\cyrl\cyrsftsn\cyro\cyrv\cyra\-\cyrn\cyri\cyrh}
+\newcommand{\ESKDchngColumnVIname}{%
+ \cyr\CYRR\cyra\cyrz\cyro\cyrm\ \cyra\cyrr\cyrk\cyru\cyrsh\cyrii\cyrv\ %
+ (\cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyro\cyrk) \cyrv\ \cyrd\cyro\cyrk\cyru\cyrm.}
+\newcommand{\ESKDchngColumnVIIIname}{%
+ \cyr\CYRV\cyrh\cyrii\cyrd\cyrn\cyri\cyrishrt\ \No\ %
+ \cyrs\cyru\cyrp\cyrr\cyro\cyrv\cyrii\cyrd\cyrn\cyro\cyrg\cyro\ %
+ \cyrd\cyro\cyrk\cyru\cyrm. \cyrii\ %
+ \cyrd\cyra\cyrt\cyra}
+
+\def\@Asbuk#1{\ifcase#1\or
+ \CYRA\or\CYRB\or\CYRV\or\CYRG\or\CYRD\or\CYRE\or
+ \CYRZH\or\CYRI\or
+ \CYRK\or\CYRL\or\CYRM\or\CYRN\or\CYRP\or\CYRR\or
+ \CYRS\or\CYRT\or\CYRU\or\CYRF\or\CYRH\or\CYRC\or
+ \CYRSH\or\CYRSHCH\or\CYRYU\or
+ \CYRYA\else{\@tempcnta \number #1\relax
+ \advance\@tempcnta -24\relax
+ \protect\number\@tempcnta}
+ \fi}
+\def\@asbuk#1{\ifcase#1\or
+ \cyra\or\cyrb\or\cyrv\or\cyrg\or\cyrd\or\cyre\or
+ \cyrzh\or\cyri\or
+ \cyrk\or\cyrl\or\cyrm\or\cyrn\or\cyrp\or\cyrr\or
+ \cyrs\or\cyrt\or\cyru\or\cyrf\or\cyrh\or\cyrc\or
+ \cyrsh\or\cyrshch\or\cyryu\or
+ \cyrya\else{\@tempcnta \number #1\relax
+ \advance\@tempcnta -24\relax
+ \protect\number\@tempcnta}
+ \fi}
+
+m4_dnl vim:ft=tex:ai:sw=2