diff options
Diffstat (limited to 'Master/texmf-doc/doc/french/FAQ-fr/part6')
-rw-r--r-- | Master/texmf-doc/doc/french/FAQ-fr/part6 | 2261 |
1 files changed, 2261 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/french/FAQ-fr/part6 b/Master/texmf-doc/doc/french/FAQ-fr/part6 new file mode 100644 index 00000000000..99454a01f6a --- /dev/null +++ b/Master/texmf-doc/doc/french/FAQ-fr/part6 @@ -0,0 +1,2261 @@ +Path: tempo.univ-lyon1.fr!univ-lyon1.fr!howland.erols.net!newsfeed.skycache.com!Cidera!netnews.com!opentransit.net!proxad.net!teaser.fr!fdn.fr!edgard.fdn.fr!not-for-mail +Date: 08 Jun 2001 13:31:18 +0200 +Newsgroups: fr.comp.text.tex,fr.usenet.reponses +Subject: [FAQ] fr.comp.text.tex - parties 25 a 30 +Message-ID: <faq-fctt-p620010608133118@edgard.fdn.fr> +X-Posted-By: poste.sh version 1.1 +From: bayartb@edgard.fdn.fr (Nono le robot) +Supersedes: <faq-fctt-p620010501143417@edgard.fdn.fr> +Expires: 08 Jul 2001 13:31:17 +0200 +Followup-To: poster +Organization: French Data Network +Approved: bayartb@edgard.fdn.fr +Lines: 2251 +Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23527 fr.usenet.reponses:20393 + +Archive-name: fr/faq-latex-francaise/part6 + +Author: Marie-Paule Kluth +Posting-Frequency: mensuel (monthly) +Version: 2.27 + +================================================================ + Cette FAQ, rédigée initialement par MP Kluth est maintenant + tenue à jour autant que possible par B. Bayart et + plusieurs volontaires (voir question [30]). +================================================================ + +================================================================ +[25] LOGICIELS DE DESSINS +================================================================ + +# 25.1 # Où trouver un logiciel de dessin ? +------------------------------------------- +* Xfig est un logiciel de dessin disponible sur station de +travail Unix sous X Window System. Il permet via des menus de +manipuler des objets de façon interactive dans une fenêtre X +Window. Il nécessite une souris à trois boutons. Il est +disponible par ftp anonyme sur ftp://epb1.lbl.gov/xfig +ou sur ftp://ftp.fdn.org/pub/CTAN/graphics/xfig/. +Son gros avantage est de permettre l'utilisation de +commandes LaTeX (formules mathématiques). Il est capable +d'exporter une figure directement en format TeX ou de +générer de l'encapsulated postscript (si l'on veut des +zones grisées ou des choses de ce type, il faut passer par +un fichier postscript). + +* PSfrag permet également de combiner du dessin et des textes +LaTeX. Il nécessite LaTeX2e et le package 'graphics'. Il est +disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/psfrag/. + +* TeXcad, permet de créer des fichiers de dessin. Le principe +est intéressant puisque cet outil permet de dessiner à l'aide de +la souris et de menus et lui le transforme en commandes LaTeX. +Il permet l'utilisation de la commande \special (cf. paragraphe +29.8). TeXcad est disponible sur PC (il fait partie de la +distribution emTeX) et sous Unix et Linux (on peut le trouver +dans ftp://ftp.fdn.org/pub/CTAN/systems/unix/linux/). + +* Xy-pic permet de réaliser des diagrammes commutatifs, des +automates, et plein d'autres choses (cf. paragraphe 8.6). + +* xgraphic offre une très bonne qualité de dessin. Il est +disponible à +http://blanche.polytechnique.fr/XGRAPHICS/xgraphics.html. + +* tgif permet également de dessiner des figures. Il est +disponible à http://bourbon.cs.columbia.edu:8001/tgif/. +Il peut faire appel à différentes librairies (cf. +http://bourbon.cs.columbia.edu:8001/tgif/current.html) dont une +LaTeX qui permet entre autres de gérer des équations +mathématiques. + +* LaTeXcad sous Windows3.x et Windows '95 permet de convertir +des figures en commandes LaTeX. Il est disponible sur +ftp://ftp.fdn.org/pub/CTAN/systems/msdos/latexcad/. + +* MetaPost que l'on peut trouver dans la distribution CMacTeX +peut produire des figures PostScript. Les commandes MetaPost +permettent entre autres d'obtenir directement des cercles, des +segments et des courbes de Bezier ; en outre, on peut nommer des +points en précisant leurs coordonnées ou en indiquant les +chemins à l'intersection desquels ils se trouvent. MetaPost +offre d'autres possibilités, bien décrites dans le manuel qui +l'accompagne. + +Pour plus de détails, +consulter http://www.loria.fr/~roegel/metapost.html. + +* Pagedraw sous Windows 3.1/95/NT permet de générer des fichiers +postscript. Il est disponible sur ftp://ftp.fdn.org/pub/CTAN/graphics/pagedraw/. + +Remarque : Il y a un excellent éditeur vectoriel GRATUIT sous + windows, nommé MayuraDraw (anciennement PageDraw) + et que l'on peut trouver sous + http://www.wix.com/PageDraw/ + + Avec Ps2ai, cet éditeur permet d'importer des + fichiers ps (presque) quelconques, de les manipuler + et de les exporter au format pdf, eps, wmf, ai, ps, + bmp et tif. + +* Qfig est un logiciel de dessin sous DOS. Il génère des +fichiers PicTeX et EPIC. Il est disponible sur +ftp://ftp.fdn.org/pub/CTAN/support/qfig/. + +* PovRay est un outil de ray-tracing. Il permet de manipuler +des formes géométriques, des plans, des textures des sources de +lumières, etc. Consultez http://www.povray.org/. + +* Gimp est une application UNIX qui s'appuie sur X Window +system. GIMP permet de manipuler des images pour faire des +retouches sur des photos, des compositions d'images, etc. Pour +plus de détails, consultez : +http://www.gimp.org/. +A noter, gimp tourne aussi sous Windows. + +* Sous Windows 3.1/95/NT il existe également Paint Shop Pro qui +est shareware. Pour plus d'informations, consultez +http://www.jasc.com/. + +* Le package 'mfpic' de T. E. Leathrum et G. Tobin permet +également de faire des dessins, directement dans le source. Son +intérêt est de rendre le document parfaitement portable sans +aucun soucis de compatibilité de format, ni d'envoi de fichiers +multiples. + +Le source d'un dessin mfpic doit être compilé par TeX puis +MetaFont et TeX à nouveau. Ce package est très bien adapté pour +des dessins mathématiques et géométriques. Les programmes +offrent une complexité remarquable (for .. upto .., if .. then +.. else .., calculs numériques, etc). + +Le principe de base du fonctionnement de mfpic est de créer une +police de caractère, dont chaque caractère sera un dessin (d'où +la nécessité de la compilation par Metafont, comme pour toute +nouvelle police). + +Remarque (R. Roussillon) : Ce package mériterait d'être plus + connu que ce qu'il est actuellement. + +Exemple : +\polyline{(0,0),(1,2),(3,-1)} +\arc[t]{(1,0),(1,1),(0.5,1)} +%%%% fin exemple %%%% + +# 25.2 # Comment inclure des formules Latex dans Xfig ? +------------------------------------------------------- +* Il suffit de mettre le flag special au texte, de taper son +texte LaTeX en incluant des commandes, d'exporter son fichier +(toto.fig par exemple) en deux parties : Combined PS/LaTeX (PS +part) Combined PS/LaTeX (LaTeX part) et de faire +\input{toto.pstex_t}, en ayant bien sûr chargé au préalable +le package 'epsfig' par la commande \usepackage{epsfig} placée +dans le préambule. + +* On peut utiliser également tgif qui permet d'insérer du LaTeX +dans les figures. Son fonctionnement est différent : le source +est compilé dans tgif même, et le résultat dvi est converti en +Postscript et apparaît dans la figure. Le positionnement dans la +figure de l'élément compilé est donc plus aisé, mais il est +assez contraignant de lancer LaTeX pour compiler chaque élément. + +# 25.3 # Comment gérer différents formats de figures ? +------------------------------------------------------ +* Sous Unix, Win95, Mac, VMS, l'outil ImageMagick, de J. Cristy, +permet de convertir de nombreux formats d'image vers un autre. +Il permet l'édition et la manipulation d'images. Pour plus de +renseignements, consulter +http://www.wizards.dupont.com/cristy/ImageMagick.html. +ImageMagick est disponible par ftp sur +ftp://ftp.wizards.dupont.com/pub/ImageMagick/. + +ImageMagick est également disponible pour VMS par ftp sur +ftp://ftp.wizards.dupont.com/pub/ImageMagick/vms/ ou sur +ftp://ftp.x.org/contrib/applications/vms/. + +* Transfig permet entre autres de convertir un fichier au format +fig en format postscript. +Il est disponible sur ftp://ftp.fdn.org/pub/CTAN/graphics/transfig/ ou +sur ftp://ftp.x.org/contrib/applications/drawing_tools/transfig. + +* GraphicConverter sur mac (en anglais, français ou allemand) +est capable de lire pratiquement tous types de fichiers +graphiques de toutes origines et de le sauvegarder dans un autre +format dont EPSF. Le programme est shareware et est disponible +sur info-mac. + +* tiff2ps (sous Unix), de S. Leffler, permet de convertir des +images au format tiff en format ps. Disponible sur CTAN: +ftp://ftp.fdn.org/pub/CTAN/support/pstools/tiff2ps. + +* GWSWIN11 ou Graphic Workshop pour Windows est disponible par +ftp sur ftp://hprib.lps.u-psud.fr/pub/pc/utils/. Cet outil +(shareware à $40) permet de convertir du PCX, TIFF, JPEG, GIF, +BMP, etc. Il sait convertir des fichiers à niveaux de gris en +fichier tramés ("dithered" en anglais) utilisable pour +l'impression sur des imprimantes noir-et-blanc comme nos +imprimantes laser. Pour le tramage, il propose 7 algorithmes et +la doc de 60 pages donne des conseils. Son tramage paraît +meilleur que celui d'ImageIn ou des scanners usuels. + +* Paint Shop Pro, outil pour PC, permet d'exporter des fichiers +en postscript qui pourront être appelés directement sous LaTeX. +Il est disponible à http://www.jasc.com/index.html en shareware +ou par ftp sur ftp://ftp.lip6.fr/pc/win95/desktop/psp*.zip ou +dans ftp://ftp.lip6.fr/pc/simtelnet/win3/Graphics/psp*.zip. + +* L'utilitaire gif2eps disponible par ftp sur +ftp://ftp.scn.rain.com/pub/graphics/. + +* Voir également les pages http://wotsit.simware.com/ ou +http://www.wotsit.demon.co.uk/text.htm pour des informations sur +des convertisseurs. + +================================================================ +[26] CORRECTEUR +================================================================ + +# 26.1 # Où trouver un correcteur orthographique ? +-------------------------------------------------- +* ispell est disponible sur ftp://ftp.fdn.org/pub/CTAN/support/ispell/ ou sur +ftp://ftp.lip6.fr/pub/gnu/. Il peut être associé au dictionnaire +français de M. Boyer disponible par ftp sur +ftp://ftp.inria.fr/gnu/. ispell peut être associé à emacs (xemacs), NeXT. +Pour plus de renseignements, consulter +http://ficus-www.cs.ucla.edu/ficus-members/geoff/ispell.html. + +* Pour MS-DOS : ++ il existe amspell disponible sur +ftp://ftp.fdn.org/pub/CTAN/support/amspell/ ou jspell dans ftp://ftp.fdn.org/pub/CTAN/support/jspell/. ++ Micropell (commercial) peut être appelé depuis PCTeX pour +windows. + +* Pour Macintosh, Excalibur est disponible sur +ftp://ftp.fdn.org/pub/CTAN/systems/mac/support/excalibur/ avec plusieurs dictionnaires. +Pour plus de détails, voir : +http://www.eg.bucknell.edu/~excalibr/excalibur.html. + +* Pour VMS, il existe vmspell disponible sur +ftp://ftp.fdn.org/pub/CTAN/support/vmspell/. + +* On note également le mode ispell-minor-mode de emacs, qui est +capable de vérifier l'orthographe en ligne sans prendre en +compte les commandes LaTeX. + +* La distribution Full VTeX [DOS/Win] inclut un correcteur +orthographique (américain, anglais, français, allemand, +hollandais et italien). Pour plus de détails, consulter : +http://www.micropress-inc.com/. + +* L'éditeur textpad sous Win3.1x et Win95 est capable de +supporter des textes LaTeX et comprend de nombreux +dictionnaires. Pour plus de détails, consulter : +http://www.textpad.com/. + +* Le dictionnaire de R. Cougnenc peut s'utiliser en mode shell +sous DOS comme sous Linux. Il contient 95 000 mots et 39 000 +codes postaux, et permet de vérifier très rapidement une +orthographe. Ce dictionnaire est disponible sur la page web de +D. Trystram : +http://www.starnet.fr/Homepages/dtrystram/index.html. + +# 26.2 # Où trouver un vérificateur de syntaxe LaTeX ? +------------------------------------------------------ +* TeX est un outil puissant disponible par ftp sur +http://www.tex.ac.uk/. + +* lacheck, disponible avec la distribution AUC-TeX (mode (La)TeX +pour emacs) est capable de vérifier la syntaxe LaTeX et de +détecter les erreurs les plus fréquentes. + +* Le package 'syntonly' permet également de vérifier la syntaxe +LaTeX. + +Utilisation : + \documentclass[syntonly]{...} + +* ChkTeX, de J. T. Berger Thielemann (jensthi@ifi.uio.no), dont +la version v1.5 est disponible sur ftp://ftp.fdn.org/pub/CTAN/support/chktex/. +Il est capable de détecter des erreurs typographiques dans +LaTeX. Cet outil permet de s'affranchir de certaines +constructions LaTeX non intuitives. Les binaires pour UNIX, +Amiga, MSDOS et OS/2 sont disponibles. + +Quelques exemples de services : ++ pas d'espace ou assimilé après/avant une parenthèse ++ indique les espaces multiples qui ne sont pas équivalents à un +seul ++ gère la ponctuation en mode mathématique ++ indique les espaces avant une note de bas de page ++ gère les fichiers inclus ++ détecte les blancs avant une référence au lieu de ~ ++ vérifie les couples de parenthèses ++ gère l'espace après un passage en italique ++ ... + +Cet outil est configurable. Il supporte LaTeX209 et LaTeX2e. + +* Le package 'refcheck' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/refcheck/ permet de vérifier les +références d'un document. + +================================================================ +[27] ASSOCIATIONS +================================================================ + +# 27.1 # Qu'est ce que l'association GUTenberg ? +------------------------------------------------ +L'association GUTenberg (loi 1901) a pour objectifs de +regrouper les utilisateurs francophones de TeX, de favoriser +les échanges techniques permettant d'augmenter les possibilités +d'impression et de publications scientifiques et d'offrir à ses +adhérents un certain nombre de services dont des distributions +TeX et LaTeX francisées. Le serveur d'archives de GUTenberg est +herbergé sur le serveur ftp anonyme : +ftp://ftp.gutenberg.eu.org/pub/gut/ ou sur le WEB à +http://www.gutenberg.eu.org. + +GUTenberg publie la Lettre GUTenberg ainsi que les cahiers +GUTenberg. + +Remarque : Le cahier 23 de GUTenberg est également une FAQ + LaTeX. + +ATTENTION : la FAQ que vous êtes en train de lire est + indépendante de l'association GUTenberg. + +# 27.2 # Qu'est ce que l'association TUG ? +------------------------------------------ +TUG (TeX Users Group) est une organisation internationale dont +un tiers des membres est européen. TUGboat est la lettre de ce +groupe. Pour plus de renseignements, contacter tug@tug.org par +mail ou consulter le site WEB http://www.tug.org/. + +# 27.3 # Qu'est ce que l'association AsTeX ? +-------------------------------------------- +L'association AsTeX a comme objectif principal d'essayer de +faire du travail utile au plus grand nombre, dans le domaine des +logiciels scientifiques, et d'essayer de faire ce travail aussi +bien que les éditeurs privés, mais dans un esprit de service +public. + +Cela passe par l'écriture d'utilitaires d'installation et de +configuration automatisés (pour que le débutant en TeX/LaTeX +n'ait pas à lire 1000 pages de docs disparates, en anglais de +surcroît, avant de pouvoir imprimer "Bonjour"), par l'écriture +de docs raisonnablement bien rédigées et agréables à consulter, +par des distributions sur disquettes bien présentées. Cela passe +également par la traduction de docs originales dans un français +correct, etc. + +================================================================ +[28] FONTES +================================================================ + +# 28.1 # Que signifient les sigles T1, mf, fd etc. ? +---------------------------------------------------- +Contribution de P. Pichaureau (ppichaur@grannus.u-strasbg.fr) : + +Voici une mise au point rapide, histoire que vous compreniez +de quoi ça parle. + +En 1990, lors d'une réunion d'utilisateurs de TeX, à Cork, il a +été décidé de développer une table d'encodage particulière pour +les fontes de TeX. Cette table contient des signes diacritiques +et un certains nombre de symboles qui permettent de composer des +textes dans un bon nombre de langues européennes. + +Ce codage s'appelle T1 (parfois Cork encoding), et l'ancien +codage de TeX s'appelle OT1 (Old T1). Les autres codages (U, +etc.) concernent des polices particulières et/ou des polices qui +ne respectent ni T1 ni OT1. + +Les fontes « standard » de TeX qui respectent ce codage +s'appellent fontes EC (pour european coding, il me semble). Les +fontes DC étaient une pré-version des fontes EC. La phase de +mise au point des fontes EC ayant duré un certain nombre +d'années, on s'y perd un peu. + +Les fontes TC (text companion) contiennent un certain nombre de +caractères textuels utilisés en mode mathématique. À l'origine, +Knuth prenait ces caractères dans les polices textes normales, +mais cela pose des problèmes si vous essayez d'utiliser d'autres +polices de texte. C'est pour cela qu'on préfère maintenant les +mettre à part. + +Ça c'est pour les problèmes de codage. + +Pour les pk, mf, etc. je refuse de rentrer dans les détails, +mais voici un rapide aperçu de la question : + +fichiers mf -> sources metafont. À partir de là, metafont génère +les fichiers tfm et pk. + +fichiers tfm -> métriques des fontes. Contient la taille des +caractères, les corrections d'espacement éventuelles, etc. TeX a +imperativement besoin de ces fichiers pour compiler un +document. + +fichiers pk -> polices au format bitmap. C'est ce qui est +utilisé pour la prévisualisation et l'impression (même en +PostScript, et ne me demandez pas pourquoi !). + +fichiers vf -> vf pour Virtual Font. Les fontes virtuelles ont +été mises au point par Knuth pour vous permettre +d'utiliser des fontes de provenance diverses. Les fichiers vf +sont utiles lorsque vous essayez d'utiliser des fontes +PostScript. + +fichiers fd -> description des fontes. Ça, c'est en rapport avec +NFSS. Bon, là, je suis obligé de m'étendre. + +NFSS, c'est la manière dont LaTeX2e sélectionne une fonte. LaTeX +ne le faisait pas assez proprement, alors on a fait le ménage. +Un fichier .fd dit à LaTeX2e quels sont les fichiers .mf à +utiliser pour telle police, dans telle taille, dans telle +famille, avec telle variation. C'est avec ce fichier que vous +dites à LaTeX2e de prendre la version sans serif dans tel +fichier, la taille 9pt dans tel autre, et le gras dans ce +troisième fichier. + +En tout état de cause, tfm et fd sont indispensables à la bonne +marche de LaTeX2e. Les mf sont indispensables à la creation des +tfm et despk, et les pk sont indispensables à la visualisation +et à l'impression. + +# 28.2 # Quels sont les attributs d'une fonte ? +----------------------------------------------- +Une fonte possède : ++ une famille (family) qui par défaut vaut cmr + Autre valeurs : cmtt, cmss, cmdh, cmfib. + + La famille correspond à l'allure générale de la + fonte. cmtt pour les fontes « machines à écrire » + cmss pour les sans serifs, cmdh et cmfib pour + respectivement les polices dunhill et fibonacci. + ++ un codage (encoding) qui par défaut vaut OT1 (cf. question +28.1) + Autres valeurs : T1, OML, OMS, ... + ++ une série (series) de valeur m par défaut + Les autres valeurs sont obtenues par une combinaison + de deux attributs : + - un poids (qui correspond à la graisse de la fonte) : + ul (ultral), el (extral), l (light), sl (semil), sb + (semib), b (bold), eb (extrab), ub (ultrab), + - une largeur : uc (ultrac), ec (extrac), c (condensed), + sc (semic), m (medium), sx (semix), x (expanded), ex + (extrax), ux (ultrax). + ++ une forme (shape) dont la valeur par défaut est n + Autres valeurs : n, it, sl, sc, ui, ol + + La forme correspond aux différents variations + de la fonte : n pour normal, it pour italique, + sl pour penché (slanted), sc pour les petites + capitales (small capital). + ++ une taille (size) qui vaut par défaut 10pt. Lorsque deux +valeurs sont précisées, la première correspond effectivement à +la taille de la fonte et la seconde généralement supérieure +correspond aa la taille de l'interligne. + +# 28.3 # Comment utiliser une fonte ? +------------------------------------- +* Pour déclarer une fonte par défaut dans un document, il +existe les commandes \familydefault, \encodingdefault, +\seriesdefault et \shapedefault. + +Exemple : +\documentclass{report} +\usepackage{french} +\pagestyle{empty} +\renewcommand{\familydefault}{cmtt} + +\begin{document} +\begin{verbatim} +\renewcommand{\familydefault}{cmtt} +\end{verbatim} + +dans le préambule d'un document permet de sélectionner la fonte +computer moderne de type machine à écrire pour tout le corps du +document. +\end{document} +%%%% fin exemple %%%% + +* En LaTeX2e, un certain nombre de packages permettent de faire +appel à une fonte particulière. + +Exemple : +\documentclass{report} +\usepackage{french} +\pagestyle{empty} +\usepackage{times} +\begin{document} +\begin{verbatim} +\usepackage{times} +\end{verbatim} + +dans le préambule d'un document permet de sélectionner la fonte + times pour tout le corps du document. +\end{document} +%%%% fin exemple %%%% + +* A un niveau plus bas, dans la création d'un style par +exemple, la sélection d'une fonte peut se faire de la manière +suivante : +\fontfamily{ccr}\fontencoding{T1}\fontseries{c}\fontshape{sl}% +\fontsize{9}{11pt}\selectfont + +ou encore : + +\fontsize{14}{16pt}\usefont{OT1}{cmdh}{bc}{it} + +* Pour définir une commande de changement de fonte, on peut +utiliser \DeclareFixedFont. + +Exemple : +\DeclareFixedFont{\petitefonte}{\encodingdefault}% +{\familydefault}{\seriesdefault}{\shapedefault}{6pt} +\newcommand{\petit}{\petitefonte} +%%%% fin exemple %%%% + +# 28.4 # Comment changer la forme d'une fonte ? +----------------------------------------------- +* En LaTeX2e, pour un changement ponctuel de fonte, un certain +nombre de commandes sont disponibles par défaut : ++ \textrm pour romain ++ \textsf pour sans sérif ++ \texttt pour du type machine à écrire ++ \textmd pour une série moyenne ++ \textbf pour du gras ++ \textup pour des lettres droites ++ \textit pour de l'italique ++ \textsl pour des lettres penchées ++ \textsc pour des petites capitales ++ \textnormal pour la fonte par défaut du document. + +Exemple : +Un \textbf{bel} arbre. +Un \textbf{\textit{très bel}} arbre. +%%%% fin exemple %%%% + +* Pour changer la fonte de tout un paragraphe, on utilisera +plutôt les commandes \rmfamily, \sffamily, \ttfamily, \bfseries, +\mdseries, \itshape, \slshape, \upshape et \scshape. + +Remarque : si on utilise ces commandes sur un seul mot ou sur + un groupe de mot dans un paragraphe, alors l'espace + suivant une telle déclaration ne sera pas géré (il + vaut mieux dans ce cas utiliser les commandes + \textxx). + +Exemple : +{\scshape BlaBla } +ou +\begin{itshape} + blabla +\end{itshape} +%%%% fin exemple %%%% + +# 28.5 # Comment changer la taille d'une fonte ? +------------------------------------------------ +* Il existe les commandes \tiny, \scriptsize, \footnotesize, +\small, \normalsize, \large, \Large, \LARGE, \huge, \Huge, +classées dans l'ordre croissant de taille. Ces commandes sont +prédéfinies en fonction de la classe de votre document. + +Remarque : Le changement de taille de la fonte entraîne +automatiquement un changement de l'interligne. + +* Plus globalement, vous pouvez utiliser la commande \fontsize +(cf. 28.3). + +# 28.6 # Comment modifier la fonte des numéros de paragraphe ? +-------------------------------------------------------------- +Pour modifier la fonte des numéros de paragraphe, il faut +redéfinir seccntformat. + +Exemple (\LaTeXe) : +\makeatletter +\renewcommand\@seccntformat[1]{\texttt{\@nameuse{the#1}\quad}} +\makeatother +%%%% fin exemple %%%% + +# 28.7 # Comment modifier la fonte du mode verbatim ? +----------------------------------------------------- +* Le package 'verbatim' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ permet de faire cela. Il est alors +conseillé d'utiliser des fontes aux normes T1. + +* L'environnement verbatimcmd du package 'moreverb', disponible +sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/, permet de +garder les caractères backslash (\) et les accolades ({, et }) +actifs. On peut donc entre autres opérer des changements de +fonte. + +* Pour changer la taille de la fonte du mode verbatim, il faut +l'encapsuler dans des commandes de modification de taille. + +Exemple : +Texte avant. + +\begin{small} +\begin{verbatim} + Texte... +\end{verbatim} +\end{small} + +Texte après. +%%%% fin exemple %%%% + +# 28.8 # Comment réaliser des changements de fontes relatifs ? +-------------------------------------------------------------- +* Le package 'relsize' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ permet de faire ce genre de +choses. Les commandes offertes sont du type : + ++ \relsize{n} permet d'augmenter (n positif) ou de diminuer (n +négatif) la taille de la fonte par rapport à la taille courante. + +Exemple : +Un \relsize{1}texte \relsize{2}de \relsize{3}toutes +\relsize{-1}les \relsize{-4}tailles. +%%%% fin exemple %%%% + ++ \smaller == \relsize{-1} + ++ \larger == \relsize{1} + ++ avec un argument, on trouve : +\textsmaller{text}, \textlarger{text}, \mathsmaller{A}, +\mathlarger{B} +%%%% fin exemple %%%% + +* Le package 'scalefnt' de D. Carlisle disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/carlisle/ permet d'augmenter +ou de diminuer suivant un facteur proportionnel, la taille de +la fonte courante. + +Exemple : +\scalefont{2} double la taille de la fonte courante +\scalefont{.75} réduit de trois quarts la taille de la fonte +courante. +%%%% fin exemple %%%% + +# 28.9 # Comment mettre en évidence une portion de texte ? +---------------------------------------------------------- +Utiliser la commande \emph. Cette commande est définie dans la +classe de votre document, et sert spécifiquement à mettre en +évidence un mot, une expression ou toute une phrase. La plupart +du temps, elle se contente de mettre en italique votre texte. + +# 28.10 # Où trouver des fontes ? +--------------------------------- +Sur CTAN bien sûr, dans ftp://ftp.fdn.org/pub/CTAN/fonts/. + +# 28.11 # Comment suivre le chargement des fontes ? +--------------------------------------------------- +Le package 'tracefnt' permet de suivre le chargement des fontes +lors de la compilation d'un document. Ce package définit +plusieurs options : ++ infoshow pour avoir des informations sur le chargement des +polices, ++ errorshow permet de n'afficher que les erreurs, +etc. + +# 28.12 # Pourquoi MakeTeXPK est lancé alors que la fonte existe ? +------------------------------------------------------------------ +P. Terray : +C'est un problème de mise à jour de la base lié à kpathsea. +Normalement, MakeTeXPK met à jour la base "ls-R" de la TDS, à +chaque ajout de police. Si cette base n'est pas autorisée pour +tout le monde, ou si la variable TEXMF est mal réglée, dvips ou +xdvi ne peuvent pas vérifier que cette police existe. Du coup, +ils lancent MakeTeXPK pour la fabriquer. Et MakeTeXPK sachant +par ailleurs où mettre la police, il vérifie qu'elle existe, et +c'est pour ça qu'il donne le message comme quoi elle existe +déjà. + +Les solutions (UNIX) : +- vérifier que $TEXMF est bien réglée +- ls-R, fichier qui se trouve dans le répertoire texmf, doit +être autorisé en lecture écriture pour tout le monde +- reconstruire la base ls-R avec la commande texhash (tout +court). + +ATTENTION : il faut avoir les droits de gestionnaire +LaTeX (ou root) pour exécuter texhash. + +# 28.13 # Comment utiliser \textsc dans un titre en conservant le gras ? +------------------------------------------------------------------------ +Remarque : les sc grasses n'existent pas dans les fontes de + Knuth. En revanche, elles existent dans les fontes + EC. + +Depuis les dernières modifications dans les fontes EC, la +simple utilisation de ces fontes suffit à activer les +petites capitales grasses. + +# 28.14 # Comment utiliser des fontes TrueType? +----------------------------------------------- + +Une source d'information à ce sujet: +http://www.radamir.com/tex/ttf-tex.htm + +================================================================ +[29] DIVERS +================================================================ + +# 29.1 # A quoi sert la commande \par ? +--------------------------------------- +Elle permet de marquer explicitement la fin d'un paragraphe pour +permettre à LaTeX de le mettre en page. L'utilité de cette +commande se justifie par le fait que LaTeX met en page un texte +par paragraphe. Elle est, le plus souvent, utilisée dans la +définition de macros. + +# 29.2 # Comment commenter une partie d'un source LaTeX ? +--------------------------------------------------------- +* Sous LaTeX2.09, il suffit d'utiliser l'environnement +comment du package 'version'. + +Exemple : +Un paragraphe qui intéresse tout le monde et qui est donc +visible par tout le monde. + +\begin{comment} + Un paragraphe qui n'intéresse que moi et qui n'est visible + que dans le source de mon document. +\end{comment} + +Un autre paragraphe qui intéresse tout le monde. +%%%% fin exemple %%%% + +* Un environnement comment est également défini dans le package +'verbatim' compatible LaTeX2.09 et LaTeX2e. + +* Il est également possible de mettre des parties d'un document +source en commentaire grâce à l'environnement comment défini +dans le package 'comment' de V. Eijkhout. Ce package est +disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/. + +* Sous emacs, il y a une commande `comment-region' qui fait ça +très bien. Avec un argument, elle décommente. + +* Classique et de bon goût, l'évaluation conditionnelle permet +de mettre en commentaire sans se soucier de l'imbrication des +accolades, moins puissant cependant que les packages qui créent +un environnement comment: + +Exemple: +\iffalse +Ce passage est en commentaire. +\fi +%%%% fin exemple %%%% + +# 29.3 # Comment utiliser LaTeX sur des petites machines ? +---------------------------------------------------------- +La capacité de TeX est limitée de manière interne. Cela signifie +que ce sont des variables de TeX qui fixent le nombre de +variables (et la taille mémoire) maximal que TeX s'autorisera à +utiliser. Si vous utilisez plus de variables que prévu, TeX +s'arrêtera sur le message d'erreur : + + sorry, TeX capacity exceeded. + +Tout ceci est destiné à << préserver >> votre machine, c'est à +dire à empêcher TeX d'utiliser la totalité de la mémoire de +la machine, ce qui conduit la plupart du temps à un plantage. + +Sur une station, aucun problème, mais sur un micro-ordinateur, +les configurations peuvent-être nombreuses. C'est pourquoi le +TeX fournit en << standard >> sur les macs, par exemple, des +variables fixées assez bas (on suppose que le Mac a une toute +petite mémoire comparée à une station). Mais il existe +également un BigTeX, dont la seule différence avec le TeX +normal est qu'il est autorisé à utiliser plus de mémoire (les +variables en questions ont des valeurs plus importantes). + +Du coup, si votre micro a une configuration plutôt musclée, vous +pouvez compiler des documents plus gros, plus complexes, etc... + +Heureusement Kiffe a changé de stratégie et dans les futures +versions des outils les paramètres internes seront +configurables (en passant par ResEdit) et donc on décidera +soi-même la << bigness >> de son TeX (cf. distributions emTeX +et AsTeX). Pour changer les paramètres de compilation (pool size, +stack, font mem, main mem etc.) cf. fichier +emtex/doc/english/tex.doc, chapitre 6. + +La version 7.0 de web2c est configurable par le fichier +texmf.cnf. + +Remarque : pour un gros document, il peut être utile de le + découper en chapitres à inclure par la commande + \include (cf. paragraphe 9.2 ). + +# 29.4 # Comment visualiser des paramètres ? +-------------------------------------------- +Pour visualiser des paramètres spécifiques, il existe : +* \showt\baselinestretch (n'importe où ou presque, donc +affichage des éventuelles modifs, locales ou globales). Ou +pour avoir le résultat à la volée : +\message{Valeur de /baselinestretch = \the\baselinestretch} + +* Il existe aussi la commande \showthe. Celle-ci affiche les +paramètres demandés dans le log. En outre, pendant la +compilation, elle affiche la valeur demandée puis met LaTeX en +attente. Il faut alors taper s ou <RC> pour continuer. + +Exemple : +\documentclass{report} +\usepackage{french} +\pagestyle{empty} +\begin{document} +Texte. +\showthe\baselineskip +Texte. +\end{document} +%%%% fin exemple %%%% + +* Pour afficher une valeur à l'écran lors de la compilation, il +faut utiliser : \message{** Textwidth = \the\textwidth **}. Le +message s'insère alors au milieu des milliers d'autres choses que +LaTeX affiche : bien surveiller ! + +* Il existe également le package 'showkeys' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/package/tools/. Il modifie les commandes +\label, \ref, \pageref, \cite et \bibitem de manière à +visualiser les paramètres internes utilisés. + +* Pour visualiser les paramètres d'une page, il faut utiliser la +commande \layout du package 'layout'. Ce dernier est disponible +sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. + +* Pour visualiser des labels, il existe le package 'showlabels' +disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/showlabels/. Les noms des labels +utilisés par \label ou par la numérotation automatique des +équations apparaîtront dans la marge du document. Ce package ne +définit pas de commande particulière, il suffit d'appeler +\usepackage{showlabels} dans le préambule du document. Dans le +cas où des packages AMS sont utilisés, showlabels doit être +appelé après. Les options [inner] ou [outer] ou [twocolumn] +permettent de définir dans quelle marge vont apparaître les +labels. + +Remarque : ce package n'est pas compatible avec les styles + multicolonnes ni avec l'option leqno. + +# 29.5 # Comment visualiser des compteurs ? +------------------------------------------- +Pour visualiser la valeur d'un compteur, il suffit de demander +\immediate\write{16}{\the\nomducompteur} +ou +\message{\the\nomducompteur} + +# 29.6 # A quoi servent \makeatletter et \makeatother ? +------------------------------------------------------- +Le caractère "@" est spécial pour LaTeX, et ne peut pas être +utilisé directement comme partie d'un nom de macro dans un +document LaTeX. Pour utiliser certaines macros internes de LaTeX +(celles qui contiennent un "@"), directement dans un document +(au lieu d'utiliser un fichier .sty), il faut les encapsuler +dans une macro dont le nom ne contient pas de "@". En outre, +cette macro doit impérativement être déclarée dans le +préambule du document, et être encadrée par les commandes +\makeatletter et \makeatother. + +En fait ces commandes permettent d'indiquer à LaTeX que l'on +veut effectivement travailler sur ses commandes internes en le +forçant à considérer le "@" (at) comme une lettre +(makeatletter). + +ATTENTION : les commandes internes de LaTeX sont à manipuler + avec précaution. + +# 29.7 # Comment numéroter les lignes d'un document ? +----------------------------------------------------- +* Le package 'lineno' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/lineno/ permet de numéroter les +lignes d'un document. + +* Il existe également le package 'numline' de M. Jaegermann et +J. Fortune, pour du texte essentiellement. Ce package est +disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/numline/. + +* Pour numéroter les lignes d'un document inclu en mode +verbatim, il faut utiliser la commande \listinginput du package +'moreverb' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/moreverb/. + +* Le package 'vruler' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/vrsion/ permet également de +numéroter les lignes d'un document. + +# 29.8 # A quoi sert la commande \special ? +------------------------------------------- +La commande \special permet à TeX d'envoyer des instructions +particulières (non TeX) à un driver sans les interpréter. Les +instructions ainsi passées sont généralement dépendantes du +driver qui lui, saura les interpréter. L'utilisateur n'a en +général pas à se soucier de cette commande (\special), elle est +gérée par des packages tels que 'psfig' pour LaTeX2.09 ou +'graphics' et 'graphicx' pour LaTeX2e. + +Remarque : \includegraphics est standard dans LaTeX2e et + indépendant de la plateforme alors que le format de + \special est dramatiquement dépendant de la + plateforme de travail. Seul, le \includegraphics + préserve l'aspect universel d'un document source et + donc l'esprit universel de TeX. + +# 29.9 # Comment réaliser des calculs avec les variables LaTeX ? +---------------------------------------------------------------- +* Pour pouvoir utiliser des expressions du type \truc * \machin +dans une macro, il faut charger le package 'calc' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/calc/. + +Exemple : +\setcounter{x}{3*\real{1.3}} +%%%% fin exemple %%%% + +* Une autre solution consiste à utiliser les commandes +\addtolength\dim\dim, \divide \dim by \dim, etc. + +* Le package 'realcalc' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/generic/realcalc/ permet de faire des calculs sur des +réels. + +* Plus difficile à utiliser, il y a aussi le package 'trig'. + +# 29.10 # Où trouver une fonte 9pt ? +------------------------------------ +* La classe de document 'amsart' disponible sur CTAN offre +l'option 9pt. + +* De même les classes 'extarticle' et 'extreport' sont +disponibles à +http://www.informatik.uni-freiburg.de/~may/extsizes.html. + +* size9.clo de H. Steffani est disponible à +http://www.tu-chemnitz.de/~hfst/size9.clo. + +# 29.11 # Comment automatiser les compilations LaTeX ? +------------------------------------------------------ +* latexmk est un script perl, disponible sur +ftp://ftp.fdn.org/pub/CTAN/support/latexmk/, qui automatise la compilation d'un document +LaTeX. Il tourne en démon et relance une compilation à +chaque fois qu'un fichier source (.tex, .bib, \input, etc) est +sauvegardé. "latexmk fichier" lance latex/makeindex/bibtex autant +de fois qu'il le faut pour que le dvi soit à jour. + +* latexn disponible sur ftp://ftp.fdn.org/pub/CTAN/support/latexn est un script +csh qui permet également d'automatiser les compilations LaTeX. + +* Le package AUC-TeX sous emacs conseille l'utilisateur sur la +prochaine opération à effectuer (LaTeX, bibtex, makeindex, xdvi, +etc.), en fonction des dépendances entre les différents +fichiers. + +# 29.12 # Comment obtenir des cadres gris ? +------------------------------------------- +* Le package 'shade' disponible sur ftp://ftp.fdn.org/pub/CTAN/macro/generic/ +permet de tracer des cadres gris. + +* Le package 'psboxit', disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex2.09/contrib/misc/, permet d'obtenir du gris ou de +la couleur. + +# 29.13 # Comment obtenir certaines abréviations ? +-------------------------------------------------- +* Pour obtenir des abréviations dont certaines lettres doivent +être rehaussées et de taille réduite, on peut utiliser les +indices mathématiques. Mais, ce n'est pas une technique +recommandable. + +Exemple : +M$^{\mathrm{lle}}$ +%%%% fin exemple %%%% + +* Le package 'babel' propose la commande \ieme pour les +quantièmes. + +* Le package 'french' de B. Gaulle, définit la commande \fup +pour écrire une chaîne de caractères en exposant, ainsi que les +commandes \ier \iers \iere \iere \ieme \iemes pour les +quantièmes. + +Exemple : +M\fup{lle} +%%%% fin exemple %%%% + +Remarque : pour que la commande \fup suive les changements de + taille de fonte, il faut utiliser l'une des extensions + prévues à cet effet, à savoir les extensions + "smaller" et "relsize" (\usepackage{smaller,french} + par exemple). Une copie de l'extension smaller est + distribuée depuis 94 avec la distribution des + fichiers du style french (sous le nom mysmall.sty). + En revanche, la surélévation ne tient pas compte de + l'inclinaison de la police. + +* Le package 'smaller' de D. Taupin est disponible par ftp sur +ftp://ftp.lps.u-psud.fr/pub/latex/contrib/smaller.sty. Il +propose également une commande \fup qui définit smaller et +l@rger pour être compris par french.sty. Cette commande gère +l'inclinaison des \sl et des \it. + +ATTENTION : le fup de B. Gaulle étant installé au + \begin{document}, pour utiliser mon \fup modifié + avec french.sty, il faut après le \begin{document} + écrire: + \makeatletter + \let\fup\f@up + \makeatother + +* On peut également définir une nouvelle commande \abbr dans le +préambule du document : +\newcommand{\abbr}[1]{\raisebox{1ex}{\footnotesize #1}} +Cette solution a l'avantage d'éviter d'utiliser le mode +mathématique improprement. + +* Il existe aussi la commande \textsuperscript qui permet +d'obtenir un exposant sans passer en mode mathématique. + +# 29.14 # Comment gérer les espaces après une macro ? +----------------------------------------------------- +* Pour forcer LaTeX à introduire un espace après une macro, il +suffit de faire suivre son appel d'un backslash (\). + +Exemple : +texte \oe\ texte \oe, texte + +texte \oe texte \oe, texte +%%%% fin exemple %%%% + +* Pour que LaTeX gère lui même les espaces, il suffit d'utiliser +systématiquement les caractères {}. + +Exemple : +texte \oe{} texte \oe{}, texte \oe{}uf +%%%% fin exemple %%%% + +* On peut également définir une macro TeX \keepspace : +%%%% debut macro %%%% +\def\keepspace{\ifnum\catcode`\ =10 + \let\next\keepspacebis \else \let\next\relax \fi + \next} +\def \keepspacebis{\obeyspaces + \afterassignment\keepspaceaux\let\next= } +{\obeyspaces% +\gdef\keepspaceaux{% +\ifx \next\space\let\next\ignorespaces\fi% +\catcode`\ =10\relax\next}} +%%%% +%%%% fin macro %%%% +puis l'utiliser dans une autre définition de macro. + +Exemple : +\newcommand{\macro}{\textit{blablabla}\keepspace} +%%%% fin exemple %%%% + +* Le package 'xspace' intègre ces définitions qui lui permette +de gérer automatiquement l'espace après une macro suivant le +contexte. + +Exemple : +\documentclass{report} +\usepackage{french,xspace} +\pagestyle{empty} + +\newcommand{\macro}{aaaaa\xspace} + +\begin{document} +\macro bbbb \macro, bbbb +\end{document} +%%%% fin exemple %%%% + +Remarque : à noter que le package xspace est conforme aux règles + de typographie anglo-saxones donc la gestion des + caractères de ponctuation composés tels que : où ; ne + sera pas correcte en français. La solution consiste + alors à utiliser le blanc insécable qui de toutes + façons est recommandé dans ce cas : \macro~: blabla. + On peut également se créer son propre package + 'fxspace'. + +# 29.15 # Où trouver les notices d'utilisation des packages ? +------------------------------------------------------------- +Généralement la notice d'utilisation d'un package est incluse +dans le package lui même (fichier .dtx). Il suffit alors de +compiler ce fichier. Il existe également le fichier doc +disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/ qui décrit comment +exploiter ces notices. + +Si on lance "latex package.dtx" il sera produit le fichier +package.sty ou package.cls correspondant et le fichier +package.dvi de documentation de l'extension. + +# 29.16 # Comment obtenir des listes d'objets flottants ? +--------------------------------------------------------- +Certaines sont disponibles par défaut, il s'agit des listes de +figures et de tables, il suffit alors d'appeler les commandes +\listoffigures et \listoftables. D'autres sont liées à certains +packages. Par exemple, le package 'algorithms' de P. Williams +offre la commande \listofalgorithms. + +Remarque : la mise à jour de ces listes nécessite généralement + plusieurs compilations LaTeX. + +Exemple : +\documentclass{report} +\usepackage{algorithm,algorithmic} + +\begin{document} + +\listofalgorithms + +\chapter{toto} + +\begin{algorithm}[h!tp] + \begin{algorithmic}[2] + \REQUIRE $T_1$ et $T_2$ doivent \^etre des tableaux de + valeurs additionnables, et doivent \^etre de la m\^eme + longueur $n$. \ENSURE $\forall 0\leq k< n \;\; + Result[k]=T_1[k]+T_2[k]$. + \FOR{$i\rightarrow 0$ to $n$} + \STATE $Result[i]\rightarrow T_1[i]+T_2[i]$ + \ENDFOR + \end{algorithmic} + \caption{Somme terme \`a terme de deux tableaux3} + \label{algo-ex-3} +\end{algorithm} +[recopie en trois exemplaires] +\end{document} +%%%% fin exemple %%%% + +# 29.17 # Comment connaître les versions des fichiers utilisés lors d'une compilation ? +--------------------------------------------------------------------------------------- +Il suffit d'utiliser la commande \listfiles. + +Exemple : +\documentclass{report} +\listfiles +\usepackage{french} +\usepackage{graphics} + +\begin{document} + texte ... +\end{document} +%%%% fin exemple %%%% + +# 29.18 # Pourquoi certaines commandes sont elles indépendantes ? +----------------------------------------------------------------- +Les commandes LaTeX de type verbatim sont particulières du fait +qu'elles changent les codes de catégorie de leurs arguments. De +ce fait, elles ne sont plus compatibles avec d'autres commandes +et ne doivent pas être appelées par ces dernières. Certains +caractères spéciaux doivent alors être obtenus par \texttt. + +Exemple : +\texttt{\char`\\} +%%%% fin exemple %%%% + +On peut également utiliser l'environement lrbox de LaTeX2e pour +sauver le texte qui doit apparaître en verbatim dans une boîte +et ensuite utiliser cette boîte. + +# 29.19 # Comment installer un package ? +---------------------------------------- +Lorsqu'il s'agit d'un package conçu pour LaTeX2e et utilisant +les procédures et outils définis dans ce cadre, c'est simple : +un package est fourni avec deux (ou plus, pour les packages plus +complexes) fichiers, package.ins et package.dtx + +Il faut commencer par exécuter "latex package.ins" pour créer +le(s) fichier(s) de commandes lui(eux)-même(s) (typiquement +package.sty) puis "latex package.dtx" pour générer la +documentation, avec si besoin construction d'un index : +makeindex -s gind.ist -o package.ind package.idx, et d'un +glossaire : makeindex -s gglo.ist -o package.gls package.glo. + +Ces fichiers doivent ensuite être déclarés dans une variable +d'environnement afin d'être rendus visibles. + +Exemple (UNIX) : +TEXINPUTS=.:/usr/local/TEX/texmf/tex:/users/ADMIN/NG/LATEX: +/users/home/kluth/Section-equit/Modele +%%%% fin exemple %%%% + +Remarques : +* on ne peut évidemment générer la documentation en premier, +parce qu'elle aura toujours besoin du fichiers des commandes ; +* si l'on ne veut obtenir que la documentation <<utilisateur>>, +il faut ajouter la ligne "\OnlyDescription" dans le fichier +package.dtx, avant la ligne "\DocInput{package.dtx}". Sinon on +obtient aussi le listage commenté du code, ce dont on peut ne +pas vouloir se soucier et qui peut être volumineux pour les +packages importants. + +Néanmoins, il est clair que ce mode d'organisation et de +distribution n'est que le mode encouragé par l'équipe de +développement de LaTeX et n'est en rien une obligation. Un bon +nombre de packages disponibles ne le suit d'ailleurs pas (!), +pour diverses raisons (packages qui se veulent utilisables aussi +bien avec Plain TeX qu'avec LaTeX, << vieux >> packages écrits +pour LaTeX2.09, packages écrits par des personnes qui veulent +faire << comme ça leur plait >>, etc.)... Dans ces différents +cas, il faut << aller y voir de plus près >> pour comprendre +l'organisation choisie. + +C'est justement le cas pour slashbox (!) : un seul fichier .sty +est fourni. Il faut l'éditer pour extraire le fichier de +documentation qui se trouve après la ligne 80 "\endinput". + +*Pour WINDOWS : +1/ copier le fichier package.ins dans un répertoire +temporaire et le compiler avec LaTeX ; +2/ déplacer le fichier package.sty dans un répertoire visible par +LaTeX, soit commun à tous les utilisateurs, soit local, +soit personnel : +-- pour fpTeX, ce sont respectivement les répertoires (déclarés à +l'installation de fpTeX) ./texmf/tex/latex/lerepertoiredemonpackage (à +créer si besoin), ./texmf.local/tex/latex/lerepertoiredemonpackage (à créer +si besoin), HOME/texmf/tex/latex/lerepertoiredemonpackage (à créer si +besoin) ; +-- pour MikTeX, ce sont les mêmes répertoires mais le répertoire local est +./localtexmf/ et que le HOME ne semble pas être prévu : +[FMF : je ne suis pas sûre de ce dernier point] +3/ reconstruire la base de données des packages (rebuild ls-R filenames +databases pour fpTeX, refresh filename database pour MikTeX). + +# 29.20 # Comment générer des codes barres ? +-------------------------------------------- +* Il existe les packages 'ean' et 'code128' disponibles sur +ftp://ftp.fdn.org/pub/CTAN/macros/generic/ean/ et ftp://ftp.fdn.org/pub/CTAN/macros/generic/code128/. + +* De même les packages 'envelopes' et 'labels' sont disponibles +sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/envlab/. + +* On peut également trouver le package 'barcodes' sur +ftp://ftp.fdn.org/pub/CTAN/fonts/barcodes/. + +# 29.21 # Comment gérer des abbréviations ? +------------------------------------------- +* Le package 'abbrevs' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/monster/ permet automatiquement +de remplacer des abbréviations par leur formule développée +notamment lors d'un premier appel. + +* Le package 'acronym' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/acronym/ permet de s'assurer que +tous les acronymes utilisés dans un document apparaissent au +moins une fois sous une forme développée. + +# 29.22 # Comment imprimer un fichier postscript sur une imprimante non postscript ? +------------------------------------------------------------------------------------ +alladin est un excellent programme qui permet d'imprimer du +postscript sur à peu près n'importe quelle imprimante. Cet outil +est disponible par ftp sur ftp://ftp.lip6.fr/pub/ghost/aladdin/. + +Remarque : on ne peut pas dire que ce soit d'une très grande + facilité d'installation, mais une fois que ce mauvais + moment est passé, on ne peut plus s'en passer :-) + +# 29.23 # Comment surcharger une commande déjà existante ? +---------------------------------------------------------- +* Pour pouvoir ajouter des définitions sur une commande +prédéfinie sans la réécrire complètement, il faut utiliser la +commande \let. + +Exemple : +\let\standardsection=\section +\def\section{\newpage\standardsection} +%%%% fin exemple %%%% + +* Il existe aussi la commande expandafter. + +Exemples : +\toks0 \expandafter{\section} +\edef\section{\noexpand\newpage\the\toks0 } + +\expandafter\def\expandafter\section\expandafter{\expandafter% +\newpage\section} +%%%% fin exemple %%%% + +* Le package 'babel' propose également la commande \addto. + +# 29.24 # Comment reporter l'exécution d'une commande à la fin d'une page ? +--------------------------------------------------------------------------- +Il existe pour cela le package 'afterpage' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. + +Exemple : +\afterpage{\clearpage} +%%%% fin exemple %%%% + +# 29.25 # Comment définir des scripts interactifs ? +--------------------------------------------------- +Le package 'dialogl' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/dialogl/ permet de définir des +scripts LaTeX intéractifs. + +# 29.26 # Comment identifier une version provisoire ? +----------------------------------------------------- +* Le package 'draftcopy' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/draftcopy/ permet par exemple +d'écrire le mot DRAFT en grisé en diagonale sur toutes ou +certaines pages d'un document. Il permet également de faire +moins voyant. + +Exemple : +\documentclass{report} +\usepackage{french} +\usepackage{draftcopy} +\begin{document} +Voici une version provisoire de mon texte. Pourriez-vous la +relire et me faire part de vos commentaires avant la fin de +la semaine? + +Merci d'avance. + +\paragraph{Proposition.} +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire -- +Texte provisoire -- Texte provisoire -- Texte provisoire + +\end{document} +%%%% fin exemple %%%% + +* Le package 'drafthead' également disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/ permet lui de n'agir que sur les +en-têtes des documents. + +* On peut également utiliser la macro : +%%%% debut macro %%%% +\special{ +! userdict begin /bop-hook{ +stroke +gsave 240 100 translate +65 rotate /Times-Roman findfont 220 scalefont setfont +0 0 moveto 0.9 setgray (DRAFT) show grestore +}def end} +dans le préambule de son document. +%%%% fin macro %%%% + +* Le package 'prelim2e' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/prelim2e/ offre également un +marquage des versions préliminaires d'un document. + +# 29.27 # Comment obtenir des caractères barrés ? +------------------------------------------------- +* Le package 'ulem' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ permet de +barrer des caractères. + +Exemple : +\sout{je barre tout} +%%%% fin exemple %%%% + +# 29.28 # A quoi sert la commande \ensuremath ? +----------------------------------------------- +La commande \ensuremath assure que son argument sera imprimé en +mode mathématique quel que soit le mode courant. + +Exemple : +\documentclass{report} +\usepackage{french} +\pagestyle{empty} +\newcommand{\mc}{\ensuremath{(\alpha, \beta)}} +\begin{document} +Le couple \mc\ définit par $\mc = x+y, x-y$, ... +\end{document} +%%%% fin exemple %%%% + +# 29.29 # A quoi servent les commandes \(re)newcommand ? +-------------------------------------------------------- +La commande \newcommand permet à l'utilisateur de définir ses +propres commandes. La commande \renewcommand permet de +redéfinir des commandes LaTeX déjà existantes. Elle s'utilise +dans le préambule du document : + \newcommand{nom_commande}[nb_arguments]{définition} +nb_arguments définit le nombre d'arguments de la nouvelle +commande LaTeX. Il est compris entre 0 et 9. Ils sont +référencés par #no_argument dans la définition. + +Exemple : +\documentclass{report} +\usepackage{french} +\pagestyle{empty} +\newcommand{\be}{\begin{enumerate}} +\newcommand{\ee}{\end{enumerate}} +\newcommand{\bold}[1]{\textbf{#1}} +\begin{document} +\bold{Faites votre choix~:} +\be +\item premier choix~: A +\item deuxième choix~: B +\item troisième choix~: C +\ee +\end{document} +%%%% fin exemple %%%% + +Remarques : La commande \providecommand permet de ne prendre en + compte la nouvelle commande que si elle n'existe pas + déjà. + + Pour définir un argument optionnel, on utilise la + syntaxe : + \newcommand{nom}[nb_arg][defaut]{definition} + defaut permet de préciser une valeur par défaut de + la variable qui sera utilisée en l'absence + d'argument. L'argument optionnel ne peut être que + #1. + +# 29.30 # Où trouver des hirondelles ? +-------------------------------------- +On peut trouver la package 'cropmark' sur +ftp://ftp.fdn.org/pub/CTAN/macros/generic/. + +# 29.31 # Comment tracer des lignes ? +------------------------------------- +* On peut mettre la définition suivante dans le préambule du +document : +\def\ligne#1{\leaders\hrule height #1\linethickness \hfill} +puis utiliser : +\ligne{5} +dans le texte. + +* Il existe également la commande \rule qui prend en premier +argument, la longueur horizontale du trait et, en deuxième, son +épaisseur. Elle possède également un argument optionnel qui +permet de positionner la ligne traçée par rapport à la ligne +d'écriture. + +Exemple : +\rule[0.5ex]{\textwidth}{0.1mm} +%%%% fin exemple %%%% + +* On peut aussi utiliser les commandes \hrule pour des lignes +horizontales et \vrule pour des lignes verticales. + +# 29.32 # Comment imprimer le caractère ~ ? +------------------------------------------- +* LaTeX2e fournit la commande \textasciitilde sous fonte T1. +Sous OT1, il faut définir +\ProvideTextCommand{\textasciitilde}{OT1}{\~{}}. + +* Il est possible de passer par le mode verbatim via la commande +\verb$~$. + +* On peut aussi définir sa propre commande : +\def\mytilde{\raisebox{-.8ex}{\~~}\hspace{-0.15em}} + +* \~{} permet également d'obtenir un tilde. + +* Une autre solution consiste à utiliser $\sim$. + +* Autre solution, utiliser : \char`\~ + +Remarque : la première solution est de loin la meilleure. + +# 29.33 # Comment visualiser tous les caractères d'une fonte ? +-------------------------------------------------------------- +Le plus simple consiste à utiliser : +latex nfssfont +nfssfont.tex est un fichier disponible sur CTAN. + +Il faut ensuite donner le nom de la fonte à examiner par +exemple cmr10 puis construire la table des caractères en +utilisant la commande \table. Cela permet de construire un +fichier .dvi contenant les codes de tous les caractères. + +L'appel d'un symbole se fait alors via la commande \symbol{x} où +x est le code associé au caractère voulu (c'est un entier +compris entre 0 et 255). + +On peut également utiliser \char"<octal> ou \char^^<hexa> +ou encore \char<decimal> mais ces commandes sont moins robustes. + +# 29.34 # A quoi sert % dans les macros ? +----------------------------------------- +Le % en fin de ligne d'une macro permet d'indiquer à LaTeX que +la définition qu'il est en train de lire continue à la ligne +suivante. De manière générale, les espaces après une macro sont +ignorés, mais pas après les accolades. Ce caractère permet de +s'assurer que des espaces non voulus ne seront pas pris en +compte. Ainsi, il est prudent de mettre un % après chaque +accolade qui se trouve en fin de ligne. + +# 29.35 # Comment inclure l'heure dans un document ? +---------------------------------------------------- +* La macro décrite ci-dessous, à inclure dans le préambule de +votre document, définit la commande \timenow : + +%%%% debut macro %%%% +\makeatletter +\def\timenow{\@tempcnta\time + \@tempcntb\@tempcnta + \divide\@tempcntb60 + \ifnum10>\@tempcntb0\fi\number\@tempcntb + \multiply\@tempcntb60 + \advance\@tempcnta-\@tempcntb + :\ifnum10>\@tempcnta0\fi\number\@tempcnta} +\makeatother +%%%% fin macro %%%% + +* Le package 'time' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/generic/time.sty permet d'inclure l'heure courante +dans un document. + +* En ajoutant la macro suivante de H. Hanche-Olsen dans le +préambule de son document, on peut via la commande +%%%% debut macro %%%% +\isodayandtime obtenir la date et l'heure courante : +\begingroup +\count0=\time \divide\count0by60 % Hour +\count2=\count0 \multiply\count2by-60 \advance\count2by\time +% Min +\def\2#1{\ifnum#1<10 0\fi\the#1} +\xdef\isodayandtime{\the\year-\2\month-\2\day\space\2{\count0}:% +\2{\count2}} +\endgroup +%%%% fin macro %%%% + +Autre exemple d'utilisation (qui nécessite dvips) : +%%%% debut macro %%%% +\special{!userdict begin /bop-hook + {gsave -90 rotate -780 560 moveto 1.0 0.7 0.7 setrgbcolor + % 0.8 setgray + 106 45 {dup mul exch dup mul add 1.0 exch sub} setscreen + /Times-Roman findfont 25 scalefont setfont (DRAFT + \isodayandtime) show grestore} def} +%%%% fin macro %%%% + +* On peut également utiliser la macro \time qui donne l'heure +en minutes. Pour afficher l'heure en heures et minutes, il faut +les calculer puis les afficher avec la macro \the. + +Exemple 1 : +\documentclass{article} +\usepackage{french} +\pagestyle{empty} +\begin{document} +Cette compilation a démarré à \the\time\ minutes après minuit +le \today. +\end{document} +%%%% fin exemple %%%% + +Exemple 2 : +\usepackage{calc} +\newcounter{hours}\newcounter{minutes} +\newcommand{\printtime}{% + \setcounter{hours}{\time/60}% + \setcounter{minutes}{\time-\value{hours}*60}% + \thehours :\theminutes} +%%%% fin exemple %%%% + +* Il existe également le package 'heure' de T. Bouche donné +ci-dessous : +%%%% debut macro %%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{heure} +[1996/6/11v0.1 affiche le jour et l'heure de production d'un +document] +\newif\if@heure@fin\@heure@finfalse +\newif\if@heure@final\@heure@finalfalse +\DeclareOption{fin}{\@heure@fintrue} +\DeclareOption{final}{\@heure@finaltrue} +\DeclareOption{draft}{} +\ProcessOptions +%%% définition de hours prise dans testfont +\newcount\m \newcount\n +\def\hours{\n=\time \divide\n 60 + \m=-\n \multiply\m 60 \advance\m \time + \twodigits\n\ :\ \twodigits\m} +\def\twodigits#1{\ifnum #1<10 0\fi \number#1} +%%%%%%% Tant que ça n'est pas définitif. +\if@heure@final\else +\AtBeginDocument{\begin{center}% + {\bfseries\itshape\large Version du \today\ à \hours }% +\end{center}} +\fi +\if@heure@fin +\AtEndDocument{% + \begin{flushright}% + \small \itshape (Le \today\ à \hours )\hspace*{3em}% + \end{flushright}} +\fi +\endinput +%%%% fin macro %%%% + +Utilisation : +Il suffit de passer fin, final ou draft en option de classe. + +Exemple 1 : +\documentclass[11pt,draft]{article} +\usepackage{heure} + +\begin{document} +Voici le résumé de notre expérience avec le Brome~: + +Bla bla bla. +\end{document} +%%%% fin exemple %%%% + +Exemple 2 : +\documentclass[11pt,fin]{article} +\usepackage{heure} + +\begin{document} +Voici le résumé de notre expérience avec le Brome~: + +Bla bla bla. +\end{document} +%%%% fin exemple %%%% + +Exemple 3 : +\documentclass[11pt,final]{article} +\usepackage{heure} + +\begin{document} +Voici le résumé de notre expérience avec le Brome~: + +Bla bla bla. +\end{document} +%%%% fin exemple %%%% + +# 29.36 # Comment compter le nombre de mots d'un fichier ? +---------------------------------------------------------- +A priori, il n'y a pas de solution simple à ce problème : +* A partir du fichier source .tex, il faut enlever toutes les +commandes LaTeX avec un utilitaire tel que detex (disponible sur +ftp://ftp.fdn.org/pub/CTAN/support/detex/) puis utiliser un autre utilitaire tel +que wc sous UNIX. + +* On peut également travailler à partir du fichier .dvi en +appliquant dvitty (ou dvi2tty). + +ATTENTION : aucune de ces méthodes n'est idéale comme l'indique + l'essai comparatif de T. Bouche : + detex -i grfguide.tex | wc -w donne 4420 + dvitty grfguide.dvi |wc -w donne 4524 + wc -w grfguide.tex donne 4539 + ps2ascii grfguide.ps |wc -w donne 5066 + +# 29.37 # Comment rendre inactif un caractère ? +----------------------------------------------- +La commande \string permet de désactiver un caractère rendu +actif par une macro. + +Exemple : +En français le : est rendu actif pour que \LaTeX gère lui-même +l'espace à mettre avant. En revanche, dans une URL ou une +adresse mail cet espace est superflu. On utilise donc : +mailto\string:moi.meme@chez.mon.site +%%%% fin exemple %%%% + +# 29.38 # Comment utiliser le mode verbatim dans une commande ? +--------------------------------------------------------------- +LaTeX2e fournit l'environnement lrbox. + +Exemple : +\documentclass{article} +\usepackage{alltt} +\pagestyle{empty} + +% --------------- +\newsavebox{\inverbatim} +\begin{lrbox}{\inverbatim}% +\noindent\begin{minipage}{\linewidth} +\begin{alltt} + 1 + -8 + 7 Sqrt[2] ArcTanh[-------] + Sqrt[2] +\end{alltt} +\end{minipage}% +\end{lrbox}% box +% ------------------------------------ + +\begin{document} +\noindent +L'expression : \usebox{\inverbatim} démontrée au paragraphe +précédent prend ici tout son sens. + +En effet l'expression \usebox{\inverbatim} permet\ldots +\end{document} +%%%% fin exemple %%%% + +# 29.39 # Comment redéfinir la commande \year ? +----------------------------------------------- +Pour ne faire apparaître que deux chiffres au lieu de quatre, il +faut utiliser : +\newcommand{\ignoretwo}[2]{} +\newcommand{\shortyear}{\expandafter\ignoretwo\the\year} +dans le préambule du document. + +# 29.40 # Qu'est ce que la magnification ? +------------------------------------------ +* La commande magnification permet de faire un zoom d'un +document. + +Exemple : +\mag=1440 +\documentclass{...} +%%%% fin exemple %%%% + +* On peut également travailler sur le fichier postscript via +dvips avec l'option -x nombre où nombre vaut par exemple 1200 +pour un agrandissement de 20%. + +* De la même manière, le package 'scale' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/scale/ permet de modifier +l'échelle d'un document avant impression. + +# 29.41 # Comment sont gérés les postscripts dans LaTeX ? +--------------------------------------------------------- +P. Perichon : +TeX/LaTeX + DVIPS procèdent en 2 temps : +* Lorsque l'on a une figure PostScript (EPS : Encapsulated +PostScrit), on met les commandes nécessaires dans son source +(fichier .tex) pour dire à TeX/LaTeX que l'on veut cette figure +à telle place dans son document avec telles dimensions (en +incluant la bonne extension : graphicx, psfig, epsfig) . + +Lors de la phase d'interprétation du code TeX/LaTeX, +l'interprète TeX/LaTeX va seulement consulter dans le fichier +externe contenant la figure les dimensions/proportions de +l'image (les fameuses bounding box chères au PostScript +Encapsulé). + +En fin de course, dans le fichier DVI on aura le nom et les +dimensions de l'image mais PAS CELLE-CI (qui est toujours +externe). Donc si on visualise juste le fichier DVI, on voit +l'emplacement de l'image mais pas cette dernière (en particulier +la commande \psdraft génère un cadre genre \fbox{...} aux +dimensions de l'image à l'emplacement de celle-ci). + +* Dans un deuxième temps, la commande DVIPS, transformera le +fichier DVI en PostScript et incluera à ce moment les fichiers +images EPS. Donc si on visualise/imprime le fichier PostScript, +on voit le texte et les images. + +* Toutefois, certains visualiseurs DVI, par exemple XDVI sous +UNIX pour ne pas le citer, détectent quelque chose du genre : + PSfile="toto.eps" llx=0 lly=-1 urx=57 ury=29 rwi=4252 +dans le fichier DVI, et appellent gentiment GostScript/GhostView +qui vont préparer une image bitmap que le visualiseur DVI +s'empressera de montrer (quand ça marche : avec psfig.sty pas de +problème, mais avec l'extension graphicx...). Mais d'autres +visualiseurs, comme DVIWIN, ne savent pas que faire d'un fichier +PS. + +DVI signifie DeVice Independent : ceci est un format de document +indépendant du système d'impression. Donc non lié à un langage +de description de page utilisé en interne par une quelconque +imprimante (PostScript, PCL, HPGL, Windows GDI, ...). Il suffit +après d'utiliser un convertisseur qui transforme le DVI en +quelque chose que comprend votre imprimante (PostScript, HPGL, +PCL, ...). Cette méthode permet d'imprimer sur n'importe quel +type d'imprimante (il suffit d'avoir le bon convertisseur). Mais +hélas en DVI, il n'a point été prévu d'y mettre une image (le +problème n'est en effet pas simple). D'où l'utilisation de fichier +EPS. + +# 29.42 # Pourquoi LaTeX n'accepte-t'il pas tous les formats d'image ? +---------------------------------------------------------------------- +P. Perichon : +Le problème est le suivant : un fichier DVI + image TIFF, GIF, +TGA,... comment faire digérer tout ça par votre imprimante ???? +Le fichier DVI peut se faire convertir en un langage +d'impression compréhensible par votre imprimante... mais vos +formats d'images... faudrait-il en plus prévoir un système de +conversion de TIFF, GIF, TGA, ... vers le langage d'impression +de votre imprimante (Alladin avec GhostScript/GhostView propose +quelques filtres, mais bon). A part quelques langages de +description de pages comme PostScript et un ou deux autres qui +pratiquent une compatibilité ascendante quant aux versions du +langage qu'ils utilisent, les autres fabricants d'imprimantes +changent de langage quasiment à chaque modèle ou série +d'imprimante (impossible de tenir à jour autant de +convertisseurs). + +Pour tout cela le langage PostScript (PS et EPS) nous rend +grandement service en nous simplifiant la vie (et pour d'autres +raisons aussi). C'est peut-être un peu plus lourd à manipuler, +mais plus simple pour tout le monde de convertir vos images en +EPS. De plus, si vous ne disposez pas d'imprimante PostScript, +GhostScript/GhostView se chargera d'interpréter le fichier PS +(texte + images), fabriquera une bitmap à la bonne résolution et +pourra l'envoyer à votre imprimante via votre pilote +d'impression. Tout cela automatisé dans une bonne distribution +est transparent à l'utilisateur. + +Pour plus de détails, consulter le grfguide disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/ et le document epslatex +disponible sur ftp://ftp.fdn.org/pub/CTAN/info/. + +# 29.43 # A quoi sert la commande \(re)newenvironment ? +------------------------------------------------------- +Les commandes \newenvironment et \renewenvironment permettent de +définir des actions qui seront appliquées entre les commandes +\begin{mon_environnement} et \end{mon_environnement}. Ces +commandes doivent être appelées dans le préambule du document +suivant la syntaxe : + \newenvironment{nom}[nb_arg]{avant}{après} +avant et après sont les actions qui auront lieu à l'entrée et à +la sortie du nouvel environnement. + +Exemple : +\documentclass{report} +\usepackage{french} + +\newenvironment{Relief}[1] +{\mbox{\Large{\uppercase{#1}}}} + +\begin{document} +\begin{Relief} + {Il}~était une fois~\ldots +\end{Relief} +\begin{Relief} + {U}n jour peut être~\ldots +\end{Relief} +%%%% fin exemple %%%% + +# 29.44 # Comment récupérer le nom du fichier compilé ? +------------------------------------------------------- +Pour récupérer le nom du fichier compilé et l'afficher lors +d'une compilation, il faut utiliser la commande \jobname. + +Exemple : +Le fichier source est \texttt{\jobname.tex}. +%%%% fin exemple %%%% + +# 29.45 # Comment gérer des conditions de traitement dans un style ? +-------------------------------------------------------------------- +Le package 'ifthen' disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/ +permet d'implémenter des traitements conditionnels tels que +\ifthenelse et \whiledo. + +# 29.46 # A quoi servent les commandes \setlength et \addtolength ? +------------------------------------------------------------------- +Ces deux commandes permettent de modifier la longueur de +certains paramètres. + +Exemples : ++ \setlength{nom_parametre}{longueur} ++ \addtolength{nom_parametre}{longueur} +%%%% fin exemple %%%% + +# 29.47 # Quelles sont les unités de mesure de TeX ? +---------------------------------------------------- +TeX comprend six unités de mesure : ++ pt point = 0,35 mm ++ mm millimètre ++ ex correspond à la hauteur d'un x dans la fonte courante ++ em correspond à la largeur d'un m dans la fonte courante ++ cm centimètre ++ in pouce = 2,54 cm + +# 29.48 # A quoi sert la commande \mbox ? +----------------------------------------- +La commande \mbox permet à LaTeX de considérer son argument +comme une seule entité. Elle peut ainsi empêcher la coupure +d'un mot ou d'un groupe de mots. + +Exemple : +Mon numéro de téléphone est le~\mbox{01 69 63 12 68}. +%%%% fin exemple %%%% + +# 29.49 # Comment obtenir des points de suspension ? +---------------------------------------------------- +La commande \ldots permet d'obtenir trois points de suspension +espacés correctement. + +# 29.50 # Comment désactiver une ligature ? +------------------------------------------- +Pour désactiver une ligature, il faut introduire {} ou une +\mbox{} entre les lettres ligaturées. + +Exemple : +comparez effacer, ef{}facer et ef\mbox{}facer +%%%% fin exemple %%%% + +# 29.51 # Comment gérer les versions d'un document ? +---------------------------------------------------- +* Pour les versions provisoires, voir la question 29.26. + +* Il existe le package 'vrsion' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/vrsion/ qui permet via la +commande \version d'inclure un numéro de version dans un +document LaTeX. Ce numéro est incrémenté à chaque compilation. + +* On peut également se reporter à la question 29.35 pour inclure +le jour et l'heure de compilation dans un document. + +# 29.52 # Comment changer certains titres ? +------------------------------------------- +Il suffit de renommer les variables suivantes : + \def\refname{R\'ef\'erences}% + \def\abstractname{R\'esum\'e}% + \def\bibname{Bibliographie}% + \def\prefacename{Pr\'eface}% + \def\chaptername{Chapitre}% + \def\appendixname{Annexe}% + \def\contentsname{Table des mati\`eres}% + \def\listfigurename{Table des figures}% + \def\listtablename{Liste des tableaux}% + \def\indexname{Index}% + \def\figurename{{\scshape Fig.}}% + \def\tablename{{\scshape Tab.}}% + \def\partname{\protect\@Fpt partie}% + \def\@Fpt{{\ifcase\value{part}\or Premi\`ere\or Deuxi\`eme\or + Troisi\`eme\or Quatri\`eme\or Cinqui\`eme\or Sixi\`eme\or + Septi\`eme\or Huiti\`eme\or Neuvi\`eme\or Dixi\`eme\or + Onzi\`eme\or Douzi\`eme\or Treizi\`eme\or Quatorzi\`eme\or + Quinzi\`eme\or Seizi\`eme\or Dix-septi\`eme\or + Dix-huiti\`eme\or Dix-neuvi\`eme\or Vingti\`eme\fi}}% + \space\def\thepart{}}% + \def\pagename{page}% + \def\seename{{\emph{voir}}}% + \def\alsoname{{\emph{voir aussi}}}% + \def\enclname{P.~J. }% + \def\ccname{Copie \`a }% + \def\headtoname{}% + \def\proofname{D\'emonstration}% for AMS-LaTeX + +Remarque : lorsque certains changements de noms sont déjà gérés + par un package (french par exemple) il faut placer + les définitions ci-dessus après le \begin{document}. + +# 29.53 # Comment insérer un code source dans un document ? +----------------------------------------------------------- +* Le package 'listings' disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/listings/ permet de gérer la +mise en page de code source avec notamment la mise en relief de +mots clés. + +* La distribution GUTenberg contient un package du nom de +'lgrind' (executable+lgrind.sty) qui, entre autres (C, C++, +Pascal, BASIC, Modula-2, Fortran, RATFOR, Yacc, PostScript, +Prolog, MLisp, Icon, LaTeX, Perl, CSH, Bourne Shell, assembler, +68000 assembler, asm68, VMS assembler, ISP, LDL, Linda, MODEL, +MatLab, Russell), formatte du code C++ en LaTeX. Ce programme +disponible sur CTAN permet à partir de code source C de générer +du code LaTeX respectant l'indentation. Ce package est également +disponible sur ftp://ftp.fdn.org/pub/CTAN/support/lgrind/. + +* wflman disponible par ftp sur +ftp://ftp.keck.hawaii.edu/pub/wlupton/wflman-2.2.2.tar.gz +peut aussi être utile. + +* Il existe également DOC++ qui peut créer une documentation +HTML ou LaTeX à partir des infos ajoutées dans les commentaires +du code C++. Pour plus de détails, voir : +http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html + +* Le package 'tgrind', qui vient avec un .sty et une moulinette +permet de transformer un .c en .tex + +* Le package 'c++2latex' sous license GNU est capable de +convertir des fichiers C, C++ et JAVA en LaTeX2e. Les lignes +peuvent être numérotées. + +* Le package 'cprog' disponible sur CTAN permet de formater des +programmes C en TeX. + +* Le package 'c2ltx', de M. Plugge +(plugge@biv7.sr.fh-mannheim.de), appartient à la famille de +convertisseurs cvt2ltx. Il numérote les lignes, traduit != en +$\neq$ , gère les commentaires, les en-têtes de procédures, etc. +Il supporte plusieurs fichiers d'entrée et gère automatiquement +les changements de section et la génération d'index. Une +documentation est disponible par ftp sur +ftp://axp3.sr.fh-mannheim.de/cvt2latex/cvt2ltx.zip. +Ce package sera bientôt disponible sur CTAN. +AL: il y est, peut être, non ? + +# 29.54 # Comment tracer une ligne horizontale ? +------------------------------------------------ +* Pour obtenir une ligne centrée par rapport à la mi-hauteur au +dessus de la ligne d'écriture, on peut utiliser ceci : +\hbox{\raisebox{0.4em}{\vrule depth 0pt height 0.4pt width 1cm} +Toto} + +# 29.55 # Comment générer un espace invisible de taille donnée ? +---------------------------------------------------------------- +Il existe pour cela la commande \phantom. Celle-ci génère un +espace invisible de la même longueur que son argument. + +Exemple : +Complète les mots qui manquent dans le texte suivant~: + +Le petit chaperon \phantom{rouge} se promène~\ldots. +%%%% fin exemple %%%% + +# 29.56 # Qu'est ce qu'une correction italique ? +------------------------------------------------ +Pour que LaTeX puisse gérer correctement le passage d'une fonte +italique à une fonte droite, il peut être utile d'utiliser la +commande \/. Cela permet d'augmenter légèrement l'espace qui +sépare la dernière lettre en italique, de la première lettre +droite. + +Exemple : +Un \textit{cheval}\/ file au galop. +%%%% fin exemple %%%% + +# 29.57 # Quels sont les accents accessibles sous LaTeX ? +--------------------------------------------------------- +Les accents accessibles sous LaTeX sont les suivants : ++ \`{a} ou \`a accent grave ++ \'{e} ou \'e accent aigu ++ \^{i} ou \^i accent circonflexe ++ \"{o} ou \"o trema ++ \~{u} ou \~u tilde ++ \={o} ou \=o surligné ++ \.{o} ou \.o point ++ \u{o} ++ \v{o} ++ \H{o} trema hongrois ++ \t{oo} ++ \c{c} cédille ++ \d{o} point en dessous ++ \b{o} sousligné + +# 29.58 # Comment écrire dans un fichier pendant une compilation ? +------------------------------------------------------------------ +* On dispose pour cela des commandes \write et \newwrite. + +Exemple : +\newwrite\test +\openout\test=toto +\write\test{Je m'appelle Paul} +\write\test{\noexpand\thesection} +\closeout\test +\bye +%%%% fin exemple %%%% + +Remarque : \noexpand permet d'inclure des commandes LaTeX sans + qu'elles soient interprêtées. + +* Le package 'french' propose la commande +\originaloutput[fichier]{texte} pour écrire le "texte", tel +qu'il est fourni, dans le "fichier". Dans ce cas, les caracteres +actifs de french sont automatiquement desactivés. C'est donc +l'equivalent de \immediate\write\fichier{texte}. + +* Le package 'sverb' disponible sur CTAN propose +l'environnement verbwrite. + +Exemple : +\begin{verbwrite}{fichier.tmp} + Ce texte va être sauvé dans le fichier fichier.tmp. +\end{verbwrite} +%%%% fin exemple %%%% + +# 29.59 # Comment gérer des compteurs ? +--------------------------------------- +Un certain nombre de compteurs sont prédéfinis dans LaTeX, il +s'agit : ++ des compteurs de structuration du document : part, chapter, +section, subsection, subsubsection, paragraph, subparagraph, ++ du compteur de page, ++ du compteur d'équation, ++ du compteur de figure, ++ du compteur de tables, ++ des compteur de notes : footnote et mpfootnote, ++ et des compteurs de liste : enumi, enumii, enumiii et enumiv. + +Pour définir son propre compteur, il faut utiliser la commande +\newcounter{nv_cptr}[ref_cptr]. Lorsque qu'un compteur déjà +existant est passé en argument (ref_cptr), le nouveau compteur +nv_cptr sera réinitialisé à chaque incrément (via \stepcounter +ou \refstepcounter) du compteur ref_cptr. + +Par défaut, la valeur d'un nouveau compteur est 0. La commande +\setcounter{cptr}{val} permet de lui donner une autre valeur. On +peut également incrémenter la valeur d'un compteur via la +commande \addtocounter{cptr}{val}. La valeur d'un compteur peut +être récupérée, dans un calcul par exemple, grâce à la commande +\value{cptr}. + +\stepcounter{cptr} permet d'incrémenter le compteur cptr et de +réinitialiser tous les compteurs liés par référence (argument +ref_cptr de la commande \newcounter). La commande +\refstepcounter{cptr} permet en outre de mettre à jour la valeur +courante du compteur qui pourrait être appelé par un \ref. + +\thecptr, où cptr est le nom d'un compteur, permet d'afficher sa +valeur. + +Exemple : +\newcounter{section} +\newcounter{subsection}[section] +%%%% fin exemple %%%% + +# 29.60 # Quels sont les différents styles de compteurs ? +--------------------------------------------------------- +Il en existe six prédéfinis : ++ \arabic{cptr} pour un nombre arabe, ++ \roman{cptr} pour un nombre romain minuscule, ++ \Roman{cptr} pour un nombre romain majuscule, ++ \alph{cptr} pour une lettre minuscule, ++ \Alph{cptr} pour une lettre majuscule, ++ \fnsymbol{cptr} pour un symbole. + +Exemple : +\renewcommand{\thesection}{\Roman{section}} +\renewcommand{\thesubsection}{\thesection.\roman{subsection}} +%%%% fin exemple %%%% + +# 29.61 # Comment programmer un traitement itératif ? +----------------------------------------------------- +Le package 'multido' propose une commande \multido qui est une +boucle TeX. Sa syntaxe est la suivante : + \multido{variables}{nbiteration}{code} +Le code sera ainsi répété nbiteration fois. Les déclarations de +variables sont séparées par des virgules. Un déclaration prend +la forme : + variable = valeurinitiale + increment +Elle est utile notamment pour le dessin de figures. + +Exemple (doc package) : +\setlength{\unitlength}{1cm} +\small +\begin{picture}(8,1)(0,-.5) + \put(0,0){\vector(1,0){8}} + \multido{\i=0+1, \n=0+0.25}{8}{% + \put(\i,-.1){\line(0,1){.2}} + \put(\i,-.2){\makebox(0,0)[t]{\n}}} +\end{picture} +%%%% fin exemple %%%% + +# 29.62 # A quoi servent les commandes savebox ? +------------------------------------------------ +Il existe les commandes : ++ \newsavebox{ma_boite} pour déclarer une boîte ++ \sbox{ma_boite}{contenu} pour remplir ma_boite ++ \savebox{ma_boite}[lagr][pos]{contenu} pour remplir une +boîte de largeur lagr et de position pos ++ \usebox{ma_boite} pour appeler le contenu de ma_boite ++ lrbox est l'environnement équivalent à sbox + +Exemple : +\newsavebox{\maboite} +\sbox{\maboite}{\textbf{Alcatel Alsthom Recherche}} +\usebox{maboite} se situe à Marcoussis. Je travaille à +\usebox{maboite} depuis~\ldots... +%%%% fin exemple %%%% + +# 29.63 # Comment résoudre certaines incompatibilités de packages ? +------------------------------------------------------------------- +Il arrive parfois lorsque plusieurs packages sont utilisés +simultanément que des macros différentes portent le même nom, ou +que certaines macros perturbent le fonctionnement d'autres +macros. Dans certains cas le problème peut se résoudre en +changeant l'ordre d'appel des packages. + +Exemple (J.P. Drucbert) : +Le paquetage psboxit définit des commandes \psboxit qui +engendrent \special{ps: ...}. Le problème vient de ce +deux-points. Si vous chargez psboxit.sty AVANT babel (option +french), pas de problème, le deux-points est un caractère +ordinaire (other) lors de la déclaration de la macro \psboxit et +donc le \special écrira bien un ":". + +Par contre si psboxit.sty est chargé APRES babel (option +french), le deux-points est alors un caractère actif au moment +de la déclaration de la macro \psboxit, et le \special n'écrira +pas un deux-points, mais un espace insécable (en fait une macro +interne de babel) et un :, d'où les erreurs. C'est un cas +classique de catcodes pas très bien gérés (en fait psboxit.sty +devrait sauver le catcode de : , donner la catégorie other au +caractère :, définir \psboxit, puis restaurer le catcode). +%%%% fin exemple %%%% + +# 29.64 # Qu'est ce que Lollipop ? +---------------------------------- +C'est un jeu de macro de V. Eijkhout, destiné à faciliter +l'écriture de macros TeX. Il est disponible sur +ftp://ftp.fdn.org/pub/CTAN/macros/lollipop/. + +# 29.65 # J'ai un problème avec babel ! +--------------------------------------- +En tentant d'utiliser babel, j'obtiens l'erreur suivante: + +! Undefined control sequence. +\add@accent ...l \mathchardef \accent@spacefactor + \spacefactor }\accent #1 #... +l.3 \begin{document} + +Le problème est connu et a été corrigé par babel le 19 août 1999. Si vous ne +pouvez pas mettre à jour votre paquetage de babel, utilisez le cache-bogue +suivant, à mettre dans le préambule (donation de Javier Bezos): + +\makeatletter +\let\accent@spacefactor\relax +\makeatother + +Vous pouvez également ajouter la ligne suivante dans vos entêtes: +\usepackage{t1enc} + +En effet, le problème ne se manifeste pas en codage T1. + +# 29.66 # Qu'est ce que cette FAQ ? +----------------------------------- +- quelques 660 url, dont: + - plus de 390 url sur ctan; + - et quelques 270 url externes; +- quelques litres de café; +- beaucoup de sueur; +- de nombreux CDs usés. +================================================================ +[30] REMERCIEMENTS ET CONTRIBUTIONS +================================================================ + +Je [mpk] remercie vivement les personnes qui ont contribué de près +ou de loin à l'élaboration de cette FAQ. Je remercie également +les personnes qui me soutiennent et m'encouragent. + +Je [bb] tiens à remercier les personnes qui m'ont envoyé des patchs +ou des correctifs sur cette faq, et qui ont à vrai dire beaucoup +plus travaillé que moi. + +La liste des contributions ci-après se veut aussi complète que +possible. Si vous avez été oublié, n'hésitez pas à me contacter. + +Contributions [ depuis le 15/07/99 ] +- Arnaud Launay +- Antoine Chambert-Loir +- Maurice Diamantini +- Philippe Pham +- Frédéric Petit +- Jean-Dominique Orvoen +- Éric Depardieu +- Benoît Rivet +- Nadine Manset +- Nicolas Corréard +- Denis Roegel +- Julien Mudry +- François Lesage +- Vincent Lefèvre +- Jean Dezert +- Stéphane Pion +- Jean-Baptiste Marchand +- André Allavena + +-- +Benjamin Bayart +bayartb@edgard.fdn.fr |