Skip to content

breayhing/assignment-template

Repository files navigation

Assignment Template

一个用于生成学术作业的LaTeX模板项目,提供标准化的作业格式和自动化脚本。

📋 项目概述

这个模板项目旨在为学生提供一个标准化的作业格式,使用LaTeX排版,支持自动生成作业文档并推送到GitHub。

🎯 特性

  • 标准化格式: 使用LaTeX exam文档类,支持问题、分值和解答
  • 自动化生成: 通过脚本快速生成新作业项目
  • 课程管理: 一门课的所有作业组织在同一个仓库中
  • GitHub集成: 自动创建GitHub仓库并推送代码
  • 个性化配置: 可自定义学生信息和课程代码

📁 项目结构

assignment-template/
├── Template.tex              # LaTeX作业模板文件
├── create_assignment.sh      # 作业生成脚本
├── setup_github.sh          # GitHub仓库创建脚本
├── Course_README_Template.md # 课程README模板
├── .gitignore               # Git忽略文件配置
└── README.md                # 项目说明文档

🏗️ 工作流程说明

课程仓库结构

使用此模板后,每门课程将有以下结构:

MDS5110/                     # 课程仓库
├── README.md                # 课程说明文档
├── .gitignore              # Git配置
├── Assignment1/
│   └── Assignment1.tex     # 作业1
├── Assignment2/
│   └── Assignment2.tex     # 作业2
└── Assignment3/
    └── Assignment3.tex     # 作业3

创建流程

  1. 首次创建课程: 创建课程目录、初始化Git仓库、生成第一个作业
  2. 添加新作业: 在现有课程仓库中添加新的作业目录
  3. 版本控制: 每个作业自动提交到Git,便于追踪进度

🚀 使用方法

1. 生成新作业

使用 create_assignment.sh 脚本生成新的作业项目:

./create_assignment.sh <课程代码> <作业编号> [输出目录]

示例:

./create_assignment.sh MDS5110 1 ~/Desktop

这将在指定目录创建一个名为 MDS5110 的课程文件夹,包含:

  • 课程README文件
  • Assignment1子目录和LaTeX文件
  • Git仓库初始化
  • 基本的提交记录

后续添加作业(Assignment2, Assignment3等)

./create_assignment.sh MDS5110 2 ~/Desktop

这将在现有的 MDS5110 目录中添加 Assignment2 子目录,并自动提交到Git。

2. 推送到GitHub

方法一:自动化脚本(推荐)

在生成的课程目录中运行:

cd ~/Desktop/MDS5110
../setup_github.sh MDS5110

前提条件:

  • 安装GitHub CLI: brew install gh
  • 登录GitHub: gh auth login

方法二:手动推送

  1. 在GitHub上创建新仓库

  2. 在课程目录中运行:

git remote add origin https://github.com/YOUR_USERNAME/COURSE_NAME.git
git branch -M main
git push -u origin main

⚙️ 配置

个人信息配置

create_assignment.sh 中修改以下变量:

STUDENT_NAME="你的姓名"
STUDENT_ID="你的学号"

LaTeX模板自定义

Template.tex 文件包含以下可自定义部分:

  • 课程信息: 在文档顶部修改课程名称
  • 学生信息: 姓名和学号字段
  • 问题格式: 使用exam文档类的questions环境
  • 解答格式: 使用solution环境(可通过\printanswers控制显示)

📝 LaTeX模板说明

模板基于 exam 文档类,提供以下功能:

  • 问题编号: 自动编号的问题列表
  • 分值标记: 使用 \droppoints 显示分值
  • 分题结构: 支持 parts 环境创建子问题
  • 解答区域: 使用 solution 环境编写答案
  • 打印控制: 通过 \printanswers 控制是否显示答案

示例结构

\question[1 Mark] 问题描述?\droppoints

\begin{solution}
    答案内容
\end{solution}

\question[2 Marks] 多部分问题
\begin{parts}
    \part 子问题 a
    \part 子问题 b\droppoints
\end{parts}

\begin{solution}
    \begin{parts}
        \part 子问题 a 的答案
        \part 子问题 b 的答案
    \end{parts}
\end{solution}

🔧 依赖要求

必需组件

  • LaTeX发行版: TeX Live, MiKTeX 或 MacTeX
  • 编译器: pdflatex 或 xelatex
  • Git: 版本控制

可选组件

  • GitHub CLI: 用于自动化GitHub操作
  • LaTeX编辑器: VS Code (LaTeX Workshop插件), TeXShop, 或 Overleaf

📖 编译说明

在具体作业目录中运行以下命令编译LaTeX文档:

cd Assignment1
pdflatex Assignment1.tex

或使用LaTeX编辑器的编译功能。

批量编译

在课程根目录中编译所有作业:

find . -name "Assignment*.tex" -execdir pdflatex {} \;

🤝 贡献

欢迎提交Issue和Pull Request来改进这个模板项目。

📄 许可证

本项目采用MIT许可证,详见LICENSE文件。

💡 提示

  • 课程组织: 每门课程创建一个独立的GitHub仓库,所有作业在同一仓库中管理
  • 目录命名: 建议使用课程代码作为仓库名称,如MDS5110CS101
  • 定期备份: 定期推送到GitHub进行备份
  • 版本追踪: 每次添加作业都会自动创建Git提交,方便追踪进度
  • **可以根据具体课程要求调整LaTeX模板格式

快速开始示例:

# 1. 克隆模板
git clone https://github.com/breayhing/assignment-template.git
cd assignment-template

# 2. 生成第一个作业(创建课程仓库)
./create_assignment.sh CS101 1 ~/Documents

# 3. 进入课程目录
cd ~/Documents/CS101

# 4. 推送到GitHub
../setup_github.sh CS101

# 5. 添加第二个作业
cd ../assignment-template
./create_assignment.sh CS101 2 ~/Documents

# 6. 推送更新
cd ~/Documents/CS101
git push origin main

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors