adbird(広告鳥) 備忘録

LaTeX 使い方・参考リンク

最近、人にLaTeXを紹介したので、使い方の参考になるリンクをリストアップ。

ただし、ときに情報が古くなっている場合や、使うTeXエンジン((u)pLaTeXなのか、LuaLaTeXなのかなど)によってもコマンド等が若干変わってくるので注意が必要。


はじめに(なぜLuaTeX-ja を使った LuaLaTeX を推すのか)

日本語 LaTeX の新常識 2021 - Qiita からの引用。

2021年1月現在,まともな日本語組版が可能とされる LaTeX エンジンは以下の3種類です.

  • pLaTeX: 日本語用に拡張された LaTeX エンジン.昔ながら.
  • upLaTeX: UnicodepLaTeX の拡張.近年の主流?
  • LuaLaTeX: 高機能ですごい LaTeX エンジン.ただし (u)pLaTeX よりは処理が遅い.

補足としては、pLaTeXもupLaTeXも texファイル → dviファイル → pdfファイル と処理し、最終的なPDFを出力する間にdviファイルを挟むに対して、LuaLaTeXは texファイル→pdfファイル と直接PDFファイルを出力してくれる。

あと、こんな話もある…。

上記のような理由で、僕は LuaTeX-ja を使った LuaLaTeX 推し。

なので、まずは「LaTeX での使い方」 LuaTeX-jaの使い方 - LuaTeX-ja Wiki を分からなくても簡単に読んでみて、そこに書いてある方法でPDF出力できることを確認してから、いろいろ調べることを薦める。

まずはやってみる

「LaTeX での使い方」 LuaTeX-jaの使い方 - LuaTeX-ja Wiki にある通りだけど、さらに詳細に。

拡張子の表示設定

まずはファイルの拡張子が表示されるようにしておく。

texファイルの作成

次に任意のフォルダ内にテキストエディタ(メモ帳)などで、以下の内容の sample.tex ファイルを作成する(拡張子は「.tex」なので注意)。

\documentclass{ltjsarticle}
\usepackage{luatexja} % ltjclasses, ltjsclasses を使うときはこの行不要
\begin{document}
\section{はじめてのLua\TeX-ja}
ちゃんと日本語が出るかな?
\subsection{出たかな?}
長い文章を入力するとちゃんと右端のところで折り返されるかな?
大丈夫そうな気がするけど.ちょっと不安だけど何事も挑戦だよね.
\end{document}

コンパイル(PDFファイル生成)

「sample.tex」ファイルの入っている任意のフォルダをエクスプローラーで開いている状態で、エクスプローラーのアドレス欄に「cmd」と書いて、エンターキーを押すとコマンドプロンプトが立ち上がる(参照:エクスプローラーからのコマンドプロンプト起動)。

そのコマンドプロンプトで次のように書いて、エンターキーを押す。

lualatex sample.tex

そうすると、sample.pdf が出来上がっているはず。

PDFを Adobe Acrobat Reader DC で開いたまま、上記で再びコンパイルしようとすると、エラーが出てコンパイルできない。それは Adobe Acrobat Reader DC がファイルをロックしているから。なので、PDFを開くのは、SumatraPDF などがおすすめ。SumatraPDFなどであれば、PDFファイルを開いたままでもコンパイルできて、即時に変更が反映される。(参考:よくある質問 - TeX Wiki

文書の細かい設定・調整

体系的にまとまっているサイト

近年話題の日本語文書クラス

そもそもクラスファイルとは?

「「章」 (\chapter) の有無といった文書構造,および ページレイアウト・パラメータや個々の見出しの書体・文字サイズといった体裁に関する指定を記述したファイル。 拡張子は通常 “.cls” を用いる。」(用語・略語集 - TeX Wiki

例えば、日本語の論文 LuaLaTeX 用(LuaTeX-ja)の場合、

  • ltjsarticle.cls :日本語の論文 LuaLaTeX 用
  • ltjsreport.cls :日本語の報告書 LuaLaTeX 用
  • ltjsbook.cls :日本語の書籍 LuaLaTeX 用
  • ltjarticle.cls :日本語の論文 LuaLaTeX 用
  • ltjreport.cls :日本語の報告書 LuaLaTeX 用
  • ltjbook.cls :日本語の書籍 LuaLaTeX 用

があり、texファイルの冒頭の

\documentclass{ltjsarticle}

で拡張子(.cls)を外して、入れるだけ。

最近、話題の「jlreq」クラスを使う場合、

\documentclass{jlreq}

とするだけ。

複数行にわたる下線(あるいは波線・破線など) ※公式に入っていないパッケージ

TeXでは、和文における複数行にわたる下線等が苦手(参照:TeXが苦手とする処理 - TeX Wiki)。

そこで以下のリンクにある breakfbox.stymyuline--.styuline--.sty をダウンロードして、インストール。スタイルファイルをダウンロードして、インストールする。

TeXLive をフルでインストールしても含まれていない(すなわち、公式サイトCTAN: Comprehensive TeX Archive Networkに収録されていない)スタイルファイル等は自分でダウンロードして、インストールしないといけない。

インストール方法やパッケージ(スタイルファイル)の使い方は、LaTeX スタイルファイルの保存先 - adbird(広告鳥) 備忘録 を参照のこと。

図や表の作成

数式やフローチャート

TeX公式

各種パッケージの公式ドキュメント(説明文書)等を検索するときはこちらで。

例えば、 LuaTeX-ja(luatexja)であれば、以下のページの「Package documentation (Japanese)」で見られる。

縦書き

フォーラム

どうしても分からないことがあれば、フォーラムで質問を。

書籍

エディタ(開発環境)

Geanyがオススメ。

設定をすることで、ボタンひとつでコンパイルしてくれるし、スニペット登録で長いコマンドを覚えなくて済むし、プラグインを入れると特殊文字の挿入などがすごく楽になる。

LaTeXで文系論文執筆時に使える箇条書き(リスト)の方法

箇条書き(リスト)の項目の文章が長い場合に、使える箇条書きの方法。

LaTeXの箇条書きでよく使われるitemize(記号見出し)環境や、enumerate(数字見出し)環境ではなく、ここではlist環境(\begin{list})なので注意。

なお、下記の例はLuaTEX-jaパッケージ(\usepackage{luatexja})使用時の例。数字の単位はLuaTEX-jaパッケージ使用時、全角文字数で指定するときには「\zw」を使う。LuaTEX-jaパッケージ以外のときは「zw」(全角幅 zenkaku width)を使うので注意。

\begin{list}{}{\leftmargin=2\zw \labelsep=1\zw \itemindent=1\zw}
\item[ア、] 箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き
\begin{list}{}{\leftmargin=2\zw \labelsep=0\zw \itemindent=0\zw}
\item[い:] 箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き
\item[ろ:] 箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き
\end{list}
\item[イ、] 箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き
\item[ウ、] 箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き箇条書き
\end{list}

↓出力結果。

f:id:adbird:20220414000008p:plain

この方法では、自動でナンバリング等はしないけど、箇条書きの項目が複数行に渡った場合に、2行目以降のインデントの調節などが比較的しやすい。

また、自動でナンバリングしないことのメリットもあり、それは他者の文章を引用する際に、その引用元の箇条書きの見出しが間違っている場合でも(「ア、」「イ、」「ウ、」と続いて、次は本来「エ、」のはずなのに、引用元が間違って「エ、」を飛ばして、「オ、」としているなどの場合でも)対応できるということ。

たぶん僕のような文系の人間には必須。
まあ、文系で文章を書くのにLaTeX使っている人が稀有だろうなぁ…。

戦後教育資料

国立教育政策研究所が所蔵する終戦から講和条約(昭和20年9月から昭和27年5月)までの教育改革に関する資料。法律、命令、規則、通達として制定・公表されたものだけでなく、その制定過程、背景まで、 戦後の教育改革の基本となる資料が含まれている。

キーワードでも検索可能。

LibreOffice の Writer で改行削除

改行を削除したい部分を選択する。

Ctrl + H で、「検索と置換」ウィンドウを表示させる。

検索の項目に「$」(改行がshift+ Enter の場合は「\n」)を入れて、置換の項目には何も入れない。

「他のオプション」をクリックして、「現在の選択範囲のみ」と「正規表現」にチェックを入れて、置換する。

Ubuntu 20.04 のファイルマネージャーで動画のサムネイル表示

数週間前に、サポート期間が来年2023年4月までのUbuntu 18.04 LTS から 20.04 LTS (サポート期間2025年4月まで) にアップグレードした(改めてインストールし直した)。

すると、ファイルマネージャー(Files)で動画のサムネイルが表示されなくなってしまった。下記参照リンクのページを参照に、以下を行ったら、動画のサムネイルも表示されるようになった。

$ sudo apt install ffmpegthumbnailer

Geanyのスニペット登録(入力補完)

一度設定さえすれば、すごく楽になる。これでLaTeXなどの長いコマンドも怖くない?

設定例

例えば、LaTeXファイル(.tex)の場合、Geanyの ツール>設定ファイル>snippets.conf に以下のような内容を追加。

LaTeXファイルが文字コード UTF-8 で作成している場合には、snippets.conf も UTF-8 で保存しておかないと、下記のようにスニペット登録で日本語を含んでいる場合にスニペットが使えないので注意する。

[LaTeX]
リスト=\\begin{itemize}\n%ws%\\item %cursor%\n\\end{itemize}
list=\\begin{itemize}\n%ws%\\item %cursor%\n\\end{itemize}

リスト1=\\begin{enumerate}\n%ws%\\item %cursor%\n\\end{enumerate}
list1=\\begin{enumerate}\n%ws%\\item %cursor%\n\\end{enumerate}

リストアイテム=\\item 
アイテム=\\item 

table=\\begin{table}[tbh]%h…here. t…top. b…bottom.  p…page(別のページを作成し,そこに表示).\n\\centering\n\\caption{表のキャプション}\n\\label{}\n\\begin{tabular}{|c||c|p{17\\zw}|}%arrayパッケージ使用。列の数だけ c , l , r , p{幅} などを入れる。罫線「|」は適宜\n\\hline %このhlineは表上部の罫線\nA1 & A2 & A3\\\\ \\hline \\hline%行の終わりには必ず「\\\\」を入れる。罫線「\\hline」は適宜。\nB1 & B2 & B3\\\\ \\hline\nC1 & C2 & C3\\\\ \\hline\n\\end{tabular}\n\\end{table}

表=\\begin{table}[tbh]%h…here. t…top. b…bottom.  p…page(別のページを作成し,そこに表示).\n\\centering\n\\caption{表のキャプション}\n\\label{}\n\\begin{tabular}{|c||c|p{17\\zw}|}%arrayパッケージ使用。列の数だけ c , l , r , p{幅} などを入れる。罫線「|」は適宜\n\\hline %このhlineは表上部の罫線\nA1 & A2 & A3\\\\ \\hline \\hline%行の終わりには必ず「\\\\」を入れる。罫線「\\hline」は適宜。\nB1 & B2 & B3\\\\ \\hline\nC1 & C2 & C3\\\\ \\hline\n\\end{tabular}\n\\end{table}

figure=\\begin{figure}[tbh]%配置場所の優先順位。t…top. b…bottom. h…here. 一つだけ指定しても良い\n\t\\centering\n\t\\includegraphics[width=8cm]{.jpg}\n\t\\caption{}\n\t\\label{}\n\\end{figure}\n

pic=\\begin{figure}[tbh]%配置場所の優先順位。t…top. b…bottom. h…here. 一つだけ指定しても良い\n\t\\centering\n\t\\includegraphics[width=8cm]{.jpg}\n\t\\caption{}\n\t\\label{}\n\\end{figure}\n

pic2=%文章を回り込む画像。wrapfigパッケージ使用。\n\begin{wrapfigure}[7]{r}[1\zw]{5cm}%%%[7(行数)]{r(位置:r/l)}[1\zw(overhang量)]{5cm(図の幅:)}\n \centering\n \includegraphics[width=5cm]{001.png}\n\end{wrapfigure}

画像=\\begin{figure}[tbh]%配置場所の優先順位。t…top. b…bottom. h…here. 一つだけ指定しても良い\n\t\\centering\n\t\\includegraphics[width=8cm]{.jpg}\n\t\\caption{}\n\t\\label{}\n\\end{figure}\n

書き方

「\n または %newline%」が改行、「\t または %ws%」でタブ、「%cursor%」がカーソル位置。

入力例

箇条書きリスト(番号なし)

LaTeXファイル(.tex)の本文中(行の冒頭でないと機能しない?)で、
「リスト」または「list」と入力したあとに、tabキーを押すと

\begin{itemize}
    \item _
\end{itemize}

と、箇条書きリスト(番号なし)が出てくる。
「リスト」・「list」には数字がついていないので、番号なしのリスト、と覚えておく。

番号付き箇条書きリスト

「リスト1」または「list1」と入力したあとに、tabキーを押すと、

\begin{enumerate}
    \item _
\end{enumerate}

と、番号付き箇条書きリストが出てくる。
「リスト1」・「list1」には数字がついているので、番号付きのリスト、と覚えておく。

「リストアイテム」(「アイテム」でもOK)と入力したあとに、tabキーを押すと、

\item 

が出てくる。

「table」(「表」でもOK)と入力したあとに、tabキーを押すと、

\begin{table}[tbh]%h…here. t…top. b…bottom.  p…page(別のページを作成し,そこに表示).
\centering
\caption{表のキャプション}
\label{}
\begin{tabular}{|c||c|p{17\zw}|}%arrayパッケージ使用。列の数だけ c , l , r , p{幅} などを入れる。罫線「|」は適宜
\hline %このhlineは表上部の罫線
A1 & A2 & A3\\ \hline \hline%行の終わりには必ず「\\」を入れる。罫線「\hline」は適宜。
B1 & B2 & B3\\ \hline
C1 & C2 & C3\\ \hline
\end{tabular}
\end{table}

が出てくる。

画像

「pic」(「figure」または「画像」でもOK)と入力した後、tabキーを押すと、

\begin{figure}[tbh]%配置場所の優先順位。t…top. b…bottom. h…here. 一つだけ指定しても良い
    \centering
    \includegraphics[width=8cm]{.jpg}
    \caption{}
    \label{}
\end{figure}

が出てくる。

参考リンク