-THEME ?= pgpro2025bis.theme
+THEME ?= PgPro2025
-THEMES = theme.nonfree pgpro2025.theme pgpro2025bis.theme
-
-# Привет роботам!
+THEMES = PgPro2025 PgPro2023
TOP_DIR = $(shell pwd)
-FONTS_DIR = $(TOP_DIR)/$(THEME)/fonts
+THEME_DIR = $(TOP_DIR)/themes.nonfree/$(THEME)
+FONTS_DIR = $(THEME_DIR)/fonts
all:
"$(TOP_DIR)/bin/gen_font_config.pl" "$(FONTS_DIR)"
- ln -sf "$(THEME)/theme_setup.tex" theme_setup.tex
+ ln -sf "$(THEME_DIR)/theme_setup.tex" theme_setup.tex
FONTCONFIG_FILE="$(FONTS_DIR)/fonts.conf" fc-cache
# Надо в два прохода
clean:
rm -f *.log *.aux *.out *.snm *.nav *.toc *.vrb
- $(foreach theme,$(THEMES), rm -f "$(TOP_DIR)/$(theme)/fonts/fonts.conf";)
- $(foreach theme,$(THEMES), rm -rf "$(TOP_DIR)/$(theme)/fonts-cache";)
+ $(foreach theme,$(THEMES), rm -f "$(TOP_DIR)/themes.nonfree/$(theme)/fonts/fonts.conf";)
+ $(foreach theme,$(THEMES), rm -rf "$(TOP_DIR)/themes.nonfree/$(theme)/fonts-cache";)
\input{elements/code.tex}
+% Когда захотим добавлять картинки из директории, то ее надо добавить к graphicspath
+% вот таким вот образом. (Спроси Клода почему)
+%\makeatletter
+%\expandafter\graphicspath\expandafter{\Ginput@path{img/}}
+%\makeatother
+
\title{Название презентации}
\subtitle{Подзаголовок презентации}
+++ /dev/null
-\mode<presentation>
-
-% Settings
-\AtBeginDocument{\setromanfont{Times New Roman}}
-\AtBeginDocument{\setsansfont{Roboto}}
-\AtBeginDocument{\setmonofont{RobotoMono-Regular}}
-\setbeamercolor*{title page header}{fg=white}
-\setbeamerfont*{title}{size*={40pt}{40pt},family={\fontspec{Roboto-Medium}}}
-\setbeamercolor*{subtitle}{fg=subTitleColor}
-\definecolor{subTitleColor}{HTML}{889BEF}
-\setbeamerfont*{subtitle}{size*={20pt}{24pt},family=\sffamily}
-\setbeamercolor*{author}{fg=white}
-\setbeamerfont*{author}{size*={14pt}{1},family=\sffamily}
-
-\setbeamercolor*{institute}{fg=subTitleColor}
-\setbeamerfont*{institute}{size*={10pt}{12pt},family=\sffamily}
-
-\setbeamercolor*{section title}{fg=white}
-\setbeamerfont*{section title}{size*={40pt}{48pt},family={\fontspec{Roboto-Medium}}}
-
-\setbeamercolor*{closing title}{fg=white}
-\setbeamerfont*{closing title}{size*={40pt}{48pt},family={\fontspec{Roboto-Medium}}}
-
-\definecolor{frameTitleColor}{HTML}{142D99}
-\setbeamercolor*{frametitle}{fg=frameTitleColor}
-\setbeamerfont*{frametitle}{size*={28pt}{28pt},family={\fontspec{Roboto-Medium}}}
-
-
-\definecolor{text}{HTML}{142D99}
-\setbeamercolor{normal text}{fg=text}
-\setbeamerfont{normal text}{size*={14pt}{16},family=\sffamily}
-\AtBeginDocument{\usebeamerfont{normal text}}
-\AtBeginDocument{\setlength{\parskip}{0.8\dimexpr\f@size pt\relax}} % Задаем расстояние между абзацами
-
-\setbeamertemplate{itemize items}{\textbullet}% отключает кошмарные синие треугольники
-\setbeamercolor{itemize/enumerate body}{fg=text}
-
-% Цвета для гиперссылок
-\definecolor{linkcolor}{HTML}{2F80EB} % цвет ссылок
-\definecolor{urlcolor}{HTML}{2F80EB} % цвет гиперссылок
-\hypersetup{pdfstartview=FitH, linkcolor=linkcolor,urlcolor=urlcolor, colorlinks=true}
-
-% Переопределяем поведение линии подчеркивания в uline
-
-% Roboto-Regular/Medium: post.underlineThickness=100, unitsPerEm=2048
-% коэф = 100/2048 ≈ 488/10000
-\renewcommand{\ULthickness}{\dimexpr \f@size pt * 488 / 10000 \relax}%
-\renewcommand{\ULdepth}{\dimexpr \f@size pt * 10 / 100 \relax}% отступ от базовой линии
-
-% Переопределяем href чтобы он использовал \uline для подчеркивания ссылок
-\let\oldhref\href
-\renewcommand{\href}[2]{{\color{urlcolor}\uline{\oldhref{#1}{#2}}}}
-
-
-\setbeamerfont*{codelisting}{size*={14pt}{16pt},family=\ttfamily}
-\definecolor{codeTextColor}{HTML}{142D99}
-\definecolor{codeBgColor}{HTML}{EFEFF2}
-
-
-\AtBeginDocument{%
- \@ifpackageloaded{minted}{%
- \setminted{
- bgcolor=codeBgColor
- }%
- }{}%
-}
-
-
-% Макросы воспроизводят поведение LibreOffice Impress при размещении текста
-% в текстовом блоке: LibreOffice использует usWinAscent как First Baseline
-% Offset — расстояние от верхней границы блока до базовой линии первой строки.
-% Пространство над заглавной буквой (gap) при этом равно:
-% gap = round(usWinAscent × fontSize / unitsPerEm)
-% - round(sCapHeight × fontSize / unitsPerEm)
-% где round реализован как целочисленное (a + unitsPerEm/2) / unitsPerEm.
-%
-% Макрос вычисляет gap для текущего активного шрифта (\f@size),
-% поэтому должен вызываться после \usebeamerfont{...}.
-%
-% Параметры шрифтов получены командой: ttx -t OS/2 -t head <font.ttf>
-% Для нового шрифта взять usWinAscent, sCapHeight, unitsPerEm из вывода
-% ttx и добавить аналогичный макрос.
-%
-% USE_TYPO_METRICS (fsSelection bit 7) у всех трёх не установлен —
-% LibreOffice использует Win-метрики. Проверить: в выводе ttx -t OS/2
-% убедиться что бит 7 fsSelection = 0.
-%
-% Roboto-Regular.ttf: usWinAscent=1946, sCapHeight=1456, unitsPerEm=2048
-% Roboto-Medium.ttf: usWinAscent=1946, sCapHeight=1456, unitsPerEm=2048
-% RobotoMono-Regular.ttf: usWinAscent=2146, sCapHeight=1456, unitsPerEm=2048
-
-\newcommand{\RobotoRegularBaselineGap}{\dimexpr
- \numexpr (1946 * \f@size + 1024) / 2048 \relax pt -
- \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
-\relax}
-
-\newcommand{\RobotoMediumBaselineGap}{\dimexpr
- \numexpr (1946 * \f@size + 1024) / 2048 \relax pt -
- \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
-\relax}
-
-\newcommand{\RobotoMonoRegularBaselineGap}{\dimexpr
- \numexpr (2146 * \f@size + 1024) / 2048 \relax pt -
- \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
-\relax}
-
-
-\mode
-<all>
+++ /dev/null
-\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/section_bg.pdf}};
- \else
- \ifbeamer@closingframe%
- \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}};
- \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\fi%
- \end{tikzpicture}
-}
-
-% Title page
-\newlength{\theme@titleheight}
-\defbeamertemplate*{title page}{}[1][]
-{%
- % рендерим заголовок отдельно, и в зависимости от его размера (theme@titleheight)
- % по разному вставляем его в макет
- \setbox0=\vbox{%
- \usebeamerfont{title}%
- \inserttitle\par%
- }
- \settototalheight{\theme@titleheight}{\usebox0}
-
- \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 2.31cm)
- \begin{beamercolorbox}[left,#1]{title page header}
- \usebeamerfont{title}%
- %
- \ifdim\theme@titleheight<3.51cm
- \begin{minipage}[t][3.51cm][c]{\textwidth}
- \usebox0%
- \end{minipage}
- \else
- \usebox0%
- \fi
- \end{beamercolorbox}%
-%
- \begin{beamercolorbox}[left,#1]{subtitle}
- \usebeamerfont{subtitle}%
-
- \ifdim\theme@titleheight<3.51cm
- \vskip \dimexpr \RobotoRegularBaselineGap - 9pt \relax%
- \else
- \vskip \dimexpr \RobotoRegularBaselineGap + 0pt \relax%
- \fi
-%
- \insertsubtitle\par%
- \end{beamercolorbox}%
- \end{textblock*}
-%
- \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 16.1cm)
- \begin{beamercolorbox}[left,#1]{author}
- \usebeamerfont{author}%
- \vskip \dimexpr \RobotoRegularBaselineGap - 1pt \relax%
- \insertauthor%
- \end{beamercolorbox}
- \begin{beamercolorbox}[left,#1]{institute}
- \usebeamerfont{institute}%
- \vskip \dimexpr \RobotoRegularBaselineGap + 1pt \relax%
- \insertinstitute%
- \end{beamercolorbox}
- \end{textblock*}
-}
-
-
-% Шаблон для section-слайда
-\defbeamertemplate*{mysectionpage}{}{%
- \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm)
- {\usebeamercolor[fg]{section title}%
- \usebeamerfont{section title}%
- \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax%
- \insertframetitle\par}%
- \end{textblock*}%
-}
-
-% Шаблон для closing-слайда
-\defbeamertemplate*{myclosingpage}{}{%
- \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm)
- {\usebeamercolor[fg]{closing title}%
- \usebeamerfont{closing title}%
- \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax%
- \insertframetitle\par}%
- \end{textblock*}%
-}
-
-\mode
-<all>
+++ /dev/null
-\mode<presentation>
-
-% Frame title
-\defbeamertemplate*{frametitle}{gcr2019}[1][]
-{
- \ifbeamer@sectionframe%
- \usebeamertemplate{mysectionpage}%
- \else\ifbeamer@closingframe%
- \usebeamertemplate{myclosingpage}%
- \else%
- \nointerlineskip%
- \begin{beamercolorbox}[wd=\paperwidth, leftskip=\beamer@leftmargin]{frametitle}
- \usebeamerfont{frametitle}%
- \vskip7.3mm% Визуально выравниваем однострочный заголовок по линии логотипа справа
- \insertframetitle\par%
- \vskip3mm%
- \end{beamercolorbox}%
- \fi\fi%
-}
-
-\mode<all>
+++ /dev/null
-% Based on gcr2019 theme (https://github.com/schors/gcr2019theme)
-% Used backghround pictures from template https://confluence.postgrespro.ru/download/attachments/169509420/_PostgresPro_ШАБЛОН.odp?version=1&modificationDate=1675418955114&api=v2
-% and Gilroy font from https://oc.postgrespro.ru/index.php/s/oXFIYT9dLwLCle6
-\mode<presentation>
-
-% Requirement
-\RequirePackage{tikz}
-\RequirePackage[absolute,overlay]{textpos}
-\RequirePackage{calc}
-
-% Переопределяем размер слайда под фактический размер pdf-ного фона
-\geometry{paperwidth=960bp,paperheight=540bp}
-
-% Определяем параметры темы c и t определяющие вертиальную ориентацию текста на слайде. t -- по умолчанию
-\DeclareOptionBeamer{c}{\beamer@centeredtrue}
-\DeclareOptionBeamer{t}{\beamer@centeredfalse}
-\ExecuteOptionsBeamer{t}
-\ProcessOptionsBeamer
-
-
-
-% Settings
-\useinnertheme{PgPro2025bis}
-\useoutertheme{PgPro2025bis}
-\usecolortheme{PgPro2025bis}
-
-\setbeamertemplate{navigation symbols}{}
-\setbeamertemplate{blocks}[rounded][shadow=true]
-\setbeamertemplate{footline}{\vspace{1cm}}
-\setbeamersize{text margin left=1.33cm,text margin right=1.33cm}
-
-\mode<all>
+++ /dev/null
-\makeatletter
-\def\input@path{{./pgpro2025bis.theme}}
-\makeatother
-\usetheme{PgPro2025bis}
-
+++ /dev/null
-\mode<presentation>
-
-% Settings
-\AtBeginDocument{\setromanfont{Times New Roman}}
-\AtBeginDocument{\setsansfont{Montserrat}}
-\AtBeginDocument{\setmonofont{Consolas}}
-\setbeamercolor*{title page header}{fg=white}
-\setbeamerfont*{title}{size*={48pt}{46pt},family=\sffamily,series=\bfseries}
-\setbeamercolor*{author}{fg=white}
-\setbeamerfont*{author}{size*={18pt}{18pt},family=\sffamily}
-
-\setbeamercolor*{institute}{fg=white}
-\setbeamerfont*{institute}{size*={10pt}{8pt},family=\sffamily}
-
-\setbeamercolor*{section title}{fg=white}
-\setbeamerfont*{section title}{size*={40pt}{48pt},family=\sffamily,series=\bfseries}
-
-\definecolor{closingTitleColor}{HTML}{1190D0}
-\setbeamercolor*{closing title}{fg=closingTitleColor}
-\setbeamerfont*{closing title}{size*={41pt}{44pt},family=\sffamily,series=\bfseries}
-
-
-\definecolor{frameTitleColor}{HTML}{1190D0}
-\setbeamercolor*{frametitle}{fg=frameTitleColor}
-\setbeamerfont*{frametitle}{size*={22pt}{22pt},family=\sffamily,series=\bfseries}
-
-%\definecolor{text}{HTML}{595959}
-\definecolor{text}{HTML}{000000}
-\setbeamercolor{normal text}{fg=text}
-\setbeamerfont{normal text}{size*={12pt}{18},family=\sffamily}
-\AtBeginDocument{\usebeamerfont{normal text}}
-\setbeamertemplate{itemize items}{\textbullet}% отключает кошмарные синие треугольники
-\setbeamercolor{itemize/enumerate body}{fg=text}
-
-% Цвета для гиперссылок
-\definecolor{linkcolor}{HTML}{799B03} % цвет ссылок
-\definecolor{urlcolor}{HTML}{6633FF} % цвет гиперссылок
-\hypersetup{pdfstartview=FitH, linkcolor=linkcolor,urlcolor=urlcolor, colorlinks=true}
-
-
-\setbeamerfont*{codelisting}{size*={10pt}{12}\bf\ttfamily}
-\definecolor{codeTextColor}{HTML}{000000}
-\definecolor{codeBgColor}{HTML}{FFFFEF}
-
-
-\mode
-<all>
+++ /dev/null
-\mode<presentation>
-
-\setbeamertemplate{background}{
- \begin{tikzpicture}
- \ifbeamer@sectionframe%
- \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{theme.nonfree/bgpics/pgpro_title_bg2.png}};
- \else
- \ifbeamer@closingframe%
- \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{theme.nonfree/bgpics/pgpro_closing_bg.png}};
- \else
- \ifnum\thepage=1\relax%
- \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\the\paperwidth, height=\the\paperheight]{theme.nonfree/bgpics/pgpro_title_bg.png}};
- \fi
- \ifnum\thepage>1\relax%
- \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\the\paperwidth, height=\the\paperheight]{theme.nonfree/bgpics/pgpro_page_bg.png}};
- \node[anchor=east] at(\textwidth+1cm,0.5cm) {\color{text}\tiny\insertframenumber};
- \fi\fi\fi
- \end{tikzpicture}
-}
-
-% Title page
-\defbeamertemplate*{title page}{gcr2019}[1][]
-{
- \begin{textblock*}{0.45\paperwidth}(2.39cm, 6.42cm)
- {\usebeamercolor[fg]{title page header}%
- \usebeamerfont{title}%
- \inserttitle\par
-%
- \vskip14pt%
- \usebeamerfont{subtitle}%
- \insertsubtitle\par%
- }%
- \end{textblock*}%
- \begin{textblock*}{0.6\paperwidth}(2.39cm, 11cm)
- {\usebeamercolor[fg]{author}%
- \usebeamerfont{author}%
- \insertauthor%
-
- \usebeamercolor[fg]{institute}%
- \usebeamerfont{institute}%
- \insertinstitute%
- }
- \end{textblock*}%
-}
-
-
-% Шаблон для section-слайда
-\defbeamertemplate*{mysectionpage}{}{%
- \begin{textblock*}{\paperwidth}(\dimexpr\beamer@leftmargin+1.1cm\relax, 0cm)
- \begin{minipage}[c][\paperheight][c]{\dimexpr\paperwidth-2\beamer@leftmargin\relax}
- {\usebeamercolor[fg]{section title}%
- \usebeamerfont{section title}%
- \vskip2cm
- \insertframetitle\par}%
- \end{minipage}%
- \end{textblock*}%
-}
-
-% Шаблон для closing-слайда
-\defbeamertemplate*{myclosingpage}{}{%
- \begin{textblock*}{\paperwidth}(3.75cm, 5.94cm)
- {\usebeamercolor[fg]{closing title}%
- \usebeamerfont{closing title}%
- \insertframetitle\par}%
- \end{textblock*}%
-}
-
-
-\mode
-<all>
+++ /dev/null
-\mode<presentation>
-
-% Frame title
-\defbeamertemplate*{frametitle}{gcr2019}[1][]
-{
- \ifbeamer@sectionframe%
- \usebeamertemplate{mysectionpage}%
- \else\ifbeamer@closingframe%
- \usebeamertemplate{myclosingpage}%
- \else%
- \vskip0.97cm
- \begin{beamercolorbox}[wd=\paperwidth,leftskip=1.44cm]{frametitle}
- \usebeamerfont{frametitle}%
- \insertframetitle
- \vskip0.25cm%
- \end{beamercolorbox}
- \fi\fi
-}
-
-\mode<all>
+++ /dev/null
-% Based on gcr2019 theme (https://github.com/schors/gcr2019theme)
-% Used backghround pictures from template https://confluence.postgrespro.ru/download/attachments/169509420/_PostgresPro_ШАБЛОН.odp?version=1&modificationDate=1675418955114&api=v2
-% and Gilroy font from https://oc.postgrespro.ru/index.php/s/oXFIYT9dLwLCle6
-\mode<presentation>
-
-% Requirement
-\RequirePackage{tikz}
-\RequirePackage[absolute,overlay]{textpos}
-
-\geometry{paperwidth=33.87cm,paperheight=19.05cm}
-
-% Определяем параметры темы c и t определяющие вертиальную ориентацию текста на слайде. t -- по умолчанию
-\DeclareOptionBeamer{c}{\beamer@centeredtrue}
-\DeclareOptionBeamer{t}{\beamer@centeredfalse}
-\ExecuteOptionsBeamer{t}
-\ProcessOptionsBeamer
-
-% Settings
-\useinnertheme{PgPro}
-\useoutertheme{PgPro}
-\usecolortheme{PgPro}
-
-\setbeamertemplate{navigation symbols}{}
-\setbeamertemplate{blocks}[rounded][shadow=true]
-\setbeamertemplate{footline}{\vspace{1cm}}
-\setbeamersize{text margin left=1.44cm,text margin right=1.44cm}
-
-\mode<all>
+++ /dev/null
-\makeatletter
-\def\input@path{{./theme.nonfree}}
-\makeatother
-\usetheme{PgPro}
-
--- /dev/null
+Файлы находящиеся в этой директории НЕ распростроняются под свободной лицензией
+Пожалуйста не испольуйте их, если вы не имеете на это права.
--- /dev/null
+\mode<presentation>
+
+% Settings
+\AtBeginDocument{\setromanfont{Times New Roman}}
+\AtBeginDocument{\setsansfont{Montserrat}}
+\AtBeginDocument{\setmonofont{Consolas}}
+\setbeamercolor*{title page header}{fg=white}
+\setbeamerfont*{title}{size*={48pt}{46pt},family=\sffamily,series=\bfseries}
+\setbeamercolor*{author}{fg=white}
+\setbeamerfont*{author}{size*={18pt}{18pt},family=\sffamily}
+
+\setbeamercolor*{institute}{fg=white}
+\setbeamerfont*{institute}{size*={10pt}{8pt},family=\sffamily}
+
+\setbeamercolor*{section title}{fg=white}
+\setbeamerfont*{section title}{size*={40pt}{48pt},family=\sffamily,series=\bfseries}
+
+\definecolor{closingTitleColor}{HTML}{1190D0}
+\setbeamercolor*{closing title}{fg=closingTitleColor}
+\setbeamerfont*{closing title}{size*={41pt}{44pt},family=\sffamily,series=\bfseries}
+
+
+\definecolor{frameTitleColor}{HTML}{1190D0}
+\setbeamercolor*{frametitle}{fg=frameTitleColor}
+\setbeamerfont*{frametitle}{size*={22pt}{22pt},family=\sffamily,series=\bfseries}
+
+%\definecolor{text}{HTML}{595959}
+\definecolor{text}{HTML}{000000}
+\setbeamercolor{normal text}{fg=text}
+\setbeamerfont{normal text}{size*={12pt}{18},family=\sffamily}
+\AtBeginDocument{\usebeamerfont{normal text}}
+\setbeamertemplate{itemize items}{\textbullet}% отключает кошмарные синие треугольники
+\setbeamercolor{itemize/enumerate body}{fg=text}
+
+% Цвета для гиперссылок
+\definecolor{linkcolor}{HTML}{799B03} % цвет ссылок
+\definecolor{urlcolor}{HTML}{6633FF} % цвет гиперссылок
+\hypersetup{pdfstartview=FitH, linkcolor=linkcolor,urlcolor=urlcolor, colorlinks=true}
+
+
+\setbeamerfont*{codelisting}{size*={10pt}{12}\bf\ttfamily}
+\definecolor{codeTextColor}{HTML}{000000}
+\definecolor{codeBgColor}{HTML}{FFFFEF}
+
+
+\mode
+<all>
--- /dev/null
+\mode<presentation>
+
+\setbeamertemplate{background}{
+ \begin{tikzpicture}
+ \ifbeamer@sectionframe%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro_title_bg2.png}};
+ \else
+ \ifbeamer@closingframe%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{pgpro_closing_bg.png}};
+ \else
+ \ifnum\thepage=1\relax%
+ \node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\the\paperwidth, height=\the\paperheight]{pgpro_title_bg.png}};
+ \fi
+ \ifnum\thepage>1\relax%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\the\paperwidth, height=\the\paperheight]{pgpro_page_bg.png}};
+ \node[anchor=east] at(\textwidth+1cm,0.5cm) {\color{text}\tiny\insertframenumber};
+ \fi\fi\fi
+ \end{tikzpicture}
+}
+
+% Title page
+\defbeamertemplate*{title page}{gcr2019}[1][]
+{
+ \begin{textblock*}{0.45\paperwidth}(2.39cm, 6.42cm)
+ {\usebeamercolor[fg]{title page header}%
+ \usebeamerfont{title}%
+ \inserttitle\par
+%
+ \vskip14pt%
+ \usebeamerfont{subtitle}%
+ \insertsubtitle\par%
+ }%
+ \end{textblock*}%
+ \begin{textblock*}{0.6\paperwidth}(2.39cm, 11cm)
+ {\usebeamercolor[fg]{author}%
+ \usebeamerfont{author}%
+ \insertauthor%
+
+ \usebeamercolor[fg]{institute}%
+ \usebeamerfont{institute}%
+ \insertinstitute%
+ }
+ \end{textblock*}%
+}
+
+
+% Шаблон для section-слайда
+\defbeamertemplate*{mysectionpage}{}{%
+ \begin{textblock*}{\paperwidth}(\dimexpr\beamer@leftmargin+1.1cm\relax, 0cm)
+ \begin{minipage}[c][\paperheight][c]{\dimexpr\paperwidth-2\beamer@leftmargin\relax}
+ {\usebeamercolor[fg]{section title}%
+ \usebeamerfont{section title}%
+ \vskip2cm
+ \insertframetitle\par}%
+ \end{minipage}%
+ \end{textblock*}%
+}
+
+% Шаблон для closing-слайда
+\defbeamertemplate*{myclosingpage}{}{%
+ \begin{textblock*}{\paperwidth}(3.75cm, 5.94cm)
+ {\usebeamercolor[fg]{closing title}%
+ \usebeamerfont{closing title}%
+ \insertframetitle\par}%
+ \end{textblock*}%
+}
+
+
+\mode
+<all>
--- /dev/null
+\mode<presentation>
+
+% Frame title
+\defbeamertemplate*{frametitle}{gcr2019}[1][]
+{
+ \ifbeamer@sectionframe%
+ \usebeamertemplate{mysectionpage}%
+ \else\ifbeamer@closingframe%
+ \usebeamertemplate{myclosingpage}%
+ \else%
+ \vskip0.97cm
+ \begin{beamercolorbox}[wd=\paperwidth,leftskip=1.44cm]{frametitle}
+ \usebeamerfont{frametitle}%
+ \insertframetitle
+ \vskip0.25cm%
+ \end{beamercolorbox}
+ \fi\fi
+}
+
+\mode<all>
--- /dev/null
+% Based on gcr2019 theme (https://github.com/schors/gcr2019theme)
+% Used backghround pictures from template https://confluence.postgrespro.ru/download/attachments/169509420/_PostgresPro_ШАБЛОН.odp?version=1&modificationDate=1675418955114&api=v2
+% and Gilroy font from https://oc.postgrespro.ru/index.php/s/oXFIYT9dLwLCle6
+\mode<presentation>
+
+% Requirement
+\RequirePackage{tikz}
+\RequirePackage[absolute,overlay]{textpos}
+
+\geometry{paperwidth=33.87cm,paperheight=19.05cm}
+
+% Определяем параметры темы c и t определяющие вертиальную ориентацию текста на слайде. t -- по умолчанию
+\DeclareOptionBeamer{c}{\beamer@centeredtrue}
+\DeclareOptionBeamer{t}{\beamer@centeredfalse}
+\ExecuteOptionsBeamer{t}
+\ProcessOptionsBeamer
+
+% Settings
+\useinnertheme{PgPro2023}
+\useoutertheme{PgPro2023}
+\usecolortheme{PgPro2023}
+
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{blocks}[rounded][shadow=true]
+\setbeamertemplate{footline}{\vspace{1cm}}
+\setbeamersize{text margin left=1.44cm,text margin right=1.44cm}
+
+\mode<all>
--- /dev/null
+\makeatletter
+\def\input@path{{./themes.nonfree/PgPro2023}}
+\graphicspath{{./themes.nonfree/PgPro2023/bgpics}}
+\makeatother
+\usetheme{PgPro2023}
+
--- /dev/null
+\mode<presentation>
+
+% Settings
+\AtBeginDocument{\setromanfont{Times New Roman}}
+\AtBeginDocument{\setsansfont{Roboto}}
+\AtBeginDocument{\setmonofont{RobotoMono-Regular}}
+\setbeamercolor*{title page header}{fg=white}
+\setbeamerfont*{title}{size*={40pt}{40pt},family={\fontspec{Roboto-Medium}}}
+\setbeamercolor*{subtitle}{fg=subTitleColor}
+\definecolor{subTitleColor}{HTML}{889BEF}
+\setbeamerfont*{subtitle}{size*={20pt}{24pt},family=\sffamily}
+\setbeamercolor*{author}{fg=white}
+\setbeamerfont*{author}{size*={14pt}{1},family=\sffamily}
+
+\setbeamercolor*{institute}{fg=subTitleColor}
+\setbeamerfont*{institute}{size*={10pt}{12pt},family=\sffamily}
+
+\setbeamercolor*{section title}{fg=white}
+\setbeamerfont*{section title}{size*={40pt}{48pt},family={\fontspec{Roboto-Medium}}}
+
+\setbeamercolor*{closing title}{fg=white}
+\setbeamerfont*{closing title}{size*={40pt}{48pt},family={\fontspec{Roboto-Medium}}}
+
+\definecolor{frameTitleColor}{HTML}{142D99}
+\setbeamercolor*{frametitle}{fg=frameTitleColor}
+\setbeamerfont*{frametitle}{size*={28pt}{28pt},family={\fontspec{Roboto-Medium}}}
+
+
+\definecolor{text}{HTML}{142D99}
+\setbeamercolor{normal text}{fg=text}
+\setbeamerfont{normal text}{size*={14pt}{16},family=\sffamily}
+\AtBeginDocument{\usebeamerfont{normal text}}
+\AtBeginDocument{\setlength{\parskip}{0.8\dimexpr\f@size pt\relax}} % Задаем расстояние между абзацами
+
+\setbeamertemplate{itemize items}{\textbullet}% отключает кошмарные синие треугольники
+\setbeamercolor{itemize/enumerate body}{fg=text}
+
+% Цвета для гиперссылок
+\definecolor{linkcolor}{HTML}{2F80EB} % цвет ссылок
+\definecolor{urlcolor}{HTML}{2F80EB} % цвет гиперссылок
+\hypersetup{pdfstartview=FitH, linkcolor=linkcolor,urlcolor=urlcolor, colorlinks=true}
+
+% Переопределяем поведение линии подчеркивания в uline
+
+% Roboto-Regular/Medium: post.underlineThickness=100, unitsPerEm=2048
+% коэф = 100/2048 ≈ 488/10000
+\renewcommand{\ULthickness}{\dimexpr \f@size pt * 488 / 10000 \relax}%
+\renewcommand{\ULdepth}{\dimexpr \f@size pt * 10 / 100 \relax}% отступ от базовой линии
+
+% Переопределяем href чтобы он использовал \uline для подчеркивания ссылок
+\let\oldhref\href
+\renewcommand{\href}[2]{{\color{urlcolor}\uline{\oldhref{#1}{#2}}}}
+
+
+\setbeamerfont*{codelisting}{size*={14pt}{16pt},family=\ttfamily}
+\definecolor{codeTextColor}{HTML}{142D99}
+\definecolor{codeBgColor}{HTML}{EFEFF2}
+
+
+\AtBeginDocument{%
+ \@ifpackageloaded{minted}{%
+ \setminted{
+ bgcolor=codeBgColor
+ }%
+ }{}%
+}
+
+
+% Макросы воспроизводят поведение LibreOffice Impress при размещении текста
+% в текстовом блоке: LibreOffice использует usWinAscent как First Baseline
+% Offset — расстояние от верхней границы блока до базовой линии первой строки.
+% Пространство над заглавной буквой (gap) при этом равно:
+% gap = round(usWinAscent × fontSize / unitsPerEm)
+% - round(sCapHeight × fontSize / unitsPerEm)
+% где round реализован как целочисленное (a + unitsPerEm/2) / unitsPerEm.
+%
+% Макрос вычисляет gap для текущего активного шрифта (\f@size),
+% поэтому должен вызываться после \usebeamerfont{...}.
+%
+% Параметры шрифтов получены командой: ttx -t OS/2 -t head <font.ttf>
+% Для нового шрифта взять usWinAscent, sCapHeight, unitsPerEm из вывода
+% ttx и добавить аналогичный макрос.
+%
+% USE_TYPO_METRICS (fsSelection bit 7) у всех трёх не установлен —
+% LibreOffice использует Win-метрики. Проверить: в выводе ttx -t OS/2
+% убедиться что бит 7 fsSelection = 0.
+%
+% Roboto-Regular.ttf: usWinAscent=1946, sCapHeight=1456, unitsPerEm=2048
+% Roboto-Medium.ttf: usWinAscent=1946, sCapHeight=1456, unitsPerEm=2048
+% RobotoMono-Regular.ttf: usWinAscent=2146, sCapHeight=1456, unitsPerEm=2048
+
+\newcommand{\RobotoRegularBaselineGap}{\dimexpr
+ \numexpr (1946 * \f@size + 1024) / 2048 \relax pt -
+ \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
+\relax}
+
+\newcommand{\RobotoMediumBaselineGap}{\dimexpr
+ \numexpr (1946 * \f@size + 1024) / 2048 \relax pt -
+ \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
+\relax}
+
+\newcommand{\RobotoMonoRegularBaselineGap}{\dimexpr
+ \numexpr (2146 * \f@size + 1024) / 2048 \relax pt -
+ \numexpr (1456 * \f@size + 1024) / 2048 \relax pt
+\relax}
+
+
+\mode
+<all>
--- /dev/null
+\mode<presentation>
+
+
+\setbeamertemplate{background}{
+ \begin{tikzpicture}
+ \ifbeamer@sectionframe%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{section_bg.pdf}};
+ \else
+ \ifbeamer@closingframe%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{title_bg.pdf}};
+ \else
+ \ifnum\thepage=1\relax%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{title_bg.pdf}};
+ \else%
+ \node[anchor=south west, inner sep=0] at (0,0) {\includegraphics[width=\paperwidth, height=\paperheight]{page_bg.pdf}};
+ \node[anchor=east] at(\textwidth+1cm,0.5cm) {\color{text}\tiny\insertframenumber};
+ \fi\fi\fi%
+ \end{tikzpicture}
+}
+
+% Title page
+\newlength{\theme@titleheight}
+\defbeamertemplate*{title page}{}[1][]
+{%
+ % рендерим заголовок отдельно, и в зависимости от его размера (theme@titleheight)
+ % по разному вставляем его в макет
+ \setbox0=\vbox{%
+ \usebeamerfont{title}%
+ \inserttitle\par%
+ }
+ \settototalheight{\theme@titleheight}{\usebox0}
+
+ \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 2.31cm)
+ \begin{beamercolorbox}[left,#1]{title page header}
+ \usebeamerfont{title}%
+ %
+ \ifdim\theme@titleheight<3.51cm
+ \begin{minipage}[t][3.51cm][c]{\textwidth}
+ \usebox0%
+ \end{minipage}
+ \else
+ \usebox0%
+ \fi
+ \end{beamercolorbox}%
+%
+ \begin{beamercolorbox}[left,#1]{subtitle}
+ \usebeamerfont{subtitle}%
+
+ \ifdim\theme@titleheight<3.51cm
+ \vskip \dimexpr \RobotoRegularBaselineGap - 9pt \relax%
+ \else
+ \vskip \dimexpr \RobotoRegularBaselineGap + 0pt \relax%
+ \fi
+%
+ \insertsubtitle\par%
+ \end{beamercolorbox}%
+ \end{textblock*}
+%
+ \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 16.1cm)
+ \begin{beamercolorbox}[left,#1]{author}
+ \usebeamerfont{author}%
+ \vskip \dimexpr \RobotoRegularBaselineGap - 1pt \relax%
+ \insertauthor%
+ \end{beamercolorbox}
+ \begin{beamercolorbox}[left,#1]{institute}
+ \usebeamerfont{institute}%
+ \vskip \dimexpr \RobotoRegularBaselineGap + 1pt \relax%
+ \insertinstitute%
+ \end{beamercolorbox}
+ \end{textblock*}
+}
+
+
+% Шаблон для section-слайда
+\defbeamertemplate*{mysectionpage}{}{%
+ \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm)
+ {\usebeamercolor[fg]{section title}%
+ \usebeamerfont{section title}%
+ \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax%
+ \insertframetitle\par}%
+ \end{textblock*}%
+}
+
+% Шаблон для closing-слайда
+\defbeamertemplate*{myclosingpage}{}{%
+ \begin{textblock*}{\paperwidth}(\beamer@leftmargin, 12.5cm)
+ {\usebeamercolor[fg]{closing title}%
+ \usebeamerfont{closing title}%
+ \vskip \dimexpr \RobotoMediumBaselineGap - 9.5pt \relax%
+ \insertframetitle\par}%
+ \end{textblock*}%
+}
+
+\mode
+<all>
--- /dev/null
+\mode<presentation>
+
+% Frame title
+\defbeamertemplate*{frametitle}{gcr2019}[1][]
+{
+ \ifbeamer@sectionframe%
+ \usebeamertemplate{mysectionpage}%
+ \else\ifbeamer@closingframe%
+ \usebeamertemplate{myclosingpage}%
+ \else%
+ \nointerlineskip%
+ \begin{beamercolorbox}[wd=\paperwidth, leftskip=\beamer@leftmargin]{frametitle}
+ \usebeamerfont{frametitle}%
+ \vskip7.3mm% Визуально выравниваем однострочный заголовок по линии логотипа справа
+ \insertframetitle\par%
+ \vskip3mm%
+ \end{beamercolorbox}%
+ \fi\fi%
+}
+
+\mode<all>
--- /dev/null
+% Based on gcr2019 theme (https://github.com/schors/gcr2019theme)
+% Used backghround pictures from template https://confluence.postgrespro.ru/download/attachments/169509420/_PostgresPro_ШАБЛОН.odp?version=1&modificationDate=1675418955114&api=v2
+% and Gilroy font from https://oc.postgrespro.ru/index.php/s/oXFIYT9dLwLCle6
+\mode<presentation>
+
+% Requirement
+\RequirePackage{tikz}
+\RequirePackage[absolute,overlay]{textpos}
+\RequirePackage{calc}
+
+% Переопределяем размер слайда под фактический размер pdf-ного фона
+\geometry{paperwidth=960bp,paperheight=540bp}
+
+% Определяем параметры темы c и t определяющие вертиальную ориентацию текста на слайде. t -- по умолчанию
+\DeclareOptionBeamer{c}{\beamer@centeredtrue}
+\DeclareOptionBeamer{t}{\beamer@centeredfalse}
+\ExecuteOptionsBeamer{t}
+\ProcessOptionsBeamer
+
+% Settings
+\useinnertheme{PgPro2025}
+\useoutertheme{PgPro2025}
+\usecolortheme{PgPro2025}
+
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{blocks}[rounded][shadow=true]
+\setbeamertemplate{footline}{\vspace{1cm}}
+\setbeamersize{text margin left=1.33cm,text margin right=1.33cm}
+
+\mode<all>
--- /dev/null
+\makeatletter
+\def\input@path{{./themes.nonfree/PgPro2025}}
+\graphicspath{{./themes.nonfree/PgPro2025/bgpics}}
+\makeatother
+\usetheme{PgPro2025}
+