🔧 Silicom第二课堂 · 技术入门系列
Git 与 LaTeX
技术入门教程
从版本控制的演进历程到专业文档排版系统,系统掌握现代软件开发与学术写作的两大核心工具
在没有版本控制工具的时代,文件修改依赖人工记录和管理,容易出现版本混乱、修改丢失、协作困难等问题。
⚠️ 文件名混乱
"最终版"、"最终版_修改"、"最终版_不再改"等命名方式无法清晰追溯修改历史。
⚠️ 修改记录缺失
无法准确知道谁在什么时间修改了什么内容,责任归属难以追踪。
⚠️ 协作效率低下
多人同时修改同一文件时容易覆盖他人工作,合并修改需要大量人工比对。
⚠️ 版本回退困难
发现错误后难以快速恢复到之前的稳定版本,可能丢失大量有效工作成果。
手动版本记录表示例:版本1由张三在7月12日创建 → 版本2同日在18:09修改 → 版本3由李四在7月13日调整 → 版本4在7月14日更新。随着项目规模扩大,管理成本呈指数级增长,极易出错。
Git 是由 Linux 创始人 Linus Torvalds 于 2005 年创建的分布式版本控制系统,每个用户本地都保存完整的仓库副本。这种设计使得离线工作成为可能,同时通过高效的分支管理和合并机制,极大提升了多人协作的效率和安全性。
🌐 分布式架构
每个开发者的本地都保存完整的仓库副本和历史记录,不依赖中央服务器,确保数据安全。
🌿 高效分支管理
创建和切换分支几乎零成本,鼓励开发者为每个功能创建独立分支,互不干扰。
🔒 数据完整性
使用 SHA-1 哈希算法确保每次提交的内容不可篡改,任何修改都会被追踪。
🏆 行业标准
已成为全球开源项目和商业开发的标准工具,GitHub、GitLab 等平台均基于 Git 构建。
2005年之前
Linux 内核开发使用 BitKeeper,这是一款商业化的分布式版本控制软件
许可纠纷
由于许可协议纠纷,Linux 社区无法继续使用 BitKeeper,迫使 Linus 自行开发替代方案
两周奇迹
Linus Torvalds 仅用 两周时间完成 Git 初始版本,设计目标是高效处理大型分布式团队协作
开源爆发
Git 开源后迅速被广泛采用,成为 GitHub、Gitee 等代码托管平台的技术基础
| 对比维度 | Gitee(码云) | GitHub |
| 🌐 访问速度 | 国内访问快,无网络限制 | 国际访问可能较慢 |
| 🗣️ 语言支持 | 全中文界面,本土化文档 | 以英文为主 |
| 👥 开源协作 | 以国内开发者为主 | 全球开发者社区 |
| 🔄 CI/CD | Gitee Go | GitHub Actions(更成熟) |
| 📋 合规性 | 符合中国法律法规 | 遵循国际规则 |
📦 仓库 (Repository)
存储项目所有文件、版本历史和配置信息的完整容器,分为本地仓库和远程仓库。
💾 提交 (Commit)
每次变更的快照记录,包含修改内容、提交信息和唯一哈希值,不可篡改。
🌿 分支 (Branch)
独立的开发线,默认主分支为 main 或 master,可创建多个功能分支并行开发。
📂 三层结构
工作区 → 暂存区 → 仓库区。文件需先添加到暂存区再提交到仓库,实现精细控制。
Git 的标准工作流程包含四个核心步骤:
Step 1
工作区修改 — 在本地文件中编写代码或修改内容,此时变更尚未被 Git 追踪记录。
Step 2
暂存区添加 — 使用 git add 命令将修改文件添加到暂存区,准备进行下一次提交。
Step 3
仓库提交 — 使用 git commit 命令将暂存区内容提交到本地仓库,生成永久版本记录。
Step 4
远程同步 — 使用 git push 推送本地提交到远程仓库,使用 git pull 拉取他人更新。
💡 提示
实际使用时一般使用 GUI 按钮操作,且把暂存区隐含在系统内部,无需手动管理。
LaTeX 是基于 TeX 引擎的高级排版系统,由 Leslie Lamport 于 20 世纪 80 年代开发。TeX 由 Donald Knuth 创建,专注于高质量排版和数学公式处理。LaTeX 提供宏包和模板,让用户专注于内容编写而非格式调整。
📚 学术标准
LaTeX 广泛用于生成高质量的科技和数学学术论文文档,是学术界的标准工具。
⚙️ 底层引擎
TeX 是由 Donald Knuth 开发的底层排版引擎,擅长处理复杂数学公式和精细排版控制。
📝 内容优先
LaTeX 在 TeX 基础上提供更高层次抽象,用户只需关注内容无需担心排版细节。
📰 期刊推荐
已成为学术界标准工具,数学期刊、计算机会议论文普遍要求或推荐 LaTeX 投稿。
LaTeX 采用源代码编写加编译生成的工作模式,与 Word 的所见即所得完全不同。这种方式确保格式一致性,适合长文档和多人协作。
✍️ 编写源代码
使用文本编辑器编写包含 LaTeX 命令的 .tex 文件,定义文档结构和内容。
🔨 编译生成
使用编译器将源代码处理成 PDF 文件,自动处理排版、编号、引用等细节。
📄 示例代码
\documentclass 定义文档类型,\begin{document} 和 \end{document} 包裹正文内容。
📤 输出效果
编译后生成专业排版的 PDF 文件,格式统一且符合学术出版标准。
LaTeX 和 Word 代表两种不同的文档处理理念。LaTeX 内容与格式分离,自动化程度高,适合学术出版;Word 所见即所得,自由度高,适合日常办公。
| 特性 | LaTeX | Microsoft Word |
| 工作模式 | 源代码编译 | 所见即所得 (WYSIWYG) |
| 排版质量 | ⭐⭐⭐⭐⭐ 专业级 | ⭐⭐⭐ 良好 |
| 数学公式 | ⭐⭐⭐⭐⭐ 黄金标准 | ⭐⭐⭐ 公式编辑器 |
| 参考文献 | 自动管理 (BibTeX) | 需插件辅助 |
| 学习曲线 | 较陡峭 | 平缓 |
| 适用场景 | 学术论文、书籍、技术文档 | 日常办公、商务文档 |
| 协作编辑 | Overleaf 在线协作 | Office 365 在线协作 |
| 版本控制 | ✅ 纯文本,完美适配 Git | ❌ 二进制格式,难以 diff |
LaTeX 文档由文档类声明、导言区和正文区三部分组成。文档类决定整体格式,导言区加载宏包,正文区包含实际内容。
常见的 LaTeX 文件类型:
| 扩展名 | 用途 |
.tex | 主文件,包含文档的源代码 |
.cls | 类文件,定义文档的排版格式,通过 \documentclass 引入 |
.sty | 宏包文件,扩展功能,通过 \usepackage 引入 |
.bib | 参考文献库文件,用于存储文献条目 |
.log | 日志文件,记录编译过程中的信息 |
.aux | 辅助文件,存储交叉引用和目录信息 |
% 导言区
\documentclass[12pt, a4paper]{article} % 设置文档类型
\usepackage{ctex} % 支持中文
\title{我的第一篇文章} % 标题
\author{作者姓名} % 作者
\date{\today} % 日期
% 正文区
\begin{document}
\maketitle % 生成标题
你好,\LaTeX!这是一个简单的示例。
\end{document}
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
Hey world!
This is a first document.
\end{document}
💡 在线体验
推荐使用
Overleaf(www.overleaf.com)在线编辑和编译 LaTeX 文档,无需本地安装任何软件,即可获得即时预览效果。
中文文档模板:
\documentclass[12pt,a4paper]{ctexart}
\begin{document}
\tableofcontents
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\subsection{符号说明}
\subsection{模拟退火算法模型建立}
\subsection{模拟退火算法模型求解}
\section{结论}
\end{document}
SEU 毕业论文提示:
- 下载使用 TeXstudio 等免费软件
- 调整编译器为 XeLaTeX(更好支持中文)
- 下载相应的文件并更新识别的库
📋 Git 命令速查表
| 命令 | 说明 |
git init | 初始化新仓库 |
git clone <url> | 克隆远程仓库 |
git add <file> | 将文件添加到暂存区 |
git commit -m "msg" | 提交暂存区内容 |
git push | 推送到远程仓库 |
git pull | 拉取远程更新 |
git branch | 查看/创建分支 |
git checkout -b <name> | 创建并切换分支 |
git merge <branch> | 合并分支 |
git log --oneline | 查看提交历史 |
git status | 查看工作区状态 |
git diff | 查看修改差异 |
git reset --hard HEAD~1 | 回退到上一个版本 |
git stash | 暂存当前修改 |
LaTeX 常用命令速查
| 命令 | 说明 |
\documentclass{article} | 声明文档类型 |
\usepackage{ctex} | 引入中文支持 |
\title{}, \author{}, \date{} | 标题/作者/日期 |
\maketitle | 生成标题页 |
\section{}, \subsection{} | 章节标题 |
\textbf{}, \textit{} | 粗体/斜体 |
\begin{equation}...\end{equation} | 数学公式环境 |
\cite{}, \bibliography{} | 引用/参考文献 |
\begin{table}...\end{table} | 表格环境 |
\begin{figure}...\end{figure} | 图片环境 |
⚖️ 核心对比分析
GitHub 拥有全球开发者社区和成熟的 CI/CD 生态,适合开源项目和国际化协作;Gitee 在国内访问速度快、全中文界面,适合本土化项目和企业定制需求。
| 对比维度 | Gitee(码云) | GitHub |
| 🌐 访问速度 | 国内访问快,无网络限制 | 国际访问可能较慢 |
| 🗣️ 语言支持 | 全中文界面,本土化文档 | 以英文为主 |
| 👥 开源协作 | 以国内开发者为主 | 全球开发者社区 |
| 🔄 CI/CD | Gitee Go | GitHub Actions(更成熟) |
| 📋 合规性 | 符合中国法律法规 | 遵循国际规则 |
两者代表两种不同的文档处理理念:LaTeX 内容与格式分离,自动化程度高,适合学术出版;Word 所见即所得,自由度高,适合日常办公。
| 特性 | LaTeX | Microsoft Word |
| 工作模式 | 源代码编译 | 所见即所得 (WYSIWYG) |
| 排版质量 | ⭐⭐⭐⭐⭐ 专业级 | ⭐⭐⭐ 良好 |
| 数学公式 | ⭐⭐⭐⭐⭐ 黄金标准 | ⭐⭐⭐ 公式编辑器 |
| 参考文献 | 自动管理 (BibTeX) | 需插件辅助 |
| 学习曲线 | 较陡峭 | 平缓 |
| 适用场景 | 学术论文、书籍、技术文档 | 日常办公、商务文档 |
| 协作编辑 | Overleaf 在线协作 | Office 365 在线协作 |
| 版本控制 | ✅ 纯文本,完美适配 Git | ❌ 二进制格式,难以 diff |
🎯 选 Git 托管平台的建议
如果你的项目面向国际、需要成熟的CI/CD生态,选
GitHub;如果你的团队在国内、需要快速访问和中文支持,选
Gitee。
🎯 选文档工具的建议
写学术论文、毕业论文、数学/物理/计算机类文档,选
LaTeX;日常办公文档、需要频繁与他人协作编辑、追求快速上手,选
Word。