InkscapeのプラグインであるtextextはPythonで記述されたスクリプトファイルです。日本語表示ができるように、ここを参考に改修してみました。

【前提条件】

  1. OS Ubuntu18.04
  2. Inkscape0.92
  3. textextは、0.9.0

<手順>

  1. textextをインストール。
  2. スクリプト__init__.pyを改修。
  3. 動作確認。

1.textextをインストール。

このサイトを参考にインストールしました。Ghostscriptは、version 9.26。pstoeditは、version 3.70。でした。

(注)texlive-xelatex は、ubuntu18.04では、texlive-xetex としてインストールされるようです。しかし、インストールしなくても動作しました。念の為に、インストールされる方は、下記のようにします。

$ sudo apt install texlive-xetex

2.スクリプト__init__.pyを改修。

__init__.pyを開いて、編集します。

$ vi ~/.config/inkscape/extensions/textext/__init__.py

56行目に、import codecs を追記します。

__version__ = "0.9.1"
__docformat__ = "restructuredtext en"

import abc
import copy
import hashlib
import logging
import logging.handlers
import math
import os
import platform
import sys
import traceback
import codecs

日本語をUTF8で表示させるため、613〜615行に追記します。texファイルをplatexで、dviとして出力し、さらにdviをdvipdfmxで、pdfに変換して出力するために、619行目はコメントアウト(#)、620〜623行目を追記します。

# Convert TeX to PDF

                # Write tex
                with open(self.tmp('tex'), 'w') as f_tex:
                    f_tex.write(texwrapper)
                    #to utf8 / don't forget import codecs !
                    utf8_tex = codecs.getwriter('utf_8')(f_tex)
                    utf8_tex.write(texwrapper)

                # Exec tex_command: tex -> pdf
                try:
                    #exec_command([tex_command, self.tmp('tex')] + self.LATEX_OPTIONS)
                    #tex -> dvi
                    exec_command(['platex', self.tmp('tex')])
                    #dvi -> pdf
                    exec_command(['dvipdfmx', self.tmp('dvi')])
                except TexTextCommandFailed as error:
                    if os.path.exists(self.tmp('log')):
                        parsed_log = self.parse_pdf_log(self.tmp('log'))

__init__.pyを保存します。

3.動作確認。

Inkscapeを起動し、エクステンション>textext を実行します。そして、texの数式を記入します。

なお、このとき、日本語をそのまま記入しても「! Not two-byte family.」というエラーメッセージが表示され、失敗します。\mbox{ここに日本語を書く}を利用して日本語を記入します。

例:\$\mbox{関数}f(x)\mbox{の}x=a\mbox{における}\\\mbox{微分係数(変化率)は}\\\displaystyle \lim_{b \to a}\frac{f(b)-f(a)}{b-a}\$

以上、Inkscapeのtextextに日本を表示させることができました。