From 03de7ac5a0979e3c75d17df280f316257d4366ee Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Wed, 11 Jan 2006 23:52:53 +0000
Subject: trunk/Master/texmf-dist/source/latex/eskd

git-svn-id: svn://tug.org/texlive/trunk@257 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/latex/eskd/eskd.dtx | 1071 ++++++++++++++++++++++++++
 1 file changed, 1071 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/eskd/eskd.dtx

(limited to 'Master/texmf-dist/source/latex/eskd/eskd.dtx')

diff --git a/Master/texmf-dist/source/latex/eskd/eskd.dtx b/Master/texmf-dist/source/latex/eskd/eskd.dtx
new file mode 100644
index 00000000000..51c15945613
--- /dev/null
+++ b/Master/texmf-dist/source/latex/eskd/eskd.dtx
@@ -0,0 +1,1071 @@
+% \iffalse ^^A -*- coding: koi8-r -*-
+%<*driver>
+\documentclass[a4paper,dvips]{article}
+
+\usepackage{doc}
+\usepackage{verbatim}
+\EnableCrossrefs
+%%\DisableCrossrefs
+%%\OnlyDescription
+\CodelineIndex
+
+\DoNotIndex{\-,\\,\ }
+\DoNotIndex{\addtolength}
+\DoNotIndex{\begin\bf,\bfseries}
+\DoNotIndex{\centerline,\cline,\CurrentOption,\cyrg}
+\DoNotIndex{\DeclareOption,\define@key,\draft}
+\DoNotIndex{\edef,\end}
+\DoNotIndex{\itshape}
+\DoNotIndex{\line,\linethickness}
+\DoNotIndex{\makebox}
+\DoNotIndex{\newcommand,\newsavebox}
+\DoNotIndex{\put}
+\DoNotIndex{\renewcommand}
+\DoNotIndex{\savebox}
+\DoNotIndex{\unitlength,\usebox}
+\DoNotIndex{\if,\else,\fi}
+%%\DoNotIndex{}
+%%\DoNotIndex{}
+
+\usepackage{pscyr}
+\usepackage{type1cm}
+\usepackage[T2A]{fontenc}
+\usepackage[koi8-r]{inputenc}
+\usepackage[russian]{babel}
+
+\renewcommand{\rmdefault}{far}
+
+%%\usepackage{url}
+\usepackage{graphicx}
+
+\MakeShortVerb{\|}
+
+\newcommand{\ndm}{\par\noindent\DescribeMacro}
+
+\author{Вячеслав~А.~Федоров\\ 
+Тольяттинский государственный университет,\\
+Центр новых информационных технологий
+}
+\title{Класс ЕСКД}
+\date{\small $ $Id: eskd.dtx,v 1.3 2004/10/15 05:34:29 fva Exp $ $}
+\begin{document}
+\DocInput{eskd.dtx}
+\end{document}
+%</driver>
+%
+%% Copyright 2004 Vjacheslav A. Fyodorov
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% 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.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% This program consists of the files eskd.dtx and example.tex
+
+% \fi
+%
+%\CheckSum{987}
+% \maketitle 
+% \begin{abstract}
+%   This class designed for making documents in accordance with russian
+%   (and probably post USSR) standards for designers. So it documented
+%   in russian. PsCyr package required.
+% \end{abstract}
+
+% Идея разработки класса возникла из необходимости создания большого
+% набора документов в формате похожем на ЕСКД. Имеющиеся на тот момент
+% шаблоны для текстовых процессоров пугали своей странной реакцией на смену
+% принтера и объем документа, поэтому все и началось.
+
+% Несмотря на название, класс не претендует на стопроцентное следование
+% ЕСКД: частично устаревшая  документация и, конечно, недостаток времени
+% не позволили сделать все как должно быть,
+% но наверное, плохой класс лучше чем его отсутствие.
+
+% Итак, что мы умеем:
+% \begin{itemize}
+% \item рисовать рамки по краю страницы. Три вида --- для титульного
+%   листа, первой и последующих страниц,
+% \item заполнять поля рамок,
+% \item готовить документ для двусторонней печати,
+% \item регулировать высоту рамки,
+% \item печатать титульный лист и лист изменений.
+% \end{itemize}
+
+% \section{Параметры класса}
+
+% \ndm{twoside} --- двусторонняя печать. По умолчанию
+% --- нет (односторонняя).
+% \ndm{height} --- высота рамки в миллиметрах (принтеры
+% бывают разные). По умолчанию --- 282. Значение параметра сохраняется в
+% макрокоманде \DescribeMacro{\eskdheight}|\eskdheight|.
+% \ndm{title} --- печать титульного листа. По умолчанию
+% --- нет (без титульного листа).
+% \ndm{encoding} --- кодировка текста
+% cp866,koi8-r,cp1251\dots По умолчанию --- koi8-r. Значение параметра
+% сохраняется в макрокоманде \DescribeMacro{\eskdencoding}|\eskdencoding|.
+% \ndm{year} --- год документа.  По умолчанию
+% --- |\number\year| --- текущий.  Значение параметра сохраняется в
+% макрокоманде \DescribeMacro{\eskdyear}|\eskdyear|.
+% \ndm{draft} --- черновик. По умолчанию
+% --- нет (чистовик). В режиме черновика на строках переполнения
+% печатаются пометки.
+
+% \section{Заполнение полей документа}
+
+% \begin{figure}[htbp]
+%   \centering
+%   \includegraphics[width=\textwidth]{example}
+%     \caption{Поля документа}
+%   \label{fig:fields}
+% \end{figure}
+
+% На рис.~\ref{fig:fields} представлен результат форматирования файла
+% содержащего команды\footnote{чистая обратная сторона титульного
+% листа не показана}: 
+% 
+% {\tt\verbatiminput{example}
+% }
+
+% \section{Команды формирования полей документа}
+
+% \subsection{Команды с одним параметром}
+
+% \ndm{\docName} --- ( синоним |\fI|) наименование изделия/документа ---
+% графа 1.
+% \ndm{\docSignature} --- (|\fII|)    обозначение --- графа 2.
+% \ndm{\docLabel} --- (|\fIX|) графа 9.
+% \ndm{\middleLabel} --- (|\fX|) графа 10 --- недостающая должность.
+% \ndm{\docAuthor} --- (|\fXIi|)   фамилия автора.
+% \ndm{\docChecker} --- (|\fXIii|)  фамилия проверившего.
+% \ndm{\middleName} ---    (|\fXIiii|) фамилия неизвестного.
+% \ndm{\normController} --- (|\fXIiv|)  фамилия нормоконтролера.
+% \ndm{\approvedBy} ---    (|\fXIv|)   фамилия утвердившего.
+% \ndm{\titleTop} ---      (|\tfI|)    шапка титульного листа.
+% \ndm{\tfIII} --- поле согласовано/утверждаю титульного листа. Генерируется
+%                       командами |\titleAgreedBy| и |\titleApprovedBy|.
+% \ndm{\titleName} ---     (|\tfIV|)   наименование (на титульном
+% листе). По умолчанию берется из |\docName|.
+% \ndm{\titleSignature} --- (|\tfVI|)   обозначение. По умолчанию
+% берется из |\docSignature|.
+% \ndm{\titleBottom} --- нижнее поле титула. По умолчанию берется  год
+% из параметра класса. 
+
+% \subsection{Команды с двумя параметрами}
+
+
+% \ndm{\titleApprovedBy} --- задание должности и фамилии утвердившего на
+% титульном листе. Параметры соответственно --- должность и фамилия.
+
+% \ndm{\titleAgreedBy} ---  должность и фамилия согласовавшего на
+% титульном листе. Можно использовать несколько раз --- дополнительные
+% появятся внизу слева. 
+
+% \ndm{\titleDesignedBy} --- должность соавтора, фамилия соавтора.
+%       Можно использовать несколько раз.
+
+
+% \section{Лист регистрации изменений}
+
+% Команда \DescribeMacro{\eskdListOfChanges}|\eskdListOfChanges|
+% печатает лист регистрации изменений с новой страницы.
+
+
+% \bigskip
+% \StopEventually{Конец описания пакета ЕСКД. Вопросы задавать по
+%  адресу: {\it V.Fyodorov@tltsu.ru}}
+
+
+
+% \section{Детали реализации}
+
+
+% \subsection{Идентификация}
+
+%    \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e} \ProvidesClass{eskd}[2004/10/12 a4 eskd
+format (V.Fyodorov@tltsu.ru)]
+%    \end{macrocode}
+
+% \subsection{Создание и инициализация параметров}
+% двусторонняя печать:
+%    \begin{macrocode}
+\newif\ifeskd@twoside
+\eskd@twosidefalse
+
+%    \end{macrocode}
+% титульный лист:
+%    \begin{macrocode}
+\newif\ifeskd@title
+\eskd@titlefalse
+
+%    \end{macrocode}
+% высота рамки в миллиметрах по умолчанию:
+%    \begin{macrocode}
+\newcommand{\eskdheight}{282}
+%    \end{macrocode}
+% кодировка по умолчанию:
+%    \begin{macrocode}
+\newcommand{\eskdencoding}{koi8-r}
+%    \end{macrocode}
+% год документа:
+%    \begin{macrocode}
+\newcommand{\eskdyear}{\number\year}
+
+%    \end{macrocode}
+% толщина тонкой линии в мм:\footnote{не умею делить вещественные
+% числа, поэтому второй параметр (должен быть равен половине от первого)}
+%    \begin{macrocode}
+\newcommand{\eskd@thin}{0.2}
+\newcommand{\eskd@half@thin}{0.1}
+
+%    \end{macrocode}
+% ... толстой:\footnote{аналогично}
+%    \begin{macrocode}
+\newcommand{\eskd@thick}{0.4}
+\newcommand{\eskd@half@thick}{0.2}
+%    \end{macrocode}
+
+% \subsection{Обработка параметров класса}
+%    \begin{macrocode}
+\RequirePackage{keyval}
+
+\define@key{eskd}{height}{\renewcommand{\eskdheight}{#1}}
+\define@key{eskd}{encoding}{\renewcommand{\eskdencoding}{#1}}
+\define@key{eskd}{year}{\renewcommand{\eskdyear}{#1}}
+
+\DeclareOption{title}{\eskd@titletrue}
+
+\DeclareOption{twoside}{%
+  \eskd@twosidetrue
+  \PassOptionsToClass{\CurrentOption}{article}
+  \PassOptionsToPackage{twosideshift=0pt}{geometry}
+  }
+
+\DeclareOption{draft}{\PassOptionsToClass{\CurrentOption}{article}}
+
+\DeclareOption*{\edef\@tempa{%
+    \noexpand\setkeys{eskd}{\CurrentOption}}\@tempa}
+
+\ProcessOptions\relax
+
+\LoadClass[a4paper]{article}
+%    \end{macrocode}
+
+% \subsection{Дополнительные пакеты}
+
+%    \begin{macrocode}
+\RequirePackage[koi8-r,\eskdencoding]{inputenc}
+\RequirePackage[russian]{babel}
+\RequirePackage[T2A]{fontenc}
+\RequirePackage{rotating}
+\RequirePackage{lastpage}
+\RequirePackage{ifthen}
+\RequirePackage{fancyhdr}
+
+\RequirePackage{pscyr}
+\renewcommand{\rmdefault}{far}
+
+\RequirePackage[left=24mm,right=11mm%
+,top=10mm,nofoot,headsep=0pt]{geometry}
+%    \end{macrocode}
+
+
+% \subsection{Управление размером нижнего поля}
+
+% Команда \DescribeMacro{\set@eskd@bottom}|\set@eskd@bottom|
+% устанавливает нижнее поле текста относительно нижней рамки.
+
+%    \begin{macrocode}
+\newcommand{\set@eskd@bottom}[1]{%
+  \setlength{\textheight}{\eskdheight mm}
+  \addtolength{\textheight}{-#1}
+  \addtolength{\textheight}{5 mm}
+  }
+%    \end{macrocode}
+
+
+% \subsection{Вертикальная неизменяемая часть. 148x12}
+
+% Не будем дважды рисовать одно и то же. Макет
+% будет в виде текста:
+
+% \begin{verbatim}
+% +-----------------------------------------------------------------------+
+% |Инв. N подл.| Подп. и дата | Взам. инв. N | Инв. N дубл.| Подп. и дата |
+% |------------|--------------|--------------|-------------|--------------|
+% |            |              |              |             |              |
+% \end{verbatim}
+
+% Повернутая на 90 градусов относительно левого нижнего угла.
+
+%    \begin{macrocode}
+\newsavebox{\eskd@vertical@frame}
+
+\newcommand{\make@eskd@vertical@frame}{%
+        \unitlength 1mm %
+    \savebox{\eskd@vertical@frame}(0,0){%
+      \begin{rotate}{90}
+        \begin{picture}(0,0)(0,0)
+          \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% вертикальные линии:
+%    \begin{macrocode}
+%                                
+          \put(0,0){\line(0,1){12}}
+          \put(25,0){\line(0,1){12}}
+          \put(60,0){\line(0,1){12}}
+          \put(85,0){\line(0,1){12}}
+          \put(110,0){\line(0,1){12}}
+          \put(145,0){\line(0,1){12}}
+%    \end{macrocode}
+% углы:
+%    \begin{macrocode}
+          \put(0,12){\line(0,1){\eskd@half@thick}}
+          \put(145,12){\line(0,1){\eskd@half@thick}}
+%    \end{macrocode}
+% горизонтальные линии:
+%    \begin{macrocode}
+%                                
+          \put(0,7){\line(1,0){145}}
+          \put(0,12){\line(1,0){145}}
+%    \end{macrocode}
+% текст:
+%    \begin{macrocode}
+%                                
+          \put(12.5,9.5){\makebox(0,0){\itshape
+              \textar{Инв. \textnumero\ подл.}}}
+          \put(42.5,9.5){\makebox(0,0){\itshape
+              \textar{Подп. и дата}}}
+          \put(72.5,9.5){\makebox(0,0){\itshape
+              \textar{Взам. инв. \textnumero}}}
+          \put(97.5,9.5){\makebox(0,0){\itshape
+              \textar{Инв. \textnumero\ дубл.}}}
+          \put(127.5,9.5){\makebox(0,0){\itshape
+              \textar{Подп. и дата}}}
+                                %
+        \end{picture}%
+        \end{rotate}
+      }}
+
+%    \end{macrocode}
+
+% \subsection{Граница поля с основанием в левом верху.}
+
+% \begin{verbatim}
+%
+%    O----------------------------------+
+%    |                     ^            |
+%    |                     |            |
+%    |               \eskdheight mm     |
+%    |                     |            |
+%    |<-------- 185 mm ----|----------->|
+%    |                     |            |
+%    |                     v            |
+%    +----------------------------------+
+%
+% \end{verbatim}
+%    \begin{macrocode}
+\newsavebox{\eskd@border}
+
+\newcommand{\make@eskd@border}{%
+   \savebox{\eskd@border}(0,0){%
+      \unitlength 1mm
+      \begin{picture}(0,0)(0,\eskdheight)
+         \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% рамка:
+%    \begin{macrocode}
+         \put(0,0){\line(1,0){185}}             
+         \put(0,\eskdheight){\line(1,0){185}}
+         \put(0,0){\line(0,1){\eskdheight}}
+         \put(185,0){\line(0,1){\eskdheight}}
+%    \end{macrocode}
+% углы:
+%    \begin{macrocode}
+         \put(-\eskd@half@thick,0){\line(1,0){\eskd@half@thick}}
+         \put(-\eskd@half@thick,\eskdheight){\line(1,0){\eskd@half@thick}}
+         \put(185,0){\line(1,0){\eskd@half@thick}}
+         \put(185,\eskdheight){\line(1,0){\eskd@half@thick}}
+      \end{picture}
+}}
+
+
+%    \end{macrocode}
+
+% \subsection{Надпись}
+%
+%   Надпись общую разобьем на три куска из которых будем складывать
+%   четную/нечетную и общую часть.
+%
+% \subsubsection{Левая часть надписи.}
+% \begin{verbatim}
+% ------+------+----------+-------+-----
+%       |      |          |       |
+% ------+------+----------+-------+-----
+%       |      |          |       |
+% ------+------+----------+-------+-----
+%  Изм. | Лист | N докум. | Подп. | Дата
+% \end{verbatim}
+%    \begin{macrocode}
+
+\newsavebox{\eskd@common@left}
+
+\newcommand{\make@eskd@common@left}{%
+  \savebox{\eskd@common@left}(0,0){%
+    \unitlength 1mm %
+    \begin{picture}(0,0)(0,0)
+      \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% толстые вертикальные:
+%    \begin{macrocode}
+%                                
+      \put(7,0){\line(0,1){15}}
+      \put(17,0){\line(0,1){15}}
+      \put(40,0){\line(0,1){15}}
+      \put(55,0){\line(0,1){15}}
+%    \end{macrocode}
+% толстые горизонтальные:
+%    \begin{macrocode}
+%                                
+      \put(0,5){\line(1,0){65}}
+      \put(0,15){\line(1,0){65}}
+%    \end{macrocode}
+% тонкие горизонтальные:
+%    \begin{macrocode}
+%                                
+      \linethickness{\eskd@thin mm}
+      \put(0,10){\line(1,0){65}}
+%    \end{macrocode}
+% текст:
+%    \begin{macrocode}
+%                                
+      \put(3.5,2.5){\makebox(0,0){\footnotesize\itshape\textar{Изм.}}}
+      \put(12,2.5){\makebox(0,0){\itshape\textar{Лист}}}
+      \put(28.5,2.5){\makebox(0,0){\itshape
+          \textar{\textnumero\ докум.}}}
+      \put(47.5,2.5){\makebox(0,0){\itshape\textar{Подп.}}}
+      \put(60,2.5){\makebox(0,0){\small\itshape\textar{Дата}}}
+%
+    \end{picture}
+    }}
+%    \end{macrocode}
+
+% \subsubsection{Дырка (поле 2). 110x15}
+% \begin{verbatim}
+% +--------------+
+% |              |
+% |              |
+%
+% \end{verbatim}
+
+%    \begin{macrocode}
+%
+\newsavebox{\eskd@common@hole}
+%
+\newcommand{\make@eskd@common@hole}{%
+  \savebox{\eskd@common@hole}(0,0){%
+    \unitlength 1mm
+    \begin{picture}(0,0)(0,0)
+      \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% толстые вертикальные:
+%    \begin{macrocode}
+%                                
+      \put(0,0){\line(0,1){15}}
+      \put(110,0){\line(0,1){15}}
+%    \end{macrocode}
+% толстые горизонтальные:
+%    \begin{macrocode}
+%                                
+      \put(0,15){\line(1,0){110}}
+                                %
+    \end{picture}
+    }}
+%    \end{macrocode}
+
+% \subsubsection{Лист/страница}
+
+%    \begin{macrocode}
+
+\newsavebox{\eskd@common@page}
+
+\newcommand{\make@eskd@common@page}{%
+  \savebox{\eskd@common@page}(0,0){%
+    \unitlength 1mm
+    \begin{picture}(0,0)(0,0)
+      \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% толстые горизонтальные:
+%    \begin{macrocode}
+%                                
+      \put(0,15){\line(1,0){10}}
+      \put(0,8){\line(1,0){10}}
+                                %
+    \end{picture}
+    }}
+
+%    \end{macrocode}
+
+% \subsection{Обычная страница}
+
+% команда создающая обычный стиль страницы
+%    \begin{macrocode}
+\newcommand{\make@eskd@common@style}{%
+  \newsavebox{\eskd@common@list}
+%    \end{macrocode}
+% надпись перед номером страницы:
+%    \begin{macrocode}
+  \savebox{\eskd@common@list}{\itshape
+    \textar{\ifeskd@twoside Стр.\else Лист\fi}}
+%
+%    \end{macrocode}
+% надпись внизу страницы:
+%    \begin{macrocode}
+  \newsavebox{\eskd@common@gost}
+  \savebox{\eskd@common@gost}{\scriptsize\textar{ГОСТ 2.104-68 
+      Форма 2\ifeskd@twoside б\else a\fi}}
+%    \end{macrocode}
+% обозначение:
+%    \begin{macrocode}
+  \newsavebox{\eskd@common@signature}
+  \savebox{\eskd@common@signature}{{\inputencoding{\eskdencoding}\eskd@ii}}
+%
+%    \end{macrocode}
+% собственно стиль:
+%    \begin{macrocode}
+  \fancypagestyle{common}{% 
+  \fancyhf{}
+  \fancyhead[L]{%
+    \unitlength 1mm
+    \begin{picture}(0,0)(3,-6)
+      \put(0,0){\usebox{\eskd@border}}
+      \put(0,-\eskdheight){\usebox{\eskd@vertical@frame}}
+      \put(0,-\eskdheight){\usebox{\eskd@common@left}}
+      \put(65,-\eskdheight){\usebox{\eskd@common@hole}}
+      \put(175,-\eskdheight){\usebox{\eskd@common@page}}
+      \put(0,-\eskdheight){\begin{picture}(0,0)
+          \put(180,4){\makebox(0,0){\large\textbf{\textar{\thepage}}}}
+          \put(120,7.5){\makebox(0,0){\usebox{\eskd@common@signature}}}
+          \put(180,11.5){\makebox(0,0){\usebox{\eskd@common@list}}}
+          \put(185,\ifeskd@twoside-1\else0\fi){\makebox(0,0)[rt]{%
+              \usebox{\eskd@common@gost}}}
+        \end{picture}}
+    \end{picture}
+    }
+  \ifeskd@twoside
+  \fancyhead[LE]{%
+    \unitlength 1mm
+    \begin{picture}(0,0)(3,-6)
+      \put(0,0){\usebox{\eskd@border}}
+      \put(120,-\eskdheight){\usebox{\eskd@common@left}}
+      \put(10,-\eskdheight){\usebox{\eskd@common@hole}}
+      \put(0,-\eskdheight){\usebox{\eskd@common@page}}
+      \put(0,-\eskdheight){\begin{picture}(0,0)
+          \put(5,4){\makebox(0,0){\large\textbf{\textar{\thepage}}}}
+          \put(65,7.5){\makebox(0,0){\usebox{\eskd@common@signature}}}
+          \put(5,11.5){\makebox(0,0){\usebox{\eskd@common@list}}}
+          \put(185,\ifeskd@twoside-1\else0\fi){\makebox(0,0)[rt]{%
+              \usebox{\eskd@common@gost}}}
+        \end{picture}}
+    \end{picture}
+    }
+  \fi
+  \renewcommand{\headrulewidth}{0pt}
+  \renewcommand{\footrulewidth}{0pt}}
+}
+
+
+%    \end{macrocode}
+
+% \subsection{Стиль первого листа}
+
+%    \begin{macrocode}
+
+\newcommand{\make@eskd@first@style}{%
+  \newsavebox{\eskd@first@text}
+  \savebox{\eskd@first@text}{%
+    \unitlength 1mm
+    \begin{picture}(0,0)(0,0)
+      \put(185,-1){\makebox(0,0)[rt]{\scriptsize 
+          ГОСТ 2.104-68 Форма 2}}
+      \put(3.5,27.5){\makebox(0,0){\footnotesize\itshape Изм.}}
+      \put(12,27.5){\makebox(0,0){\itshape Лист}}
+      \put(28.5,27.5){\makebox(0,0){\itshape\textnumero\ докум.}}
+      \put(47.5,27.5){\makebox(0,0){\itshape Подп.}}
+      \put(60,27.5){\makebox(0,0){\small\itshape Дата}}
+%
+      \put(8.5,22.5){\makebox(0,0){\itshape Разраб.}}
+      \put(8.5,17.5){\makebox(0,0){\itshape Пров.}}
+      \put(8.5,7.5){\makebox(0,0){\itshape Н. контр.}}
+      \put(8.5,2.5){\makebox(0,0){\itshape Утв.}}
+%
+      \put(142.5,22.5){\makebox(0,0){\itshape Лит.}}
+      \put(157.5,22.5){\makebox(0,0){\itshape
+          \ifeskd@twoside Стр.\else Лист\fi}}
+      \put(175,22.5){\makebox(0,0){\itshape
+          \ifeskd@twoside Страниц\else Листов\fi}}
+
+    \end{picture}
+    }
+%
+  \fancypagestyle{first}{%
+    \fancyhf{}
+    \fancyhead[L]{%
+      \unitlength 1mm
+      \begin{picture}(0,0)(3,-6)
+        \put(0,0){\usebox{\eskd@border}}
+        \put(0,-\eskdheight){\usebox{\eskd@vertical@frame}}
+        \put(0,-\eskdheight){\makebox(0,0){%
+            \unitlength 1mm
+            \begin{picture}(0,0)(0,0)
+              \put(157.5,17.5){\makebox(0,0){\ifthenelse
+                  {\pageref{LastPage}=1}{}{\thepage}}}
+              \put(175,17.5){\makebox(0,0){\pageref{LastPage}}}
+              \put(18,22.5){\makebox(0,0)[l]{\eskd@xiI}}
+              \put(18,17.5){\makebox(0,0)[l]{\eskd@xiII}}
+              \put(18,12.5){\makebox(0,0)[l]{\eskd@xiIII}}
+              \put(18,7.5){\makebox(0,0)[l]{\eskd@xiIV}}
+              \put(18,2.5){\makebox(0,0)[l]{\eskd@xiV}}
+              \put(67,12.5){\makebox(0,0)[l]{%
+                  \parbox{66mm}{\large\raggedright\eskd@i}}}
+              \put(125,32.5){\makebox(0,0){\LARGE\eskd@ii}}
+              \put(160,7.5){\makebox(0,0){\eskd@ix}}
+              \put(8.5,12.5){\makebox(0,0){\itshape\eskd@x}}
+              \linethickness{\eskd@thick mm}
+%    \end{macrocode}
+% vertical lines thick:
+%    \begin{macrocode}
+%                                
+              \put(7,25){\line(0,1){15}}
+              \put(17,0){\line(0,1){40}}
+              \put(40,0){\line(0,1){40}}
+              \put(55,0){\line(0,1){40}}
+              \put(65,0){\line(0,1){40}}
+              \put(135,0){\line(0,1){25}}
+              \put(140,15){\line(0,1){5}}
+              \put(145,15){\line(0,1){5}}
+              \put(150,15){\line(0,1){10}}
+              \put(165,15){\line(0,1){10}}
+%    \end{macrocode}
+% horizontal lines thick:
+%    \begin{macrocode}
+%                                
+              \put(0,40){\line(1,0){185}}
+              \put(0,30){\line(1,0){65}}
+              \put(0,25){\line(1,0){185}}
+              \put(135,20){\line(1,0){50}}
+              \put(135,15){\line(1,0){50}}
+%    \end{macrocode}
+% horizontal lines thin:
+%    \begin{macrocode}
+%                                
+              \linethickness{\eskd@thin mm}
+              \put(0,35){\line(1,0){65}}
+              \multiput(0,5)(0,5){4}{\line(1,0){65}}
+%    \end{macrocode}
+% labels:
+%    \begin{macrocode}
+%                                
+              \put(0,0){\usebox{\eskd@first@text}}
+                                %       
+            \end{picture}
+            }}
+      \end{picture}
+      }
+    \renewcommand{\headrulewidth}{0pt}
+    \renewcommand{\footrulewidth}{0pt}}
+  }
+%    \end{macrocode}
+% \subsection{Стиль титульного листа}
+%    \begin{macrocode}
+
+\newcommand{\make@eskd@title@style}{%
+  \newsavebox{\eskd@title@text}
+  \savebox{\eskd@title@text}{\scriptsize\textar{Ф. 1288}}
+  \newsavebox{\eskd@agr}
+  \savebox{\eskd@agr}{\usefont{T2A}{far}{b}{n}\Large Согласовано}
+  \newsavebox{\eskd@appr}
+  \savebox{\eskd@appr}{\usefont{T2A}{far}{b}{n}\Large Утверждаю}
+  \fancypagestyle{title}{%
+    \fancyhf{}
+    \fancyhead[L]{%
+      \unitlength 1mm
+      \begin{picture}(0,0)(3,-6)
+        \put(0,0){\usebox{\eskd@border}}
+        \put(0,-\eskdheight){\usebox{\eskd@vertical@frame}}
+        \put(185,-\eskdheight){%
+          \begin{picture}(0,0)
+            \put(0,-1){\makebox(0,0)[rt]{\usebox{\eskd@title@text}}}
+          \end{picture}}
+      \end{picture}
+      }
+    \renewcommand{\headrulewidth}{0pt}
+    \renewcommand{\footrulewidth}{0pt}}
+  }
+%    \end{macrocode}
+
+% \subsection{Определение команд заполнения полей}
+
+% \subsubsection{Наименование изделия/документа --- графа 1}
+% \DescribeMacro{\docName}\DescribeMacro{\eskd@i}
+%    \begin{macrocode}
+\newcommand{\eskd@i}{}
+\newcommand{\docName}[1]{\renewcommand{\eskd@i}{#1}}
+%    \end{macrocode}
+% синоним :\DescribeMacro{\fI}
+%    \begin{macrocode}
+\newcommand{\fI}{\docName}
+
+%    \end{macrocode}
+% \subsubsection{Обозначение - графа 2.}
+%    \begin{macrocode}
+\newcommand{\eskd@ii}{}
+\newcommand{\docSignature}[1]{\renewcommand{\eskd@ii}{#1}}
+%    \end{macrocode}
+% синоним :
+%    \begin{macrocode}
+\newcommand{\fII}[1]{\renewcommand{\eskd@ii}{#1}}
+
+%    \end{macrocode}
+% \subsubsection{Графа 9.}
+%    \begin{macrocode}
+\newcommand{\eskd@ix}{}
+\newcommand{\fIX}[1]{\renewcommand{\eskd@ix}{#1}}
+\newcommand{\docLabel}[1]{\renewcommand{\eskd@ix}{#1}}
+
+%    \end{macrocode}
+% \subsubsection{Графа 10 - недостающая должность.}
+%    \begin{macrocode}
+\newcommand{\eskd@x}{}
+\newcommand{\middleLabel}[1]{\renewcommand{\eskd@x}{#1}}
+\newcommand{\fX}[1]{\renewcommand{\eskd@x}{#1}}
+
+%    \end{macrocode}
+% \subsubsection{Фамилия автора.}
+%    \begin{macrocode}
+\newcommand{\eskd@xiI}{}
+\newcommand{\docAuthor}[1]{\renewcommand{\eskd@xiI}{#1}}
+%    \end{macrocode}
+% синоним :
+%    \begin{macrocode}
+\newcommand{\fXIi}[1]{\renewcommand{\eskd@xiI}{#1}}
+
+%    \end{macrocode}
+% \subsubsection{Фамилия проверившего.}
+%    \begin{macrocode}
+\newcommand{\eskd@xiII}{}
+\newcommand{\docChecker}[1]{\renewcommand{\eskd@xiII}{#1}}
+%    \end{macrocode}
+% синоним :
+%    \begin{macrocode}
+\newcommand{\fXIii}[1]{\renewcommand{\eskd@xiII}{#1}}
+
+%    \end{macrocode}
+% \subsubsection{Фамилия неизвестного.}
+%    \begin{macrocode}
+\newcommand{\eskd@xiIII}{}
+\newcommand{\middleName}[1]{\renewcommand{\eskd@xiIII}{#1}}
+\newcommand{\fXIiii}[1]{\renewcommand{\eskd@xiIII}{#1}} 
+
+%    \end{macrocode}
+% \subsubsection{Фамилия нормоконтролера.}
+%    \begin{macrocode}
+\newcommand{\eskd@xiIV}{}
+\newcommand{\normController}[1]{\renewcommand{\eskd@xiIV}{#1}}
+\newcommand{\fXIiv}[1]{\renewcommand{\eskd@xiIV}{#1}} 
+
+%    \end{macrocode}
+% \subsubsection{Фамилия утвердившего.}
+%    \begin{macrocode}
+\newcommand{\eskd@xiV}{}
+\newcommand{\approvedBy}[1]{\renewcommand{\eskd@xiV}{#1}}
+\newcommand{\fXIv}[1]{\renewcommand{\eskd@xiV}{#1}} 
+
+%    \end{macrocode}
+
+% \subsection{Команды заполнения титульного листа.}
+%    \begin{macrocode}
+\newcommand{\eskd@title@i}{}
+\newcommand{\titleTop}[1]{\renewcommand{\eskd@title@i}{#1}}
+\newcommand{\tfI}[1]{\renewcommand{\eskd@title@i}{#1}} 
+
+%    \end{macrocode}
+% нужен <утверждаю>:
+%    \begin{macrocode}
+\newif\ifeskd@title@appr \eskd@title@apprfalse   
+%    \end{macrocode}
+% нужен <согласовано>:
+%    \begin{macrocode}
+\newif\ifeskd@title@agr  \eskd@title@agrfalse    
+
+%    \end{macrocode}
+% список разработчиков (дополнительно):
+%    \begin{macrocode}
+\newcommand{\eskd@des@list}{} 
+
+%    \end{macrocode}
+% должность утвердившего:
+%    \begin{macrocode}
+\newcommand{\eskd@title@iii@right@position}{} 
+%    \end{macrocode}
+% фамилия утвердившего:
+%    \begin{macrocode}
+\newcommand{\eskd@title@iii@right@name}{} 
+\newcommand{\titleApprovedBy}[2]{%
+  \renewcommand{\eskd@title@iii@right@position}{#1}
+  \renewcommand{\eskd@title@iii@right@name}{#2}
+  \eskd@title@apprtrue
+  }
+
+%    \end{macrocode}
+% должность согласовавшего:
+%    \begin{macrocode}
+\newcommand{\eskd@title@iii@left@position}{} 
+%    \end{macrocode}
+% фамилия согласовавшего:
+%    \begin{macrocode}
+\newcommand{\eskd@title@iii@left@name}{} 
+%    \end{macrocode}
+% \subsubsection{Список согласовавших (дополнительно).}
+%    \begin{macrocode}
+\xdef\eskd@agr@list{} 
+\newcommand{\titleAgreedBy}[2]{%
+%    \end{macrocode}
+% добавить в дополнительный список:
+%    \begin{macrocode}
+  \ifeskd@title@agr 
+  \xdef\eskd@agr@list{\eskd@agr@list#1\par\vrule 
+    depth 0.8pt height -0.4pt width31mm~#2\par
+    ''\vrule depth 0.8pt height -0.4pt width8mm''\vrule
+    depth 0.8pt height -0.4pt width20mm\ \eskdyear\ \cyrg\par\vskip 3mm}
+  \else
+  \renewcommand{\eskd@title@iii@left@position}{#1}
+  \renewcommand{\eskd@title@iii@left@name}{#2}
+  \eskd@title@agrtrue
+  \fi
+  }
+
+%    \end{macrocode}
+% \subsubsection{Список титульных авторов.}
+%    \begin{macrocode}
+\xdef\eskd@author@list{} 
+\newcommand{\titleDesignedBy}[2]{%
+  \xdef\eskd@author@list{\eskd@author@list#1\par\vrule 
+    depth 0.8pt height -0.4pt width31mm~#2\par
+    ''\vrule depth 0.8pt height -0.4pt width8mm''\vrule
+    depth 0.8pt height -0.4pt width20mm\ \eskdyear\ \cyrg\par\vskip 3mm}
+  }
+
+\newcommand{\tfIII}{\hyphenpenalty=10000 %
+  \begin{tabular}{@{\hspace{5mm}}p{80mm}@{\hspace{10mm}}p{80mm}}%
+    \ifeskd@title@agr  \hspace{15mm}\usebox{\eskd@agr}\fi &%
+    \ifeskd@title@appr \hspace{15mm}\usebox{\eskd@appr}\fi \\[3mm]
+    \ifeskd@title@agr{\raggedright \eskd@title@iii@left@position}\fi &%
+    \ifeskd@title@appr{\raggedright 
+      \eskd@title@iii@right@position}\fi\\[3mm]
+    \ifeskd@title@agr \rule[-1mm]{31mm}{0.4pt}~%
+    \eskd@title@iii@left@name \fi &%
+    \ifeskd@title@appr \rule[-1mm]{31mm}{0.4pt}~%
+    \eskd@title@iii@right@name \fi\\[3mm]
+    \ifeskd@title@agr ''\rule[-1mm]{8mm}{0.4pt}''\rule[-1mm]{20mm}{0.4pt}
+    \eskdyear\ \cyrg\fi &%
+    \ifeskd@title@appr ''\rule[-1mm]{8mm}{0.4pt}''\rule[-1mm]{20mm}{0.4pt}
+    \eskdyear\ \cyrg\fi 
+  \end{tabular}
+  }
+
+%    \end{macrocode}
+% \subsubsection{Наименование.}
+%    \begin{macrocode}
+\newcommand{\eskd@title@iv}{\eskd@i}
+\newcommand{\titleName}[1]{\renewcommand{\eskd@title@iv}{#1}}
+\newcommand{\tfIV}[1]{\renewcommand{\eskd@title@iv}{#1}} 
+
+%    \end{macrocode}
+% \subsubsection{Обозначение.}
+%    \begin{macrocode}
+\newcommand{\eskd@title@vi}{\eskd@ii}
+\newcommand{\titleSignature}[1]{\renewcommand{\eskd@title@vi}{#1}}
+\newcommand{\tfVI}[1]{\renewcommand{\eskd@title@vi}{#1}} 
+
+%    \end{macrocode}
+
+% \subsubsection{Год документа.}
+
+%    \begin{macrocode}
+\newcommand{\eskd@title@bottom}{\eskdyear}
+\newcommand{\titleBottom}[1]{\renewcommand{\eskd@title@bottom}{#1}}
+
+%    \end{macrocode}
+% \subsection{Создание титульного листа.}
+%    \begin{macrocode}
+\renewcommand{\maketitle}{}
+\newcommand{\eskd@maketitle}{%
+\thispagestyle{title}
+%    \end{macrocode}
+% следующая страница первая:
+%    \begin{macrocode}
+\set@eskd@bottom{55mm}                  
+\usefont{T2A}{far}{m}{n}
+%    \end{macrocode}
+% увеличить нормальный шрифт:
+%    \begin{macrocode}
+\large                                  
+%    \end{macrocode}
+% пропуск перед шапкой:
+%    \begin{macrocode}
+\vspace*{1mm}                           
+%    \end{macrocode}
+% \subsubsection{Шапка титульного листа.}
+%    \begin{macrocode}
+\begin{center}                          
+%    \end{macrocode}
+% жирным и побольше:
+%    \begin{macrocode}
+\bfseries\Large                         
+\eskd@title@i
+%    \end{macrocode}
+% конец шапки:
+%    \begin{macrocode}
+\end{center}                            
+%    \end{macrocode}
+% растягивающийся верт. пропуск :
+%    \begin{macrocode}
+\vfill                                  
+%    \end{macrocode}
+% \subsubsection{Поле "утверждаю".}
+%    \begin{macrocode}
+%
+\centerline{\raisebox{0mm}[0mm][0mm]{\tfIII}}
+%    \end{macrocode}
+% растягивающийся верт. пропуск:
+%    \begin{macrocode}
+\vfill                                  
+%    \end{macrocode}
+% \subsubsection{Название.}
+% начало :
+%    \begin{macrocode}
+\begin{center}                          
+%    \end{macrocode}
+% жирным и побольше:
+%    \begin{macrocode}
+{\bfseries\Large                        
+\MakeUppercase{\eskd@title@iv}}\mbox{}\\[3mm]
+{\large\MakeUppercase{\eskd@title@vi}}
+%    \end{macrocode}
+% конец названия:
+%    \begin{macrocode}
+\end{center}                            
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%    \end{macrocode}
+% растягивающийся верт. пропуск:
+%    \begin{macrocode}
+\vfill                                  
+%    \end{macrocode}
+% \subsubsection{Начало полей согласования/авторов.}
+%    \begin{macrocode}
+%
+\unitlength\textwidth\begin{picture}(0,0)
+\put(0,0){\makebox(0,0)[l]{\hyphenpenalty=10000 %
+\begin{tabular}{@{\hspace{5mm}}p{80mm}@{\hspace{10mm}}p{80mm}}
+\raggedright\eskd@agr@list &{\raggedright\eskd@author@list}\\
+\end{tabular}
+}}
+\end{picture}
+%    \end{macrocode}
+% растягивающийся верт. пропуск:
+%    \begin{macrocode}
+\vfill\vfill                                    
+%    \end{macrocode}
+% \subsubsection{Год документа.}
+%    \begin{macrocode}
+\begin{center}
+  \eskd@title@bottom
+\end{center}
+%    \end{macrocode}
+% \subsubsection{Завершение титульного листа.}
+%    \begin{macrocode}
+\newpage
+
+\ifeskd@twoside
+\thispagestyle{empty}
+\cleardoublepage
+\fi
+
+\thispagestyle{first}
+\set@eskd@bottom{30mm}
+
+}
+
+
+\set@eskd@bottom{\ifeskd@title15mm\else55mm\fi}
+
+%    \end{macrocode}
+
+% \subsection{Выполнить настройки зависящие от параметров.}
+
+%    \begin{macrocode}
+
+\AtBeginDocument{%
+ 
+  \inputencoding{koi8-r}
+
+%    \end{macrocode}
+% \subsubsection{Лист регистрации изменений.}
+%    \begin{macrocode}
+\newcommand{\eskdListOfChanges}{\newpage
+{\small\noindent
+\begin{tabular}{|c|*{7}{p{1.5cm}|}c|c|}
+  \multicolumn{10}{c}{\Large\bf Лист регистрации изменений}\\\hline 
+& \multicolumn{4}{c|}{Номера листов 
+(страниц)}&&&&&\\\cline{2-5}
+Изм.&из\-ме\-нен\-ных&за\-ме\-нен\-ных&но\-вых&%
+ан\-ну\-ли\-ро\-ван\-ных&
+Всего листов (страниц) 
+в докум.&\No\ докум.&Вхо\-дя\-щий \No\ 
+сопроводительного докум. и дата&Подпись&Дата\\\hline
+\vbox{\vspace{\eskdheight mm}\vspace{-6cm}}&&&&&&&&&\\\hline
+\end{tabular}
+}
+}
+
+%    \end{macrocode}
+% \subsubsection{Выполнить установки.}
+%    \begin{macrocode}
+
+  \make@eskd@border
+  \make@eskd@vertical@frame
+
+  \make@eskd@common@left
+  \make@eskd@common@hole
+  \make@eskd@common@page
+
+  \make@eskd@first@style
+  \make@eskd@title@style
+  \make@eskd@common@style
+
+  \pagestyle{common}
+  \inputencoding{\eskdencoding}
+  \ifeskd@title\eskd@maketitle
+  \else\thispagestyle{first}\set@eskd@bottom{30mm}\fi
+
+  \renewcommand{\make@eskd@border}{}
+  \renewcommand{\make@eskd@vertical@frame}{}
+  \renewcommand{\make@eskd@common@left}{}
+  \renewcommand{\make@eskd@common@hole}{}
+  \renewcommand{\make@eskd@common@page}{}
+  \renewcommand{\make@eskd@first@style}{}
+  \renewcommand{\make@eskd@title@style}{}
+  \renewcommand{\make@eskd@common@style}{}
+  \renewcommand{\eskd@maketitle}{}
+  \relax
+}
+%    \end{macrocode}
+% \Finale
+% \clearpage\setcounter{IndexColumns}{2}
+% \addcontentsline{toc}{section}{Index}\PrintIndex
+% \clearpage\tableofcontents
-- 
cgit v1.2.3

