summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/disser/src/part.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/disser/src/part.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/disser/src/part.dtx')
-rw-r--r--macros/latex/contrib/disser/src/part.dtx205
1 files changed, 205 insertions, 0 deletions
diff --git a/macros/latex/contrib/disser/src/part.dtx b/macros/latex/contrib/disser/src/part.dtx
new file mode 100644
index 0000000000..8904b2a14a
--- /dev/null
+++ b/macros/latex/contrib/disser/src/part.dtx
@@ -0,0 +1,205 @@
+
+% \iffalse
+%%% From File: part.dtx
+% \fi
+%
+% \begin{macrocode}
+
+%<*part>
+% \end{macrocode}
+% \subsection{Часть}
+%
+% \subsubsection{Параметры формата записи в оглавлении}
+%
+% \DescribeMacro{\tocprethepart}\index{Макросы!\verb*+\tocprethepart+}
+% Префикс номера.
+% \begin{macrocode}
+\providecommand\tocprethepart{\partname~}
+% \end{macrocode}
+% \DescribeMacro{\tocpostthepart}\index{Макросы!\verb*+\tocpostthepart+}
+% Постфикс номера.
+% \begin{macrocode}
+\providecommand\tocpostthepart{.\@postskip}
+% \end{macrocode}
+% \DescribeMacro{\tocpartfill}\index{Макросы!\verb*+\tocpartfill+}
+% Заполнитель между названием и номером страницы. Для части по умолчанию
+% отсутствует. Чтобы заполнить какими-либо символами, нужно присвоить
+% |\tocpartfill| значение |\tocfill{символ}|. Для примера см. далее
+% определение |\tocsectionfill|.
+% \begin{macrocode}
+\providecommand\tocpartfill{}
+% \end{macrocode}
+% \DescribeMacro{\tocpartfont}\index{Макросы!\verb*+\tocpartfont+}
+% Шрифт заголовка записи.
+% \begin{macrocode}
+\providecommand\tocpartfont{\bfseries}
+% \end{macrocode}
+% \DescribeMacro{\tocpartfillfont}\index{Макросы!\verb*+\tocpartfillfont+}
+% Шрифт заполнителя в оглавлении.
+% \begin{macrocode}
+\providecommand\tocpartfillfont{\normalfont}
+% \end{macrocode}
+% \DescribeMacro{\tocpartnumfont}\index{Макросы!\verb*+\tocpartnumfont+}
+% Шрифт номера в оглавлении.
+% \begin{macrocode}
+\providecommand\tocpartnumfont{\normalfont}
+
+% \end{macrocode}
+%
+% \subsubsection{Параметры формата заголовка в тексте}
+%
+% Параметры номера и названия: выравнивание, шрифт, отступы, текст до и после.
+% \DescribeMacro{\thepartalign}\index{Макросы!\verb*+\thepartalign+}
+% \DescribeMacro{\thepartfont}\index{Макросы!\verb*+\thepartfont+}
+% \DescribeMacro{\prethepart}\index{Макросы!\verb*+\prethepart+}
+% \DescribeMacro{\postthepart}\index{Макросы!\verb*+\postthepart+}
+% \DescribeMacro{\partalign}\index{Макросы!\verb*+\partalign+}
+% \DescribeMacro{\partfont}\index{Макросы!\verb*+\partfont+}
+% \DescribeMacro{\beforepart}\index{Макросы!\verb*+\beforepart+}
+% \DescribeMacro{\afterpart}\index{Макросы!\verb*+\afterpart+}
+% \begin{macrocode}
+\providecommand\thepartalign{\centering}
+\providecommand\thepartfont{\huge}
+\providecommand\prethepart{\tocprethepart}
+\providecommand\postthepart{\par\vskip 20\p@}
+
+\providecommand\partalign{\centering}
+\providecommand\partfont{\huge\bfseries}
+\providecommand\beforepart{}
+\providecommand\afterpart{\par}
+
+% \end{macrocode}
+% \DescribeMacro{\partpagestyle}\index{Макросы!\verb*+\partpagestyle+}
+% Стиль страницы, на которой расположен заголовок части.
+% \begin{macrocode}
+\def\partpagestyle#1{\gdef\@partpagestyle{#1}}
+\partpagestyle{empty}
+% \end{macrocode}
+%
+% \subsubsection{Низкоуровневые команды}
+%
+% Описание структуры заголовков.
+% \begin{itemize}
+% \item в тексте,
+% \DescribeMacro{\@seccntformat}\index{Макросы!\verb*+"\"@seccntformat+}
+% \begin{macrocode}
+\def\@seccntformat#1{%
+ \csname prethe#1\endcsname%
+ \csname the#1\endcsname%
+ \csname postthe#1\endcsname%
+}
+
+% \end{macrocode}
+% \item в Содержании.
+% \DescribeMacro{\@tocseccntformat}\index{Макросы!\verb*+"\"@tocseccntformat+}
+% \begin{macrocode}
+\def\@tocseccntformat#1{%
+ \csname tocprethe#1\endcsname%
+ \csname tocthe#1\endcsname%
+ \csname tocpostthe#1\endcsname%
+}
+
+% \end{macrocode}
+% \end{itemize}
+% \DescribeMacro{\part}\index{Макросы!\verb*+"\part+}
+% Интерфейс.
+% \begin{macrocode}
+\newcommand\part{
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{\@partpagestyle}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil\secdef\@part\@spart
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\@part}\index{Макросы!\verb+"\"@part+}
+% Команда, формирующая нумеруемый заголовок части |\part|.
+% \begin{macrocode}
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+% \end{macrocode}
+% Команда |\def\\{ }| используется для корректного отображения
+% заголовков с принудительными разрывами строк.
+% \begin{macrocode}
+ {\def\\{ }\addcontentsline{toc}{part}{\@tocseccntformat{part} #1}}
+ \else
+ {\def\\{ }\addcontentsline{toc}{part}{#1}}
+ \fi
+ \markboth{}{}%
+ {%
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+% \end{macrocode}
+% Постоянная часть заголовка и номер.
+% \begin{macrocode}
+ {\thepartfont\partalign\@seccntformat{part}}
+ \fi%
+% \end{macrocode}
+% Название.
+% \begin{macrocode}
+ {\partfont\partalign\beforepart #2\afterpart}%
+ }
+ \@endpart%
+}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\@spart}\index{Макросы!\verb+"\"@spart+}
+% Команда, формирующая ненумеруемый заголовок части |\part*|.
+% \begin{macrocode}
+\def\@spart#1{%
+ \partalign{\interlinepenalty \@M%
+ \partfont\beforepart #1\afterpart}%
+ \@endpart
+}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\@endpart}\index{Макросы!\verb+"\"@endpart+}
+% Завершение страницы с заголовком части.
+% \begin{macrocode}
+\def\@endpart{
+ \vfil\newpage
+ \if@twoside
+ \null
+ \thispagestyle{\partpagestyle}%
+ \newpage
+ \fi
+ \if@tempswa\twocolumn\fi
+}
+
+% \end{macrocode}
+% \DescribeMacro{\l@part}
+% Низкоуровневая команда, создающая запись в Содержании.
+% \begin{macrocode}
+\newcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+ \setlength\@tempdima{3em}%
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode \tocpartfont #1\nobreak
+ \tocpartfillfont\tocpartfill\hfill
+ \hb@xt@\@pnumwidth{\hss\tocpartnumfont #2}}
+ \par\nobreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \endgroup
+ \fi
+}
+
+%</part>
+% \end{macrocode}