TeX - LaTeX Asked on February 26, 2021
I am aware of the many crazy callbacks in LuaTeX, but can they be used to solve the following problem?
I would like a LuaLaTeX script that works the following way. Suppose my LaTeX document is called myfile.tex
. Then the script should do the following:
myfile_new.tex
(this is easy, of course, and can be done using classical TeX.)myfile.tex
is being compiled, each line of this file is being copied to the file myfile_new.tex
, so it becomes a copy of myfile.tex
– but there is a twist:writetonewfile
, taking one argument, which writes that argument to the file myfile_new.tex
in the exact position where the command was found.Let us see an example: Suppose this is my file myfile.tex
:
documentclass{article}
directlua{ ... } % insert some Lua code
newcommandwritetonewfile[1]{ ... } % insert appropriate Lua code
newcommandfoo{This is foo.writetonewfile{This was foo.}}
newcommandfoobar[1]{This is foobar.writetonewfile{This was #1.}}
begin{document}
Hello World. writetonewfile{And A Happy New Year.}
foo
foobar{Hello World}
end{document}
After compiling this with LuaLaTeX, I would like myfile_new.tex
to contain the following:
documentclass{article}
directlua{ ... } % insert some Lua code
newcommandwritetonewfile[1]{ ... } % insert appropriate Lua code
newcommandfoo{This is foo.writetonewfile{This was foo.}}
newcommandfoobar[1]{This is foobar.writetonewfile{This was #1.}}
begin{document}
Hello world. writetonewfile{And A Happy New Year.}And A Happy New Year.
fooThis was foo.
foobar{Hello World}This was Hello World.
end{document}
(Of course, if I actually compile this document, it will complain that fooThis
was never def
’ed, but you see the idea.)
A Lua script that just searches and replaces in the file will not suffice: What I want is an actual LaTeX command writetonewfile
. In particular, if I use expl3
and redefine the command as mydoc_write_to_new_file:n
, I should be able to define commands like mydoc_write_to_new_file:x
etc. and expand the code before it gets written to the new file.
Is this possible?
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP