% Copyright 2006 Konstantin Korikov % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % This Current Maintainer of this work is Konstantin Korikov. % % This work consists of all files listed in manifest.txt. % m4_ESKDX_INIT m4_FILE_INIT \documentclass[russian,koi8-r,simple% m4_ifdef([[m4_HTML]], [[,emptystyle]])]{eskdtext} \usepackage[T2A]{fontenc} \usepackage{pscyr} \usepackage{amstext} \usepackage{amsmath} \usepackage{verbatimfiles} \usepackage{calc} \usepackage{array} \usepackage{longtable} \usepackage{graphics} \title{Коллекция eskdx v[[]]m4_ESKDX_VERSION} \ESKDdocName{Руководство пользователя} \author{Кориков~К.~В.} \date{m4_FILE_DATE([[$Date:: 2011-05-13#$]])} \renewcommand{\ESKDtheTitleFieldVIIIr}{% \copyright 2006 Константин Кориков} \usepackage[unicode]{hyperref} \hypersetup{pdfkeywords=ЕСКД ГОСТ LaTeX класс пакет} \newcommand{\gost}[1]{\mbox{ГОСТ}\ \mbox{#1}} \newcommand{\pkg}[1]{\mbox{\textsf{#1}}} \newcommand{\cmd}[1]{\texttt{\textbackslash\mbox{#1}}} \newcommand{\env}[1]{\mbox{\texttt{#1}}} \newcommand{\opt}[1]{\mbox{\texttt{#1}}} \newcommand{\optarg}[1]{\mbox{\textit{#1}}} \newcommand{\val}[1]{\mbox{\texttt{#1}}} \newenvironment{defs}{\begin{itemize}}{\end{itemize}} \newcommand{\cmddef}[2]{\item[]\texttt{\textbackslash#1#2}} \newcommand{\envdef}[3]{\item[]% \texttt{\textbackslash begin\{#1\}#2} \par\textit{\quad #3}% \par\texttt{\textbackslash end\{#1\}}} \newcommand{\cmdarg}[1]{\mbox{\textrm{\textit{#1}}}} \begin{document} \maketitle \tableofcontents \newpage \section{Общие сведения} \subsection{О коллекции \pkg{eskdx}} Коллекция пакетов и классов \pkg{eskdx} рассчитана на использование в среде \LaTeXe\ и предназначена для верстки документов в соответствии с требованиями Единой системы конструкторской документации. Коллекция содержит три класса: \pkg{eskdtext} (для текстовой документации), \pkg{eskdgraph} (для чертежей и схем) и \pkg{eskdtab} (для документов, разбитых на графы), а также некоторое число пакетов (некоторые из них являются внутренними). \subsection{Возможности коллекции} Основные возможности \pkg{eskdx}: \begin{itemize} \item основная надпись и дополнительные графы по \gost{2.104-2006}, форма 1, 2, 2а, 2б; \item поддерживаемые форматы листов: А0, А1, А2, А3, А4; \item поддержка двусторонней печати; \item настройка элементов текста (абзацы, перечисления, и т.п.) и рубрикации (разделы, подразделы, пункты, подпункты, приложения) по \gost{2.105-95}; \item титульный лист и лист утверждения по \gost{2.105-95}; \item спецификация по \gost{2.106-96}, форма 1, 1а, 2, 2а; \item лист регистрации изменений по \gost{2.503-90}; \item поддержка множества языков (на данный момент русский и украинский). \end{itemize} \newpage \section{Базовые принципы использования} Для использования коллекции \pkg{eskdx} необходимо иметь как минимум базовые знания системы \LaTeXe. Основа коллекции "--- классы \pkg{eskdtext}, \pkg{eskdgraph} и \pkg{eskdtab}. Для текстовых документов, содержащих, в основном, сплошной текст, используют класс \pkg{eskdtext}, для чертежей и схем "--- \pkg{eskdgraph}, а для документов, содержащих текст, разбитый на графы "--- \pkg{eskdtab}. Примечание "--- в большинстве случаев для получения правильного выходного файла необходимо выполнить как минимум два прохода интерпретатора. \subsection{Пример простого документа} Пример простого текстового документа: \begin{quote} \verbatimlisting{example.tex} \end{quote} Опции \opt{russian} и \opt{koi8-r}, на строке 1, задают, соответственно язык и кодировку документа. Команды на строках 2 по 16 задают информацию о документе, которая используется в титульном листе и в основной надписи. Строки 19 по 23 "--- тело документа. \subsection{Опции классов} m4_define([[m4_BEGIN_OPTTBL]], [[m4_dnl m4_ifdef([[m4_HTML]], [[m4_dnl \begin{longtable}{|p{.32\textwidth}|p{.68\textwidth}|} $1\label{$2}\\m4_dnl$ \hline \multicolumn{1}{|c|}{Опция}& \multicolumn{1}{c|}{Описание}\\\hline]], [[m4_dnl \begin{longtable}{|% p{.32\textwidth-2\tabcolsep-1.5\arrayrulewidth}| p{.68\textwidth-2\tabcolsep-1.5\arrayrulewidth}|} $1\label{$2}\\ \hline \multicolumn{1}{|c|}{Опция}&\multicolumn{1}{c|}{Описание}\\\hline \endfirsthead \caption*{Продолжение таблицы \ref{$2}}\\m4_dnl$ \hline \multicolumn{1}{|c|}{Опция}&\multicolumn{1}{c|}{Описание}\\\hline \endhead ]])]]) m4_define([[m4_END_OPTTBL]], [[\end{longtable}]]) \subsubsection{Общие опции всех классов} Опции, воспринимаемые классами \pkg{eskdtext} и \pkg{eskdgraph} приведены в таблице~\ref{t:common:opts}. m4_BEGIN_OPTTBL([[m4_dnl \caption{Общие опции классов \pkg{eskdtext} и \pkg{eskdgraph}}]], [[t:common:opts]]) \opt{russian}\par\opt{ukrainian}& Выбирает язык документа, соответственно русский, украинский. По умолчанию русский.\\\hline \opt{koi8-r}\par\opt{koi8-u}\par\opt{cp1251}\par\opt{iso8859-5}\par \opt{cp866}\par\opt{utf8}\par\opt{utf-8}& Задает кодировку текста, соответственно \mbox{KOI8-R}, \mbox{KOI8-U}, \mbox{CP1251}, \mbox{ISO8859-5}, \mbox{CP866}, \mbox{UTF-8}.\\\hline \opt{reduceheight=}& Уменьшает высоту рамки за счет увеличения нижнего поля на заданную высоту.\\\hline \opt{emptystyle}& Включает пустой стиль страниц, т.е. без рамки формы, без основной надписи и без дополнительных граф.\\\hline \opt{stitching}\par\opt{nostitching}& Включает/выключает поле для переплета. По умолчанию поле включено.\\\hline \opt{columnvii}\par\opt{nocolumnvii}& Включает/выключает графу 7 основной надписи (номер листа/страницы). По умолчанию графа 7 включена только для документов, содержащих больше одного листа\\\hline \opt{columnviii}\par\opt{nocolumnviii}& Включает/выключает графу 8 основной надписи (общее количество листов/страниц). По умолчанию графа 8 включена.\\\hline \opt{columnsxix}\par\opt{nocolumnsxix}& Включает/выключает дополнительные графы 19 по 23. По умолчанию включены.\\\hline \opt{columnsxxiv}\par\opt{nocolumnsxxiv}& Включает/выключает дополнительные графы 24 и 25. По умолчанию выключены.\\\hline \opt{columnsxxvii}\par\opt{nocolumnsxxvii}& Включает/выключает дополнительные графы 27 по 30. По умолчанию выключены.\\\hline \opt{columnxxxi}\par\opt{nocolumnxxxi}& Включает/выключает дополнительную графу 31. По умолчанию включена.\\\hline \opt{columnxxxii}\par\opt{nocolumnxxxii}& Включает/выключает дополнительную графу 32 (формат листа). По умолчанию включена.\\\hline \opt{simple}& Тоже самое что \opt{nocolumnsxix}, \opt{nocolumnxxxi} и \opt{nocolumnxxxii}.\\\hline \opt{linethick=}& Устанавливает толщину сплошной толстой линии. По умолчанию \val{.4mm}.\\\hline \opt{linethin=}& Устанавливает толщину сплошной тонкой линии. По умолчанию \val{.2mm}.\\\hline \opt{hpadding=}& Устанавливает расстояние от рамки формы до границ текста в начале и в конце строк. По умолчанию \val{3mm}.\\\hline \opt{vpadding=}& Устанавливает расстояние от верхней или нижней строки текста до верхней или нижней рамки. По умолчанию \val{10mm}.\\\hline m4_END_OPTTBL Примечание "--- Схемы расположения граф основной надписи приведены в приложении~\ref{a:columnlayout}. \subsubsection{Опции класса \pkg{eskdtext}} Опции, воспринимаемые классом \pkg{eskdtext} приведены в таблице~\ref{t:eskdtext:opts}. m4_BEGIN_OPTTBL([[m4_dnl \caption{Опции класса \pkg{eskdtext}}]], [[t:eskdtext:opts]]) \opt{12pt}\par\opt{14pt}& Устанавливает размер шрифта документа, соответственно \val{12pt}, \val{14pt}. По умолчанию \val{14pt}.\\\hline \opt{pointsingle}\par\opt{pointsection}\par\opt{pointsubsection}& Устанавливает стиль нумерации пунктов, соответственно в пределах всего документа, в пределах раздела, в пределах подраздела. По умолчанию пункты нумеруются в пределах всего документа (сквозная нумерация).\\\hline \opt{floatsingle}\par\opt{floatsection}\par\opt{floatsubsection}& Устанавливает стиль нумерации плавающих объектов (рисунки, таблицы), соответственно в пределах всего документа, в пределах раздела, в пределах подраздела. По умолчанию плавающие объекты нумеруются в пределах всего документа (сквозная нумерация).\\\hline \opt{equationsingle}\par\opt{equationsection}\par\opt{equationsubsection}& Устанавливает стиль нумерации формул, соответственно в пределах всего документа, в пределах раздела, в пределах подраздела. По умолчанию формулы нумеруются в пределах всего документа (сквозная нумерация).\\\hline \opt{footnotearabic}\par\opt{footnoteasterisk}& Устанавливает стиль нумерации сносок, соответственно арабской цифрой с закрывающей круглой скобкой, либо звездочками (количество звездочек соответствует номеру сноски). Нумерация осуществляется в пределах страницы. По умолчанию используется \val{footnotearabic}\\\hline \opt{twoside}& Включает двустороннюю печать.\\\hline \opt{draft}& Включает черновой режим.\\\hline m4_END_OPTTBL \subsubsection{Опции класса \pkg{eskdgraph}} Опции, воспринимаемые классом \pkg{eskdgraph} приведены в таблице~\ref{t:eskdgraph:opts}. m4_BEGIN_OPTTBL([[m4_dnl \caption{Опции класса \pkg{eskdgraph}}]], [[t:eskdgraph:opts]]) \opt{a0paper}\par\opt{a1paper}\par\opt{a2paper}\par\opt{a3paper}\par \opt{a4paper}& Устанавливает формат (размер) листа, соответственно А0, А1, А2, А3, А4. По умолчанию А4.\\\hline \opt{landscape}\par\opt{portrait}& Устанавливает ориентацию страницы, соответственно ландшафтная ориентация (основная надпись вдоль длинной стороны листа), портретная ориентация (основная надпись вдоль короткой стороны листа). По умолчанию ландшафтная ориентация для листов формата больше А4, и портретная ориентация для листов формата А4.\\\hline \opt{ignorestamp}\par\opt{noignorestamp}& Включает/выключает игнорирование основной надписи при позиционировании рисунка чертежа. По умолчанию основная надпись игнорируется.\\\hline \opt{columnxxvi}\par\opt{nocolumnxxvi}& Включает/выключает дополнительную графу 26. По умолчанию графа включена.\\\hline \opt{columnxxxiii}\par\opt{nocolumnxxxiii}& Включает/выключает дополнительную графу 33. По умолчанию выключена.\\\hline \opt{columnxxxiv}\par\opt{nocolumnxxxiv}& Включает/выключает дополнительную графу 34. По умолчанию выключена.\\\hline \opt{zonelabels}\par\opt{nozonelabels}& Включает/выключает отметки зон. По умолчанию отметки выключены.\\\hline m4_END_OPTTBL \subsubsection{Опции класса \pkg{eskdtab}} Опции, воспринимаемые классом \pkg{eskdtab} приведены в таблице~\ref{t:eskdtab:opts}. m4_BEGIN_OPTTBL([[m4_dnl \caption{Опции класса \pkg{eskdtab}}]], [[t:eskdtab:opts]]) \opt{a3paper}\par\opt{a4paper}& Устанавливает формат (размер) листа, соответственно А3, А4. По умолчанию А4.\\\hline \opt{landscape}\par\opt{portrait}& Устанавливает ориентацию страницы, соответственно ландшафтная ориентация (основная надпись вдоль длинной стороны листа), портретная ориентация (основная надпись вдоль короткой стороны листа). По умолчанию ландшафтная ориентация для листов формата А3, и портретная ориентация для листов формата А4.\\\hline \opt{twoside}& Включает двустороннюю печать.\\\hline \opt{draft}& Включает черновой режим.\\\hline m4_END_OPTTBL \subsection{Информация о документе} \label{docinfo} Информацию о документе размещают в преамбуле документа используя описанные ниже команды. Наименование ведомства, в систему которого входит организация, разработавшая документ, задает команда \begin{defs} \cmddef{ESKDdepartment}{\{\cmdarg{текст}\}} \end{defs} Наименование организации задает команда \begin{defs} \cmddef{ESKDcompany}{\{\cmdarg{текст}\}} \end{defs} Код по классификатору продукции задает команда \begin{defs} \cmddef{ESKDclassCode}{\{\cmdarg{текст}\}} \end{defs} Наименование изделия задают команды \begin{defs} \cmddef{ESKDunitName}{\{\cmdarg{текст}\}} \cmddef{ESKDtitle}{\{\cmdarg{текст}\}} \cmddef{title}{\{\cmdarg{текст}\}} \end{defs} все три команды действуют одинаково (команды близнецы). Наименование документа задает команда \begin{defs} \cmddef{ESKDdocName}{\{\cmdarg{текст}\}} \end{defs} Обозначение документа задает команда \begin{defs} \cmddef{ESKDsignature}{\{\cmdarg{текст}\}} \end{defs} Литеру, присвоенную данному документу, задает команда \begin{defs} \cmddef{ESKDletter}{\{\cmdarg{буква1}\}\{\cmdarg{буква2}\}% \{\cmdarg{буква3}\}} \end{defs} Обозначение материала детали задает команда \begin{defs} \cmddef{ESKDmaterial}{\{\cmdarg{текст}\}} \end{defs} Массу изделия задает команда \begin{defs} \cmddef{ESKDmass}{\{\cmdarg{текст}\}} \end{defs} Масштаб чертежа задает команда \begin{defs} \cmddef{ESKDscale}{\{\cmdarg{текст}\}} \end{defs} Наименование или различительный индекс предприятия задает команда \begin{defs} \cmddef{ESKDgroup}{\{\cmdarg{текст}\}} \end{defs} Фамилию автора задают команды \begin{defs} \cmddef{ESKDauthor}{\{\cmdarg{текст}\}} \cmddef{author}{\{\cmdarg{текст}\}} \end{defs} Фамилию проверяющего задает команда \begin{defs} \cmddef{ESKDchecker}{\{\cmdarg{текст}\}} \end{defs} Фамилию нормоконтролера задает команда \begin{defs} \cmddef{ESKDnormContr}{\{\cmdarg{текст}\}} \end{defs} Фамилию утвердившего задает команда \begin{defs} \cmddef{ESKDapprovedBy}{\{\cmdarg{текст}\}} \end{defs} Дату документа задают команды \begin{defs} \cmddef{ESKDdate}{\{\cmdarg{год/месяц/число}\}} \cmddef{date}{\{\cmdarg{год/месяц/число}\}} \end{defs} Описанные выше команды сохраняют значения своих аргументов в соответствующие \cmd{ESKDthe}-команды. Например, команда \cmd{ESKDtheAuthor} печатает фамилию автора, а команда \cmd{ESKDtheNormContr} печатает фамилию нормоконтролера. \sloppy Немного иначе обстоят дела с датой и литерой. Год печатает команда \cmd{ESKDtheYear}, месяц "--- \cmd{ESKDtheMonth}, а число "--- \cmd{ESKDtheDay}. Буквы литеры печатают команды \cmd{ESKDtheLetterI}, \cmd{ESKDtheLetterII}, \cmd{ESKDtheLetterIII}. \fussy \subsection{Титульный лист} Титульный лист печатает команда \begin{defs} \cmddef{maketitle}{} \end{defs} которую размещают в теле документа. Согласно \gost{2.105} титульный лист разбит на 10 полей. По умолчанию большинство полей уже содержат необходимые данные, заданные командами, описанными в разделе~\ref{docinfo}. Также для заполнения титульного листа существует несколько дополнительных команд, которые размещают в преамбуле документа. Команда \begin{defs} \cmddef{ESKDtitleApprovedBy}{\{\cmdarg{должность}\}\{\cmdarg{фамилия}\}} \end{defs} размещает гриф утверждения в правой части поля 3. Команда \begin{defs} \cmddef{ESKDtitleAgreedBy}{\{\cmdarg{должность}\}\{\cmdarg{фамилия}\}} \end{defs} размещает гриф согласования в левой части поля 3. Если согласовавших лиц больше одного, то команду повторяют несколько раз, при этом остальные фамилии размещаются в левой части поля 8. Список разработчиков документа задают при помощи команды \begin{defs} \cmddef{ESKDtitleDesignedBy}{\{\cmdarg{должность}\}\{\cmdarg{фамилия}\}} \end{defs} Команду повторяют для каждого разработчика. Список размещается в правой части поля 8. При утверждении документа листом утверждения его обозначение указывают в левой части поля 3. Для этого используют команду \begin{defs} \cmddef{ESKDtitleApprovingSheet}{\{\cmdarg{обозначение}\}} \end{defs} Кроме описанных выше методов заполнения титульного листа, имеется метод, позволяющий принудительного указать какие данные нужно разместить в том или ином поле посредством переопределения \cmd{ESKDtheTitleField}-команд. Например, для того чтобы в поле 10 разместить какой-нибудь текст (по умолчанию поле содержит год) в преамбулу документа нужно поместить \begin{quote} \begin{verbatim} \renewcommand{\ESKDtheTitleFieldX}{% какой-нибудь текст} \end{verbatim} \end{quote} Примечание "--- Схема расположения полей титульного листа и листа утверждения приведена в приложении~\ref{a:titlelayout}. \subsection{Заполнение граф основной надписи и дополнительных граф} По умолчанию большинство граф основной надписи и некоторые дополнительные графы содержат данные, заданные командами, описанными в разделе~\ref{docinfo}. Для принудительного заполнения граф предназначены \cmd{ESKDcolumn}-команды, которые размещают в преамбуле документа. Графу 1 (наименование изделия/документа) задает команда \begin{defs} \cmddef{ESKDcolumnI}{\{\cmdarg{текст}\}} \end{defs} Графу 2 (обозначение документа) задает команда \begin{defs} \cmddef{ESKDcolumnII}{\{\cmdarg{текст}\}} \end{defs} Графу 3 (обозначение материала детали) задает команда \begin{defs} \cmddef{ESKDcolumnIII}{\{\cmdarg{текст}\}} \end{defs} Графу 4 (литера) задают команды \begin{defs} \cmddef{ESKDcolumnIVfI}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnIVfII}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnIVfIII}{\{\cmdarg{текст}\}} \end{defs} Графу 5 (масса изделия) задает команда \begin{defs} \cmddef{ESKDcolumnV}{\{\cmdarg{текст}\}} \end{defs} Графу 6 (масштаб) задает команда \begin{defs} \cmddef{ESKDcolumnVI}{\{\cmdarg{текст}\}} \end{defs} Графу 9 (наименование или различительный индекс предприятия) задает команда \begin{defs} \cmddef{ESKDcolumnIX}{\{\cmdarg{текст}\}} \end{defs} Графу 11 (фамилии лиц, подписывающих документ) задают команды \begin{defs} \cmddef{ESKDcolumnXIfI}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnXIfII}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnXIfIII}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnXIfIV}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnXIfV}{\{\cmdarg{текст}\}} \cmddef{ESKDcolumnXIfVI}{\{\cmdarg{текст}\}} \end{defs} Графу 19 (инвентарный номер подлинника) задает команда \begin{defs} \cmddef{ESKDcolumnXIX}{\{\cmdarg{текст}\}} \end{defs} Графу 21 (инвентарный номер подлинника, взамен которого выпущен данный подлинник) задает команда \begin{defs} \cmddef{ESKDcolumnXXI}{\{\cmdarg{текст}\}} \end{defs} Графу 22 (инвентарный номер дубликата) задает команда \begin{defs} \cmddef{ESKDcolumnXXII}{\{\cmdarg{текст}\}} \end{defs} Графу 24 (обозначение документа, взамен или на основании которого выпущен документ) задает команда \begin{defs} \cmddef{ESKDcolumnXXIV}{\{\cmdarg{текст}\}} \end{defs} Графу 25 (обозначение соответствующего документа, в котором впервые записан документ) задает команда \begin{defs} \cmddef{ESKDcolumnXXV}{\{\cmdarg{текст}\}} \end{defs} Графу 27 (знак, установленный заказчиком) задает команда \begin{defs} \cmddef{ESKDcolumnXXVII}{\{\cmdarg{текст}\}} \end{defs} Графу 28 (номер решения и год утверждения документации соответствующей литеры) задает команда \begin{defs} \cmddef{ESKDcolumnXXVIII}{\{\cmdarg{текст}\}} \end{defs} Графу 29 (номер решения и год утверждения документации) задает команда \begin{defs} \cmddef{ESKDcolumnXXIX}{\{\cmdarg{текст}\}} \end{defs} Графу 30 (индекс заказчика) задает команда \begin{defs} \cmddef{ESKDcolumnXXX}{\{\cmdarg{текст}\}} \end{defs} Графу 32 (обозначение формата листа) задает команда \begin{defs} \cmddef{ESKDcolumnXXXII}{\{\cmdarg{текст}\}} \end{defs} Графу 34 (номера авторских свидетельств на изобретения) задает команда \begin{defs} \cmddef{ESKDcolumnXXXIV}{\{\cmdarg{текст}\}} \end{defs} Описанные выше команды сохраняют значения своих аргументов в соответствующие \cmd{ESKDthe}-команды. Например, команда \cmd{ESKDtheColumnI} печатает содержимое графы 1. Примечание "--- Схемы расположения граф основной надписи приведены в приложении~\ref{a:columnlayout}. \subsection{Рубрикация} Разделы, подразделы, подподразделы, пункты, подпункты, подподпункты создаются соответственно командами: \begin{defs} \cmddef{section}{\{\cmdarg{заголовок}\}} \cmddef{subsection}{\{\cmdarg{заголовок}\}} \cmddef{subsubsection}{\{\cmdarg{заголовок}\}} \cmddef{point}{} \cmddef{subpoint}{} \cmddef{subsubpoint}{} \end{defs} По умолчанию пункты нумеруются в пределах всего документа. Чтобы включить нумерацию пунктов в пределах раздела или подраздела используют опцию \opt{pointsection} или \opt{pointsubsection} класса \pkg{eskdtext} соответственно. Приложение создает команда \begin{defs} \cmddef{ESKDappendix}{\{\cmdarg{тип}\}\{\cmdarg{заголовок}\}} \end{defs} Первый аргумент "--- тип приложения (обязательное, рекомендуемое или справочное). Второй аргумент "--- заголовок приложения. \subsection{Пояснения символов, входящих в формулу} \sloppy Командные скобки \begin{defs} \envdef{ESKDexplanation}{[ширина]}{пояснения} \end{defs} создают список пояснений символов. Перед первым пояснением ставят \cmd{item[где ]}. Перед последующими пояснениями ставят \cmd{item}. Окружение может принимать один необязательный параметр~--- ширину маркера \mbox{<<где >>} в единицах, понятных \LaTeX. Это может быть полезно в случаях, когда значение по умолчанию не подходит, либо вы используете другой маркер вместо \mbox{<<где >>}. Для автоматического вычисления размера маркера можно воспользоваться командой \cmd{settowidth}. Длина \cmd{ESKDexplanIndent} задает отступ списка пояснений от левого края страницы. По умолчанию \val{0pt}. \fussy \subsection{Лист регистрации изменений} Пакет \pkg{eskdchngsheet} предоставляет командные скобки \begin{defs} \envdef{ESKDchangeSheet}{}{строки} \end{defs} которые создают лист регистрации изменений. По сути это таблица из десяти колонок, которую заполняют как обычную таблицу, разделяя данные ячеек символом \verb|&|, а строки "--- \verb|\\|. \subsection{Чертежи и схемы} Для чертежей и схем используют класс \pkg{eskdgraph}. Команды включения графики размещают внутри командных скобок \begin{defs} \envdef{ESKDdrawing}{}{графика} \end{defs} Для каждой страницы используют свое окружение \env{ESKDdrawing}. \subsection{Спецификация} Для спецификации используют класс \pkg{eskdtab} и пакет \pkg{eskdspec}. Создают спецификацию командные скобки \begin{defs} \envdef{ESKDspecification}{}{строки} \end{defs} По сути это таблица из семи колонок, которую заполняют как обычную таблицу, разделяя данные ячеек символом \verb|&|, а строки "--- \verb|\\|. \subsection{Спецификация при плазовом методе} Для спецификации при плазовом методе (форма 2 и 2а) используют класс \pkg{eskdtab} и пакет \pkg{eskdspecii}. Создают спецификацию командные скобки \begin{defs} \envdef{ESKDspecificationII}{}{строки} \end{defs} По сути это таблица из девяти колонок, которую заполняют как обычную таблицу, разделяя данные ячеек символом \verb|&|, а строки "--- \verb|\\|. \subsection{Лист утверждения} Лист утверждения создают как отдельный документ с подключением пакета \pkg{eskdappsheet}. Заполняют лист утверждения таким же образом как и титульный лист. Команда \begin{defs} \cmddef{ESKDapprovingDoc}{\{\cmdarg{обозначение}\}} \end{defs} размещает в нижней части поля 8 обозначение документа, на который распространяется данный лист утверждения. Если таких документов несколько, команду повторяют для каждого документа. Печатает лист утверждения команда \begin{defs} \cmddef{maketitle}{} \end{defs} или команда \begin{defs} \cmddef{ESKDmakeApprovingSheet}{} \end{defs} \subsection{Количество рисунков, таблиц, приложений, и т.д.} Пакет \pkg{eskdtotal} определяет команду \begin{defs} \cmddef{ESKDtotal}{\{\cmdarg{счетчик}\}} \end{defs} при помощи которой в текст можно подставлять общее число страниц, рисунков, таблиц, приложений и литературных источников. Допустимые значения аргумента \cmdarg{счетчик} соответственно: \val{page}, \val{figure}, \val{table}, \val{appendix} и \val{bibitem}. Например, команда \cmd{ESKDtotal\{figure\}} печатает количество рисунков. \newpage \section{Тонкая настройка} \subsection{Управление стилями страниц} \label{s:pagestyles} Каждая страница оформляется в соответствии с определенным стилем страницы. Существуют такие предопределенные стили страниц: \val{empty}, \val{title}, \val{formI}, \val{formII}, \val{formIIab}, \val{freesize}. Стиль \val{empty} "--- это пустой стиль, в нем нет ни рамки, ни основной надписи, ни дополнительных граф. Стиль \val{title} предназначен для титульного листа, в нем есть рамка и дополнительные графы 19 по 23. Стили \val{formI} и \val{formII} соответствуют форме~1 и форме~2 по \gost{2.104} соответственно, имеют рамку, основную надпись и дополнительные графы. Стиль \val{formIIab} соответствует форме 2б на четной странице при двусторонней печати, и форме 2а в остальных случаях. Стиль \val{freesize} используется для листов произвольного размера, подробное описание приведено в разделе~\ref{s:freesize} Менять стиль страницы можно используя команды \begin{defs} \cmddef{ESKDstyle}{\{стиль\}} \cmddef{ESKDthisStyle}{\{стиль\}} \end{defs} Первая меняет стиль текущей и последующих страниц, вторая меняет стиль только текущей страницы. Также можно изменять существующие стили и добавлять собственные. Новый стиль создает команда \begin{defs} \cmddef{ESKDnewStyle}{\{\cmdarg{стиль}\}\{\cmdarg{высота}\}} \end{defs} Первый аргумент задает имя стиля, второй "--- высоту основной надписи. Команда \begin{defs} \cmddef{ESKDputOnStyle}{\{\cmdarg{стиль}\}\{\cmdarg{элемент}\}% \{\cmdarg{команды}\}} \end{defs} заменяет или добавляет в существующий \cmdarg{стиль} \cmdarg{элемент}, для верстки которого используются \cmdarg{команды}. Первый аргумент "--- имя существующего стиля. Второй аргумент "--- имя элемента, который нужно добавить или заменить. Третий аргумент "--- команды, рисующие данный элемент (допустимы только команды окружения \env{picture}). m4_dnl рассказать как рисовать. Для удаления элементов из стиля используется команда \begin{defs} \cmddef{ESKDremoveFromStyle}{\{\cmdarg{стиль}\}\{\cmdarg{элемент}\}} \end{defs} В предопределенных стилях рамку формы рисует элемент \val{frame}, а основную надпись "--- \val{stamp}. Например, для того чтобы удалить основную надпись в стиле \val{formI} можно воспользоваться командой \begin{quote} \verb|\ESKDremoveFromStyle{formI}{stamp}| \end{quote} Команды \begin{defs} \cmddef{ESKDdefaultTitleStyle}{\{\cmdarg{стиль}\}} \cmddef{ESKDdefaultFirstStyle}{\{\cmdarg{стиль}\}} \cmddef{ESKDdefaultStyle}{\{\cmdarg{стиль}\}} \end{defs} задают стиль по умолчанию для титульного листа, первой страницы (не считая титульный лист) и остальных страниц соответственно. Нет смысла использовать эти команды вне преамбулы документа. \subsection{Настройка шрифтов} Команды \begin{defs} \cmddef{ESKDfontII}{} \cmddef{ESKDfontIII}{} \cmddef{ESKDfontV}{} \cmddef{ESKDfontVII}{} \cmddef{ESKDfontX}{} \end{defs} определяют базовые шрифты, соответственно размером $2{,}5$, $3{,}5$, $5$, $7$ и $10~\text{мм}$. Шрифты, заданные этими командами, используются в основной надписи и в дополнительных графах, а также по умолчанию в других элементах, таких как титульный лист, спецификация и лист регистрации изменений. По умолчанию эти команды устанавливают \cmd{baselinestretch} в \begin{defs} \cmddef{ESKDfontBaseLineStretch}{} \end{defs} Устанавливают размер используя соответственно команды \begin{defs} \cmddef{ESKDfontIIsize}{} \cmddef{ESKDfontIIIsize}{} \cmddef{ESKDfontVsize}{} \cmddef{ESKDfontVIIsize}{} \cmddef{ESKDfontXsize}{} \end{defs} Выполняют \cmd{selectfont} и устанавливают начертание используя команду \begin{defs} \cmddef{ESKDfontShape}{} \end{defs} Шрифты элементов, представленных в виде таблицы, определяют команды \begin{defs} \cmddef{ESKDfontTabHead}{} \cmddef{ESKDfontTabBody}{} \end{defs} Первая определяет шрифт заголовка, вторая "--- шрифт тела таблицы. По умолчанию определены как \cmd{ESKDfontIII}. Все приведенные выше команды можно переопределять при помощи \cmd{renewcommand}. \subsection{Настройка титульного листа} Команды \begin{defs} \cmddef{ESKDtitleFontI}{} \cmddef{ESKDtitleFontII}{} \cmddef{ESKDtitleFontIII}{} \cmddef{ESKDtitleFontIV}{} \cmddef{ESKDtitleFontV}{} \cmddef{ESKDtitleFontVI}{} \cmddef{ESKDtitleFontVII}{} \cmddef{ESKDtitleFontVIII}{} \cmddef{ESKDtitleFontX}{} \end{defs} определяют шрифты полей титульного листа. Их можно переопределить посредством \cmd{renewcommand}. \subsection{Управление заголовками рубрикации} Заголовки разделов, подразделов и подподразделов можно выравнивать влево, вправо, по центру, а также можно задавать стиль отображения и вертикальные отступы. Команда \begin{defs} \cmddef{ESKDsectAlign}{\{\cmdarg{элемент}\}\{\cmdarg{выравнивание}\}} \end{defs} устанавливает выравнивание элемента. Первый аргумент "--- одно из значений: \val{section}, \val{subsection}, \val{subsubsection}; соответственно для разделов, подразделов, подподразделов. Второй аргумент "--- одно из значений: \val{Left}, \val{Right}, \val{Center}; соответственно для выравнивания по левому краю, по правому краю, по центру. \sloppy Стиль, в котором будут верстаться заголовки, задает команда \begin{defs} \cmddef{ESKDsectStyle}{\{\cmdarg{элемент}\}\{\cmdarg{стиль}\}} \end{defs} Первый аргумент "--- одно из значений: \val{section}, \val{subsection}, \val{subsubsection}; соответственно для разделов, подразделов, подподразделов. Второй аргумент "--- стиль, который может содержать в себе такие команды как \cmd{Large}, \cmd{bfseries}, и т.п. Вертикальные отступы задает команда \begin{defs} \cmddef{ESKDsectSkip}{\{\cmdarg{элемент}\}\{\cmdarg{отступ перед}\}% \{\cmdarg{отступ после}\}} \end{defs} Первый аргумент "--- одно из значений: \val{section}, \val{subsection}, \val{subsubsection}; соответственно для разделов, подразделов, подподразделов. Второй аргумент "--- отступ перед заголовком. Третий аргумент "--- отступ после заголовка. \fussy \subsection{Настройка листа регистрации изменений} \sloppy Шрифт заголовка и тела таблицы определяют команды \cmd{ESKDfontTabHead} и \cmd{ESKDfontTabBody}, их можно переопределить посредством \cmd{renewcommand}. Примечание "--- команды \cmd{ESKDchngFontHead} и \cmd{ESKDchngFontBody} являются устаревшими и будут удалены в будущих версиях \pkg{eskdx}. \fussy Ширину колонок таблицы определяют команды \begin{defs} \cmddef{ESKDchngColumnIwidth}{} \cmddef{ESKDchngColumnIIwidth}{} \cmddef{ESKDchngColumnIIIwidth}{} \cmddef{ESKDchngColumnIVwidth}{} \cmddef{ESKDchngColumnVwidth}{} \cmddef{ESKDchngColumnVIwidth}{} \cmddef{ESKDchngColumnVIIwidth}{} \cmddef{ESKDchngColumnVIIIwidth}{} \cmddef{ESKDchngColumnIXwidth}{} \cmddef{ESKDchngColumnXwidth}{} \end{defs} Их также можно переопределить посредством \cmd{renewcommand}. \subsection{Настройка спецификации} \sloppy Шрифт заголовка и тела таблицы определяют команды \cmd{ESKDfontTabHead} и \cmd{ESKDfontTabBody}, их можно переопределить посредством \cmd{renewcommand}. Примечание "--- команды \cmd{ESKDspecFontHead} и \cmd{ESKDspecFontBody} являются устаревшими и будут удалены в будущих версиях \pkg{eskdx}. \fussy \subsection{Текстовые документы без рамок формы и основной надписи} Опция \opt{emptystyle} класса \pkg{eskdtext} позволяет получить документ без таких элементов как рамка формы, основная надпись и дополнительные графы. По сути эта опция устанавливает для всех страниц стиль \val{empty}. Этот стиль не рекомендуется модифицировать, так что если необходимо добавить на страницу произвольные элементы, нужно создать и установить новый стиль, как это описано в разделе~\ref{s:pagestyles}. Пакет \pkg{eskdplain} создает новый стиль страницы \val{plain}, который не содержит никаких элементов, кроме элемента \val{pagenumber}, который печатает по центру в нижней части страницы ее номер. Расположение номера на странице можно контролировать опциями пакета, которые приведены в таблице~\ref{t:eskdplain:opts}. m4_BEGIN_OPTTBL([[m4_dnl \caption{Опции пакета \pkg{eskdplain}}]], [[t:eskdplain:opts]]) \opt{numbertop}\par\opt{numberbottom}& Располагает номер в верхней или в нижней части страницы соответственно.\\\hline \opt{numberleft}\par\opt{numbercenter}\par\opt{numberright}& При \emph{односторонней} компоновке документа располагает номер слева, по центру или справа соответственно.\par При \emph{двусторонней} компоновке располагает номер у переплета, по центру или у внешнего края страниц соответственно.\\\hline m4_END_OPTTBL Пакет \pkg{eskdplain} устанавливает стиль \val{empty} в качестве стиля титульного листа и стиль \val{plain} для всех остальных страниц. \subsection{Добавление листа нестандартного размера в документ} \label{s:freesize} \subsubsection{Общая информация} \textbf{По состоянию на 2010-01-12 данная возможность является экспериментальной и нуждается в тестировании и доводке. Формат команд в будущем может быть изменен.} Иногда бывает необходимо вставить в документ формата А4 несколько листов формата А3 в альбомной ориентации. С помощью пакета \pkg{eskdfreesize} можно вставить лист любого размера в любой ориентации. В пакете определена следующая команда: \begin{defs} \cmddef{ESKDfreeSize\{\cmdarg{ширина}\}% \{\cmdarg{высота}\}\{\cmdarg{содержимое}\}}{} \end{defs} Первые~2 аргумента~--- размеры листа в единицах, понятных \LaTeX. Третий аргумент~--- содержимое, которое необходимо разместить на данном листе. В качестве содержимого могу выступать рисунки, таблицы, текст и т.д. Данная команда при вызове автоматически начинает новый лист. Если все содержимое не поместится на один лист~--- будет начат следующий лист такого же нестандартного размера до тех пор, пока все содержимое не будет размещено. Нестандартные листы оформляются в специальном стиле \val{freesize} (подробнее об управлении стилями см. раздел~\ref{s:pagestyles}) Данный стиль сам подбирает размер рамки и положение элементов основной надписи в зависимости от размеров листа. Стиль \val{freesize} целиком <<унаследован>> от стиля \val{formIIab} за исключением графы 32 по причине того, что формат листа заранее не известен. По умолчанию графа 32 в данном стиле содержит только слово \cmdarg{<<Формат>>} с последующим пробелом. Эту графу можно отключить во всем документе (опция \opt{nocolumnxxxii}), можно удалить из стиля \val{freesize} с помощью команды: \begin{defs} \cmddef{ESKDremoveFromStyle\{\cmdarg{freesize}\}\{% \cmdarg{columnxxxii}\}}{,} \end{defs} наконец, можно вручную переопределить ее содержимое, например: \begin{defs} \cmddef{renewcommand\textbackslash ESKDtheColumnXXXIIfree\{\cmdarg{Формат А3}\}}{} \end{defs} Переопределять ее необходимо перед вызовом \cmd{ESKDfreeSize}. Для удобства, а так же в качестве примеров в конце \pkg{eskdfreesize.sty} были определены следующие команды: \begin{defs} \cmddef{ESKDlandscapeAIII}{} \cmddef{ESKDportraitAIII}{} \cmddef{ESKDlandscapeAII}{} \cmddef{ESKDportraitAII}{} \cmddef{ESKDlandscapeAI}{} \cmddef{ESKDportraitAI}{} \cmddef{ESKDlandscapeAZERO}{} \cmddef{ESKDportraitAZERO}{} \cmddef{ESKDlandscapeBanner}{} \end{defs} Назначение команд понятно из их названий, все они принимают один аргумент~--- содержимое. \subsubsection{Дополнительные возможности} Для удобства последующей автоматической сортировки страниц разного формата по разным файлам (например, с помощью утилиты \pkg{pdftk}) факт вставки нестандартных листов фиксируется в \opt{jobname.log} в следующем формате: \small \begin{verbatim} eskdfreesize: sheet(s) with size (W x H) inserted at page(s) [RANGE]\end{verbatim} \normalsize \begin{ESKDexplanation} \item [где ] W --- ширина; \item H --- высота; \item RANGE --- диапазон номеров страниц в виде \mbox{[$N_1$-$N_2$]}, либо [$N_1$], если страница только одна. \end{ESKDexplanation} Например, для альбомного листа А3, попавшего на 20-ю страницу, запись будет следующей: \small \begin{verbatim} eskdfreesize: sheet(s) with size (420mm x 297mm) inserted at page(s) [20]\end{verbatim} \normalsize \subsubsection{Ограничения и недостатки} В первую очередь, ограничения по размеру. У Adobe Acrobat ограничение на размер листа 200х200in, у pdflatex~--- 16383x16383pt. Следующее ограничение связано с используемым интерпретатором: изменение размера возможно только при прямой компиляции в *.pdf c помощью pdflatex. Не смотря на то, что latex тоже сможет обработать такой документ, все листы, размер которых больше заданного в \cmd{documentclass} будут обрезаны. \subsection{Поддрежка ДСТУ (Украина)} В некоторых случаях требования ДСТУ отличаются от ГОСТов. Для поддержки ДСТУ существует пакет \pkg{eskddstu}, который выполняет все необходимые настройки. На данный момент пакет \pkg{eskddstu} выполняет только настройку окружения \env{ESKDexplanation} в соответствии с \mbox{ДСТУ}\ \mbox{3008-95}. \newpage \section{Благодарности} \sloppy Спасибо всем участникам почтовой рассылки \mbox{CyrTeX-ru} \mbox{[\url{https://info.vsu.ru/Lists/CyrTeX-ru/List.html}]}, которые помогают мне решать вопросы, связанные с разработкой \pkg{eskdx}. \fussy Спасибо всем, кто присылал свои предложения и сообщал об ошибках. Отдельная благодарность Александру Роженко за его коллекцию пакетов \pkg{ncctools}, откуда я позаимствовал некоторые принципы. Спасибо Владимиру Пылинскому за его вклад (\pkg{eskdfreesize}, и другие улучшения). А также спасибо Киевскому техникуму электронных приборов, который побудил меня на разработку коллекции \pkg{eskdx}. Если бы не курсовые и дипломная, я бы этого не делал. m4_ifdef([[m4_HTML]], [[\appendix]]) m4_ifdef([[m4_HTML]], [[\section]], [[\ESKDappendix{справочное}]]){Расположение полей титульного листа и листа утверждения} \label{a:titlelayout} \begin{figure}[h] \begin{center} \includegraphics[scale=0.6]{img-title} \end{center} \end{figure} m4_ifdef([[m4_HTML]], [[\section]], [[\ESKDappendix{справочное}]]){Расположение граф основной надписи} \label{a:columnlayout} \begin{figure}[h] \begin{center} \includegraphics[scale=0.6]{img-form1} \end{center} \caption{Основная надпись для чертежей и схем. Форма~1} \end{figure} \begin{figure}[h] \begin{center} \includegraphics[scale=0.6]{img-form2} \end{center} \caption{Основная надпись для текстовых конструкторских документов (первый или заглавный лист). Форма~2} \end{figure} \begin{figure}[h] \begin{center} \includegraphics[scale=0.6]{img-form2a} \end{center} \caption{Основная надпись для чертежей (схем) и текстовых конструкторских документов (последующие листы). Форма~2а} \end{figure} \end{document} m4_dnl vim:ft=tex:tw=70:sw=2:ai