adbird(広告鳥) 備忘録

Pandocで画像の幅・高さの比率を維持したまま縮小

Pandocを2.1.1にバージョンアップしてから発生した画像縮小の際のトラブルへの対処方法を教えてもらった。

前提としては、以前書いた「Pandoc で markdown から 論文PDF へ変換」 の記事のように、markdown→Pandocで自作テンプレートtexファイルに $body$ で流しこみ→PDF完成、という手順をとる。

Pandocの以前のバージョンでは

![画像のキャプション](image.jpg){width=5cm}

とすれば、画像の幅が5cmで、高さは自動的に比率を保ったまま、縮小されていた。

しかし、2.1.1(2.0.6からすでにそうだったらしい)に更新して、変換したら、画像の幅は5cmにはなるけど、高さには勝手に textheight がセットされてしまい、縦長に延びた状態の画像になってしまった。

この解決方法をツイッター@myon___ さんに教えていただいた。

自作テンプレートtexファイルのプリアンブルに、以下を貼り付ければ、以前と同様、画像の幅と高さの比率を維持したまま縮小してくれるようになった。

\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}

@myon___さん、本当にありがとうございました。