【まとめ】AtomとTeX LiveでLuaLaTeX (Windows環境)

現在は、LaTeXからLuaLaTeXに、TeXstudioからAtomに乗り換えました。
自身の備忘録も兼ねて、導入からテスト出力までまとめておきます。
別のPCで構築する際に忘れませんように。

スポンサーリンク

構築する環境

WindowsでAtomをエディターとしてLuaLaTeXをコンパイルできる環境を構築します。
生成されたPDFのビューアーは、開きっぱなしでもファイルロックせずに変更まで自動で検出してくれるSumatra PDFにします。

TeX: LuaLaTeX
エディター: Atom
PDFビューアー: Sumatra PDF
OS: Windows 10 x64

流れ

  1. ダウンロードとインストール
  2. 各種ソフトウェアの設定
  3. テンプレートの作成
  4. 出力テスト

ダウンロードとインストール

TeX Live

最初にTeX Liveをダウンロードしてインストールします。

Acquiring TeX Live as an ISO image へアクセスし、「download from a nearby CTAN mirror」をクリックしてISOイメージファイルtexlive2019.isoをダウンロードします。
ISOファイルにはTeXに関連するファイル一式が格納されているため、ファイルサイズは3.3GBと大きいです。
少し時間がかかりますので、気長に待ちましょう。

 2019よりも最新のISOファイルがあればそれをダウンロードします。

ダウンロードしたtexlive2019.isoをダブルクリックして読み込みます。
うまく読み込めると、パソコンのDVDドライブにDVDを入れたような動作をします。

install-tl-windows.batを右クリックして管理者権限として実行を選び、インストーラーを開きます。

高度な設定をクリックします。

カスタマイズをクリックします。

後から##な機能を追加したい、$$も使えるようにしたい、と思ったときにあらためて追加するのは面倒です。
そのためパソコンのディスク容量に問題がない限り、基本的はチェックをつけておく方針で良いです。

私の場合、言語については日本語英語・米語以外のチェックを外しました。
それ以外の言語は使う予定がないためです。
また、TeXworksをインストールのチェックを外しました。
Atomを導入するため、TeX用エディタであるTeXworksのインストールは不要だからです。
音楽パッケージやゲーム組版は使うことがないような気もしますが、外したところで数十MBくらいしか変わらないためそのままとしました。

設定が終わったらOKで閉じます。
他はそのままで良いので、インストールを押して開始します。

終わるまでしばらく待ちましょう。

TeXへようこそ!が表示されればインストールは完了です。
終了後はDVDドライブを右クリックして、取り出しからマウント解除ができます。

Atom

次はAtomをダウンロードしてインストールします。

Atomホームページへアクセスし、Downloadをクリックしてインストーラーを保存します。
保存したインストーラーを実行すると自動的にインストールが開始され、完了するとAtomが起動します。

SumatraPDF

最後にSumatraPDFをダウンロードしてインストールします。

SumatraPDFホームページへアクセスし、Downloadをクリックします。
開いたページで自身の環境にあわせたインストーラーをダウンロードして保存します。
保存したインストーラーを実行し、オプションをクリックします。
通常時は使用しないで確認専用ビューアーにしたいので、すべてにチェックが入っていないことを確認してインストールします。

Atomのセットアップの際に、SumatraPDFのインストールパスを設定しますので、
SumatraPDFがどこにインストールされたかを確認しておくとあとの作業が楽です。
新しいバージョンだと、インストール先は、Program Filesではなく、AppDataが標準になっているようです。

Atomの初回設定

Register as default atom://URI handler?

右上にこのメッセージが表示された場合は、使うことはないのでNo, neverをクリックします。
この機能の詳細は公式ホームページのドキュメントが参考になるかもしれません。
Atomホームページ: Handling URIs
(私は意味がよくわかりませんでした。)
仮に使いたくなっても設定変更すれば良いと思います。

Show Welcome Guide when opening Atom


Welecomタブにて、Show Welcome Guide when opening Atomのチェックを外します。
以降の起動時にWelcome Guideタブが表示されることはありません。
ちなみにヘルプメニューからウェルカムガイドを選択すれば、再度ウェルカムガイドタブを表示することは可能です。

Telemetry Consent


「開発・改善の目的でAtomへ匿名化されたデータを送ってもよいか?」という確認です。
どちらかを選択すれば、それ以降の起動時に表示されることはありません。

Atomにインストールするパッケージとその設定

Atomは様々なパッケージが公開されています。

今回インストールするパッケージは以下のとおりです。
AtomでLuaLaTeXを動かすために必要なパッケージ等をインストールしています。

初期インストールおすすめパッケージ
latex: 【必須】AtomでLaTeXをコンパイルするために必要です。
japanese-menu: Atomを日本語化できます。
file-icons: 拡張子ごとにいい感じにアイコン設定してくれます。
language-latex: LaTeX用のシンタックスハイライトです。
latexer: LaTeX用のオートコンプリート機能を追加します。
document-outline: 右にアウトラインを表示する機能を追加します。
open-unsupported-files: 拡張子ごとに規定のプログラムで開けるようになります。
file-watcher: 外部プログラムでの編集を監視してくれます。
auto-encoding: エンコーディングを自動判別してくれます。

自分のAtomにパッケージをインストールしたいときは、FileメニューからSettingsを選択し、表示されたSettingsタブの左メニューからInstallを選択します。
右に表示されるテキストボックスにパッケージ名を入力することで検索されます。
インストールしたいパッケージ見つかったら、それぞれInstallボタンクリックで簡単にインストールすることができます。

また、自身のAtomにインストールした全パッケージを確認したり、それぞれの設定を変更する場合は、FileメニューからSettingsを選択し、表示されたSettingsタブの左メニューからPackagesを選択します。

latexパッケージ設定

latexパッケージ設定
TeX PathにC:\texlive\2019\bin\win32を設定
Engineをlualatexに変更
Clean Patternsから**/*.pdf, を削除
Openerをsumatraに変更
SumatraPDF Pathを自身の環境にあわせ変更

初期設定ではctrl-alt-bでコンパイル、ctrl-alt-sでSyncTeX、ctrl-alt-cでコンパイルしてからPDFが生成するまでの過程で発生したファイルを削除できます。なお、何を削除するかはClean Patternsで指定できます。
最終的にほしいのはPDFなので削除しないこととしました。

SumatraPDF Pathはデフォルトで設定されているパスを実際に確認して、存在するかを見ておきましょう。
私の場合x64用のsumatraPDFインストーラーを使用したため、Program Files (x86)ではなくProgram Filesにインストールされていました。これが原因で少し引っかかりました。

コンパイル等のショートカットキーの割当てを変更する

コンパイル等のショートカットキーの割当てはAtom上で直接変更できないため、
C:\Users\(ユーザー名)\.atom\packages\latex\keymaps\latex.jsonをテキストエディタで開いて編集します。

標準のコンパイルキーは不便なので、私はlatex:buildF1キーに、latex:cleanF2キーに変更しています。
小文字で指定しないと動作しないことに注意してください。

latex.jsonファイル

{
  "atom-text-editor[data-grammar~=\"latex\"]": {
    "f1": "latex:build",
    "ctrl-alt-s": "latex:sync",
    "f2": "latex:clean"
  }
}

BibTeX設定

BibTeXは引用文献を管理するための素晴らしい機能ですが、Atomで動かすためには以下の設定変更が必要です。
ちなみに最後に公開しているテンプレートでも使用しています。
C:\Users\(ユーザー名)\.atom\packages\latex\lib\builders\latexmk.jsを開き、constructArgs (jobState)を検索します。90行目あたり?にあると思います。
その中のconst argsを以下のように修正して保存します。

latexmk.jsファイル

    const args = [
        '-interaction=nonstopmode',
        '-f',
        '-cd',
        '-synctex=1',
        '-file-line-error',
        '-halt-on-error',
        '-latex=lualatex',
        '-e',
        '"$bibtex=\'pbibtex -kanji=utf8 %O %B\'"'
    ]

これでlatexパッケージを通してコンパイルすれば、引用文献を表示することができます。

テンプレートの作成

私がよく使うテンプレートのファイル構成です。

ファイル構成

root(project name)/
├── preamble.tex
├── reference.bib
└── test.tex

1つのディレクトがプロジェクトそのもので、その中で文書と設定ファイルを管理しています。
preamble.texは、プリアンブル、簡単に言えば文書全体の設定を記載するファイルです。複数texファイルを複数作成してもここを共通で参照するようにしています。
reference.bibは、引用文献をまとめておくファイルです。私はプロジェクト単位で管理しています。
test.texは、実際に文章を書いていくファイルです。

以下にそれぞれの詳細を公開します。
ここまでの設定が完了していれば、それぞれコピペして3つのファイルを作成すればtest.texをコンパイルできるはずです。

preamble.tex

\usepackage[luatex]{graphicx}                   % LuaTeX用, draft がついているときは図の代わりに同じ大きさの枠ができる
% \usepackage[luatex,draft]{graphicx}           % LuaTeX用, draft がついているときは図の代わりに同じ大きさの枠ができる
\usepackage{here}                               % 図表の位置を強制して出力
\usepackage{afterpage}                          % 残っている図を貼り付ける(\afterpage{\clearpage})
\usepackage[subrefformat=parens]{subcaption}    % サブキャプション(図1(a) とか)
\usepackage{setspace}                           % 行間制御
\usepackage{ulem}                               % 下線や取り消し線など
\usepackage{booktabs}                           % きれいな表(\toprule \midrule \bottomrule)
\usepackage{multirow}                           % 表で行結合 \multirow{2}{*}{セル6}
\usepackage{multicol}                           % 多段組み \begin{multicols}{3} ~~~\end{multicols}
\usepackage{hhline}                             % 表で 2 重線
\usepackage[table “” not found /]
{xcolor} % カラー \usepackage{tikz} % 図描画用 \usepackage{ascmac} % 文章を囲むとき用 %\usepackage[framemethod=tikz]{mdframed} % 文章を囲むとき用 \usepackage[version=3]{mhchem} % 化学式 \usepackage{siunitx} % 単位 \usepackage{comment} % コメントアウト機能の実装(Ctrl + /) \setcounter{tocdepth}{3} % 目次に subsubsection まで表示 \usepackage[customcolors]{hf-tikz} % -----余白の設定----- % geometry と fancyhdr の順番は http://d.hatena.ne.jp/pureodio/20110212/1297475110 参照 % \usepackage[left=19.05truemm,right=19.05truemm,top=25.40truemm,bottom=25.40truemm]{geometry} % -----ヘッダ・フッタの設定----- \usepackage{fancyhdr} \usepackage{lastpage} \pagestyle{fancy} \lhead{} % 左ヘッダ \chead{} % 中央ヘッダ \rhead{} % 右ヘッダ \lfoot{} % 左フッタ \cfoot{\thepage~/~\pageref{LastPage}} % 中央フッタ \rfoot{} % 右フッタ \renewcommand{\headrulewidth}{0pt} % ヘッダの罫線を消す % -----フォントの設定----- % https://ja.osdn.net/projects/luatex-ja/wiki/LuaTeX-ja%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9 % http://myfuturesightforpast.blogspot.jp/2013/12/tex-gyre.html など \usepackage[no-math]{fontspec} \usepackage{amsmath,amssymb} % 高度な数式用 \usepackage{mathrsfs} % 花文字用 \usepackage{mathtools} % 参照した数式だけに数式番号をつける \mathtoolsset{showonlyrefs,showmanualtags} \usepackage{empheq} % empheqでディスプレイモードで数式を表示するため % times ベース -> txfonts % palatino ベース -> pxfonts \usepackage{txfonts} \usepackage{bm} % 斜体太字ベクトル % Avant Garde -> TeX Gyre Adventor % Bookman Old Style -> TeX Gyre Bonum % Zapf Chancery -> TeX Gyre Chorus % Courier -> TeX Gyre Cursor % Helvetica -> TeX Gyre Heros % Helvetica Narrow -> TeX Gyre Heros Cn % Palatino -> TeX Gyre Pagella % New Century Schoolbook -> TeX Gyre Schola % Times -> TeX Gyre Termes \setmainfont[Ligatures=TeX]{TeXGyreTermes} \setsansfont[Ligatures=TeX]{TeXGyreHeros} \setmonofont[Scale=MatchLowercase]{TeXGyreCursor} \usepackage[match,deluxe,expert,bold]{luatexja-fontspec} \setmainjfont[BoldFont=IPAexGothic]{IPAexMincho} \setsansjfont{IPAexGothic} \usepackage{luatexja-otf} % -----PDF ハイパーリンク,ブックマーク,URL の設定----- % オプション(\hypersetup{})は https://texwiki.texjp.org/?hyperref 参照 \usepackage{hyperref} \hypersetup{% luatex,% unicode=true,% hidelinks,% bookmarksnumbered=true,% bookmarksdepth=subsubsection,% pdfencoding=auto,% setpagesize=false} \usepackage{url} % -----ソースコードの設定----- % オプション(\lstset{})は http://tug.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf 参照 % 使うときは % \begin{lstlisting}[language=aaaa,caption=bbbb,label=List:cccc] % hogehoge % \end{lstlisting} \usepackage{listings} \lstset{% basicstyle=\ttfamily\small,% frame=single,% frameround=ffff,% numbers=left,% stepnumber=1,% numbersep=1\zw,% breaklines=true,% tabsize=4,% captionpos=t,% commentstyle=\itshape} % -----図表等の reference の設定----- % 表示文字列を日本語化 \renewcommand{\figurename}{図} \renewcommand{\tablename}{表} \renewcommand{\lstlistingname}{リスト} \renewcommand{\abstractname}{概要} % 図番号等を"<章番号>.<図番号>" % lstlisting に関しては https://tex.stackexchange.com/questions/134418/numbering-of-listings 参照 \renewcommand{\thefigure}{\thesection.\arabic{figure}} \renewcommand{\thetable}{\thesection.\arabic{table}} \AtBeginDocument{\renewcommand{\thelstlisting}{\thesection.\arabic{lstlisting}}} \renewcommand{\theequation}{\thesection.\arabic{equation}} % 節が進むごとに図番号等をリセット % http://d.hatena.ne.jp/gp98/20090919/1253367749 参照 \makeatletter \@addtoreset{figure}{section} \@addtoreset{table}{section} \@addtoreset{lstlisting}{section} \@addtoreset{equation}{section} \newcommand{\subtitle}[1]{\def\@subtitle{#1}} \newcommand{\institute}[1]{\def\@institute{#1}} \def\@maketitle{ \begin{flushright} %日付 {\small \@date} \end{flushright} \vspace{-2.5ex} \begin{center} %主タイトル, 副タイトル {\Large \textgt{\@title}}\\[-0.25ex] \textgt{\@subtitle} \end{center} \vspace{-3.0ex} \begin{flushright} %所属, 名前 \@institute\\[-0.25ex] \@author \end{flushright} } \makeatother % \ref{} の簡単化 \newcommand*{\refSec}[1]{\ref{#1}~章} \newcommand*{\refSsec}[1]{\ref{#1}~節} \newcommand*{\refSssec}[1]{\ref{#1}~項} \newcommand*{\refFig}[1]{\figurename~\ref{#1}} \newcommand*{\refTab}[1]{\tablename~\ref{#1}} \newcommand*{\refList}[1]{\lstlistingname~\ref{#1}} \newcommand*{\refEq}[1]{式~(\ref{#1})} % -----数式中便利な定義----- % https://www.library.osaka-u.ac.jp/doc/TA_LaTeX2.pdf % https://en.wikibooks.org/wiki/LaTeX/Mathematics など \newcommand{\e}{\mathrm{e}} % ネイピア数 \newcommand{\imagi}{\mathrm{i}} % 虚数単位(i) \newcommand{\imagj}{\mathrm{j}} % 虚数単位(j) \newcommand{\vDel}{\varDelta} % デルタ大文字 \newcommand{\veps}{\varepsilon} % イプシロン小文字 \newcommand*{\paren}[1]{\left( #1 \right)} % () を中身の大きさに合わせる \newcommand*{\curly}[1]{\left\{ #1 \right\}} % {} を中身の大きさに合わせる \newcommand*{\bracket}[1]{\left[ #1 \right]} % [] を中身の大きさに合わせる \renewcommand{\Re}{\operatorname{Re}} % 実部 \renewcommand{\Im}{\operatorname{Im}} % 虚部 \newcommand*\sfrac[2]{{}^{#1}\!/_{#2}} % xfrac パッケージの \sfrac{}{} の代わり \renewcommand*\vec[1]{\mathbf{#1}} % 矢印ベクトルは使わないので上書き.太字立体. \newcommand{\myfrac}[3][0pt]{\genfrac{}{}{}{}{\raisebox{#1}{$#2$}}{\raisebox{-#1}{$#3$}}} % fracの分子・バー・分母の間のスペースを調整する

reference.bib

@book{ testbook,
  author    = "著者",
  title     = "タイトル",
  publisher = "出版社",
  year      = "2000",
  series    = "シリーズ情報",
  number    = "1",
  URL       = "https://sas-beginner.com/"
}

test.tex

\documentclass[10pt,a4paper]{ltjsarticle}   % 用紙サイズ、ドキュメントクラスを指定
\input{./preamble.tex}                      % 文書全体のプリアンブルを読み込み

% -----文書別プリアンブルここから-----
\title{Lua\LaTeX}
\subtitle{テスト文書}
\institute{はじめましてSAS言語+}
\author{ポチるの}
\date{\today}
% -----文書別プリアンブルここまで-----

\begin{document}
\maketitle        % タイトルページの出力
\thispagestyle{fancy}

\part{パート}
\section{セクション}
\subsection{サブセクション}
\subsubsection{サブサブセッション}
hogehoge~\cite{testbook} \\
fugafuga\footnote{フットノート}

\begin{equation}
  y=a+bx  \label{eq:linear}
\end{equation}
数式参照\eqref{eq:linear}

\bibliographystyle{junsrt}  % 引用文献の表示
\bibliography{reference}    % bibファイルへのパス(.bib無しで指定すること)

\end{document}

コンパイル結果

3つファイルをたとえば以下のように配置して、Atomでtest.texをコンパイルします。
コンパイルはctrl+alt+bです。
私はF1で起動するように修正しているのでF1ですね。

ファイル配置例

C:\temp\test\
├── preamble.tex
├── reference.bib
└── test.tex

コンパイルがうまく通れば、次のようなPDFが作成されます。
お疲れ様でした。

参考にさせていただいたサイト

本記事をまとめるにあたり、参考にさせていただいたサイト様です。
本当にありがとうございます。すごくわかりやすかったです。

Atom と LuaLaTeX と BibTeX,おまけに Inkscape
Atom で LaTeX on Windows (+ 最近のビルド環境)

スポンサーリンク