我是一名教师,我希望使用向量代数自动创建一些家庭作业问题。我想使用 csv 文件(我可以对其进行预处理以输入到 tex),格式如下:
“问题...”,“答案提示”,“提示”,“向量1”,“向量2”,“结果”
“问题...”,“答案提示”,“提示”,“向量1”,“向量2”,“结果”
“问题...”,“答案提示”,“提示”,“向量1”,“向量2”,“结果”
...
并输出一组页面(或图像?)如下面的示例。我不确定从哪里开始,甚至不确定 TeX 是否是正确的选择,但我觉得它是正确的。也许是 python 和 TeX 的组合?是否有最新的库可以执行此操作?最佳实践 TeX 包?已经设置为从 csv 接收输入的 TeX 包?
答案1
这些包提供了处理 CSV 的能力。
- 数据工具
- csvsimple
- 解析
这些包或类提供了设置作业问题数据库的功能
- 考試(課程)
- 普罗布索恩
- 练习
按照您的建议保留 CSV 的优点是,您可以在简单到像文本编辑器一样的工具中创建它,也可以在复杂到像关系或 UI 设计的数据库一样的工具中创建它。缺点可能是,您无法或很难建立仅基于更改 CSV 文件中的文本输入而动态显示数字的能力。
这是一个基本示例datatool
。将其放在一个文件夹中。添加两个名为 fig1.pdf 和 fig2.pdf 的 .pdf 图像文件。编译 .tex 文件。
\documentclass{article}
% datatool does the database work
\usepackage{datatool}
% graphix does graphics
\usepackage{graphicx}
% short command to put a figure
\newcommand*{\putfig}[2][1]{%
\includegraphics[width=#1\textwidth]{#2}
}
\newcommand*{\ifmissing}[2][]{\DTLifnull{#2}{#1}{#2}}
% the file contents
\begin{filecontents*}[overwrite]{questions.csv}
question, answerline, hint1, hint2, figure
How much was it?, value here \rule{1cm}{1pt}, hint a, , \putfig{fig1}
How much is it now?, value here \rule{1cm}{1pt}, hint 1, hint 2
How much will it be later?, value here \rule{1cm}{1pt}, , ,\putfig[0.4]{fig2}
\end{filecontents*}
% load the database to the document
\DTLloaddb{problems}{questions.csv}
\begin{document}
\begin{itemize}
\DTLforeach{problems}{%
\q=question, \a=answerline, \ha=hint1, \hb=hint2, \f=figure}
{%
% question
\item \q
% hints (if present)
\ifmissing{\ha} \ifmissing{\hb}
% figure (if present)
\ifmissing[no figure b here]{\f}
\a
}
\end{itemize}
\end{document}
答案2
让我建议一个流程。
- 定义存储在 CSV 中的变量
- 创建一个 Python 脚本来生成 CSV。(或者可能是 JSON?)
- 使用 CSV 中任意一行的数据创建一个可用的 LaTeX 示例。此示例稍后将用作模板。
- 编写一个 Python 脚本,使用 csv 中的数据填充模板。
- 将完成的文本写入 .tex 文件 6 使用脚本运行 LaTeX。
作为一名教师,我几年前也做过类似的事情,创建了二次方程列表。我为自己的成就感到高兴,但最终,这些(不可计数的)例子中有多少将在学校过程中发挥作用?这种自动化真的需要吗?你打算把它们打印在纸上吗?也许使用 HTML + CSS + JavaScript + MathJaxx 的 Web 应用程序对你的学生更有价值。