%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% One big LaTeX template to : %% * import all packages, %% * define many macros (from many other files), %% %% It is designed to make articles %% (\documentclass[french, a4paper, 10pt]{article}) %% and Beamer slides (with naereenbeamer.sty) %% %% by Lilian Besson, (C) 2013 - v1.8.5 2014/07/24 %% http://lbesson.bitbucket.org/ %% mailto:Lilian.BESSON[@]ens-cachan[.]fr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Permission is granted to freely use, copy, and distribute %% without restriction. Permission is also granted to distribute %% modified versions and incorporate into your own macro packages %% if a brief acknowledgement is given. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}[1994/06/01] \ProvidesPackage{naereen}[2014/07/24 v1.8.5 Naereen Package] \message{} %% %% Packages %% -------- %% hyperref, fancyhdr, geometry are NOT imported. %% do it your self in your .tex AFTER \usepackage{naereen} %% Well understand input, and nice output %\usepackage[francais]{babel} \usepackage[english]{babel} %\usepackage{babel} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage[T1]{fontenc} % For japanese, see http://tex.stackexchange.com/questions/15516/how-to-write-japanese-with-latex % Starts a japanese paragraph with "\begin{CJK}{UTF8}{min}" and ends it with "\end{CJK}" %\usepackage{CJKutf8} % For better french support \usepackage{textcomp} % From docutils generated .tex files \usepackage{fixltx2e} % LaTeX patches, \textsubscript \usepackage{cmap} % fix search and cut-and-paste in Acrobat \usepackage{ifthen} \usepackage{longtable,ltcaption,array} \setlength{\extrarowheight}{2pt} \newlength{\DUtablewidth} % internal use in tables \usepackage{tabularx} %% AMS maths and others \usepackage{amsmath} %\usepackage[tbtags]{amsmath} \usepackage{amsthm} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{fancyvrb} \usepackage{makeidx} % Use the right quotes (depending of the language of babel) \usepackage[babel=true]{csquotes} %% Colors \usepackage{xcolor} \usepackage{color} %[usenames,dvipsnames,pdftex] \usepackage{float} \usepackage{url} % Allows url with \url{http://truc.machin/ok?r=yes} %% Figures and effects \usepackage{framed} %%\usepackage{subfigure} \usepackage{multicol} \usepackage{wrapfig} \usepackage{lastpage} %% Source code \usepackage{moreverb} \usepackage{listings} %\usepackage{caption} \usepackage[hypcap]{caption} \usepackage{subcaption} \usepackage[nottoc, notlof, notlot]{tocbibind} \usepackage[clearempty]{titlesec} \usepackage{ifpdf} % Allows the \ifpdf \fi block %% Effects \usepackage{array} \usepackage{microtype} %% Graphism with TiKZ (add there additional TiKZ libraries) \usepackage{tikz} \usetikzlibrary{shapes, matrix, arrows, decorations.pathmorphing, fadings} %% Custom TiKZ macros \tikzset{every picture/.style={execute at begin picture={ \shorthandoff{:;!?};} }} %% \usepackage[upright]{fourier} %% Magic! \usepackage{relsize} \usepackage{setspace} %\usepackage[small,compact]{titlesec} %\usepackage{titlesec} \usepackage{stmaryrd} %% Disables ligatures (like ff or fi printed with special caracters) \usepackage{microtype} %\DisableLigatures{encoding = *, family = *} \usepackage{enumitem} % \usepackage[pdftex]{graphicx} \usepackage{graphicx} % % FontAwesome LaTeX package by Xavier Danaux % % http://www.ctan.org/tex-archive/fonts/fontawesome % % Too sad, only with XeTeX or LuaTeX % \usepackage{fontawesome} % % MarVoSym LaTeX package by Thomas Henlich % % http://www.ctan.org/tex-archive/fonts/marvosym % \usepackage{marvosym} % % Source: https://tex.stackexchange.com/questions/28866/how-to-print-frac12-by-a-single-unicode-character % \usepackage{nicefrac} % For comparison %% FIXME, http://hevea.inria.fr/doc/manual007.html %% do a naereen.hva ? Nope, useless %\usepackage{hevea} %HEVEA \footerfalse % Disable hevea advertisement in footer %% Include the bibliography in the Tables of Content. FIXME %\usepackage[nottoc, notlof, notlot, numbib]{tocbibind} %%%%%%%%%%%%%%%%%%%%%%%%%%% begin mathlig %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % mathlig.tex % % (c) 2001 Jules Bean % Permission is granted to freely use, copy, and distribute % without restriction. Permission is also granted to distribute % modified versions and incorporate into your own macro packages % if a brief acknowledgement is given. % % Version 1.0 11 May 2001 % Define 'mathmode' ligatures, as in % %\mathlig{->}{\rightarrow} %\mathlig{<-}{\leftarrow} %\mathlig{<->}{\leftrightarrow} % % Works even if they have common prefixes (takes the longest match, % then backtracks). % % Can be used to create ligatures even if the second % and subsequent characters have weird catcodes, but I don't recommend % it. \count255\catcode`@ \catcode`@=11 \chardef\mathlig@atcode\count255 % Let or def an 'active' version of a token. Thanks to Donald % Arseneau and groups.google.com \def\actively#1#2{\begingroup\uccode`\~=`#2\relax\uppercase{\endgroup#1~}} % Eat the next token, and then pass control to mathlig@next@cmd \def\mathlig@gobble{\afterassignment\mathlig@next@cmd\let\mathlig@next= } % Used to delimit delimited arguments, and ifx tests for emptyness. \def\mathlig@delim{\mathlig@delim} % Some macros to help dealing with 'computed names' (csnames). % Just like def, but first parameter is evaluated as a csname \def\mathlig@defcs#1{\expandafter\def\csname#1\endcsname} % A version of \let \def\mathlig@let@cs#1#2{\expandafter\let\expandafter#1\csname#2\endcsname} % Maintain a 'list' of tokens as a macro which expands to them \def\mathlig@appendcs#1#2{\expandafter\edef\csname#1\endcsname{\csname#1\endcsname#2}} % The main externally visible macro. % Defines '#1' as a 'ligature' to expand to #2 % First uses \mathlig@checklig to make sure that all initial segments of % #1 as set up as ligatures. % Then sets the ligature #1 to expand to #2. \def\mathlig#1#2{\mathlig@checklig#1\mathlig@end\mathlig@defcs{mathlig@back@#1}{#2}\ignorespaces} % All the @check macros should be idempotent: they set up the definitions % only if it hasn't already been done. %Check #1#2 can be a ligature: % Check #1 is math-active. % If not, save the mathcode, set the macros #1 %Now check the suffix tables with \checkrest \def\mathlig@checklig#1#2\mathlig@end{% \expandafter\ifx\csname mathlig@forw@#1\endcsname\relax \expandafter\mathchardef\csname mathlig@back@#1\endcsname=\mathcode`#1% \mathcode`#1"8000\actively\def#1{\csname mathlig@look@#1\endcsname}% \mathlig@dolig#1\mathlig@delim \fi \mathlig@checksuffix#1#2\mathlig@end } %Two-part macro. %Check suffix tables. If #2 is empty, no suffix! %Otherwise, we make sure #2 is a valid suffix for #1, %then recurse for #3 on #1#2 \def\mathlig@checksuffix#1#2\mathlig@end{% \ifx\mathlig@delim#2\mathlig@delim\relax\else\mathlig@checksuffix@{#1}#2\mathlig@end\fi } \def\mathlig@checksuffix@#1#2#3\mathlig@end{% \expandafter\ifx\csname mathlig@forw@#1#2\endcsname\relax\mathlig@dosuffix{#1}{#2}\fi \mathlig@checksuffix{#1#2}#3\mathlig@end } % The do macros should not be called more than once for a given ligature. % Add #2 to the list of valid suffixes for #1 % Then make the ligature for #1#2 one which only backtracks, for now \def\mathlig@dosuffix#1#2{% \mathlig@appendcs{mathlig@toks@#1}{#2}% \mathlig@dolig{#1}{#2}\mathlig@delim } % Setup #1#2 so that ligatures beginning #1#2 work. % Such ligatures will look at what's coming next (in case % of a longer ligature) and, failing that, % backtrack to just #1 \def\mathlig@dolig#1#2\mathlig@delim{% %The look macro just \futurelets what's coming up and %then passes control to forw \mathlig@defcs{mathlig@look@#1#2}{% \mathlig@let@cs\mathlig@next{mathlig@forw@#1#2}\futurelet\mathlig@next@tok\mathlig@next}% %The forw macro uses chck to try all possible suffixes, passing control %either to one of those, or to the back macro \mathlig@defcs{mathlig@forw@#1#2}{% \mathlig@let@cs\mathlig@next{mathlig@back@#1#2}% \mathlig@let@cs\checker{mathlig@chck@#1#2}% \mathlig@let@cs\mathligtoks{mathlig@toks@#1#2}% \expandafter\ifx\expandafter\mathlig@delim\mathligtoks\mathlig@delim\relax\else \expandafter\checker\mathligtoks\mathlig@delim\fi \mathlig@next }% %The toks macro just stores the suffixes \mathlig@defcs{mathlig@toks@#1#2}{}% %The chk macro goes through the suffixes one by one %tail recursing until it runs out, or finds one. \mathlig@defcs{mathlig@chck@#1#2}##1##2\mathlig@delim{% %\message{Lig so far '#1#2', checking for '##1'}% \ifx\mathlig@next@tok##1% \mathlig@let@cs\mathlig@next@cmd{mathlig@look@#1#2##1}\let\mathlig@next\mathlig@gobble \fi \ifx\mathlig@delim##2\mathlig@delim\relax\else \csname mathlig@chck@#1#2\endcsname##2\mathlig@delim \fi }% % % The back macro, defined only if this is a ligature of at least % two characters, is a default fallback: go back to the previous char. % (If this is a ligature of only one character, the mathcode will have % been saved and set as the fallback elsewhere) \ifx\mathlig@delim#2\mathlig@delim\else \mathlig@defcs{mathlig@back@#1#2}{\csname mathlig@back@#1\endcsname #2}% \fi }% \catcode`@\mathlig@atcode %%%%%%%%%%%%%%%%%%%%%%%%%%% end mathlig %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Doesn't work yet. %%% \usepackage{at} %% Last magic stuff \usepackage{xspace} \usepackage{mathabx} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Options. \pagenumbering{arabic} \setcounter{tocdepth}{4} %% Disable if writting not in French. \frenchspacing % BibTeX style (default: alpha) : cf http://nodonn.tipido.net/bibstyle.php \bibliographystyle{alpha} \setlength{\parskip}{0.3\baselineskip} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define some standard ``theorem'' types. From Paul Taylor's QED.sty \def\DefineStandardTheorems{% % % First set up uniform numbering in LaTeX; % don't use this in plain TeX because this usage of \newcommand is not % supported and we have already done by hand what it would do in LaTeX, % viz to define the macro \theResult and the count \c@Result. \relax\ifx\@@thm\undefined \newtheorem{result}{Result}[section]% % \@addtoreset{Result}{section}% % \ifx\chapter\undefined\else\@addtoreset{result}{chapter}\fi \fi % \let\theUnnumbered\relax\countdef\c@Unnumbered255 \def\p@Unnumbered{}% % % \def\mkthm##1##2{\newtheorem{##1}{##2}[section]}% \def\mkthm##1##2{\newtheorem{##1}{##2}}% % \mkthm{conjecture}{Conjecture}% \mkthm{conjectures}{Conjectures}% \mkthm{convention}{Convention}% \mkthm{conventions}{Conventions}% % \mkthm{corollary}{Corollary}% \mkthm{corollaries}{Corollaries}% \mkthm{counterexample}{Counterexample}% \mkthm{counterexamples}{Counterexamples}% % \mkthm{definition}{Definition}% % \mkthm{definitions}{Definitions}% % \mkthm{example}{Example}% % \mkthm{examples}{Examples}% % \mkthm{lemma}{Lemma}% \mkthm{lemmas}{Lemmas}% \mkthm{nb}{NB}% \mkthm{notation}{Notation}% \mkthm{notations}{Notations}% %\mkthm{note}{Note}% \mkthm{proposition}{Proposition}% \mkthm{propositions}{Propositions}% \mkthm{remark}{Remark}% \mkthm{remarks}{Remarks}% % \mkthm{theorem}{Theorem}% \mkthm{theorems}{Theorems}% \mkthm{thesis}{Thesis}% \mkthm{theses}{Theses}% %% Mine, in French. \mkthm{lem}{Lemme}% % \mkthm{rule}{Rule}% % \mkthm{lemr}{Rule}% \mkthm{prop}{Proposition}% \mkthm{theo}{Théorème}% \mkthm{coro}{Corollaire}% \mkthm{demo}{Preuve}% \mkthm{defn}{Définition}% \mkthm{nota}{Notation}% \mkthm{conj}{Conjecture}% \mkthm{exmp}{Exemple}% \mkthm{case}{Cas}% \mkthm{mynote}{Note}% \mkthm{conc}{Conclusion}% } %% To have the enumeration follow from your section or subsection heading, %% you must use the amsmath package or use AMS class documents. Then enter %%\numberwithin{equation}{section} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Code embedding. %% Custom color for code embedding. \definecolor{dkgreen}{rgb}{0,0.4,0} \definecolor{gray}{rgb}{0.5,0.5,0.5} \definecolor{mauve}{rgb}{0.58,0,0.82} \lstset{ % backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor} basicstyle=\texttt\small, % the size of the fonts that are used for the code, FIXME \ttfamily breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace breaklines=true, % sets automatic line breaking captionpos=b, % sets the caption-position to bottom commentstyle=\small\color{dkgreen}, % comment style % deletekeywords={...}, % if you want to delete keywords from the given language % escapeinside={\%*}{*)}, % if you want to add LaTeX within your code % extendedchar=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8 frame=single, % adds a frame around the code keywordstyle=\small\color{blue}, % keyword style language=python, % the language of the code % if you want to add more keywords to the set % morekeywords={define,domain,objects,init,goal,problem,action,parameters,precondition,effect,types,requirements,strips,typing}, numbers=left, % where to put the line-numbers; possible values are (none, left, right) numbersep=5pt, % how far the line-numbers are from the code numberstyle=\tiny\color{gray}, % the style that is used for the line-numbers rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces' showstringspaces=false, % underline spaces within strings only showtabs=false, % show tabs within strings adding particular underscores stepnumber=1, % the step between two line-numbers. If it's 1, each line will be numbered stringstyle=\small\color{mauve}, % string literal style tabsize=2, % sets default tabsize to 2 spaces prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, % pour la fin des lignes. aboveskip={1.5\baselineskip}, %title=\lstname % show the filename of files included with \lstinputlisting; also try caption instead of title % title=\tiny{File \textcolor{blue}{\url{\lstname}}} % show the filename of files included with \lstinputlisting; also try caption instead of title %% FIXME title ! } \lstset{breaklines=true, basicstyle=\sffamily} %, extendedchars=true %% From https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Customizing_captions \DeclareCaptionFont{white}{ \color{white} } \DeclareCaptionFormat{listing}{ \colorbox[cmyk]{0.43, 0.35, 0.35, 0.01}{ \parbox{\textwidth}{\hspace{15pt}#1#2#3} } } \captionsetup[lstlisting]{format=listing, labelfont=white, textfont=white, singlelinecheck=false, font={bf,footnotesize} } %, margin=5pt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% From superquack.sty, and custom commands. \newcommand{\parcomment}[1]{\begin{center}% \fbox{% \begin{minipage}{.8\columnwidth}% #1% \end{minipage}}% \end{center}} \newcommand{\margincomment}[1]{\marginpar{\raggedright #1}} \newcommand{\p}[1]{\ensuremath{\mathsf{#1}}} % predicate font \newcommand{\m}[1]{\ensuremath{\mathit{#1}}} % math font \newcommand{\emp}{\p{emp}} %% stack interpretation \newcommand{\sint}[1]{\llbracket #1\rrbracket_s} \newcommand{\siint}[1]{\llbracket #1\rrbracket_{s,i}} \newcommand{\inti}[1]{\llbracket #1\rrbracket_i} %% (free) variables of a term \newcommand{\varsof}{\mathit{var}} \newcommand{\fvarsof}{\mathit{freevar}} \newcommand{\flvarsof}{\mathit{freevar}} %% sets \newcommand{\val}{\set{Val}} \newcommand{\loc}{\set{Loc}} \newcommand{\fld}{\set{Field}} \newcommand{\lvar}{\set{LVar}} %% floats \floatstyle{plain} \newfloat{figure}{tp}{los} \floatname{figure}{Figure} \renewcommand{\topfraction}{0.9} \renewcommand{\bottomfraction}{0.3} \renewcommand{\textfraction}{0.07} \renewcommand{\floatpagefraction}{0.9} \renewcommand{\dblfloatpagefraction}{0.9} \setcounter{topnumber}{2} \setcounter{bottomnumber}{2} \setcounter{totalnumber}{4} % 2 may work better \setcounter{dbltopnumber}{2} % for 2-column pages \renewcommand{\dbltopfraction}{0.9} % fit big float above 2-col. text % squeeeeeeeeeze \addtolength{\textfloatsep}{-10pt} \addtolength{\dbltextfloatsep}{-10pt} \addtolength{\floatsep}{-17pt} % dags \newcommand{\dagrootpic}[3]{ \tikz{ \draw(0,0)--(1ex,1ex)--(2ex,0); \node [fill=white] at (1ex,1ex) {#1}; \node [fill=white] at (0,0) {#2}; \node [fill=white] at (2ex,0) {#3};}} \newcommand{\transforms}[4]{#3 |- #1 * (#2 --* #4)} \newcommand{\precise}[1]{\mathsf{precise}(#1)} \tikzstyle treetext=[inner sep=0pt] \newcommand{\tree}[3]{\m{node}(#1,#2,#3)} %% {\tikz[baseline,yshift=-1.5ex]{% %% \draw (0,0) node[treetext] (a) {$#2$}; %% \draw (a.east)++(3ex,0) node[treetext,anchor=west] (b) %% {$#3$}; %% \draw (a.north east)++(1.5ex,3ex) node[treetext] (c) {$#1$}; %% \draw (a.north) -- (c); \draw (c) -- (b.north);}\xspace} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% common.sty % Write a label above something, e.g. an arrow \newcommand{\stacklabel}[1]{\stackrel{\smash{\scriptscriptstyle #1}}} %% Quantifiers % \newcommand{\E}[1]{\exists #1.\,} % \newcommand{\V}[1]{\forall #1.\,} \newcommand{\E}[0]{\exists} \newcommand{\V}[0]{\forall} %% Sets \newcommand{\N}{\mathbb{N}} \newcommand{\R}{\mathbb{R}} \newcommand{\Rn}{\mathbb{R}^n} \newcommand{\MnR}{\mathbb{M}_n(\mathbb{R})} \newcommand{\C}{\mathbb{C}} \newcommand{\Cn}{\mathbb{C}^n} \newcommand{\MnC}{\mathbb{M}_n(\mathbb{C})} \newcommand{\Mn}[1]{\mathbb{M}_n(#1)} \newcommand{\Q}{\mathbb{Q}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\D}{\mathbb{D}} \newcommand{\K}{\mathbb{K}} \newcommand{\Pset}{\mathcal P} \renewcommand{\epsilon}{\varepsilon} \newcommand{\suite}[2][n \gt 0]{(#1)_{#2}} % To use like $\suite{2^{2^n}-1}$ or $\suite[u\gt1]{1/u}$. \newcommand{\vect}[1]{\text{Vect}(#1)} \newcommand{\deciproblem}[2]{% Input: #1\\ Output: #2} \newcommand{\dom}{\mathit{dom}} \newcommand{\set}[1]{\ensuremath{\mathsf{#1}}} \newcommand{\form}{\mathsf} \newcommand{\repl}[2]{[#1<-#2]} \newcommand{\exch}[2]{[#1<->#2]} \newcommand{\fv}{\mathit{fv}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% seplog.sty, FIXME embed mathpartir ? %%\RequirePackage{at} % \RequirePackage{mathabx} % \usepackage{mathpartir} % \RequirePackage{mathpartir} % % For comparison, the existing overlap macros: % % \def\llap#1{\hbox to 0pt{\hss#1}} % % \def\rlap#1{\hbox to 0pt{#1\hss}} % \def\clap#1{\hbox to 0pt{\hss#1\hss}} % \def\mathllap{\mathpalette\mathllapinternal} % \def\mathrlap{\mathpalette\mathrlapinternal} % \def\mathclap{\mathpalette\mathclapinternal} % \def\mathllapinternal#1#2{% % \llap{$\mathsurround=0pt#1{#2}$}} % \def\mathrlapinternal#1#2{% % \rlap{$\mathsurround=0pt#1{#2}$}} % \def\mathclapinternal#1#2{% % \clap{$\mathsurround=0pt#1{#2}$}} % \newcommand{\permstar}{\odot} % \newcommand{\infrulestyle}[1]{\textsc{#1}} % \newcommand{\hoare}[3]{\{#1\}\ \li{#2}\ \{#3\}} % \newcommand{\hoarelong}[3]{\begin{array}{@{}l@{}}\{#1\}\cr \li{#2}\cr \{#3\}\end{array}} % \newcommand{\metahoare}[3]{\{#1\}\ #2\ \{#3\}} % %% Inference rules % \newcommand{\SideCondition}[1]{\RightLabel{\scriptsize{#1}}} % \renewcommand{\TirName}[1]{#1} % \renewcommand{\RefTirName}[1]{#1} % \newcommand{\infrulelabel}[1]{\mbox{\normalfont\small\textsc{#1}}} % \newcommand{\infrule}[5][]{{\inferrule*[#1,lab=\infrulestyle{#2},right=\mathrlap{\text{#5}}] % {#3}{#4}}} % \newcommand{\infruleR}[5][]{{\inferrule*[#1,lab=\infrulestyle{#2},right=\text{#5}] % {#3}{#4}}} % \newcommand{\infruleL}[5][]{{\inferrule*[#1,lab=\infrulestyle{#2},left=\mathllap{\text{#5}}] % {#3}{#4}}} % \newcommand{\infruleBC}[4]{\infrule{#1}{#2}{#3\\\\\rule{0pt}{3ex} % {}^\dagger#4}{${}^\dagger$}} % \newcommand{\derivation}[4]{ % {\inferrule*[lab=#1,right=\ensuremath{\mathrlap{\infrulestyle{#4}}}] % {#2}{#3}}} % % To make a proof tree % \newcommand{\derivationRnolap}[4]{ % {\inferrule*[lab=#1,right={#4}] % {#2}{#3}}} % \newcommand{\derivationLnolap}[4]{ % {\inferrule*[lab=#1,left={#4}] % {#2}{#3}}} % \newcommand{\derivationR}[4]{ % {\inferrule*[lab=#1,right=\mathrlap{#4}] % {#2}{#3}}} % \newcommand{\derivationL}[4]{ % {\inferrule*[lab=#1,left=\mathllap{#4}] % {#2}{#3}}} \newcommand{\field}[1]{\mathsf{#1}} \newcommand{\ite}[3]{\form{if}\ {#1}\ \form{then}\ {#2}\ \form{else}\ {#3}} \newcommand{\while}[2]{\form{while}\ {#1}\ \form{do}\ {#2}\ \form{done}} \renewcommand{\#}{\ensuremath{\sharp}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Couple of macros % Clicable urls (blue, red, green) \newcommand{\urlb}[1]{\textcolor{blue}{\url{#1}}} \newcommand{\urlr}[1]{\textcolor{red}{\url{#1}}} \newcommand{\urlg}[1]{\textcolor{dkgreen}{\url{#1}}} %% To embed code, % \includecode{language}{begin}{end}{uri} % and @uri must be RELATIVE to the .tex \newcommand{\includecode}[4]{\lstinputlisting[title={\small{Extern file \textcolor{blue}{\url{{#4}}} \textit{(lines {#2} to {#3}).}}}, language={#1}, firstline={#2}, lastline={#3}]{#4}} %% To embed code, previously colored with pygmentize % \pygmentize{label}{caption}{file} % and @file must be RELATIVE to the .sty, WITHOUT extension % @file.tex HAVE TO BE PRESENT \newcommand{\pygmentize}[3]{ \begin{figure}[H]\caption{#2}\label{#1} \small{ \input{#3.tex} } \end{figure}} \newcommand{\pygmentizeCustom}[4]{ \begin{figure}[H]\caption{#2}\label{#1} \begin{#4} \input{#3.tex} \end{#4} \end{figure}} \newcommand{\pygmentizeframed}[3]{ \begin{figure}[H]\caption{#2}\label{#1} \begin{framed} \small{ \input{#3.tex} } \end{framed} \end{figure}} %% A demo, ending by a # \newenvironment{demoBox}{\begin{demo} }{ $\Box$ \end{demo}} %% A conclusion, framed \newenvironment{concl}{\begin{framed} \textit{Conclusion}:}{ \end{framed}} %% Useful shortcuts. \newcommand{\ssi}{\textbf{ssi} } \renewcommand{\iff}{\textbf{iff} } \newcommand{\ie}[0]{\textit{i.e.} } \newcommand{\ev}[0]{\textit{e.v.} } \renewcommand{\it}[1]{\textit{#1}} \renewcommand{\tt}[1]{\texttt{#1}} \renewcommand{\bf}[1]{\textbf{#1}} \newcommand{\un}[1]{\underline{#1}} \newcommand{\todo}[1]{\begin{framed} {\color{red} \textbf{TODO} : #1} \end{framed}} \usepackage{manfnt} %% Make At Letter part (what does this mean exactly ?) \makeatletter % Faire une commande \danger qui fasse un symbole danger ! \def\hang{\hangindent\parindent} \def\d@nger{\medbreak\begingroup\clubpenalty=10000 \def\par{\endgraf\endgroup\medbreak} \noindent\hang\hangafter=-2 \hbox to0pt{\hskip-\hangindent\dbend\hfill}} \outer\def\danger{\d@nger} % Pour mettre du texte en indice, même sans utiliser Babel:French et son \up \DeclareRobustCommand*\textsubscript[1]{% \@textsubscript{\selectfont#1}} \def\@textsubscript#1{% {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} % Pour mettre du texte en exposant, même sans utiliser Babel:French et son \up \DeclareRobustCommand*\textsuperscript[1]{% \@textsuperscript{\selectfont#1}} \def\@textsuperscript#1{% {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}} \makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Specialized math shortcuts \newcommand{\exo}[1]{ \section{Part {#1}} } \newcommand{\qu}[1]{ \subsection{Question {#1}} } \newcommand{\sq}[1]{ \subsubsection{{#1}} } \newcommand{\sub}[1]{\textsubscript{#1}} \newcommand{\up}[1]{\textsuperscript{#1}} \newcommand{\inv}[1]{\frac{1}{#1}} %% Hyperbolic functions \newcommand{\e}[0]{\mathrm{e}} \newcommand{\dx}[0]{\mathrm{d}x} \newcommand{\arccosh}[0]{\mathop{\mathrm{arccosh}}} \newcommand{\arcsinh}[0]{\mathop{\mathrm{arcsinh}}} \newcommand{\arctanh}[0]{\mathop{\mathrm{arctanh}}} %\newcommand{\cosh}{\mathop{\mathrm{\cosh}}} %\newcommand{\sinh}{\mathop{\mathrm{\sinh}}} %\newcommand{\tanh}{\mathop{\mathrm{\arctanh}}} %% Add \limits to sum, limit, product \renewcommand{\lim}[0]{\mathop{\mathrm{lim}}\limits} %% \renewcommand{\sum}[0]{\mathop{\large \Sigma}\limits} %% \renewcommand{\prod}[0]{\mathop{\large \Pi}\limits} %\renewcommand{\sum}[0]{\displaystyle\sum} %\renewcommand{\prod}[0]{\displaystyle\sum} \everymath{\displaystyle} \newcommand{\profvijay}[0]{\href{http://www.mahindraecolecentrale.edu.in/vijaysekhar-chellaboina.html}{Prof.~:~ Vijaysekhar~Chellaboina}} \newcommand{\profarya}[0]{\href{http://www.mahindraecolecentrale.edu.in/aryakumar-bhattacharya.html}{Prof.~:~ Arya~Kumar~Bhattacharya}} \newcommand{\profsatya}[0]{\href{http://www.mahindraecolecentrale.edu.in/chirala-satyanarayana.html}{Prof.~:~Chirala~Satyanarayana}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% this is like defining stuff after the \begin{document} \AtBeginDocument{ %% changing the name of some titles. % \addto\captionsenglish{% \renewcommand{\contentsname}{Summary}% \renewcommand{\abstractname}{Executive Summary}% \renewcommand{\refname}{Bibliography}% \renewcommand{\listfigurename}{List of figures}% \renewcommand{\listtablename}{List of tables}% % } \addto\captionsfrench{% ref: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=latexwords \renewcommand{\contentsname}{Sommaire}% \renewcommand{\abstractname}{Résumé}% \renewcommand{\refname}{Bibliographie}% \renewcommand{\listfigurename}{Liste des figures}% \renewcommand{\listtablename}{Liste des tableaux}% } \DefineStandardTheorems{} % Docutils tables \setlength{\DUtablewidth}{0.85\linewidth} %% ligatures % to be safe, use only characters from the following list: % ` " ' ~ ! ? @ * ( ) [ ] < > - + = | : ; . , / 0 1 2 3 4 5 6 7 8 9 % each lig must be defined after all ligs it prefixes % 3 chars % 2 chars \mathlig{|,}{\mathbin{\downarrow}} \mathlig{|'}{\mathbin{\uparrow}} % 1 char WARNING: change standard spacing %% common.sty \mathlig{<==>}{\mathrel{\Longleftrightarrow}} % equivalence \mathlig{--->}{\mathrel{\longrightarrow}} % transitions % 3 chars % \mathlig{::=}{\mathrel{\Coloneqq}} \mathlig{-->}{\mathrel{\rightarrow}} % set function space \mathlig{->>}{\mathrel{\leadsto}} % \leadsto \mathlig{<->}{\mathrel{\leftrightarrow}} \mathlig{-|}{\dashv} \mathlig{--`}{\mathrel{\rightharpoonup}} % partial function \mathlig{===}{\mathrel{\equiv}} % syntactic equality \mathlig{=/=}{\mathrel{\not\equiv}} % not syntactic equality \mathlig{|/-}{\nvdash} % not entailment \mathlig{|/=}{\nvDash} % not forces \mathlig{<=>}{\mathrel{\Leftrightarrow}} % equivalence of expressions \mathlig{==>}{\mathrel{\Rightarrow}} % meta implication \mathlig{|||}{\mathrel{|}} % grammar \mathlig{-|-}{\mathrel{\mathrlap{\dashv} \hspace{5pt} \vdash}} % entails % 2 chars \mathlig{==}{\mathrel{\stackrel{\smash{\scriptscriptstyle\mathrm{def}}}{=}}} \mathlig{/|}{\mathbin{\wedge}} % additive conjunction \mathlig{|/}{\mathbin{\vee}} % additive disjunction \mathlig{/=}{\mathrel{\neq}} % non-equality expression \mathlig{<=}{\leq} % less than or equal expression \mathlig{>=}{\geq} % more than or equal expression \mathlig{|-}{\mathrel{\vdash}} % entails \mathlig{|=}{\vDash} % models \mathlig{|>}{\vartriangleright} \mathlig{<|}{\vartriangleleft} \mathlig{[|}{\llbracket} % open double bracket \mathlig{|]}{\rrbracket} % close double bracket \mathlig{->}{\mathord{\rightarrow}} % field dereference \mathlig{<-}{\mathord{\leftarrow}} % assignement %% seplog.sty \mathlig{--*}{\mathrel{\magicwand}} \mathlig{--o}{\mathrel{\septraction}} \mathlig{|->}{\mathrel{\mapsto}} % tight points-to \mathlig{||-}{\mathbin{\Vdash}} \mathlig{**}{\mathbin{\ocon}} %\mathlig{*}{\mathbin{\scon}} %% maths one (new!) \mathlig{||}{\|} \mathlig{..}{\dots} \mathlig{oo}{\infty} } %% BEGIN of docutils.sty % providelength (provide a length variable and set default, if it is new) \providecommand*{\DUprovidelength}[2]{ \ifthenelse{\isundefined{#1}}{\newlength{#1}\setlength{#1}{#2}}{} } % docinfo (width of docinfo table) \DUprovidelength{\DUdocinfowidth}{0.9\textwidth} % fieldlist environment \ifthenelse{\isundefined{\DUfieldlist}}{ \newenvironment{DUfieldlist}% {\quote\description} {\enddescription\endquote} }{} % transition (break, fancybreak, anonymous section) \providecommand*{\DUtransition}[1][class-arg]{% \hspace*{\fill}\hrulefill\hspace*{\fill} \vskip 0.5\baselineskip } %% END of docutils.sty %% END of naereen.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%