ujimushi_sradjpさんが指摘されているように、LaTeX文書 (tadamaster.tex
) が期待するLaTeX処理系の種類と使用しているLaTeX処理系の種類が異なることが原因です。つまり、現在以下のようになってます。
- LaTeX文書:upLaTeXを期待している
- LaTeX処理系:オプション
-u
なしのptex2pdf
、すなわちpLaTeXを使用している
また、次のような状況だと仮定します。
- 主眼のLaTeX文書は
tadamaster.tex
ファイルである。他に*.tex
のファイルは複数あるが、それらは主眼のLaTeX文書に\include{...}
ないし\input{...}
される。
- 主眼のLaTeX文書は以下のような内容である。
tex
1\documentclass[uplatex]{jsbook}
2
3\begin{document}
4
5...
6
7\end{document}
- 使用しているTeX Liveは2022年度版を使用している。また、フルスキーム(利用できるパッケージは部分集合でない)である。
- 使用しているOSはUNIX系である。また、使用しているシェルはbashかそれに近いものである。
それではこれをどう解決すればよいでしょうか。要はLaTeX処理系の種類がupLaTeXであればよいのですが、その方法は沢山あります。以降はその中の1つ、llmkというツールを使ってupLaTeXを使うように設定する方法を紹介します。もちろん他の方法を選択されることもいいでしょう。
ptex2pdf
に-u
オプションを付ける、というところでピンと来ていないと思われるため、恐らくこれまでにTeXworksやTeXShopのような統合開発環境、あるいはOverleafのようなWebアプリからコンパイルしたことはあるけれども、端末(ターミナル)はあまり使われていないのではないかと想像します。たしかに統合開発環境は手軽で便利なのですが、細かい設定方法は環境ごとにまちまちで、完璧な設定内容の共有は難しいです。(もし周囲に環境構築に成功した人がいれば、その人から教わるのもいいでしょう。)
そこでここでは端末でLaTeX文書をコンパイルすることを考えます。macOSではTerminal.appというアプリケーションが標準でありますし、WindowsならPowershellやコマンドプロンプトが使えるはずです。以下では基本的な端末でのディレクトリ・ファイル操作を前提としていますが、これについては検索すればわかりやすい情報が出てくるでしょう。一応ごく簡単に操作の意味は付けておきます。
さて今、端末が次のような状態だとします。(もしディレクトリまでのパスが違っていたら読み替えてください。)
shell
1~/workspace/master$ ls
2tadamaster.tex
3...
上ではls
コマンドを打ち、master
ディレクトリ内にあるtadamaster.tex
やその他のファイルを一覧で表示させています。
次にこのtadamaster.tex
をコンパイルしてPDFファイルtadamaster.pdf
にしたいところです。このコンパイルの工程を分解していくとptex2pdf
が出てきたりするのですが、話が複雑になっていきそうなので、よしなにやってくれるツールであるllmkを紹介します(代替としてLatexmkもあるのですが、そちらはPerlを習得する必要が出てくる可能性があります)。以下のような表示になればllmkはインストールされています。TeX Liveは2022年度版なので恐らく入っているはずです。
shell
1~/workspace/master$ llmk --version
2llmk 0.2.0
3
4Copyright 2018-2020 Takuto ASAKURA (wtsnjp).
5License: The MIT License <https://opensource.org/licenses/mit-license>.
6This is free software: you are free to change and redistribute it.
llmkの使い方としては、llmk tadamaster
とするか、現在いるディレクトリにllmk.toml
を作成してllmk
と打つだけでよしなにコンパイルしてくれます。ここでは後者で考えます。
shell
1~/workspace/master$ touch llmk.toml
2~/workspace/master$ ls
3llmk.toml
4tadamaster.tex
5...
上ではllmk.toml
という名前の中身が空のファイルを作成しています。その後にls
すると、ちゃんとllmk.toml
が作られたことが確認できます。このファイルに以下の内容を(テキストエディタで)書き込みます。
toml
1latex = "uplatex"
2source = "tadamaster.tex"
上の設定はこう言っています。「LaTeX処理系にはupLaTeXを使うこと。主眼のLaTeX文書はtadamaster.tex
とする。」
これで準備ができました。あとは以下とすればPDFファイルにコンパイルされるはずです。
shell
1~/workspace/master$ llmk
2~/workspace/master$ ls
3llmk.toml
4tadamaster.tex
5tadamaster.pdf
6...
llmkについての詳しい情報は前述のllmkのリンクから参照してください。
余談ですが、表示されているエラーメッセージ! Class jsbook Error: You are running pLaTeX.
は、以下の実装の部分から来ています。
[2016-11-11] pLATEX の場合は,オプション uplatex が指定されていれば
必ずエラーを出します。autodetect-engine が有効になっていてもエラーを
出しますが,これは otf パッケージに uplatex オプションが渡ってしまう
のを防ぐためです。
pLATEX 2ε 新ドキュメントクラス > 使用エンジンの検査・自動判定