質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • LaTeX

    44questions

    LaTeXは、レスリー・ランポートが開発したテキストベースの文書整形システムです。 電子製版ソフトウェアである「TeX」にマクロパッケージを組み込む形で構成されており、 通常のTeXより扱いやすくなっているのが特徴です。

  • Inkscape

    8questions

    Inkscape(インクスケープ)はオリジナル画像やオリジナルロゴの作成、写真の加工が出来るソフトです

Inkscape での eqtexsvgが使えないエラー

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 734

oknd1

score 9

Windows10、Inkscape0.92でLaTeX数式を出そうとしています。TexWikiなどを参照しながら行っていますが、数式の出力を得ることができていません。
(1)C:\Program Files\Inkscape\share\extensionsにダウンロードしてきたeqtexsvg.py,eqtexsvg.inxを上書き保存する。
(2)pstoeditをインストール
(3)TeXlive2016をインストール
(4)環境変数Pathにpstoedit, dvisvgm, dvips, latex があるディレクトリを追加する。
の4点は行いました。Inkscapeのエクステンション>レンダリング>Latex formulaも現れたのですが、いざ数式を出そうと数式を入力して適用をクリックすると

'Latex formula'を実行中です。しばらくおまちください...


というウインドウが出て、その直後に被せるように

Inkscapeは、実行したスクリプトから追加データを受け取りました。スクリプトはエラーを返しませんでしたが、実行結果が意図しないものになっていることを示唆している可能性があります。

  File "eqtexsvg.py", line 197
    except OSError, err:
                  ^
SyntaxError: invalid syntax


というウインドウが表示されてそのままになります。
結果的に数式を出せていません。原因などについてご存じの方がおられたらお教えくださればと思います。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

eqtexsvg.pyというモジュールにエラーがあります。InkscapeのPythonエンジンのバージョンとこのモジュールの要求するエンジンのバージョンが違うため、実行できていません。

try:
   #do something...
except Exception, err:
   #do error handling...


この形のエラーハンドリングはすでに廃止されています。*.pyはテキスト形式のファイルですので、自分で修正することができます。該当箇所(197行目)を次のように修正してみてください。

except OSError as err:


このように修正すると動作するかと思います。

P.S.
もし、わからないことがあればPythonのほうで聞くと回答が返ってきやすいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/13 14:39

    frodo821様

    ご回答ありがとうございます。
    ご提示のように書き換えて見ましたところ、とりあえず前述したエラーは出なくなりました。
    しかしかわりにlxmlやStringIOとかないよというメッセージが出ましたので、lxmlをインストールして、
    from StringIO import StringIOを
    from io import StringIO
    と変更するなどしましたところそれらも消えたのですが、次は
    Traceback (most recent call last):
    File "eqtexsvg.py", line 544, in <module>
    EFFECT.affect()
    File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 283, in affect
    self.effect()
    File "eqtexsvg.py", line 528, in effect
    equation = Equation(param=param)
    File "eqtexsvg.py", line 116, in __init__
    inkscape_version = exec_cmd('inkscape -V', False)[1]
    File "eqtexsvg.py", line 88, in exec_cmd
    std_out = clean(std_out)
    File "eqtexsvg.py", line 83, in <lambda>
    clean = lambda x: '\n'.join([l for l in x.split('\n') if l != ""])
    TypeError: a bytes-like object is required, not 'str'
    というメッセージが出ました。
    これらはpythonの2.7系と3系との違いに起因するものという認識でよろしいでしょうか?
    私のPCにインストールしているのは3.6.1です。

    カテゴリーのご指摘ありがとうございます。

    キャンセル

  • 2018/02/13 15:03

    どこでダウンロードしたのか教えてもらえればライセンス的に問題ない場合修正して公開します。

    キャンセル

  • 2018/02/13 15:08

    そこだけなら多分`clean = lambda x: '\n'.join([l for l in x.split('\n') if l != ""]).encode()`ってしたら良いような気がしますけど...

    キャンセル

  • 2018/02/13 21:33

    ありがとうございます。
    ご指摘の通りしてみましたが特に変わらずでした。
    eqtexsvgについてはhttps://www.julienvitard.eu/en/eqtexsvg_en.htmlからダウンロードしました。

    キャンセル

  • 2018/02/14 00:55 編集

    eqtexsvgのリポジトリにライセンス項目がないですねぇ...。なのでこれを公開するのは黒に片足突っ込んだグレーっぽいです。プルリクエスト送ったので、マージされるまで待ってください...。一応、フォークのリポジトリはここです。 https://github.com/frodo821/eqtexsvg/tree/py3.6.xCompatible
    ...いくつかforkがあることを見るに、問題ないとは思います。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • LaTeX

    44questions

    LaTeXは、レスリー・ランポートが開発したテキストベースの文書整形システムです。 電子製版ソフトウェアである「TeX」にマクロパッケージを組み込む形で構成されており、 通常のTeXより扱いやすくなっているのが特徴です。

  • Inkscape

    8questions

    Inkscape(インクスケープ)はオリジナル画像やオリジナルロゴの作成、写真の加工が出来るソフトです