web-dev-qa-db-ja.com

html / pdf / docxのpandocを使用したマークダウンでのPNG画像のサイズ変更

マークダウンをpandocで使用して、単一のドキュメントをhtml、pdf、docxに変換しようとしています。これは、数学を含まないテキストといくつかの画像のみを含む非常にシンプルなドキュメントです。画像はPNG形式です。これを使用した画像をマークダウンソースに含めます。

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

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

</div>

次のようにコンパイルします。

# 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

同じ寸法を含む一部のPNG画像がHTMLとPDF形式で異なるサイズになります。250x256ピクセルの低解像度(72ピクセル/インチ)のPNG )はPDFでおおよそのページでは正しいサイズとして表示され、HTMLでは妥当なサイズで表示されますが、同じサイズ(250x256 px)であるが高解像度(300 px/in)PDF出力のページで小さなサイズに変更されます。指定したサイズのPNG画像のセットを保持し、両方のサイズで表示されるようにしたいHTML/PDF/DOCX形式。

PDF/HTMLを手に入れるためだけに、自動docxサポートを断念する(または後に多くの手動フォーマットを処理する)ことを望んでいます。

PDFまたは画像のPNGのサイズを変更しないようにパンドックに指示し、正しい画像に表示させるにはどうすればよいですか?)ありがとう。

27
user46976

寸法は、HTMLのような形式で出力するためにピクセルに変換されます。 --dpiオプションを使用して、1インチあたりのピクセル数を指定します。デフォルトは96dpiです。

あなたの写真で最も一般的な要素を見つけ、それを使用してください。例外のみを変更します。


例:dpi、幅、高さ。

あなたがそれにdpi情報を与えるならば:

前述の--dpiオプションを追加して、デフォルトを上書きします。


ほとんどの画像に共通の高さまたは幅がある場合、簡単に修正できます。

たとえば、次のように行を変更しました。

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

または

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

または、これを単純なHTMLマークアップで実行します。

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

または

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

そして比率は正しいでしょう。


リファレンス: Pandoc Readme

HTMLとEPUBの場合、幅と高さ(srcsetとサイズを含む)を除くすべての属性がそのまま渡されます。他のライターは、出力形式でサポートされていない属性を無視します。

画像の幅と高さの属性は特別に扱われます。単位なしで使用すると、単位はピクセルと見なされます。ただし、px、cm、mm、in、inch、%のいずれかの単位識別子を使用できます。

寸法は、LaTeXのようなページベースの形式で出力するためにインチに変換されます。寸法は、HTMLのような形式で出力するためにピクセルに変換されます。 --dpiオプションを使用して、1インチあたりのピクセル数を指定します。デフォルトは96dpiです。

%の単位は、通常、使用可能なスペースに関連しています。たとえば、上記の例は_<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)にレンダリングされます。

一部の出力形式には、クラス(ConTeXt)または一意の識別子(LaTeX\caption)、あるいはその両方(HTML)の概念があります。

幅または高さの属性が指定されていない場合、フォールバックは画像​​の解像度と画像ファイルに埋め込まれたdpiメタデータを確認することです。

20
BloodyEl