#author("2016-10-13T14:32:21+09:00","default:pbcglab_user","pbcglab_user")
#author("2016-10-13T14:45:25+09:00","default:pbcglab_user","pbcglab_user")
-----
#contents
-----

*TexLive + AtomでTeX [#s4956a3d]
Windows環境でTexLiveを用いてTeXをインストールして,Atomで編集&latexmkでコンパイルするまでの手順

**Tex Liveのインストール [#b37dee81]
TeXは様々なファイルの集合体で構成されます.これを全部自分で準備するのは大変なのでパッケージとしてまとめたもの(ディストリビューション)があり,よく用いられるのが[[TeX Live:http://www.tug.org/texlive/]]です.
Windowsでのインストールではネットワークインストーラを使う方法とISOイメージをダウンロードしてインストールする方法があります.前者の方が手軽ですが,複数台にインストールする場合などはISOイメージをつかった方が(ネットワークに負担を掛けないという意味でも)よいでしょう.

***ネットワークインストーラによるTeX Liveのインストール [#q5bca5e3]
[[こちらのWebページ:https://www.tug.org/texlive/acquire-netinstall.html]]から install-tl-windows.exe をダウンロードしてダブルクリックする,もしくは,install-tl.zipをダウンロードして解凍後,install-tl-windows.batを実行します.そうするとインストーラが立ち上がるのであとは指示に従ってインストールします.
-全ユーザにインストールする場合は「管理者として実行」すること
-特にカスタマイズが必要なければ最初の選択肢は「Simple install」を選べば良い
-インストール先などを変更したい場合は,install-tl-advanced.batを実行する
-インストールには1〜2時間ぐらいかかるので注意
デフォルトでは
 C:\texlive
にインストールされて,環境変数PATHに以下のパスが追加されます.
 C:\texlive\2016\win32
2016の部分はインストールしたバージョンによって変わります.
環境変数に追加されていない場合は手動で追加する(コントロールパネル->システムとセキュリティ->システム or スタートメニューを右クリック->システム(Windows10の場合)でシステム設定を開き,左側にある「システムの詳細設定」の「詳細設定」タブの「環境変数」をクリック.自分のユーザだけが使えれば良いのならばユーザー環境変数のPATHに,すべてのユーザが使えるようにしたければシステム環境変数のPATHをダブルクリックして,上記のパスを追加します).
PATHに追加されていることを確認したら一度再起動orログインし直しておいた方が良いです.

***ISOイメージによるインストール [#tc96f258]
[[こちらのWebページ:http://www.tug.org/texlive/acquire-iso.html]]の"download from a nearby CTAN mirror"から,"texlive.iso"をダウンロードします("texlive.iso"や"texlive20xx.iso"は最新のisoへのシンボリックリンクになっている).Windows8以降ならばISOファイルを右クリックして"マウント"を選べば,ISOファイルがマウントされます.install-tl-windows.batを実行すれば後はネットワークインストーラの場合と同じです.


**Atomのインストールと設定 [#h2ec3989]
Atomはオープンソースのエディタで,FirefoxやChomeの拡張機能のようにコミュニティで公開されている数多くのパッケージにより機能を拡張できることが大きな特徴です.TeX関連のパッケージも数多くあり,簡単にTeX編集環境を構築できます.

***Atomのインストール [#x27345de]
[[公式サイト:https://atom.io/]]からインストーラ(AtomSetup.exe)をダウンロードしてインストールします.
[[Chocolatey:https://chocolatey.org/]]を導入してあるならば,以下のコマンドを実行します.
 cinst -y atom

***Atomの設定 [#if39cf93]
TeX関連のパッケージをインストールしておきます.
パッケージはAtomを開いて,メニューのFile->Settingから設定を開き,左の項目から"Install"を開き,
"Search packages"のところにパッケージ名を入力して検索し,Installをクリックすることでインストールされます.
以下はTeX関連のパッケージです.TeXを使うならばなるべく入れておきましょう.
-latex : LaTeXビルドをAtomからできるように
-language-latex : LaTeXの構文強調表示(syntax highlighting)
-latexer : LaTeX用のオートコンプリート機能を追加
-pdf-view : Atom上にLaTeXの結果のPDFを表示する.外部PDFビューワを用いるのならば必要なし


#ref(atom_package_install.jpg,,80%)

**Latexmkの設定 [#q7c1d32a]
日本語のTeXファイルからPDFを作成・表示するまでには一般的には,
+platexで.texから参照情報ファイル(.aux)作成(1回目)
+pbibtexで.bibと.auxから文献情報をまとめた.bblファイルを生成
+platexで.texと.bblから文献リストを生成(2回目)
+platexで参照情報を反映した.dviファイル作成(3回目)
+dvipdfmxで.dviから.pdfを作成
+PDFファイルをビューワで開く

と長い手順を踏む必要があります.
Makefileを作ったり,エディタ側でマクロを作成してもよいのですが,
ここではこの手順を自動化してくれる[[latexmk:http://personal.psu.edu/jcc8/software/latexmk-jcc/]]
を使ってみましょう.

***Perl環境のインストール [#dd34d77e]
Latexmkを使うにはPerlインタプリタが必要です.
Perl環境はWindowsなら[[StrawberryPerl:http://strawberryperl.com/]]や[[ActivePerl:http://www.activestate.com/activeperl/]]などがあるのでどちらかを公式サイトからダウンロードしてインストールしましょう.
Chocolateyが導入してあるならば,
 cinst -y strawberryperl
を実行すればOK.

***Latexmkのインストールと設定ファイル [#ob7a93f9]
LatexmkはTeX Liveはもちろん,ほとんどのTeXディストリビューションに含まれているので特にインストール作業は必要ありません.不安ならばコマンドプロンプトで以下のコマンドを打ってみてください.
 latexmk -help
TeX Liveをインストールしたのに上記コマンドでそんなコマンドはないと言われたら,PATHにTeX Liveのフォルダが設定されているか,設定した後に再起動したかを確かめてみましょう.
"Script interpreter is not found in PATH"というメッセージが出たらPerlインタプリタがないということなので上記のPerl環境のインストールを参考に導入してください.

Latexmkの設定はホームフォルダに置いた.latexmkrcファイルに記述します(最初に"."(ドット)がついたファイル名は,Windowsだとエクスプローラから"ファイル名を変更"で作ろうとすると「ファイル名を入力してください」といわれてそのままでは作れません.テキストエディタの保存時に"すべてのファイル(*.*)"で保存するようにするか,エクスプローラ上でファイル名を変える場合はファイル名の最後にも"."をつけるようにしましょう).
Windowsだとホームフォルダは%USERPROFILE%(C:\User\{ユーザ名}など)なのでそこに設定ファイルを作って置きます.設定ファイルの中身の例を以下に示します.
 #!/usr/bin/perl
 # commands for latex,bibtex,dvipdf. %S : source file, %B : base name, %D : pdf file, %O : option
 $latex         = 'platex %O -interaction=nonstopmode -synctex=1 -kanji=utf8 %S';
 $bibtex        = 'pbibtex %O %B -kanji=utf8';
 $dvipdf        = 'dvipdfmx %O -o %D %S';
 
 # method to make pdf - 0:not making, 1:pdflatex, 2:ps2pdf, 3:dvipdf
 $pdf_mode      = 3;
 
 # simply open by SumatraPDF
 $pdf_previewer = '"C:\Program Files\SumatraPDF\SumatraPDF.exe"';
platexのオプションには,
-エラーが発生しても途中で止めない(-interaction=nonstopmode)
-外部ビューワとTeXファイルの相互ジャンプを可能にするためのデータも生成(-synctex=1)
-日本語文字コードはUTF8(-kanji=utf8)
を指定しています.
そのほかの各命令の指定方法はコメントを参照してください.

上記ではPDFビューワに[[SumatraPDF:http://www.sumatrapdfreader.org/free-pdf-reader-ja.html]]を用いています.SumatraPDFはファイルをロックしないのでPDFファイルを開いたままdvipdfmxを実行することができます(Adobe Readerはできない).

設定をTeXドキュメント毎に分けたい場合は,ホームフォルダには置かずにtexファイルと同じフォルダ内にlatexmkrcファイル(こちらの場合は先頭の"."(ドット)は必要ない)を置けばOKです.

***Latexmkの使い方 [#s8f02e48]
基本的にはコマンドプロンプトでtexファイルのあるフォルダに移動して,
 latexmk
と打てば,フォルダ内のtexファイルに対して実行されます.
texファイルを指定する場合は,
 latexmk test.tex
とします.

ビルド後にビューワでpdfファイルを開く場合は,
 latexmk -pv test.tex
とします(この場合,対象となるtexファイルは1つのみになるようにする).

texファイルを常に監視して,更新されたら自動的に再コンパイルしたい場合は,
 latexmk -pvc test.tex
とします(注:もし設定ファイルで"-interaction=nonstopmode"を指定していない場合は,ここで指定しておくこと).自動更新をストップする場合は,コマンドプロンプト上でCtrl+Cを押せばOK.


***Atomとの連携設定 [#m3bfa36d]
AtomのlatexパッケージからLatexmkを読んで,PDFファイルを外部ビューワ(SumatraPDF)か内部ビューワで表示するための設定です.

まず,latexパッケージを設定のInstallから検索してインストールします.
次に,latexmkの設定を変えるために,
 %USERPROFILE%\.atom\packages\latex\lib\builders\latexmk.js
をエディタで開き,29行目あたりの constructArgs のところをたとえば以下のように変更します.
   constructArgs (filePath, jobname) {
     const outputFormat = atom.config.get('latex.outputFormat') || 'pdf'
 
     const args = [
       '-e',
       '"$latex=\'platex %O -interaction=nonstopmode -synctex=1 -kanji=utf8 %S\'"',
       '-e',
       '"$bibtex=\'pbibtex %O %B -kanji=utf8\'"',
       '-e',
       '"$dvipdf=\'dvipdfmx %O -o %D %S\'"',
       '-e',
       '"$pdf_mode=3"',
       '-interaction=nonstopmode',
       '-f',
       '-cd',
       '-norc',
       '-gg',
       '-pdfdvi',
     ]

次にSumatraPDFでのforward/inverse-searchを有効にするために,
 %USERPROFILE%\.atom\packages\latex\lib\openers\sumatra-opener.js
を開き,7行目あたりの open 関数のオプション設定(const args)をたとえば以下のように変更します.
     const args = [
       '-reuse-instance',
       '-inverse-search',
       `"\\"${process.env.userprofile}\\AppData\\Local\\atom\\app-${atom.getVersion()}\\atom.exe\\" \\"%f:%l\\""`,
       '-forward-search',
       `"${texPath}"`,
       `"${lineNumber}"`,
       `"${filePath.replace(/\.dvi$/, '.pdf')}"`
     ]
これによりPDFビューワ上で変更したいところをクリックすると,Atomエディタ上のカーソルが対応する位置に移動します.
SumatraPDFをビューワとして使う場合はAtomのFileメニューからConfig(日本語化してあるなら個人設定)をクリックして,
 %USERPROFILE%\.atom\config.cson
を開いて(Fileメニュー->Configで開ける),以下の記述を追加します.
   latex:
     alwaysOpenResultInAtom: false
     sumatraPath: "C:\\Program Files\\SumatraPDF\\SumatraPDF.exe"

外部ビューワを使う方法以外に内部ビューワを使う方法もあります.
内部ビューワでPDFを表示したい場合は,まず,pdf-viewパッケージをインストールし,
上記のconfig.csonでalwaysOpenResultInAtomをtrueにしておきます.
   latex:
     alwaysOpenResultInAtom: true
この設定はFileメニュー -> Settings -> Packages -> latex の Settings内の
"Always Open Result in Atom"項目でもON/OFFできます.

latexパッケージのデフォルトでは内部ビューワで開くファイルの種類がDVIになっているので,
これをPDFに変える必要があります.下記のファイルを開きます.
 %USERPROFILE%\.atom\packages\latex\lib\openers\atompdf-opener.js
25行目あたりの atom.workspace.open(... の部分を以下のように書き換えます.
    // TODO: Make this configurable?
    atom.workspace.open(filePath.replace(/\.dvi$/, '.pdf'), {'split': 'right'}).then(forwardSync)
(バージョンによって違うかもしれませんが,要はfilePath変数を単純に指定しないで,
filePath.replace(/\.dvi$/, '.pdf')とすることで開くファイルの拡張子をPDFに変えればOK)~
変更したら念のためAtomを再起動しておきましょう.


**Atom上でのTeXコンパイル [#ofcfa38e]
これまでの設定をしてあるならば,TeXファイルをAtomで開いて,Ctrl+Alt+Bをタイプするか,
Packageメニュー -> LaTeX -> BuildでビルドからPDF表示まで実行してくれます.
前節でforward searchを設定していたならば,PDFを表示した後,Atom上のカーソル位置にジャンプしてくれます.

ビルド中はステータスバーに"Compiling TeX file..."と表示されます.
もしエラーが出たら,"LaTeX compilation error"と赤字で表示されるので,
このメッセージをクリックするとlogファイルを開いてくれるのでエラー内容を確認して修正しよう
("Error"や"LaTeX Error"で検索するとよい).

***キーバインドの変更 [#ef1043e8]
個人的にデフォルトのCtrl+Alt+Bは打ちづらいのでキーバインドをCtrl+Spaceに変更しています.
変更するためには,Fileメニュー -> Keymap(日本語だとキーマップ)で keymap.cson を開いて以下を追加します.
 'atom-text-editor[data-grammar~="latex"]':
   'ctrl-space': 'latex:build'
キーバインドは Fileメニュー -> Setting -> Keybindings で確認できます.
対応するキーの左側のアイコン(下図参照)をクリックすると上記のような設定がクリップボードにコピーされるので,
それをkeymap.csonに貼り付けて,キー設定を変えることができます.

#ref(atom_keybinding.jpg,,80%)

ただし,latexパッケージのものについては標準では1行目が
 'atom-text-editor[data-grammar~='latex']':
となっており,シングルクォーテーションが入れ子になっているせいでエラーが出ます.
そのため,'latex'部分をダブルクォーテーションに変えています.

ちなみにkeybinding-resolverパッケージが入っているならば,Ctrl+.をタイプした後,検索したいショートカットキーを打てば,
下図のように何に割り当てられているのかを確認することもできます.

#ref(atom_keybinding_resolver.jpg,,80%)




*Atom TIPS [#q0a2659a]
**TeX関連以外で便利そうなパッケージ [#xd264ba2]
-auto-encoding : Atomの文字コードの自動選択機能はファイルを開くたびに設定し直す必要があるが,このパッケージではそれを自動化してくれる
-autocomplete-paths : ファイルパスのオートコンプリート
-japanese-menu : メニューと設定画面を日本語化
-minimap : ウィンドウ右側にテキスト全体のプレビュー(ミニマップ)を追加
-minimap-autohide : ↑のミニマップを使わないときは自動的に隠してくれる(右端にマウスを持ってきたら
-sublime-style-column-selection : Altキーを押しながらドラッグで矩形選択できるようにする
-multi-cursor : AtomではCtrlを押しながらクリックで入力カーソルを増やせるが,これをキーボードだけでできるようにする(Alt+Down or Alt+Upでカーソル追加).上下にカーソルを増やしたら,Shift+Right,Leftで選択範囲を伸ばせば,キーボードだけで矩形選択もできるようになる.Visual Studioと同じキー操作にしたい場合は以下のようにkeymap.csonに追加すればよい.
 'atom-workspace atom-text-editor:not([mini])':
   'alt-shift-right': 'core:select-right'
   'alt-shift-left': 'core:select-left'
 '.platform-win32 atom-text-editor:not(mini)':
   'alt-shift-up': 'multi-cursor:expandUp'
   'alt-shift-down': 'multi-cursor:expandDown'
-sync-settings : Atomの設定を複数PCで同期orバックアップ.Gistを使うので要githubアカウント.設定方法は以下参照.
++sync-settingパッケージをapmかSetting->Installからインストール
++https://github.com/settings/tokens/new からgithubアクセスのためのトークンを取得(要githubへのログイン,パスワード入力後,Tokendescriptionに適当な名前(atom-sync-settingなど)を入れて,gistだけにチェックして"Generate token"をクリック)
++https://gist.github.com/ にアクセスして新しいgistを生成(こちらも名前は適当&secret gistでOK)
++作成したgistのURLのid部分をコピーしておく (https://gist.github.com/{ユーザID}/{gist ID}になっている)
++sync-settingの設定でtokenとgistを入力
-convert-to-utf8 : テキストファイルの文字コードを変換.パッケージメニューのConvertToUTF8から変換できる.
-editorconfig : 文章のスタイルを統一するための[[EditorConfig:http://editorconfig.org/]]に対応させることができる.
ちなみに私が使っている.editorconfigファイルの設定は以下.
 root = true
 
 [*]
 end_of_line = crlf
 charset = utf-8
 indent_style = tab
 indent_size = 4
 trim_trailing_whitespace = false
 insert_final_newline = false
 
 [*.{c,cpp,tex}]
 trim_trailing_whitespace = true
 insert_final_newline = true
 
 [*.tex]
 indent_style = space
 indent_size = 2
-sort-lines : 選択した複数行のテキストをアルファベット順?でソート.複数行選択後コマンドパレット(Ctrl+T)でSort Lineを呼び出す(デフォルトではショートカットキーF5が割り当てられている).
-color-picker : RGBやweb用の16進,HSVなどの色を取得するカラーピッカー.OpenGLを使っているとvec3があるのが便利.パッケージの設定でショートカットキーを変えるかコマンドパレット(Ctrl+T)で呼び出す.
-tabs-to-spaces : タブをスペースに変換(Untabify)およびその逆にタブにする(Tabify).コマンドパレット(Ctrl+T)から呼び出すか,設定でファイル保存時に動的に変換するようにもできる.
-term3 : ターミナル(Windowsならコマンドプロンプト)を呼び出してくれる.同様のパッケージにはatom-terminalもあるがこちらはターミナルソフトを開くのに対して,term3ではAtom内でターミナルを開いてくれる.
-term3 : ターミナルを呼び出してくれる.同様のパッケージにはatom-terminalもあるがこちらはターミナルソフトを開くのに対して,term3ではAtom内でターミナルを開いてくれる.WindowsではデフォルトではPowerShellだが私の環境ではうまくいかなかったので設定のShell OverrideをC:\Windows\System32\cmd.exeとしてコマンドプロンプトを開くようにしている.

**Windowsでの関連づけ [#n5f4669b]
Atomのexeへのパスは,
 %USERPROFILE%\AppData\Local\atom\app-1.10.1\atom.exe
です(%USERPROFILE%の部分はC:\Users\{ユーザ名}など環境によって違います).
このパスのapp-1.10.1の部分がバージョンによって変わってしまうので,Atomをバージョンアップしたら開けなくなったということが発生します.
これに対応するために,
 %USERPROFILE%\AppData\Local\atom\bin\atom.cmd
というバッチファイルが用意されているのでこちらにファイルを関連づければ大丈夫です.

ファイルアイコンが気に入らない場合は,フリーソフトの「[[Default Program Editor:http://forest.watch.impress.co.jp/library/software/defprogedit/]]」などで変えましょう.
Atomのアイコンは,
 %USERPROFILE%\AppData\Local\atom\app.ico
にあります.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS