From: Nikolay Shaplov Date: Sun, 14 Jun 2026 12:34:48 +0000 (+0300) Subject: Другой способ добавлять заголовки разделов, чтобы ими можно было более удобно управлять X-Git-Url: http://gitweb.nataraj.world/?a=commitdiff_plain;h=4ba9784097ce326fd390779e6312f8935a18a00c;p=articles.git Другой способ добавлять заголовки разделов, чтобы ими можно было более удобно управлять --- diff --git a/slides/0000 - LaTeX Stub/example.tex b/slides/0000 - LaTeX Stub/example.tex index b9ea7fa..77f5a1b 100644 --- a/slides/0000 - LaTeX Stub/example.tex +++ b/slides/0000 - LaTeX Stub/example.tex @@ -145,9 +145,11 @@ \section{Заголовок раздела в одну, две или \\ три строки для объёмных тем \\ (шрифт Roboto Medium, 40 pt)} +% Простой вариант добавления страницы раздела \section{Демонстрация} -\section{Q\&A} +% Сложный вариант добавления страницы раздела +\begin{frame}[section]{Q\&A}\null\end{frame} % \null нужен, без него и заголовок не покажут {\setbeamertemplate{background}{ \begin{tikzpicture} diff --git a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamercolorthemePgPro2025bis.sty b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamercolorthemePgPro2025bis.sty index 6512a28..8f798bb 100644 --- a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamercolorthemePgPro2025bis.sty +++ b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamercolorthemePgPro2025bis.sty @@ -18,8 +18,9 @@ \setbeamercolor*{section title}{fg=white} \setbeamerfont*{section title}{size*={40pt}{48pt},family={\fontspec{Roboto-Medium}}} -\definecolor{frameTitleColor}{HTML}{142D99} -\setbeamercolor*{frametitle}{fg=frameTitleColor} +%\definecolor{frameTitleColor}{HTML}{142D99} +%\setbeamercolor*{frametitle}{fg=frameTitleColor} +\setbeamercolor*{frametitle}{fg=red} \setbeamerfont*{frametitle}{size*={28pt}{28pt},family={\fontspec{Roboto-Medium}}} diff --git a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerinnerthemePgPro2025bis.sty b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerinnerthemePgPro2025bis.sty index 695842d..927f41a 100644 --- a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerinnerthemePgPro2025bis.sty +++ b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerinnerthemePgPro2025bis.sty @@ -1,14 +1,17 @@ \mode + \setbeamertemplate{background}{ \begin{tikzpicture} + \ifbeamer@sectionframe% + \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/title_bg.pdf}}; + \else \ifnum\thepage=1\relax% - \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/title_bg.pdf}}; - \fi - \ifnum\thepage>1\relax% - \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/page_bg.pdf}}; - \node[anchor=east] at(\textwidth+1cm,0.5cm) {\color{text}\tiny\insertframenumber}; - \fi + \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/title_bg.pdf}}; + \else% + \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/page_bg.pdf}}; + \node[anchor=east] at(\textwidth+1cm,0.5cm) {\color{text}\tiny\insertframenumber}; + \fi\fi% \end{tikzpicture} } @@ -65,24 +68,32 @@ } -\newcommand{\striphyperlink}{\renewcommand{\hyperlink}[2]{##2}} -\defbeamertemplate*{section page}{pgpro2025bis}{% - % тёмный фон раздела поверх обычного - \begin{tikzpicture}[remember picture, overlay] - \node[anchor=south west, inner sep=0] at (current page.south west) - {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/section_bg.pdf}}; - \end{tikzpicture}% +%\newcommand{\striphyperlink}{\renewcommand{\hyperlink}[2]{##2}} +%\defbeamertemplate*{section page}{pgpro2025bis}{% +% % тёмный фон раздела поверх обычного +% \begin{tikzpicture}[remember picture, overlay] +% \node[anchor=south west, inner sep=0] at (current page.south west) +% {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/section_bg.pdf}}; +% \end{tikzpicture}% +% \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm) +% \begingroup +% \striphyperlink %временно подменяем все гиперссылки на обычный текст +% \usebeamercolor[fg]{section title}% +% \usebeamerfont{section title}% +% \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax% +% \insertsection\par% +% \endgroup +% \end{textblock*}% +%} + +\defbeamertemplate*{mysectionpage}{}{% \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm) - \begingroup - \striphyperlink %временно подменяем все гиперссылки на обычный текст - \usebeamercolor[fg]{section title}% - \usebeamerfont{section title}% - \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax% - \insertsection\par% - \endgroup + \usebeamercolor[fg]{section title}% + \usebeamerfont{section title}% + \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax% + \insertframetitle\par% \end{textblock*}% } - \mode diff --git a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerouterthemePgPro2025bis.sty b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerouterthemePgPro2025bis.sty index 4afaf1f..d440095 100644 --- a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerouterthemePgPro2025bis.sty +++ b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerouterthemePgPro2025bis.sty @@ -3,13 +3,17 @@ % Frame title \defbeamertemplate*{frametitle}{gcr2019}[1][] { - \nointerlineskip% - \begin{beamercolorbox}[wd=\paperwidth, leftskip=\beamer@leftmargin]{frametitle} - \usebeamerfont{frametitle}% - \vskip7.3mm% Визуально выравниваем однострочный заголовок по линии логотипа справа - \insertframetitle\par% - \vskip3mm% - \end{beamercolorbox}% + \ifbeamer@sectionframe% + \usebeamertemplate{mysectionpage}% + \else% + \nointerlineskip% + \begin{beamercolorbox}[wd=\paperwidth, leftskip=\beamer@leftmargin]{frametitle} + \usebeamerfont{frametitle}% + \vskip7.3mm% Визуально выравниваем однострочный заголовок по линии логотипа справа + \insertframetitle\par% + \vskip3mm% + \end{beamercolorbox}% + \fi% } \mode diff --git a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerthemePgPro2025bis.sty b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerthemePgPro2025bis.sty index 4383f4b..5212fb6 100644 --- a/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerthemePgPro2025bis.sty +++ b/slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerthemePgPro2025bis.sty @@ -19,6 +19,24 @@ \ExecuteOptionsBeamer{t} \ProcessOptionsBeamer + +% Опция [section] для \begin{frame} — переключает фрейм в оформление +% слайда-разделителя раздела (тёмный фон, крупный белый заголовок). +% Механика отделена от дизайна: здесь только взводится флаг и включается +% plain (убирает хедер/футер). Сам дизайн — в шаблонах frametitle (ветка +% \ifbeamer@sectionframe) и background, которые проверяют этот флаг. +% +% Флаг ставится \global, потому что опция обрабатывается в одной группе +% (при разборе аргументов \begin{frame}), а проверяется позже, при +% рендеринге frametitle, уже в другой группе — без \global значение +% не дожило бы до момента проверки. +\newif\ifbeamer@sectionframe +\define@key{beamerframe}{section}[true]{% + \global\let\ifbeamer@sectionframe\iftrue% + \setkeys{beamerframe}{plain}% +} + + % Settings \useinnertheme{PgPro2025bis} \useoutertheme{PgPro2025bis} @@ -29,11 +47,32 @@ \setbeamertemplate{footline}{\vspace{1cm}} \setbeamersize{text margin left=1.33cm,text margin right=1.33cm} -% Определяем слайд с заголовком раздела -\AtBeginSection[]{% - \begin{frame}[plain] - \usebeamertemplate{section page}% - \end{frame}% -} +%% Определяем слайд с заголовком раздела +%\AtBeginSection[]{% +% \begin{frame}[plain] +% \usebeamertemplate{section page}% +% \end{frame}% +%} +% +% +%\define@key{beamerframe}{section}[true]{% +% \setkeys{beamerframe}{plain}% +% +% \setbeamertemplate{background}{% +% \begin{tikzpicture} +% \node[anchor=south west, inner sep=0] at (0,0) +% {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro2025bis.theme/bgpics/title_bg.pdf}}; +% \end{tikzpicture}% +% }% +% \setbeamertemplate{frametitle}{% +%% \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm) +% \usebeamercolor[fg]{section title}% +% \usebeamerfont{section title}% +%% \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax% +% test \insertframetitle\par% +% % \end{textblock*}% +% }% +%} + \mode