【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- 椎名町 (@shiinatown) の投稿
返信数: 11

お世話になります。
"LaTeXiT" を使って LaTeX から数式の画像を出力している者です。

今回、"LaTeXiT" に emath を導入しようと思い、

プリアンブルに

\usepackage{emath}
\usepackage{emathP}

を宣言して emath, emathP による図版の描画には成功したのですが、

emathPによる図形描画(成功例)

Perl (emath.pl) によるグラフの描画が必要なソースを通そうとすると、
うまく行きません。

emath.pl が必要なソースを通すとエラーになる

環境設定 > プログラム は以下のようにしています。

環境設定 > プログラム の設定画面

歯車アイコンから、コマンドの引数に -shell-escape を追加しています。
(参考サイト :: Graphs of Implicit Curves using Tikz, gnuplot, and LaTeXIt | TeX-LaTeX Stack Exchange
上記参考サイトでは、pdfLaTeXのコマンドの引数に -shell-escape を追加することで描画に成功していますが、同様に設定してみてもうまく行きませんでした。
(下図のグレーに反転している箇所、"LaTeX" の欄に pLaTeX を指定してやることで、Perl を使わない段階の emath, emathP の描画には成功しました。)


-shell-escape を引数に追加

"LaTeXiT" で行おうとしていること自体難しいことなのかもしれませんが、この環境が整備できるととても作業が捗るので、是非成功したく、お知恵を拝借したい次第です。宜しくお願いします。

椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- Akira Kakuto の投稿
perl scripts が見つからないのではないかと思います。
perl -E 'say for @INC'
で表示される場所に入れるとどうでしょうか?
椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- aminophen の投稿
LaTeXiT 経由でなく、ターミナルから

platex -shell-escape test.tex
dvipdfmx test.dvi

とした場合は、正しく emath.pl が使えるのでしょうか?
それができないようであれば、emath の掲示板で質問したほうがよいです。
もしそれが成功するようなら、LaTeXiT の設定で上のコマンドと同じようにすればよいでしょう。


…emath の掲示板で質問したほうがよい、のですが、既に角藤さんがヒントをくださっているとおりなので:
emath の Perl スクリプト自体は、emath のページに書いてあるとおりのインストール方法に従ってください。

Can't locate emath.pl in (中略) at temp.pl line 2.
system returned with code 512

というエラーが

Runaway argument?
! Paragraph ended before \@trimleading was complete.

\par
l.5 \calcval[s]{sqrt(2)}\foo

より前の段階で表示されていると思います。
aminophen への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- 椎名町 (@shiinatown) の投稿

早速のお返事ありがとうございます、
適当なファイルでターミナルから試してみました。

やはり通りません。emath の掲示板に移ったほうが良いでしょうか。ご教示ありがとうございます。

以下そのエラーログですが、同じようなメッセージが返ってきます。


ちなみに emath.pl は、@INC で示されたもののうちから適当に選んで

/Library/Perl/5.18

の直下に置いてあります。


$ platex -shell-escape test.tex
This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (utf8.euc) (TeX Live 2015) (preloaded format=platex)
 \write18 enabled.
entering extended mode
(./test.tex
pLaTeX2e <2006/11/10> (based on LaTeX2e <2016/03/31> patch level 0)
Babel <3.9q> and hyphenation patterns for 81 language(s) loaded.
(/usr/local/texlive/2015/texmf-dist/tex/platex/base/jarticle.cls
…(中略)…
(/usr/local/texlive/2015/texmf-dist/tex/platex/misc/emath/pszahyou.sty))
(/usr/local/texlive/2015/texmf-dist/tex/platex/misc/emath/emathAe.sty)
No file test.aux.
emath.pl did not return a true value at hoge--------.pl line 2.
Runaway argument?
! Paragraph ended before \@trimleading was complete.
<to be read again> 
                   \par 
l.11 \begin{document}
                     
椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- aminophen の投稿
> 適当なファイルでターミナルから試してみました。
ターミナルから失敗するようなので emath 掲示板できいたほうがよいかもです。
が、質問の際に「適当なファイルでターミナルから試してみました。」だと
どんなファイルだよ?となりますので、ちゃんと例示してください。
> emath.pl did not return a true value at hoge--------.pl line 2.
これを再現するにはその情報が必要だと思います。

> 同じようなメッセージが返ってきます。
(全然同じじゃないし…)
椎名町さんの問題が最初は「emath.pl が Perl から見つからなかった」だったのが、
今度は「見つかったけれど別のエラーが出た」に変わったことに気づいてください。
aminophen への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- 椎名町 (@shiinatown) の投稿

お返事ありがとうございます。不学で恐縮です。


> 質問の際に「適当なファイルでターミナルから試してみました。」だと
どんなファイルだよ?となりますので、ちゃんと例示してください。

YGraph - PukiWiki から 0040201208.tex

をダウンロードしてターミナルから試してみました。


>> 同じようなメッセージが返ってきます。
>(全然同じじゃないし…)

すみません。「Paragraph ended before \@trimleading was complete.」にばかり目を取られていました。

LaTeXiT で試した際には、emath サイトの samplePp.pdf からコピペしたファイルを入れて実行しました。フォームに入力したコードは

\begin{zahyou}[ul=5mm](-1,8)(-3,3)
\zahyouMemori[g]
\YGurafu*[hidarix=0]{log(X)}
\Put\migiT[nw]{$y=log x$}
\end{zahyou}

で、(ソースの前後にプリアンブル等が付加されたうえで実行されます)
LaTeXiTが返したエラーログは以下のとおりでした。



Source :
\documentclass[10pt]{article}
%\usepackage[dvipdfmx]{xcolor}
%\usepackage{color}
\usepackage[utf8]{inputenc} %発音区別符アルファベットの直接入力
\usepackage{amssymb} %数式記号
\usepackage{amsmath} %数式
\usepackage{emath} %emath 
\usepackage{emathP} %emathP
\pagestyle{empty} \begin{document}\begin{align*}\begin{zahyou}[ul=5mm](-1,8)(-3,3)
\zahyouMemori[g]
\YGurafu*[hidarix=0]{log(X)}
\Put\migiT[nw]{$y=log x$}
\end{zahyou}
\end{align*}
\end{document}

--------------- 処理中 platex ---------------
#!/bin/sh
export PATH="/opt/X11/bin:/sw/usr/local/sbin:/usr/local/texbin:/usr/local/texlive/2015/bin/x86_64-darwin:/usr/local/sbin:/sw/local/bin:/usr/local/bin:/usr/texbin:/sw/sbin:/sw/local/sbin:/sbin:/Library/TeX/texbin:/sw/usr/bin:/usr/bin:/usr/sbin:/opt/local/bin:/opt/local/sbin:/bin:/sw/usr/sbin:/sw/usr/local/bin:/sw/bin" 1>/dev/null 2>&1 
…(中略)…
m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-task-stdout.5Oa21hB4.log 2>|/var/folders/m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-task-stderr.IkBkrvMl.log </dev/null
This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (utf8.euc) (TeX Live 2015) (preloaded format=platex)
 restricted \write18 enabled.
entering extended mode
(/var/folders/m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-1.tex
pLaTeX2e <2006/11/10> (based on LaTeX2e <2016/03/31> patch level 0)
Babel <3.9q> and hyphenation patterns for 81 language(s) loaded.
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2015/texmf-dist/tex/latex/base/size10.clo))
…(中略)…
(/usr/local/texlive/2015/texmf-dist/tex/latex/cases/cases.sty))
No file latexit-1.aux.
(/usr/local/texlive/2015/texmf-dist/tex/platex/misc/emath/Buntenretu.sty)
…(中略)…
(/usr/local/texlive/2015/texmf-dist/tex/platex/misc/emath/entenretu.sty)
Runaway argument?
/var/folders/m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-1.tex:14
: Paragraph ended before \@trimleading was complete.
<to be read again> 
                   \par 
l.14 \end{align*}
 
Runaway argument?
/var/folders/m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-1.tex:14
: Paragraph ended before \@trimtrailing was complete.
<to be read again> 
                   \par 
l.14 \end{align*}
 
/var/folders/m4/5qmq8g9551vdctz5fdt3vrbh0000gn/T/LaTeXiT-2.8.0/latexit-1.tex:14
: Emergency stop.
<read 6> 
 
l.14 \end{align*}
 
No pages of output.
Transcript written on latexit-1.log.

--------------- 処理中のエラー platex ---------------

椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- aminophen の投稿
platex のオプションに -shell-escape を付けると、手元では
ご提示のソースが通りました。LaTeXiT の platex に
-shell-escape オプションを正しくつけてありますか?
aminophen への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- 椎名町 (@shiinatown) の投稿
お返事ありがとうございます。

環境設定 > プログラム > LaTeXの欄(ここに platex をあてがって動かしています)の「コマンドの引数」に -shell-escape を追加してみても通りませんでした。(下図)

他の欄にも -shell-escape を追加して試してみているのですが同じ結果となります。

LaTeXiT の platex にオプションを追加(?)
椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- aminophen の投稿
> 他の欄にも -shell-escape を追加して
実行すべきなのは platex -shell-escape filename.tex なので、-shell-escape は pLaTeX だけに
付いていればよいはずです。再度になりますが、ターミナルから

platex -shell-escape test.tex
dvipdfmx test.dvi

が成功しなければ、少なくとも LaTeXiT との連携という段階に進むべきでないと思います。
どこにトラブルがあるのか区別がつきませんので。
椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- Z. R. の投稿

LaTeXiT の方のログには

 restricted \write18 enabled.

とあります。従って、残念ながら、-shell-escape が効いていない、ということになります。もし効いていればここは

 \write18 enabled.

となるはずです。実際、ターミナルから直接実行したほうはそうなってますね。

(つまり、「LaTeXiT の上の platex に -shell-escape が渡せていない」という問題も残っている、ということです。)

Z. R. への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- 椎名町 (@shiinatown) の投稿
迅速なご回答、ありがとうございます。

確かにターミナルから行って通らない時点で、そもそも emath の環境整備の時点で不備がある状態なのですね。emath の BBS にてご質問を続けさせて頂きます。

そもそもコンピュータにすら詳しくないため右も左も分からない状態だったのですが、丁寧にご指導いただきまして本当にありがとうございます。
椎名町 (@shiinatown) への返信

Re: 【Mac】"LaTeXiT" で Perl と連携して emathP でグラフを出力したい

- Yamamoto Munehiro "munepi" の投稿
>      * emath.pl は /Library/Perl/ の下に置いてあります。

「補足)」の投稿を削除なさったようですが、
Mac OS X 10.11 の標準で利用可能な perl(/usr/bin/perl)では、以下のようになっています。

$ /usr/bin/perl -V
Summary of my perl5 (revision 5 version 18 subversion 2) configuration:
 
  Platform:
    osname=darwin, osvers=15.0, archname=darwin-thread-multi-2level
    uname='darwin osx219.apple.com 15.0 darwin kernel version 15.0.0: fri may 22 22:03:51 pdt 2015; root:xnu-3216.0.0.1.11~1development_x86_64 x86_64 '
(途中省略)
  Built under darwin
  Compiled at Aug 11 2015 04:22:26
  @INC:
    /Library/Perl/5.18/darwin-thread-multi-2level
    /Library/Perl/5.18
    /Network/Library/Perl/5.18/darwin-thread-multi-2level
    /Network/Library/Perl/5.18
    /Library/Perl/Updates/5.18.2
    /System/Library/Perl/5.18/darwin-thread-multi-2level
    /System/Library/Perl/5.18
    /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.18
    .
したがいまして、上記  @INC のいずれかに emath が要求する *.pl スクリプトを置く必要があります。
ゆえに、すでに角藤さんやアセトアミノフェンさんが補足してくださっているとおりと思います。