web-dev-qa-db-fra.com

dimensionnement correct des images PNG dans Markdown avec pandoc pour html / pdf / docx

J'essaie d'utiliser markdown avec pandoc pour convertir un seul document en html, pdf et docx. C'est un document extrêmement simple ne contenant que du texte sans mathématiques et quelques images. Les images sont au format PNG. J'inclus une image en utilisant ceci dans la source de démarquage:

<div style="float:center" markdown="1">

![my caption](./figures/myimage.png)

</div>

et le compiler comme:

# html
pandoc myarticle.md -c mystyle.css -o myarticle.html
# pdf
pandoc myarticle.md -V geometry:margin=1in -o myarticle.pdf
# docx
pandoc myarticle.md -o myarticle.docx

J'ai remarqué que certaines images PNG qui ont les mêmes dimensions sont classées différemment dans les formats HTML et PDF. Un fichier PNG au format 250x256 px avec une résolution faible (72 px/in) apparaîtra dans PDF sous la taille correcte, approximativement sur la page, et apparaîtra en taille raisonnable en HTML, mais un fichier PNG présentant les mêmes dimensions. (250x256 px) mais en haute résolution (300 px/in) est redimensionné pour devenir très petit sur la page dans la sortie PDF. Je souhaite conserver un ensemble d'images PNG dans une taille que je spécifie et les faire apparaître dans cette taille aux formats HTML/PDF/DOCX.

Je suis disposé à abandonner le support automatique docx (ou à gérer beaucoup de formatage manuel après) juste pour avoir le format PDF/HTML.

Comment puis-je dire à pandoc de ne pas redimensionner les fichiers PNG pour PDF ou les images, et de les faire apparaître dans les images correctes? Merci.

18
user46976

Les dimensions sont converties en pixels pour une sortie au format HTML. Utilisez l'option --dpi pour spécifier le nombre de pixels par pouce. La valeur par défaut est 96 dpi.

Trouvez l'élément le plus commun dans vos images et utilisez-le. Ne modifiez que les exceptions.


Exemples: dpi, largeur, hauteur.

Si vous lui donnez les informations dpi:

Ajoutez l'option --dpi comme indiqué pour remplacer la valeur par défaut.


Si la plupart de vos images ont une hauteur ou une largeur commune, cela devrait être facilement corrigé.

Par exemple, vous avez modifié la ligne en:

![my caption](./figures/myimage.png){ width=250px }

ou

![my caption](./figures/myimage.png){ height=256px }

Ou faites ceci dans un balisage HTML simple:

<img src="./figures/myimage.png" alt="my caption" style="width: 250px;"/>

ou

<img src="./figures/myimage.png" alt="my caption" style="height: 256px;"/>

et le rapport sera correct.


Référence: fichier Lisez-moi Pandoc

Pour HTML et EPUB, tous les attributs autres que la largeur et la hauteur (mais comprenant srcset et tailles) sont transmis tels quels. Les autres rédacteurs ignorent les attributs qui ne sont pas pris en charge par leur format de sortie.

Les attributs de largeur et de hauteur des images sont traités spécialement. Lorsqu'il est utilisé sans unité, l'unité est supposée être des pixels. Cependant, n'importe lequel des identificateurs d'unité suivants peut être utilisé: px, cm, mm, in, inch et%.

Les dimensions sont converties en pouces pour la sortie dans des formats basés sur la page tels que LaTeX. Les dimensions sont converties en pixels pour une sortie au format HTML. Utilisez l'option --dpi pour spécifier le nombre de pixels par pouce. La valeur par défaut est 96 dpi.

Le% d'unité est généralement relatif à une partie de l'espace disponible. Par exemple, l'exemple ci-dessus rendra <img href="file.jpg" style="width: 50%;" /> (HTML), \includegraphics[width=0.5\textwidth]{file.jpg} (LaTeX), or \externalfigure[file.jpg][width=0.5\textwidth] (ConTeXt).

Certains formats de sortie ont une notion de classe (ConTeXt) ou un identifiant unique (LaTeX\caption), ou les deux (HTML).

Si aucun attribut width ou height n'est spécifié, le repli consiste à examiner la résolution de l'image et les métadonnées dpi incorporées au fichier image.

10
BloodyEl