
Creé una máquina de preguntas elegida al azar usando LuaLaTeX
y beamer
para la parte de la audiencia que produce un pdf
cuadro por pregunta, una diapositiva por segundo para mostrar la cuenta regresiva: tiene pdf
múltiples páginas redundantes.
Me gustaría producir en paralelo un resumen de este cuestionario, en formato de artículo A4, con solo las preguntas y las respuestas. Todo esto se almacena en una tabla lua que uso una vez para crear de beamer
pdf
forma natural, puedo reutilizarla para producir el resumen, pero hasta donde yo sé, solo se puede producir uno pdf
a la vez, me gustaría almacenar el resumen. en un digest.tex
archivo separado y compílelo más tarde.
¿Cuál es el comando o el truco que redirigirá tex.print
a un archivo separado o producirá dos pdf
archivos diferentes a la vez si es posible?
Suma
Digamos que tengo una lua
mesa:
t = {"Valeur app. par défaut à l'unité",69841.68, 69841 }
En Beamer utilizo nodos en una imagen tikz para mostrar la pregunta, ver más abajo. Pero también quiero algo así en un archivo separado (clase de artículo):
tex.print (t[1]..":".."\\num{"..t[2].."}\\hfill"..t[3])
Para tener un resumen del cuestionario.
Respuesta1
Lua tiene una io
biblioteca que parece funcionar con LuaLaTeX. Aunque realmente no sé cuál es el uso recomendado.
% !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}
Respuesta2
Es posible utilizar las TeX
rutinas estándar de manejo de archivos como \newwrite
y \newread
y \openout
etc., permitiendo LuaLaTeX
escribir el código en el archivo como si debiera escribirse 'en' el archivo actual (bueno, la línea de ensamblaje de procesamiento de entrada TeX ;-))
\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}
Este ejemplo genera foolua.tex
, el único contenido aquí es "Hola mundo".
Respuesta3
Sólo es necesario escapar de la barra invertida:
\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}