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

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

新規登録して質問してみよう
ただいま回答率
85.48%
LaTeX

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

Inkscape

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

Q&A

1回答

1678閲覧

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

oknd1

総合スコア17

LaTeX

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

Inkscape

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

0グッド

0クリップ

投稿2017/12/01 08:38

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

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

python

1try: 2 #do something... 3except Exception, err: 4 #do error handling...

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

python

1except OSError as err:

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

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

投稿2018/02/10 07:24

frodo821

総合スコア322

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oknd1

2018/02/13 05: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です。 カテゴリーのご指摘ありがとうございます。
frodo821

2018/02/13 06:03

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

2018/02/13 06:08

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

2018/02/13 12:33

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

2018/02/13 16:05 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問