LuaTeX r4744 と 最新の lualibs (2014/1/1) を使い,
====
%#!luatex
\directlua {require 'lualibs'}
\end
====
というソースを plain LuaTeX で処理させると
====
! LuaTeX error ...exmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua:2891:
bad argument #2 to 'insert' (position out of bounds)
stack traceback:
[C]: in function 'insert'
...exmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua:2891: in main chunk
[C]: in function 'dofile'
/opt/texlive/2013/texmf-dist/tex/luatex/lualibs/lualibs.lua:94: in function 'lo
admodule'
.../2013/texmf-dist/tex/luatex/lualibs/lualibs-extended.lua:117: in main chunk
[C]: in function 'dofile'
/opt/texlive/2013/texmf-dist/tex/luatex/lualibs/lualibs.lua:94: in function 'lo
admodule'
/opt/texlive/2013/texmf-dist/tex/luatex/lualibs/lualibs.lua:112: in main chunk
[C]: in function 'require'
[string "\directlua "]:1: in main chunk.
l.2 \directlua {require 'lualibs'}
?
====
というエラーが発生します.
====
\documentclass{article}
\directlua{require 'lualibs'}
\begin{document}
\end{document}
====
のように LaTeX にするとエラーなく処理されるのが不思議です.
> ! LuaTeX error ...exmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua:2891:
> bad argument #2 to 'insert' (position out of bounds)
ずっと以前,北川さんにメールしたことがありますが,
ここでエラーが出るので,私はよくわからないけれども
--ak
-- insert(arg,0,"--script")
-- insert(arg,0,"mtxrun")
--
insert(arg,1,"--script")
insert(arg,1,"mtxrun")
と変更して使用しています。
> bad argument #2 to 'insert' (position out of bounds)
ずっと以前,北川さんにメールしたことがありますが,
ここでエラーが出るので,私はよくわからないけれども
--ak
-- insert(arg,0,"--script")
-- insert(arg,0,"mtxrun")
--
insert(arg,1,"--script")
insert(arg,1,"mtxrun")
と変更して使用しています。
> ずっと以前,北川さんにメールしたことがありますが,
> insert(arg,1,"--script")
> insert(arg,1,"mtxrun")
そうでした.忘れてしまい申し訳ありません.
plain で問題の
====
if originalzero~="mtxrun" and originalzero~="mtxrun.lua" then
(問題の insert を含むブロック)
end
====
が実行されるのは不自然な気がしています.
なぜなら,insert(arg, 0, ...) がうまく動いたとしても
arg = { [0]='luatex', [1]='a' }
が,
arg = { [0]='mtxrun', [1]='--script', [2]='luatex', [3]='a' }
と変換されてしまいますが,mtxrun は ConTeXt のツールだからです.
また,LaTeX だと,そもそもこの if ブロックには到達しないようです.
なので,この if ブロックごとコメントアウトするのが
良いと思いますが,どうでしょうか?
> insert(arg,1,"--script")
> insert(arg,1,"mtxrun")
そうでした.忘れてしまい申し訳ありません.
plain で問題の
====
if originalzero~="mtxrun" and originalzero~="mtxrun.lua" then
(問題の insert を含むブロック)
end
====
が実行されるのは不自然な気がしています.
なぜなら,insert(arg, 0, ...) がうまく動いたとしても
arg = { [0]='luatex', [1]='a' }
が,
arg = { [0]='mtxrun', [1]='--script', [2]='luatex', [3]='a' }
と変換されてしまいますが,mtxrun は ConTeXt のツールだからです.
また,LaTeX だと,そもそもこの if ブロックには到達しないようです.
なので,この if ブロックごとコメントアウトするのが
良いと思いますが,どうでしょうか?