Latex Tuto
This commit is contained in:
parent
8d9cbfadb4
commit
6fca5294ec
4 changed files with 110 additions and 1 deletions
104
_posts/2021-03-05-latex-dvi-integrer-image.md
Normal file
104
_posts/2021-03-05-latex-dvi-integrer-image.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
---
|
||||
layout: post
|
||||
slug: latex-dvi-integrer-image
|
||||
status: published
|
||||
sitemap: true
|
||||
title: Intégrer des images dans des documents LaTeX supportant une sortie DVI-Tex
|
||||
description: Grâce à ImageMagick
|
||||
categories:
|
||||
tags:
|
||||
---
|
||||
|
||||
Pour les compilateurs LaTeX compilant vers le format DVI-Tex (DeVice Independent) / PostScript,
|
||||
il n'est pas possible d'intégrer directement des images au format JPG, PNG ou autre.
|
||||
|
||||
Si aujourd'hui le plus simple est d'utiliser un compilateur LaTeX qui produit des fichiers au format PDF et supporte les formats d'image précédents,
|
||||
ce n'est pas toujours possible.
|
||||
|
||||
Dans ce guide, nous supposons donc que nous souhaitons garder une sortie DVI-TEX / PostScript.
|
||||
Pour ce faire, nous utiliserons l'outil `convert` du projet [ImageMagick](https://imagemagick.org/index.php) (fiche [Wikipedia](https://fr.wikipedia.org/wiki/ImageMagick))
|
||||
pour convertir préalablement les images au format EPS.
|
||||
|
||||
## Installer ImageMagick
|
||||
|
||||
Si la commande `convert` n'est pas disponible sur votre système, vous allez devoir installer ImageMagick.
|
||||
|
||||
Sur Fedora :
|
||||
|
||||
```bash
|
||||
sudo dnf install ImageMagick
|
||||
```
|
||||
|
||||
Sur Ubuntu :
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install imagemagick
|
||||
```
|
||||
|
||||
|
||||
## Notre image de test
|
||||
|
||||
Nous allons utiliser [une photo](https://quentin.dufour.io/assets/images/posts/dijkstra.jpg) de [Dijkstra](https://fr.wikipedia.org/wiki/Edsger_Dijkstra) pour nos tests, que l'on peut télécharger sur notre système comme suit :
|
||||
|
||||
```bash
|
||||
wget https://quentin.dufour.io/assets/images/posts/dijkstra.jpg
|
||||
```
|
||||
|
||||
## L'outil convert
|
||||
|
||||
`convert` peut être utilisé sans paramètre, mais dans notre cas le résultat de la conversion sera décevant :
|
||||
|
||||
```
|
||||
convert dijkstra.jpg dijkstra.eps
|
||||
```
|
||||
|
||||
L'outil `convert` de ImageMagick a de nombreux paramètres qui sont tous décrits en détails dans le manuel (`man convert`).
|
||||
Ici nous nous penchons seulement sur les deux problèmes suivants :
|
||||
- Les images sont trop grandes et pixelisées à cause d'une valeur par défaut inadéquate du paramètre `density`
|
||||
- Les images sont trop lourdes car aucune compression n'est utilisée pour la sortie
|
||||
|
||||
Les images sont représentées sous forme de pixels mais les sorties LaTeX raisonnent en centimètres: il faut donc choisir combien de pixels on met par centimètres.
|
||||
On parle souvent de [DPI](https://fr.wikipedia.org/wiki/Point_par_pouce) pour ce problème, ImageMagick utilise le terme de densité.
|
||||
La valeur de densité par défaut de `convert` est très basse (probablement autour de `96` pour des raisons historiques).
|
||||
D'expérience, je recommande une valeur entre `172` et `300` pour éviter de se retrouver avec une image pixelisée.
|
||||
|
||||
Ensuite, le format EPS historiquement ne supporte pas de compression, ce qui fait des images très larges par défaut.
|
||||
Notre image originale, au format JPG, fait `846 ko`. Convertie sans compression, sa taille grimpe à `12 Mo`.
|
||||
Au delà de la taille sur le disque, une telle taille est problématique car elle peut faire planter la compilation ou la visioneuse.
|
||||
Heureusement, [StackOverflow](https://stackoverflow.com/questions/5350246/convert-jpg-to-eps-format) nous apprend que des évolutions du format qui supportent la compression existe, il suffit de préfixer notre fichier de sortie par `eps2:` ou `eps3:` (exemple: `eps2:dijkstra.eps`).
|
||||
En choisissant l'un ou l'autre, on revient sur une taille similaire au JPG d'origine, de `841 ko`.
|
||||
|
||||
La commande finale que je recommande donc pour la conversion :
|
||||
|
||||
```bash
|
||||
convert -density 300 dijkstra.jpg eps2:dijkstra.eps
|
||||
```
|
||||
|
||||
## Intégrer l'image dans un document LaTeX
|
||||
|
||||
Je créer un fichier LaTeX très simple nommé `trombi.tex`
|
||||
|
||||
```latex
|
||||
\documentclass{article}
|
||||
\usepackage{graphicx}
|
||||
\begin{document}
|
||||
\includegraphics{dijkstra.eps}
|
||||
\end{document}
|
||||
```
|
||||
|
||||
Que je compile ensuite :
|
||||
|
||||
```
|
||||
latex trombi.tex
|
||||
```
|
||||
|
||||
Et que je peux ouvrir ensuite :
|
||||
|
||||
```
|
||||
xdg-open trombi.dvi
|
||||
```
|
||||
|
||||
Et voici le résultat !
|
||||
|
||||
![Dijkstra dans Evince](/assets/images/posts/dijkstra-res.png)
|
|
@ -297,7 +297,12 @@ hr {
|
|||
background: #eee;
|
||||
}
|
||||
|
||||
span.code, code { font-family:Menlo, Monaco, Courier; color: #ffffff; padding: 6px 0px 3px 0px; background-color:#272b2d; font-size:14px; }
|
||||
span.code, p code, ul code{
|
||||
font-family:Menlo, Monaco, Courier;
|
||||
color: #ffffff;
|
||||
padding: 6px 6px 3px 6px;
|
||||
background-color:#272b2d;
|
||||
font-size:14px; }
|
||||
|
||||
pre {
|
||||
font-family:Menlo, Monaco, Courier;
|
||||
|
|
BIN
assets/images/posts/dijkstra-res.png
Normal file
BIN
assets/images/posts/dijkstra-res.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 KiB |
BIN
assets/images/posts/dijkstra.jpg
Normal file
BIN
assets/images/posts/dijkstra.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 846 KiB |
Loading…
Reference in a new issue