131 lignes
6.7 KiB
TeX
131 lignes
6.7 KiB
TeX
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
|
\ProvidesPackage{yslistings}
|
|
\RequirePackage{listings}
|
|
\newcommand\lstinlinemm[1][]{%
|
|
\leavevmode\hbox\bgroup % \hbox\bgroup --> \bgroup
|
|
\def\lst@boxpos{b}%
|
|
\lsthk@PreSet\lstset{flexiblecolumns,#1}%
|
|
\lsthk@TextStyle
|
|
\@ifnextchar\bgroup{%
|
|
\afterassignment\lst@InlineG \let\@let@token}%
|
|
\lstinline@}
|
|
%@
|
|
\let\lstinlinetm\lstinline
|
|
\DeclareRobustCommand\lstinline{\ifmmode\let\nextlstinline\lstinlinemm\else\let\nextlstinline\lstinlinetm\fi\nextlstinline}
|
|
\RequirePackage{lstautogobble}
|
|
\RequirePackage{fontawesome}
|
|
|
|
\newbox\codebreakbox
|
|
\setbox\codebreakbox=\hbox{\textcolor[gray]{.75}{\scriptsize\upshape\faChevronCircleRight}}
|
|
|
|
\lstset{upquote=true,basicstyle=\ttfamily\NoAutoSpacing, keepspaces=true, columns=fullflexible, showstringspaces=false, commentstyle=\slshape, mathescape=true, stepnumber = 1, numberstyle=\scriptsize, numbersep=10pt, firstnumber=auto, breaklines=true, breakatwhitespace=true, prebreak={\copy\codebreakbox}, postbreak={\copy\codebreakbox}, autogobble, includerangemarker=false}
|
|
\lstset{literate=
|
|
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
|
|
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
|
|
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
|
|
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
|
|
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
|
|
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
|
|
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
|
|
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
|
|
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
|
|
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
|
|
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
|
|
{€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
|
|
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
|
|
{…}{{\dots}}1
|
|
{∅}{{∅}}1{ε}{{ε}}1
|
|
}
|
|
\lstdefinestyle{numbers}{numbers = left, xleftmargin=2em}
|
|
\lstdefinestyle{numbers-zero}{numbers = left, xleftmargin=2em, firstnumber=0}
|
|
\lstdefinestyle{nonumbers}{numbers = none}
|
|
\let\nm\|
|
|
|
|
\lstdefinelanguage{mybash}[]{bash}
|
|
{ morekeywords={ls, stat}}
|
|
|
|
\lstdefinelanguage{mysql}[]{sql}
|
|
{morekeywords={OFFSET} }
|
|
|
|
%% Python definition (c) 1998 Michael Weber
|
|
%% Additional definitions (2013) Alexis Dimitriadis
|
|
%%
|
|
\lstdefinelanguage{Python3}{%
|
|
morekeywords={access, and, as, async, break, class, continue, def, del, elif, else,%
|
|
except, exec, finally, for, from, global, if, import, in, is, lambda,%
|
|
nonlocal, not, or, pass, raise, return, try, while, yield},%
|
|
% Built-ins
|
|
morekeywords=[2]{abs, all, any, basestring, bin, bool, bytearray,%
|
|
callable, chr, classmethod, cmp, compile, complex, delattr, dict, dir,%
|
|
divmod, enumerate, eval, execfile, file, filter, float, format,%
|
|
frozenset, getattr, globals, hasattr, hash, help, hex, id, input, int,%
|
|
isinstance, issubclass, iter, len, list, locals, long, map, max,%
|
|
memoryview, min, next, object, oct, open, ord, pow, property, range,%
|
|
input, reduce, reload, repr, reversed, round, set, setattr, slice,%
|
|
sorted, staticmethod, str, sum, super, tuple, type, unichr, unicode,%
|
|
vars, zip, apply, buffer, coerce, intern, print},%
|
|
keywordstyle=[2]{\relax},
|
|
sensitive=true,%
|
|
morecomment=[l]\#,%
|
|
morestring=[b]',%
|
|
morestring=[b]",%
|
|
morestring=[s]{'''}{'''},% used for documentation text
|
|
% (mulitiline strings)
|
|
morestring=[s]{"""}{"""},% added by Philipp Matthias Hahn
|
|
morestring=[s]{r'}{'},% `raw' strings
|
|
morestring=[s]{r"}{"},%
|
|
morestring=[s]{r'''}{'''},%
|
|
morestring=[s]{r"""}{"""},%
|
|
morestring=[s]{u'}{'},% unicode strings
|
|
morestring=[s]{u"}{"},%
|
|
morestring=[s]{u'''}{'''},%
|
|
morestring=[s]{u"""}{"""}%
|
|
}%
|
|
|
|
|
|
\lstdefinelanguage{mycaml}[Objective]{caml}
|
|
{ morekeywords={raise}}
|
|
|
|
\def\|{\lstinline[language=Python3, name=inlinepython]|} %|
|
|
\def\°{\lstinline[language={mycaml}, name=inlinecaml]°} %°
|
|
\def\§{\lstinline[language=mysql, name=inlinesql]§} %§
|
|
\def\>{\lstinline[language=mybash, name=inlineshell]>} %>
|
|
\def\£{\lstinline[language={[x86masm]Assembler}]£} %£
|
|
\lstnewenvironment{lstpython}[1][]{\leavevmode\lstset{language=Python3, frame=single, frameround=tttt, #1}}{}
|
|
\lstnewenvironment{lstcaml}[1][]{\leavevmode\lstset{language=mycaml, frame=single, frameround=tttt, #1}}{}
|
|
\lstnewenvironment{lstsql}[1][]{\leavevmode\lstset{language=mysql, frame=single, frameround=tttt, #1}}{}
|
|
\lstnewenvironment{lstshell}[1][]{\leavevmode\lstset{language=mybash, frame=single, frameround=tttt, #1}}{}
|
|
\NewDocumentCommand\inputcaml{om!O{}}{\leavevmode\IfValueTF{#1}{\lstinputlisting[language={mycaml}, frame=single, frameround=tttt, rangeprefix=(***\ , rangesuffix=\ ***), linerange=#1-#1_fin, #3]{#2}}{\lstinputlisting[language={mycaml}, frame=single, frameround=tttt, #3]{#2}}}
|
|
\NewDocumentCommand\inputpython{om!O{}}{\leavevmode\IfValueTF{#1}{\lstinputlisting[language={Python3}, frame=single, frameround=tttt, rangeprefix=\#\#\#\ , rangesuffix=\ \#\#\#, linerange=#1-#1_fin, #3]{#2}}{\lstinputlisting[language={Python3}, frame=single, frameround=tttt, #3]{#2}}}
|
|
\NewDocumentCommand\inputsql{om!O{}}{\leavevmode\IfValueTF{#1}{\lstinputlisting[language={mysql}, frame=single, frameround=tttt, rangeprefix=---\ , rangesuffix=\ ---, linerange=#1-#1_fin, #3]{#2}}{\lstinputlisting[language={mysql}, frame=single, frameround=tttt, #3]{#2}}}
|
|
|
|
%%%% https://tex.stackexchange.com/a/249561/103608
|
|
\makeatletter
|
|
\newcommand*{\lstitem}[1][]{%
|
|
\setbox0\hbox\bgroup
|
|
\patchcmd{\lst@InlineM}{\@empty}{\@empty\egroup\item[\usebox0]\leavevmode\\\ignorespaces}{}{}%
|
|
\lstinline[#1]%
|
|
}
|
|
\makeatother
|
|
\newcommand*{\itemcaml}[1][]{\lstitem[language=mycaml, #1]}
|
|
\newcommand*{\itempython}[1][]{\lstitem[language=Python3, #1]}
|
|
|
|
|
|
\lstdefinelanguage{algorithme}{%
|
|
morekeywords={Si, alors, TantQue, faire, PourChaque, FinSi, FinPour, FinTantQue, Fonction, Renvoyer, Sinon},
|
|
sensitive=true,
|
|
morestring=[b]",
|
|
morecomment=[s]{/*}{*/},
|
|
literate=*{:=}{{\hbox{\textbf{prend la valeur de}}}}{18}{Créer}{{\hbox{\textbf{Créer}}}}{5}{Définir}{{\hbox{\textbf{Définir}}}}{7}{<-result->}{{\hbox{\textbf{Le résultat est}}}}{15}
|
|
}
|
|
\lstnewenvironment{lstalgo}[1][]{\leavevmode\lstset{columns=fullflexible, basicstyle=\rmfamily\NoAutoSpacing, language=algorithme, frame=single, frameround=tttt, #1}}{}
|
|
|
|
\newbox\hoareboxB
|
|
\newbox\hoareboxC
|
|
\newbox\hoareboxA
|
|
%\newenvironment{trhoare}[2]{\setbox\hoarebox=\hbox\begingroup\begin{lstpython}[frame=none, basicstyle=\ttfamily\scriptsize]
|
|
%}{\end{lstpython}\endgroup}\left\{#1\vphantom{\copy\hoarebox}\right\}\quad\copy\hoarebox\quad\left\{\vphantom{\copy\hoarebox}#3\right\}}
|
|
|
|
%\long\def\trhoare#1\trhcode{\setbox\hoareboxB=\hbox{#1}}
|
|
|
|
\endinput |