Skip to content

Conversation

@hayamiz
Copy link
Contributor

@hayamiz hayamiz commented Nov 14, 2012

EPUBではepsファイルが利用できないので、pngファイルに変換して表示できるようにするパッチです。

  • htmlbuilder ではファイル名の変換規則(foo.eps → foo.eps.png)のみを定めて、ファイル名を書き換えたHTMLを出力する
  • review-epubmaker が imagemagick の convert コマンドで png ファイルに変換する

  * htmlbuilder just defines an conversion rule of image file name
  * epubmaker invokes convert(1) of imagemagick to convert eps files into png files
@hayamiz
Copy link
Contributor Author

hayamiz commented Nov 14, 2012

今気づいたのですが、Inkscape等がインストールされてると eps を svg にするという方法もありますね。
変換に使えるツール類と変換先フォーマットの選択が色々考えられて悩ましい。。

@kmuto
Copy link
Owner

kmuto commented Nov 14, 2012

zipコマンドのようなまずあるだろうという前提は難しいので、設定yamlファイルでテンプレート文字列を設定して、maker側でそのプレイスホルダにファイル名などを当てはめ、とか…。面倒かなぁ。inkscapeはXなしでの変換できるんですね。

@hayamiz
Copy link
Contributor Author

hayamiz commented Nov 15, 2012

inkscape は X なしでも変換できます。

更にちゃんと考えてみると、ReVIEWがサポートしている(はず?)の画像形式が

  • png
  • gif
  • jpeg
  • svg
  • pdf
  • eps

の6種類ですが、HTML出力とLaTeX出力で使える形式はそれぞれ

  • HTML
    • ○ png
    • ○ gif
    • ○ jpeg
    • ○ svg
    • ☓ pdf
    • ☓ eps
  • LaTeX
    • ○ png
    • ○ gif
    • ○ jpeg
    • ☓ svg
    • ○ pdf
    • ○ eps

なので、本当にちゃんとやろうとするとHTML出力時には pdf → ? と eps → ? を、LaTeX 出力時には svg → ? を考えてあげないといけませんね。
うーむ。

とりあえず、下記の方法が妥当な解決案だと思いますがどうでしょう?

  • convert (imagemagick) と inkscape がそれぞれ使えるかチェック
  • HTML出力時
    • eps/pdf は、(1) inkscape が使えたら svg に、(2) inkscape がなくて convert が使えたら png に、(3) どちらもないならエラー
  • LaTeX出力時
    • svg は (1) inkscape があれば eps に、(2) convert があれば png に、(3) どちらもなければエラー
  • inkscape と convert のオプションを config.yml で指定できるように

@kmuto
Copy link
Owner

kmuto commented Dec 31, 2016

Illustratorで作成したeps/aiをinkscapeで変換したところ、部分的に壊れる(しかし図としては致命的)ファイルがたびたびできることがわかりました。convert(の裏のGhostscript)に比べるとだいぶ信頼性が低いかんじです。

誤動作などの可能性も否定しきれないので、外部ツールによる動的な変換をRe:VIEW側で担うのは極力減らしたほうがいいかなと考えます。
現状のconvertによる変換のほうは使っている人が多いようなら残しますが、あまりいないようなら除外も検討します。

動的が必要であれば、たとえばhook_beforetexcompileなどのhookを使い、ビルド前にimages内の画像変換をするといったことができると思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants