\barを\overlineに再定義しようと思い,同じディレクトリ内に次のようなファイルを用意しました:
%a.tex
\documentclass[lualatex,a4paper,ja=standard]{bxjsarticle}
\usepackage{hoge}
\begin{document}
Hello, TeX!
\end{document}
%hoge.sty
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hoge}[2018/09/12 by Naughie]
\renewcommand{\bar}[1]{\overline{#1}}
そしてこれらのファイルを
$ lualatex -halt-on-error -interaction=nonstopmode -file-line-error a.tex
でタイプセットしようとしたところ,「\barがすでに定義されている」というエラーが出てしまいました:
This is LuaTeX, Version 1.07.0 (TeX Live 2018)
restricted system commands enabled.
(./a.tex
LaTeX2e <2018-04-01> patch level 5
(using write cache: /Users/me/Library/texlive/2018/texmf-var/luatex-cache/
generic)(using read cache: /usr/local/texlive/2018/texmf-var/luatex-cache/gener
ic /Users/me/Library/texlive/2018/texmf-var/luatex-cache/generic)
luaotfload | main : initialization completed in 0.512 seconds
(/usr/local/texlive/texmf-local/tex/latex/bxjscls/bxjsarticle.cls
Document Class: bxjsarticle 2018/02/04 v1.7c BXJS document classes
(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/calc.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/texmf-local/tex/latex/bxjscls/bxjscompat.sty)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/type1cm/type1cm.sty)
LaTeX Font Warning: Font shape `TU/cmr/m/n' undefined
(Font) using `TU/lmr/m/n' instead on input line 913.
(load luc: /Users/me/Library/texlive/2018/texmf-var/luatex-cache/generic/f
onts/otl/lmroman10-regular.luc)
(/usr/local/texlive/2018/texmf-dist/tex/latex/geometry/geometry.sty
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifvtex.sty)
(/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty))
(/usr/local/texlive/texmf-local/tex/latex/bxjscls/bxjsja-standard.def
(/usr/local/texlive/texmf-local/tex/latex/bxjscls/bxjsja-minimal.def)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/luatexja.sty
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
(/usr/local/texlive/2018/texmf-dist/tex/luatex/ctablestack/ctablestack.sty))
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty))
(/usr/local/texlive/2018/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2018/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2018/texmf-dist/tex/generic/xkeyval/xkvutils.tex)))
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/atbegshi.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/everyhook/everyhook.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/svn-prov/svn-prov.sty))(load cach
e: /Users/me/Library/texlive/2018/texmf-var/luatexja/ltj-cid-auto-adobe-ja
pan1.luc)(load cache: /Users/me/Library/texlive/2018/texmf-var/luatexja/ex
tra_lmroman10-regular.luc)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/ltj-base.sty)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/tuenc.def)
(/usr/local/texlive/2018/texmf-dist/tex/latex/ms/everysel.sty)
ABD: EverySelectfont initializing macros)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty(lo
ad luc: /Users/me/Library/texlive/2018/texmf-var/luatex-cache/generic/font
s/otl/ipaexm.luc)(load cache: /Users/me/Library/texlive/2018/texmf-var/lua
texja/extra_ipaexmincho.luc)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua))
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/filehook/filehook.sty)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.
sty)))
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty(loa
d cache: /Users/me/Library/texlive/2018/texmf-var/luatexja/ltj-jisx0208.lu
c)))
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspe
c.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel/l3pdfmode.def)))
(/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/tuenc.def))
(/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.cfg)(load luc:
/Users/me/Library/texlive/2018/texmf-var/luatex-cache/generic/fonts/otl/lm
roman10-bold.luc)(load luc: /Users/me/Library/texlive/2018/texmf-var/luate
x-cache/generic/fonts/otl/ipaexg.luc)(load cache: /Users/me/Library/texliv
e/2018/texmf-var/luatexja/extra_ipaexgothic.luc)(load luc: /Users/me/Libra
ry/texlive/2018/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-italic.luc)
LaTeX Font Warning: Font shape `JT3/mc/m/it' undefined
(Font) using `JT3/mc/m/n' instead on input line 3764.
LaTeX Font Warning: Font shape `JY3/mc/m/it' undefined
(Font) using `JY3/mc/m/n' instead on input line 3764.
))
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/patches/lltjp-fontspec.
sty)
(/usr/local/texlive/2018/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspe
c-26h.sty)))) (./hoge.sty) (./a.aux)
*geometry* driver: auto-detecting
*geometry* detected driver: luatex
ABD: EverySelectfont initializing macros
./a.tex:3: LaTeX Error: Command `\bar' already defined.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.3 \begin{document}
2304 words of node memory still in use:
6 hlist, 4 rule, 1 dir, 24 kern, 811 attribute, 52 glue_spec, 49 attribute_l
ist, 4 if_stack, 1 write, 9 user_defined nodes
avail lists: 1:5,2:273,3:3,4:4,5:7,7:6,8:4,9:4
./a.tex:3: ==> Fatal error occurred, no output PDF file produced!
Transcript written on a.log.
さらに次のようなことも試しましたがどれも同じエラーになりました:
- 「\renewcommand{\bar}[1]{\overline{#1}}」を「\def\bar#1{\overline{#1}}」「\renewcommand{\bar}{\overline}」「\let\bar\overline」「\let\bar\relax\newcommand{\bar}[1]{\overline{#1}}」「\let\bar\relax\def\bar#1{\overline{#1}}」等に変える.
しかし以下のいずれかをすればエラーは起きません:
- \renewcommand を,hoge.sty ではなく a.tex に直接書く;
- ドキュメントクラスのオプションから ja=standard を消す;
- ドキュメントクラスのエンジンを lualatex から uplatex + dvipdfmx に変える;
- ドキュメントクラスを bxjsarticle から ltjsarticle や article に変える;
また,\bar を \hat に変えても同様のエラーになりますが,自分で \newcommand した命令を \renewcommand してもエラーにはなりません.他の命令の \renewcommand でもエラーになるかは確認していません.
個人的には些細なことであまり問題はないのですが,一体なぜこうなるでしょうか?
どうすればエラーを避けて \def\bar\overline とできますか?