🔧 Silicom第二课堂 · 技术入门系列

GitLaTeX
技术入门教程

从版本控制的演进历程到专业文档排版系统,系统掌握现代软件开发与学术写作的两大核心工具

Git 分布式版本控制
LaTeX 专业排版系统
📚 19个知识点
⏱️ 约2小时
🔧
Git · 背景

版本控制的痛点:手动管理的混乱

在没有版本控制工具的时代,文件修改依赖人工记录和管理,容易出现版本混乱、修改丢失、协作困难等问题。

⚠️ 文件名混乱
"最终版"、"最终版_修改"、"最终版_不再改"等命名方式无法清晰追溯修改历史。
⚠️ 修改记录缺失
无法准确知道谁在什么时间修改了什么内容,责任归属难以追踪。
⚠️ 协作效率低下
多人同时修改同一文件时容易覆盖他人工作,合并修改需要大量人工比对。
⚠️ 版本回退困难
发现错误后难以快速恢复到之前的稳定版本,可能丢失大量有效工作成果。

手动版本记录表示例:版本1由张三在7月12日创建 → 版本2同日在18:09修改 → 版本3由李四在7月13日调整 → 版本4在7月14日更新。随着项目规模扩大,管理成本呈指数级增长,极易出错。

🔀
Git · 核心概念

什么是 Git?分布式版本控制系统

Git 是由 Linux 创始人 Linus Torvalds 于 2005 年创建的分布式版本控制系统,每个用户本地都保存完整的仓库副本。这种设计使得离线工作成为可能,同时通过高效的分支管理和合并机制,极大提升了多人协作的效率和安全性。

🌐 分布式架构
每个开发者的本地都保存完整的仓库副本和历史记录,不依赖中央服务器,确保数据安全。
🌿 高效分支管理
创建和切换分支几乎零成本,鼓励开发者为每个功能创建独立分支,互不干扰。
🔒 数据完整性
使用 SHA-1 哈希算法确保每次提交的内容不可篡改,任何修改都会被追踪。
🏆 行业标准
已成为全球开源项目和商业开发的标准工具,GitHub、GitLab 等平台均基于 Git 构建。
📜
Git · 历史

Git 的诞生:从 BitKeeper 到开源革命

2005年之前
Linux 内核开发使用 BitKeeper,这是一款商业化的分布式版本控制软件
许可纠纷
由于许可协议纠纷,Linux 社区无法继续使用 BitKeeper,迫使 Linus 自行开发替代方案
两周奇迹
Linus Torvalds 仅用 两周时间完成 Git 初始版本,设计目标是高效处理大型分布式团队协作
开源爆发
Git 开源后迅速被广泛采用,成为 GitHub、Gitee 等代码托管平台的技术基础
⚖️
Git · 平台对比

代码托管平台:GitHub 与 Gitee 对比

对比维度Gitee(码云)GitHub
🌐 访问速度国内访问快,无网络限制国际访问可能较慢
🗣️ 语言支持全中文界面,本土化文档以英文为主
👥 开源协作以国内开发者为主全球开发者社区
🔄 CI/CDGitee GoGitHub Actions(更成熟)
📋 合规性符合中国法律法规遵循国际规则
💡
Git · 基础

Git 核心概念:仓库、提交与分支

📦 仓库 (Repository)
存储项目所有文件、版本历史和配置信息的完整容器,分为本地仓库和远程仓库。
💾 提交 (Commit)
每次变更的快照记录,包含修改内容、提交信息和唯一哈希值,不可篡改。
🌿 分支 (Branch)
独立的开发线,默认主分支为 main 或 master,可创建多个功能分支并行开发。
📂 三层结构
工作区 → 暂存区 → 仓库区。文件需先添加到暂存区再提交到仓库,实现精细控制。
🔄
Git · 工作流

Git 标准工作流程图解

Git 的标准工作流程包含四个核心步骤:

Step 1
工作区修改 — 在本地文件中编写代码或修改内容,此时变更尚未被 Git 追踪记录。
Step 2
暂存区添加 — 使用 git add 命令将修改文件添加到暂存区,准备进行下一次提交。
Step 3
仓库提交 — 使用 git commit 命令将暂存区内容提交到本地仓库,生成永久版本记录。
Step 4
远程同步 — 使用 git push 推送本地提交到远程仓库,使用 git pull 拉取他人更新。
💡 提示
实际使用时一般使用 GUI 按钮操作,且把暂存区隐含在系统内部,无需手动管理。
📝
LaTeX · 概述

什么是 LaTeX?

LaTeX 是基于 TeX 引擎的高级排版系统,由 Leslie Lamport 于 20 世纪 80 年代开发。TeX 由 Donald Knuth 创建,专注于高质量排版和数学公式处理。LaTeX 提供宏包和模板,让用户专注于内容编写而非格式调整。

📚 学术标准
LaTeX 广泛用于生成高质量的科技和数学学术论文文档,是学术界的标准工具。
⚙️ 底层引擎
TeX 是由 Donald Knuth 开发的底层排版引擎,擅长处理复杂数学公式和精细排版控制。
📝 内容优先
LaTeX 在 TeX 基础上提供更高层次抽象,用户只需关注内容无需担心排版细节。
📰 期刊推荐
已成为学术界标准工具,数学期刊、计算机会议论文普遍要求或推荐 LaTeX 投稿。
LaTeX · 工作流

非所见即所得:LaTeX 的工作方式

LaTeX 采用源代码编写加编译生成的工作模式,与 Word 的所见即所得完全不同。这种方式确保格式一致性,适合长文档和多人协作。

✍️ 编写源代码
使用文本编辑器编写包含 LaTeX 命令的 .tex 文件,定义文档结构和内容。
🔨 编译生成
使用编译器将源代码处理成 PDF 文件,自动处理排版、编号、引用等细节。
📄 示例代码
\documentclass 定义文档类型,\begin{document} 和 \end{document} 包裹正文内容。
📤 输出效果
编译后生成专业排版的 PDF 文件,格式统一且符合学术出版标准。
⚖️
LaTeX · 对比

LaTeX 与 Microsoft Word 特性对比

LaTeX 和 Word 代表两种不同的文档处理理念。LaTeX 内容与格式分离,自动化程度高,适合学术出版;Word 所见即所得,自由度高,适合日常办公。

特性LaTeXMicrosoft Word
工作模式源代码编译所见即所得 (WYSIWYG)
排版质量⭐⭐⭐⭐⭐ 专业级⭐⭐⭐ 良好
数学公式⭐⭐⭐⭐⭐ 黄金标准⭐⭐⭐ 公式编辑器
参考文献自动管理 (BibTeX)需插件辅助
学习曲线较陡峭平缓
适用场景学术论文、书籍、技术文档日常办公、商务文档
协作编辑Overleaf 在线协作Office 365 在线协作
版本控制✅ 纯文本,完美适配 Git❌ 二进制格式,难以 diff
🏗️
LaTeX · 基础

LaTeX 文档基本结构解析

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}
👋
LaTeX · 入门

第一个 LaTeX 文档:Hello World

\documentclass{article}
\usepackage[T1]{fontenc}

\begin{document}
Hey world!
This is a first document.
\end{document}
💡 在线体验
推荐使用 Overleaf(www.overleaf.com)在线编辑和编译 LaTeX 文档,无需本地安装任何软件,即可获得即时预览效果。
🚀
LaTeX · 进阶

进阶示例与实用技巧

中文文档模板:

\documentclass[12pt,a4paper]{ctexart}
\begin{document}
\tableofcontents
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\subsection{符号说明}
\subsection{模拟退火算法模型建立}
\subsection{模拟退火算法模型求解}
\section{结论}
\end{document}

SEU 毕业论文提示:

  • 下载使用 TeXstudio 等免费软件
  • 调整编译器为 XeLaTeX(更好支持中文)
  • 下载相应的文件并更新识别的库