习题集生成器
用几行简单标记写下题目,习题集生成器会把它们转换成 LaTeX 文件。文件中的一个开关就能在习题集和参考答案之间切换,学生还可以得到每个小题都带答题框的作业模板。
# 标题 [分值] 开始一道题,(a) [分值] 开始一个小题,- 或 -* 是选项(* 表示正确),Solution: 开始答案。其他行是 LaTeX 文本。
LaTeX
\documentclass[11pt,letterpaper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{comment}
% true: solutions are printed (key); false: they are left out (problem set).
\newif\ifsolutions
\solutionsfalse
\ifsolutions
\newenvironment{solution}{\begin{proof}[Solution]}{\end{proof}}
\else
\excludecomment{solution}
\fi
\newcommand{\answerspace}{\ifsolutions\else\vspace{4cm}\fi}
% \problem{number}{title}{points}
\newcommand{\problem}[3]{\par\bigskip\noindent\textbf{Problem #1\ifx&\else: #2\fi}\ifx&\else\hfill\textit{(#3)}\fi\par\smallskip}
\pagestyle{fancy}
\fancyhf{}
\lhead{MATH 221: Linear Algebra}
\rhead{Problem Set 3}
\cfoot{\thepage}
\setlength{\parindent}{0pt}
\setlength{\parskip}{4pt}
\begin{document}
\begin{center}
{\large MATH 221: Linear Algebra}\\[2pt]
{\LARGE\bfseries Problem Set 3\ifsolutions\ --- Solutions\fi}\\[4pt]
Prof. A. Example \quad\textbullet\quad
Due Friday, October 10 \quad\textbullet\quad
Total: 20 points
\end{center}
\noindent Name: \rule{6cm}{0.4pt} \hfill Collaborators: \rule{5cm}{0.4pt}\par
\noindent\textit{Show all your work. You may discuss the problems, but write up your own solutions.}\par
\problem{1}{Eigenvalues}{10 points}
Let $A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix}$.
\begin{enumerate}[label=(\alph*)]
\item \textit{(4 points)} Find the characteristic polynomial of $A$.
\begin{solution}
$\det(A - \lambda I) = (2-\lambda)^2 - 1 = \lambda^2 - 4\lambda + 3$.
\end{solution}
\item \textit{(6 points)} Find the eigenvalues and an eigenvector for each.
\begin{solution}
$\lambda_1 = 1$ with $v_1 = (1,-1)^T$, and $\lambda_2 = 3$ with $v_2 = (1,1)^T$.
\end{solution}
\end{enumerate}
\problem{2}{Rank}{4 points}
Which matrix has rank 2?
\begin{enumerate}[label=(\Alph*)]
\item $\begin{pmatrix} 1 & 2 \\ 2 & 4 \end{pmatrix}$
\item $\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}$
\item $\begin{pmatrix} 0 & 0 \\ 0 & 0 \end{pmatrix}$
\end{enumerate}
\begin{solution}
Answer: (B).
Its determinant is $-2 \neq 0$.
\end{solution}
\problem{3}{Proof}{6 points}
Show that if $A$ is invertible, then $0$ is not an eigenvalue of $A$.
\begin{solution}
If $Av = 0$ for some $v \neq 0$, then $v = A^{-1}Av = 0$, a contradiction.
\end{solution}
\end{document}
题目:3 · 总分:20
在文件中,\solutionsfalse 隐藏所有答案,\solutionstrue 显示答案。
旧习题集只有纸质版或 PDF?把它们转换成 LaTeX。
转换文件如何制作习题集
写题目
每道题以 # 和标题开头,加上 [10] 表示分值,题干写在下面,使用 LaTeX,公式写在 $…$ 中。以 (a)、(b) 开头的行是小题,- 开头的行是选择题选项,以 Solution: 开头的行是答案。
选择要输出的版本
习题集隐藏所有答案,参考答案把答案印在每道题下面,作业答题模板则把答案换成供学生填写的空白答题框。三者来自同一份题目,习题集和参考答案永远一致。
编译并发放
下载 .tex 文件并用 pdfLaTeX 编译,例如上传到新的 Overleaf 项目。每页页眉都带有课程和习题集标题,第一页有学生姓名和合作者的填写线。
LaTeX 文件包含什么
一个开关控制答案
答案放在 solution 环境中。文件开头是 \solutionsfalse 时,comment 宏包会去掉它们;改成 \solutionstrue,同一份习题集就会输出为参考答案,每个答案像证明一样排版,并以方框结尾。
小题、选项和分值
小题用 enumitem 编为 (a)、(b)、(c),选项编为 (A)、(B)、(C)。分值可以写在题目或小题上;题目本身没有分值时会累加小题分值,页眉显示整份习题集的总分。
答题空白和题目标签
需要手写作答时,可以在每道题或小题后留出 4 或 8 cm 的空白;参考答案中会自动去掉。题目标签可以是 Problem、Exercise 或 Question,文件只使用 amsmath、amsthm、fancyhdr 等标准宏包。
给学生
作业答题模板
粘贴习题集中的题目,选择"作业答题模板"并填写姓名。每道题和每个小题都有自己的答题框,你只需写答案,姓名会显示在页眉中。
快速写公式
行内公式用 $…$,独立公式用 \[ … \],多行推导用 align,大多数作业用到 \frac、\sum、\int 和 \begin{pmatrix} 就够了。经常编译,漏掉的大括号就容易找到。
官方参考资料: The LaTeX Project · amsmath (CTAN)

习题集常见问题
- 什么是习题集?
- 习题集是作为作业布置的一组练习,通常每周一次,常见于数学、物理、计算机和经济学等课程。学生提交书面解答,教师之后常会发布参考答案。
- 怎么用 LaTeX 写数学作业?
- 选择"作业答题模板",粘贴题目,下载文件,在每个 solution 环境中写答案,公式写在 $ 之间。在 Overleaf 或用 pdflatex 编译,就能得到整洁的 PDF 提交。
- 用 LaTeX 写作业值得吗?
- 对数学较多的课程来说,掌握基础后通常值得:结果清晰易读,修改和复用都方便。刚开始会慢一些,题目很少的习题集手写可能更快。
- 怎么在 LaTeX 作业中添加题目?
- 在这里,新起一行写 # 和标题,小题用 (a)、(b)。在下载的文件中,复制一个 \problem{编号}{标题}{分值} 块及其内容,并修改编号。
- 怎么用 LaTeX 写习题集?
- 使用 article 文档类和 amsmath 写公式,每道题一个编号标题,小题用 enumerate,答案放在可以隐藏的环境中。习题集生成器会根据你的题目写出这样的文件。
- 怎么出习题集?
- 挑选练习本周内容的题目,先易后难,最后放一两道较难的题,标好分值,并在出题时同步写好答案。这样习题集和参考答案就同时完成了。
- 怎么完成习题集?
- 每个小题分开作答,写出步骤,说明每一步的理由,并标出最终结果。答题模板为每个小题提供单独的答题框,让习题集便于批改。
- 怎么添加可以隐藏的答案?
- 在题目或小题后写一行以 Solution: 开头的内容。文件会把它放进 solution 环境,\solutionsfalse 会去掉它,\solutionstrue 会显示它,一份源文件就能得到两个版本。
- 这个作业模板能在 Overleaf 中使用吗?
- 可以。下载 .tex 文件上传到新的 Overleaf 项目,它会用默认的 pdfLaTeX 编译,因为所用宏包都属于标准 TeX 发行版。
- 应该改用 LaTeX 的 exam 文档类吗?
- exam 文档类内置分值、评分表和答案,适合考试。这个习题集生成器输出的是只用少量宏包的普通 article 文件,更容易阅读和修改;两者都是不错的选择。
- 习题集可以包含选择题吗?
- 可以。每个选项写在以 - 开头的一行,正确选项用 -*。选项编为 (A)、(B)、(C),参考答案会在这道题的答案开头写出正确字母。
- 有免费的习题集生成器吗?
- 有,就是这个。它免费、无需账号,在浏览器中运行,用同一份题目生成 LaTeX 习题集、参考答案或答题模板。
- 分值怎么计算?
- 在题目标题后加 [10],或在小题字母后加 [3]。题目本身没有分值时取小题分值之和,页眉显示整份习题集的总分。
有整页笔记、扫描件或 PDF?把它转成能编译的 LaTeX。
转换文件