Sageを使用したLyXの数学計算とグラフ

LyXは、LaTeXと透過的に動作するWYSIWYMドキュメントプロセッサです。 つまり、ユーザーはこのプロセッサで* .lyxファイルを作成し、そこから* .texが作成およびコンパイルされます。

セージは、他の数学パッケージと透過的に動作するコンピューター代数システムです。 メインインターフェイスはコマンドラインであり、Pythonのさまざまな機能をすべて使用しています。 開発者のWebサイトでテストできるWebインターフェイスも利用できます。

これらの2つの開発を併用すると、興味深い機会が開かれます。 たとえば、ある種のmatcadのように、計算、グラフ、分析計算が自動的に実行されるレポートを作成できますが、LyXの視覚的構造、Pythonの柔軟性、LaTeXレイアウト機能を使用できます。







設置



LyXはほとんどすべての最新のディストリビューションに含まれているため、通常の方法でインストールされます。 Qtで書かれており、Windows用のポートがあります。 LyXはLaTeXをプルします。

セージはそれほど単純ではありません。 現在、Linuxでのみ利用可能であり、ディストリビューションで提供されていますが、特に効率的な形式ではありません。 開発者は、仮想マシンを使用してWindowsで実行することをお勧めします

セージ開発者は、アーキテクチャ(386またはamd64)およびディストリビューション(UbuntuおよびFedoraですが、残りでも機能すると思います) アセンブリをダウンロードすることを提案します 。 アセンブリには、セージモジュールに加えて、python、maxima、gapなどが含まれています。 アーカイブをダウンロードして、いくつかのフォルダーに解凍すると、すぐにそこからsageまたはsage-notebookを実行できます-Webインターフェースのサーバー。 また、LaTeXのスタイルも含まれており、常に個別にダウンロードできます

これらはすべてパッケージマネージャーとの互換性は特にありませんが、十分に便利です。

アーカイブをディレクトリ/usr/local/sage



解凍したと仮定します。



準備する



LyXとSageがインストールされたので、それらのマージを開始できます。

これには以下が必要です。

  1. LaTeXを構成します。
  2. スクリプトを作成します。
  3. LyXを構成します。


1. LaTeXセットアップ


上記のsagetexスタイルは、LaTeXに表示されるはずです。 スタイルマニュアルでは、 ~/texmf/tex/genetic



フォルダに配置することをお勧めします。 Ubuntuの下では、どうやら~/.local/share/texmf/tex/genetic





それは私のために(これまでのところLyXなしで)働いていました:
 $ sudo ln -s /usr/local/sage/local/share/texmf/tex/generic/sagetex/ /usr/local/share/texmf/tex/generic/sagetex/
      
      



そして
 $ sudo texhash /usr/local/share/texmf/tex/generic/sagetex/ # ,  ,      
      
      





ところで、ubuntuにデフォルトでインストールされるTexLiveには、sagetexスタイルが含まれています。 しかし、バージョンには問題があります-異なるバージョンのsageとsagetexは互いに友好的ではないため、LaTeXが新しいsagetex.styを処理することが重要です。

\usepackage{sagetex}



\usepackage{sagetex}



場合、LaTeXがどのファイルを取得するかを\usepackage{sagetex}



、次のようにします。
 $ kpsewhich sagetex.sty
      
      





このスタイルは、それを使用するドキュメントの以下のアセンブリシーケンスを意味します。
 $ latex tex_with_sage.tex #     sage tex_with_sage.sage $ sage tex_with_sage.sage #      #     ,    $ latex tex_with_sage.tex #   
      





$ latex tex_with_sage.tex # sage tex_with_sage.sage $ sage tex_with_sage.sage # # , $ latex tex_with_sage.tex #







もちろん、LyXはセージの実行方法を知りません。 しかし、彼はnowebを操作する方法を知っています。 それは-それは今でも重要ではなく、システムにnoweb.sty



ファイルが必要なだけです。 nowebパッケージをインストールするか、単にこのファイルを作成できます。

2.スクリプト


LyXは最終ファイル(pdfなど)の収集を開始するとすぐに、一時ディレクトリに* .texファイルを生成し、通常のコマンド(pdflatex、makeindexなど)を実行します。 次に、ビューアで最終ファイル* .pdfまたは* .dviを実行するか、このファイルをソースドキュメントのあるフォルダーにコピーします。

文書タイプがnowebの場合、* .nvファイル(基本的に同じ* .tex)が生成され、このファイルに対して* .texを作成する特別なプログラムが起動されます。その後、pdflatex、makeindexなどが作成されます。 。

このプログラムとして、次のような単純なスクリプトでLyXをスリップします。
 #!/bin/bash name=`basename $1 .nw` # uncomment and replace path if you have problems with # old version of sagetex.sty in texlive # ln -sf /usr/local/share/texmf/tex/generic/sagetex/sagetex.sty sagetex.sty # generating *.sage file latex $1 > $name.sage.log 2>&1 echo "" >> $name.sage.log # generating *.sout file /usr/local/sage/sage $name.sage >> $name.sage.log 2>&1 ln -sf $1 $2 # now LyX can run latex in usual way 
      





#!/bin/bash name=`basename $1 .nw` # uncomment and replace path if you have problems with # old version of sagetex.sty in texlive # ln -sf /usr/local/share/texmf/tex/generic/sagetex/sagetex.sty sagetex.sty # generating *.sage file latex $1 > $name.sage.log 2>&1 echo "" >> $name.sage.log # generating *.sout file /usr/local/sage/sage $name.sage >> $name.sage.log 2>&1 ln -sf $1 $2 # now LyX can run latex in usual way







$HOME



に入れてsagelyx.sh



を呼び出しsagelyx.sh







3. LyXを構成する


Nowebを含むクラスは、ドキュメントの設定で利用できるはずです。 利用できない場合は、 ->



を実行する必要があります。

次に、LyXに、Nowebドキュメントではスクリプトを実行する必要があることを伝える必要があります(図を参照)。



すべての文書の前文に、次を追加します。
 \usepackage{sagetex}
      
      





使用する



これで、ドキュメントに式を入力(またはTeX挿入を作成)できます。

 $26^{3}\cdot10^{3}=\sage{26**3+10**3}$
      
      







数式プレビューが有効な場合、LyXは\sage



コマンドを??



置き換えます。 。 これは、1つのLaTeXパスのみがプレビューに使用されるためです。 ただし、 PDF



PDF



ボタンをクリックすると、番号がスタンプされたPDFが開きます。

簡単な例と私のスクリプト: http : //www.box.net/shared/air7v45yqk



機能しないものは何ですか?



多くのことは機能しません...

LyXでは何かがうまく機能せず、TeXの挿入を行う必要があります。たとえば、数学環境で\sage{}



を使用するのはあまりよくありません。LyXはスペースを削除して中括弧を挿入するからです。

Unicodeテキストの文字列を使用するなど、Sagetex自体で何かを行うことはできません。 これを行うには、セージファイルの先頭に行を配置します
 # -*- coding: utf-8 -*-
      
      



しかし、sagetexはこのための資金を提供しません。



PSクールな商用システムのように、いつかこれらすべてが非常に、非常にシンプルに(おそらくこの投稿のおかげでも)なることを願っていますが、同時にあらゆる可能な意味で柔軟性と自由が残っているでしょう。




All Articles