質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
LaTeX

LaTeXは、レスリー・ランポートが開発したテキストベースの文書整形システムです。 電子製版ソフトウェアである「TeX」にマクロパッケージを組み込む形で構成されており、 通常のTeXより扱いやすくなっているのが特徴です。

Q&A

解決済

2回答

2351閲覧

TEX Live 修論で困っています。

T-YO

総合スコア2

LaTeX

LaTeXは、レスリー・ランポートが開発したテキストベースの文書整形システムです。 電子製版ソフトウェアである「TeX」にマクロパッケージを組み込む形で構成されており、 通常のTeXより扱いやすくなっているのが特徴です。

0グッド

0クリップ

投稿2022/12/10 03:09

大学の先生から送っていただき、自分でDLしてコンパイルすると
以下のエラーが出てきてしまいました。
ネットエラーをネット検索したら
Versionの問題 とでてきました。
現在 pLaTex(ptex2pdf)でコンパイルしましたが、なにか足りないのでしょうか
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is ptex2pdf[.lua] version 20200520.0.
Processing tadamaster.tex
This is e-pTeX, Version 3.141592653-p4.0.0-220214-2.6 (utf8.sjis) (TeX Live 2022) (preloaded format=platex)
restricted \write18 enabled.
entering extended mode
(./tadamaster.tex
pLaTeX2e <2021-11-15> (based on LaTeX2e <2022-06-01> patch level 5)
L3 programming layer <2022-07-04>
(c:/texlive/2022/texmf-dist/tex/platex/jsclasses/jsbook.cls
Document Class: jsbook 2021/06/28 jsclasses (okumura, texjporg)

! Class jsbook Error: You are running pLaTeX.
(jsbook) Please use upLaTeX instead, or remove 'uplatex' from
(jsbook) the class option list.

See the jsbook class documentation for explanation.
Type H <return> for immediate help.
...

l.238 {@ehc}

?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bull

2022/12/10 13:06

現状どのようにコンパイルしていますか? コマンドラインですか? 何らかの開発環境を使っていますか?
guest

回答2

0

ベストアンサー

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ε 新ドキュメントクラス > 使用エンジンの検査・自動判定

投稿2022/12/11 04:37

gemmaro

総合スコア358

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

! Class jsbook Error: You are running pLaTeX.
(jsbook) Please use upLaTeX instead, or remove 'uplatex' from
(jsbook) the class option list.

大学先生のtexファイルは,uplatexでコンパイルすることを前提に作られています。
ですのでptex2pdfでコンパイルする場合は,-uオプションをつけないといけません。

投稿2022/12/10 03:34

ujimushi_sradjp

総合スコア2111

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

T-YO

2022/12/10 03:47

早々にありがとうございます。 「ptex2pdfでコンパイルする場合は,-uオプションをつけないといけません」 というのは具体的にどんな操作をすればよいのでしょうか。参考になるURLなどご紹介いただけると助かります
ujimushi_sradjp

2022/12/10 04:07

これから仕事するのでこれ以降はコメントできません。よろしく。
T-YO

2022/12/11 11:09

お忙しい中ご対応してくださり、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問