Attention ! Gitlab fournissant maintenant nativement des certificats Let’s Encrypt aux domaines personnalisés des Gitlab Pages, nous avons coupé notre service qui le faisait automatiquement pour vous.

Il est impératif, pour que votre domaine personnalisé continue à avoir un certificat Let’s Encrypt à jour, d’activer la fonctionnalité native dans les paramètres de votre projet. Cette activation remplacera votre certificat actuel par un nouveau certificat Let’s Encrypt géré par Gitlab.

Voir les détails sur https://docs.framasoft.org/fr/gitlab/gitlab-pages-le.html

Commit e120e4d3 authored by Jérôme Ortais's avatar Jérôme Ortais

Initial commit

parents
PY?=python3
PELICAN?=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
FTP_HOST=localhost
FTP_USER=anonymous
FTP_TARGET_DIR=/
SSH_HOST=pyromaths.org
SSH_PORT=7422
SSH_USER=jortais
SSH_TARGET_DIR=/var/www/htdocs/jortais/pyrosite/
S3_BUCKET=my_s3_bucket
CLOUDFILES_USERNAME=my_rackspace_username
CLOUDFILES_API_KEY=my_rackspace_api_key
CLOUDFILES_CONTAINER=my_cloudfiles_container
DROPBOX_DIR=~/Dropbox/Public/
GITHUB_PAGES_BRANCH=gh-pages
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
endif
RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
PELICANOPTS += --relative-urls
endif
help:
@echo 'Makefile for a pelican Web site '
@echo ' '
@echo 'Usage: '
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make regenerate regenerate files upon modification '
@echo ' make publish generate using production settings '
@echo ' make serve [PORT=8000] serve site at http://localhost:8000'
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
@echo ' make devserver [PORT=8000] start/restart develop_server.sh '
@echo ' make stopserver stop local server '
@echo ' make ssh_upload upload the web site via SSH '
@echo ' make rsync_upload upload the web site via rsync+ssh '
@echo ' make dropbox_upload upload the web site via Dropbox '
@echo ' make ftp_upload upload the web site via FTP '
@echo ' make s3_upload upload the web site via S3 '
@echo ' make cf_upload upload the web site via Cloud Files'
@echo ' make github upload the web site via gh-pages '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
@echo 'Set the RELATIVE variable to 1 to enable relative urls '
@echo ' '
html:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
clean:
[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
regenerate:
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
serve:
ifdef PORT
cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
else
cd $(OUTPUTDIR) && $(PY) -m pelican.server
endif
serve-global:
ifdef SERVER
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
else
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
endif
devserver:
ifdef PORT
$(BASEDIR)/develop_server.sh restart $(PORT)
else
$(BASEDIR)/develop_server.sh restart
endif
stopserver:
$(BASEDIR)/develop_server.sh stop
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
ssh_upload: publish
scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
rsync_upload: publish
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
dropbox_upload: publish
cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR)
ftp_upload: publish
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
s3_upload: publish
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type --no-mime-magic --no-preserve
cf_upload: publish
cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
github: publish
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve serve-global devserver stopserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
:title: LaTeX dans Pyromaths
:date: 2017-12-29 12:00
:category: comprendre
:authors: Jérôme
:description: Modèle LaTeX
Pyromaths crée des fiches d’exercices au format `LaTeX <http://fr.wikipedia.org/wiki/LaTeX>`__.
Ces fichiers *exercices.tex* et *exercices-corrige.tex* ne sont pas imprimables tels quels.
Il faut les compiler pour créer des fichiers **pdf**.
Si vous souhaitez modifier une fiche, il vous faut donc modifier le fichier .tex et le recompiler.
Vous trouverez dans cet article des explications sur les fichiers .tex créés par Pyromaths.
Modules ou paquetages utilisés
==============================
Dans cette partie, je tenterai d’expliquer l’utilité des modules utilisés dans les fichiers .tex.
- :code:`\documentclass[a4paper,11pt]{article}`
Toutes les commandes TeX commencent par un :code:`\ `.
La fonction :code:`documentclass` définit le type du document (ici :code:`article`) et accepte en option
:code:`a4paper` (le document est au format A4) et :code:`11pt` (c’est la taille des caractères).
- :code:`\usepackage[latin1]{inputenc}` Cette commande permet d’utiliser des caractères accentués utiles en français.
- :code:`\usepackage[frenchb]{babel}` Le module :code:`babel` avec l’option :code:`french` “francise” l’utilisation de LaTeX.
Par exemple, cela permet de gérer convenablement les espaces autour des symboles de ponctuations “:” ou “;”.
- :code:`\usepackage[fleqn]{amsmath}` :code:`amsmath` est un module qui permet l’édition de formules mathématiques.
L’option :code:`fleqn` permet d’aligner les équations à gauches.
- :code:`\usepackage{amssymb, multicol, calc, vmargin, cancel, fancyhdr, units, pst-eucl, wrapfig, lastpage}`
- Le module :code:`amssymb` met à disposition tout un tas de symboles, mathématiques ou non
(tel le triangle noir qui sert à numéroter les questions dans les exercices).
- Le module :code:`multicol` permet de créer des colonnes dans une page.
- Le module :code:`calc` permet de faire des opérations dans un document LaTeX.
Il est utilisé pour afficher l’année scolaire en cours par exemple.
- Le module :code:`vmargin` permet de gérer simplement les marges d’un document LaTeX.
- Le module :code:`cancel` permet de rayer des caractères avec des barres obliques.
Il est utilisé pour faire apparaître les simplifications de fractions.
- Le module :code:`fancyhdr` gère les en-têtes et pieds de pages du document.
- Le module :code:`units` gère l’affichage des unités de longueur (et d’autres) dans les documents.
- Le module :code:`pst-eucl` permet de construire des figures géométriques plus simplement en utilisant
`PSTricks <http://fr.wikipedia.org/wiki/PSTricks>`__.
- Le module :code:`wrapfig` permet d’écrire du texte autour d’une figure.
- Le module :code:`lastpage` permet de connaître le numéro de la dernière page.
- :code:`\setmarginsrb{1.5cm}{1.5cm}{1.5cm}{1.5cm}{.5cm}{.5cm}{.5cm}{1.cm}`
Cette commande définit dans l’ordre les marges gauche, haut, droite, bas, la hauteur de l’en-tête,
la distance entre l’entête et le texte, la hauteur du pied de page et la distance entre le texte
et le pied de page.
- :code:`\newcounter{exo}\setcounter{exo}{1}` Crée un compteur nommé :code:`exo` et l’initialise à 1.
C’est ce compteur qui numérotera automatiquement les exercices de la feuille.
- :code:`\setlength{\fboxsep}{1em}` Précise la distance entre le texte et le bord des cadres.
- :code:`\setlength\parindent{0em}` Fixe la distance pour le retrait de premier paragraphe à 0
(inappropriée dans une fiche d’exercices).
- :code:`\setlength\mathindent{0em}` Fixe la distance pour le retrait des formules mathématiques.
- :code:`\setlength{\columnsep}{30pt}` Fixe la taille de la séparation entre les colonnes.
- :code:`\usepackage[ps2pdf, pagebackref=true, colorlinks=true, linkcolor=blue, plainpages=true]{hyperref}`
Permet de créer des hyperliens (référence permettant de passer d’un document consulté à un document lié)
dans les fichiers pdf.
- :code:`\hypersetup{pdfauthor={Jérôme Ortais}, pdfsubject={Exercices de mathématiques},
pdftitle={Exercices créés par Pyromaths, un programme en Python de Jérôme Ortais}}`
Les informations stockées dans le document pdf créé.
Les fonctions utilisées
=======================
Les fichiers d’exercices .tex utilisent des fonctions pour gérer l’affichage des exercices notamment.
Affichage des exercices :
-------------------------
- :code:`\newenvironment{exercice}[1][ ]{` La commande se nomme :code:`exercice` et peut avoir un argument optionnel
(par exemple, le nombre de points de l’exercice dans un devoir).
- :code:`\pagebreak[2]` Essaie de faire en sorte que le titre de l’exercice ne se retrouve pas seul en bas de page.
- :code:`\renewcommand{\theenumi}{\arabic{enumi}}` redéfini le type de numérotation (chiffres arabes)
des questions dans les exercices.
- :code:`\renewcommand{\labelenumi}{$\blacktriangleright$\textbf{\theenumi.}}`
Les questions dans les exercices sont numérotées comme suit :
un triangle noir (:code:`$\blacktriangleright$`) suivi du numéro de la question en gras :code:`\textbf{\theenumi.}`).
- :code:`\renewcommand{\theenumii}{\alph{enumii}}`
redéfini le type de numérotation (lettres minuscules) des questions de second niveau dans les exercices.
- :code:`\renewcommand{\labelenumii}{\textbf{\theenumii)}}`
les questions de second niveau dans les exercices sont numérotées comme suit :
le numéro de la question (en lettre minuscule, souvenez-vous de la ligne précédente) en gras :code:`\textbf{\theenumii.}`).
- :code:`\begin{flushleft}` le titre de l’exercice sera aligné à gauche.
- :code:`\fontfamily{pag}\fontseries{b}\\selectfont`
il utilisera la police AvantGarde (:code:`pag`) si elle existe, en gras (:code:`\\fontseries{b}`).
- :code:`\underline{Exercice \theexo{}} - \footnotesize{#1}`
écrit “Exercice” suivi du numéro de l’exercice (:code:`\theexo{}`) souligné (:code:`\\underline{ }`).
Ajoute au bout de cette ligne un “-” suivi éventuellement du paramètre passé à la commande :code:`\exercice`
(les nombres de points donnés à la question par exemple) écrit en plus petit (:code:`\footnotesize{#1}`).
- :code:`\end{flushleft}` repasse en mode justifié.
- :code:`\vspace{-2ex}` réduit l’espace vertical de 2ex entre le titre de l’exercice et la ligne suivante
C’est ici que sera écrit le contenu de l’exercice. La suite de la commande permet de gérer la fin de l’exercice.
- :code:`\vspace{-1ex}` réduit l’espace vertical entre la fin de l’exercice et la suite du document.
- :code:`\stepcounter{exo}` incrémente la valeur du compteur :code:`exo` qui numérote les exercices.
Calcul de l’année scolaire en cours
-----------------------------------
:code:`\count1=\year \count2=\year \ifnum\month<8\advance\count1by-1 \else\advance\count2by1\fi`
:code:`count1` contiendra l’année de début et :code:`count2` l’année de fin.
La fonction regarde quel est le mois en cours :
- entre août et décembre, l’année en cours est l’année de début ;
- entre janvier et juillet, l’année en cours est l’année de fin.
En-tête et pied de page
-----------------------
- :code:`\pagestyle{fancy}` utilise des en-tête et pieds de page personnalisés
- :code:`\cfoot{\textsl{\footnotesize{Année \number\count1/\number\count2}}}`
le pied de page central (:code:`\cfoot`) affiche par exemple “année 2007/2008” en italique (:code:`\textsl`)
et en petit (:code:`\footnotesize`).
- :code:`\rfoot{\textsl{\tiny{https://www.pyromaths.org}}}`
le pied de page droit (:code:`\rfoot`) affiche *https://www.pyromaths.org* en italique (:code:`\textsl`)
et en encore plus petit (:code:`\tiny`).
- :code:`\lhead{\textsl{\footnotesize{Page \thepage/ \pageref{LastPage}}}}`
l’en-tête gauche (:code:`\lhead`) affiche par exemple “Page 1/3” en italique (:code:`\textsl`) et en petit (:code:`\footnotesize`).
Plus loin dans le document on trouve les deux commandes suivantes :
- :code:`\chead{\Large{\textsc{Fiche de préparation au brevet}}}`
l’en-tête central (:code:`\chead`) affiche ici “Fiche de préparation au brevet” en grand (:code:`\Large`)
et en petites capitales (:code:`\textsc`).
- :code:`\rhead{\textsl{\footnotesize{Classe de 3\ieme}}}`
l’en-tête droit (:code:`\rhead`) affiche ici “Classe de 3e” en petit (:code:`\footnotesize`) et en italique (:code:`\footnotesize`).
:title: Développer une application autonome sur Mac OS X 10.9
:date: 2014-06-10 12:00
:category: contribuer
:author: Yves
Cet article est destiné aux développeurs et décrit la procédure pour obtenir une application autonome de Pyromaths sur
OS X 10.9 à partir du code source.
Avec PyQt, il est possible de réaliser des programmes multi-plateformes.
Cependant, le programme obtenu est un script Python qui nécessite la présence de Python, de PyQt et d’autres librairies
et ne ressemble donc pas tout à fait à une application native du système.
Avec `py2app <https://pypi.python.org/pypi/py2app/>`__, il est possible d’obtenir une véritable application autonome
sur Mac OS X à partir du programme réalisé avec PyQt.
Environnement de Développement
==============================
py2app n’est malheureusement pas capable de réaliser une application autonome à partir de la version de Python fournie avec OS X.
Il va donc falloir installer un environnement de développement avec une nouvelle version de Python ainsi que PyQt avec les dépendances nécessaires.
**Installation de Python**
`Télécharger <http://www.python.org/>`__ et installer *python-2.7.6-macosx10.6.dmg*.
la distribution Python fournie avec Mac OS X se trouve dans */System/Library/Frameworks/Python.framework/*
alors que celle qu’on vient d’installer se situe dans */Library/Frameworks/Python.framework*.
**Installation de Qt**
`Télécharger <http://qt.digia.com/>`__ et installer *qt-mac-opensource-4.8.6.dmg*.
**Installation de SIP**
`Télécharger <http://www.riverbankcomputing.co.uk/>`__ et décompresser *sip-4.15.5.tar.gz* puis exécuter les commandes :
.. class:: console
.. code-block:: bash
:linenos: none
cd sip-4.15.5
python configure.py —arch x86_64
make
sudo make install
**Installation de PyQt4**
`Télécharger <http://www.riverbankcomputing.co.uk/>`__ et décompresser *PyQt-mac-gpl-4.10.4.tar.gz* puis exécuter les commandes :
.. class:: console
.. code-block:: bash
:linenos: none
cd PyQt-mac-gpl-4.10.4
python configure.py —use-arch x86_64
make
sudo make install
**Installation de lxml**
`Télécharger <http://lxml.de/>`__ et décompresser *lxml-3.3.5.tgz* puis exécuter les commandes:
.. class:: console
.. code-block:: bash
:linenos: none
cd lxml-3.3.5
python setup.py build —static-deps
sudo python setup.py install
Maintenant que Qt, SIP, PyQt4 et lxml sont installés, il est possible d’exécuter Pyromaths en lançant le fichier
pyromaths.py depuis l’application Terminal.
Installation de py2app
======================
Les manipulations suivantes sont dédiées à l’installation de py2app.
**Installation des setuptools**
exécuter les commandes:
.. class:: console
.. code-block:: bash
:linenos: none
curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py -U setuptools
**Installation de py2app**
exécuter la commande:
.. class:: console
.. code-block:: bash
:linenos: none
sudo easy_install -U py2app
**Installation de zlib**
zlib est utilisé par py2app pour la compression du dossier site-packages.
`Télécharger <http://www.zlib.net/>`__ et décompresser *zlib-1.2.8.tar.gz* puis exécuter les commandes:
.. class:: console
.. code-block:: bash
:linenos: none
cd zlib-1.2.8
./configure -s
make
sudo make install
Réalisation de Pyromaths.app
============================
L’application Pyromaths.app est réalisée avec le programme make qui va exécuter plusieurs actions définies par le Makefile.
Dans un premier temps, la commande python setup.py py2app permet d’obtenir une application autonome.
Pour éviter que les librairies Qt ne soient chargées deux fois, celles du bundle Pyromaths.app et celles du système,
le fichier qt.conf est automatiquement ajouté par py2app dans Pyromaths.app/Contents/Resources/.
Ensuite, en post-processing, pour pouvoir lancer l’application avec les variables d’environnement nécessaires à
l’utilisation de LaTeX, le script shell nommé setenv.sh est ajouté dans Pyromaths.app/Contents/MacOS/.
Ensuite, le CFBundleExecutable du fichier info.plist est modifié pour prendre en compte le script setenv.sh.
L’application dist/Pyromaths.app ainsi obtenue est fonctionnelle.
Dans un deuxième temps, la traduction en français des menus est ajoutée et pour optimiser la taille de notre application,
des fichiers inutiles sont supprimés du bundle Pyromaths.app.
Pour alléger encore l’application obtenue, le code lié à une architecture 32 bits est éliminé.
L’application *dist/Pyromaths-x86_64.app* ainsi obtenue est optimisée.
`Télécharger <http://www.pyromaths.org/>`__ et décompresser les sources de Pyromaths puis exécuter les commandes
suivantes pour obtenir une version optimisée 64 bits:
.. class:: console
.. code-block:: bash
:linenos: none
cd pyromaths
make app
:title: Bannières de promotion
:slug: bannieres_de_promotion
:date: 2010-05-14 12:00
:category: contribuer
:link:
:author: Yves
:description: Faites de la publicité pour Pyromaths
Vous pouvez télécharger une bannière et l'héberger sur votre site web ou bien copier-coller le code correspondant suivant la bannière :
|120x120|
.. class:: code
.. code-block:: html
:nowrap:
<a href="https://www.pyromaths.org/"><img src="https://pyromaths.org/static/img/bannieres/pyromaths120.png" width="120" height="120" alt="pyromaths" /></a>
|200x200|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths200.png" width="200" height="200" alt="pyromaths" /></a>
|250x250|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths250.png" width="250" height="250" alt="pyromaths" /></a>
|300x300|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths120.png" width="300" height="300" alt="pyromaths" /></a>
|468x60|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths468.png" width="468" height="60" alt="pyromaths" /></a>
|728x90|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths728.png" width="728" height="90" alt="pyromaths" /></a>
|120x600|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths120par600.png" width="120" height="600" alt="pyromaths" /></a>
|160x600|
.. class:: code
.. code-block:: html
:nowrap:
<a href="http://www.pyromaths.org/"><img src="http://pyromaths.org/static/img/bannieres/pyromaths160par600.png" width="160" height="600" alt="pyromaths" /></a>
.. |120x120| image:: /images/bannieres/pyromaths120.png
:alt: pyromaths 120x120
.. |200x200| image:: /images/bannieres/pyromaths200.png
:alt: pyromaths 200x200
.. |250x250| image:: /images/bannieres/pyromaths250.png
:alt: pyromaths 250x250
.. |300x300| image:: /images/bannieres/pyromaths300.png
:alt: pyromaths 300x300
.. |468x60| image:: /images/bannieres/pyromaths468.png
:alt: pyromaths 468x60
.. |728x90| image:: /images/bannieres/pyromaths728.png
:alt: pyromaths 728x90
.. |120x600| image:: /images/bannieres/pyromaths120par600.png
:alt: pyromaths 120x600
.. |160x600| image:: /images/bannieres/pyromaths160par600.png
:alt: pyromaths 160x600
:title: Réaliser un modèle de document
:date: 2009-09-16 12:00
:category: contribuer
:author: Arnaud
:description: Réaliser un modèle de document
A quoi ça sert ?
================
Chacun aime personnaliser les documents qu’il donnera aux élèves.
La nouvelle mouture de pyromaths permet désormais cela, à condition de s’y connaître en LaTeX.
En effet, chacune des fiches créées par pyromaths le sont par le biais de fichiers ayant une extension .tex,
des fichiers LaTeX, qui sont ensuite compilés sous forme de pdf, pour ceux le désirant.
Par conséquent, réaliser un modèle pour pyromaths revient à réaliser un modèle LaTeX, avec deux ou trois règles supplémentaires.
De plus vous pourrez contribuer à pyromaths en proposant votre modèle, et le partageant aux autres utilisateurs de pyromaths.
C’est l’avantage de la communauté du libre. Toute proposition sera la bienvenue :)
Par défaut, Pyromaths propose deux modèles, à savoir pyromaths.tex et evaluation.tex.
Comment ?
=========
Comme dit plus haut, il suffit presque seulement de réaliser un modèle LaTeX.
Il y a en plus de cela quelques mots-clés qui sont remplacés par leurs valeurs lors de la réalisation des fiches.
Ces mots-clés correspondent soit aux options du programme, soit au contenu des exercices.
Ils sont faciles à repérer en raison de leur syntaxe, c’est-à-dire toujours délimités par ##{{}}##, en voici la liste :
- **\\#\#{{TITRE}}##** est remplacé par le titre de la page voulu dans les options,
- **\\#\#{{NIVEAU}}##** est remplacé par le niveau précisé dans les options.
Seuls deux sont prévus pour le moment, n’hésitez pas à faire des suggestions.
Du côté LaTeX, il faut impérativement définir la macro exercices.
Le programme doit pouvoir faire la différence entre l’entête et le pied de page, qui sont traités séparément,
c’est pourquoi il faut impérativement respecter le schéma suivant :
.. class:: code
.. code-block:: latex
:linenos: none
% entete
Votre entête contenant notamment la ligne « \\begin{document} »
% fin entete
% pied de page
Votre pied de page contenant notamment la ligne « \\end{document} »
% fin pied de page
Une fois le modèle fini, il faudra le placer dans le dossier :
- **home/vous/.config/pyromaths/modeles** sous LINUX,
- **C:\Documents and Settings\vous\Application Data\pyromaths\modeles** sous WINDOWS,
- **~/Library/Application Support/Pyromaths/templates/** sur MAC OS X,
puis relancer Pyromaths, et votre modèle apparaitra automatiquement dans la liste des modèles dans l’onglet « Options ».
A titre d’exemple, voici le contenu du modèle pyromaths.tex fourni avec pyromaths :
.. class:: code
.. code-block:: latex
:linenos: none
% entete
\\documentclass[a4paper,11pt]{article}
\\usepackage[latin1]{inputenc}
\\usepackage[T1]{fontenc}
\\usepackage[frenchb]{babel}
\\usepackage[fleqn]{amsmath}
\\usepackage{amssymb,multicol,calc,vmargin,cancel,fancyhdr,units,
pst-eucl,wrapfig,lastpage,wasysym,pst-plot,tabularx}
\\setmarginsrb{1.5cm}{1.5cm}{1.5cm}{1.5cm}{.5cm}{.5cm}{.5cm}{1.cm}
\\newcounter{exo}
\\setlength{\headheight}{18pt}
\\setlength{\fboxsep}{1em}
\\setlength\parindent{0em}
\\setlength\mathindent{0em}
\\setlength{\columnsep}{30pt}\usepackage[ps2pdf, pagebackref=true,
colorlinks=true, linkcolor=blue, plainpages=true]{hyperref}
\\hypersetup{pdfauthor={J’er\^ome Ortais},
pdfsubject={Exercices de math\’ematiques},
pdftitle={Exercices cr\’e\’es par Pyromaths,
un programme en Python de J\’er\^ome Ortais}}
\\makeatletter
\\newcommand\styleexo[1][]{%
\\renewcommand{\theenumi}{\arabic{enumi}}
\\renewcommand{\labelenumi}{$\blacktriangleright$\textbf{\theenumi.}}
\\renewcommand{\theenumii}{\alph{enumii}}
\\renewcommand{\labelenumii}{\textbf{\theenumii)}
}
{%
\fontfamily{pag}\fontseries{b}\selectfont \\underline{#1 \\theexo}}
\\par\\\ ``afterheading\vspace{0.5\baselineskip minus 0.2\baselineskip}
}
\newcommand*\exercice{%
\psset{unit=1cm}
\ifthenelse{\equal{\theexo}{0}}{}{\filbreak}
\refstepcounter{exo}%
\stepcounter{nocalcul}%
\par\addvspace{1.5\baselineskip minus 1\baselineskip}%
\``\ ifstar%
{\penalty-130\styleexo[Corrig’e de l’exercice]}%
{\filbreak\styleexo[Exercice]}%
}
\\makeatother
\\newlength{\ltxt}
\\newcounter{fig}
\\newcommand{\figureadroite}[2]{
\\setlength{\ltxt}{\linewidth}
\\setbox\thefig=\hbox{#1}
\\addtolength{\ltxt}{-\wd\thefig}
\\addtolength{\ltxt}{-10pt}
\\begin{minipage}{\ltxt}
#2
\\end{minipage}
\\hfill
\\begin{minipage}{\wd\thefig}
#1
\\end{minipage}
\\refstepcounter{fig}
}
\\count1=\year \\count2=\year \\ifnum\month<8\advance\count1by-1\else
\\advancecount2by1\fi
\\pagestyle{fancy}
\\cfoot{\textsl{\footnotesize{Ann’ee \\number\count1/\number\count2}}}
\\rfoot{\textsl{\tiny{http://www.pyromaths.org}}}
\\lhead{\textsl{\footnotesize{Page \\thepage/ \\pageref{LastPage}}}}
\\chead{\Large{\textsc{##{{TITRE}}##}}}
\\rhead{\textsl{\footnotesize{Classe de ##{{NIVEAU}}##}}}
\\begin{document}
\\newcounter{nocalcul}[exo]
\\renewcommand{\thenocalcul}{\Alph{nocalcul}}
\\raggedcolumns
\\setlength{\columnseprule}{0.5pt}
% fin entete
% pied de page
\\end{document}
% fin pied de page