SublimeText3でLaTeXとR(ちょこっとPython)の環境構築(Windows)


SublimeText3でLaTeXとR(ちょこっとPython)
を使いやすくする

はじめに

自分のメモ用です。意外にSublimeでのTeXについてまとめられているサイトを見ないと思ったので、
自分が設定した環境(友人Jの丸パクリ)について書いてみようと思いました。

SublimeText3で、LaTeXとR (ちょっとPython) を使いやすくするための一連の設定手順を記載します。
Sublimeは適宜再起動するようにしてください。

※windowsユーザー向けの記事です。

準備するソフトウェア

  • Sublime Text 3
  • TeXLive 2019
  • SumatraPDF
  • R-3.6.2

ソフトウェアの準備手順

TeXLive 2019

TeX Live - TeX Wiki を参考にしながらTeX Liveをインストールします。
Windowsの場合、 TeX Live/Windows - TeX Wiki を参考に、インストーラをダウンロードします。
著者はネットワークインストーラの場合を参考に、 Installing TeX Live over the Internetinstall-tl-windows.exe を利用してTeXLive 2019をインストールしました。

正常にインストールできているかの確認として、Windowsキー + Rを押し、cmdと入力、コマンドプロンプトを起動します。コマンドラインにlatexmkと入力した際、以下のような反応があればインストールは成功です。

C:\Users\(User名)>latexmk
Latexmk: This is Latexmk, John Collins, 26 Dec. 2019, version: 4.67.

Latexmk: No file name specified, and I couldn't find any
Use
   latexmk -help
to get usage information
C:\texlive\2019\bin\win32\runscript.tlu:907: command failed with exit code 10:
perl.exe c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl

Sublime Text 3

公式HP Sublime Text 3DOWNLOAD FOR WINDOWSよりダウンロードし、
Sublime Text Build 3211 x64 Setup.exeよりインストールを行います。

SumatraPDF

TeX WikiのDownload SumatraPDFを参考に、
公式HP SumatraPDF
Installer : SumatraPDF-3.1.2-64-install.exeよりインストーラをダウンロードし、
Sublime Text Build 3211 x64 Setup.exeを実行してインストールを行います。

R-3.6.2

The Comprehensive R Archive Network (Download R for Windows -> base)
R-3.6.2 for WindowsDownload R 3.6.2 for Windowsよりインストーラをダウンロードし、
R-3.6.2-win.exeよりインストールを行います。

設定手順

まずはじめに、Sublime Textを開きCtrl+Shift+Pを押し、Command Paletteを開き、
install Package installerとPaletteに入力、決定。
これでPackage Controlのインストールは完了です。

次に、以下3つのPackageをインストールします。

  • LaTeXTools
  • R-Box
  • SendCode

LaTeXTools

Package Controlの手順と同様に、Ctrl+Shift+Pを押し、Command Paletteを開きます。
次に、Package Control: Install PackageとPaletteに入力し決定します。
出てきたPaletteにLaTeXToolsと入力、決定すればLaTeXToolsがインストールされます。
(インストールが完了するとSublime Text上でメッセージが表示されます。)

次にLaTeXToolsの設定をします。Sublime Textの上欄のメニュー、
右から2つ目の[Preferences]から
[Preferences]-> [Package Settings] -> [LaTeXTools] -> [Settings-User]
と選択します。

\Sublime Text 3\Packages\User\LaTeXTools.sublime-settingsが存在しない場合には、

You do not currently have a personalized
LaTeXTools.sublime-setting file.

Create a copy of the default settings file in your
User directory?

上記のようなメッセージが表示されるので[OK]をクリックします。

Sublime Text上で表示されたLaTeXTools.sublime-settingsに対して、Ctrl + Fを押し、
出てきた検索欄にbuilder_settingsと入力し、(398行目)の"builder_settings"を見つけます。

そして、
(398行目) "builder_settings"から
(406行目) // General settings:の間に、以下の内容を追加します。

\User\LaTeXTools.sublime-settings

398 "builder_settings" : {
        "command" : ["latexmk", "-cd",
                "-e", "$latex = 'uplatex %O -no-guess-input-enc -kanji=utf8 -interaction=nonstopmode -synctex=1 %S'",
                "-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
                "-e", "$bibtex = 'upbibtex %O %B'",
                "-e", "$makeindex = 'upmendex %O -o %D %S'",
                "-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
                "-f", "-%E", "-norc", "-gg", "-pdfdvi"],
406     // General settings:

上記の内容を追加した後Ctrl + Sで保存を行います。

LaTeXのコンパイルができるかどうかを確認します。以下の内容の
text.texをSublime Text上で作成した後、Ctrl + Bを押します。
初回はBuildの方法を聞いてくるのでBuild With LaTeX - Traditionalを選びます。
[Tool]->[Build With...]からもビルド方法の選択は可能です。

Buildingの動作(画面下のバーに動作状況が表示されます)が終了した後、自動的にSumatraPDFが起動され、内容が正常に表示されていれば、確認は完了です。

test.tex

\documentclass[a4j]{ujarticle}
\title{ {\LaTeX} testファイル }
\author{ほげ-やま-ふが}
\date{\today}

\begin{document}
\maketitle

\section{はじめに}
Hell

\subsection*{おわりに}
World 

\end{document}

!!!注意!!!
\documentclass[a4j]{jarticle} ではなく
\documentclass[a4j]{ujarticle} を使ってください!

documentclassがjarticleとなっている場合、正常にコンパイル出来ないようです...
理由が分かる方は、助言をよろしくお願いします。

追記(2020/04/30)

友人より、上記のような修正でも良いと教えていただきました。

環境変数を通して便利にしよう!

この記事の中で一番ややこしい所だと思われます。

環境変数を通すことで、SumatraPDF上で文章をダブルクリックすると、
Sublime Textで該当部分のソースコードを開くことができるようになります。

Windowsキー + Rを押し、controlと入力、コントロールパネルを開きます。
右上の検索欄に環境変数と入力し表示された一覧から、
[システム - システム環境変数の編集] -> 環境変数(N)を選択します。
[システム環境変数(S)]の一覧から[Path]を選択し、ダブルクリックもしくは[編集(I)]を押します。
[環境変数名の編集] -> [新規(N)]から以下のPathを追加します。

C:\Program Files\Sublime Text 3\

SumatraPDFを起動して、左上の一覧をクリックして[設定(S)]->[オプション(O)]を選択します。
逆順検索コマンドラインの設定を以下の内容にします。

sublime_text %f:%l

以上で環境変数の設定は完了です。

確認をするために、test.texSumatraPDfで開き、
そしてSumatraPDF上の文章で[1 はじめに]の部分をダブルクリックして、
Sublime Text(10行目) \section{はじめに}を開くようになっていたら成功です。

!!!注意!!!
.texファイルを置いているフォルダ名にはスペースを入れないようにしてください!!
hoge fugaフォルダに置いたtest.tex で上記の確認を行ってみるとわかります。

R-Box

LaTeXToolの手順と同様に、
Package Control: Install PackageからR-Boxをインストールします。

R-Boxに関しては特に設定する必要はありません。

SendCode

LaTeXToolの手順と同様に、
Package Control: Install PackageからSendCodeをインストールする。

SendCodeの設定を行います。こちらもLaTeXToolの設定、の手順と同様に、
[Preferences] -> [Package Settings] -> [SendCode] -> [Settings]を選択します。

その後設定が表示されるので、その設定欄の右側に以下の内容を記載します。

\User\SendCode.sublime-settings
{
    "prog": "r",
    "r": {
        "prog": "r"
    },
}

上記の内容を追加すれば、Sublime Text上で書いたRのコードをCtrl + EnterRGuiに送信できるようになります。
但し、あらかじめRGuiを立ち上げておく必要があるので注意してください。

正常に動作するかどうかを確認します。

R.r
curve(dnorm(x) , -5, 5)

この行を入力した状態でCtrl+Enterを押せば、RGuiに送信されます。
RGui上に正規分布のグラフが現れれば成功です。

Pythonのためのシンタックス設定

Pythonのインデントについて

Pythonのコード内において、インデントはブロックを区別する役割があり、
主に半角space 4つ , Tab , 半角space 2つの流儀があります。(space 2つ は殆ど見ませんが)
Sublime Textの、Pythonのシンタックス設定において、Tab = space 4つ分としておけば、
tabを使ってもspace 4つのコードと混同しないようにします。
(混同することは推奨されていないため)

まず、はじめに何でもいいので.pyのファイルをSublime Textで開きます。
(適当にメモ帳を作って、拡張子を.pyに変えたものを開いたら大丈夫です)

後は、LaTeXTool等の設定、と同様におこないます。
[Preferences] -> [Settings-Syntax Specific]を選択します。

その後設定が表示されるので、その設定欄の右側に以下の内容を記載します。

\User\Python.sublime-settings
// These settings override both User and Default settings for the Python syntax
{
    "tab_size": 4,
    "translate_tabs_to_spaces": true
}

Tabを押して、半角space 4つが出力されていれば設定完了です。

使い方まとめ

LaTeX

  • Ctrl + B でビルドができる。

  • SumatraPDF上で文章をダブルクリックすると、
    Sublime Textで該当部分のソースコードを開くことができる。

R

  • RGuiを起動したのち、Sublime Textにおいて、
    Ctrl + Enterを押すことで、コードの送信、および実行ができる。

Python

  • Tabを押せば半角space 4つを出力することができる。

Sublimeに入れたら便利そうなもの

以上で基本的な環境構成は完了ですが、
ほかに加えたら便利だと思われるPackageを以下に記載します。

  • Japanize
    Sublime Textを日本語化してくれます。
    細かい設定等が英語だと困ることがあると思ったので入れました。

  • ConvertToUTF8
    文字コード関連の問題を解決してくれる(らしい)Packageです。
    UTF-8を基準にするなら入れていて悪いことはないかと思います。

  • Alignment
    とても便利なPackageです。

例えば、以下のようなコードについて。

sample.c
int x = 0;
double y = 1;
int z = 10;

このコードの全範囲を選択し、Ctrl + Alt + Aと入力することにより、

sample.c
int x    = 0;
double y = 1;
int z    = 10;

=を基準にして、インデントを調節してくれます。Alignmentの設定Settings-User

Settings-User
{
    "alignment_space_chars": ["=","-"],
}

上記のように設定することにより、-も基準に調節してくれるようになり、
Rを使うにあたって便利になります。
また、Alignmentの設定Key Bindings-User
設定することにより、コマンドを変更することができます。
(私はCtrl + Shift + Aに変更しています。)

参考文献