Il s’agit de faire une figure représentant un état d’avancement.
Comme par exemple :
J’ai appris à l’occasion que les nombre en TeX ne pouvait pas excéder 16384
(voir cette réponse
dans TeX.sx).
On obtient un message d’erreur de type : dimensions too large
.
Pour avoir accès à des nombres plus grand,
on peut utiliser /pgf/fpu
comme on peut le voir ci-dessous.
Le point le plus délicat est ici la gestion du dégradé
car on veut qu’il soit le même quelque soit l'état d’avancement.
Pour cela, on fait le dégradé sur toute la largeur,
et on utilise \clip
pour ne garder que la partie qui nous intéresse.
Voilà le code complet :
\documentclass[tikz]{standalone}
\usepackage{fp}
\usetikzlibrary[positioning,calc, fpu, shadows]
\newcommand{\avancement}[3][Avancement]{%
\def\max{10cm}
\begin{tikzpicture}[node distance=2mm]
% computation (to avoid "Dimension too large" problem)
\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}
\pgfmathsetmacro{\rf}{ #2 / #3 }
\pgfmathsetmacro{\prf}{ 100 * \rf }
\pgfmathprintnumberto[precision=1]{\prf}{\pprf}
\pgfkeys{/pgf/fpu=false}
% La barre grise :
\node[draw, minimum width=\max, fill=black!20, drop shadow] (BG) { };
% Le texte à gauche :
\node[left = of BG.west]{#1:};
% la barre d'avancement :
\begin{scope}
\clip (BG.south west) rectangle ($(BG.north west)!\rf!(BG.north east)$);
\node[draw,minimum width= \max, anchor=west,
left color=red!40, right color=green!40] (Bx) at (BG.west) {};
\end{scope}
\node[draw, minimum width= \max*\rf, anchor=west, ] (BB) at (BG.west) {};
% le nombre (avancement) :
\node[above = of BB.north east]{#2};
% le nombre total :
\node[above = of BG.north east, anchor=south east]{#3};
% le pourcentage:
\node[right = of BG.east]{\pprf\% };
\end{tikzpicture}
}
\begin{document}
\avancement{453}{543}
\end{document}
Voir aussi :
Table des matières
Tags
ack
acronymes
analyse_statique
android
apt-get
awk
bash
bits
boot
c
checksum
coq
couleurs
css
csv
cut
dessin
diff
disque
docbook
docker
documentation
dokuwiki
dot
développement
fenêtres
firefox
frama-c
fstab
ftp
gcc
gestion_de_projet
gestion_de_version
git
graph
graphe
grep
grub
gzip
heredoc
htaccess-réseau
html
ide
ikiwiki
imagemagick
images
imprimer
ip
jenkins
js-of-ocaml
langage
latex
linux
make
mercurial
merlin
nvidia
ocaml
ocamlfind
ocamlgraph
orthographe
outil
parallel
path
pdf
perl
pgp
preuve_formelle
regexp
réseau
script
sed
sphinx
sqlite
ssh
sudo
svg
svn
syncbox
syntastic
systeme
système
tableurs
tcp-ip
texte
thunderbird
tikz
time
trac
txt2tags
ubuntu
unix
usb
utf-8
vim
virtualbox
virtualisation
vnc
web
windows
xfce
xkcd
xml
xmlstarlet
xmodmap
xsd
xslt
xubuntu
zcat
zenity
éditeur
émoticône
Dernières notes
- Afficher un pourcentage dans une page HTML
- VNC : Virtual Network Computing
- Git : déménagement d'un dépôt
- Quelques liens au sujet de l'analyse statique
- Ocaml: mon principal langage de développement
- Disque dur externe
- Les profiles dans Firefox
- Cryptographie et mail sous Android
- Quelques liens au sujet du C
- Git rebase : pour diviser un commit