Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EPUB生成では eps ファイルを png ファイルに変換する #148

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

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