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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

LaTeX

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

Q&A

解決済

1回答

1568閲覧

tkinter,sympyを使ってLatexを表示したい

NEKOTABETAI

総合スコア14

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

LaTeX

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

0グッド

0クリップ

投稿2022/10/31 03:50

編集2022/10/31 13:01

前提

tkinterとsympyを使ってLatexを表示したいです。
具体的には計算結果をtkinterのlabelに画像(pngの使用を考えている)で表示しようと考えています。
Ver. : pyhon 3.8 : tkinter 8.6以降 :Win10
Tex Live (2022)、Vscodeを使用
実行環境はターミナルです(jupyter notebookではない)

発生している問題・エラーメッセージ

以下のエラーが10行目で起きます。

例外が発生しました: RuntimeError 'latex' exited abnormally with the following output: b"This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=latex)\r\n restricted \\write18 enabled.\r\nentering extended mode\r\n(./texput.tex\r\nLaTeX2e <2022-06-01> patch level 5\r\nL3 programming layer <2022-10-26>\r\n\r\n! LaTeX Error: File `standalone.cls' not found.\r\n\r\nType X to quit or <RETURN> to proceed,\r\nor enter new name. (Default extension: cls)\r\n\r\nEnter file name: \r\n! Emergency stop.\r\n<read *> \r\n \r\nl.2 ^^M\r\n \r\nNo pages of output.\r\nTranscript written on texput.log.\r\n" During handling of the above exception, another exception occurred: File "C:\Users\INUDOG\OneDrive\ドキュメント\my python projects\test2.py", line 10, in <module> sp.preview(sp.latex(sp.Rational(5,10)), viewer='BytesIO', output='png', outputbuffer=f)

該当のソースコード

Python

1import tkinter as tk 2import tkinter.ttk as ttk 3import sympy as sp 4from io import BytesIO 5from PIL import Image 6 7f = BytesIO() 8sp.init_printing() 9 10sp.preview(sp.latex(sp.Rational(5,10)), viewer='BytesIO', output='png', outputbuffer=f) # Error 11 12f.seek(0) 13#Open the image as if it were a file. This works only for .ps! 14img = Image.open(f) 15#See note at the bottom 16img.load(scale = 10) 17img = img.resize((int(img.size[0]/2),int(img.size[1]/2)),Image.BILINEAR) 18 19 20root = tk.Tk() 21root.geometry('600x600+1000+300') 22 23# notebook 24notebook = ttk.Notebook(root) 25notebook.pack(expand=True, fill=tk.BOTH) 26# frame 27frame1 = tk.Frame(notebook) 28frame2 = tk.Frame(notebook) 29# label frame 30labelFrame1 = tk.LabelFrame(frame1, text='args', bg='black', padx=15, pady=15) 31labelFrame1.pack(expand=True, fill=tk.BOTH) 32 33label = tk.Label(labelFrame1) 34label.config(image=img) 35label.pack() 36 37notebook.add(frame1, text='s = 2') 38notebook.add(frame2, text='s = 3') 39 40root.mainloop()

試したこと

Latexの記述がおかしいのかと sp.previewの第一引数を

Latex

1r"""$$ 2\frac{\partial^2 u}{\partial t^2}=c^2\left(\frac{\partial^2 u}{\partial x^2}+\frac{\partial^2 u}{\partial y^2}\right) 3$$"""

のように変えてみましたが駄目でした。
Latexを普段使うわけではないのであまり知識がありません。

補足情報(FW/ツールのバージョンなど)

vscodeのsettings.jsonを記載します。(リンクは忘れてしまいましたが、どこかのブログ参考)

settings.json

1{ 2 "python.defaultInterpreterPath": "C:\\Users\\INUDOG\\anaconda3", 3 "terminal.integrated.defaultProfile.windows": "Command Prompt", 4 "plantuml.render": "PlantUMLServer", 5 "plantuml.server": "http://www.plantuml.com/plantuml", 6 "latex-workshop.latex.tools": [ 7 8 // latexmk を利用した lualatex によるビルドコマンド 9 { 10 "name": "Latexmk (LuaLaTeX)", 11 "command": "latexmk", 12 "args": [ 13 "-f", "-gg", "-pv", "-lualatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" 14 ] 15 }, 16 // latexmk を利用した xelatex によるビルドコマンド 17 { 18 "name": "Latexmk (XeLaTeX)", 19 "command": "latexmk", 20 "args": [ 21 "-f", "-gg", "-pv", "-xelatex", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" 22 ] 23 }, 24 // latexmk を利用した uplatex によるビルドコマンド 25 { 26 "name": "Latexmk (upLaTeX)", 27 "command": "latexmk", 28 "args": [ 29 "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" 30 ] 31 }, 32 // latexmk を利用した platex によるビルドコマンド 33 // 古い LaTeX のテンプレートを使いまわしている (ドキュメントクラスが jreport や jsreport ) 場合のため 34 { 35 "name": "Latexmk (pLaTeX)", 36 "command": "latexmk", 37 "args": [ 38 "-f", "-gg", "-pv", "-latex='platex'", "-latexoption='-kanji=utf8 -no-guess-input-env'", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" 39 ] 40 } 41 ], 42 43 // latex-workshop.latex.recipes: Recipe の定義 44 "latex-workshop.latex.recipes": [ 45 // LuaLaTeX で書かれた文書のビルドレシピ 46 { 47 "name": "LuaLaTeX", 48 "tools": [ 49 "Latexmk (LuaLaTeX)" 50 ] 51 }, 52 // XeLaTeX で書かれた文書のビルドレシピ 53 { 54 55 "name": "XeLaTeX", 56 "tools": [ 57 "Latexmk (XeLaTeX)" 58 ] 59 }, 60 // LaTeX(upLaTeX) で書かれた文書のビルドレシピ 61 { 62 "name": "upLaTeX", 63 "tools": [ 64 "Latexmk (upLaTeX)" 65 ] 66 }, 67 // LaTeX(pLaTeX) で書かれた文書のビルドレシピ 68 { 69 "name": "pLaTeX", 70 "tools": [ 71 "Latexmk (pLaTeX)" 72 ] 73 }, 74 ], 75 76 // latex-workshop.latex.magic.args: マジックコメント付きの LaTeX ドキュメントをビルドする設定 77 // '%!TEX' で始まる行はマジックコメントと呼ばれ、LaTeX のビルド時にビルドプログラムに解釈され、 78 // プログラムの挙動を制御する事ができる。 79 // 参考リンク: https://blog.miz-ar.info/2016/11/magic-comments-in-tex/ 80 "latex-workshop.latex.magic.args": [ 81 "-f", "-gg", "-pv", "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" 82 ], 83 84 // latex-workshop.latex.clean.fileTypes: クリーンアップ時に削除されるファイルの拡張子 85 // LaTeX 文書はビルド時に一時ファイルとしていくつかのファイルを生成するが、最終的に必要となるのは 86 // PDF ファイルのみである場合などが多い。また、LaTeX のビルド時に失敗した場合、失敗時に生成された 87 // 一時ファイルの影響で、修正後のビルドに失敗してしまう事がよくある。そのため、一時的なファイルを 88 // 削除する機能 (クリーンアップ) が LaTeX Workshop には備わっている。 89 "latex-workshop.latex.clean.fileTypes": [ 90 "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot", "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.glo", "*.gls", "*.ist", "*.fls", "*.log", "*.fdb_latexmk", "*.synctex.gz", 91 // for Beamer files 92 "_minted*", "*.nav", "*.snm", "*.vrb", 93 ], 94 95 // latex-workshop.latex.autoClean.run: ビルド失敗時に一時ファイルのクリーンアップを行うかどうか 96 // 上記説明にもあったように、ビルド失敗時に生成された一時ファイルが悪影響を及ぼす事があるため、自動で 97 // クリーンアップがかかるようにしておく。 98 99 "latex-workshop.latex.autoClean.run": "onBuilt", 100 101 // latex-workshop.view.pdf.viewer: PDF ビューアの開き方 102 // VSCode 自体には PDF ファイルを閲覧する機能が備わっていないが、 103 // LaTeX Workshop にはその機能が備わっている。 104 // "tab" オプションを指定すると、今開いているエディタを左右に分割し、右側に生成されたPDFを表示するようにしてくれる 105 // この PDF ビュアーは LaTeX のビルドによって更新されると同期して内容を更新してくれる。 106 "latex-workshop.view.pdf.viewer": "tab", 107 108 // latex-workshop.latex.autoBuild.run: .tex ファイルの保存時に自動的にビルドを行うかどうか 109 // LaTeX ファイルは .tex ファイルを変更後にビルドしないと、PDF ファイル上に変更結果が反映されないため、 110 // .tex ファイルの保存と同時に自動的にビルドを実行する設定があるが、文書が大きくなるに連れてビルドにも 111 // 時間がかかってしまい、ビルドプログラムの負荷がエディタに影響するため、無効化しておく。 112 "latex-workshop.latex.autoBuild.run": "never", 113 114 "[tex]": { 115 // スニペット補完中にも補完を使えるようにする 116 "editor.suggest.snippetsPreventQuickSuggestions": false, 117 // インデント幅を2にする 118 "editor.tabSize": 2 119 }, 120 121 "[latex]": { 122 // スニペット補完中にも補完を使えるようにする 123 "editor.suggest.snippetsPreventQuickSuggestions": false, 124 // インデント幅を2にする 125 "editor.tabSize": 2, 126 "editor.defaultFormatter": "mathematic.vscode-latex" 127 }, 128 129 "[bibtex]": { 130 // インデント幅を2にする 131 "editor.tabSize": 2 132 }, 133 134 135 // ---------- LaTeX Workshop ---------- 136 137 // 使用パッケージのコマンドや環境の補完を有効にする 138 "latex-workshop.intellisense.package.enabled": true, 139 140 // 生成ファイルを "out" ディレクトリに吐き出す 141 "latex-workshop.latex.outDir": "out", 142}

また次のTexファイル(テキスト?)では正常なpdfが表示されるのでLatexの設定がおかしいわけではないと考えています。

Latex

1\documentclass{ltjsarticle} 2% ltjsarticle: lualatex 用の 日本語 documentclass 3% 他のタイプセットエンジンを使ってビルドする場合は、 \documentclass[dvipdfmx]{jsarticle} などとする。 4 5\begin{document} 6 7\title{はじめての\TeX } 8\author{Taro Meidai} 9\maketitle 10\section{はじめての\TeX がLua\TeX なんて粋だね} 11%\section{はじめての\TeXがLua\TeXなんて粋だね} 12 13%こうやって文字を打ちます。 14\subsection{小見出し!} 15あたり前過ぎて気に止めることもないですが、きとんと改行命令を出していなくても自動で改行します。 16\\あ、ギリ改行されなかったか。 17\end{document}

jsonもLatexもコピペしてきているのでタイポはないと思います。
不足情報があればお尋ねください。

追記1(新たなエラー)

python

1例外が発生しました: RuntimeError 2'latex' exited abnormally with the following output: 3b"This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=latex)\r\n restricted \\write18 enabled.\r\nentering extended mode\r\n(./texput.tex\r\nLaTeX2e <2022-06-01> patch level 5\r\nL3 programming layer <2022-10-26>\r\n(c:/texlive/2022/texmf-dist/tex/latex/standalone/standalone.cls\r\nDocument Class: standalone 2022/10/10 v1.3b Class to compile TeX sub-files stan\r\ndalone\r\n(c:/texlive/2022/texmf-dist/tex/latex/tools/shellesc.sty)\r\n(c:/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty\r\n(c:/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty))\r\n(c:/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty\r\n(c:/texlive/2022/texmf-dist/tex/generic/xkeyval/xkeyval.tex\r\n(c:/texlive/2022/texmf-dist/tex/generic/xkeyval/xkvutils.tex\r\n(c:/texlive/2022/texmf-dist/tex/generic/xkeyval/keyval.tex))))\r\n(c:/texlive/2022/texmf-dist/tex/latex/standalone/standalone.cfg)\r\n(c:/texlive/2022/texmf-dist/tex/latex/base/article.cls\r\nDocument Class: article 2021/10/04 v1.4n Standard LaTeX document class\r\n(c:/texlive/2022/texmf-dist/tex/latex/base/size12.clo))\r\n\r\n! LaTeX Error: File `varwidth.sty' not found.\r\n\r\nType X to quit or <RETURN> to proceed,\r\nor enter new name. (Default extension: sty)\r\n\r\nEnter file name: \r\n! Emergency stop.\r\n<read *> \r\n \r\nl.563 \\fi\r\n ^^M\r\nNo pages of output.\r\nTranscript written on texput.log.\r\n" 4 5During handling of the above exception, another exception occurred: 6 7 File "C:\Users\INUDOG\OneDrive\ドキュメント\my python projects\test2.py", line 10, in <module> 8 sp.preview(sp.latex(sp.Rational(5,10)), viewer='BytesIO', output='png', outputbuffer=f)

上記のエラーが起きるようになりました。
Tex Live Shell Manager で varwidthをインストールしようとすると、何もすることがありませんと返ってきます。
しかしエクスプローラーでtexのファイル内を varwidthで検索してもヒットしません。
これはインストールできていないのでしょうか?
Tex Live は basicではなくsmallよりも大きい(名前わすれましたごめんなさい)のをインストールしました。

追記2(新たなエラー)

新たなエラー
このようなエラーになりました…
エラー見てもどうしたらいいかよくわからないです…

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

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

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

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

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

nekotail

2022/10/31 10:18

エクスプローラーの検索はザルですので、あてにしないほうがよいと思います。varwidth は下記にインストールされます。 c:/texlive/2022/texmf-dist/tex/latex/varwidth/varwidth.sty small の上は medium だと思いますが、これには standalone や varwidth などは入っていません。standalone を追加するだけでダメなら素直に collection-latexextra をインストールすることをお勧めします。varwidth 以外にも色々と必要だからです。 はじめから TeX Live を通常通りに(full)インストールするほうが安全ですが.....。
NEKOTABETAI

2022/10/31 13:03

新たにfullでインストールしたところ、また新たなエラーがおきてしまいました。見ていただけませんか?
nekotail

2022/10/31 15:12

> Missing $ inserted. とのことですから、preview の第 1 引数 sp.latex(sp.Rational(5,10)) を sp.latex(r'$%s$') % sp.Rational(5,10) のような具合にする必要があるのではないかと思います。
NEKOTABETAI

2022/11/01 12:54

そのように変更してみてもまだエラーが出るので、もう少し探ってみようと思います。
guest

回答1

0

ベストアンサー

LaTeX Error: File `standalone.cls' not found.

このエラーは致命的です。

standalone.cls は TeX Live に付属していますが、TeX Live を通常と異なる方法(Basic とか)でインストールするとインストールされません。

TeX Live は正常にインストールできていて、standalone だけが欠落しているのであれば、次のコマンドでインストールできると思います。

tlmgr install standalone

上記で改善しない場合は、collection-latexextra をインストールするか、TeX Live をインストールし直す必要があるかもしれません。

投稿2022/10/31 05:02

nekotail

総合スコア128

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

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

NEKOTABETAI

2022/10/31 08:45

回答ありがとうございます。standaloneを入れた結果、上記のエラーは治りましたが、新たなエラーが起き解決策がわかりません。ご教授お願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問