Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • latex/beamer-tpt-ng
  • dang-kien.pham/beamer-tpt-ng
2 results
Show changes
Commits on Source (105)
......@@ -5,5 +5,23 @@
*.out
*.snm
*.toc
*.nav
*.fls
*.bbl
*.blg
*.vrb
*~
*.bak
*.orig
*.rej
*.pdftex
*.pdftex_t
theme-tpt*.zip
example-*.pdf
example-presentation-slide2*
odgs/diag.pdf
svgs/drawing.pdf
debian/latex-theme*
debian/files
debian/*-stamp
debian/.debhelper
image: tarikgraba/debian-latex
stages:
- build
PDFS:
artifacts:
expire_in: 365 days
paths:
- example-presentation.pdf
stage: build
script:
- make
only:
- master
TOP = model.pdf
#
# Use this Makefile with GNU make.
#
TOP ?= example-presentation.pdf
TOP_NAME = $(patsubst %.pdf,%,$(TOP))
EXT = pdf log aux out bbl blg toc snm nav fdb_latexmk fls
STYS = $(wildcard texinputs/*.sty)
FIGS = $(wildcard figs/*.fig)
FIGS_PDF = $(patsubst %.fig,%.pdftex,$(FIGS))
......@@ -7,10 +14,13 @@ FIGS_PDF_T = $(patsubst %.fig,%.pdftex_t,$(FIGS))
SVGS = $(wildcard svgs/*.svg)
SVGS_PDF = $(patsubst %.svg,%.pdf,$(SVGS))
NEEDED = $(FIGS_PDF) $(FIGS_PDF_T) $(SVGS_PDF)
ODGS = $(wildcard odgs/*.odg)
ODGS_PDF = $(patsubst %.odg,%.pdf,$(ODGS))
TOP_NAME = $(patsubst %.pdf,%,$(TOP))
EXT = pdf log aux out bbl blg toc snm nav fdb_latexmk
NEEDED = $(FIGS_PDF) $(FIGS_PDF_T) $(SVGS_PDF) $(ODGS_PDF)
# Only for package documentation.
NEEDED_DOC = $(TOP_NAME)-slide2.pdf
PREVIEW_OPTS = \RequirePackage[active,delayed,tightpage,graphics,pdftex] {preview}
PREVIEW_OPTS += \PreviewMacro[{*[][]{}}]{\incode}
......@@ -19,31 +29,26 @@ export TEXINPUTS := ./texinputs/:$(TEXINPUTS)
#.SECONDARY: $(FIGS_PDF)
.PHONY: all clean toc bibetex
.PHONY: all clean dep preview
all: $(TOP)
$(TOP) : $(NEEDED)
$(TOP) : dep
%.pdf:%.tex
@echo "Latex search path $(TEXINPUTS)"
@latexmk -pdf $<
dep: $(NEEDED) $(NEEDED_DOC)
toc: $(TOP)
@pdflatex $(patsubst %.pdf,%.tex,$<)
bibtex: $(TOP)
@bibtex $(patsubst %.pdf,%,$<)
@pdflatex $(patsubst %.pdf,%.tex,$<)
@pdflatex $(patsubst %.pdf,%.tex,$<)
%.pdf:%.tex $(STYS)
@echo "LaTeX search path $(TEXINPUTS)"
@latexmk -pdf $<
preview: $(NEEDED)
preview: dep
pdflatex '$(PREVIEW_OPTS) \input{$(TOP_NAME).tex}'
clean:
@echo Cleaning $(TOP) and $(NEEDED)
@$(foreach ext,$(EXT),[ -e $(TOP_NAME).$(ext) ] && rm -f $(TOP_NAME).$(ext) || true;)
@$(foreach file,$(TOP_NAME) $(TOP_NAME)-slide2 preview texput,$(foreach ext,$(EXT),[ -e $(file).$(ext) ] && rm -f $(file).$(ext) || true;))
@rm -f $(NEEDED)
@$(foreach ext,$(EXT),[ -e preview.$(ext) ] && rm -f preview.$(ext) || true;)
@rm -f $(patsubst %.pdf, %.tex, $(NEEDED_DOC))
%.pdftex:%.fig
......@@ -55,4 +60,12 @@ clean:
pdf2swf $< && chmod -x $@
%.pdf:%.svg
inkscape --export-text-to-path -f $< --export-pdf=$@
inkscape --export-type=pdf -o $@ $<
%.pdf:%.odg
libreoffice --headless --convert-to pdf $< --outdir odgs
pdfcrop --margins 1 $@ $@
# Only for package documentation.
$(TOP_NAME)-slide2.tex : $(TOP_NAME).tex
@perl -pE 'if (m{^%+ Stop ici}i) { say "\\end{document}"; last; }' $< > $@
This repository contains a beamer theme plus an example build flow.
The build flow uses:
- pdflatex
- gnumake for automation
- inkscapeto generate pdf from svg files
- libreoffice to generate pdf from odg files
- xfig to generate pdf from fig files
**If you just want to use the theme and not interested in the rest, just copy:**
- the sty theme file `beamerthemetptng.sty`
- the pdf logos files
from the [`texinputs`](texinputs) directory.
latex-theme-tpt (0.9.2a-1) UNRELEASED; urgency=medium
* Fix default font search list.
-- Cedric Ware <cedric.ware@telecom-paristech.fr> Sat, 01 Aug 2020 10:37:43 +0200
latex-theme-tpt (0.9.2-1) UNRELEASED; urgency=medium
* New release.
* Implement LuaTeX and XeTeX compatibility.
-- Cedric Ware <cedric.ware@telecom-paristech.fr> Fri, 31 Jul 2020 22:23:50 +0200
latex-theme-tpt (0.9.1-2) UNRELEASED; urgency=medium
* Make dependency on tex-common more explicit, override version.
-- Cedric Ware <cedric.ware@telecom-paristech.fr> Fri, 31 Jul 2020 15:50:00 +0200
latex-theme-tpt (0.9.1-1) UNRELEASED; urgency=medium
* Initial debian packaging.
-- Cedric Ware <cedric.ware@telecom-paristech.fr> Tue, 28 Jul 2020 17:29:28 +0200
10
Source: latex-theme-tpt
Section: tex
Priority: optional
Maintainer: Cedric Ware <cedric.ware@telecom-paristech.fr>
Build-Depends: debhelper (>= 9.0.0), tex-common, texlive-pictures (>= 2016), texlive-latex-recommended (>= 2016), texlive-latex-extra (>= 2016), fig2dev, latex-make, latexmk
Standards-Version: 3.9.3
Package: latex-theme-tpt
Architecture: all
Depends: ${misc:Depends}, texlive-pictures (>= 2016), texlive-latex-recommended (>= 2016)
Recommends: fig2dev, latex-make
Suggests: texlive-latex-extra, latex-theme-tpt-doc-fr
Description: LaTeX package for Telecom Paris themes
LaTeX package for Telecom Paris presentations and posters.
Package: latex-theme-tpt-doc-fr
Architecture: all
Description: LaTeX package for Telecom Paris themes - documentation (French)
LaTeX package for Telecom Paris presentations and posters.
This is latex-theme-tpt, written and maintained by
Tarik Graba and Cédric Ware.
The latest version can be downloaded from:
https://gitlab.telecom-paris.fr/latex/beamer-tpt-ng
Copyright ⓒ Tarik Graba, Cédric Ware and Institut Mines-Télécom, 2007-2020.
All rights reserved. All logos are property of their respective institutions.
#! /usr/bin/make -f
#
# Use this Makefile with GNU make.
#
# Package name, and release information through include file.
# FIXME handle relative directories more robustly.
package = theme-tpt
include version.mk
# Default installation directories.
prefix = /usr/local
texmfdir = $(prefix)/share/texmf
texdir = $(texmfdir)/tex/latex/$(package)
picdir = $(texdir)
docdir = $(texmfdir)/doc/latex/$(package)
TOP ?= example-presentation.pdf
TOP_NAME = $(patsubst %.pdf,%,$(TOP))
# FIXME temporary: ignore poster .sty in $(STYS) until it is updated.
STYS_TMP = $(wildcard texinputs/*.sty)
STYS = $(filter-out %poster.sty, $(STYS_TMP))
LOGOS = $(wildcard texinputs/logo-*)
DOCS_PDF = $(TOP)# FIXME have list of compiled PDFs.
DOCS_TEX = $(patsubst %.pdf,%.tex,$(DOCS_PDF))
DOCS = $(DOCS_PDF) $(DOCS_TEX)
# Program names.
RELEASE_SCRIPT = debian/update-release
MKTEXLSR = mktexlsr
INSTALL = install
PERL = perl
ZIP = zip
.PHONY: install install-tex install-doc install-nomktexlsr
.PHONY: build-doc release deb zip
# Only for package installation and packaging.
# Build documentation (example files): use Makefile above.
# FIXME fix Makefile above, fix relative directories.
build-doc:
$(MAKE) all
# Install. Separate installation of TeX files and compiled docs.
install: install-nomktexlsr
$(MKTEXLSR) $(texmfdir)
install-nomktexlsr: install-tex install-doc
install-tex: $(STYS) $(LOGOS)
$(INSTALL) -d $(texdir)
$(INSTALL) -m 644 $(STYS) $(texdir)
$(INSTALL) -d $(picdir)
$(INSTALL) -m 644 $(LOGOS) $(picdir)
install-doc: build-doc
$(INSTALL) -d $(docdir)
$(INSTALL) -m 644 $(DOCS) $(docdir)
# Create new release.
# Usage: make release V=<x.y.z> D=<yyyy-mm-dd>. If V and D are not given,
# they will be calculated from the latest version-like tag
# (and incremented unless working copy is clean and at the tag).
V =
D =
NEW_RELEASE_V = $(patsubst %,-v %,$(V))
NEW_RELEASE_D = $(patsubst %,-d %,$(D))
release:
$(PERL) -i.orig $(RELEASE_SCRIPT) $(NEW_RELEASE_V) $(NEW_RELEASE_D) \
$(STYS) $(TOP_NAME).tex version.mk
# FIXME also handle debian/changelog.
# Create zip archive.
zip:
$(ZIP) $(package)-$(RELEASE_VERSION).zip $(STYS) $(LOGOS) $(DOCS)
# Create Debian package.
# FIXME auto-generate debian/latex-theme-tpt-doc-fr.links
deb:
dpkg-buildpackage -us -uc -b
#! /usr/bin/make -f
%:
dh $@ --with tex
override_dh_auto_install:
$(MAKE) -f $$(pwd)/debian/packaging.mk prefix=$$(pwd)/debian/latex-theme-tpt/usr install-tex
$(MAKE) -f $$(pwd)/debian/packaging.mk prefix=$$(pwd)/debian/latex-theme-tpt-doc-fr/usr install-doc
# dh_installtex adds a dependency to the currently-installed tex-common
# version, but we may want to install the package onto older systems.
override_dh_installtex:
dh_installtex
perl -pi.orig -E 's{(tex-common\s+)\((.*?)\)}{$${1}(>= 6.06)}g' \
debian/*.substvars
3.0 (quilt)
#! /usr/bin/env perl
#
# Filter calls to some LaTeX macros and others:
# \date{...} -> \date{date}
# \ProvidesPackage{...}[...] -> \ProvidesPackage{...}[date version]
# RELEASE_VERSION = ... -> RELEASE_VERSION = version
# RELEASE_DATE = ... -> RELEASE_DATE = date
#
# If you want to filter and replace files instead of stdin,
# invoke with perl -i.
#
# Version and date are either specified on the command line (-v, -d)
# or determined from Git tags and/or today's date. If the Git
# working copy in the current directory is clean and exactly at a
# version tag, use that version and commit date. Otherwise use
# a version number incremented from the last version tag,
# and today's date.
#
use 5.012;
use strict;
use warnings;
use FindBin;
use Date::Simple qw(date today);
use Getopt::Long qw(:config bundling);
# Function prototypes and global variables.
sub parse_options();
sub get_version_from_git();
sub get_date_from_git();
sub next_version($);
our ($version, $date);
#
# Program logic.
#
# Get options and version from Git tags.
# Increase version from Git tag unless working copy is exactly at this tag,
# in which case also get commit date of this tag.
parse_options();
my ($v, $c) = get_version_from_git() unless $version;
$v = next_version($v) if ($v && ! $c);
$version //= $v;
$version =~ s{^v?}{v}; # Make sure version starts with "v".
$date //= $c ? get_date_from_git() : today();
say STDERR "Updating to version $version, date $date.";
# Standard LaTeX date isn't ISO but uses slashes.
my $date_l = "$date";
$date_l =~ y{-}{/};
# Filter.
while (<>) {
s{^([^%]*)(\\(DTM)?date\s*)\{([^{}]*)\}}{${1}${2}\{$date\}}g;
s{^([^%]*)(\\(DTM)?date\s*)\[([^\[\]]*)\]}{${1}${2}\[$date\]}g;
s{(\\ProvidesPackage\s*\{([^{}]*)\}\s*)\[([^\[\]]*)\]
}{$1\[$date_l $version\]}gx;
s{^(RELEASE_VERSION\s*=\s*).*}{${1}$version};
s{^(RELEASE_DATE\s*=\s*).*}{${1}$date};
print;
}
# If working copy was previously in a clean state, check whether it still is.
# In which case everything is already up to date.
if ($c) {
my ($v, $c) = get_version_from_git();
if ($c) {
say STDERR "Everything already up to date.";
exit 0;
} else {
say STDERR "Bad version tag. Re-run script.";
exit 3;
}
}
# Say what to do now.
say STDERR <<EOT;
Now check that the version is correct, commit, and apply version tag:
\tgit status
\tgit commit -a
\tgit tag -a $version
\tgit push --follow-tags
EOT
exit 0;
#
# Functions.
#
sub parse_options() {
my $usage;
my $date_t;
GetOptions('help|h|?' => sub { $usage = 1; die('!FINISH'); },
'version|v=s' => \$version,
'date|d=s' => \$date_t)
or $usage = 1;
if ($version && $version !~ m{^v?\d([\d\w.-])*$}) {
say STDERR "Illegal version: '$version'";
$usage = 2;
}
if ($date_t) {
$date = date($date_t);
if (! $date) {
say STDERR "Illegal date: '$date_t'";
$usage = 2;
}
}
if ($usage) {
say STDERR "Usage: $FindBin::Script [-v <version>] [-d <YYYY-MM-DD>]";
exit $usage;
}
}
# Get version from Git tags.
# Returns ($version, $clean_at_tag).
sub get_version_from_git() {
#
# Last tag and working copy state. Use "git describe" to get
# latest tag matching "v<number>". If the working copy is not
# at this tag, it appends -<number of commits>-g<last commit hash>;
# it it is dirty, it appends "-*". Remove these parts, but note
# that the working copy is not at the tag.
#
my $clean_at_tag;
my $tag = `git describe --tags --always --dirty='-*' --match 'v[0-9]*'`;
chomp $tag;
if ($tag =~ m{((-+\d+-g[0-9a-f]+)?(-+\*)?)$}) {
$tag = $`;
$clean_at_tag = 1 if ($1 eq "");
} else {
$clean_at_tag = 1;
}
return ($tag, $clean_at_tag);
}
# Get date of Git last commit (as Date::Simple object).
sub get_date_from_git() {
my $commit_date =
`git --no-pager log -1 --date=short --pretty=format:\%cd HEAD`;
my $d = date($commit_date)
or die("Git returned invalid date '$commit_date'");
return $d;
}
#
# Increase version number.
#
sub next_version($) {
my ($v) = @_;
my @items = split(m{\b}, $v);
# Increment the last part of the version.
$items[-1]++;
# Make sure the version has at least 2 parts, and starts with "v".
push @items, ".", "0" if ($#items < 2);
$v = join "", @items;
$v =~ s{^v?}{v};
return $v;
}
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% beamer theme
\mode<presentation>
% Use this if you want to display "Université Paris Saclay"'s logo
%\usetheme[logosaclay]{tptposter}
\usetheme{tptposter}
\title{Simon from a side channel perspective}
\author{Me, MySelf and I}
\date{xx. ss, 2014}
\email{tarik.graba@telecom-paris.fr}
\myurl{http://www.telecom-paris.fr}
% Conf logo at the right of the title block
\mylogo{\includegraphics[width=.6\textwidth]{logo-cnrs}}
\begin{document}
\begin{frame}[t]
%% first column
\begin{columns}
\begin{column}{.45\textwidth}
Write something here
\begin{block}{Truc}
\begin{itemize}
\item Foo
\item Bar
\item Foo Bar
\end{itemize}
\end{block}
\medskip
Write something here
\begin{block}{Truc}
Foo
\end{block}
\end{column}
%% Second column
\begin{column}{.45\textwidth}
Write something else here
\begin{block}{Truc}
bar
\end{block}
\medskip
Write something else here
\begin{block}{Truc}
bar
\end{block}
\end{column}
\end{columns}
\end{frame}
\end{document}
\documentclass[aspectratio=169]{beamer}
% Codage. Ajuster en fonction de votre éditeur. Supprimer avec LuaTeX.
\usepackage[utf8]{inputenc}
% Thème Beamer Télécom Paris. Nombreuses options disponibles,
% cf. commentaires ci-dessous et slides de démonstration dans
% corps du document.
\mode<presentation>
\usetheme{tptng}
% Les options s'utilisent via \usetheme ci-dessus, ou bien via \tptthemekeys.
% P.ex. \tptthemekeys{visual} est équivalent à \usetheme[visual]{tptnew}.
%
% Options simples :
%
% • official (défaut) copie fidèlement la charte graphique officielle.
% • visual rend la charte plus lisible, notamment le contraste des gris.
% • slim réduit l'encombrement du titre des frames.
% • nohelvet garde les polices par défaut.
% • latex garde les polices par défaut et les symboles de navigation Beamer.
% Vous pouvez aussi ajuster les marges en décommentant :
% \setbeamersize{text margin left=1cm, text margin right=1cm}
% Gestion des fontes. Attention, le code à utiliser dépend du moteur TeX.
\iftptusefontspec
% Utiliser ce code avec LuaTeX et XeLaTeX.
\setmonofont{inconsolata}% Police monospace (p.ex. pour l'adresse mail).
\else
% Utiliser ce code avec pdfTeX et le vieux TeX original.
\usepackage[T1]{fontenc}
%\usepackage{lmodern}% Recommandé si vous activez l'option latex ou nohelvet.
\usepackage{inconsolata}% Police monospace (p.ex. pour l'adresse mail).
\fi
% Gestion des images. Le thème a déjà chargé graphicx. Pour préciser
% les dossiers où se trouvent les images, et ne pas avoir à spécifier
% leur extension dans les noms de fichiers :
\graphicspath{{images/}{pdfs/}{figs/}{svgs/}{odgs/}}
\DeclareGraphicsExtensions{.fig,.pdf,.png,.jpg}
% Pour insérer directement des images au format .fig :
\usepackage{figlatex}
% Divers : typographie française, gestion des tables,
% programmation de dessins, calcul de longueurs, date, texte de remplissage.
% Supprimez ce dont vous n'avez pas besoin.
\usepackage[french]{babel}
\usepackage[babel]{microtype}
\usepackage{booktabs}
\usepackage{tikz}
\usepackage{calc}
\usepackage[useregional]{datetime2}
\usepackage{lipsum}
%%------------------------------------------------------------------------------
% Faire apparaître le plan à chaque section et sous-section :
\AtBeginSection[]{
\contentsframe[currentsection]
}
\AtBeginSubsection[]{
\contentsframe[currentsection,currentsubsection]
}
% Avec un autre nom que «Table des matières» en français.
\renewcommand*{\contentsframename}{Plan}
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
\title{Test titre}
\subtitle{Test sous-titre}
\author{Wolfgang Amadeus Mozart}
\email{not.beethoven@telecom-paris.fr}
\institute{Une école de l'IMT}
\date[2020-08-01]{Le \DTMdate{2020-08-01}}% Ou simplement \date{\today}.
% Logo additionnel sur la page de titre (pour une conf ou un évènement).
%\logotitleextra*[width=2cm]{logo-cnrs}
%------------------------------------------------------------------------------
\begin{document}
\maketitle
\begin{frame}
\frametitle{Présentation standard}
\begin{itemize}
\item Charte graphique officielle :
\begin{itemize}
\item Boîtes en bas de page
\item Frise de titre du frame
\item Police Helvetica (ou Dinot)
\item Logo Télécom Paris + IP Paris
\end{itemize}
\item Rupture avec la tradition \LaTeX{} :
\begin{itemize}
\item Police imposée
\item Pas de symboles de navigation Beamer
\end{itemize}
\end{itemize}
\end{frame}
%% Stop ici pour la documentation (voir Makefile).
{
\tptthemekeys{latex,visual,slim,framecount}
\begin{frame}
\frametitle{Présentation \LaTeX{}ifiée et plus lisible}
\begin{itemize}
\item Option ``\texttt{latex}'' :
\begin{itemize}
\item Police Computer Modern ou Latin Modern
\item Symboles de navigation Beamer
\item Puces Beamer
\end{itemize}
\item Option ``\texttt{visual}'' :
\begin{itemize}
\item Gris plus foncé pour plus de contraste
\end{itemize}
\item Option ``\texttt{slim}'' :
\begin{itemize}
\item Réduit l'encombrement vertical
\end{itemize}
\item Option ``framecount'' :
\begin{itemize}
\item Affiche le nombre total de pages avec le nº
\end{itemize}
\item Autres options disponibles, voir la suite !
\end{itemize}
\end{frame}
}
% On doit recalculer les dimensions quand on a touché à l'en-tête
% ou au pied de page.
\tptcalculateheadfoot
%------------------------------------------------------------------------------
\section[Options]{Démonstration des options}
%------------------------------------------------------------------------------
\subsection[simples]{Options simples}
%------------------------------------------------------------------------------
{
\tptthemekeys{navsymbols=right}
\begin{frame}
\frametitle{Avec polices symboles Beamer alignés à droite}
\lipsum[1]
\end{frame}
}
{
\tptthemekeys{infolines}
\setbeamercolor{section in head/foot}{bg=tptred!20!white}
\setbeamercolor{subsection in head/foot}{bg=gray!50!white}
\begin{frame}
\frametitle{Avec les sections en en-tête}
\framesubtitle{(Active automatiquement l'option \texttt{slim})}
\lipsum[2]
\end{frame}
}
{
\tptthemekeys{logosaclay}
\begin{frame}
\frametitle{Avec le logo de Paris-Saclay}
\framesubtitle{(Par exemple pour des masters partagés)}
\lipsum[3]
\end{frame}
}
{
\tptthemekeys{logoipp}
\begin{frame}
\frametitle{Avec le logo de l'IP Paris séparé}
\framesubtitle{(pour compatibilité ascendante)}
\lipsum[4]
\end{frame}
}
{
\tptthemekeys{logotp}
\begin{frame}
\frametitle{Avec le logo de Télécom Paris sans celui de IP Paris}
\framesubtitle{(trop d'affiliations?)}
\lipsum[4]
\end{frame}
}
{
\tptthemekeys{footeraffiliation}
\setlength{\footerlogoheight}{2em}
\setlength{\footerlogoyshift}{0pt}
\logofootermain*{logo-tp}% Avec * : insère automatiquement \includegraphics.
\logofooteraffiliation{% Sans * : code brut.
\hspace*{\footlinespacing}%
\textcolor{green!50!black}{\raisebox{\fboxsep}{\fbox{\huge X}}}}
\begin{frame}
\frametitle{Avec n'importe quel logo d'affiliation}
\lipsum[4]
\end{frame}
}
\tptcalculateheadfoot
%------------------------------------------------------------------------------
\subsection[complexes]{Options complexes}
%------------------------------------------------------------------------------
{
\tptthemekeys{bodyframecount,slim}
\setlength{\tptbottomboxesheight}{6pt}
\setlength{\tptbottomboxesbase}{1pt}
\setlength{\tptbottomboxesmargin}{2pt}
\setlength{\tptframetitlefriezeheight}{6pt}
\setlength{\tptframetitlefriezewidth}{24pt}
\setlength{\footerlogoheight}{3em}
\setlength{\footerlogoyshift}{-2pt}
\setbeamercolor{frametitle}{fg=blue,bg=cyan!50!white}
\setbeamercolor{structure}{fg=blue}
\setbeamercolor{page in head/foot}{bg=blue}
\tptcalculateheadfoot
\begin{frame}
\frametitle{Moins encombré, et avec le nombre de pages
(... et d'autres couleurs !)}
\lipsum[5]
\end{frame}
}
\tptcalculateheadfoot
{
\tptthemekeys{align frametitle=subtitle bottom baseline}
\begin{frame}
\frametitle{Avec la frise alignée...}
\framesubtitle{... sur le sous-titre, voir la ligne%
\llap{\rule{20em}{0.4pt}}}
\lipsum[6]
\end{frame}
}
%------------------------------------------------------------------------------
\section[1e] { 1e Section }
%------------------------------------------------------------------------------
\subsection[1su] { Sous section 1 : texte}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{First Frame}
\begin{itemize}
\item \lipsum[7][1]
\begin{itemize}
\item \lipsum[7][2]
\item \lipsum[7][3]
\end{itemize}
\item \lipsum[7][4]
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Another Frame}
\framesubtitle{sub title}
\begin{itemize}
\item \lipsum[8][1]
\begin{itemize}
\item \lipsum[8][2]
\item \lipsum[8][3]
\end{itemize}
\item \lipsum[8][4]
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\subsection { Sous section 2 : illustrations}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Another Frame}
\begin{center}
\includegraphics[width=\textwidth]{cycii_PLL}
\end{center}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Another Frame from an \texttt{odg}}
\begin{center}
\includegraphics[height=.8\textheight,width=\textwidth,keepaspectratio]{diag}
\end{center}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an SVG illustration}
\begin{center}
\includegraphics[height=.8\textheight]{drawing}
\end{center}
\end{frame}
%------------------------------------------------------------------------------
\ifxetex\else% FIXME figlatex passe mal avec XeTeX.
\begin{frame}
\frametitle{Another Frame : Fig illustration}
\begin{center}
\includegraphics[width=\textwidth]{fpga-dff}
\end{center}
\end{frame}
\fi
%------------------------------------------------------------------------------
\section[2e] { 2e Section : blocs }
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Block Frame}
\begin{block}{This is a block}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{block}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{AlertBlock Frame}
\begin{alertblock}{This is a block}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{alertblock}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Parfois le bloc dépasse...}
\begin{alertblock}{This is a block}
\lipsum[9-12]
\end{alertblock}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}[plain]
\frametitle{... mais on peut toujours désactiver le pied de page}
\begin{alertblock}{This is a block}
\lipsum[13-16]
\end{alertblock}
\end{frame}
%------------------------------------------------------------------------------
\section{\appendixname : Documentation pour usage avancé}
%------------------------------------------------------------------------------
\appendix
\tptthemekeys{slim,bodyframecount}
\begin{frame}
\frametitle{Autres options}
\begin{itemize}
\item \texttt{bodyframecount} affiche le nombre total de pages
\emph{hors annexe} (regardez ci-dessous et le frame suivant
pour voir la différence).
\item \texttt{navsymbols=left|center|right} active les symboles de
navigation et spécifie leur alignement latéral (défaut \texttt{left}).
\item \texttt{nonavsymbols} désactive les symboles de navigation.
\item \texttt{align frametitle=}<\textrm{\textit{option}}> spécifie
l'alignement vertical du titre du frame par rapport à la frise :
\begin{itemize}
\item \texttt{baseline} : 1\textsuperscript{re} ligne du titre ;
\item \texttt{bottom baseline} : dernière ligne du titre ;
\item \texttt{bottom} : dessous du titre (pas pareil que la
baseline p.\,ex.\ avec un p ou un g) ;
\item \texttt{subtitle bottom, subtitle bottom baseline}
comme \texttt{bottom} et \texttt{bottom baseline} mais
avec le sous-titre.
\end{itemize}
\item \texttt{frametitle yshift=}<\textrm{\textit{dimension}}> :
ajuste l'alignement vertical du titre du frame.
\item \texttt{frametitle yshift if subtitle=}<\textrm{\textit{dimension}}> :
comme \texttt{frametitle yshift} mais seulement en présence
d'un sous-titre.
\end{itemize}
\end{frame}
\tptthemekeys{framecount,noslim}
\begin{frame}
\frametitle{Dimensions modifiables}
\newcommand*\Xtt{\ttfamily\textbackslash}
\hspace*{-2cm}%
\begin{tikzpicture}[scale=0.5,font=\tiny,>=stealth]
%
% On inclut un frame standard précompilé.
\node [draw,dotted,above right,inner sep=0pt] (slide) at (0,0) {%
\includegraphics[width={0.5\paperwidth - 1pt},page=2]{%
example-presentation-slide2.pdf}%
};
%
% On cache le texte pour éviter la distraction.
\fill[white,opacity=0.7]
(0.5em,\footerlogoheight) rectangle (0.8\paperwidth,0.8\paperheight)
(slide.north west)
++(1.01\tptframetitlefriezewidth,-0.8\tptframetitlefriezesep)
rectangle +(0.5\paperwidth,-0.2\paperheight);
\foreach \c in {%
east,north east,north,north west,west,south west,south,south east} {%
\coordinate (\c) at (slide.\c);
}
%
% Quelques coordonnées.
\path
(south west)
+(-3,0) coordinate (xlines)
+(-1.5,0) coordinate (xlines2)
(north west)
++(0,-\tptframetitlefriezesep) coordinate (frametitlefriezesep)
++(0,-\tptframetitlefriezeheight) coordinate (frametitlefriezeheight)
+(0,-\tptframetitledepth) coordinate (frametitledepth)
++(0.98\tptframetitlefriezewidth,0) coordinate (frieze right)
++(\tptframetitlesep,0) coordinate (frametitle text)
(south west) ++(0,\tptbottomboxesmargin) coordinate (bottomboxesmargin)
+(2,\tptbottomboxesbase) coordinate (bottomboxesbase)
++(0,\tptbottomboxesheight) coordinate (bottomboxesheight)
++(\tptleftbottomboxwidth,0) coordinate (leftbottomboxwidth)
++(\tptbottomboxsep,0) coordinate (bottomboxsep)
++(\tptmidbottomboxwidth,0) coordinate (midbottomboxwidth)
(south east)
+(0.8,0) coordinate (xlines3)
+(1.5,0) coordinate (xlines4)
++(0,\tptbottomboxesmargin) coordinate (logo base)
++(0,\footerlogoyshift) coordinate (footerlogoyshift)
++(0,\footerlogoheight) coordinate (footerlogoheight)
(north west)
++(\tptframetitlefriezewidth,-\tptframetitlefriezesep)
coordinate (frametitlefriezewidth)
++(\tptframetitlesep,0) coordinate (frametitlesep)
;
%
% On trace les lignes indicatrices côté gauche.
\foreach \y/\sh/\xline in {%
south west/-0.5/,bottomboxesmargin/0/,%
bottomboxesbase/0.5/2,bottomboxesheight/1.5/,%
north west/0.2/,frametitlefriezesep/0/,%
frametitlefriezeheight/-0.2/,frametitledepth/-0.5/%
} {
\draw (\y) ++(0,\sh) coordinate (tmp)
(tmp -| xlines\xline) coordinate (endpoint \y)
-- (tmp -| -1,0) -- (\y -| -0.3,0) -- (\y);
}
%
% On indique les dimensions côté gauche.
\foreach \yone/\ytwo/\dir/\prefix in {%
south west/bottomboxesmargin/->/tpt,%
bottomboxesmargin/bottomboxesbase/->/tpt,%
bottomboxesmargin/bottomboxesheight/->/tpt,%
north west/frametitlefriezesep/<-/tpt,%
frametitlefriezesep/frametitlefriezeheight/<-/tpt,%
frametitlefriezeheight/frametitledepth/<-/tpt%
} {
\draw[\dir,transform canvas={xshift=3pt}]
(endpoint \yone -| endpoint \ytwo) -- node[left] {\Xtt\prefix\ytwo}
(endpoint \ytwo);
}
%
% On trace les lignes indicatrices côté droit.
\draw
(logo base) -- (logo base -| xlines3) coordinate (endpoint logo base)
(footerlogoyshift) ++(0.2,-0.5) coordinate (tmp)
(tmp -| xlines3) coordinate (endpoint footerlogoyshift)
(tmp -| xlines4) -- (endpoint footerlogoyshift)
-- ++(-0.5,0) -- (tmp |- footerlogoyshift) -- (footerlogoyshift)
(footerlogoheight)
-- (footerlogoheight -| xlines4) coordinate (endpoint footerlogoheight);
%
% On indique les dimensions côté droit.
\draw[->,transform canvas={xshift=-3pt}]
(endpoint logo base -| endpoint footerlogoyshift)
-- node[right] {\Xtt footerlogoyshift} (endpoint footerlogoyshift);
\draw[->,transform canvas={xshift=-3pt}]
(endpoint footerlogoyshift -| endpoint footerlogoheight)
-- node[right] {\Xtt footerlogoheight} (endpoint footerlogoheight);
%
% On trace les lignes indicatrices verticales.
\foreach \x/\dy in {%
leftbottomboxwidth/2.1,midbottomboxwidth/0.6,%
frametitlefriezewidth/1.4,frametitlesep/0.5} {
\draw (\x) -- +(0,\dy) coordinate (endpoint \x);
}
%
% Quelques indicatrices et coordonnées à la main.
\draw
(north west) -- +(0,1) coordinate (endpoint frieze left)
(bottomboxesheight) +(0,2) coordinate (endpoint leftbottombox)
(bottomboxsep) ++(0.5,1.2) coordinate (endpoint bottomboxsep)
++(0,-0.9) coordinate (tmp)
(bottomboxsep) -- ++(0,0.2) -- (tmp) -- (endpoint bottomboxsep);
%
% On indique les dimensions horizontales.
\foreach \xone/\xtwo/\nodefill/\dy in {%
leftbottombox/leftbottomboxwidth/white/2pt,%
leftbottomboxwidth/bottomboxsep/white/2pt,%
bottomboxsep/midbottomboxwidth/none/0pt,%
frieze left/frametitlefriezewidth/none/0pt,%
frametitlefriezewidth/frametitlesep/none/0pt%
} {%
\draw[->,transform canvas={yshift=-3pt}]
(endpoint \xone |- endpoint \xtwo)
node [above right,fill=\nodefill,yshift=\dy] {\Xtt tpt\xtwo}
-- (endpoint \xtwo);
}
\end{tikzpicture}
\end{frame}
\end{document}
File moved
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[french]{babel}
\usepackage{booktabs}
% Quelle fontes de caractères
%\usepackage{lmodern}
\usepackage{inconsolata}
% pour insérer directement des fig
\usepackage{figlatex}
% où se trouvent les images
\graphicspath{{images/}{pdfs/}{figs/}{svgs/}}
% pour ne pas mettre l'extension des images
\DeclareGraphicsExtensions{.fig,.pdf,.png,.jpg}
% beamer theme
\mode<presentation>
% If you want headline with section list
%\usetheme[infolines]{tptnew}
\usetheme{tptnew}
%%------------------------------------------------------------------------------
%% Faire apparaitre le plan à chaque section
\AtBeginSection[]
{
\begin{frame}<beamer>
\frametitle{Plan}
\tableofcontents[currentsection]
\end{frame}
}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{Plan}
\tableofcontents[currentsubsection]
\end{frame}
}
%------------------------------------------------------------------------------
%------------------------------------------------------------------------------
\title{Test}
\subtitle{model}
\author{Graba Tarik}
\institute{ TELECOM ParisTech }
\dept{COMELEC--SEN}
\date{}
%------------------------------------------------------------------------------
\begin{document}
\maketitle
%------------------------------------------------------------------------------
\section[1e] { 1e Section }
%------------------------------------------------------------------------------
\subsection[1su] { Sous section 1}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{First Frame}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an other Frame}
\framesubtitle{sub title}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an other Frame}
\begin{center}
\includegraphics[width=\textwidth]{cycii_PLL}
\end{center}
\end{frame}
%------------------------------------------------------------------------------
\subsection { Sous section 2}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an other Frame}
\begin{center}
\includegraphics[width=\textwidth]{fpga_dff}
\end{center}
\end{frame}
%------------------------------------------------------------------------------
\section[2e] { 2e Section }
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{First Frame}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\subsection { Sous section 1}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an other Frame}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\subsection { Sous section 2}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{an other Frame}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{frame}
%------------------------------------------------------------------------------
\section[3e] { 3e Section }
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{Block Frame}
\begin{block}{This is a block}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{block}
\end{frame}
%------------------------------------------------------------------------------
\begin{frame}
\frametitle{AlertBlock Frame}
\begin{alertblock}{This is a block}
\begin{itemize}
\item bla bla bla
\begin{itemize}
\item bla bla bla
\item bla bla bla
\end{itemize}
\item bla bla bla
\end{itemize}
\end{alertblock}
\end{frame}
\end{document}
File added
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="396.6875"
height="396.71875"
id="svg2">
<defs
id="defs4">
<filter
x="-0.12120201"
y="-0.10211594"
width="1.242404"
height="1.2042319"
color-interpolation-filters="sRGB"
id="filter3783">
<feGaussianBlur
id="feGaussianBlur3785"
stdDeviation="14.921081" />
</filter>
</defs>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-116.65625,-223.28125)"
id="layer1">
<rect
width="395.71429"
height="395.71429"
x="117.14286"
y="223.79076"
id="rect2985"
style="fill:#00ff00;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="m 315.71429,433.79076 c -292.857151,134.28571 -108.57143,-305.71429 10,-30 -34.28572,-315.714292 240,-75.71429 18.57143,28.57142 C 597.14286,403.79076 332.85714,798.07643 340,450.93361 287.14286,795.21933 97.142859,422.36218 315.71429,433.79076 z"
id="path3773"
style="opacity:0.95102042;fill:#ffffff;stroke:#808080;stroke-width:16.10000038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3783)" />
<path
d="m 315.71429,433.79076 c -292.857151,134.28571 -108.57143,-305.71429 10,-30 -34.28572,-315.714292 240,-75.71429 18.57143,28.57142 C 597.14286,403.79076 332.85714,798.07643 340,450.93361 287.14286,795.21933 97.142859,422.36218 315.71429,433.79076 z"
id="path2987"
style="opacity:0.66122448;fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
x="-308.68051"
y="534.46301"
transform="matrix(0.58217865,-0.8130609,0.8130609,0.58217865,0,0)"
id="text2987"
xml:space="preserve"
style="font-size:80.55227661px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;opacity:0.64897958;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Sans"><tspan
x="-308.68051"
y="534.46301"
id="tspan2989"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#0000ff;font-family:TeX Gyre Heros;-inkscape-font-specification:TeX Gyre Heros">Foo Bar</tspan></text>
</g>
</svg>
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{beamerthemetptnew}[2011/11/15]
\RequirePackage{xcolor}
\RequirePackage{helvet}
\mode<presentation>
\newif\iftpt@infolines\tpt@infolinesfalse
\DeclareOption{infolines}{\tpt@infolinestrue}
\ProcessOptions
%
% Extra metadata commands: \email, \dept.
%
\newcommand\email[1]{\gdef\insertemail{#1}}
\email{}
\newcommand\dept[1]{\gdef\insertdept{#1}}
\dept{}
\pgfdeclareimage[width=\paperwidth,height=\paperheight]{BgdFirst}{fond.pdf}
\newcommand\logoheight{1cm}
\pgfdeclareimage[width=\logoheight]{logoTPT}{tpt}
\logo{\pgfuseimage{logoTPT}}
%
% Fonts and colors.
%
\definecolor{tptred}{RGB}{191,18,56}
\definecolor{tptbrown}{RGB}{109,80,71}
\setbeamercolor{frametitle}{fg=tptred,bg=white}
\setbeamercolor{structure}{fg=tptred}
\setbeamercolor{title}{bg=white,fg=black}
\setbeamercolor{subtitle}{bg=white,fg=black!40}
\setbeamercolor{author in title frame}{bg=white,fg=black!40}
\setbeamercolor{mail in title frame}{bg=white,fg=black!40}
\setbeamercolor{date in title frame}{bg=white,fg=black!40}
\setbeamercolor{date in head/foot}{fg=white,bg=tptbrown}
\setbeamercolor{page in head/foot}{fg=white,bg=tptred}
\setbeamercolor{dept in head/foot}{fg=white,bg=black}
\setbeamercolor{author in head/foot}{fg=white,bg=tptbrown}
\setbeamercolor{section in head/foot}{bg=white,fg=tptred}
\setbeamercolor{subsection in head/foot}{bg=white,fg=tptbrown}
\setbeamercolor{title in head/foot}{fg=white,bg=tptbrown}
\setbeamercolor{block title}{parent=structure,bg=normal text.bg!75!tptbrown}
\setbeamercolor{block body}{bg=normal text.bg!98!tptbrown}
\setbeamercolor{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!75!normal text.fg,bg=normal text.bg!75!tptred}
\setbeamercolor{block body alerted}{bg=normal text.bg!95!tptred}
\setbeamerfont{title}{size*={14}{16},series=\bfseries}
\setbeamerfont{subtitle}{size*={10}{14},series=\bfseries}
\setbeamerfont{author in title frame}{size*={10}{12}, family=\sffamily}
\setbeamerfont{email in title frame}{size*={8}{10},family=\ttfamily}
\setbeamerfont{date in title frame}{size*={8}{10}, family=\sffamily}
\setbeamerfont{date in head/foot}{size*={6}{7},series=\bfseries}
\setbeamerfont{page in head/foot}{size*={5}{6},series=\bfseries}
\setbeamerfont{dept in head/foot}{size*={6}{7},series=\bfseries}
\setbeamerfont{author in head/foot}{size*={6}{7},series=\bfseries}
\setbeamerfont{frametitle}{size*={14}{18},series=\bfseries}
%% Décomenter pour faire disparaitre les symboles de navigation
%\setbeamertemplate{navigation symbols}{}
%
% Title page.
%
\defbeamertemplate*{title page}{tpt default}%
{
\vbox{}%
\vfill%
\hfill%
\begin{minipage}[r]{.63\textwidth}
\raggedright%
{\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par}%
\ifx\insertsubtitle\@empty%
\else%
{%
\vspace{.1\textheight}%
\usebeamercolor[fg]{subtitle}\usebeamerfont{subtitle}\insertsubtitle\par
}%
\fi%
\vspace{.1\textheight}%
\usebeamercolor[fg]{author in title frame}\usebeamerfont{author in title frame}\insertauthor\par%
\usebeamercolor[fg]{email in title frame}\usebeamerfont{email in title frame}\insertemail\par%
\usebeamercolor[fg]{date in title frame}\usebeamerfont{date in title frame}\insertdate\par%
\end{minipage}%
\vfill%
}
\def\maketitle{%
{
%\usebackgroundtemplate{\includegraphics[width=\paperwidth]{fond.pdf}}
\usebackgroundtemplate{\pgfuseimage{BgdFirst}}
\ifbeamer@inframe
\titlepage
\else
\begin{frame}[plain]
\titlepage
\end{frame}
\fi
}
}
\defbeamertemplate*{sidebar right}{tpt default} {}
%%% Bas de page
\defbeamertemplate*{footline}{tpt default}
{%
\leavevmode%
\vskip 2pt%
\begin{beamercolorbox}[left, wd=.9\paperwidth, ht=.3cm]{}
\usebeamertemplate***{navigation symbols}%
\end{beamercolorbox}
\vskip -14pt%
\hbox{%
\begin{beamercolorbox}[left,wd=.15\paperwidth,ht=.3cm,dp=1.5ex]{page in head/foot}%
\hspace*{3ex}%
\usebeamerfont{author in head/foot}\insertframenumber{}/\inserttotalframenumber%
\hfill{}%
\end{beamercolorbox}%
\hspace*{1ex}%
\hfill{}%
\begin{beamercolorbox}[wd=.27\paperwidth,ht=.3cm,dp=1.5ex,leftskip=1em,rightskip=1em]{dept in head/foot}%
\hfill{}%
\insertdept%
\hfill{}\hfill{}%
\end{beamercolorbox}%
\hspace*{1ex}%
\hfill{}%
\begin{beamercolorbox}[wd=.45\paperwidth,ht=.3cm,dp=1.5ex,leftskip=.3cm,rightskip=1ex]{title in head/foot}%
\usebeamerfont{author in head/foot}\insertshortauthor%
\hfill{}%
\usebeamerfont{date in head/foot}\insertshortdate%
\end{beamercolorbox}
\hspace*{1ex}%
\hfill{}%
\raisebox{-1.5ex}{\insertlogo}% le logo
}%
\vskip3pt%
}
%%%% En tête
% Frame title
\defbeamertemplate*{frametitle}{tpt default}[1][left]
{
\ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
\@tempdima=\paperwidth%
\advance\@tempdima by -1.95cm% les 3 blocs de couleur
\advance\@tempdima by -3ex%
\begin{beamercolorbox}[sep=0cm,#1,wd=\paperwidth]{frametitle}
\usebeamerfont{frametitle}%
\if@tempswa\else\csname beamer@fte#1\endcsname\fi%
\begin{minipage}[b]{1.95cm}
\iftpt@infolines\vspace*{.15cm}\else\vspace*{.5cm}\fi
\mbox{%
\begin{beamercolorbox}[wd=0.65cm,ht=.5cm]{page in head/foot}\hfill{}\end{beamercolorbox}%
\begin{beamercolorbox}[wd=0.65cm,ht=.5cm]{dept in head/foot}\hfill{}\end{beamercolorbox}%
\begin{beamercolorbox}[wd=0.65cm,ht=.5cm]{author in head/foot}\hfill{}\end{beamercolorbox}%
}\par%
\end{minipage}
\hspace*{1ex}
\begin{minipage}[c]{\@tempdima}
\ifx\insertframesubtitle\@empty%
\strut\insertframetitle\strut\par%
\else%
\strut\insertframetitle\strut\par%
\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\insertframesubtitle\strut\par
\fi
\end{minipage}
\vskip-1ex%
\if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
\end{beamercolorbox}%
}
\defbeamertemplate*{headline}{tpt default}
{
\iftpt@infolines
\leavevmode%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}%
\insertsectionnavigationhorizontal{.5\paperwidth}{\hskip0pt plus1filll}{}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}%
\insertsubsectionnavigationhorizontal{.5\paperwidth}{}{\hskip0pt plus1filll}%
\end{beamercolorbox}%
%\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{page in head/foot}\hfill{}\end{beamercolorbox}%
%\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{dept in head/foot}\hfill{}\end{beamercolorbox}%
%\par\begin{beamercolorbox}[wd=\paperwidth,ht=1pt]{author in head/foot}\hfill{}\end{beamercolorbox}%
\fi%
}
%
% Itemize labels.
%
\defbeamertemplate*{itemize item}{tpt}{%
\raise0.2ex\hbox{\vrule width 1ex height 1ex}%
}
\defbeamertemplate*{itemize subitem}{tpt}{\textbullet}
\defbeamertemplate*{itemize subsubitem}{tpt}{--}
% .. from tptthemtheme?
% Contents frame (FIXME part frame option).
%
\providecommand*{\contentsframe}[1][]{%
\begin{frame}
\frametitle{Plan}% FIXME languages.
\tableofcontents[#1]
\end{frame}
}
\mode<all>
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{beamerthemetptng}[2020/08/01 v0.9.2a]
% Utilisation de pgfkeys/pgfopts pour la gestion des options,
% et définition de raccourcis.
\RequirePackage{pgfopts}
\newcommand\tptthemekeys[1]{\pgfqkeys{/tpt theme}{#1}}
\newcommand\tptthemevalueof[1]{\pgfkeysvalueof{/tpt theme/#1}}
% Besoin de savoir si on compile avec XeLaTeX ou LuaLaTeX,
% notamment pour la gestion des polices avec fontspec.
\RequirePackage{iftex}
\newif\iftptusefontspec
\tptusefontspecfalse
\ifluatex\tptusefontspectrue\fi
\ifxetex\tptusefontspectrue\fi
% On charge le thème infolines (puis on le désactive) pour que ses
% templates soient disponibles.
\RequirePackage{beamerouterthemeinfolines}
\setbeamertemplate{headline}[default]
\setbeamertemplate{footline}[default]
\setbeamersize{text margin left=24mm,text margin right=8mm}
% Désactivation de la sidebar par défaut, packages divers.
\defbeamertemplate*{sidebar right}{tpt default}{}
\RequirePackage{pgffor}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
% Options du package.
\newif\iftpt@navsymbols\tpt@navsymbolstrue
\newif\iftpt@titleaffiliation\tpt@titleaffiliationfalse
\newif\iftpt@footeraffiliation\tpt@footeraffiliationfalse
\newif\iftpt@textheighthack\tpt@textheighthacktrue
\tptthemekeys{%
%
% On définit ici ce que font les options, mais on ne les traitera
% qu'à la fin du package : comme la plupart spécifient des macros
% ou templates Beamer non encore définis, on attend qu'ils le soient.
% Donc ne pas spécifier ici de valeurs par défaut pour celles-là.
%
% Option official par défaut : pas de symboles de navigation,
% logo Télécom avec endossement IP Paris, affiliation IMT dans
% la page de titre, pas de nombre total de pages.
official/.style={%
helvet,nonavsymbols,noslim,framecount=false,logoofficial},
logoofficial/.style={footeraffiliation=false,titleaffiliation,logoofficial@},
logoofficial@/.code={%
\logofootermain*{logo-tp-ipp.pdf}%
\logotitle*{logo-tp-ipp.pdf}%
\logotitleaffiliation*{logo-IMT.pdf}%
\setlength{\footerlogoheight}{0.155\paperheight}%
\setlength{\footerlogoyshift}{-1.5pt}%
},
%
% latex : garde les polices et symboles Beamer par défaut.
latex/.style={navsymbols,nohelvet,latex@},
latex@/.code={\setbeamertemplate{itemize items}[default]},
%
% visual : utilise un gris plus foncé pour les boîtes et sous-titre.
visual/.code={%
\colorlet{tptgray}{black!60}%
{\usebeamercolor{title in head/foot}}% Needed to reset frame title frieze.
},
%
% slim : réduit l'encombrement vertical des frames.
slim/.style={alignframetitle=baseline,slim@},
slim@/.code={%
\setlength{\tptframetitlefriezesep}{%
\dimexpr \baselineskip - \tptframetitlefriezeheight \relax}%
\tptcalculateheadfoot
},
noslim/.code={%
\setlength{\tptframetitlefriezesep}{0.112\paperheight}%
\tptcalculateheadfoot
},
%
% infolines : affiche les sections en en-tête. Utilise l'option slim.
infolines/.style={slim,infolines@},
infolines@/.code={%
\setbeamertemplate{headline}[infolines theme]%
\tptheadlineplumb
\tptcalculateheadfoot
},
%
% Symboles de navigation. En plus de les activer ou les désactiver,
% on peut les aligner latéralement (met le contenu de "navsymbols align"
% comme option de la beamercolorbox qui contient les symboles).
navsymbols/.is choice,
navsymbols/.default=left,
navsymbols/left/.style={navsymbols enable,navsymbols align=left},
navsymbols/right/.style={navsymbols enable,navsymbols align=right},
navsymbols/center/.style={navsymbols enable,navsymbols align=center},
navsymbols align/.store in=\tpt@navsymbols@align,
navsymbols align={},
navsymbols enable/.code={%
\setbeamertemplate{navigation symbols}[default]%
\tpt@navsymbolstrue
\tptcalculateheadfoot
},
nonavsymbols/.code={%
\setbeamertemplate{navigation symbols}{}%
\tpt@navsymbolsfalse
\tptcalculateheadfoot
},
%
% Logos et affiliations. Ces options contrôlent les logos de
% pied de page et de la page de titre.
titleaffiliation/.is if=tpt@titleaffiliation,
footeraffiliation/.is if=tpt@footeraffiliation,
logosaclay/.style={logoofficial,footeraffiliation,logosaclay@},
logosaclay@/.code={%
\logofooteraffiliation*{logo-upsay-e.pdf}%
\logotitleaffiliation*{logo-upsay-violet.pdf}%
\tptcalculateheadfoot
},
%
% logoipp, pour la compatibilité ascendante, sépare les logos
% Télécom et IP Paris.
logoipp/.style={footeraffiliation,logoipp@},
logoipp@/.code={%
\logofootermain*{logo-tp.pdf}%
\logofooteraffiliation*{logo-IPP-small.pdf}%
\setlength{\footerlogoheight}{.05118\paperwidth}%
\setlength{\footerlogoyshift}{0pt}%
\tptcalculateheadfoot
},
%
% logotp, on ne laisse l'affiliation que sur la page
% de titre. Le pied de page ne gardant que le logo de
% Télécom sans celui de l'IP Paris
logotp/.style={footeraffiliation=false,logotp@},
logotp@/.code={%
\logofootermain*{logo-tp.pdf}%
\setlength{\footerlogoheight}{.05118\paperwidth}%
\setlength{\footerlogoyshift}{0pt}%
\tptcalculateheadfoot
},
%
% Police Helvetica (ou non, auquel cas on restaure la police sans serif).
% L'argument optionnel de helvet, pour LuaTeX et XeTeX, est la liste des
% polices à chercher dans le système à la place de Helvetica, car il n'y
% en a pas de standard.
helvet/.code={%
\edef\tpt@helvet@searchlist{#1}%
\tpt@activatehelvet},
helvet/.default={Helvetica,TeX Gyre Heros,Nimbus Sans L,Arial},
nohelvet/.code={\tpt@restoresans},
%
% Affichage du nombre total de pages (framecount), éventuellement
% sans tenir compte des annexes (bodyframecount), avec le nº de page.
framecount/.is choice,
framecount/false/.code={\setbeamertemplate{page in head/foot}[plain]},
framecount/true/.code={\setbeamertemplate{page in head/foot}[total]},
framecount/body/.code={\setbeamertemplate{page in head/foot}[body]},
framecount/.default=true,% "framecount" seul veut dire "framecount=true".
bodyframecount/.style={framecount=body},
%
% Alignement du titre de frame sur la frise. Peut se faire sur
% la 1re ou la dernière ligne du titre (alignframetitle=baseline,
% ou =bottom baseline), ou le dessous du titre (=bottom), ou la
% dernière ligne ou le dessous du sous-titre (=subtitle bottom baseline,
% =subtitle bottom).
alignframetitle/.style={%
alignframetitle@template=#1,
frame title yshift=0pt,
frame title yshift if subtitle=0pt,
},
alignframetitle/.value required,
alignframetitle@template/.code={%
\setbeamertemplate{frametitle content box}[#1]%
},
alignframetitle@template/.value required,
%
% Alias pour ceux qui trouvent plus lisibles les espaces dans les options.
align frametitle/.style={alignframetitle=#1},
align frame title/.style={alignframetitle=#1},
%
% Ajustements fins de l'alignement du titre de frame :
% frametitleyshift=<dimension> décale le titre vers le haut,
% frametitleyshiftifsubtitle=<dimension> idem mais uniquement
% s'il y a un sous-titre. Des alias avec espaces sont fournis.
% Par défaut frametitleyshiftifsubtitle=8pt (défini plus bas).
frametitleyshift/.code={%
\setlength{\tptframetitleyshift}{#1}},
frametitleyshift/.value required,
frametitle yshift/.style={frametitleyshift=#1},
frame title yshift/.style={frametitleyshift=#1},
frametitleyshiftifsubtitle/.code={%
\setlength{\tptframetitleyshiftifsubtitle}{#1}},
frametitleyshiftifsubtitle/.value required,
frametitle yshift if subtitle/.style={frametitleyshiftifsubtitle=#1},
frame title yshift if subtitle/.style={frametitleyshiftifsubtitle=#1},
%
% Active/désactive un hack de la headline pour retirer
% (approximativement) la taille du titre du frame de \textheight.
% À désactiver quand on change le template de la headline.
textheighthack/.is choice,
textheighthack/.default=true,
textheighthack/true/.code={%
\tpt@textheighthacktrue
\tptcalculateheadfoot
},
textheighthack/false/.code={%
\tpt@textheighthackfalse
\tptcalculateheadfoot
},
}
% \ProcessPgfOptions à la fin du package, après les définitions.
\mode<presentation>
%
% Définition de longueurs.
%
% Une macro pour aider.
\newcommand*\tpt@deflength[2]{\newlength{#1}\setlength{#1}{#2}}
% Taille des logos dans la page de titre.
\tpt@deflength{\titlelogowidth}{0.142\paperwidth}
\tpt@deflength{\titleaffiliationlogowidth}{0.11\paperwidth}
% Taille des logos en bas de page.
\tpt@deflength{\footerlogomargin}{0.018\paperwidth}% Marge horizontale droite.
\tpt@deflength{\footerlogoheight}{0.155\paperheight}% Hauteur des logos.
%
% Déclaration des logos.
%
% Macro auxiliaire pour définir une macro de définition de logo pouvant
% utiliser \includegraphics ou du code arbitraire :
% \tpt@deflogographics{CeNom}{espace}{arg-défaut} définit
% \logoCeNom*[arg-défaut]{contenu (nom de fichier)} et
% \logoCeNom{contenu (code brut)}, lesquelles définissent
% \insertlogoCeNom = soit le code brut (pour \logoCeNom),
% soit \hspace*{espace}\includegraphics[arg-défaut]{contenu (nom de fichier)}
% (pour \logoCeNom*).
%
% De plus, \tpt@deflogographics* fait la même chose mais en utilisant
% une définition globale (avec \gdef) alors que \tpt@deflogographics
% fait des définitions locales (avec \def).
\newcommand*\tpt@deflogographics{%
\@ifstar{\tpt@deflogographics@def{\gdef}}{\tpt@deflogographics@def{\def}}%
}
\newcommand*\tpt@deflogographics@def[4]{%
%
% Différenciation entre \nomdulogo et \nomdulogo*.
\expandafter\def\csname logo#2\endcsname{%
\@ifstar{%
\csname tpt@logo@#2@graphics\endcsname}{%
\csname tpt@logo@#2\endcsname}%
}%
%
% \nomdulogo*{...} est prise en charge par \tpt@nomdu@logo,
% laquelle définit directement \insertnomdulogo à {...}.
\expandafter\newcommand\csname tpt@logo@#2\endcsname[1]{%
% Ici #1 est le paramètre de la macro externe, donc \def ou \gdef ;
% et ##1 est le paramètre qu'on donne à \nomdulogo, donc le contenu.
\expandafter #1\csname insertlogo#2\endcsname{##1}%
}%
%
% \nomdulogo[arg]{...} est prise en charge par \tpt@nomdu@logo@graphics,
% laquelle relaie à \tpt@nomdu@logo, avec pour contenu :
% l'espace donné dans #3 + \includegraphics.
\expandafter\newcommand\csname tpt@logo@#2@graphics\endcsname[2][#4]{%
\csname tpt@logo@#2\endcsname{%
\hspace*{#3}\includegraphics[##1]{##2}%
}%
}%
}
%
% Logos de la page de titre : principal et éventuellement extra au-dessus.
\tpt@deflogographics{title}{0pt}{width=\titlelogowidth}
\logotitle{}
\tpt@deflogographics{titleextra}{0pt}{width=\titlelogowidth}
\logotitleextra{}
% Pour positionner ce logo par rapport au coin supérieur gauche.
\newcommand\logoskipv{.12\paperheight}
\newcommand\logoskiph{.10\paperwidth}
% Logo de l'affiliation.
\tpt@deflogographics{titleaffiliation}{0pt}{width=\titleaffiliationlogowidth}
\logotitleaffiliation{}
%
% Logos de bas de page : principal et éventuellement affiliation supplémentaire.
\tpt@deflogographics{footermain}{0pt}{height=\footerlogoheight}
\logofootermain{}
\tpt@deflogographics{footeraffiliation}{1em}{height=\footerlogoheight}
\logofooteraffiliation{}
% Ensemble des logos de bas de page.
\logo{%
\insertlogofootermain
\iftpt@footeraffiliation\insertlogofooteraffiliation\fi
}
%
% Couleurs et polices.
%
\definecolor{tptred}{RGB}{191,18,56}
\definecolor{tptbrown}{RGB}{109,80,71}
\colorlet{tptgray}{black!30}
\setbeamercolor{frametitle}{fg=tptred,bg=white}
\setbeamercolor{structure}{fg=tptred}
\setbeamercolor{title}{bg=white,fg=black}
\setbeamercolor{subtitle}{bg=white,fg=tptgray}
\setbeamercolor{author in title frame}{bg=white,fg=tptgray}
\setbeamercolor{mail in title frame}{bg=white,fg=tptgray}
\setbeamercolor{date in title frame}{bg=white,fg=tptgray}
\setbeamercolor{page in head/foot}{fg=white,bg=tptred}
\setbeamercolor{date in head/foot}{parent=page in head/foot}
\setbeamercolor{institute in head/foot}{fg=white,bg=black}
\setbeamercolor{author in head/foot}{fg=white,bg=tptbrown}
\setbeamercolor{section in head/foot}{bg=white,fg=tptred}
\setbeamercolor{subsection in head/foot}{bg=white,fg=tptbrown}
\setbeamercolor{title in head/foot}{fg=white,bg=tptgray}
\setbeamercolor{block title}{parent=structure,bg=normal text.bg!75!tptbrown}
\setbeamercolor{block body}{bg=normal text.bg!98!tptbrown}
\setbeamercolor{block title alerted}{use={normal text,alerted text},fg=alerted text.fg!75!normal text.fg,bg=normal text.bg!75!tptred}
\setbeamercolor{block body alerted}{bg=normal text.bg!95!tptred}
\setbeamercolor{itemize subitem}{fg=tptbrown}
\setbeamerfont{title}{size*={17}{20},series=\bfseries}
\setbeamerfont{subtitle}{size*={9.5}{12},series=\bfseries}
\setbeamerfont{author in title frame}{size*={9.5}{12}, family=\sffamily}
\setbeamerfont{email in title frame}{size*={8}{10},family=\ttfamily}
\setbeamerfont{date in title frame}{size*={8}{10}, family=\sffamily}
\setbeamerfont{date in head/foot}{size*={4}{5},family=\sffamily}
\setbeamerfont{page in head/foot}{size*={5}{6},family=\sffamily}
\setbeamerfont{institute in head/foot}{size*={5}{6},family=\sffamily}
\setbeamerfont{author in head/foot}{size*={5}{6},family=\sffamily}
\setbeamerfont{frametitle}{size*={12.5}{16},series=\bfseries}
%
% \tptfrieze[baseline]{largeur}{hauteur}{couleur1,couleur2,...,couleurN}
% génère une frise de N rectangles, chacun de la baseline, largeur,
% hauteur et couleur spécifiées.
%
% Sert pour la page de titre et le titre des frames.
%
\newcommand*\tptfrieze[4][0pt]{%
\foreach \tpt@color in {#4} {%
\textcolor{\tpt@color}{\rule[#1]{#2}{#3}}%
}%
}
%
% Police : officiellement Dinot ou Arial, pour nous ce sera soit
% Helvetica ou équivalent, soit laisser les polices LaTeX et
% laisser faire l'utilisateur. Difficulté : si on utilise fontspec,
% il n'y a pas d'équivalent complètement standard de Helvetica.
%
% Fonctionnement : deux macros, \tpt@activatehelvet et \tpt@restoresans.
% Dans le préambule, elles ne font qu'activer ou désactiver un flag qui
% reporte leur action au début du document. Ensuite, \tpt@activatehelvet
% sauvegarde la police sans serif, et sélectionne une police équivalente
% à Helvetica (après l'avoir définie au besoin). \tpt@restoresans
% restaure la police sans serif.
% Flag et macro de sauvegarde.
\newif\iftpt@helvetatbegindocument
\let\tpt@save@sfdefaultfamily=\@empty
\let\tpt@helvet@family=\@empty
% Chargement des packages adéquats : fontspec si le moteur LaTeX le
% supporte, sinon helvet en sauvant préalablement la police sans serif.
\iftptusefontspec
\RequirePackage{fontspec}
\else
\let\tpt@save@sfdefaultfamily=\sfdefault
\RequirePackage{helvet}
\let\sfdefault=\tpt@save@sfdefaultfamily
\def\tpt@helvet@family{phv}
\fi
% Définitions avant le \begin{document}
\newcommand*\tpt@activatehelvet{\tpt@helvetatbegindocumenttrue}
\newcommand*\tpt@restoresans{\tpt@helvetatbegindocumentfalse}
% Définitions après le \begin{document}
\newcommand*\tpt@activatehelvet@real{%
\ifx\tpt@helvet@family\@empty
% On doit encore définir la police pour Helvetica.
% Ce cas ne se présente qu'avec fontspec, car autrement
% la macro \tpt@helvet@family est initialisée ci-dessus.
\tptfindfont{tpthelvetlike}{\tpt@helvet@searchlist}%
\ifx\tpthelvetlikefont\@empty
% Pas trouvé, on reste sur une police LaTeX.
\PackageWarning{beamerthemetptng}{Did not find an Arial-like font.}%
\let\tpt@helvet@family=\sfdefault
\else
\def\tpt@helvet@family{tpthelvetlike}%
\fi
\fi
\let\tpt@save@sfdefaultfamily=\sfdefault
\let\sfdefault=\tpt@helvet@family
\normalfont
}
\newcommand*\tpt@restoresans@real{%
\ifx\tpt@save@sfdefaultfamily\@empty
\else
% La macro de sauvegarde n'est pas vide, on peut restaurer la police.
\let\sfdefault=\tpt@save@sfdefaultfamily
\let\tpt@save@sfdefaultfamily=\@empty
\normalfont
\fi
}
% Définir une police : on parcourt une liste donnée jusqu'à trouver
% la première qui existe. Ne fonctionne qu'avec fontspec.
\newcommand*\tptfindfont[2]{%
\PackageError{beamerthemetptng}{%
\string\tptfindfont{} requires LuaTeX or XeTeX}{%
This macro requires package fontspec,
which only works with LuaTeX or XeTeX.
}%
}
\iftptusefontspec
\renewcommand*\tptfindfont[2]{%
\let\tpt@foundfont=\@empty
\edef\tpt@tmp@fontsearchlist{#2}%
\foreach \tpt@findfont in \tpt@tmp@fontsearchlist {%
\IfFontExistsTF{\tpt@findfont}{%
\xdef\tpt@foundfont{\tpt@findfont}%
\breakforeach}{}%
}%
\ifx\tpt@foundfont\@empty
\@namedef{#1font}{}%
\else
\expandafter\newfontfamily\csname #1font\endcsname{\tpt@foundfont}[%
NFSSFamily=#1]%
\fi
}
\fi
% Au début du document, on change les définitions, et on invoque
% \tpt@activatehelvet si le flag était activé.
\AtBeginDocument{%
\let\tpt@activatehelvet=\tpt@activatehelvet@real
\let\tpt@restoresans=\tpt@restoresans@real
\iftpt@helvetatbegindocument
\tpt@activatehelvet
\fi
}
%
% Page de titre.
%
\defbeamertemplate*{title page}{tpt default}%
{%
\thispagestyle{empty}%
%FIXME: Hack ... how to remove the vertical offset here??
% logoskipv -> pure luck
\vskip -\logoskipv%
\begin{columns}
\begin{column}{.4\paperwidth}
\begin{minipage}[t][\paperheight][t]{\textwidth}%
\vspace{\logoskipv}\par%
\hspace{\logoskiph}\insertlogotitle\par%
\vspace{4mm}%
\hspace{\logoskiph}\usebeamercolor[fg]{title}\usebeamerfont{title}{%
\insertlogotitleextra
}\par%
\vfill{}\vfill{}%
\iftpt@titleaffiliation
\hspace*{\logoskiph}\insertlogotitleaffiliation
\vspace{.18\paperheight}%
\fi
\end{minipage}
\end{column}
\begin{column}{.6\paperwidth}
\hspace{.03\textwidth}%
\begin{minipage}[t][.55\paperheight][t]{.9\textwidth}
\vspace{3.5cm}%
\usebeamercolor[fg]{title}\usebeamerfont{title}\raggedright{\inserttitle}\par%
\ifx\insertsubtitle\@empty%
\else%
{%
\vspace{1ex}%
\usebeamercolor[fg]{subtitle}\usebeamerfont{subtitle}\raggedright{\insertsubtitle}\par
\vfill
}%
\fi%
\end{minipage}%
\vspace{.1\paperheight}\par%
\hspace{.03\textwidth}%
\begin{minipage}[b][.1\paperheight][b]{.9\textwidth}
\usebeamercolor[fg]{author in title frame}\usebeamerfont{author in title frame}\insertauthor\par%
\usebeamercolor[fg]{email in title frame}\usebeamerfont{email in title frame}\insertemail\par%
\usebeamercolor[fg]{date in title frame}\usebeamerfont{date in title frame}\insertdate\par%
\end{minipage}%
\vspace{.03\paperheight}\par%
\begin{beamercolorbox}[sep=0cm,wd=.6\paperwidth]{title}
\tptfrieze{.205\paperwidth}{.0427\paperheight}{%
page in head/foot.bg,institute in head/foot.bg,title in head/foot.bg}
\end{beamercolorbox}%
\vspace{.20\paperheight}%
\end{column}
\end{columns}
}%
\def\maketitle{%
{
\ifbeamer@inframe
\titlepage
\else
\begin{frame}
\titlepage
\end{frame}
\fi
}
}
%
% Bas de page : boîtes de couleur et logo.
%
% On commence par définir :
% * les dimensions ;
% * une macro générique pour faire une boîte ;
% * deux macros spécialisées pour les boîtes selon qu'elles sont centrées
% ou alignées verticalement, avec la baseline en bas de la boîte ;
% * une macro qui pointe vers l'une ou l'autre des macros spécialisées,
% changeable par une option du package.
%
\tpt@deflength{\footlinespacing}{0.008\paperwidth}
\tpt@deflength{\tptbottomboxsep}{\footlinespacing}
\tpt@deflength{\tptbottomboxesmargin}{0.01778\paperheight}
\tpt@deflength{\tptleftbottomboxwidth}{0.154\paperwidth}
\tpt@deflength{\tptmidbottomboxwidth}{0.276\paperwidth}
\tpt@deflength{\tptbottomboxesbase}{0.00889\paperheight}
\tpt@deflength{\tptbottomboxesheight}{0.0338\paperheight}
\tpt@deflength{\footerlogoyshift}{-1.5pt}
% Macros génériques et spécialisées pour faire une boîte.
% Paramètres : [options beamercolorbox], couleur Beamer, contenu.
\newcommand*\tpt@bottombox[3]{%
\begin{beamercolorbox}[center,#1]{#2}
\usebeamerfont*{#2}%
#3
\end{beamercolorbox}%
}
\newcommand*\tpt@bottombox@centered[4][]{%
\tpt@bottombox{wd={#3},#1}{#2}{%
\vbox to\tptbottomboxesheight{\vfil#4\vfil}%
}%
}
\newcommand*\tpt@bottombox@aligned[4][]{%
\raisebox{\tptbottomboxesbase}{%
\tpt@bottombox{wd={#3},dp=\tptbottomboxesbase,ht={%
\dimexpr \tptbottomboxesheight - \tptbottomboxesbase \relax},#1}{#2}{%
#4%
}%
}%
}
\let\tptbottombox=\tpt@bottombox@aligned
% Macro pour faire l'ensemble des boîtes de bas de page.
% Paramètre : la largeur totale (pour ajuster la dernière boîte).
\newcommand*\tptbottomboxes[1]{%
\setlength\@tempdima{#1}%
\leavevmode
\tptbottombox{page in head/foot}{\tptleftbottomboxwidth}{%
\usebeamertemplate{page in head/foot}%
\ifx\insertshortdate\@empty
\else\hfill\usebeamerfont{date in head/foot}\insertshortdate
\fi
}%
\hspace*{\tptbottomboxsep}%
\tptbottombox{institute in head/foot}{\tptmidbottomboxwidth}{%
\insertinstitute
}%
\hspace*{\tptbottomboxsep}%
\tptbottombox{title in head/foot}{%
\dimexpr \@tempdima - \tptleftbottomboxwidth - \tptmidbottomboxwidth
- 2\tptbottomboxsep - \footerlogomargin \relax}{%
\insertshorttitle
}%
}
% Templates pour le nº de page.
\defbeamertemplate*{page in head/foot}{plain}{%
% Juste le nº.
\insertframenumber
}
\defbeamertemplate{page in head/foot}{total}{%
% Avec le nombre total de pages.
\insertframenumber/\inserttotalframenumber
}
\defbeamertemplate{page in head/foot}{body}{%
% Avec le nombre de pages hors annexe (défini plus bas).
\insertframenumber/\insertbodyframenumber
}
%
% Le bas de page proprement dit : les boîtes et le logo dans la footline.
% Le logo est typesetté dans une boîte pour calculer sa largeur et
% ajuster la taille des boîtes via le paramètre de \tptbottomboxes.
%
\newsavebox\tpt@tempbox
\defbeamertemplate*{footline}{tpt default}{%
%
% On commence par typesetter le logo pour calculer la largeur restante.
\sbox\tpt@tempbox{\insertlogo}%
\setlength\@tempdima{\dimexpr \paperwidth - \wd\tpt@tempbox \relax}%
%
% Une petite marge verticale entre le corps du texte et le bas de page.
\vskip 2pt%
%
% Symboles de navigation si besoin.
\iftpt@navsymbols
\begin{beamercolorbox}%
[wd=\@tempdima,\tpt@navsymbols@align]{navigation symbols}
\usebeamertemplate***{navigation symbols}%
\end{beamercolorbox}
\fi
%
% Les boîtes de bas de page et le logo.
\mbox{%
\tptbottomboxes{\@tempdima}%
\hspace*{\footlinespacing}%
\hfill%
\smash{\raisebox{\footerlogoyshift}{\usebox{\tpt@tempbox}}}%
}%
%
% Marge verticale avec le bord inférieur de la page.
\vskip\tptbottomboxesmargin%
}
%%%% En tête
% Macro spéciale pour ajouter la hauteur (prédéfinie) du titre du frame
% dans la headline, si le hack de textheight est activé.
\newcommand*\tptheadlineplumb{%
\addtobeamertemplate{headline}{}{%
\iftpt@textheighthack
\vskip\tptframetitlefriezesep
\fi
}%
}
\tptheadlineplumb
%
% Titre du frame : dimensions.
%
\tpt@deflength{\tptframetitlesep}{0.018\paperwidth}
\tpt@deflength{\tptframetitlefriezesep}{0.112\paperheight}
\tpt@deflength{\tptframetitlefriezewidth}{0.153\paperwidth}
\tpt@deflength{\tptframetitlefriezeheight}{0.032\paperheight}
\tpt@deflength{\tptframetitleyshift}{0pt}
\tpt@deflength{\tptframetitleyshiftifsubtitle}{8pt}% FIXME
\tpt@deflength{\tptframetitledepth}{2.1mm}% FIXME
\newlength{\tpt@frametitle@width}
\newlength{\tpt@frametitle@content@width}
%
% Titre du frame : beamercolorbox standard incluant la frise,
% et un template interne qui gère les options d'alignement
% de l'ensemble titre + sous-titre.
%
\defbeamertemplate*{frametitle}{tpt default}[1][]{%
\tptthemekeys{#1}% Active les options données (comme pour le package).
\nointerlineskip% On ne saute pas de ligne après l'en-tête...
\iftpt@textheighthack% ... voire on compense le saut de la headline.
\ifbeamer@plainframe\else
\vskip-\tptframetitlefriezesep
\fi\fi
%
% La beamercolorbox prend tout le frame (moins les éventuelles sidebars).
\setlength{\tpt@frametitle@width}{%
\dimexpr \textwidth + \beamer@leftmargin + \beamer@rightmargin \relax}%
\begin{beamercolorbox}[sep=0pt,wd=\the\tpt@frametitle@width]{frametitle}
%
% La frise, avec une \rule invisible pour la marge verticale,
% et un arrière-plan blanc s'il y a une couleur de fond.
% FIXME mieux gérer couleur et marge p.ex. avec une autre beamercolorbox.
\mbox{%
\rule{0pt}{%
\dimexpr \tptframetitlefriezeheight + \tptframetitlefriezesep \relax}%
\ifbeamercolorempty[bg]{frametitle}{}{%
\rlap{\textcolor{white}{%
\rule[-1pt]{%
\dimexpr \tptframetitlefriezewidth + 1pt}{%
\dimexpr \tptframetitlefriezeheight + 2pt}%
}}}%
\tptfrieze{%
0.333\tptframetitlefriezewidth}{\tptframetitlefriezeheight}{%
page in head/foot.bg,institute in head/foot.bg,title in head/foot.bg}%
}%
\hspace*{\tptframetitlesep}%
%
% On ajoute une profondeur minimale s'il y a une couleur de fond.
\ifbeamercolorempty[bg]{frametitle}{}{%
\rule[-\tptframetitledepth]{0pt}{0pt}%
}%
%
% On décale la baseline de la hauteur demandée,
% notamment s'il y a un sous-titre.
\setlength{\@tempdima}{\tptframetitleyshift}%
\ifx\insertframesubtitle\@empty
\else
\addtolength{\@tempdima}{\tptframetitleyshiftifsubtitle}%
\fi
%
% Le template interne, à qui on précalcule sa largeur.
\setlength{\tpt@frametitle@content@width}{%
\dimexpr \tpt@frametitle@width
- \tptframetitlefriezewidth - \tptframetitlesep
- \beamer@rightmargin \relax}%
\raisebox{\@tempdima}{\usebeamertemplate{frametitle content box}}%
\end{beamercolorbox}%
}
%
% Pour le contenu du titre du frame, définissons des macros auxiliaires.
%
% Crée une \vbox alignée sur le dessous de son contenu
% et non sur la baseline de celui-ci.
\newcommand\tpt@bottomalignedbox[1]{%
\vbox{#1\nointerlineskip\vbox{}}%
}
% \tpt@framecontentbox{vbox}{align1}{pos1}{titre}{align2}{pos2}{sous-titre}
% génère la boîte contenant titre et sous-titre du frame, en l'alignant
% selon les paramètres :
% * "vbox" : \vbox (aligne le sous-titre) ou \vtop (aligne titre) ;
% * "align[12]" : vides (pour baseline) ou \tpt@bottomalignbox (pour dessous) ;
% * "pos[12]" sont passés aux \parbox qui contiennent titre/sous-titre.
%
\newcommand\tpt@framecontentbox[7]{%
#1{%
#2{\hbox{\parbox[#3]{\tpt@frametitle@content@width}{%
\usebeamerfont{frametitle}%
\raggedright\noindent
#4\par
}}}%
\nointerlineskip
\ifx\insertframesubtitle\@empty%
\else
#5{\hbox{\parbox[#6]{\tpt@frametitle@content@width}{%
\usebeamerfont{framesubtitle}%
\usebeamercolor[fg]{framesubtitle}%
\raggedright
#7\par
}}}%
\fi
}
}
% Maintenant les variantes du template contenu, selon l'alignement désiré.
\defbeamertemplate*{frametitle content box}{baseline}{%
\tpt@framecontentbox{\vtop}%
{}{t}{\strut\insertframetitle\strut}%
{}{}{\insertframesubtitle\strut}%
}
\defbeamertemplate{frametitle content box}{bottom baseline}{%
\tpt@framecontentbox{\vtop}%
{}{b}{\strut\insertframetitle\strut}%
{}{}{\insertframesubtitle\strut}%
}
\defbeamertemplate{frametitle content box}{bottom}{%
\tpt@framecontentbox{\vtop}%
{\tpt@bottomalignedbox}{b}{\insertframetitle}%
{}{}{\insertframesubtitle\strut}%
}
\defbeamertemplate{frametitle content box}{subtitle bottom baseline}{%
\tpt@framecontentbox{\vbox}%
{}{}{\strut\insertframetitle\strut}%
{}{b}{\insertframesubtitle\strut}%
}
\defbeamertemplate{frametitle content box}{subtitle bottom}{%
\tpt@framecontentbox{\vbox}%
{}{}{\strut\insertframetitle\strut}%
{\tpt@bottomalignedbox}{b}{\insertframesubtitle}%
}
% Aliases des options sans les espaces (parce que LaTeX les supprime).
\newcommand*\tpt@frametitle@defalias[2]{%
\defbeamertemplatealias{frametitle content box}{#1}{#2}%
}
\tpt@frametitle@defalias{bottombaseline}{bottom baseline}
\tpt@frametitle@defalias{subtitlebottombaseline}{subtitle bottom baseline}
\tpt@frametitle@defalias{subtitlebottom}{subtitle bottom}
%
% Itemize labels.
%
\defbeamertemplate*{itemize item}{tpt}{%
\raise0.2ex\hbox{\vrule width 1ex height 1ex}%
}
\defbeamertemplate*{itemize subitem}{tpt}{\textbullet}
\defbeamertemplate*{itemize subsubitem}{tpt}{\textendash}
%
% \bodyframecount : nº du dernier frame hors annexe.
%
\newcommand\insertbodyframenumber{1} % On démarre au frame 1.
\newif\ifinappendix\inappendixfalse % Flag positionné par \appendix...
\let\save@beamer@appendix=\appendix % ... ce pour quoi on modifie \appendix.
\renewcommand\appendix{%
%
% On sauve le nº du frame : c'est le dernier frame hors annexe.
%
\immediate\write\@auxout{\string\@writefile{nav}%
{\noexpand\headcommand{\noexpand\def\noexpand\insertbodyframenumber{\the\c@framenumber}}}}
\save@beamer@appendix
\inappendixtrue
}
\AtEndDocument{%
%
% S'il n'y a pas d'annexe, on sauve le nº du dernier frame.
%
\ifinappendix
\else
\immediate\write\@auxout{\string\@writefile{nav}%
{\noexpand\headcommand{\noexpand\def\noexpand\insertbodyframenumber{\the\c@framenumber}}}}
\fi
}
%
% Macro pour recalculer la hauteur des haut et bas de page.
% On ne l'active qu'à la fin du préambule.
%
\newcommand*\tptcalculateheadfoot{}
\AtBeginDocument{%
\renewcommand*\tptcalculateheadfoot{\beamer@calculateheadfoot}%
}
% .. from tptthemtheme?
% Contents frame (FIXME part frame option).
%
\providecommand*\contentsframe[1][]{%
\begin{frame}
\frametitle{\contentsframename}
\tableofcontents[#1]
\end{frame}
}
\providecommand*\contentsframename{\contentsname}
\providecommand*\contentsname{Outline}% In case Babel not loaded.
%
% Métadonnées supplémentaires pour compatibilité ascendante :
% \email, \dept (alias de \institute).
%
\newcommand\email[1]{\gdef\insertemail{#1}}
\email{}
\newcommand\dept[1]{\institute{#1}}
%
% On répare un bug de certaines versions de Beamer, qui pose problème
% avec les marges par défaut. (Code dérivé de beamerbasecolor.sty.)
%
\@tempswafalse
\@ifclasslater{beamer}{2017/08/22}{\@tempswatrue}{}
\@ifclasslater{beamer}{2020/07/25}{\@tempswafalse}{}
\if@tempswa
\renewenvironment{beamercolorbox}[2][]{%
\def\beamer@vmode{\leavevmode}%
\setkeys{beamercolbox}{wd=\textwidth,ht={},dp={},%
leftskip=0pt,rightskip=0pt plus1fil,%
sep=0pt,colsep=0pt,colsep*=0pt,%
shadow=false,rounded=false,ignorebg=false}%
\setkeys{beamercolbox}{#1}%
\ifbeamercolorempty[bg]{#2}{\@tempswafalse}{\@tempswatrue}%
\ifbeamer@colbox@ignorebg\@tempswafalse\fi%
\def\beamer@colbox@color{#2}%
\setbox\beamer@tempbox=\hbox\bgroup\color@begingroup
\ifbeamer@colbox@ignorebg%
\colorlet{beamer@temp@color}{bg}%
\usebeamercolor[fg]{#2}%
\colorlet{bg}{beamer@temp@color}%
\else%
\usebeamercolor[fg]{#2}%
\fi%
\vbox\bgroup%
\hsize=\beamer@colbox@wd%
\@arrayparboxrestore%
\leftskip=\beamer@colbox@ls%
\ifdim\beamer@colbox@sep>\z@\advance\leftskip\beamer@colbox@sep\fi%
\rightskip=\beamer@colbox@rs%
\ifdim\beamer@colbox@sep>\z@\advance\rightskip\beamer@colbox@sep\fi%
\if@tempswa\ifdim\beamer@colbox@colsep>\z@%
\advance\leftskip by\beamer@colbox@colsep%
\advance\rightskip by\beamer@colbox@colsep%
\vskip\beamer@colbox@colsep%
\fi%
\ifdim\beamer@colbox@colseps>\z@\vskip\beamer@colbox@colseps\fi%
\fi%
\ifdim\beamer@colbox@sep>\z@\vskip\beamer@colbox@sep\fi%
\beamer@vmode\ignorespaces}{%
\ifdim\beamer@colbox@sep>\z@\vskip\beamer@colbox@sep\fi%
\if@tempswa
\ifdim\beamer@colbox@colsep>\z@\vskip\beamer@colbox@colsep\fi%
\ifdim\beamer@colbox@colseps>\z@\vskip\beamer@colbox@colseps\fi%
\fi%
\egroup\color@endgroup\egroup%
\wd\beamer@tempbox=\beamer@colbox@wd%
\ifx\beamer@colbox@ht\@empty\else\ht\beamer@tempbox=\beamer@colbox@ht\fi%
\ifx\beamer@colbox@dp\@empty\else\dp\beamer@tempbox=\beamer@colbox@dp\fi%
\ifbeamer@colbox@rounded%
\if@tempswa%
\begin{beamerboxesrounded}[%
shadow=\beamer@colbox@shadow,%
lower=\beamer@colbox@color,%
upper=normal text,%
width=\beamer@colbox@wd]{}%
\box\beamer@tempbox%
\end{beamerboxesrounded}%
\else%
\ifdim\wd\beamer@tempbox>\textwidth%
\setbox\beamer@tempbox=\hbox to\textwidth{\hss\box\beamer@tempbox\hss}%
\fi%
\box\beamer@tempbox%
\fi%
\else%
\if@tempswa\setbox\beamer@tempbox=\hbox{%
\usebeamercolor{\beamer@colbox@color}%
\hskip-\beamer@colbox@colseps%
\fboxsep=\z@\colorbox{bg}{%
\hskip\beamer@colbox@colseps%
\box\beamer@tempbox%
\hskip\beamer@colbox@colseps%
}%
\hskip-\beamer@colbox@colseps%
}\fi%
\ifdim\wd\beamer@tempbox>\textwidth%
\setbox\beamer@tempbox=\hbox to\textwidth{\hskip0pt minus\beamer@leftmargin\relax\box\beamer@tempbox\hskip0pt minus\beamer@rightmargin\relax}%
\fi%
\box\beamer@tempbox%
\fi%
}
\fi
\mode<all>
% On finit par traiter les options du package maintenant que tout est défini.
\tptthemekeys{official} % Options par défaut.
\ProcessPgfOptions{/tpt theme}% Options du package.
\endinput