Files
ouc_latex_template/README.md
T

169 lines
6.3 KiB
Markdown
Raw Normal View History

2026-11-01 08:52:54 +08:00
# 中国海洋大学 LaTeX 模板库
2026-10-22 08:15:07 +00:00
17 个文档模板 + 一份公共字体。换机器、换系统、换 Overleaf,编译结果一致。
2026-11-01 08:52:54 +08:00
## 目录结构
2026-11-01 08:52:54 +08:00
```
ouc_latex_template/
├── fonts.tex ← 公共字体入口,所有模板都引用它
├── fonts/ ← 字体文件(唯一的字体来源)
├── build.sh ← 编译脚本
├── verify_all.sh ← 全库编译检查
│
├── 会议预算表/ ┐
├── 劳务发放说明表/ │
├── 年度考核登记表/ │
├── 特殊事项说明表/ │
├── 成绩构成说明/ │
├── 试卷/ │
├── 试卷归档封面/ │ 17 个模板
2026-11-01 08:52:54 +08:00
├── 试卷归档目录/ │ 每个目录自成一体
├── 课程大纲/ │ 各自带 README
├── 课程执行大纲/ │
├── 课程教学日历/ │
├── 教材/ │
├── 科技报告/ │
├── 幻灯片/ │
├── 简历/ │
└── 点名册/ ┘
2026-11-01 08:52:54 +08:00
```
## 模板清单
| 模板 | 用途 | 主文件 |
|---|---|---|
2026-11-01 08:52:54 +08:00
| `会议预算表/` | 会议经费预算表 | `会议预算表.tex` |
| `劳务发放说明表/` | 劳务费发放说明 | `劳务发放说明表.tex` |
| `年度考核登记表/` | 教职工年度考核登记表 | `年度考核登记表.tex` |
| `特殊事项说明表/` | 报销用特殊事项说明表 | `特殊事项说明表.tex` |
| `成绩构成说明/` | 课程成绩构成说明 | `成绩构成说明.tex` |
| `试卷/` | 试卷 + 参考答案与评分标准 | `试卷题型示例.tex`、`参考答案与评分标准示例.tex` |
| `试卷归档封面/` | 试卷袋归档封面 | `试卷归档封面.tex` |
| `试卷归档目录/` | 试卷袋归档目录 | `试卷归档目录.tex` |
| `课程大纲/` | 本科生课程大纲 | `课程大纲.tex` |
| `课程执行大纲/` | 课程执行大纲 | `课程执行大纲.tex` |
| `课程教学日历/` | 课程教学日历 | `课程教学日历.tex` |
| `教材/` | 教材、专著(成书排版) | `教材.tex` |
| `科技报告/` | 科技报告、实验讲义 | `report.tex` |
| `幻灯片/` | Beamer 演示文稿(16:9) | `slides.tex` |
| `简历/` | 个人简历 | `简历.tex` |
| `点名册/` | 课程点名册(A4 横向,18 周考勤) | `点名册.tex` |
## 编译
2026-11-01 08:52:54 +08:00
在**模板目录内**编译,不要在仓库根目录编译。
```bash
2026-11-01 08:52:54 +08:00
cd 课程大纲
xelatex 课程大纲.tex
```
2026-11-01 08:52:54 +08:00
或用编译脚本(在仓库根目录执行):
2026-11-01 08:52:54 +08:00
```bash
bash build.sh 课程大纲 # 编单个模板
bash build.sh all # 编全部,输出汇总
bash verify_all.sh # 检查全部:错误数 / Overfull / 页数
```
2026-11-01 08:52:54 +08:00
脚本会自动判断该跑几遍,不用手记。
### 各模板编译遍数
| 模板 | 遍数 | 原因 |
|---|---|---|
| 表格类(会议预算表、劳务发放说明表、年度考核登记表、特殊事项说明表、成绩构成说明、试卷归档封面、试卷归档目录) | 1 | 无目录、无交叉引用 |
| `课程大纲`、`课程执行大纲`、`课程教学日历` | 2 | 有目录与交叉引用 |
| `试卷` | 2 | 有题号交叉引用 |
| `幻灯片` | 2 | Beamer 需要 |
| `教材`、`科技报告` | 4 | 有参考文献:`xelatex → bibtex → xelatex → xelatex` |
## 字体
2026-11-01 08:52:54 +08:00
所有模板的字体都来自 `fonts/`,**不依赖操作系统装了什么字体**。
2026-11-01 08:52:54 +08:00
### 字体目录
2026-11-01 08:52:54 +08:00
```
fonts/
├── ouc-serif/ OUC Serif 中文宋体(正文)
├── ouc-sans/ OUC Sans 中文黑体(标题)
├── ouc-kai/ OUC Kai 中文楷体(代斜体)
├── zhuque-fangsong/ Zhuque Fangsong 中文仿宋
├── tex-gyre-termes/ TeX Gyre Termes 西文衬线(Times 等价)
├── cochineal/ Cochineal 西文衬线(Minion 风格)
├── harmonyos-sans/ HarmonyOS Sans 幻灯片、科技报告用
└── fontawesome/ Font Awesome 简历的图标符号
```
2026-11-01 08:52:54 +08:00
### 怎么引用字体
2026-11-01 08:52:54 +08:00
两行固定写法,放在 `\documentclass` 之后、`\begin{document}` 之前:
```latex
\documentclass[UTF8,fontset=none]{ctexart}
\input{../fonts.tex}
\begin{document}
```
- `fontset=none` 必须写。不写的话 ctex 会先按系统字体配一套。
- `../fonts.tex` 是**相对模板目录**的路径,所以在模板目录内编译。
- 不要在仓库根直接 `xelatex 课程大纲/课程大纲.tex`,`../` 会指错。
`fonts.tex` 可以重复引用,多个 sty 各自引用不会冲突。
### 可用的字体命令
`\input{../fonts.tex}` 之后可以用这些命令随时切换字族:
| 命令 | 效果 | 实际字体 |
|---|---|---|
| `\songti` | 中文宋体 | OUC Serif |
| `\heiti` | 中文黑体 | OUC Sans |
| `\kaiti` | 中文楷体 | OUC Kai |
| `\fangsong` | 中文仿宋 | Zhuque Fangsong |
| `\tnr` | 西文衬线 | TeX Gyre Termes |
| `\tnrb` | 西文衬线粗体 | TeX Gyre Termes Bold |
| `\hm` | 鸿蒙黑体(中文) | HarmonyOS Sans SC |
| `\hmlatin` | 鸿蒙黑体(西文) | HarmonyOS Sans |
| `\oucUseCochineal` | 正文西文换成 Cochineal | Cochineal |
默认正文:中文 OUC Serif + 西文 TeX Gyre Termes。
用法示例:
```latex
{\heiti 这段用黑体}
{\kaiti 这段用楷体}
```
### 换正文西文字体
```latex
\input{../fonts.tex}
\oucUseCochineal % 正文西文改为 Cochineal
```
只有 `简历/` 用这个,其余模板保持 Termes。
## 环境要求
- TeX Live 2022 或更新
- 编译引擎固定 **XeLaTeX**,不能用 pdfLaTeX 或 LuaLaTeX
- 不需要装 CTeX 套装,不需要系统装中文字体
## 新增模板
1. 建目录,放 `.tex` 主文件 + `.sty` 版式包
2. 导言区写 `\documentclass[UTF8,fontset=none]{ctexart}` + `\input{../fonts.tex}`
3. 编译确认 `bash build.sh 你的模板名`
4. 把模板加进 `verify_all.sh` 的 `TARGETS` 列表
5. 写 `README.md`,格式参考现有模板
## 约定
- 页面 A4,唯 `幻灯片/` 为 16:9
- 表格类模板正文 12pt,`教材/` 为 10pt
- 中文正文用宋体,标题用黑体
- 示例内容全部是虚构数据(虚构教师、虚构课程、统一用 `example.net` 邮箱与 `138 0000 0000` 手机号),替换成自己的内容即可