474 lines
13 KiB
OpenEdge ABL
474 lines
13 KiB
OpenEdge ABL
|
% This is a Latex template, inspired from
|
|||
|
% http://tutex.tug.org/pracjourn/2005-4/hefferon/hefferon.pdf
|
|||
|
%
|
|||
|
% Copyright © 2019 Adrian Amaglio <adrian@amaglio.fr>
|
|||
|
% This work is free. You can redistribute it and/or modify it under the
|
|||
|
% terms of the Do What The Fuck You Want To Public License, Version 2,
|
|||
|
% as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.
|
|||
|
|
|||
|
% Contributors : Marie D,
|
|||
|
|
|||
|
% -----------------------------------------------------------------------------
|
|||
|
% Define Document properties
|
|||
|
% -----------------------------------------------------------------------------
|
|||
|
|
|||
|
% --- Class structure: identification part
|
|||
|
% ---
|
|||
|
\ProvidesClass{../../template/template_cours}[Cours en lycée]
|
|||
|
\NeedsTeXFormat{LaTeX2e}
|
|||
|
|
|||
|
|
|||
|
% --- Class structure: declaration of options part
|
|||
|
% ---
|
|||
|
% This class extends the article class
|
|||
|
% Read all the documentclass options; pass them to article,
|
|||
|
% ---
|
|||
|
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
|
|||
|
|
|||
|
|
|||
|
% --- Class structure: execution of options part
|
|||
|
% ---
|
|||
|
\ProcessOptions \relax
|
|||
|
|
|||
|
|
|||
|
% --- Class structure: Loading parent class
|
|||
|
% ---
|
|||
|
\LoadClass{article}
|
|||
|
|
|||
|
|
|||
|
% --- Force A4 paper
|
|||
|
% ---
|
|||
|
% TODO: Can we create a A3 or A5 document with this template?
|
|||
|
\usepackage[a4paper]{geometry}
|
|||
|
|
|||
|
|
|||
|
% --- Loading common packages
|
|||
|
% ---
|
|||
|
|
|||
|
|
|||
|
% --- Be french and utf-8
|
|||
|
% ---
|
|||
|
\usepackage[utf8]{inputenc}
|
|||
|
\usepackage[french]{babel}
|
|||
|
\usepackage[T1]{fontenc}
|
|||
|
%\usepackage{amsmath}%why
|
|||
|
%\usepackage{amsfonts}%why
|
|||
|
%\usepackage{amssymb}%why
|
|||
|
|
|||
|
|
|||
|
% --- Define hyperlinks style
|
|||
|
% ---
|
|||
|
\usepackage{xcolor}
|
|||
|
\usepackage{hyperref}
|
|||
|
\hypersetup{pdfpagemode={UseOutlines},
|
|||
|
bookmarksopen=true,
|
|||
|
bookmarksopenlevel=0,
|
|||
|
hypertexnames=false,
|
|||
|
colorlinks=true, % Set to false to disable coloring links
|
|||
|
citecolor=green!40!black!90, % The color of citations
|
|||
|
linkcolor=red!40!black!80, % The color of references to document elements (sections, figures, etc)
|
|||
|
urlcolor=blue!40!black!80, % The color of hyperlinks (URLs)
|
|||
|
pdfstartview={FitV},
|
|||
|
breaklinks=true,
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
% --- Define document margins
|
|||
|
% ---
|
|||
|
\geometry{top=2cm, bottom=2cm, left=2cm, right=2cm}
|
|||
|
%\setlength{\textheight}{715pt} \addtolength{\voffset}{-90pt}
|
|||
|
%\setlength{\textwidth}{485pt} \addtolength{\hoffset}{-70pt}
|
|||
|
|
|||
|
|
|||
|
% --- Paper and page layout
|
|||
|
% ---
|
|||
|
\setlength{\parindent}{0pt}
|
|||
|
%\setlength{\headheight}{20pt}
|
|||
|
\setlength{\headheight}{14.2pt}
|
|||
|
|
|||
|
|
|||
|
% --- New page for each section
|
|||
|
% ---
|
|||
|
\usepackage{titlesec}
|
|||
|
%\newcommand{\sectionbreak}{\pagebreak}
|
|||
|
%not working as expected :(
|
|||
|
|
|||
|
|
|||
|
% --- Define document font
|
|||
|
% ---
|
|||
|
\usepackage{mathpazo}
|
|||
|
% TODO dyslexic friendly font
|
|||
|
%\usepackage{newcent}
|
|||
|
%Dyslexie
|
|||
|
%OpenDyslexic (open-dyslexic) by Abelardo Gonzalez is licensed under a Creative Commons Attribution 3.0 Unported License
|
|||
|
%Lexia Readable
|
|||
|
|
|||
|
% -----------------------------------------------------------------------------
|
|||
|
% Include and define nice functions
|
|||
|
% -----------------------------------------------------------------------------
|
|||
|
|
|||
|
% --- Include pictures
|
|||
|
% ---
|
|||
|
\usepackage{graphicx}
|
|||
|
% \usepackage{rotating, graphicx}
|
|||
|
% Why
|
|||
|
%\usepackage{array}
|
|||
|
|
|||
|
|
|||
|
% --- To display typewriter style text
|
|||
|
% ---
|
|||
|
\usepackage{listings}
|
|||
|
|
|||
|
|
|||
|
% --- Some useful commands
|
|||
|
\newcommand{\bigO}{\textit{O}}
|
|||
|
\newcommand\ignore[1]{{}}
|
|||
|
\newcommand{\correc}[1]{\textbf{\textcolor{codegreen}{#1}}}
|
|||
|
\newcommand{\motcle}[1]{\texttt{\textcolor{blue}{#1}}}
|
|||
|
\newcommand{\mothtml}[1]{\texttt{<\textcolor{blue}{#1}>}}
|
|||
|
\newcommand{\todo}[1]{\textcolor{red}{#1}}
|
|||
|
|
|||
|
|
|||
|
% --- Register some information about the document
|
|||
|
% ---
|
|||
|
\newcommand{\thelicencepic}{cc-by-sa.png}
|
|||
|
\newcommand{\thelicencelink}{https://creativecommons.org}
|
|||
|
\newcommand{\thelevel}{SNT}
|
|||
|
\newcommand{\thesequence}{Séquence 0}
|
|||
|
\newcommand{\themoreinNSI}{}
|
|||
|
|
|||
|
% --- Licence filler
|
|||
|
\newcommand\licencepic{\includegraphics[height=\baselineskip]{../../licences/\thelicencepic}}
|
|||
|
|
|||
|
|
|||
|
% --- More in NSI indicator
|
|||
|
% --- This command just fill the variable themoreinNSI
|
|||
|
\newcommand\moreinNSI{\def\themoreinNSI{Sujet approfondi en NSI}}
|
|||
|
|
|||
|
% --- Store title, author and date to use them later, even after maketitle emptyed them
|
|||
|
% ---
|
|||
|
\let\titleoriginal\title % save original \title macro
|
|||
|
\renewcommand{\title}[1]{ % substitute for a new \title
|
|||
|
\titleoriginal{#1}% % define the real title
|
|||
|
\def\thetitle{#1} % define \thetitle
|
|||
|
}
|
|||
|
|
|||
|
\let\dateoriginal\date % save original \date macro
|
|||
|
\renewcommand{\date}[1]{ % substitute for a new \date
|
|||
|
\dateoriginal{#1}% % define the real date
|
|||
|
\def\thedate{#1} % define \thedate
|
|||
|
}
|
|||
|
|
|||
|
\let\authororiginal\author % save original \author macro
|
|||
|
\renewcommand{\author}[1]{ % substitute for a new \author
|
|||
|
\authororiginal{#1}% % define the real author
|
|||
|
\def\theauthor{#1} % define \theauthor
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
% --- Header and footer
|
|||
|
%---
|
|||
|
\usepackage{fancyhdr}
|
|||
|
\pagestyle{fancy}
|
|||
|
|
|||
|
\lhead{\themoreinNSI}
|
|||
|
\chead{}
|
|||
|
\rhead{\thelevel\thedate~: \thesequence}
|
|||
|
|
|||
|
\usepackage{lastpage}
|
|||
|
\renewcommand{\footrulewidth}{0.4pt}% default hline is 0pt
|
|||
|
\lfoot{\href{\thelicencelink}{\licencepic} \theauthor}
|
|||
|
\cfoot{}
|
|||
|
\rfoot{\thepage \,/ \pageref{LastPage}}
|
|||
|
|
|||
|
|
|||
|
\def \ifempty#1{\def\temp{#1} \ifx\temp\empty }
|
|||
|
|
|||
|
% --- Document title
|
|||
|
% ---
|
|||
|
% remove spacing around date:
|
|||
|
%\usepackage{titling}
|
|||
|
%\predate{}
|
|||
|
%\postdate{}
|
|||
|
\AtBeginDocument{%
|
|||
|
\dateoriginal{} % clear date
|
|||
|
\authororiginal{}
|
|||
|
\ifx \@title\empty \else \maketitle \fi
|
|||
|
\thispagestyle{fancy}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
% --- Academic year command
|
|||
|
% --- Use: \academicyear to display text like "2020-2021"
|
|||
|
% --- Use: \academicyear[-1] to display text like "2019-2020"
|
|||
|
% --- Use: \academicyear[0][/][ to display text like "2020/2021"
|
|||
|
\usepackage{xparse}
|
|||
|
\newcounter{myyear}
|
|||
|
\newcounter{myyearprevious}
|
|||
|
\newcounter{myyearnext}
|
|||
|
\NewDocumentCommand{\academicyear}{O{0} O{-}}{
|
|||
|
% Current year %
|
|||
|
\newcommand{\myyear}{\the\year}
|
|||
|
% Previous year %
|
|||
|
\newcommand\myyearprevious{\the\numexpr\myyear+#1-1\relax}
|
|||
|
% Next year %
|
|||
|
\newcommand\myyearnext{\the\numexpr\myyear+#1+1\relax}
|
|||
|
%% Print academic year %
|
|||
|
\ifnum\month<8 \myyearprevious#2\myyear \else\myyear#2\myyearnext\fi
|
|||
|
}
|
|||
|
|
|||
|
% --- some optional packages
|
|||
|
% \usepackage{multirow} % to use multirow in tabular
|
|||
|
\usepackage{amsmath} % for more maths symbols and so on
|
|||
|
% --- pour barrer du texte
|
|||
|
\usepackage{ulem}
|
|||
|
|
|||
|
% --- Some color definitions
|
|||
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
|||
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
|||
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
|||
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
|||
|
\definecolor{rouge_brique}{HTML}{B6321C}
|
|||
|
\xdefinecolor{darkblue}{rgb}{0,0,0.4}
|
|||
|
\xdefinecolor{darkred}{rgb}{0.4,0,0}
|
|||
|
|
|||
|
% --- Javascript listing coloration
|
|||
|
% ---
|
|||
|
\lstdefinelanguage{JavaScript}{
|
|||
|
keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, let},
|
|||
|
keywordstyle=\color{blue}\bfseries,
|
|||
|
ndkeywords={class, export, boolean, throw, implements, import, this, document},
|
|||
|
ndkeywordstyle=\color{darkgray}\bfseries,
|
|||
|
identifierstyle=\color{black},
|
|||
|
sensitive=false,
|
|||
|
comment=[l]{//},
|
|||
|
morecomment=[s]{/*}{*/},
|
|||
|
commentstyle=\color{purple}\ttfamily,
|
|||
|
stringstyle=\color{red}\ttfamily,
|
|||
|
morestring=[b]',
|
|||
|
morestring=[b]"
|
|||
|
}
|
|||
|
|
|||
|
% --- Some Python highlightings presets
|
|||
|
% ---
|
|||
|
\lstdefinestyle{mystyle}{
|
|||
|
backgroundcolor=\color{backcolour},
|
|||
|
commentstyle=\color{codegreen},
|
|||
|
% keywordstyle=\color{magenta},
|
|||
|
keywordstyle=\color{blue},
|
|||
|
% keywordstyle=\color{darkblue},
|
|||
|
numberstyle=\tiny\color{codegray},
|
|||
|
% stringstyle=\color{codepurple},
|
|||
|
stringstyle=\color{rouge_brique},
|
|||
|
basicstyle=\ttfamily\footnotesize,
|
|||
|
breakatwhitespace=false,
|
|||
|
breaklines=true,
|
|||
|
captionpos=b,
|
|||
|
keepspaces=true,
|
|||
|
numbers=left,
|
|||
|
numbersep=5pt,
|
|||
|
showspaces=false,
|
|||
|
showstringspaces=false,
|
|||
|
showtabs=false,
|
|||
|
tabsize=2,
|
|||
|
inputencoding=utf8,
|
|||
|
extendedchars=true,
|
|||
|
literate={ç}{{\c{c}}}1 {à}{{`a}}1 {é}{{'e}}1 {è}{{`e}}1 {î}{{^i}}1,
|
|||
|
}
|
|||
|
|
|||
|
% --- Some HTML highlightings presets
|
|||
|
% ---
|
|||
|
\lstdefinestyle{mystylehtml}{
|
|||
|
backgroundcolor=\color{backcolour},
|
|||
|
commentstyle=\color{codegreen},
|
|||
|
% keywordstyle=\color{orange},
|
|||
|
keywordstyle=\color{blue},
|
|||
|
numberstyle=\tiny\color{codegray},
|
|||
|
% stringstyle=\color{codepurple},
|
|||
|
stringstyle=\color{red},
|
|||
|
basicstyle=\ttfamily\footnotesize,
|
|||
|
breakatwhitespace=false,
|
|||
|
breaklines=true,
|
|||
|
captionpos=b,
|
|||
|
keepspaces=true,
|
|||
|
numbers=left,
|
|||
|
numbersep=5pt,
|
|||
|
showspaces=false,
|
|||
|
showstringspaces=false,
|
|||
|
showtabs=false,
|
|||
|
tabsize=2
|
|||
|
}
|
|||
|
|
|||
|
% --- Style configuration
|
|||
|
\lstset{style=mystyle}
|
|||
|
\lstset{language=Python}
|
|||
|
\lstset{frame=lines}
|
|||
|
\lstset{basicstyle=\footnotesize}
|
|||
|
|
|||
|
|
|||
|
% --- Environment creator
|
|||
|
% --- Handy to have a standard environment
|
|||
|
% TODO add a symbole to each environment for daltonian students or B&W printing
|
|||
|
\usepackage[many]{tcolorbox}
|
|||
|
|
|||
|
% This command define a new environment, cartouche style.
|
|||
|
% 1: name
|
|||
|
% 2: Text to display in cartouche
|
|||
|
% 3: font color of cartouche
|
|||
|
% 4: back color of cartouche
|
|||
|
% TODO is there a way to reset the counter from a document?
|
|||
|
\newcommand{\myenvironment}[4]{
|
|||
|
\newtcolorbox[
|
|||
|
auto counter,
|
|||
|
% number within=chapter
|
|||
|
]{#1}{%
|
|||
|
%breakable, % Bug, add a cartouche on new page, over text
|
|||
|
enhanced,
|
|||
|
colback=white,
|
|||
|
colbacktitle=white,
|
|||
|
arc=0pt,
|
|||
|
boxrule=0pt,
|
|||
|
leftrule=1pt,
|
|||
|
rightrule=0pt,
|
|||
|
toprule=0pt,
|
|||
|
bottomrule=0pt,
|
|||
|
titlerule=0pt,
|
|||
|
colframe=#4,
|
|||
|
fonttitle=\color{#4}\sffamily\scshape,
|
|||
|
overlay={
|
|||
|
\node[
|
|||
|
outer sep=-1pt,
|
|||
|
anchor=west,
|
|||
|
fill=#4,
|
|||
|
font=\color{#3}\sffamily\scshape
|
|||
|
] at (title.west) {#2~\thetcbcounter};
|
|||
|
},
|
|||
|
adjusted title={}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
% --- Some nice color sets
|
|||
|
% ---
|
|||
|
\definecolor{yellowtitle}{RGB}{133,100,4}
|
|||
|
\definecolor{yellowtitleback}{RGB}{255,243,205}
|
|||
|
\definecolor{yellowtitleborder}{RGB}{255,238,196}
|
|||
|
|
|||
|
\definecolor{turquoisetitle}{RGB}{12,84,96}
|
|||
|
\definecolor{turquoisetitleback}{RGB}{209,236,241}
|
|||
|
\definecolor{turquoisetitleborder}{RGB}{190,229,235}
|
|||
|
|
|||
|
\definecolor{redtitle}{RGB}{114,28,36}
|
|||
|
\definecolor{redtitleback}{RGB}{248,215,218}
|
|||
|
\definecolor{redtitleborder}{RGB}{245,198,203}
|
|||
|
|
|||
|
|
|||
|
\definecolor{greentitle}{RGB}{21,87,36}
|
|||
|
\definecolor{greentitleback}{RGB}{212,237,218}
|
|||
|
\definecolor{greentitleborder}{RGB}{195,230,203}
|
|||
|
|
|||
|
% --- Some environments
|
|||
|
% ---
|
|||
|
%\myenvironment{exercice}{Exercice}{greentitle}{greentitleback}
|
|||
|
\myenvironment{rappel}{Rappel}{greentitle}{greentitleback}
|
|||
|
\myenvironment{notion}{Notions abordées}{greentitle}{greentitleback}
|
|||
|
\myenvironment{example}{Exemple}{yellowtitle}{yellowtitleback}
|
|||
|
\myenvironment{important}{Important}{yellowtitle}{yellowtitleback}
|
|||
|
\myenvironment{further}{Pour aller plus loin}{greentitle}{greentitleback}
|
|||
|
%\myenvironment{question}{Réponse - Question}{turquoisetitle}{turquoisetitleback}
|
|||
|
\myenvironment{question}{Question}{turquoisetitle}{turquoisetitleback}
|
|||
|
\myenvironment{definition}{Définition}{redtitle}{redtitleback}
|
|||
|
\myenvironment{regle}{Règle}{redtitle}{redtitleback}
|
|||
|
%\myenvironment{consigne}{Réponse - À faire}{redtitle}{redtitleback}
|
|||
|
\myenvironment{consigne}{À faire}{redtitle}{redtitleback}
|
|||
|
\myenvironment{savoir}{À savoir}{redtitle}{redtitleback}
|
|||
|
\myenvironment{important2}{Important}{redtitle}{redtitleback}
|
|||
|
\myenvironment{exercice}{Exercice}{turquoisetitle}{turquoisetitleback}
|
|||
|
\myenvironment{methode}{Méthode}{turquoisetitle}{turquoisetitleback}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
% --- Create fake \onslide and other commands for standalone picture
|
|||
|
% ---
|
|||
|
% TODO is this working?
|
|||
|
\usepackage{xparse}
|
|||
|
\NewDocumentCommand{\onslide}{s t+ d<>}{}
|
|||
|
\NewDocumentCommand{\only}{d<>}{}
|
|||
|
\NewDocumentCommand{\uncover}{d<>}{}
|
|||
|
\NewDocumentCommand{\visible}{d<>}{}
|
|||
|
\NewDocumentCommand{\invisible}{d<>}{}
|
|||
|
|
|||
|
|
|||
|
% --- Some nice left bar for answer environment
|
|||
|
% ---
|
|||
|
\usepackage{framed}
|
|||
|
\usepackage{xcolor}
|
|||
|
|
|||
|
\renewenvironment{leftbar}[1][\hsize]
|
|||
|
{%
|
|||
|
\def\FrameCommand
|
|||
|
{%
|
|||
|
{\color{turquoisetitleborder}\vrule width 3pt}%
|
|||
|
\hspace{0pt}%must no space.
|
|||
|
\fboxsep=\FrameSep\colorbox{turquoisetitleback}%
|
|||
|
}%
|
|||
|
\MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}%
|
|||
|
}
|
|||
|
{\endMakeFramed}
|
|||
|
|
|||
|
% --- Answer environment
|
|||
|
% --- Create an 'answer' environment, that will be hidden if the command \answersfalse is used
|
|||
|
\usepackage{ifthen}
|
|||
|
\newif\ifanswers
|
|||
|
\answerstrue % Answers are displayed by default.
|
|||
|
|
|||
|
% Actual answer command
|
|||
|
%\newenvironment{terseA}
|
|||
|
%{
|
|||
|
% \ifanswers
|
|||
|
% \begin{itshape}
|
|||
|
% \leftbar
|
|||
|
%}
|
|||
|
%{
|
|||
|
% \endleftbar
|
|||
|
% \end{itshape}
|
|||
|
% \fi
|
|||
|
%}
|
|||
|
\newcommand\terseA[1]{
|
|||
|
\ifanswers
|
|||
|
\begin{itshape}
|
|||
|
\leftbar
|
|||
|
#1
|
|||
|
\endleftbar
|
|||
|
\end{itshape}
|
|||
|
\fi
|
|||
|
}
|
|||
|
|
|||
|
% --- Question env
|
|||
|
% --- Create a 'question' environment that display text 'Question' and a counter
|
|||
|
\newcounter{simplequestions}
|
|||
|
\setcounter{simplequestions}{1}
|
|||
|
\newenvironment{terseQ}
|
|||
|
{
|
|||
|
\textbf{Question \arabic{simplequestions}}
|
|||
|
\stepcounter{simplequestions}
|
|||
|
}{
|
|||
|
}
|
|||
|
%\newcommand{\terseQuestion}[1]{
|
|||
|
% \textbf{Question \arabic{simplequestions}}
|
|||
|
% \stepcounter{simplequestions}
|
|||
|
% #1
|
|||
|
%}
|
|||
|
|
|||
|
% --- A duration indication
|
|||
|
% ---
|
|||
|
\newcommand\duration[1]{
|
|||
|
\small{#1}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
% --- Some default values
|
|||
|
% ---
|
|||
|
\date{\academicyear}
|
|||
|
\title{}
|
|||
|
\author{}
|