% \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}