我目前正在学习日语,由于日语有不同的字符,所以我正在做一些练习,制作一个表格,其中每个单元格包含其中一个字符的发音,下面有一个空白框,我可以在打印表格后输入字符。
问题是我希望每次字符的顺序都不同,所以我正在寻找一种方法,这样我就可以创建一个 LaTeX 文档,该文档在编译时会给出一个像上图一样填充的页面,其中每个 A 都是给定列表中的某个项目。
如果 LaTeX 无法自行创建随机性,那么从其他地方提供随机性也是可以的,比如我简单地输入时间的单独文档或命令行参数。
如果这能让流程更简单,我创建了以下模板,希望文档能够遵循该模板。如果将\nextchar
宏替换为从一组给定字符中随机挑选一个字符的宏,我的问题就会得到解答。
\documentclass[a4paper]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{easytable}
\newcommand{\nextchar}{{\Huge A}}
\begin{document}
\pagenumbering{gobble}
\begin{center}
\begin{TAB}(e,12ex,5ex){|c|c|c|c|c|c|c|c|c|c|}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\end{TAB}
\end{center}
\end{document}
答案1
这是一个基于 LuaLaTeX 的解决方案。您必须将字符存储到charlist
(变量)中,如下所示。然后它将计算列表并使用您的\nextchar
宏随机选择字符。
\documentclass[a4paper]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{easytable}
\directlua{
charlist = {"A","B","C","D","E","F","G"}
maxv = 0
for _ in pairs(charlist) do maxv = maxv + 1 end
}
\newcommand{\nextchar}{{\Huge%
\directlua{
tex.print(charlist[math.random(1,maxv)])
}
}}
\begin{document}
\pagenumbering{gobble}
\begin{center}
\begin{TAB}(e,12ex,5ex){|c|c|c|c|c|c|c|c|c|c|}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar & \nextchar \\
&&&&&&&&&\\
\end{TAB}
\end{center}
\end{document}