Porneia delights

— Voilà maintenant quelques jours (mois ?) que je n'ai pas écris quelques mots ici. Ceci est étroitement lié au fait que j'ai beaucoup de chose à faire, tant au niveau personnel qu'au niveau de mes cours. Ainsi, je n'ai pas eu trop le temps de vous parler de mes activités et de partager quelques astuces avec vous.

J'ai donc pris pas mal de retard dans toute les choses que j'esperais faire ici, notamment une refonte complète de cet espace (sans doute mieux organisé), parler un peu de l'avancement de quelques projets comme emb (je l'ai recodé en python en ajoutant quelques modules pour faire des histogrammes dans le domaine spatial et fréquentiel), mais aussi de LaTeX, d'OpenBSD et de toutes ces choses qui remplissent mes journées.

Bon, il faut bien commencer par un bout, voici donc un petit Makefile que j'ai fais pour générer un PDF à partir d'un document LaTeX. Il permet entre autre (et c'est essentiellement pour cela que je l'ai codé), de générer :

Le Makefile n'est pas forcément bien écrit, j'ai fais pour le mieux. Le voici donc sans plus attendre :

PROJET=projet

LATEX=pdflatex
LATEXFLAGS=-file-line-error -halt-on-error -interaction errorstopmode
GLOSSTEX=glosstex
MAKEINDEX=makeindex

GDF=glossaire.gdf

READER=xpdf #-fullscreen
CFIG=fig2dev

IMGSRC=$(wildcard ./fig/src/*.fig)
IMAGES_tex=$(shell grep -E -h -o 'fig/.*\.(pdf_t)' $(PROJET).tex)
IMAGES_pdf=$(patsubst %.pdf_t,%.pdf,$(IMAGES_tex))
SRC=$(wildcard ./*.tex)

$(PROJET).pdf:$(SRC) $(IMAGES_pdf) $(IMAGES_tex) $(SRC) $(IMGSRC) $(GDF) $(PROJET).tex
    latex $(LATEXFLAG) $(PROJET).tex
    $(GLOSSTEX) $(PROJET) $(GDF)
    $(MAKEINDEX) $(PROJET).gxs -o $(PROJET).glx -s glosstex.ist
    $(LATEX) $(PROJET).tex
    $(LATEX) $(PROJET).tex

fig/%.pdf:fig/src/%.fig
    $(CFIG) -L pdftex $? $@

fig/%.pdf_t:fig/%.pdf
    $(CFIG) -L pdftex_t -p $? fig/src/$(shell basename $? .pdf).fig $@

run: $(PROJET).pdf
    $(READER) $(PROJET).pdf

.PHONY:check
check:
    aspell --lang=fr_FR --encoding=UTF-8 -c $(PROJET).tex

.PHONY:cleangraph
cleangraph:
    @rm -f fig/*.pdf fig/*.pdf_t
            
.PHONY:clean
clean: cleangraph
    @rm -f *.aux *.log *.toc *.lof *.glo *.ist *.ind *.gxs *.gxg *.ilg *.glx *.idx *.out

.PHONY:mrproper
mrproper:clean cleangraph
    @rm $(PROJET).pdf

Pour pouvoir l'utiliser dans l'état actuel il vous faut une structure de la forme :

Toutes les figures qui serons importées dans le document projet.tex et qui se trouve dans fig/src serons automatiquement générées. Voici un exemple:

> projet.tex
[...]
\begin{figure}[!htb]
    \scalebox{1}{\input{fig/test.pdf_t}}
    \caption{La belle figure !!!}\label{test}
\end{figure}

Comme vous l'aurez remarqué, on importe une figure qui n'est pas encore générée. Après un petit make donc, fig2dev se met au travail et vous génère vos figures.

Pour ce qui est du glossaire, rien de nouveau, il suffit simplement de lire la documentation mis à votre disposition: glosstex. Personnellement, j'ai juste rajouté/enlevé quelques petites choses pour obtenir un rendu un peu plus propre à mon goût, voici mon fichier glosstex.std :

\def\filename{glosstex}
\def\fileversion{0.4}
\def\filedate{2007/12/13}
\let\docdate=\filedate
\newcommand{\GLX@output@short}[3]{#3}
\newcommand{\GLX@output@long}[3]{#3}
\newcommand{\glosstexpage}[1]{\nobreak{\itshape\pagename~#1}\nobreak}
\glxgldefault{glo}{p}
\glxacdefault{acr}{n}
\glxitemorderdefault{glo}{}
\glxitemplacementdefault{glo}{}
\glxitemorderdefault{acr}{}
\glxitemplacementdefault{acr}{}
\newcommand{\GLX@benv@glo}{\begin{description}}
\newcommand{\GLX@eenv@glo}{\end{description}}
\newcommand{\GLX@item@glo}[7]{%
  \item[#2]\ifx#3\empty\else\emph{#3}\space\fi#4\space#7}
\newcommand{\GLX@item@acr@label}[1]{\mbox{#1}\dotfill}
\newcommand{\GLX@benv@acr}{
  \begin{list}{}{%
      \renewcommand{\makelabel}{\GLX@item@acr@label}%
      \setlength{\labelwidth}{7em}%
      \leftmargin\labelwidth \advance\leftmargin by \labelsep}}
\newcommand{\GLX@eenv@acr}{\end{list}}
\newcommand{\GLX@item@acr}[7]{%
  \item[\textsc{#2}]%
    \ifx#3\empty\else#3:\,\fi\ifx#4\empty\else#4\space\fi#7} % changement de #3\quad en #3:\,
\ifx\glossaryname\@undefined
  \def\glossaryname{Glossary}
\fi
\ifx\listacronymname\@undefined
  \def\listacronymname{List of Acronyms}
\fi
\ifx\pagename\@undefined
  \def\pagename{page}
\fi
\ifx\chapter\@undefined
  \glxheading{glo}{}
  \glxheading{acr}{}
\else
  \glxheading{glo}{}
  \glxheading{acr}{}
\fi
\endinput

Vous remarquerez sans doute que j'ai juste enlevé les titres par defaut et changer une autre ligne pour modifier l'apparence du glossaire, je n'ai pas vraiment chercher à faire quelque chose de plus poussé.

Toujours pour LaTeX, je me suis codé un petit thême beamer (largement inspiré du thême proposé par Gilles Bertrand). Les fichiers sont disponible ici: repos/LaTeX/ (de même que le Makefile et glosstex.std).

Voilà voilà, j'espère pouvoir poster encore quelques astuces très prochainement, d'ici la (non je ne vais pas vous souhaiter quoique ce soit), mais faite plutôt attention à votre peau, le chef des armées vous surveille !


Cet article a été exhumé par illovæ avec l'aimable autorisation de son auteur.

Vous pouvez envoyer par mail vos commentaires et vos remarques à gapz [at] dud-t [point] org.

Quelques nouvelles (et quelques astuces pour LaTeX) (681 mots) de gapz est diffusé sous la licence WTFPLv2 et Beer-ware (Révision 42).

Vulnerant omnes, ultima necat. Sic transit hominis regnum.
Copyleft © 2007 — gapz