willoblog

Aller au contenu | Aller au menu | Aller à la recherche

Tag - latex

Fil des billets

dimanche 1 mars 2009

latex et césures

Suite de mes découvertes latex du weekend : je me suis rendu compte que beaucoup de césures effectuées automatiquement par Latex étaient incorrectes. Après recherche, mon fichier de log contenait désespérément :
Package babel Warning: No hyphenation patterns were loaded for
(babel) the language `French'
(babel) I will use the patterns loaded for \language=0 instead.

Et cela, malgré toutes les options possibles et imaginables à babel, le package latex de traduction. L'erreur était en fait un peu plus haut dans le fichier de log :
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, nohyphenation, loaded.
Il n'y a pas « french » ! La faute à un paquet Ubuntu qui n'est bizarrement pas installé automatiquement, texlive-lang-french.

Il suffisait donc de faire : sudo aptitude install texlive-lang-french. Et après, c'est gagné :
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, nohyphenation, basque, french, loaded.

latex et virgule

Petite astuce latex que j'ai découverte hier : l'espace qui est systématiquement insérée derrière une virgule, y compris en mode mathématique, est supprimable. Cette espace me gênait beaucoup, juste parce que c'est moche. C'est un format anglais, et c'est typographiquement incorrect en français.

Après quelques recherche, on trouve plusieurs solutions :

  • rajouter des accolades autour de chaque virgule dans les formules mathématiques. Problème, il faut le faire pour chaque virgule concernée. Moi, mes 135 pages sont déjà écrites, c'est impensable.
  • rajouter une macro des packages de traduction, \nombre{}, autour de chaque formule mathématique. Même problème (même si c'est un peu plus simple à gérer en ligne de commande via sed par exemple).
  • simplement utiliser le package icomma. Intérêt : une seule ligne à changer, et après recompilation toutes les espaces indésirables auront disparu !

Pour ceux qui ont du mal à suivre, plus en détail :

  • Disposer du fichier icomma.sty. Sous Ubuntu par exemple, il suffit d'installer le bon paquet, si ce n'est déjà fait : sudo aptitude install texlive-latex-extra
  • dans le préambule de vos sources latex, insérer \usepackage{icomma}

jeudi 11 septembre 2008

latex (texlive), pdf et fontes horribles

Je viens de trouver la solution d'un problème qui me turlupinait depuis environ 1 an (au moins...).

Mes pdf produits par latex étaient jolis, vus de loin. En se rapprochant de l'écran, pas génial, mais ce n'est pas très grave, les pdf c'est fait pour être imprimé. Plus gênant, beaucoup plus gênant, la sélection de texte étant une vraie plaie, pour ne pas dire que ça faisait n'importe quoi. Dans Evince et dans l'Acrobat Reader d'Adobe, rien à faire. Et je ne parle pas de la recherche de texte... Et le meilleur venait de l'impression : si Acroread n'avait pas grand problème, Evince ramait tellement qu'il en attaquait la plage : saturation du processeur pendant plus de 10 secondes par page, et rendu vraiment abominable sur toutes les imprimantes laser à ma disposition, à peine lisible pour le texte, mais parfait pour les formules et les images. Bref, la fête.

J'ai essayé plein de méthodes pour générer différemment mes pdf. J'utilise couramment ce formidable logiciel qu'est Lyx, avec la compilation via latex+latex+dvips+ps2pdf. La première idée était de changer l'option PDFSETTINGS de ps2pdf, comme indiqué dans la documentation. J'ai réussi à améliorer la qualité des images en réglant cette option à printer, mais rien sur les fontes et l'impression par Evince... Je me suis dit à un moment que c'était Lyx. Depuis, j'ai l'occasion maintenant d'utiliser beaucoup plus du « vrai » latex, avec plein de petits bouts de macros dedans (je m'amuse comme un fou en ce moment :) ), vraiment compilé à la main, et pareil... Au cas où le fautif serait ps2pdf, j'ai essayé pdflatex (que je n'ai pas encore adopté parce que j'ai toutes mes images en ps, fabriquées par le très « original » logiciel de dessin Xfig et l'excellent script fig2ps, qui permet d'avoir simplement des figures avec du texte et des formules latex dedans...). Même résultat.

J'ai donc trouvé la cause de tous ces problèmes. J'imagine que je suis pas le seul à qui ça arrive, mes fichiers tex n'ont rien de particulier, et mes documents lyx sont d'un commun tout juste compensé par la haute valeur ajoutée du contenu scientifique qu'ils contiennent. L'installation d'Ubuntu est récente sur cette machine et sans grande modification. J'ai pourtant mis du temps à trouver. J'espère que des personnes faisant la recherche sur « latex pdf evince impression » ou « latex pdf ubuntu affichage » ou « latex pdf sélection texte » pourront tomber ici...

Le problème venait visiblement de texlive, devenue la distribution latex « officielle » sous Ubuntu depuis Gutsy (tout pile un an), remplaçant petit à petit l'ancienne distribution tetex. Les polices ne sont visiblement pas gérées de la même façon et maintenant (je ne peux pas vérifier comment c'était avant), les lettres sont transformées en images bitmap, à la fois pixellisées (donc moche) et lourdes (donc qui prennent du temps à être envoyées à l'imprimante et de la place sur le disque dur). Deux possibilités pour arranger cela :

  • installer le paquet cm-super, via par exemple sudo aptitude install cm-super. Besoin de rien modifier dans le fichier tex|lyx, les polices moches bitmap utilisées avant (« cm ») seront remplacées automatiquement à la prochaine compilation. Un problème : si dans trois ans vous changez de machine et que vous oubliez que vous aviez installé cm-super, rebelote...
  • rajouter dans le préambule de votre fichier tex l'utilisation du package des polices latin modern : \usepackage{lmodern}. L'inconvénient étant certes qu'il faille modifier vos fichiers actuels, mais l'avantage est qu'ils seront compilés partout pareil. De plus, il paraît (j'y connais rien, c'est ce que j'ai lu) que cette police est un peu plus fidèle aux anciennes polices bitmap que cm-super...

Ce qui est bien, c'est que j'ai un mémoire un peu plus présentable maintenant... :)