目標
* TeX の基本的な使い方を理解
* わからないことを自分で解決できるようになること
これを目標にして行きたいと思います.
$\TeX$を使う動機は私の記事をご覧ください.
ここでは目標で明記したように,基本的な使い方と,エラーなどの自己解決方法を紹介したいと思います.
しかし,1から10まで記事にすることは不可能なのでわからなかったら自分で調べる努力もしていただければと思います.
環境
- Mac
- texlive2020
WindowsとUbuntuでの組み合わせでも可能です!
とりあえず,次のようなversion
情報が出力される環境を仮定します!
Windowsの方はUbuntu上でMacの方はターミナル(以下,Ubuntuを含めターミナルと略します.)で次のように入力します.
$ platex -version
これがまだできていない方はWindows
ユーザ向けではありますが次の記事をご覧ください.
文章作成の基本
おまじない
一番初歩的ですが,$\TeX$の拡張子は基本的に.tex
です.そこで,一番初めに簡単な文章を作成してみましょう.
\documentclass[]{jsarticle}
\begin{document}
Hello \TeX
数学でもっとも美しい数式の一つである\textbf{オイラーの公式}を紹介します.
\[ e^{i \theta} = \cos \theta + i \sin \theta \]
\end{document}
ここで,なんとなくわかることとしては,なんだか\
から始まるキーワードに意味がありそうだなと予想できます.
ここで,覚えて欲しいことは次の部分がおまじないということです.
とりあえず,この意味が知りたい方は自分で調べてみましょう.まずはこのおまじない(テンプレートのようなもの)があると理解していただければと思います.
\documentclass[]{jsarticle}
\begin{document}
\end{document}
この段階ではこの文章を打ち込んだorコピペしただけだと思うので,実際にコンパイルしてみましょう.
コンパイル方法
最後に簡単にコンパイルする方法を紹介しますがまずは原始的な方法で!
$
から始まる行を順番にターミナルで実行します.
$ ls # カレントディレクトリにmain.texが存在するか確認
main.tex
$ platex main.tex # .tex -> .dviを作成
$ dvipdfmx main.dvi # .dvi -> .pdfを作成
とりあえず,これで簡単に文章を作成することができました.
カレントディレクトリを見るとmain.pdf
ができていることがわかります.
うまくいかない場合
次の要因を順番に検証してみてください.それでもダメなら,大人しくOverleaf
を使いましょう.
-
platex -version
ができているか確認しましょう - カレントディレクトリに
main.tex
が存在しているか確認しましょう -
main.tex
をコピペし直してコンパイルしてみましょう
基本的なところ
- コメントアウト
基本的に単一行でのコメントだけで
%
を使います.もちろん,ブロックコメントのようなことも可能ですので自分で調べてみてください.
- 命令環境
hogeはなんでもいいとして \begin{hoge} \end{hoge}で囲まれた部分を(hoge)環境と言います.\begin{}と\end{}はセットなのでどちらかがかけてしまったらエラーになってしまう.
\begin{hoge}
% この行はコメントです
% ここは\begin{hoge}と\end{hoge}で囲まれているのでhoge環境です
\end{hoge}
- プリアンブル
\documentclassと\begin{document}で挟まれた部分のこと.パッケージの追加を宣言する時に使ったりすすので結構な頻出単語.
\documentclass[]{jsarticle}
% ここがプリアンブル
\begin{document}
% 本文はここに書く
\end{document}
- パッケージの利用
使用するパッケージはプリアンブルに記述します.
例えば、amsmathパッケージを使うこと宣言する場合は次のようになります.
\documentclass[]{jsarticle}
\usepackage{amsmath} % これが宣言部
\begin{document}
\begin{align}
y = \sin x
\end{align}
\end{document}
パッケージについて詳しく知りたい方は自分で調べてみてください.奥が深すぎて全てを語ることはできません.
- インライン要素
改行を伴わない要素
例えば,\( \)
の中身に記述したりする.
- ブロック要素
改行と伴う要素
例えば,\[ \]
の中に記述したりする.ブロック要素で数式を書いた場合は基本的に中央寄せされる.オイラーの公式も中央寄せされていた.
簡単な命令
例えば,冒頭でオイラーの公式を$\TeX$を使って表示させてみましたが,その際に上添字をe^{i \theta}
とかギリシャ文字の$\theta$を\theta
とかで表現していました.
初学者の方はこれを全部覚えなければいけないのか?と動揺するかもしれませんが,とてもじゃないけどこんな無数にあるものを全部覚えられませんなので安心してください.Google先生
がなんでも教えてくれます.
実際にお使いのブラウザで調べてみましょう.
「tex ギリシャ文字」 で検索
絶対に出てきます.
では$\alpha$はどういう命令でしょうか?では、$\varepsilon$ は? $\epsilon$ではありませんよ.
もちろんQiitaのこの記事をマークダウン表示されたらわかることですが(笑)
ここで大切なことは,実現したいことを直感的に検索すれば大体のことはわかるということです.なので,周りのできる人に聞くのもいいですがお願いですので自分で調べてからにしてください.
エラーが出たら
実際に出力されるエラーを元にそれらを回避する方法を紹介します.
次のファイルをコンパイルしようとするとエラーになります.
\documentclass[]{jsarticle}
\begin{document}
Hello \TeX
数学でもっとも美しい数式の一つである\textbf{オイラーの公式}を紹介します.
\begin{align}
e^{i \theta} = \cos \theta + i \sin \theta
\end{align}
\end{document}
ターミナルには次のような出力があります.
一部編集しわかりやすくしていますので,若干違いますが...
platex error.tex # ファイルをコンパイルしようとした.
This is e-pTeX, Version 3.14159265-p3.8.3-191112-2.6 (utf8.euc) (TeX Live 2020) (preloaded format=platex)
restricted \write18 enabled.
entering extended mode
(./error.tex
pLaTeX2e <2020-02-02>+3 (based on LaTeX2e <2020-02-02> patch level 5)
L3 programming layer <2020-03-06>
(/usr/local/texlive/2020/texmf-dist/tex/platex/jsclasses/jsarticle.cls
Document Class: jsarticle 2020/02/02 jsclasses (okumura, texjporg)
(/usr/local/texlive/2020/texmf-dist/tex/platex/jsclasses/jslogo.sty))
(/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-dvips.def)
No file error.aux.
! LaTeX Error: Environment align undefined. # ここ!!!!!!!!!!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.8 \begin{align} # この行も重要!!!!!!!!!!!!!!!!!!!!!!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
?
ここで重要なことは,エラー内容ではなくなんのエラーなのかということです.
エラーの判別方法
エラーの判別方法はズバリ! ~
の行を見れば明らかです!そしてこのエラーを解決することができれば,目の前のエラーを回避することができます.
エラーの検索方法
!
から始まる行をそのままGoogle
に貼り付けましょう.そして英語がわかる方が大体の意味がわかるでしょう!
「! LaTeX Error: Environment align undefined.」 で検索
ここでは簡単に,エラーの内容は,l.8(8行目のこと)で「align」という環境が使われてるけどそんなん定義されていないぜ!って$\TeX$に怒られています.
ググればこのエラーの回避方法がpackegeの宣言が不足しているという結論に至るでしょう.(もちろん、タイプミスもあれば実在しない場合も考えられるが...)
なので,次のように必要なパッケージを宣言しました.
\documentclass[]{jsarticle}
\usepackage{amsmath} % これを追加したよ!
\begin{document}
Hello \TeX
数学でもっとも美しい数式の一つである\textbf{オイラーの公式}を紹介します.
\begin{align}
e^{i \theta} = \cos \theta + i \sin \theta
\end{align}
\end{document}
これはコンパイルが通りますので
$ ls # good.texの存在を確認
good.tex
$ platex good.tex
$ dvipdfmx good.dvi
でコンパイルできることを確認してください.
ここまで実際にエラーを回避する方法を紹介してきました.慣れてくればエラーを出さずにできるかもしれませんが最初はエラーだらけだと思いますが一つ一つ解決することができれば大丈夫です.
コンパイルが面倒な方へ
コンパイルって非常に面倒ではありませんか?
これが面倒で$\TeX$を使いたくないという人も多いはず.そこでMakefile
を紹介します.
構造自体はわからなくても大丈夫ですので気になったら自分でググりましょう.
ちなみに,2行目3行目の最初のインデントはtabです.
main.pdf: main.tex
platex main.tex
dvipdfmx main.dvi
このMakefile
の内容をmain.tex
と同じディレクトリに保存します.
$ ls
Makefile main.tex
$ make $ これだけでコンパイルできる
このようにしてコンパイルする方法もあります.
ちなみに、私はVSCode
を使っていて,このmake
すらしません.保存するだけで自動的にコンパイルできるようにしてあります.
このやり方も慣れてきたら自分でググりましょう!
終わりに
肝心なところで「自分で調べよう」と書かれてとてもお怒りなのもわかりますが,本質的にググる能力がなければできるようにはならないと思います.
ですので実現したいことをググったり、エラーをググったりすることで検索能力も身につけていただければと思います.
最後までご覧いただき本当にありがとうございあました。