Начало

This commit is contained in:
Andrei Astafev 2020-03-14 14:58:37 +03:00
commit 016f19ce1e
32 changed files with 4356 additions and 0 deletions

58
xespdafterpkg.sty Normal file
View File

@ -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.
%
% The author of original code of this file is Alexander I. Rozhenko.
% The code is taken from afterpackage.sty from ncctools bundle.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdafterpkg}[2020/03/20 v1.00 Apply Commands After Package]
\newcommand*\XESPD@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\XESPD@after@package
\let\XESPD@ATP@popfilename\@popfilename
\@onlypreamble\XESPD@ATP@popfilename
\def\@popfilename{%
\@ifundefined{\@currname.\@currext-@dd}{}{%
\XESPD@ATP@apply@info{\@currname}%
\csname\@currname.\@currext-@dd\endcsname
\expandafter\let\csname\@currname.\@currext-@dd\endcsname\relax
}%
\XESPD@ATP@popfilename
}
\def\XESPD@ATP@apply@info#1{%
\wlog{After Package Info: Apply commands to #1\on@line}%
}
\@onlypreamble\XESPD@ATP@apply@info

73
xespdappsheet.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdappsheet}[2020/03/20 v1.00 Approving Sheet GOST 2.105]
\RequirePackage{xespdlang}
\RequirePackage{xespdtitle}
\newcount\XESPD@appsheet@doc@cnt
\XESPD@appsheet@doc@cnt = 0
\newcommand{\XESPDapprovingDoc}[1]{%
\advance \XESPD@appsheet@doc@cnt 1
\@namedef{XESPD@appsheet@doc@\number\XESPD@appsheet@doc@cnt}{#1}}
\renewcommand{\XESPDtheTitleFieldV}{%
\XESPDapprovingSheetName}
\renewcommand{\XESPDtheTitleFieldVI}{%
\MakeUppercase{\XESPDtheSignature}}
\renewcommand{\XESPDtheTitleFieldVII}{}
\def\XESPDtheTitleFieldVIIIlb{}
\renewcommand{\XESPDtheTitleFieldVIIIlb}{%
\XESPD@tmpcnta = 1
\XESPD@tmpcntb = \XESPD@appsheet@doc@cnt
\advance \XESPD@tmpcntb 1
\loop
\ifnum \XESPD@tmpcnta < \XESPD@tmpcntb
\@nameuse{XESPD@appsheet@doc@\number\XESPD@tmpcnta}\par
\advance \XESPD@tmpcnta 2
\repeat}
\def\XESPDtheTitleFieldVIIIrb{}
\renewcommand{\XESPDtheTitleFieldVIIIrb}{%
\XESPD@tmpcnta = 2
\XESPD@tmpcntb = \XESPD@appsheet@doc@cnt
\advance \XESPD@tmpcntb 1
\loop
\ifnum \XESPD@tmpcnta < \XESPD@tmpcntb
\@nameuse{XESPD@appsheet@doc@\number\XESPD@tmpcnta}\par
\advance \XESPD@tmpcnta 2
\repeat}
\renewcommand{\XESPDtheTitleFieldVIII}{%
\XESPD@title@split@field{\XESPDtheTitleFieldVIIIl}{\XESPDtheTitleFieldVIIIr}
\par
\XESPD@title@split@field{\XESPDtheTitleFieldVIIIlb}{\XESPDtheTitleFieldVIIIrb}}
\renewcommand{\XESPDtheTitleFieldX}{}
\renewcommand{\XESPDtitleFontX}{\XESPDfontIII}
\newcommand{\XESPDmakeApprovingSheet}{\maketitle}

45
xespdbiblist.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdbiblist}[2020/03/20 v1.00 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}

155
xespdbom.sty Normal file
View File

@ -0,0 +1,155 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdbom}[2010/03/08 v1.00 Bill of materials GOST 2.106-96]
\RequirePackage{xespdlang}
\RequirePackage{xespdstamp}
\RequirePackage{array}
\RequirePackage{longtable}
% зададим размеры колонок таблицы.
\XESPDtabColumnsWidth{7mm 45mm 60mm 70mm 55mm 70mm 16mm 16mm 16mm 16mm 24mm}
% высота шапки таблицы
\setlength{\XESPDtabHeadH}{27mm}
% дополнительные горизонтальный промежуток
% для эстетичности
\newlength{\XESPDbomAddHspace}
\setlength{\XESPDbomAddHspace}{2mm}
% включим автоматическую нумерацию строк
\XESPD@tab@first@column@enumtrue
% переопределим команду отрисовки шапки
\renewcommand{\XESPDtabDrawHead}{
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){%
\begin{picture}(0,0)
\setlength{\XESPD@tmpdima}{\XESPDframeH - \XESPDtabHeadH}
\linethickness{\XESPDlineThick}
\put(0,\XESPDltu{\XESPD@tmpdima}){\line(1,0){\XESPDltu{\XESPDframeW}}}
\XESPD@tmpdimb=0mm
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argi}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argii}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argiii}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argiv}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argv}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argvi}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argvii}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{18mm}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argviii}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{18mm}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argix}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{18mm}}}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \argx}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}
\setlength{\XESPD@tmpdimb}{\argi + \argii + \argiii + \argvi + \argv + \argiv}
\setlength{\XESPD@tmpdima}{\XESPD@tmpdima+18mm}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(1,0){\XESPDltu{64mm}}}
\end{picture}}}
% окружение
\newenvironment{XESPDbillOfMaterials}
{\XESPDtabLTPreamble{%
>{\XESPDfontTabBody\centering}
p{\argi -2\tabcolsep}
@{\hspace{\XESPDbomAddHspace}}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argii -\XESPDbomAddHspace}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argiii -2\tabcolsep}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argiv -2\tabcolsep}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argv -2\tabcolsep}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argvi -2\tabcolsep}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argvii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argviii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argix -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argx -2\tabcolsep}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argxi -2\tabcolsep}
<{\XESPDtabStrut}}
%
{%
\parbox[c][\XESPDtabHeadH][c]{\argi -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDbomColumnIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argii -\XESPDbomAddHspace}{\centering\XESPDfontTabHead%
\hspace{-\XESPDbomAddHspace}%
\strut\XESPDbomColumnIIname}&
\parbox[c][\XESPDtabHeadH][c]{\argiii -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnIIIname}&
\parbox[c][\XESPDtabHeadH][c]{\argiv -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnIVname}&
\parbox[c][\XESPDtabHeadH][c]{\argv -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnVname}&
\parbox[c][\XESPDtabHeadH][c]{\argvi -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnVIname}&
\multicolumn{4}{c}{%
\parbox{64mm -2\tabcolsep}{%
\parbox[c][8mm][c]{64mm -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnsVIIhname}
\parbox[c][17mm][c]{\argvii -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDbomColumnVIIname\strut}\hspace{2\tabcolsep}%
\parbox[c][17mm][c]{\argviii -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDbomColumnVIIIname\strut}\hspace{2\tabcolsep}%
\parbox[c][17mm][c]{\argix -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDbomColumnIXname\strut}\hspace{2\tabcolsep}%
\parbox[c][17mm][c]{\argx -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDbomColumnXname\strut}}}&
\parbox[c][\XESPDtabHeadH][c]{\argxi -2\tabcolsep}{\centering\XESPDfontTabHead%
\strut\XESPDbomColumnXIname}
\tabularnewline%
}
}
%
% прямо сюда вставится содержимое таблицы
%
{\XESPDtabLTAmble}

33
xespdcap.sty Normal file
View File

@ -0,0 +1,33 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdcap}[2020/03/20 v1.00 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}

160
xespdchngsheet.sty Normal file
View File

@ -0,0 +1,160 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdchngsheet}[2020/03/20 v1.00 Sheet of Changes GOST 2.503-90]
\RequirePackage{xespdlang}
\RequirePackage{xespdstamp}
\RequirePackage{array}
\RequirePackage{longtable}
\RequirePackage{multirow}
% Окружение принимает один необязательный аргумент - размер шрифта таблицы.
% По умолчанию он будет равен 10pt
\newenvironment{XESPDchangeSheet}[1][10pt]{%
% Заголовок таблицы будет набран шрифтом 10pt
\renewcommand{\XESPDfontTabHead}{%
\fontsize{10pt}{12pt}\selectfont\XESPDfontShape}
% слегка растянем табличную подпорку для класса xespdtab
\@ifundefined{XESPD@docfont}{\renewcommand{\arraystretch}{1.225}}{}%
\begin{XESPDzeroPadding}
\XESPDclearDoublePage
\setlength{\tabcolsep}{0.5mm}
\newlength{\XESPDchngColumnIwidth}
\setlength{\XESPDchngColumnIwidth}{8mm}
\newlength{\XESPDchngColumnIIwidth}
\setlength{\XESPDchngColumnIIwidth}{20mm}
\newlength{\XESPDchngColumnIIIwidth}
\setlength{\XESPDchngColumnIIIwidth}{20mm}
\newlength{\XESPDchngColumnIVwidth}
\setlength{\XESPDchngColumnIVwidth}{20mm}
\newlength{\XESPDchngColumnVwidth}
\setlength{\XESPDchngColumnVwidth}{20mm}
\newlength{\XESPDchngColumnVIwidth}
\setlength{\XESPDchngColumnVIwidth}{20mm}
\newlength{\XESPDchngColumnVIIwidth}
\setlength{\XESPDchngColumnVIIwidth}{25mm}
\newlength{\XESPDchngColumnVIIIwidth}
\setlength{\XESPDchngColumnVIIIwidth}{25mm}
\newlength{\XESPDchngColumnIXwidth}
\setlength{\XESPDchngColumnIXwidth}{15mm}
\newlength{\XESPDchngColumnXwidth}
\setlength{\XESPDchngColumnXwidth}{12mm}
\newcommand{\chngsheet@firsthead}{
\multicolumn{10}{|c}
{\parbox[c][10mm][c]{\textwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchangeSheetName}}\\\hline}
\newcommand{\chngsheet@secondhead}{%
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnIname}}&
\multicolumn{4}{c|}
{\parbox[c][5mm][c]{80mm -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnsIIhName}}&
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnVIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnVIname}}&
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnVIIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnVIIname}}&
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnVIIIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnVIIIname}}&
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnIXwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnIXname}}&
\multirow{2}{*}[-1mm]
{\parbox[c][25mm][c]{\XESPDchngColumnXwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnXname}}\\\cline{2-5}
&
\parbox[c][20mm][c]{\XESPDchngColumnIIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnIIname}&
\parbox[c][20mm][c]{\XESPDchngColumnIIIwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnIIIname}&
\parbox[c][20mm][c]{\XESPDchngColumnIVwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnIVname}&
\parbox[c][20mm][c]{\XESPDchngColumnVwidth -2\tabcolsep}
{\centering\XESPDfontTabHead\XESPDchngColumnVname}&&&&\\\hline}
\fontsize{#1}{6mm}\XESPDfontShape\selectfont
\noindent
\begin{longtable}{% дополнительно надо вычесть еще ширИны самих линеек таблицы
p{\XESPDchngColumnIwidth -2\tabcolsep -0.2mm}
|p{\XESPDchngColumnIIwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnIIIwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnIVwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnVwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnVIwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnVIIwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnVIIIwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnIXwidth -2\tabcolsep -0.1mm}
|p{\XESPDchngColumnXwidth -2\tabcolsep -0.2mm}}
\hline
\chngsheet@firsthead\chngsheet@secondhead\endfirsthead
\chngsheet@secondhead\endhead
\hline\endfoot
\endlastfoot}%
{\end{longtable}\end{XESPDzeroPadding}%
\renewcommand{\arraystretch}{1}%
}
\newcommand{\XESPDchangeSheetFill}{%
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline
&&&&&&&&&\\\hline%
}

79
xespdcmplist.sty Normal file
View File

@ -0,0 +1,79 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdcmplist}[2010/03/08 v1.00 Component List GOST 2.701-84]
\RequirePackage{xespdlang}
\RequirePackage{xespdstamp}
\RequirePackage{rotating}
\RequirePackage{array}
\RequirePackage{longtable}
% зададим размеры колонок таблицы.
\XESPDtabColumnsWidth{20mm 110mm 10mm 45mm}
% высота шапки таблицы
\setlength{\XESPDtabHeadH}{15mm}
% дополнительные горизонтальный промежуток
% для эстетичности
\newlength{\XESPDcmplistAddHspace}
\setlength{\XESPDcmplistAddHspace}{2mm}
% создадим окружение "перечень элементов"
% длины \argi и т.д. - это полученные в результате работы макроса \XESPDtabColumnsWidth длины
\newenvironment{XESPDcomponentList}
{\XESPDtabLTPreamble{%
% это преамбула таблицы (longtable), которая используется в качестве основы документа
% Правила заполнения:
% - все столбцы верстаются с модификатором p{...}, если необходимо выравнивание -
% применять декларации, напр. \centering
% - если в столбце предполагается перенос строк - с двух сторон вставлять \XESPDtabStrut
>{\XESPDfontTabBody\centering}
p{\argi -2\tabcolsep}
@{\hspace{\XESPDcmplistAddHspace}}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argii -\XESPDcmplistAddHspace}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argiii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argiv -2\tabcolsep}}
%
{% это второй аргумент - шапка таблицы, по факту - это просто первая строка
\parbox[c][\XESPDtabHeadH][c]{\argi -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDcmplistColumnIname}&
\parbox[c][\XESPDtabHeadH][c]{\argii -\XESPDcmplistAddHspace}{\centering\XESPDfontTabHead%
\XESPDcmplistColumnIIname}&
\parbox[c][\XESPDtabHeadH][c]{\argiii -2\tabcolsep}{\centering%
\XESPDsmartScaleBox{\argiii -2\tabcolsep}{\XESPDfontTabHead\XESPDcmplistColumnIIIname}}&
\parbox[c][\XESPDtabHeadH][c]{\argiv -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDcmplistColumnIVname}\tabularnewline%
}
}
%
% прямо сюда вставится содержимое таблицы
%
{\XESPDtabLTAmble}

48
xespddstu.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespddstu}[2020/03/20 v1.00 Ukrainian DSTU implementation]
% Настройка пояснений к формулам согласно ДСТУ 3008, п. 7.10.3
% временная длина для передачи внутрь окружения {list}
% величины абзацного отступа
\setlength{\XESPDexplanIndent}{\parindent}
% определим нашу собственную команду для замены \makelabel
\newcommand{\XESPD@dstu@expl@label}[1]{%
\ifthenelse{\equal{}{#1}}
{}
{\hspace{\XESPDexplanIndent}#1}%
}
\renewenvironment{XESPDexplanation}[1][\XESPDexplanWidth]{%
\begin{list}{}{\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\labelsep}{0pt}%
\setlength{\labelwidth}{0pt}%
\setlength{\leftmargin}{0pt}%
\let\makelabel\XESPD@dstu@expl@label}}{%
\end{list}}

41
xespdexplan.sty Normal file
View File

@ -0,0 +1,41 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdexplan}[2020/03/20 v1.00 XESPD Explanation]
\RequirePackage{xespdlang}
\newlength{\XESPDexplanIndent}
% По умолчанию пояснения к формулам прижимаются левому к краю страницы
% и не имеют отступа, так как ГОСТ 2.105-95 четко не говорит нужно ли
% ставить отступ перед пояснениями или нет.
\setlength{\XESPDexplanIndent}{0pt}
\newenvironment{XESPDexplanation}[1][\XESPDexplanWidth]{%
\begin{list}{}{\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\labelsep}{0pt}%
\setlength{\labelwidth}{#1}%
\setlength{\leftmargin}{\labelwidth+\XESPDexplanIndent}}}{%
\end{list}}

56
xespdfont.sty Normal file
View File

@ -0,0 +1,56 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdfont}[2020/03/20 v1.00 Font Definitions]
\newcommand{\XESPDfontBaseLineStretch}{1}
\newcommand{\XESPDfontSetBaseLineStretch}{%
\renewcommand{\baselinestretch}{\XESPDfontBaseLineStretch}}
\newcommand{\XESPDfontShape}{\slshape}
\newcommand{\XESPDfontIIsize}{\fontsize{8pt}{10pt}}
\newcommand{\XESPDfontIIIsize}{\fontsize{10pt}{12pt}}
\newcommand{\XESPDfontVsize}{\fontsize{16pt}{18pt}}
\newcommand{\XESPDfontVIIsize}{\fontsize{20pt}{23pt}}
\newcommand{\XESPDfontXsize}{\fontsize{32pt}{38pt}}
\newcommand{\XESPDfontII}{%
\XESPDfontSetBaseLineStretch
\XESPDfontIIsize\selectfont\XESPDfontShape}
\newcommand{\XESPDfontIII}{%
\XESPDfontSetBaseLineStretch
\XESPDfontIIIsize\selectfont\XESPDfontShape}
\newcommand{\XESPDfontV}{%
\XESPDfontSetBaseLineStretch
\XESPDfontVsize\selectfont\XESPDfontShape}
\newcommand{\XESPDfontVII}{%
\XESPDfontSetBaseLineStretch
\XESPDfontVIIsize\selectfont\XESPDfontShape}
\newcommand{\XESPDfontX}{%
\XESPDfontSetBaseLineStretch
\XESPDfontXsize\selectfont\XESPDfontShape}
\newcommand{\XESPDfontTabHead}{\XESPDfontIII}
\newcommand{\XESPDfontTabBody}{\XESPDfontIII}

80
xespdfootnote.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdfootnote}[2020/03/20 v1.00 Footnote Settings]
% Нумероваться сноски должны в пределах одной страницы.
% Самое очевидное решение - переподчинить счетчик footnote счетчику page,
% но такой метод будет давать сбои, если сноска вставлена
% близко к концу страницы.
% Эту проблему решил Обердайк в своем пакете zref
% пакет amsmath должен быть загружен ПЕРЕД zref
% возможно стоит загружать его в классе xespdtext
% а не здесь
\RequirePackage{amsmath}
\RequirePackage{zref-perpage}
% привязываем сброс счетчика сносок к границам страниц
\zmakeperpage{footnote}
% Нижеследующая строка была взята из xespddstu.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{xespdfootnote}{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}

180
xespdfreesize.sty Normal file
View File

@ -0,0 +1,180 @@
% 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.
%
% Пакет предоставляет возможность вставки листа
% почти любого размера (ограничения описаны в руководстве
% пользователя xespdx):
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdfreesize}[2020/03/20 v1.00 Inserting Free Size Sheets]
\RequirePackage{xespdstamp}
% переключение размера возможно только в pdflatex.
% Tем не менее, latex тоже сможет собрать такой документ,
% но все большие страницы
% обрежет по размерам формата, установленного в documentclass
\RequirePackage{ifpdf}
\ifpdf{}
\else{\PackageWarningNoLine{xespdfreesize}
{It's better to compile this document with pdflatex.\MessageBreak
In DVI you will get only part of the inserted big sheet}}
\fi
% в xespdstamp для ускорения отрисовки рамки применен \savebox
% в нашем случае это неудобно, будем рисовать персонально
% на каждой странице
\newcommand{\XESPDdrawFrameFree}{%
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){%
\setlength{\unitlength}{1mm}%
\begin{picture}(0,0)(0,0)
\linethickness{\XESPDlineThick}
\put(0,\XESPDltu{\XESPDframeH}){\line(1,0){\XESPDltu{\XESPDframeW}}}
\put(0,0){\line(1,0){\XESPDltu{\XESPDframeW}}}
\put(0,0){\line(0,1){\XESPDltu{\XESPDframeH}}}
\put(\XESPDltu{\XESPDframeW},0){\line(0,1){\XESPDltu{\XESPDframeH}}}
\end{picture}}}
% содержимое нестандартной графы 32 по умолчанию
\newcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDemptyFormatName}}
% определим нашу собственную нестандартную графу 32
\newcommand{\XESPDdrawColumnXXXIIfree}{%
\setlength{\XESPD@tmpdima}{\XESPDframeX+\XESPDframeW-50mm}%
\setlength{\XESPD@tmpdimb}{\XESPDframeY-3.7mm}%
\put(\XESPDltu{\XESPD@tmpdima},\XESPDltu{\XESPD@tmpdimb}){%
\makebox[50mm][r]{\XESPDfontIII\XESPDtheColumnXXXIIfree}}}
% Определим новый стиль. Подробнее про определение своих стилей
% можно прочитать в руководстве пользователя xespdx,
% или заглянуть в xespdstamp.sty,
% кусок оттуда был использован как основа для стиля freesize
\XESPDnewStyle{freesize}{8mm}
\@ifpackageloaded{xespdplain}{
\XESPDputOnStyle{freesize}{pagenumber}{\XESPDdrawPlainPageNumber}}
{
\XESPDputOnStyle{freesize}{frame}{\XESPDdrawFrameFree}
\XESPDputOnStyle{freesize}{stamp}{\XESPDdrawStampIIa}
\ifXESPD@enable@columns@xix
\XESPDputOnStyle{freesize}{columnsxix}{\XESPDdrawColumnsXIX}
\fi
\ifXESPD@enable@column@xxvi
\@ifclassloaded{xespdgraph}{% графа 26 нужна только для чертежей
\XESPDputOnStyle{freesize}{columnxxvi}{\XESPDdrawColumnXXVI}}
\fi
\ifXESPD@enable@column@xxxii
% наша новая графа 32
\XESPDputOnStyle{freesize}{columnxxxii}{\XESPDdrawColumnXXXIIfree}
\fi
\ifXESPD@enable@column@xxxiii
\XESPDputOnStyle{freesize}{columnxxxiii}{\XESPDdrawColumnXXXIII}
\fi
\ifXESPD@enable@column@xxxiv
\XESPDputOnStyle{freesize}{columnxxxiv}{\XESPDdrawColumnXXXIV}
\fi
\ifXESPD@zonelabels%
\XESPDputOnStyle{freesize}{zonelabels}{\XESPDdrawZoneLabelsI}
\fi}
% вспомогательные счетчики для записей в лог
\newcounter{XESPD@free@sizepagebegin}
\newcounter{XESPD@free@sizepageend}
% теперь самое сложное - сам переключатель
\newcommand{\XESPDfreeSize}[3]{%
\@ifundefined{XESPD@no@specii@sizes}{}{\XESPD@no@specii@sizes}% для нормальной работы с плазовой спецификацией
\XESPDclearDoublePage%
\setcounter{XESPD@free@sizepagebegin}{\value{page}}% запомним текущую страницу
\pdfpagewidth=#1%
\pdfpageheight=#2%
\setlength{\XESPD@origin@y}{#2-1in}%
\setlength{\XESPDframeW}{\pdfpagewidth-\XESPD@margin@si-\XESPD@margin@so}%
\setlength{\XESPDframeH}{\pdfpageheight-\XESPD@margin@t-\XESPD@margin@b}%
\XESPDstyle{freesize}%
\expandafter{#3}%
% зафиксируем факт вставки листа в \jobname.log
\XESPDclearDoublePage%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDemptyFormatName}}% сброс графы 32
\setcounter{XESPD@free@sizepageend}{\value{page}}%
\addtocounter{XESPD@free@sizepageend}{-1}%
\ifthenelse{\value{XESPD@free@sizepagebegin}<\value{XESPD@free@sizepageend}}% латех начал новую страницу
{\immediate\write0{xespdfreesize: sheet(s) with size (#1 x #2) inserted
at page(s) \noexpand[\arabic{XESPD@free@sizepagebegin}%
-\arabic{XESPD@free@sizepageend}\noexpand]}}
{\immediate\write0{xespdfreesize: sheet(s) with size (#1 x #2) inserted
at page(s) \noexpand[\arabic{XESPD@free@sizepageend}\noexpand]}}
% теперь вернем всё как было до нас
\setlength{\XESPD@origin@y}{\paperheight-1in}%
\pdfpageheight=\paperheight%
\pdfpagewidth=\paperwidth%
\setlength{\XESPDframeW}{\paperwidth-\XESPD@margin@si-\XESPD@margin@so}%
\setlength{\XESPDframeH}{\paperheight-\XESPD@margin@t-\XESPD@margin@b}%
\XESPDstyle{\XESPD@default@style@other}%
\newpage%
}
% Определим несколько готовых к употреблению форматов
\newcommand{\XESPDlandscapeAIV}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa4FormatName}}%
\XESPDfreeSize{297mm}{210mm}{#1}}
\newcommand{\XESPDportraitAIV}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa4FormatName}}%
\XESPDfreeSize{210mm}{297mm}{#1}}
\newcommand{\XESPDlandscapeAIII}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa3FormatName}}%
\XESPDfreeSize{420mm}{297mm}{#1}}
\newcommand{\XESPDportraitAIII}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa3FormatName}}%
\XESPDfreeSize{297mm}{420mm}{#1}}
\newcommand{\XESPDlandscapeAII}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa2FormatName}}%
\XESPDfreeSize{594mm}{420mm}{#1}}
\newcommand{\XESPDportraitAII}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa2FormatName}}%
\XESPDfreeSize{420mm}{594mm}{#1}}
\newcommand{\XESPDlandscapeAI}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa1FormatName}}%
\XESPDfreeSize{841mm}{594mm}{#1}}
\newcommand{\XESPDportraitAI}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa1FormatName}}%
\XESPDfreeSize{594mm}{841mm}{#1}}
\newcommand{\XESPDlandscapeAZERO}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa0FormatName}}%
\XESPDfreeSize{1189mm}{841mm}{#1}}
\newcommand{\XESPDportraitAZERO}[1]{%
\renewcommand\XESPDtheColumnXXXIIfree{\@nameuse{XESPDa0FormatName}}%
\XESPDfreeSize{841mm}{1189mm}{#1}}
\newcommand{\XESPDlandscapeBanner}[1]{%
% Пятиметровое полотно для подшивки гармошкой в обычную папку А4.
% Просто для демонстрации
\XESPDfreeSize{5000mm}{297mm}{#1}}

52
xespdgraph.cls Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xespdgraph}[2020/03/20 v1.00 Graphical Documentation]
\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{twoside}{%
\ClassError{xespdgraph}{Two side printing is not allowed for
graphical documentation}{}}
\DeclareOption{formII}{%
\ClassError{xespdgraph}{formII style is for textual documentation}{}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xespdstamp}}
\ProcessOptions\relax
\LoadClass{article}
\RequirePackage{xespdlang}
\RequirePackage[formI,columnxxvi,ignorestamp]{xespdstamp}
\RequirePackage{xespdinfo}
\newenvironment{XESPDdrawing}{%
\clearpage\mbox{}\strut\par\vspace{-\baselineskip}\vfill%
\begin{center}}{\end{center}\vfill\clearpage}

60
xespdhash.sty Normal file
View File

@ -0,0 +1,60 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdhash}[2020/03/20 v1.00 Hash Routines]
\newcommand{\XESPD@hash@new}[1]{%
\global\expandafter\newcount\csname XESPD@hash@c@#1\endcsname
\global\csname XESPD@hash@c@#1\endcsname = 0
\global\expandafter\newcount\csname XESPD@hash@p@#1\endcsname
\global\csname XESPD@hash@p@#1\endcsname = 0\relax}
\newcommand{\XESPD@hash@set}[3]{%
\expandafter\ifx\csname XESPD@hash@v@#1@#2\endcsname\relax
\expandafter\gdef\csname XESPD@hash@k@#1@\expandafter\number\csname
XESPD@hash@c@#1\endcsname\endcsname{#2}
\expandafter\advance\csname XESPD@hash@c@#1\endcsname 1
\fi
\expandafter\gdef\csname XESPD@hash@v@#1@#2\endcsname{#3}}
\newcommand{\XESPD@hash@get}[2]{%
\csname XESPD@hash@v@#1@#2\endcsname}
\newcommand{\XESPD@hash@reset}[1]{%
\csname XESPD@hash@p@#1\endcsname = 0\relax}
\newcommand{\XESPD@hash@next@key}[1]{%
\csname XESPD@hash@k@#1@\expandafter\number\csname
XESPD@hash@p@#1\endcsname\endcsname
\expandafter\advance\csname XESPD@hash@p@#1\endcsname 1\relax}
\newcommand{\XESPD@hash@next@value}[1]{%
\csname XESPD@hash@v@#1@\csname XESPD@hash@k@#1@\expandafter\number\csname
XESPD@hash@p@#1\endcsname\endcsname\endcsname
\expandafter\advance\csname XESPD@hash@p@#1\endcsname 1\relax}
\newcommand{\XESPD@hash@count}[1]{%
\expandafter\number\csname XESPD@hash@c@#1\endcsname}
\newcommand{\XESPD@hash@pos}[1]{%
\expandafter\number\csname XESPD@hash@p@#1\endcsname}

27
xespdindent.sty Normal file
View File

@ -0,0 +1,27 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdindent}[2020/03/20 v1.00 Paragraph Indent]
\RequirePackage{indentfirst}
\setlength{\parindent}{15mm}

102
xespdinfo.sty Normal file
View File

@ -0,0 +1,102 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdinfo}[2020/03/20 v1.00 Document Information]
\newcommand{\XESPDtheDepartment}{}
\newcommand{\XESPDdepartment}[1]{\renewcommand{\XESPDtheDepartment}{#1}}
\newcommand{\XESPDtheCompany}{}
\newcommand{\XESPDcompany}[1]{\renewcommand{\XESPDtheCompany}{#1}}
\newcommand{\XESPDtheClassCode}{}
\newcommand{\XESPDclassCode}[1]{\renewcommand{\XESPDtheClassCode}{#1}}
\newcommand{\XESPDtheUnitName}{}
\newcommand{\XESPDunitName}[1]{%
\renewcommand{\XESPDtheUnitName}{#1}%
\renewcommand{\@title}{#1}}
\newcommand{\XESPDtheTitle}{\XESPDtheUnitName}
\newcommand{\XESPDtitle}[1]{\XESPDunitName{#1}}
\renewcommand{\title}[1]{\XESPDunitName{#1}}
\newcommand{\XESPDtheDocName}{}
\newcommand{\XESPDdocName}[1]{\renewcommand{\XESPDtheDocName}{#1}}
\newcommand{\XESPDtheSignature}{}
\newcommand{\XESPDsignature}[1]{\renewcommand{\XESPDtheSignature}{#1}}
\newcommand{\XESPDtheLetterI}{}
\newcommand{\XESPDtheLetterII}{}
\newcommand{\XESPDtheLetterIII}{}
\newcommand{\XESPDletter}[3]{%
\renewcommand{\XESPDtheLetterI}{#1}%
\renewcommand{\XESPDtheLetterII}{#2}%
\renewcommand{\XESPDtheLetterIII}{#3}}
\newcommand{\XESPDtheMaterial}{}
\newcommand{\XESPDmaterial}[1]{%
\renewcommand{\XESPDtheMaterial}{#1}}
\newcommand{\XESPDtheMass}{}
\newcommand{\XESPDmass}[1]{%
\renewcommand{\XESPDtheMass}{#1}}
\newcommand{\XESPDtheScale}{}
\newcommand{\XESPDscale}[1]{%
\renewcommand{\XESPDtheScale}{#1}}
\newcommand{\XESPDtheGroup}{}
\newcommand{\XESPDgroup}[1]{\renewcommand{\XESPDtheGroup}{#1}}
\newcommand{\XESPDtheAuthor}{}
\newcommand{\XESPDauthor}[1]{%
\renewcommand{\XESPDtheAuthor}{#1}%
\renewcommand{\@author}{#1}}
\renewcommand{\author}[1]{\XESPDauthor{#1}}
\newcommand{\XESPDtheChecker}{}
\newcommand{\XESPDchecker}[1]{\renewcommand{\XESPDtheChecker}{#1}}
\newcommand{\XESPDtheNormContr}{}
\newcommand{\XESPDnormContr}[1]{\renewcommand{\XESPDtheNormContr}{#1}}
\newcommand{\XESPDtheApprovedBy}{}
\newcommand{\XESPDapprovedBy}[1]{\renewcommand{\XESPDtheApprovedBy}{#1}}
\newcommand{\XESPDtheYear}{\number\year}
\newcommand{\XESPDtheMonth}{\number\month}
\newcommand{\XESPDtheDay}{\number\day}
\def\XESPD@set@date#1/#2/#3 enddate{%
\renewcommand{\XESPDtheYear}{#1}%
\renewcommand{\XESPDtheMonth}{#2}%
\renewcommand{\XESPDtheDay}{#3}}
\newcommand{\XESPDdate}[1]{%
\XESPD@set@date #1 enddate%
\renewcommand{\@date}{#1}}
\renewcommand{\date}[1]{\XESPDdate{#1}}
\RequirePackage{xespdafterpkg}
\XESPD@after@package{hyperref}{%
\hypersetup{breaklinks,pdftitle=\XESPDtheUnitName,%
pdfsubject=\XESPDtheDocName,pdfauthor=\XESPDtheAuthor}}

44
xespdlang.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdlang}[2020/03/20 v1.00 Language]
\newcommand{\XESPD@lang}{russian}
\newif\ifXESPD@given@encoding
\XESPD@given@encodingfalse
\DeclareOption{russian}{\renewcommand{\XESPD@lang}{russian}}
\DeclareOption{ukrainian}{\renewcommand{\XESPD@lang}{ukrainian}}
\DeclareOption*{%
\PassOptionsToPackage{\CurrentOption}{inputenc}%
\XESPD@given@encodingtrue}
\ProcessOptions\relax
\ifXESPD@given@encoding
\RequirePackage{inputenc}
\fi
\RequirePackage[\XESPD@lang]{babel}
\input{xespd\XESPD@lang.def}

67
xespdlist.sty Normal file
View File

@ -0,0 +1,67 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdlist}[2020/03/20 v1.00 List]
\RequirePackage{calc}
% согласно ГОСTу маркированные (нумерованные) списки должны
% выглядеть как обычный абзац, только с маркером (номером)
% в начале абзаца.
% Воспользуемся существующим пакетом paralist
\RequirePackage{paralist}
% просто переопределим окружения itemize и enumerate
% по умолчанию будут использоваться стандартные
% латеховые списки
\DeclareOption{stdlist}{}
\DeclareOption{listlikepar}{
\renewenvironment{itemize}{\begin{asparaitem}}{\end{asparaitem}}
\renewenvironment{enumerate}{\begin{asparaenum}}{\end{asparaenum}}
}
\ProcessOptions\relax
\renewcommand{\theenumi}{\asbuk{enumi}}
\renewcommand{\labelenumi}{\theenumi)}
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumii)}
\renewcommand{\labelitemi}{\bfseries\textendash}
\renewcommand{\labelitemii}{\bfseries\textendash}
\renewcommand{\labelitemiii}{\bfseries\textendash}
\renewcommand{\labelitemiv}{\bfseries\textendash}
\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}

91
xespdlongtable.sty Normal file
View File

@ -0,0 +1,91 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdlongtable}[2010/01/14 v1.00 Patches for Longtable]
% Фактически, данный файл представляет собой набор исправлений,
% возможно, некрасивых хаков, для пакета longtable.
\RequirePackage{longtable}
% Это необходимо для соответствия требованиям ЕСКД.
% По ГОСТ, если таблица не умещается на странице, ее можно разорвать.
% На месте разрыва закрывающую линию рисовать не положено, но
% longtable так не умеет.
\renewcommand\LT@@hline{%
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
\else
\global\let\@gtempa\@empty
\gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
\fi
\ifnum0=`{\fi}%
\multispan\LT@cols
% \unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr % оригинальная строка
\cr% исправленная строка
\noalign{\LT@sep}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\penalty\@M}%
\@gtempa}
% Данный кусок кода исправляет следующую ситуацию:
% когда longtable окружена только командами секционирования
% без "свободного" текста, отбивка между последней строкой
% таблицы и новой (sub)section имеет размер \LTpost, по
% умочанию \baselineskip (см. документацию longtable)
% Фактически, мы просто переведем latex в вертикальный режим
\renewcommand\endlongtable{%
\crcr
\noalign{%
\let\LT@entry\LT@entry@chop
\xdef\LT@save@row{\LT@save@row}}%
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\if@filesw
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname LT@\romannumeral\c@LT@tables\endcsname
{\LT@save@row}}}%
\fi
\ifx\LT@save@row\LT@@save@row
\else
\LT@warn{Column \@width s have changed\MessageBreak
in table \thetable}%
\LT@final@warn
\fi
\endgraf\penalty -\LT@end@pen
\endgroup
\global\@mparbottom\z@
\pagegoal\vsize
% \endgraf\penalty\z@\addvspace\LTpost %оригинальная строка
\vskip-\baselineskip\mbox{} \endgraf\penalty\z@\addvspace\LTpost %исправленная
\ifvoid\footins\else\insert\footins{}\fi}

51
xespdpara.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdpara}[2020/03/20 v1.00 Paragraphs]
\RequirePackage{xespdsect}
\newcommand{\XESPDparagraphAlign}{\XESPDsectAlignLeft}
\newcommand{\XESPDsubparagraphAlign}{\XESPDsectAlignLeft}
\newcommand{\XESPDparagraphStyle}{\normalfont\normalsize\bfseries}
\newcommand{\XESPDsubparagraphStyle}{\normalfont\normalsize\bfseries}
\newlength{\XESPDparagraphSkipBefore}
\newlength{\XESPDparagraphSkipAfter}
\setlength{\XESPDparagraphSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
\setlength{\XESPDparagraphSkipAfter}{15mm \@plus 1mm \@minus 2mm}
\newlength{\XESPDsubparagraphSkipBefore}
\newlength{\XESPDsubparagraphSkipAfter}
\setlength{\XESPDsubparagraphSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
\setlength{\XESPDsubparagraphSkipAfter}{15mm \@plus 1mm \@minus 2mm}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
{\XESPDparagraphSkipBefore}%
{\XESPDparagraphSkipAfter}%
{\XESPDparagraphAlign\XESPDparagraphStyle}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{\XESPDsubparagraphSkipBefore}%
{\XESPDsubparagraphSkipAfter}%
{\XESPDsubparagraphAlign\XESPDsubparagraphStyle}}

87
xespdplain.sty Normal file
View File

@ -0,0 +1,87 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdplain}[2020/03/20 v1.00 Plain Page Style]
\RequirePackage{xespdstamp}
\RequirePackage{calc}
\def\XESPD@plain@vt{%
\setlength{\XESPD@tmpdimc}{%
\XESPDframeY+\XESPDframeH-\XESPD@padding@v}}
\def\XESPD@plain@vb{%
\setlength{\XESPD@tmpdimc}{%
\XESPDframeY+\XESPD@padding@v-15mm}}
\def\XESPD@plain@hl{%
\ifXESPD@twoside
\ifodd\c@page\raggedright\else\raggedleft\fi
\else\raggedright\fi}
\def\XESPD@plain@hr{%
\ifXESPD@twoside
\ifodd\c@page\raggedleft\else\raggedright\fi
\else\raggedleft\fi}
\def\XESPD@plain@hc{\centering}
\let\XESPD@plain@ha\XESPD@plain@hc
\let\XESPD@plain@va\XESPD@plain@vb
\DeclareOption{numbertop} {\let\XESPD@plain@va\XESPD@plain@vt}
\DeclareOption{numberbottom}{\let\XESPD@plain@va\XESPD@plain@vb}
\DeclareOption{numberleft} {\let\XESPD@plain@ha\XESPD@plain@hl}
\DeclareOption{numbercenter}{\let\XESPD@plain@ha\XESPD@plain@hc}
\DeclareOption{numberright} {\let\XESPD@plain@ha\XESPD@plain@hr}
\ProcessOptions\relax
\newcommand{\XESPDdrawPlainPageNumber}{
\setlength{\XESPD@tmpdima}{\XESPDframeX+\XESPD@padding@h}
\setlength{\XESPD@tmpdimb}{\XESPDframeW-2\XESPD@padding@h}
\XESPD@plain@va
\put(\XESPDltu{\XESPD@tmpdima},\XESPDltu{\XESPD@tmpdimc}){%
\parbox[b][15mm][c]{\XESPD@tmpdimb}{%
\reset@font\normalsize\normalsfcodes
\XESPD@plain@ha\thepage}}}
\XESPDnewStyle{plain}{0mm}
\XESPDputOnStyle{plain}{pagenumber}{\XESPDdrawPlainPageNumber}
\@ifpackageloaded{xespdfreesize}{
\XESPDputOnStyle{freesize}{pagenumber}{\XESPDdrawPlainPageNumber}
\XESPDremoveFromStyle{freesize}{stamp}
\XESPDremoveFromStyle{freesize}{frame}
\XESPDremoveFromStyle{freesize}{columnsxix}
\XESPDremoveFromStyle{freesize}{columnxxvi}
\XESPDremoveFromStyle{freesize}{columnsxxvii}
\XESPDremoveFromStyle{freesize}{columnxxxi}
\XESPDremoveFromStyle{freesize}{columnxxxii}
\XESPDremoveFromStyle{freesize}{columnxxxiii}
\XESPDremoveFromStyle{freesize}{columnxxxiv}}
{}
\XESPDdefaultTitleStyle{empty}
\XESPDdefaultFirstStyle{plain}
\XESPDdefaultStyle{plain}

231
xespdrussian.def Normal file
View File

@ -0,0 +1,231 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\ProvidesFile{xespdrussian.def}[2020/03/20 v1.00 Language File]
\newcommand{\XESPDcolumnIVname}{%
\cyr\CYRL\cyri\cyrt.}
\newcommand{\XESPDcolumnVname}{%
\cyr\CYRM\cyra\cyrs\cyrs\cyra}
\newcommand{\XESPDcolumnVIname}{%
\cyr\CYRM\cyra\cyrs\cyrsh\cyrt\cyra\cyrb}
\newcommand{\XESPDcolumnVIIname}{%
\cyr\CYRL\cyri\cyrs\cyrt}
\newcommand{\XESPDcolumnVIItwosideName}{%
\cyr\CYRS\cyrt\cyrr.}
\newcommand{\XESPDcolumnVIIIname}{%
\cyr\CYRL\cyri\cyrs\cyrt\cyro\cyrv}
\newcommand{\XESPDcolumnVIIItwosideName}{%
\cyr\CYRS\cyrt\cyrr\cyra\cyrn\cyri\cyrc}
\newcommand{\XESPDcolumnXfIname}{%
\cyr\CYRR\cyra\cyrz\cyrr\cyra\cyrb.}
\newcommand{\XESPDcolumnXfIIname}{%
\cyr\CYRP\cyrr\cyro\cyrv.}
\newcommand{\XESPDcolumnXfIIIname}{%
\cyr\CYRT. \cyrk\cyro\cyrn\cyrt\cyrr.}
\newcommand{\XESPDcolumnXfIVname}{}
\newcommand{\XESPDcolumnXfVname}{%
\cyr\CYRN. \cyrk\cyro\cyrn\cyrt\cyrr.}
\newcommand{\XESPDcolumnXfVIname}{%
\cyr\CYRU\cyrt\cyrv.}
\newcommand{\XESPDcolumnXIVname}{%
\cyr\CYRI\cyrz\cyrm.}
\newcommand{\XESPDcolumnXVname}{%
\cyr\CYRL\cyri\cyrs\cyrt}
\newcommand{\XESPDcolumnXVIname}{%
\No\ \cyr\cyrd\cyro\cyrk\cyru\cyrm.}
\newcommand{\XESPDcolumnXVIIname}{%
\cyr\CYRP\cyro\cyrd\cyrp.}
\newcommand{\XESPDcolumnXVIIIname}{%
\cyr\CYRD\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXIXname}{%
\cyr\CYRI\cyrn\cyrv. \No\ \cyrp\cyro\cyrd\cyrl.}
\newcommand{\XESPDcolumnXXname}{%
\cyr\CYRP\cyro\cyrd\cyrp. \cyri\ \cyrd\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXXIname}{%
\cyr\CYRV\cyrz\cyra\cyrm. \cyri\cyrn\cyrv. \No}
\newcommand{\XESPDcolumnXXIIname}{%
\cyr\CYRI\cyrn\cyrv. \No\ \cyrd\cyru\cyrb\cyrl.}
\newcommand{\XESPDcolumnXXIIIname}{%
\cyr\CYRP\cyro\cyrd\cyrp. \cyri\ \cyrd\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXXIVname}{%
\cyr\CYRS\cyrp\cyrr\cyra\cyrv. \No}
\newcommand{\XESPDcolumnXXVname}{%
\cyr\CYRP\cyre\cyrr\cyrv. \cyrp\cyrr\cyri\cyrm\cyre\cyrn.}
\newcommand{\XESPDcolumnXXXIname}{%
\cyr\CYRK\cyro\cyrp\cyri\cyrr\cyro\cyrv\cyra\cyrl}
\@namedef{XESPDa0FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}0}
\@namedef{XESPDa1FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}1}
\@namedef{XESPDa2FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}2}
\@namedef{XESPDa3FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}3}
\@namedef{XESPDa4FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}4}
\@namedef{XESPDemptyFormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \ \ \ }
\newcommand{\XESPDcolumnXXXIIIname}{%
\cyr\CYRZ\cyro\cyrn\cyra}
\newcommand{\XESPDagreedName}{%
\cyr\CYRS\cyro\cyrg\cyrl\cyra\cyrs\cyro\cyrv\cyra\cyrn\cyro}
\newcommand{\XESPDapprovingName}{%
\cyr\CYRU\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyra\cyryu}
\newcommand{\XESPDapprovedName}{%
\cyr\CYRU\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyre\cyrn}
\newcommand{\XESPDapprovingSheetName}{%
\cyr\CYRL\cyri\cyrs\cyrt\ %
\cyru\cyrt\cyrv\cyre\cyrr\cyrzh\cyrd\cyre\cyrn\cyri\cyrya}
\newlength{\XESPDexplanWidth}
\setlength{\XESPDexplanWidth}{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{\XESPDspecColumnIname}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt}
\newcommand{\XESPDspecColumnIIname}{%
\cyr\CYRZ\cyro\cyrn\cyra}
\newcommand{\XESPDspecColumnIIIname}{%
\cyr\CYRP\cyro\cyrz.}
\newcommand{\XESPDspecColumnIVname}{%
\cyr\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyre}
\newcommand{\XESPDspecColumnVname}{%
\cyr\CYRN\cyra\cyri\cyrm\cyre\cyrn\cyro\cyrv\cyra\cyrn\cyri\cyre}
\newcommand{\XESPDspecColumnVIname}{%
\cyr\CYRK\cyro\cyrl.}
\newcommand{\XESPDspecColumnVIIname}{%
\cyr\CYRP\cyrr\cyri\cyrm\cyre\cyrch\cyra\cyrn\cyri\cyre}
% спецификация в плазовом исполнении
\newcommand{\XESPDspecIIcolumnIname}{\XESPDspecColumnIname}
\newcommand{\XESPDspecIIcolumnIIname}{\XESPDspecColumnIIname}
\newcommand{\XESPDspecIIcolumnIIIname}{\XESPDspecColumnIIIname}
\newcommand{\XESPDspecIIcolumnIVname}{\XESPDspecColumnIVname}
\newcommand{\XESPDspecIIcolumnVname}{\XESPDspecColumnVname}
\newcommand{\XESPDspecIIcolumnVIname}{\XESPDspecColumnVIname}
\newcommand{\XESPDspecIIcolumnVIIname}{%
\cyr\CYRM\cyra\cyrs\cyrs\cyra}
\newcommand{\XESPDspecIIcolumnVIIIname}{%
\cyr\CYRM\cyra\cyrt\cyre\cyrr\cyri\cyra\cyrl}
\newcommand{\XESPDspecIIcolumnIXname}{\XESPDspecColumnVIIname}
% перечень элементов
\newcommand{\XESPDcmplistColumnIname}{%
\cyr\CYRP\cyro\cyrz.\par \cyro\cyrb\cyro\cyrz\cyrn\cyra\-\cyrch\cyre\-\cyrn\cyri\cyre}
\newcommand{\XESPDcmplistColumnIIname}{%
\cyr\CYRN\cyra\cyri\cyrm\cyre\cyrn\cyro\cyrv\cyra\cyrn\cyri\cyre}
\newcommand{\XESPDcmplistColumnIIIname}{%
\cyr\CYRK\cyro\cyrl.}
\newcommand{\XESPDcmplistColumnIVname}{%
\cyr\CYRP\cyrr\cyri\cyrm\cyre\cyrch\cyra\cyrn\cyri\cyre}
% ведомость покупных изделий
\newcommand{\XESPDbomColumnIname}{%
\No\ \cyr\cyrs\cyrt\cyrr\cyro\cyrk\cyri}
\newcommand{\XESPDbomColumnIIname}{%
\cyr\CYRN\cyra\cyri\cyrm\cyre\cyrn\cyro\cyrv\cyra\cyrn\cyri\cyre}
\newcommand{\XESPDbomColumnIIIname}{%
\cyr\CYRK\cyro\cyrd\ \cyrp\cyrr\cyro\cyrd\cyru\cyrk\cyrc\cyri\cyri}
\newcommand{\XESPDbomColumnIVname}{%
\cyr\CYRO\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyre\
\cyrd\cyro\cyrk\cyru\cyrm\cyre\cyrn\cyrt\cyra\par
\cyrn\cyra\
\cyrp\cyro\cyrs\cyrt\cyra\cyrv\cyrk\cyru}
\newcommand{\XESPDbomColumnVname}{%
\cyr\CYRP\cyro\cyrs\cyrt\cyra\cyrv\cyrshch\cyri\cyrk}
\newcommand{\XESPDbomColumnVIname}{%
\cyr\CYRK\cyru\cyrd\cyra\
\cyrv\cyrh\cyro\cyrd\cyri\cyrt\
(\cyr\cyro\cyrb\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyri\cyre)}
\newcommand{\XESPDbomColumnsVIIhname}{%
\cyr\CYRK\cyro\cyrl\cyri\cyrch\cyre\cyrs\cyrt\cyrv\cyro}
\newcommand{\XESPDbomColumnVIIname}{%
\cyr\CYRN\cyra\ \cyri\cyrz\-\cyrd\cyre\cyrl\cyri\cyre}
\newcommand{\XESPDbomColumnVIIIname}{%
\cyr\CYRV\ \cyrk\cyro\cyrm\-\cyrp\cyrl\cyre\cyrk\-\cyrt\cyrery}
\newcommand{\XESPDbomColumnIXname}{%
\cyr\CYRN\cyra\ \cyrr\cyre\-\cyrg\cyru\cyrl\cyri\cyrr.}
\newcommand{\XESPDbomColumnXname}{%
\cyr\CYRV\cyrs\cyre\cyrg\cyro}
\newcommand{\XESPDbomColumnXIname}{%
\cyr\CYRP\cyrr\cyri\-\cyrm\cyre\-\cyrch\cyra\-\cyrn\cyri\cyre}
% лист регистрации изменений
\newcommand{\XESPDchangeSheetName}{%
\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{\XESPDchngColumnIname}{%
\cyr\CYRI\cyrz\cyrm.}
\newcommand{\XESPDchngColumnsIIhName}{%
\cyr\CYRN\cyro\cyrm\cyre\cyrr\cyra\ \cyrl\cyri\cyrs\cyrt\cyro\cyrv\ %
(\cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc)}
\newcommand{\XESPDchngColumnIIname}{%
\cyr\cyri\cyrz\-\cyrm\cyre\-\cyrn\cyre\cyrn\-\cyrn\cyrery\cyrh}
\newcommand{\XESPDchngColumnIIIname}{%
\cyr\cyrz\cyra\-\cyrm\cyre\-\cyrn\cyre\cyrn\-\cyrn\cyrery\cyrh}
\newcommand{\XESPDchngColumnIVname}{%
\cyr\cyrn\cyro\-\cyrv\cyrery\cyrh}
\newcommand{\XESPDchngColumnVname}{%
\cyr\cyra\cyrn\-\cyrn\cyru\-\cyrl\cyri\-\cyrr\cyro\-\cyrv\cyra\cyrn\-%
\cyrn\cyrery\cyrh}
\newcommand{\XESPDchngColumnVIname}{%
\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{\XESPDchngColumnVIIname}{%
\No\ \cyr\cyrd\cyro\cyrk\cyru\cyrm\cyre\cyrn\cyrt\cyra}
\newcommand{\XESPDchngColumnVIIIname}{%
\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}
\newcommand{\XESPDchngColumnIXname}{%
\cyr\CYRP\cyr\cyro\cyrd\cyrp.}
\newcommand{\XESPDchngColumnXname}{%
\cyr\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}

194
xespdsect.sty Normal file
View File

@ -0,0 +1,194 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdsect}[2020/03/20 v1.00 Sectioning]
\newcommand{\XESPD@point@style}{single}
\DeclareOption{pointsingle}{\renewcommand{\XESPD@point@style}{single}}
\DeclareOption{pointsection}{\renewcommand{\XESPD@point@style}{section}}
\DeclareOption{pointsubsection}{\renewcommand{\XESPD@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}}}}
\newcommand{\XESPDsectAlignLeft}{%
\let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip%
\leftskip\z@skip}
\newcommand{\XESPDsectAlignRight}{%
\let\\\@centercr\rightskip\z@skip\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
\newcommand{\XESPDsectAlignCenter}{%
\let\\\@centercr
\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
\newcommand{\XESPDsectionAlign}{\XESPDsectAlignLeft}
\newcommand{\XESPDsubsectionAlign}{\XESPDsectAlignLeft}
\newcommand{\XESPDsubsubsectionAlign}{\XESPDsectAlignLeft}
\newcommand{\XESPDsectAlign}[2]{%
\expandafter\renewcommand\csname\string XESPD#1Align\endcsname{%
\@nameuse{XESPDsectAlign#2}}}
\newcommand{\XESPDsectionStyle}{\normalfont\Large\bfseries\MakeUppercase}
\newcommand{\XESPDsubsectionStyle}{\normalfont\large\bfseries}
\newcommand{\XESPDsubsubsectionStyle}{\normalfont\normalsize\bfseries}
\newcommand{\XESPDsectStyle}[2]{%
\expandafter\renewcommand\csname\string XESPD#1Style\endcsname{#2}}
\newlength{\XESPDsectionSkipBefore}
\newlength{\XESPDsectionSkipAfter}
\setlength{\XESPDsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
\setlength{\XESPDsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
\newlength{\XESPDsubsectionSkipBefore}
\newlength{\XESPDsubsectionSkipAfter}
\setlength{\XESPDsubsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
\setlength{\XESPDsubsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
\newlength{\XESPDsubsubsectionSkipBefore}
\newlength{\XESPDsubsubsectionSkipAfter}
\setlength{\XESPDsubsubsectionSkipBefore}{-15mm \@plus -3mm \@minus -2mm}
\setlength{\XESPDsubsubsectionSkipAfter}{15mm \@plus 1mm \@minus 2mm}
\providecommand{\plus}{\@plus}
\providecommand{\minus}{\@minus}
\newcommand{\XESPDsectSkip}[3]{%
\expandafter\setlength\csname\string XESPD#1SkipBefore\endcsname{#2}%
\expandafter\setlength\csname\string XESPD#1SkipAfter\endcsname{#3}}
\renewcommand\section{\@startsection {section}{1}{\parindent}%
{\XESPDsectionSkipBefore}%
{\XESPDsectionSkipAfter}%
{\XESPDsectionAlign\XESPDsectionStyle}}
\renewcommand\subsection{\@startsection{subsection}{2}{\parindent}%
{\XESPDsubsectionSkipBefore}%
{\XESPDsubsectionSkipAfter}%
{\XESPDsubsectionAlign\XESPDsubsectionStyle}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\parindent}%
{\XESPDsubsubsectionSkipBefore}%
{\XESPDsubsubsectionSkipAfter}%
{\XESPDsubsubsectionAlign\XESPDsubsubsectionStyle}}
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{\thesection.\arabic{subsection}}
\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}
\newif\ifXESPD@point@style@single
\XESPD@point@style@singlefalse
\newcommand{\XESPD@point@style@single}{
\newcounter{point}
\renewcommand{\thepoint}{\arabic{point}}
\newcommand{\theHpoint}{\arabic{point}}
\XESPD@point@style@singletrue}
\newcommand{\XESPD@point@style@section}{
\newcounter{point}[section]
\renewcommand{\thepoint}{\thesection.\arabic{point}}
\newcommand{\theHpoint}{\theHsection.\arabic{point}}}
\newcommand{\XESPD@point@style@subsection}{
\newcounter{point}[subsection]
\renewcommand{\thepoint}{\thesubsection.\arabic{point}}
\newcommand{\theHpoint}{\theHsubsection.\arabic{point}}}
\@nameuse{XESPD@point@style@\XESPD@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}
\newcounter{appendix}
\renewcommand{\theappendix}{\Asbuk{appendix}}
\newlength{\XESPDappendixSkip}
\setlength{\XESPDappendixSkip}{15mm \@plus 3mm \@minus 10mm}
\newcommand{\XESPDappendix}[2]{%
\XESPDclearDoublePage%
\refstepcounter{appendix}%
\setcounter{point}{0}%
\ifXESPD@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{\XESPDappendixSkip}}
\renewcommand\tableofcontents{%
\begingroup
\XESPDsectAlign{section}{Center}
\section*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\endgroup
\@starttoc{toc}}

144
xespdspec.sty Normal file
View File

@ -0,0 +1,144 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdspec}[2020/03/20 v1.00 Specification GOST 2.106.95]
\RequirePackage{xespdlang}
\RequirePackage{xespdstamp}
\RequirePackage{rotating}
\RequirePackage{array}
\RequirePackage{longtable}
\XESPDtabColumnsWidth{6mm 6mm 8mm 70mm 63mm 10mm 22mm}
\setlength{\XESPDtabHeadH}{15mm}
\newlength{\XESPDspecAddHspace}
\setlength{\XESPDspecAddHspace}{2mm}
\newenvironment{XESPDspecification}
{\XESPDtabLTPreamble{%
>{\XESPDfontTabBody\centering}
p{\argi -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argiii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argiv -2\tabcolsep}
@{\hspace{\XESPDspecAddHspace}}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argv -\XESPDspecAddHspace}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argvi -2\tabcolsep}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argvii -\XESPDspecAddHspace}
<{\XESPDtabStrut}
}
%
{%
\parbox[c][\XESPDtabHeadH][c]{\argi -2\tabcolsep}{\centering\begin{sideways}%
\XESPDsmartScaleBox{\XESPDtabHeadH}{\XESPDfontTabHead\XESPDspecColumnIname}%
\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argii -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecColumnIIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argiii -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecColumnIIIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argiv -2\tabcolsep}
{\centering\XESPDfontTabHead%
\XESPDspecColumnIVname}&
\parbox[c][\XESPDtabHeadH][c]{\argv -\XESPDspecAddHspace}{\centering\XESPDfontTabHead%
\XESPDspecColumnVname}&
\parbox[c][\XESPDtabHeadH][c]{\argvi -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecColumnVIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argvii -2\tabcolsep}{\centering%
\XESPDsmartScaleBox{\argvii -2\tabcolsep}{\XESPDfontTabHead\XESPDspecColumnVIIname}}%
\tabularnewline%
}
}
%
{\XESPDtabLTAmble}
% % создадим окружение "спецификация"
% \newenvironment{XESPDspecification}{%
% \XESPDputOnStyle{formII}{specification}{\XESPDdrawSpecification{}}
% \XESPDputOnStyle{formIIab}{specification}{\XESPDdrawSpecification{1}}
% \begin{XESPDzeroPadding}%
% \setlength{\tabcolsep}{0.5mm}%
% \setlength{\LTpre}{0mm}%
% \setlength{\LTpost}{0mm}%
% \setlength{\LTleft}{0mm}%
% \setlength{\LTright}{\fill}%
% \newcolumntype{s}{>{\XESPDfontTabBody}c}%
% \newcolumntype{n}{% вставим с двух сторон подпорки по 8мм
% >{\XESPDfontTabBody\raggedright\parbox[c][8mm][c]{0mm}{\rule{0mm}{0mm}}}%
% p{60mm}%
% <{\parbox[c][8mm][c]{0mm}{\rule{0mm}{0mm}}}}%
% \newcolumntype{a}{>{\XESPDfontTabBody}p{21mm}}%
% \noindent%
%
% % с помощью @-выражения зададим небольшой отступ для содержимого графы "наименование"
% \begin{longtable}{ssss@{\hspace{2mm}}n@{\hspace{2mm}}sa}
%
% % изменим некоторые константы longtable для того, чтобы
% % таблица занимала всё свободное место
% \XESPD@tmpdimc=8mm
% \advance\XESPD@tmpdima 6\XESPD@tmpdimc
% \global\@colht\XESPD@tmpdima
% \global\@colroom\XESPD@tmpdima
%
% % заполним шапку таблицы
% \parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\XESPDfontTabHead%
% \XESPDspecColumnIname\end{sideways}}&
% \parbox[c][15mm][c]{5mm}{\centering\begin{sideways}\XESPDfontTabHead%
% \XESPDspecColumnIIname\end{sideways}}&
% \parbox[c][15mm][c]{7mm}{\centering\begin{sideways}\XESPDfontTabHead%
% \XESPDspecColumnIIIname\end{sideways}}&
% \parbox[c][15mm][c]{69mm}{\centering\XESPDfontTabHead%
% \XESPDspecColumnIVname}&
% \parbox[c][15mm][c]{61mm}{\centering\XESPDfontTabHead%
% \XESPDspecColumnVname}&
% \parbox[c][15mm][c]{9mm}{\centering\begin{sideways}\XESPDfontTabHead%
% \XESPDspecColumnVIname\end{sideways}}&
% \parbox[c][15mm][c]{21mm}{\centering\XESPDfontTabHead%
% \XESPDspecColumnVIIname}\\
% % первые и последние строки листов сделаем пустыми
% % для эстетичности
% &&&&&&%
% \endhead
% &&&&&&%
% \endfoot}{%
% \end{longtable}%
% \end{XESPDzeroPadding}%
% \XESPDremoveFromStyle{formII}{spec}%
% \XESPDremoveFromStyle{formIIab}{spec}}

174
xespdspecii.sty Normal file
View File

@ -0,0 +1,174 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdspecii}[2020/03/20 v1.00 Specification GOST 2.106.95 Form 2]
\RequirePackage{xespdlang}
\RequirePackage{xespdstamp}
\RequirePackage{array}
\RequirePackage{longtable}
\XESPDtabColumnsWidth{6mm 6mm 8mm 70mm 72mm 10mm 10mm 75mm 30mm}
\setlength{\XESPDtabHeadH}{15mm}
\newlength{\XESPDspecIIaddHspace}
\setlength{\XESPDspecIIaddHspace}{2mm}
% поскольку плазовая спецификация имеет нестандартное размещение граф
% (штам и графы 19-23 размещаются параллельно на длинных сторонах листа)
% придется изменить рамку и перенести некоторые графы
\newcommand{\XESPD@specii@sizes}{
\advance\XESPDframeW 15mm
\advance\XESPDframeH -10mm
\setlength{\XESPD@margin@si}{5mm}
\setlength{\XESPD@margin@so}{5mm}
\setlength{\XESPD@margin@t}{20mm}
\setlength{\XESPD@margin@b}{5mm}
% необходимо слегка поправить отступы
\changepage{}{}{}{-15mm}{}{10mm}{}{}{}}
% макрос для переключения обратно
\newcommand{\XESPD@no@specii@sizes}{
\changepage{}{}{}{15mm}{}{-10mm}{}{}{}
\setlength{\XESPD@margin@si}{20mm}
\setlength{\XESPD@margin@so}{5mm}
\setlength{\XESPD@margin@t}{5mm}
\setlength{\XESPD@margin@b}{5mm}
\advance\XESPDframeW -15mm
\advance\XESPDframeH 10mm}
% переключаемся
\XESPD@specii@sizes
\ifXESPD@enable@columns@xix
\newcommand{\XESPDdrawSpecIIcolumnsXIX}{%
\setlength{\XESPD@tmpdima}{\XESPDframeY+\XESPDframeH}
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPD@tmpdima}){%
\usebox{\XESPD@columns@xix@box}}}
\fi
\ifXESPD@enable@columns@xxiv
\newcommand{\XESPDdrawSpecIIcolumnsXXIV}{%
\setlength{\XESPD@tmpdima}{\XESPDframeX+\XESPDframeW-120mm}
\setlength{\XESPD@tmpdimb}{\XESPDframeY+\XESPDframeH}
\put(\XESPDltu{\XESPD@tmpdima},\XESPDltu{\XESPD@tmpdimb}){%
\usebox{\XESPD@columns@xxiv@box}}}
\fi
\XESPDnewStyle{specII}{\XESPD@style@sh@formII}
\XESPDputOnStyle{specII}{frame}{\XESPDdrawFrame}
\XESPDputOnStyle{specII}{stamp}{\XESPDdrawStampII}
\XESPDputOnStyle{specII}{specii}{\XESPDtabDrawBody\XESPDtabDrawHead}
\ifXESPD@enable@columns@xix
\XESPDputOnStyle{specII}{columnsxix}{\XESPDdrawSpecIIcolumnsXIX}
\fi
\ifXESPD@enable@columns@xxiv
\XESPDputOnStyle{specII}{columnsxxiv}{\XESPDdrawSpecIIcolumnsXXIV}
\fi
\ifXESPD@enable@columns@xxvii
\XESPDputOnStyle{specII}{columnsxxvii}{\XESPDdrawColumnsXXVIIii}
\fi
\ifXESPD@enable@column@xxxi
\XESPDputOnStyle{specII}{columnxxxi}{\XESPDdrawColumnXXXI}
\fi
\ifXESPD@enable@column@xxxii
\XESPDputOnStyle{specII}{columnxxxii}{\XESPDdrawColumnXXXII}
\fi
\XESPDnewStyle{specIIa}{\XESPD@style@sh@formIIb}
\XESPDputOnStyle{specIIa}{frame}{\XESPDdrawFrame}
\XESPDputOnStyle{specIIa}{stamp}{\XESPDdrawStampIIa}
\XESPDputOnStyle{specIIa}{specii}{\XESPDtabDrawBody[1]\XESPDtabDrawHead}
\ifXESPD@enable@columns@xix
\XESPDputOnStyle{specIIa}{columnsxix}{\XESPDdrawSpecIIcolumnsXIX}
\fi
\ifXESPD@enable@columns@xxiv
\XESPDputOnStyle{specIIa}{columnsxxiv}{\XESPDdrawSpecIIcolumnsXXIV}
\fi
\ifXESPD@enable@column@xxxi
\XESPDputOnStyle{specIIa}{columnxxxi}{\XESPDdrawColumnXXXI}
\fi
\ifXESPD@enable@column@xxxii
\XESPDputOnStyle{specIIa}{columnxxxii}{\XESPDdrawColumnXXXII}
\fi
\XESPDputOnStyle{specII}{comment}{\XESPDtabDrawComment}
\XESPDdefaultFirstStyle{specII}
\XESPDdefaultStyle{specIIa}
\newenvironment{XESPDspecificationII}
{\XESPDtabLTPreamble{%
>{\XESPDfontTabBody\centering}
p{\argi -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argiii -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argiv -2\tabcolsep}
@{\hspace{\XESPDspecIIaddHspace}}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argv -\XESPDspecIIaddHspace}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\centering}
p{\argvi -2\tabcolsep}
>{\XESPDfontTabBody\centering}
p{\argvii -2\tabcolsep}
@{\hspace{\XESPDspecIIaddHspace}}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argviii -\XESPDspecIIaddHspace}
<{\XESPDtabStrut}
>{\XESPDfontTabBody\raggedright\XESPDtabStrut}
p{\argix -2\tabcolsep}
<{\XESPDtabStrut}
}
%
{%
\parbox[c][\XESPDtabHeadH][c]{\argi -2\tabcolsep}{\centering\begin{sideways}%
\XESPDsmartScaleBox{\XESPDtabHeadH}{\XESPDfontTabHead\XESPDspecIIcolumnIname}%
\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argii -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecIIcolumnIIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argiii -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecIIcolumnIIIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argiv -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDspecIIcolumnIVname}&
\parbox[c][\XESPDtabHeadH][c]{\argv -\XESPDspecIIaddHspace}{\centering\XESPDfontTabHead%
\XESPDspecIIcolumnVname}&
\parbox[c][\XESPDtabHeadH][c]{\argvi -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecIIcolumnVIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argvii -2\tabcolsep}{\centering\begin{sideways}\XESPDfontTabHead%
\XESPDspecIIcolumnVIIname\end{sideways}}&
\parbox[c][\XESPDtabHeadH][c]{\argviii -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDspecIIcolumnVIIIname}&
\parbox[c][\XESPDtabHeadH][c]{\argix -2\tabcolsep}{\centering\XESPDfontTabHead%
\XESPDspecIIcolumnIXname}\tabularnewline%
}
}
{\XESPDtabLTAmble}

1143
xespdstamp.sty Normal file

File diff suppressed because it is too large Load Diff

304
xespdtab.cls Normal file
View File

@ -0,0 +1,304 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xespdtab}[2020/03/20 v1.00 Tabular Documentation]
\RequirePackage{xkeyval}
\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{twoside}{%
\PassOptionsToClass{\CurrentOption}{article}%
\PassOptionsToPackage{\CurrentOption}{xespdstamp}}
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{article}}
\DeclareOption{formI}{%
\ClassError{xespdtext}{formI style is for graphical documentaion}{}}
\DeclareOption{zonelabels}{%
\ClassError{xespdtext}{Zone labels is not allowed for tabular documentaion}{}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xespdstamp}}
\newcommand{\XESPD@tabEmptyLineTop}{}
\newcommand{\XESPD@tabEmptyLineBottom}{}
\DeclareOption{emptylinetop}{\renewcommand{\XESPD@tabEmptyLineTop}{\XESPDtabStrut\tabularnewline}}
\DeclareOption{emptylinebottom}{\renewcommand{\XESPD@tabEmptyLineBottom}{\XESPDtabStrut\tabularnewline}}
\newcommand{\XESPD@tabfont}{10pt}
\DeclareOption{10pt}{\renewcommand{\XESPD@tabfont}{10pt}}
\DeclareOption{12pt}{\renewcommand{\XESPD@tabfont}{12pt}}
\DeclareOption{14pt}{\renewcommand{\XESPD@tabfont}{14pt}}
% расстояние между строками
\newlength{\XESPDtabLineSpace}
\setlength{\XESPDtabLineSpace}{8mm}
\define@key{xespd}{linespace}{\setlength{\XESPDtabLineSpace}{#1}}
% пустое место внизу страницы, единицами измерения являются строки
\newcounter{footwhitespace}
\setcounter{footwhitespace}{2}
\define@key{xespd}{footwhitespace}{\setcounter{footwhitespace}{#1}}
\ProcessOptions\relax
\newif\ifXESPD@tab@first@column@enum
\XESPD@tab@first@column@enumfalse
\LoadClass{article}
\RequirePackage{xespdlang}
\RequirePackage[formII]{xespdstamp}
\RequirePackage{xespdinfo}
\RequirePackage{calc}
% несколько служебных длин
\newlength{\XESPDtabBodyH} % высота тела таблицы
\newlength{\XESPDtabHeadH} % высота заголовка таблицы
% макрос-подпорка для строк таблицы
\newcommand{\XESPDtabStrut}{\parbox[c][\XESPDtabLineSpace][c]{0mm}{\rule{0mm}{0mm}}}
% на случай, если запись не влезет в одну строку и произойдет перенос на
% следующую, следует задать интерлиньяж равный \XESPDtabLineSpace. Возможно,
% логичнее задать такой интерлиньяж в xespdfont.
\renewcommand{\XESPDfontTabBody}{%
\fontsize{\XESPD@tabfont}{\XESPDtabLineSpace}%
\selectfont\XESPDfontShape}
\renewcommand{\XESPDfontTabHead}{%
\fontsize{\XESPD@tabfont}{\XESPD@tabfont + 2pt}%
\selectfont\XESPDfontShape}
% ------------------------------------------------------------------------
% Анализатор "командной строки":
% ------------------------------------------------------------------------
% макрос принимает строку аргументов, разделенных пробелами
% возвращает количество аргументов в макросе \narg и сами аргументы в макросах
% \argi \argii и т.д.
% Изначально он был написан для нужд xespdtab.cls, возможно он пригодится еще
% где-то - тогда стоит вынести его в отдельный файл
\RequirePackage{xstring}
\RequirePackage{ifthen}
\newcommand{\XESPD@argparse}[1]{
\newcommand{\@arglist}{#1 }% добавим в конец пробел для нужд парсера
\newcounter{@iargc}
% удалим ведущие пробелы, если есть
\StrChar{\@arglist}{1}[\first@arg]
\whiledo{\equal{\first@arg}{ }}{%
\StrGobbleLeft{\@arglist}{1}[\@arglist]
\StrChar{\@arglist}{1}[\first@arg]}
\setcounter{@iargc}{0}
\StrLen{\@arglist}[\@arglistwidth]
\whiledo{\not\equal{\@arglistwidth}{0}}{%
\addtocounter{@iargc}{1}%
% откусим в \arg первое слово
\StrBefore{\@arglist}{ }[\@arg]
% сохраним в \argN откушенный кусок
\expandafter\edef\csname arg\roman{@iargc}\endcsname{\@arg}
% удалим отработанный кусок
\StrLen{\@arg}[\@argwidth]
\StrGobbleLeft{\@arglist}{\@argwidth}[\@arglist] % удалим использованный аргумент
\StrGobbleLeft{\@arglist}{1}[\@arglist] % удалим пробел после аргумента
\StrLen{\@arglist}[\@arglistwidth]
\edef\narg{\arabic{@iargc}}}}
% завернем в более благозвучное название
\newcommand{\XESPDtabColumnsWidth}[1]{\XESPD@argparse{#1}}
% ------------------------------------------------------------------------
% макросы разлиновки листа
% ------------------------------------------------------------------------
\RequirePackage{calc}
\newcounter{narg@tmp}
\newcounter{XESPD@tmpcnt}
\let\XESPDlineCount=\XESPD@tmpdimc
% отрисовка тела таблицы
\newcommand{\XESPDtabDrawBody}[1][]{% принимает один необязательный параметр,
% чтобы рисовать другую таблицу для второго и последующих листов его надо
% установить в "1"
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){%
\begin{picture}(0,0)
\if 1#1 % настройки для второго и последующего листов
\XESPD@tmpdima=\XESPD@style@sh@formIIb % высота рамки минус высота штампа.
% Для второго и последующих листов сделаем пустое пространство на 2 строки
% это требование ГОСТа. Так сделано для возможности руками дорисовывать
% штамп вверх, когда для фиксации изменений не будет хватать граф.
\setlength{\XESPD@tmpdima}{\XESPD@tmpdima + \value{footwhitespace}\XESPDtabLineSpace}
\else
\XESPD@tmpdima=\XESPD@style@sh@formII
\fi
% чтобы получить высоту тела таблицы, вычтем из высоты рамки
% высоту шапки и скорректированную (если надо) высоту штампа
\setlength{\XESPDtabBodyH}{\XESPDframeH - \XESPD@tmpdima - \XESPDtabHeadH}
% посчитаем, сколько строк укладывается на лист
\setlength{\XESPD@tmpdima}{\XESPDtabBodyH / \XESPDtabLineSpace}
\XESPDlineCount=\XESPD@tmpdima % сохраним рассчитанное количество строк
% скорректируем высоту таблицы с учетом того, что в нее укладывается не целое количество строк
\setlength{\XESPDtabBodyH}{\XESPDtabLineSpace * \XESPDlineCount}
% сохраним в "а" расстояние между нижним краем рамки и нижним краем таблицы
\setlength{\XESPD@tmpdima}{\XESPDframeH - \XESPDtabHeadH - \XESPDtabBodyH}
% рисуем вертикальные линии на высоте "а" от нижнего края рамки длинной в высоту таблицы
\linethickness{\XESPDlineThick}
\setcounter{narg@tmp}{0}
\XESPD@tmpdimb=0mm
\whiledo{\value{narg@tmp}<\narg}{
\addtocounter{narg@tmp}{1}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \csname arg\roman{narg@tmp}\endcsname}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabBodyH}}}}
% рисуем рассчитанное количество горизонтальных линий начиная снизу ("а")
\linethickness{\XESPDlineThin}
\multiput(0,\XESPDltu{\XESPD@tmpdima})(0,\XESPDltu{\XESPDtabLineSpace}){\XESPDlineCount}{%
\line(1,0){\XESPDltu{\XESPDframeW}}}
% нумерация строк
\ifXESPD@tab@first@column@enum
\setlength{\XESPD@tmpdimb}{\XESPDframeH - \XESPDtabHeadH}
\setcounter{XESPD@tmpcnt}{0}
\whiledo{\lengthtest{\XESPD@tmpdimb > \XESPD@tmpdima}}{%
\addtolength{\XESPD@tmpdimb}{-\XESPDtabLineSpace}%
\stepcounter{XESPD@tmpcnt}%
\put(0,\XESPDltu{\XESPD@tmpdimb}){\parbox[b][\XESPDtabLineSpace][c]{\argi}
{\XESPDfontTabBody\centering\XESPDtabStrut \arabic{XESPD@tmpcnt}}}}
\fi
\end{picture}}}
% отрисовка шапки таблицы
\newcommand{\XESPDtabDrawHead}{
% На первый взгляд, этот код логичнее объединить с кодом, рисующим
% вертикальные линии тепла таблицы, но в случае "многоэтажной" шапки
% придется рисовать отдельно
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){%
\begin{picture}(0,0)
% вычислим расстояние от нижнего края рамки до нижнего края шапки таблицы
\setlength{\XESPD@tmpdima}{\XESPDframeH - \XESPDtabHeadH}
% отчеркнем нижний край шапки
\linethickness{\XESPDlineThick}
\put(0,\XESPDltu{\XESPD@tmpdima}){\line(1,0){\XESPDltu{\XESPDframeW}}}
% нарисуем вертикальные линии шапки
\setcounter{narg@tmp}{0}
\XESPD@tmpdimb=0mm
\whiledo{\value{narg@tmp}<\narg}{
\addtocounter{narg@tmp}{1}
\setlength{\XESPD@tmpdimb}{\XESPD@tmpdimb + \csname arg\roman{narg@tmp}\endcsname}
\put(\XESPDltu{\XESPD@tmpdimb},\XESPDltu{\XESPD@tmpdima}){\line(0,1){\XESPDltu{\XESPDtabHeadH}}}}
\end{picture}}%
}
% ------------------------------------------------------------------------
% Комментарий слева от штампа для листов А3 и более
% ------------------------------------------------------------------------
%
\newlength{\XESPDtabCommentPaddingV}
\newlength{\XESPDtabCommentPaddingH}
\setlength{\XESPDtabCommentPaddingV}{5mm}
\setlength{\XESPDtabCommentPaddingH}{5mm}
\newcommand{\XESPDtabComment}[1]{\def\XESPDtheTabComment{#1}}
\newcommand{\XESPDtabDrawComment}{
\@ifundefined{XESPDtheTabComment}{}{%
% тут 185мм - длина штампа, 40мм - высота штампа
\setlength{\XESPD@tmpdima}{\XESPDframeW -185mm -2\XESPDtabCommentPaddingH}
\ifthenelse{\lengthtest{\XESPD@tmpdima > 10mm}}{% true
\put(\XESPDltu{\XESPDframeX},\XESPDltu{\XESPDframeY}){%
\begin{picture}(0,0)
\put(\XESPDltu{\XESPDtabCommentPaddingH},\XESPDltu{\XESPDtabCommentPaddingV}){%
\parbox[b][40mm -2\XESPDtabCommentPaddingV][c]{\XESPD@tmpdima}{%
\setlength{\parindent}{15mm}%
\XESPDtheTabComment}}
\end{picture}}}%
{\@ifundefined{XESPDtheTabComment}{}{%
\ClassWarning{xespdtab}{%
Not anough space to place comment message}}}}% false
}
% ------------------------------------------------------------------------
% Обертка для longtable
% ------------------------------------------------------------------------
% эти 2 макроса должны быть использованы
% в стилевом файле разрабатываемого документа
\newcommand{\XESPDtabLTPreamble}[2]{
\XESPDputOnStyle{formII}{grid}{\XESPDtabDrawBody\XESPDtabDrawHead}
\XESPDputOnStyle{formIIb}{grid}{\XESPDtabDrawBody[1]\XESPDtabDrawHead}
\XESPDputOnStyle{formII}{comment}{\XESPDtabDrawComment}
\begin{XESPDzeroPadding}
\setlength{\tabcolsep}{0.5mm}
\setlength{\LTpre}{0mm}
\setlength{\LTpost}{0mm}
\setlength{\LTleft}{0mm}
\setlength{\LTright}{\fill}
\begin{longtable}{#1}
% изменим некоторые константы longtable для того, чтобы
% таблица занимала всё свободное место
\setlength{\XESPD@tmpdima}%
{\XESPDframeH - \XESPD@style@sh@formIIb - \value{footwhitespace}\XESPDtabLineSpace}%
\global\@colht\XESPD@tmpdima%
\global\@colroom\XESPD@tmpdima%
% заполним шапку таблицы
#2
% первые и последние строки листов сделаем пустыми для эстетичности
\XESPD@tabEmptyLineTop%
\endhead
\XESPD@tabEmptyLineBottom%
\endfoot}
% закрывающий макрос
\newcommand{\XESPDtabLTAmble}
{\end{longtable}
\end{XESPDzeroPadding}
\XESPDremoveFromStyle{formII}{grid}
\XESPDremoveFromStyle{formIIb}{grid}}
% ----------------------------------------------------------------------
% макрос уменьшает содержимое под заданный размер в случае необходимости
% ----------------------------------------------------------------------
\newcommand{\XESPDsmartScaleBox}[2]{
\settowidth{\XESPD@tmpdima}{#2}%
\setlength{\XESPD@tmpdimb}{#1}%
\ifthenelse{\lengthtest{\XESPD@tmpdima > \XESPD@tmpdimb}}%
{\ifthenelse{\lengthtest{0.75\XESPD@tmpdima > \XESPD@tmpdimb}}%
{\scalebox{0.45}[1]{\bfseries#2}}%
{\scalebox{0.75}[1]{#2}}%
}%
{#2}%
}
\let\XESPD@tmpdimc=\XESPDlineCount

114
xespdtext.cls Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xespdtext}[2020/03/20 v1.00 Textual Documentation]
\newcommand{\XESPD@docfont}{14pt}
\newcommand{\XESPD@float@style}{single}
\newcommand{\XESPD@equation@style}{single}
\DeclareOption{russian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{ukrainian}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-r}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{koi8-u}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp1251}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{iso8859-5}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{cp866}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf-8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{utf8}{\PassOptionsToPackage{\CurrentOption}{xespdlang}}
\DeclareOption{12pt}{\renewcommand{\XESPD@docfont}{12pt}}
\DeclareOption{14pt}{\renewcommand{\XESPD@docfont}{14pt}}
\DeclareOption{pointsingle}{\PassOptionsToPackage{\CurrentOption}{xespdsect}}
\DeclareOption{pointsection}{\PassOptionsToPackage{\CurrentOption}{xespdsect}}
\DeclareOption{pointsubsection}{\PassOptionsToPackage{\CurrentOption}{xespdsect}}
\DeclareOption{floatsingle}{\renewcommand{\XESPD@float@style}{single}}
\DeclareOption{floatsection}{\renewcommand{\XESPD@float@style}{section}}
\DeclareOption{floatsubsection}{\renewcommand{\XESPD@float@style}{subsection}}
\DeclareOption{equationsingle}{\renewcommand{\XESPD@equation@style}{single}}
\DeclareOption{equationsection}{\renewcommand{\XESPD@equation@style}{section}}
\DeclareOption{equationsubsection}{\renewcommand{\XESPD@equation@style}{subsection}}
\DeclareOption{footnotearabic}{\PassOptionsToPackage{\CurrentOption}{xespdfootnote}}
\DeclareOption{footnoteasterisk}{\PassOptionsToPackage{\CurrentOption}{xespdfootnote}}
\DeclareOption{listlikepar}{\PassOptionsToPackage{\CurrentOption}{xespdlist}}
\DeclareOption{stdlist}{\PassOptionsToPackage{\CurrentOption}{xespdlist}}
\DeclareOption{twoside}{%
\PassOptionsToClass{\CurrentOption}{extarticle}%
\PassOptionsToPackage{\CurrentOption}{xespdstamp}}
\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{extarticle}}
\DeclareOption{formI}{%
\ClassError{xespdtext}{formI style is for graphical documentaion}{}}
\DeclareOption{zonelabels}{%
\ClassError{xespdtext}{Zone labels is not allowed for textual documentaion}{}}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xespdstamp}}
\ProcessOptions\relax
\LoadClass[\XESPD@docfont]{extarticle}
\RequirePackage{xespdlang}
\RequirePackage[a4paper,formII]{xespdstamp}
\RequirePackage{xespdindent}
\RequirePackage{xespdlist}
\RequirePackage{xespdsect}
\RequirePackage{xespdcap}
\RequirePackage{xespdfootnote}
\RequirePackage{xespdbiblist}
\RequirePackage{xespdexplan}
\RequirePackage{xespdinfo}
\RequirePackage{xespdtitlebase}
\RequirePackage{xespdtitle}
\linespread{1.25}
\newcommand{\XESPD@float@style@single}{}
\newcommand{\XESPD@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{\XESPD@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{XESPD@float@style@\XESPD@float@style}
\newcommand{\XESPD@equation@style@single}{}
\newcommand{\XESPD@equation@style@section}{
\@addtoreset{equation}{section}
\renewcommand{\theequation}{%
\ifnum \c@section>\z@ \thesection.\fi \arabic{equation}}}
\newcommand{\XESPD@equation@style@subsection}{
\@addtoreset{equation}{subsection}
\renewcommand{\theequation}{%
\ifnum \c@subsection>\z@ \thesubsection.\fi \arabic{equation}}}
\@nameuse{XESPD@equation@style@\XESPD@equation@style}

137
xespdtitle.sty Normal file
View File

@ -0,0 +1,137 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdtitle}[2020/03/20 v1.00 Title GOST 2.105]
\RequirePackage{xespdstamp}
\RequirePackage{xespdlang}
\RequirePackage{xespdinfo}
\RequirePackage{xespdtitlebase}
\newcommand{\XESPD@title@split@field}[2]{%
\parbox[t]{.4\hsize}{\raggedright#1}\hfill
\parbox[t]{.4\hsize}{\raggedright#2}}
\renewcommand{\XESPDtheTitleFieldI}{%
\XESPDtheDepartment\par\XESPDtheCompany}
\def\XESPDtheTitleFieldIIl{}
\renewcommand{\XESPDtheTitleFieldIIl}{%
\XESPDtheClassCode}
\def\XESPDtheTitleFieldIIr{}
\renewcommand{\XESPDtheTitleFieldIIr}{}
\renewcommand{\XESPDtheTitleFieldII}{%
\XESPD@title@split@field{\XESPDtheTitleFieldIIl}{\XESPDtheTitleFieldIIr}}
\def\XESPDtheTitleFieldIIIl{}
\renewcommand{\XESPDtheTitleFieldIIIl}{%
\ifx\XESPD@title@approving@sheet\@undefined
\expandafter\ifx\csname XESPD@title@agreed@name@1\endcsname\relax\else
\textbf{\MakeUppercase{\XESPDagreedName}}\\
\XESPD@title@make@stamp{agreed}{1}
\fi
\else
\textbf{\MakeUppercase{\XESPDapprovedName}}\\
\XESPD@title@approving@sheet
\fi}
\def\XESPDtheTitleFieldIIIr{}
\renewcommand{\XESPDtheTitleFieldIIIr}{%
\ifx\XESPD@title@approving@sheet\@undefined
\expandafter\ifx\csname XESPD@title@approved@name@1\endcsname\relax\else
\textbf{\MakeUppercase{\XESPDapprovingName}}\\
\XESPD@title@make@stamp{approved}{1}
\fi
\fi}
\renewcommand{\XESPDtheTitleFieldIII}{%
\XESPD@title@split@field{\XESPDtheTitleFieldIIIl}{\XESPDtheTitleFieldIIIr}}
\renewcommand{\XESPDtheTitleFieldIV}{%
\MakeUppercase{\XESPDtheTitle}\par\XESPDtheDocName}
\renewcommand{\XESPDtheTitleFieldV}{}
\renewcommand{\XESPDtheTitleFieldVI}{%
\MakeUppercase{\XESPDtheSignature}}
\renewcommand{\XESPDtheTitleFieldVII}{}
\def\XESPDtheTitleFieldVIIIl{}
\renewcommand{\XESPDtheTitleFieldVIIIl}{%
\ifx\XESPD@title@approving@sheet\@undefined
\XESPD@tmpcnta = 1
\loop
\ifnum \XESPD@tmpcnta < \XESPD@title@agreed@cnt
\advance \XESPD@tmpcnta 1
\XESPD@title@make@stamp{agreed}{\number\XESPD@tmpcnta}
\par\vspace{5mm}
\repeat
\fi}
\def\XESPDtheTitleFieldVIIIr{}
\renewcommand{\XESPDtheTitleFieldVIIIr}{%
\ifx\XESPD@title@approving@sheet\@undefined
\XESPD@tmpcnta = 0
\loop
\ifnum \XESPD@tmpcnta < \XESPD@title@designed@cnt
\advance \XESPD@tmpcnta 1
\XESPD@title@make@stamp{designed}{\number\XESPD@tmpcnta}
\par\vspace{5mm}
\repeat
\fi}
\renewcommand{\XESPDtheTitleFieldVIII}{%
\XESPD@title@split@field{\XESPDtheTitleFieldVIIIl}{\XESPDtheTitleFieldVIIIr}}
\renewcommand{\XESPDtheTitleFieldX}{\XESPDtheYear}
\renewcommand{\XESPDtitleFontI}{\XESPDfontV}
\renewcommand{\XESPDtitleFontII}{\XESPDfontIII}
\renewcommand{\XESPDtitleFontIII}{%
\XESPDfontIII\renewcommand{\baselinestretch}{1.50}\selectfont}
\renewcommand{\XESPDtitleFontIV}{\XESPDfontV}
\renewcommand{\XESPDtitleFontV}{\XESPDfontV}
\renewcommand{\XESPDtitleFontVI}{\XESPDfontV}
\renewcommand{\XESPDtitleFontVII}{\XESPDfontIII}
\renewcommand{\XESPDtitleFontVIII}{%
\XESPDfontIII\renewcommand{\baselinestretch}{1.25}\selectfont}
\renewcommand{\XESPDtitleFontX}{\XESPDfontV}
\renewcommand{\maketitle}{%
\begin{XESPDtitlePage}
\setlength{\topsep}{0mm}
\noindent
\parbox[c][.28\vsize][t]{\hsize}{%
\begin{center}\XESPDtitleFontI\bfseries\XESPDtheTitleFieldI\end{center}
\vspace{5mm \@plus 15mm \@minus 3mm}
\begin{center}\XESPDtitleFontII\XESPDtheTitleFieldII\end{center}
\vspace{10mm \@plus 20mm \@minus 6mm}
\begin{center}\XESPDtitleFontIII\XESPDtheTitleFieldIII\end{center}}
\par\vspace{10mm \@plus 2mm \@minus 4mm}\noindent
\parbox[c][.30\vsize][t]{\hsize}{%
\begin{center}\XESPDtitleFontIV\bfseries\XESPDtheTitleFieldIV\end{center}
\begin{center}\XESPDtitleFontV\XESPDtheTitleFieldV\end{center}
\begin{center}\XESPDtitleFontVI\XESPDtheTitleFieldVI\end{center}
\begin{center}\XESPDtitleFontVII\XESPDtheTitleFieldVII\end{center}}
\par\vspace{4mm \@plus 2mm \@minus 2mm}\noindent
\begin{center}\XESPDtitleFontVIII\XESPDtheTitleFieldVIII\end{center}
\vfill
\begin{center}\XESPDtitleFontX\XESPDtheTitleFieldX\end{center}
\end{XESPDtitlePage}}

87
xespdtitlebase.sty Normal file
View File

@ -0,0 +1,87 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdtitlebase}[2020/03/20 v1.00 Base Title Commands]
\newcommand{\XESPDtitleApprovedBy}[2]{%
\@namedef{XESPD@title@approved@post@1}{#1}
\@namedef{XESPD@title@approved@name@1}{#2}}
\newcount\XESPD@title@agreed@cnt
\newcount\XESPD@title@designed@cnt
\XESPD@title@agreed@cnt = 0
\XESPD@title@designed@cnt = 0
\newcommand{\XESPDtitleAgreedBy}[2]{%
\advance \XESPD@title@agreed@cnt 1
\@namedef{XESPD@title@agreed@post@\number\XESPD@title@agreed@cnt}{#1}
\@namedef{XESPD@title@agreed@name@\number\XESPD@title@agreed@cnt}{#2}}
\newcommand{\XESPDtitleDesignedBy}[2]{%
\advance \XESPD@title@designed@cnt 1
\@namedef{XESPD@title@designed@post@\number\XESPD@title@designed@cnt}{#1}
\@namedef{XESPD@title@designed@name@\number\XESPD@title@designed@cnt}{#2}}
\let\XESPD@title@approving@sheet\@undefinded
\newcommand{\XESPDtitleApprovingSheet}[1]{%
\def\XESPD@title@approving@sheet{#1}}
\newcommand{\XESPDtitleMakeStamp}[2]{#1\\\rule{2cm}{.1mm}\ #2\\
``\rule{.8cm}{.1mm}'' \rule{2.3cm}{.1mm}\ \rule{1.5cm}{.1mm}}
\newcommand{\XESPD@title@make@stamp}[2]{%
\XESPDtitleMakeStamp{%
\@nameuse{XESPD@title@#1@post@#2}}{%
\@nameuse{XESPD@title@#1@name@#2}}}
\newcommand{\XESPDtheTitleFieldI}{}
\newcommand{\XESPDtheTitleFieldII}{}
\newcommand{\XESPDtheTitleFieldIII}{}
\newcommand{\XESPDtheTitleFieldIV}{}
\newcommand{\XESPDtheTitleFieldV}{}
\newcommand{\XESPDtheTitleFieldVI}{}
\newcommand{\XESPDtheTitleFieldVII}{}
\newcommand{\XESPDtheTitleFieldVIII}{}
\newcommand{\XESPDtheTitleFieldIX}{}
\newcommand{\XESPDtheTitleFieldX}{}
\newcommand{\XESPDtitleFontI}{}
\newcommand{\XESPDtitleFontII}{}
\newcommand{\XESPDtitleFontIII}{}
\newcommand{\XESPDtitleFontIV}{}
\newcommand{\XESPDtitleFontV}{}
\newcommand{\XESPDtitleFontVI}{}
\newcommand{\XESPDtitleFontVII}{}
\newcommand{\XESPDtitleFontVIII}{}
\newcommand{\XESPDtitleFontIX}{}
\newcommand{\XESPDtitleFontX}{}
\def\XESPD@title@after@page{%
\XESPDclearDoublePage
\XESPDstyle{\XESPD@default@style@other}
\XESPDthisStyle{\XESPD@default@style@first}}
\newenvironment{XESPDtitlePage}{%
\begin{XESPDpadding}{5mm}{5mm}
\XESPDstyle{\XESPD@default@style@title}}{%
\end{XESPDpadding}
\aftergroup\XESPD@title@after@page}

59
xespdtotal.sty Normal file
View File

@ -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.
%
%
% This is automaticaly generated file, do not edit it.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xespdtotal}[2020/03/20 v1.00 Total number of tables, figures, etc]
\RequirePackage{xespdsect}
\let\XESPD@old@caption\@caption
\let\XESPD@old@bibitem\bibitem
\newcounter{XESPD@figure}
\newcounter{XESPD@table}
\newcounter{XESPD@bibitem}
\long\def\@caption#1[#2]#3{%
\stepcounter{XESPD@#1}%
\XESPD@old@caption{#1}[#2]{#3}}
\long\def\bibitem{%
\stepcounter{XESPD@bibitem}%
\XESPD@old@bibitem}
\def\XESPD@total@save#1#2{%
\immediate\write\@auxout{%
\string\gdef\string\XESPD@total@saved@\string#1{\arabic{#2}}}}
\AtEndDocument{%
\XESPD@total@save{figure}{XESPD@figure}
\XESPD@total@save{table}{XESPD@table}
\XESPD@total@save{bibitem}{XESPD@bibitem}
\XESPD@total@save{appendix}{appendix}
\clearpage
\addtocounter{page}{-1}
\XESPD@total@save{page}{page}
\addtocounter{page}{1}}
\newcommand{\XESPDtotal}[1]{%
\@ifundefined{XESPD@total@saved@#1}{?}{%
\@nameuse{XESPD@total@saved@#1}}}

180
xespdukrainian.def Normal file
View File

@ -0,0 +1,180 @@
% 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.
%
%
% This is automaticaly generated file, do not edit it.
%
\ProvidesFile{xespdukrainian.def}[2020/03/20 v1.00 Language File]
\newcommand{\XESPDcolumnIVname}{%
\cyr\CYRL\cyri\cyrt.}
\newcommand{\XESPDcolumnVname}{%
\cyr\CYRM\cyra\cyrs\cyra}
\newcommand{\XESPDcolumnVIname}{%
\cyr\CYRM\cyra\cyrs\cyrsh\cyrt\cyra\cyrb}
\newcommand{\XESPDcolumnVIIname}{%
\cyr\CYRA\cyrr\cyrk\cyru\cyrsh}
\newcommand{\XESPDcolumnVIItwosideName}{%
\cyr\CYRS\cyrt\cyro\cyrr.}
\newcommand{\XESPDcolumnVIIIname}{%
\cyr\CYRA\cyrr\cyrk\cyru\cyrsh\cyrii\cyrv}
\newcommand{\XESPDcolumnVIIItwosideName}{%
\cyr\CYRS\cyrt\cyro\cyrr\cyrii\cyrn\cyro\cyrk}
\newcommand{\XESPDcolumnXfIname}{%
\cyr\CYRR\cyro\cyrz\cyrr\cyro\cyrb\cyri\cyrv}
\newcommand{\XESPDcolumnXfIIname}{%
\cyr\CYRP\cyre\cyrr\cyre\cyrv\cyrii\cyrr\cyri\cyrv}
\newcommand{\XESPDcolumnXfIIIname}{%
\cyr\CYRT. \cyrk\cyro\cyrn\cyrt\cyrr.}
\newcommand{\XESPDcolumnXfIVname}{}
\newcommand{\XESPDcolumnXfVname}{%
\cyr\CYRN. \cyrk\cyro\cyrn\cyrt\cyrr.}
\newcommand{\XESPDcolumnXfVIname}{%
\cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyri\cyrv}
\newcommand{\XESPDcolumnXIVname}{%
\cyr\CYRZ\cyrm.}
\newcommand{\XESPDcolumnXVname}{%
\cyr\CYRL\cyri\cyrs\cyrt}
\newcommand{\XESPDcolumnXVIname}{%
\No\ \cyr\cyrd\cyro\cyrk\cyru\cyrm.}
\newcommand{\XESPDcolumnXVIIname}{%
\cyr\CYRP\cyrii\cyrd\cyrp.}
\newcommand{\XESPDcolumnXVIIIname}{%
\cyr\CYRD\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXIXname}{%
\cyr\CYRII\cyrn\cyrv. \No\ \cyro\cyrr\cyrii\cyrg.}
\newcommand{\XESPDcolumnXXname}{%
\cyr\CYRP\cyrii\cyrd\cyrp. \cyrii\ \cyrd\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXXIname}{%
\cyr\CYRV\cyrz\cyra\cyrm. \cyrii\cyrn\cyrv. \No}
\newcommand{\XESPDcolumnXXIIname}{%
\cyr\CYRII\cyrn\cyrv. \No\ \cyrd\cyru\cyrb\cyrl.}
\newcommand{\XESPDcolumnXXIIIname}{%
\cyr\CYRP\cyrii\cyrd\cyrp. \cyrii\ \cyrd\cyra\cyrt\cyra}
\newcommand{\XESPDcolumnXXIVname}{%
\cyr\CYRS\cyrp\cyrr\cyra\cyrv. \No}
\newcommand{\XESPDcolumnXXVname}{%
\cyr\CYRP\cyre\cyrr\cyrsh. \cyrz\cyra\cyrs\cyrt.}
\newcommand{\XESPDcolumnXXXIname}{%
\cyr\CYRK\cyro\cyrp\cyrii\cyryu\cyrv\cyra\cyrv}
\@namedef{XESPDa0FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}0}
\@namedef{XESPDa1FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}1}
\@namedef{XESPDa2FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}2}
\@namedef{XESPDa3FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}3}
\@namedef{XESPDa4FormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \CYRA{}4}
\@namedef{XESPDemptyFormatName}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt\ \ \ \ }
\newcommand{\XESPDcolumnXXXIIIname}{%
\cyr\CYRZ\cyro\cyrn\cyra}
\newcommand{\XESPDagreedName}{%
\cyr\CYRP\cyro\cyrg\cyro\cyrd\cyrzh\cyre\cyrn\cyro}
\newcommand{\XESPDapprovingName}{%
\cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyru\cyryu}
\newcommand{\XESPDapprovedName}{%
\cyr\CYRZ\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyre\cyrn\cyro}
\newcommand{\XESPDapprovingSheetName}{%
\cyr\CYRL\cyri\cyrs\cyrt\ %
\cyrz\cyra\cyrt\cyrv\cyre\cyrr\cyrd\cyrzh\cyre\cyrn\cyrn\cyrya}
\newlength{\XESPDexplanWidth}
\setlength{\XESPDexplanWidth}{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{\XESPDspecColumnIname}{%
\cyr\CYRF\cyro\cyrr\cyrm\cyra\cyrt}
\newcommand{\XESPDspecColumnIIname}{%
\cyr\CYRZ\cyro\cyrn\cyra}
\newcommand{\XESPDspecColumnIIIname}{%
\cyr\CYRP\cyro\cyrz.}
\newcommand{\XESPDspecColumnIVname}{%
\cyr\CYRP\cyro\cyrz\cyrn\cyra\cyrch\cyre\cyrn\cyrn\cyrya}
\newcommand{\XESPDspecColumnVname}{%
\cyr\CYRN\cyra\cyrishrt\cyrm\cyre\cyrn\cyru\cyrv\cyra\cyrn\cyrn\cyrya}
\newcommand{\XESPDspecColumnVIname}{%
\cyr\CYRK\cyrii\cyrl\cyrsftsn\cyrk.}
\newcommand{\XESPDspecColumnVIIname}{%
\cyr\CYRP\cyrr\cyri\cyrm\cyrii\cyrt\cyrk\cyra}
\newcommand{\XESPDspecIIcolumnIname}{\XESPDspecColumnIname}
\newcommand{\XESPDspecIIcolumnIIname}{\XESPDspecColumnIIname}
\newcommand{\XESPDspecIIcolumnIIIname}{\XESPDspecColumnIIIname}
\newcommand{\XESPDspecIIcolumnIVname}{\XESPDspecColumnIVname}
\newcommand{\XESPDspecIIcolumnVname}{\XESPDspecColumnVname}
\newcommand{\XESPDspecIIcolumnVIname}{\XESPDspecColumnVIname}
\newcommand{\XESPDspecIIcolumnVIIname}{%
\cyr\CYRM\cyra\cyrs\cyra}
\newcommand{\XESPDspecIIcolumnVIIIname}{%
\cyr\CYRM\cyra\cyrt\cyre\cyrr\cyrii\cyra\cyrl}
\newcommand{\XESPDspecIIcolumnIXname}{\XESPDspecColumnVIIname}
\newcommand{\XESPDchangeSheetName}{%
\cyr\CYRL\cyri\cyrs\cyrt\ %
\cyrr\cyre\cyrie\cyrs\cyrt\cyrr\cyra\cyrc\cyri\cyryi\ %
\cyrz\cyrm\cyrii\cyrn}
\newcommand{\XESPDchngColumnsIIhName}{%
\cyr\CYRN\cyro\cyrm\cyre\cyrr\cyri\ \cyra\cyrr\cyrk\cyru\cyrsh\cyrii\cyrv\ %
(\cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyro\cyrk)}
\newcommand{\XESPDchngColumnIIname}{%
\cyr\cyrz\cyrm\cyrii\-\cyrn\cyre\-\cyrn\cyri\cyrh}
\newcommand{\XESPDchngColumnIIIname}{%
\cyr\cyrz\cyra\-\cyrm\cyrii\-\cyrn\cyre\-\cyrn\cyri\cyrh}
\newcommand{\XESPDchngColumnIVname}{%
\cyr\cyrn\cyro\-\cyrv\cyri\cyrh}
\newcommand{\XESPDchngColumnVname}{%
\cyr\cyra\cyrn\cyru\-\cyrl\cyrsftsn\cyro\cyrv\cyra\-\cyrn\cyri\cyrh}
\newcommand{\XESPDchngColumnVIname}{%
\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{\XESPDchngColumnVIIIname}{%
\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}