0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Visual Studio Code で LaTeX に SVG を貼り込んだ原稿のコンパイル設定

Last updated at Posted at 2021-08-15

#はじめに
LaTeX の原稿を Visual Studio Code の拡張 LaTeX Workshop を使って書いていたときに
SVG を埋め込みたくなる状況になりました。
VSCodeでSVGを埋め込んだ原稿をコンパイルするには少し設定の修正が必要だったので、メモを残します。

使用した環境は以下です。

  • macOS Big Sur 11.5.2
  • TeXLive2021
  • VSCode バージョン: 1.59.0
  • LaTeX Workshop v8.20.2

#事前準備
LaTeX にSVGファイルを埋め込むには SVGパッケージと Inkscape が必要になります。

SVGパッケージについては以下を参考にしました。
https://konoyonohana.blog.fc2.com/blog-entry-432.html
https://pyopyopyo.hatenablog.com/entry/2019/11/17/180855

TeXLive だとデフォルトでインストールされてるはずで、texdoc svg としてドキュメントが参照できるなら、特にインストール作業は不要です。

SVGファイルを LaTeX に埋め込める形式に変換するために SVGパッケージではInkscape を使います。
これは mac であれば brew を使って以下のコマンドでインストールできます。

brew install --cask inkscape

Visual Studio Code 拡張の設定

SVGパッケージを使うときには内部で Inkscape を呼び出すので LaTeX のコンパイルコマンド
(pdflatex, lualatex 等)に -shell-escape オプションが必要になります。

VSCode の LaTeX Workshop 拡張のデフォルト設定では -shell-escape は実行時に指定されませんので、
追加する必要があります。
とはいえ、これは任意の外部コマンドを実行できるようにするオプションなのでユーザのデフォルト設定とすることは
セキュリティ上の懸念があると考え、ワークスペース固有の設定とすることにしました。

⌘, で設定画面を開いたら、latex.tools で検索すると変更したいオプション latex-workshop.latex.tools が見つかります。
設定画面

settings.json で編集 を選んで、例えば latexmk に対しては以下のように "args"オプションの中の "%DOC%" の直前に -shell-escape を追加します。
必要に応じて lualatexmk, pdflatex など、他のコマンドの設定にも-shell-escape を追加します。

settings.json
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "-shell-escape",
                "%DOC%"
            ],
            "env": {}
        },

これでコンパイル時に自動的に inkscape が呼び出されてSVGを埋め込んだPDFが出力されるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?