LoginSignup
0
0

More than 3 years have passed since last update.

日本語が入っている SageTeX ソースを TeXShop でコンパイルするための対応 (pLaTeX 版)

Last updated at Posted at 2020-02-23

TeXShop のショートカット (Command-T) やメニューの Typeset で 日本語の SageTeX ソースをコンパイルするには, TeXShop のエンジンをカスタマイズします. 今回は普及度が高い platex を使うカスタマイズを紹介します.

実際に試した使用環境

バージョン情報は以下の通りです.

  • macOS Mojave 10.14.6
  • TeXLive2017+TeXShop 3.97 (奥村晴彦/黒木祐介 著 改訂第7版 LaTeX2ε 美文書作成入門) mac風インストール
  • e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017) (preloaded format=platex 2018.10.7)
  • SageMath-8.9

アカウントごとの設定 (TeXShop のエンジンのカスタマイズ)

TeXShop の設定は SageTeX を TeXShop で使うために Sagemath のバージョンを TeXShop に登録することSagemath のバージョンアップごとの SageTeX と TeXShop の設定を簡単にするにはアプリにシンボリック・リンクを張ること の設定ができているところから説明します.

TeXShop のエンジンのファイル
~/Library/TeXShop/Engines/sage.engine
が配置してあって, このエンジンのファイルの中の /Applications/SageMath-X.X.app/ の部分を適切に変更してあるはずです.
先頭の行に

% !TEX TS-program = sage

と書いてある英語の SageTeX ソースが TeXShop の Command-T でコンパイルできている状況です.

ここからが今回の作業です.
まず, ~/Library/TeXShop/Engines/sage.engine の複製を同じフォルダーの中に作って, ~/Library/TeXShop/Engines/sage-platex.engine というファイル名にします.

Terminal.app のコマンドラインからなら

    myhome$ cd ~
    myhome$ cd Library/TeXShop/Engines/
    myhome$ ls sage*
    sage.engine
    myhome$ cp sage.engine sage-platex.engine
    myhome$ ls sage*
    sage-platex.engine      sage.engine

という操作でできます.
Finder からなら メニューの移動フォルダーへ移動...フォルダの場所を入力:~/Library/TeXShop/Enginesと入力して 移動ボタンを押せば, ~/Library/TeXShop/Engines というフォルダーを開くことができますので, このフォルダーの中の sage.engine を複製して, 新しくできたファイルの方を sage-platex.engine とリネームするとよいでしょう.

ここまでで作成した sage-platex.engine というファイルをテキストエディターで開いて, 先頭から11行目と37行目(=後ろから4行目) にある

     pdflatex --file-line-error --synctex=1 "$filename"

というコマンドを

     ptex2pdf -l -ot "-synctex=1 -file-line-error" "$filename"

に変更します.
TeXShop のバージョンアップで TeXShop が変化した場合や, ユーザー独自の platex の設定を使いたい場合のために上記 2箇所の変更の考え方を書いておきます.

  1. 変更が 2箇所になるのは, sagetex のコンパイルが LaTeX, Sagemath, LaTeX という順の実行になっていて LaTeX の実行が 2回になるからです.
  2. 変更元の pdflatex ... は将来 lualatex ... に変わる可能性があります. 実際, TeXShop の 環境設定内部設定pdfTeXLaTeXlualatex --file-line-error --synctex=1 にするようになってきているようです.
  3. 変更先の ptex2pdf ... はTeXShop の 環境設定内部設定TeX+dvipdfmx / TeX + dvips + distillerLaTeX の箱の中のコマンド(オプション込み)を使います.

ソースごとの設定

SageTeX を使うソースの最初の行に次のマジックを入れます.

% !TEX TS-program = sage-platex

SageTeX 文書の documentclass は

\documentclass{article}

でもコンパイルできますが,

\documentclass{jsarticle}

を使うと行末の禁則処理などがよくなるようです.

\documentclass{jarticle}

は余白の扱いの差のせいか SageTeX の行番号の表示場所が変化します. 私の環境では, sagemath のプログラムと行番号が接近して混ざってしまう危険を感じましたので, jsarticle.cls に移行しようと思います.

SageTeX + TeXShop の使用例

数式やグラフに少しだけ日本語でコメントを付ける場合や, 計算問題に日本語の指示が少しつくだけの場合, 数式の Typeset が焦点で日本語の部分は読めれば十分という場合, 英語の原稿から日本語に変更する書き直しの初期の段階, は documentclass をartcticle にして LaTeX のプログラムだけ platex に変更するという方法が使えます.

スライドを作る場合などで, documentclass の日本語対応版が無い場合は, 英語用の documentclass のまま, LaTeX のプログラムを platex にしてしのぐことになりますので, この例が参考になると思います. このような場合は, 入力コードの対応用のパッケージを使うことが推奨されていたり, グラフィックスもある場合は \usepackage{dvipdfmx} を使ったりグラフィック関係のパッケージに [dvipdfmx] のオプションを付けるなどの対応も必要だったりしますので, 使用する documentclass に合わせて調整して下さい.

2020-02-23a-sagetex-by-texshop.tex
%!TEX TS-program = sage-platex
\documentclass{article}
\usepackage{sagetex}
\begin{document}
title: \textsf{SageTeX} with some KANJI through TeXShop (platex + article.cls)

file and date: 2020-02-23a-sagetex-by-texshop.tex

author: @rana-aerea

Reference: [日本語が入っている SageTeX ソースを TeXShop でコンパイルするための対応 (pLaTeX 版)]
    https://qiita.com/rana-aerea/items/e0cb41014ff12f1200fb

\textsf{SageTex}{\LaTeX} 文書から \textsf{Sagemath} を呼び出して計算できます.
\begin{sagecommandline}
    sage: P = x^3 - 7*x + 6   # assign a polynomial to P
    sage: factor(P)           # factorize the polynomial
\end{sagecommandline}

Compile this file by
\begin{verbatim}
    Opening by TeXShop
    and then by typing Command-T.
\end{verbatim}

Verified on:
\begin{verbatim}
    SageMath-8.9 (macOS)
    TeXShop 3.97
    e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017)
        (preloaded format=platex 2018.10.7)
    macOS Mojave 10.14.6
\end{verbatim}
\end{document}

本文とは順番が前後しますが, jarticle という documentclass も日本語の LaTeX ソースに使うことができます. 残念ながら SageTeX と相性がよくない印象があります.

2020-02-23b-sagetex-by-texshop.tex
%!TEX TS-program = sage-platex
\documentclass{jarticle}
\usepackage{sagetex}
\begin{document}
title: \textsf{SageTeX} with some KANJI through TeXShop (platex + jarticle.cls)

file and date: 2020-02-23b-sagetex-by-texshop.tex

author: @rana-aerea

Reference: [日本語が入っている SageTeX ソースを TeXShop でコンパイルするための対応 (pLaTeX 版)]
    https://qiita.com/rana-aerea/items/e0cb41014ff12f1200fb

\textsf{SageTex}{\LaTeX} 文書から \textsf{Sagemath} を呼び出して計算できます.
\begin{sagecommandline}
    sage: P = x^3 - 7*x + 6   # assign a polynomial to P
    sage: factor(P)           # factorize the polynomial
\end{sagecommandline}

Compile this file by
\begin{verbatim}
    Opening by TeXShop
    and then by typing Command-T.
\end{verbatim}

Verified on:
\begin{verbatim}
    SageMath-8.9 (macOS)
    TeXShop 3.97
    e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017)
        (preloaded format=platex 2018.10.7)
    macOS Mojave 10.14.6
\end{verbatim}
\end{document}

本格的に日本語の SageTeX ソースを書く場合は documentclass jsarticle が良いようです. 英語の SageTeX ソースから変換していく場合もこちらの方がよさそうな印象です. 逆に, 日本語の修士論文で SageTeX を使った場合の英語論文へのリライトも jsarticle で行なって, 全体が英語になったところで, article に変えるという使い方もありそうです.

2020-02-23c-sagetex-by-texshop.tex
%!TEX TS-program = sage-platex
\documentclass{jsarticle}
\usepackage{sagetex}
\begin{document}
title: \textsf{SageTeX} with some KANJI through TeXShop (platex + jsarticle.cls)

file and date: 2020-02-23c-sagetex-by-texshop.tex

author: @rana-aerea

Reference: [日本語が入っている SageTeX ソースを TeXShop でコンパイルするための対応 (pLaTeX 版)]
    https://qiita.com/rana-aerea/items/e0cb41014ff12f1200fb

\textsf{SageTex}{\LaTeX} 文書から \textsf{Sagemath} を呼び出して計算できます.
\begin{sagecommandline}
    sage: P = x^3 - 7*x + 6   # assign a polynomial to P
    sage: factor(P)           # factorize the polynomial
\end{sagecommandline}

Compile this file by
\begin{verbatim}
    Opening by TeXShop
    and then by typing Command-T.
\end{verbatim}

Verified on:
\begin{verbatim}
    SageMath-8.9 (macOS)
    TeXShop 3.97
    e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.euc) (TeX Live 2017)
        (preloaded format=platex 2018.10.7)
    macOS Mojave 10.14.6
\end{verbatim}
\end{document}
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