]> Untitled Git - articles.git/commitdiff
Другой способ добавлять заголовки разделов, чтобы ими можно было более удобно управлять
authorNikolay Shaplov <dhyan@nataraj.su>
Sun, 14 Jun 2026 12:34:48 +0000 (15:34 +0300)
committerNikolay Shaplov <dhyan@nataraj.su>
Sun, 14 Jun 2026 12:34:48 +0000 (15:34 +0300)
slides/0000 - LaTeX Stub/example.tex
slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamercolorthemePgPro2025bis.sty
slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerinnerthemePgPro2025bis.sty
slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerouterthemePgPro2025bis.sty
slides/0000 - LaTeX Stub/pgpro2025bis.theme/beamerthemePgPro2025bis.sty

index b9ea7fa33868da77fb8df0e9ff5f0e439b6806d1..77f5a1b7d5bce89a1cbc1486c93e0f256dd9e837 100644 (file)
 
 \section{Заголовок раздела в одну, две или \\ три строки для объёмных тем \\ (шрифт Roboto Medium, 40 pt)}
 
+% Простой вариант добавления страницы раздела
 \section{Демонстрация}
 
-\section{Q\&A}
+% Сложный вариант добавления страницы раздела
+\begin{frame}[section]{Q\&A}\null\end{frame}  % \null нужен, без него и заголовок не покажут
 
 {\setbeamertemplate{background}{
     \begin{tikzpicture}
index 6512a2840fc0da46bc745074533b75ab7908e020..8f798bb16c0365ca96bd6e074d7b2dda8b53b8e0 100644 (file)
@@ -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}}}
 
 
index 695842d4f09148a40a38a50aebe54e39af513c6d..927f41a954dd4cf268b75bfd3c6fa812336b38f8 100644 (file)
@@ -1,14 +1,17 @@
 \mode<presentation>
 
+
 \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}
 }
 
 }
 
 
-\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
 <all>
index 4afaf1f8eed2cc130c140ce9ccf6e2fd20761ed1..d440095e9850423b079f29d577aafd619fd4012b 100644 (file)
@@ -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<all>
index 4383f4bf21d4e68216c4ca615417b8a078a214fb..5212fb6f185cef4c185dd203656de1c359aef2d4 100644 (file)
 \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}
 \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<all>