chemfigパッケージの使用時に出るエラーについて

chemfigパッケージの使用時に出るエラーについて

- 河合 遥己 の投稿
返信数: 3
Windows10 home,64ビットオペレーションシステムを使い、LaTeX2eを改訂第7版美文書作成入門付属のDVD-ROMでパソコンに導入しています。

chemfigパッケージを使用するにあたり、
https://doratex.hatenablog.jp/entry/20141212/1418393703
に記載されているサンプルをコピー、ペーストしてPDF化しようとしたところPDF化に失敗し、エラーメッセージ表示されました。\documentclass commandが2度使われているようなのですが、直し方がわかりません。直し方をご教授いただけないでしょうか。

TeX ファイルの内容は以下になります。

\documentclass{jsarticle}

\usepackage[dvipdfmx]{graphicx}

\usepackage{chemfig}

\begin{document}

\chemfig{CH_3-CH(-[2]CH_3)-CH_2-C(=[:60]O)-[:-60]O-H}

\end{document}


それに対応するログは以下になります。

This is ptex2pdf[.lua] version 20170622.0.

Processing chemfig.tex

This is e-pTeX, Version 3.14159265-p3.7.1-161114-2.6 (utf8.sjis) (TeX Live 2017/W32TeX) (preloaded format=platex)

restricted \write18 enabled.

entering extended mode

(./chemfig.tex

pLaTeX2e <2017/10/28>+4 (based on LaTeX2e <2017-04-15>)

Babel <3.17> and hyphenation patterns for 84 language(s) loaded.

(c:/texlive/2017/texmf-dist/tex/platex/jsclasses/jsarticle.cls

Document Class: jsarticle 2017/10/04 jsclasses (okumura, texjporg)

(c:/texlive/2017/texmf-dist/tex/platex/jsclasses/jslogo.sty))

(c:/texlive/2017/texmf-dist/tex/latex/graphics/graphicx.sty

(c:/texlive/2017/texmf-dist/tex/latex/graphics/keyval.sty)

(c:/texlive/2017/texmf-dist/tex/latex/graphics/graphics.sty

(c:/texlive/2017/texmf-dist/tex/latex/graphics/trig.sty)

(c:/texlive/2017/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)

(c:/texlive/2017/texmf-dist/tex/latex/graphics-def/dvipdfmx.def)))

(c:/texlive/2017/texmf-dist/tex/generic/chemfig/chemfig.sty

(c:/texlive/2017/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty

(c:/texlive/2017/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty

(c:/texlive/2017/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex)

) (c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def

(c:/texlive/2017/texmf-dist/tex/latex/ms/everyshi.sty))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex))

(c:/texlive/2017/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty

(c:/texlive/2017/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty

(c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex)

) (c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def

(c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def))

)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex

)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex

)) (c:/texlive/2017/texmf-dist/tex/latex/xcolor/xcolor.sty

(c:/texlive/2017/texmf-dist/tex/latex/graphics-cfg/color.cfg)

(c:/texlive/2017/texmf-dist/tex/latex/graphics-def/dvips.def))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te

x)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric

.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t

ex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co

de.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex

)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te

x)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex

)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm

etics.code.tex)))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod

e.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te

x)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code

.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c

ode.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex)


(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co

de.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex

))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code

.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex

)))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex)

(c:/texlive/2017/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st

y)

(c:/texlive/2017/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st

y)) (c:/texlive/2017/texmf-dist/tex/latex/pgf/utilities/pgffor.sty

(c:/texlive/2017/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))

(c:/texlive/2017/texmf-dist/tex/latex/pgf/math/pgfmath.sty

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)))

(c:/texlive/2017/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex

(c:/texlive/2017/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co

de.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex)

(c:/texlive/2017/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli

brarytopaths.code.tex))) (./chemfig.tex


! LaTeX Error: Two \documentclass or \documentstyle commands.


See the LaTeX manual or LaTeX Companion for explanation.

Type H <return> for immediate help.

...

 

l.1 \documentclass{

jsarticle}

河合 遥己 への返信

Re: chemfigパッケージの使用時に出るエラーについて

- 本田 知亮 の投稿
chemfigは全く使ったことがないので
使い方は知らないですけど
サンプルのファイルのファイル名が
chemfig.texですよね
このファイル名を変えてみてください.
test.texでもsample.texでも.

%---------------


ptex2pdf -l chemfig.tex

に相当すること処理でコンパイルしてますよね.
そして,logの最後でchemfig.texが
もう一回読まれている.
これ,chemfig.styが内部的にchemfig.texを
読み込もうとして,カレントにあるchemfig.texを読んでいます.
その結果,そのエラーがでています.

texmf-dist/tex/generic/chemfig/chemfig.tex
というのがあるので,
本来はこれを読むのでしょうが
カレントのものが優先されるのでこうなってしまうんでしょうね.
本田 知亮 への返信

Re: chemfigパッケージの使用時に出るエラーについて

- 河合 遥己 の投稿
ありがとうございます。ファイル名を変更したら無事にPDF文書化することに成功しました。

ファイル名にファイル内で使用されているパッケージと同名のものを使用すると作ったファイル自身が読み込まれてしまうんですね。
河合 遥己 への返信

Re: chemfigパッケージの使用時に出るエラーについて

- 帯田 木偶太 の投稿
》 ファイル名にファイル内で使用されているパッケージと同名のものを使用すると
》 作ったファイル自身が読み込まれてしまうんですね。

必ずしもそうではありません。
※  とはいえ、ソース・ファイルのベース・ネームとしては、利用する
    パッケージの名称と一致するものを避けるのが、無難なのかも
    しれません。

例えば、
    \documentclass{article}\relax
    \usepackage{graphicx}\relax
    \begin{document}
    Hello, world.
    \end{document}
という内容で graphicx.tex を作成してタイプセットしても
エラーは生じません。

一般に、\usepackage{PACKAGE} によって PACKAGE.sty というファイルが
読み込まれますが、chemfig パッケージの場合、chemfig.sty の中に
\input chemfig.tex という記述があるため、タイプセット対象が
chemfig.tex というファイル名であるとそちらを読み込んでしまうと
いうことです。

chemfig パッケージの場合、機能面での実体はすべて chemfig.tex の方に
あるようで、chemfig.sty は、LaTeX2e の規約に従ってパッケージを
ロードできるようにするための、いわばラッパーになっているようです。
おそらく、plain TeX では、ソース中に直接 \input chemfig として
利用できるようになっているのでしょう。