From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/disser/src/part.dtx | 205 +++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 macros/latex/contrib/disser/src/part.dtx (limited to 'macros/latex/contrib/disser/src/part.dtx') 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 +} + +% +% \end{macrocode} -- cgit v1.2.3