
私は、質問ごとに 1 つのフレーム、カウント ダウンを表示するために 1 秒あたり 1 つのスライドを含むを生成する、ランダムに選択されるクイズ マシンを視聴者部分に使用しLuaLaTeX
て作成しました。これにより、複数の冗長なページが作成されます。beamer
pdf
pdf
同時に、このクイズのダイジェスト形式を、質問と回答のみの A4 記事形式で作成したいと思います。このすべての内容は、beamer
pdf
当然のことながら、作成時に一度使用する lua テーブルに保存され、ダイジェストを作成するために再利用できます。ただし、私の知る限り、一度に作成できるのは 1 つだけです。ダイジェストを別のファイルに保存し、後でコンパイルしたいpdf
と思います。digest.tex
tex.print
別々のファイルにリダイレクトするコマンドやトリック、またはpdf
可能であれば一度に 2 つの異なるファイルを生成するコマンドやトリックは何ですか?
追加
たとえば、次のようなlua
テーブルがあるとします。
t = {"Valeur app. par défaut à l'unité",69841.68, 69841 }
Beamer では、質問を表示するために tikz 画像内のノードを使用します (以下を参照)。ただし、別のファイル (記事クラス) でも同様のものが必要です。
tex.print (t[1]..":".."\\num{"..t[2].."}\\hfill"..t[3])
クイズのダイジェストを取得します。
答え1
Luaio
には LuaLaTeX で動作すると思われるライブラリがあります。ただし、推奨される使用法が何であるかはよくわかりません。
% !TeX program = lualatex
\documentclass{article}
\begin{document}
Foo.
\directlua{
out = io.open('somefile.tex','a')
out:write('Hello world. ')
out:write('This is different')
io.close(out)
}
\input{somefile}
\end{document}
答え2
やなどTeX
の標準ファイル ハンドル ルーチンを使用して、現在のファイル (つまり、TeX 入力処理アセンブリ ライン) に書き込むかのようにファイルにコードを書き込むことができます。\newwrite
\newread
\openout
LuaLaTeX
\documentclass{article}
\usepackage{luacode}
\newwrite\luageneratedfile
\begin{document}
\immediate\openout\luageneratedfile=foolua.tex
\immediate\write\luageneratedfile{%
\directlua{%
tex.print("Hello World")
}
}
\immediate\closeout\luageneratedfile
\end{document}
この例では が生成されますがfoolua.tex
、ここでのコンテンツは「Hello World」のみです。
答え3
バックスラッシュのみをエスケープする必要があります。
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{luacode}
\begin{luacode}
function OpenFile(mode,name) out=io.open(name,mode) return end
function CloseFile() io.close(out) return end
\end{luacode}
\newcommand\OpenFile[2][a]{\luaexec{OpenFile('#1','#2')}}
\def\CloseFile{\luaexec{CloseFile()}}
\def\WriteLn#1{\luaexec{out:write('\string#1'.."\string\n")}}
\def\Write#1{\luaexec{out:write('\string#1')}}
\begin{document}
Foo.
\OpenFile[w]{somefile.tex}
\WriteLn{Hello world from \\LaTeX. }
\WriteLn{This is different}%
\Write{Hello world $\\sqrt{1+x}$. }
\Write{This is different}
\CloseFile
\VerbatimInput{somefile}
\OpenFile{somefile.tex}
\WriteLn{Hello world from \\LaTeX. }
\WriteLn{This is different}%
\Write{Hello world $\\sqrt{1+x}$. }
\Write{This is different}
\CloseFile
%
\VerbatimInput{somefile}
\end{document}