LaTeX 入门(一)| 重剑无锋,大巧不工

作者: 弈笙0427 | 来源:发表于2019-01-11 13:47 被阅读5次

    写在前面的话

    关于是否开 LaTeX 教程系列文章,我纠结了很久。相比傍一傍热词的科普性文章,技术类的文章太过枯燥无趣,阅读量寥寥无几。辛苦写出来的东西没人看,实在给作者以打击。

    12月22日我特地转发了一篇稍微偏技术一点的文章试试水,打开率不到10%。也许,公众号本就是用来娱乐大众的产物。

    最后,我把取舍权交给了交流群里的小伙伴儿们,参与投票人数为42人。大多数同学都投票希望出教程的同时再发学习资料。

    我知道其中不乏南郭先生,但希望各位同学对自己投的票负责。当然,我也会尽力把文章写的有趣一点。

    2017年我第一次从我的数模教练那听说 LaTeX 排版的强大,转眼间,已经过去快两年了,也算初窥门径,感觉要学精,实在是难登蜀道,其知识体系浩如烟海。

    毕业在即,准备用 LaTeX 排毕业论文,但有段时间不用,知识难免遗忘。遂开此系列,也当纪念我的学习生涯吧:

    1. 此系列的每篇文章必会用心耕耘,不追求文章数量,宁缺毋滥;不追求更新速度,欲速则不达。
    2. 在我学习 LaTeX 的途中,走了不少的弯路,欲通过此系列,给初学者指明一条相对明了的学习路径。
    3. 阅读完本系列文章,不可能熟练地掌握 LaTeX ,关键在自己动手实践。道行深浅,修行在个人。
    4. 鄙人才疏学浅,文中谬误之处,敬请海涵。若有高手指点一 二,在下感激不尽。
    满纸荒唐言,一把辛酸泪。都云作者痴,谁解其中味?——曹雪芹

    1. 简介

    任何技术的产生与发展都是有血有肉的,忽略这段历史,仅仅学习冰冷的技巧,无疑是悲哀的。千古兴亡多少事?悠悠,不尽长江滚滚流。

    关于 LaTeX 的发展史及与所见即所得系统(WYSIWYG),比如微软的 Word 间的较量,我已在链接1,链接2,两篇文章中说的很清楚了,不再赘述。有兴趣的同学可以移步阅读。

    此处,关于 TEX 做一个简单小结:

    • 免费
    • TEX 是最精确、最高级的标记语言
    • 高质量,版面更专业,数学公式尤其赏心悦目
    • 结构化,它的文档结构清晰
    • 跨平台,它几乎可以运行于所有操作系统
    • 语法不如 HTML 和 XML 严谨、清晰
    • 过程繁琐,需要编译,不能实时查看结果

    群里有人问我 TeX、LaTeX、CTEX、TeX Live 之间有什么区别?这明显是没看过我前两篇文章呀,怀着万分悲痛的心情,再给大家小结一下哈:

    • TEX 是一种语言也是一个排版引擎 ,引擎的基本功能就是把字排成行,把行排成页,涉及到断字、断行、分页等算法。
    • LaTeX 是 TEX 的众多宏集之一,只需引用一小段代码,就能实现事先定义好的功能。
    • CTEX 和 TeX Live 都是 TEX 的套装,其中包含了LaTeX,pdfLaTeX,XELaTeX等多种宏集,字体,文档模板,辅助程序等。

    [注]: TEX - pdfTeX - XETeX - LuaTeX 都是排版引擎,按照先进程度递增(LuaTeX 尚未完善)

    1.1 LaTeX 极速体验

    也许你曾听说过 LaTeX 或者 TEX ,但从未使用过。立即体验一下?

    1. 前往 http://tug.org/texlive/ 下载安装TEX Live。
    2. 打开编辑器 TeXworks,复制下面源代码到窗口内,保存文件至某处。
    3. 选择编译方式 XELaTeX,点击绿色编译按钮,右侧将弹出编译完成的 pdf 文件。
    1\documentclass{ctexart}2\begin{document}3    中文测试文档4\end{document}
    

    让我们赶紧开始准备软件吧!

    2. 软件的准备

    2.1 关于CTEX套装

    自2016年3月之后,CTEX 套装一直没有更新;另外 XELATEX 的出现, 让中文使用的很多难题得以解决, 不借助 CTEX 套装也可以很好地处理。

    这里我推荐用 TEX Live ,想使用 CTEX 的同学可以自行下载安装。下载地址:http://www.ctex.org/CTeXDownload. CTEX 套装分为Basic 版和 Full 版, 选其中一个下载即可。建议使用 Full 版。安装完成后要立即更新。

    2.2 TEX Live 的安装

    我是64位的 Windows,下面以Windows为例

    1. http://tug.org/texlive/ 下载自己机器对应的 TEX Live 的镜像或安装包。
    2. 双击 install- tl-windows.exe,开始安装。
    3. 更新. 这一步只是建议, 不是必须的。

    TEX Live 的宏包管理器是 tlmgr (TeX Live manager). 在安装路径 C:\texlive\2015\bin\win32 下可以找到 tlmgr-gui.

    也可以在 WinEdt 工具栏点击图标 启动 tlmgr-gui. 但是, tlmgr 的图形界面使用 Perl 编写, 容易造成系统假死. 故建议使用下面的方法更新.

    1. 使用 Win + R 组合键打开 “运行” 对话框,然后输入 cmd 回车, 打开命令提示符窗口.
    2. 先更新tlmgr. 执行命令
    3. 再更新TEX Live. 执行命令
    1tlmgr update -self2tlmgr update -all
    

    2.3 编辑器的安装

    TEX 的编写和编译, 需要借助TEX 编辑器。 当然, 不使用专门的编辑器,仅用记事本和 DOS, 也可以使 TEX 工作。这里不做详细论述,推荐大家使用编辑器进行编写。

    TEX Live 使用配搭有多种, 这里只说两个:

    1. TEX Live + TeXworks;
    2. TEX Live + WinEdt + Sumatra PDF.
    TEX Live + TeXworks

    TEX Live 自带编辑器TeXworks,其界面非常朴素, 默认没有语法高亮,字体也很小,需要对 TeXworks 进行简单的设置。

    对 TeXworks 的字体及大小、语法高亮、默认编译方式等进行设置如上图所示,推荐:

    1. 字体选择为 Verdana, 字号 14 磅;
    2. 将默认编译方式设为 XeLaTeX;
    3. 对编译方式可以按自己的喜好排序, 比如图中依次为XeLaTeX, pdfLaTeX, BibTeX等.
    TEX Live + WinEdt + Sumatra PDF

    很多用户习惯使用 WinEdt, 安装 TEX Live 之后也可以选配WinEdt 以及 Sumatra PDF.

    在 WinEdt 的发布网站 http://www.winedt.com/ 下载安装即可. 安装过程中, WinEdt会自动配置连接到 TEX Live.

    接着安装 Sumatra PDF, 方便文件的反向查找(鼠标双击pdf 文件中的文字, 可以跳转到源文件中对应的位置).下载网址:http://www.sumatrapdfreader.org/free-pdf-reader.html.

    安装 Sumatra PDF 后, 要对 WinEdt 配置, 使用 Sumatra PDF 作为默认的 pdf 阅读器. 在 WinEdt 菜单栏选 Options —> Execution Modes —>PDF Viewer.

    WinEdt 默认的字号比较小, 建议修改.点击菜单 Options, 选择 Options Interface,弹出窗口, 左边边框寻找 Font 选项,对右边的文本进行编辑.

    至此, 软件的安装已经完成了! 编译下前面例子, 测试安装是否成功了呢?

    3. LATEX 的基本知识

    建议: 在用中学. 边用边学, 建立了基本的概念以后, 在使用中根据需求去解决问题. LATEX 的功能和宏包有很多, 每个人用到的功能是有限的; 不主张看完一本大部头的书, 才动手上机测试.

    • 第一步: 把 TEX Live 安装到你的机器里.
    • 第二步: 找一份 LATEX 的入门介绍看看, 一边看一边在电脑上测试编译.
    • 建议开辟一个 “测试区” 文件夹, 用来调试某段 TEX 文档, 或者用来学习、测试各种命令的功能.

    3.1 一篇LATEX文档的基本构成

    一篇LATEX 文档, 由三个部分组成: 文档类声明, 导言区, 正文.

    1\documentclass{article}2\usepackage{hyperref}3\begin{document}4    Hello World!5\end{document}
    

    文档类就是\documentclass{...}, 里面声明你要书写什么样式的文档, 常用的有: article, book,report.

    可以自己定义一个新的文档类, 对文章的总体样式和各个细节进行声明, 或者定义自己的命令.

    正文, 即\begin{document}\end{document} 之间的部分.

    导言区, 夹在\documentclass{...}\begin{document} 之间的部分, 放置需要使用的宏包,或者自己规定一些新的命令.

    1\documentclass{ctexart}2\newcommand{\hubei}{中国湖北}3\begin{document}4    我来自\hubei.5\end{document}
    

    上例中, 我们自己定义了一个全新的命令\hubei, 在正文使用该命令时, 得到的就是该命令的内容“中国湖北”. 还可以定义更复杂的结构或内容.

    可能你需要定义的东西太多, 这时可以把它们写在一个文档里面, 这种文档就是宏包. 使用时在导言区使用\usepackage{...}, 即可以插入该文档的内容.

    例如我们想书写一个数学符号. 该数学符号已经由宏包amssymb定义过了, 这样只需要在导言区写上\usepackage{amssymb}, 加载该宏包即可.

    1\documentclass{ctexart}2\usepackage{amssymb}3\begin{document}4    $\unrhd$5\end{document}
    

    3.2 文档的编译方法

    3.2.1 编译方式的选择

    几种常见的编译方式: XeLaTeX, pdfLaTeX, LaTeX. 推荐使用XeLaTeX, pdfLaTeX 编译, 直接得到pdf 文档.

    不同的编译方法, 对应的源文件一般略有不同. 比如第一页的例子,使用pdfLATEX 编译得到的pdf 文件, 其中文是乱码. 需要增加UTF8 选项:

    1\documentclass[UTF8]{ctexart}2\begin{document}3    中文文档测试.4\end{document}
    

    不同的编译方式, 得到不同的效果. 下图可见XeLaTeX 处理得更好, 这也是推荐使用XeLaTeX 的一个重要原因.

    1\documentclass[UTF8]{ctexart}2\begin{document}3    方程$x^3=1$有3个复根. \\4    方程$x^3=1$ 有3 个复根. \\5    方程~$x^3=1$ 有~3 个复根.6\end{document}
    
    左侧是pdfLaTeX 编译的结果, 右侧是XeLaTeX 编译的结果.

    如果文档加入了交叉引用、目录、导航书签等, 需要编译至少两遍, 才能使相关部分正确显示.文档编码的类型, 可以在编辑器下方的状态栏看到.

    3.2.2 中文文档的处理

    中文的实现, 推荐使用CTEX 宏集.

    下面是article类中文文档的例子.

     1\documentclass{ctexart} 2\begin{document} 3\title{中文\LaTeX{} 测试} 4\author{姓名} 5\maketitle 6\tableofcontents 7\section{测试} 8中文测试. 9\section{再测试}10中文测试.11\end{document}
    

    下面是book类中文文档的例子.

     1\documentclass{ctexbook} 2\begin{document} 3\title{中文\LaTeX{} 测试} 4\author{姓名} 5\maketitle 6\tableofcontents 7\chapter{测试} 8中文测试. 9\chapter{再测试}10中文测试.11\end{document}
    

    以下是使用beamer文档类编写幻灯片的一个示例.

     1\documentclass{beamer} 2\usepackage[UTF8]{ctex} 3\usetheme{Warsaw} 4\begin{document} 5\begin{frame}{中文演示文档} 6\begin{itemize}[<+->] 7\item 这是一个幻灯片; 8\item 你可以使用XeLaTeX 编译; 9\item 也可以使用pdfLaTeX 编译;10\item 推荐使用XeLaTeX 编译.11\end{itemize}12\end{frame}13\end{document}
    

    4. 编辑器的基本知识

    LATEX 的入门都看过了, 但你是否感觉无从下手? 因为你需要面对的是TeXworks, WinEdt等编辑器, 下面我们简要介绍一下.

    4.1 TeXworks 的基本用法

    1. 注释功能

    Ctrl+Shift+]: 对选定区域进行注释, 该段不参与编译;
    Ctrl+Shift+[: 取消注释.

    1. 自动补全

    使用方法是在输入若干字母后按Ctrl+Tab 或者Shift+Tab. 比如, 输入\i 之后按Shift+Tab 就会得到\item, 输入xg 之后按Shift+Tab 会得到\gamma, 输入\bth 之后按Shift+Tab 会得到

    1\begin{theorem}23\end{theorem}
    

    如果有几种可能的补全方式, 多按几次就会在这几种方式之间循环.具体可以参考TeXworks 的帮助文档, 里面还介绍了很多快捷键命令.

    4.2 WinEdt 的基本用法

    最新版本为WinEdt 10.3, 这里以WinEdt 9.1 为例,两个版本没有大的区别.

    1. 环境的自动补全

    输入一个环境名, 比如\begin{definiton}, 紧接着输入一个右括号}, 即输入

    1\begin{definiton}}
    

    窗口会自动出现与之配对的\end{definiton}, 即得到

    1\begin{definiton}2*3\end{definiton}
    
    1. 工具栏的介绍
    1. 状态栏的介绍
    1. 右键菜单介绍
    1. 查找与替换
    • Ctrl+R, 在弹出的窗口填入要查找和替换的对象.
    • 用正则表达式完成查找和替换.
    1%比如要把文中所有形如2\url{user@website.com}3%的文字换成形如4\href{mailto:user@website.com}{user@website.com},5%搜索6\\url\{\(0*\)\}7%替换为8\\href\{mailto:\0\}\{\0\}9%即可
    

    4.3 不用编辑器亦可

    没有WinEdt 之类的编辑器也行?事实上, 不借助编辑器, 仅用记事本和DOS, 也可以使TEX工作.

    1. 书写文档. 打开记事本(假定文件保存在D 盘. 在D 盘点击右键, 选择“新建文本文档”),在记事本窗口写一小段完整的TEX 文档.
    1\documentclass{ctexart}2\begin{document}3中文文档测试.4\end{document}
    
    1. 保存文档. 在记事本窗口点击“另存为”, 记文件名为mytest.tex, 文件保存在D 盘.注意选择保存类型为所有文件, 否则上述操作只会得到一个名为mytest.tex.txt 的文本文档.
    2. 编译文档. 打开DOS窗口(win 键+ R, 输入“cmd”, 回车), 在DOS窗口下进入D 盘(输入“d:” 回车), 键入“pdflatex mytest” 并回车, 使文件得以编译.
    3. 预览文档. 打开D 盘, 可以看到mytest.pdf 文件.另外, 若想使用XeLaTeX编译, 保存文件时, 编码要选为UTF-8. 执行命令“xelatex mytest”, 即得到mytest.pdf 文件.

    显然, 专业的编辑器更方便, 更擅长于TEX文档的编辑和编译.

    5. 初学LaTeX 容易忽视的细节

    有一些初学者容易忽视的小问题, 不能说是错误, 但这些是不规范、不专业的,我觉得有必要在学习之前就指出来加以规避.

    5.1 括号

    image

    5.2 函数名

    • max; sin; ln; sup 等记号要用$ \max, \sin, \ln, \sup $ 输入, $ max, sin, ln, sup $ 得到的是max; sin; ln; sup, 这不符合运算符要用正体的要求.
    • 有一些数学符号没有现成的LATEX 命令, 比如arccot, 需要在导言区调用amsmath 宏包, 并定义:
    1\DeclareMathOperator{\arccot}{arccot}23%再使用$\arccot x$ 就可以得到arccot x.
    

    5.3 标点符号

    • 使用半角标点, 后边要键入一个空格.
    • 建议全文使用半角标点, 无论是中文或英文文章. 英文中不应该有全角标点, 而数学环境中就根本不能有全角标点.
    • 存在的问题: 顿号、书名号、破折号等中文特有的标点怎么办? 个人折衷的办法是只在这些特定的情形使用全角标点.
    • 无论偏向于全角或半角, 强烈建议使用实心的句号, 只要书写的是自然科学的文章.因为, 比如使用全角句号的句子结尾处的“ image ” 容易和数学式“ image ” 混淆吧.

    6. 遇到问题怎么办

    6.1 查看错误信息

    编译过程中跳出的窗口内有编译信息. 若出错, 编译过程会暂停,并提示出错原因. 此时不要急于关闭编译窗口或按回车忽略, 而应查看窗口中的出错信息, 可迅速找到错误.

    最常见的出错信息:

    • ! Paragraph ended before … was complete.
      环境、括号等不匹配.
    • ! Undefined control sequence.
      可能是命令敲错, 或缺少相应宏包.
    • ! LaTeX Error: File '…' not found.
      找不到相应文件.

    这些出错信息一般浅显易懂, 并且显示错误所在行号.编译信息会保存为log 文件. 比如编译的源文件为mytest.tex, 编译完后, 在同一文件夹下会出现mytest.log 文件.

    有些复杂的问题, 可以直接copy 出错信息, 网络搜索查找解决方案.

    6.2 寻找解决方案

    • 资料《LATEX 2" 用户手册》、《Mathmode》分别是解决文本、公式排版的重要参考文档;
    • 查看宏包说明. TEX 系统自带了大量的宏包说明文档和例子. 在WinEdt 菜单栏点击Help -->TeX Doc, 输入宏包名查找.
    • 求助于网络. 主要是CTEX 论坛: http://bbs.ctex.org/. 建议先搜索再提问. Google 可以解决我们遇到的很多很多问题.

    7. LATEX 究竟强在哪里

    7.1 数学公式精美

    TEX 的创立就是为了解决数学公式的排版, 这个是TEX 天生的强项. 大量资料有详尽阐述, 这里不再赘述. 数学公式排版的经典文档:

    • 名著《The LATEX Companion》
    • 《LATEX 2" 用户手册》作者: 邓建松, 建议精读此文.
    • 一个示例丰富的必备文档是《Mathmode》. 该文档是很好的备查手册.

    7.2 编号自动生成

    所有的编号都不用操心. 对公式、图表、章节、参考文献等的编号, 都是LATEX 自动完成的.

    请复制测试下例. 先编译两遍; 然后去掉例子中的注释符号%, 再编译两遍, 看编号有何变化.

     1\documentclass[UTF8]{ctexart} 2\begin{document} 3\title{文档测试} 4\author{Superman} 5\maketitle 6\tableofcontents 7\section{测试一节} 8公式: 9\begin{equation}101+1=2.11\end{equation}12%\section{插入一节}13% 新公式:14%\begin{equation}15%1+1.5=2.5.16%\end{equation}17\section{再来一节}18又一个公式:19\begin{equation}201+2=3.21\end{equation}22\end{document}
    

    比较编译的结果可以看到, 所有的编号都是自动调整的.

    7.3 交叉引用便捷

    对需要引用的公式、图、表、参考文献, 给它取一个名字, 可以很方便地进行引用. 这正是LATEX的一个特色.

    下面是一个对公式引用的例子. 请试试编译该例子:

    1. 先编译一遍, 看结果; 编译第二遍, 注意有什么不同.
    2. 去掉例子中的注释符号%, 再编译两遍, 看编号及引用有何变化.
     1\documentclass{ctexart} 2\begin{document} 3\section{A test section} 4\begin{equation}\label{eq-1} 51+1=2. 6\end{equation} 7等式\ref{eq-1} 是众所周知的. 8%\section{A new section} 9%\begin{equation}\label{eq-1.5}10%1+1.5=2.5.11%\end{equation}12% 等式\ref{eq-1.5} 也不难理解.13\section{Another section}14\begin{equation}\label{eq-2}151+2=3.16\end{equation}17等式\ref{eq-2} 是简单的.18\end{document}
    

    一个重要的常识: 在LATEX 中, 公式、图、表等的引用, 是通过命令\label{name}\ref{name}的配合使用实现的.

    在实际使用中, 我们调用amsmath 宏包, 用命令\eqref{...} 使引用公式的编号是带括号的:

    1\documentclass{ctexart}2\usepackage{amsmath}3\begin{document}4\section{A test section}5\begin{equation}\label{eq-1}61+1=2.7\end{equation}8等式\eqref{eq-1} 是众所周知的.9\end{document}
    

    7.4 各种自动生成

    LATEX 文档中好些部分都不是“手动” 写出来的, 给一些简单的指令, LATEX 就会帮你完成. 比如:

    • 目录. 在文档中需要加入目录出写上\tableofcontents, 编译就可以了.
    • 参考文献. 如果经常写学术文章, 可以建一个自己的参考文献库, 用BibTEX 可以很方便地得到文后的参考文献列表, 无需自己动手写一个字.
    • 索引. 在导言区加\makeindex, 在文档末尾加\printindex. 在需要索引处加入\index{词条名}便可.
    • 页眉. 在页眉可以自动加入文章名、作者名、章节名等信息.

    7.5 模板使用方便

    国际知名的学术杂志或出版公司, 一般都提供了自己的LATEX 模板, 比如Elsevier, Springer, IEEE 等等. 学术会议的投稿通常也会指定相应的LATEX 模板.

    这些模板就真正实现了, 让作者把注意力集中于文章内容的书写, 而无需理会其排版的外形.

    7.6 原文档像草稿

    LATEX 源文件会看起来有些凌乱, 但这完全不会影响到结果文档的美观.

    • 修改文档时, 不必急于删去认为是多余的文字, 把它们注释掉就行了, 说不定什么时候还想使用这段文字.
    • 用注释功能很容易给出文章的简写版, 或回过头来给出完整版.
    • 结果文档中的换行、另起一段、换页等是由LATEX 自动完成的. 源文件中的换行、空行的随意性不影响结果文档.
    • 可以把一些难记又常用的命令, 放在TEX 文档的最后,方便复制使用. 因为文档编译的时候, \end{document} 之后的信息是被忽略的, 所以这里也可以放一些资料、注解、备选信息等.

    8. LATEX入门资料

    初学者阅读文档建议:

    • 《LATEX 排版全解》, 写得很好, 内容比较新, 基本知识介绍得比较全面.
    • 《新手请先读我》, CTeX 论坛必读文档.
    • 《LATEX 入门》, 刘海洋编著
    • CTEX 及其论坛
    • LaTeX 科技排版

    很难说哪本关于LATEX 的书籍最好. TEX 的内容非常庞杂, 没有一本书能够涵盖全部的内容.

    我确信TEX 高手们是依靠TEX 系统自带的各种manual 或者来自于网络的各种文档(甚至是论坛的只言片语), 而不是某本书籍, 来掌握TEX 的.

    LATEX 在日新月异, 名著也可能马上过时, 甚至因此产生误导.比如因为阅读了一些早期的资料,很多人有一个误解: 以为LATEX 支持的图片格式最好是eps.

    事实上, LATEX 支持的图片格式绝非eps这一种, 无需特意把图片转化为eps 格式. 如果我在参加美赛时知道这一点, 就没有必要大费周章的转换图片格式了.

    学习建议:

    1. 熟悉各种环境命令. 环境用\begin{…}\end{…} 来声明. 比如\begin{document}\end{document} 就声明了其内部是正文环境. 常用的环境很多, 要留意熟悉.
    2. 注意各种空格、距离命令: LATEX 提供的是一张白纸, 一张没有边界的白纸, 你要在一张多大的纸上写东西, 边上空多少, 字距、行距是多少, 等等, 都得你告诉LATEX.
    3. 数学公式指令熟悉一下就可以了, 不必死记. WinEdt 窗口上都有快捷键, 有约500 个常用的数学符号命令. 对于初学者, 数学公式稍微复杂一点的时候, 还可以借助MathType.

    结语

    能看到这里的都是真爱,首先要感谢你们的时间。没有编程基础的同学看到这里可能会感觉一点点烧脑。

    为了让大家不觉得那么枯燥,接下来我会从一份专业的美赛 LATEX 模板展开,一点点深入剖析。很多地方不刨根问底对话,可能你看完我下一篇文章,就能熟练运用模板了。尽情的用别人的轮子开自己的车吧!

    那么,好奇轮子是怎么造出来的同学们,请继续关注本系列的文章。毕竟,从用模板的人变成写模板的人,还是有一点小帅的哈!

    嗯,我是秦迷

    至于本系列下一篇文章的更新时间,我也不知道,请大家持续关注啦!这段时间比较忙,学长也要开始准备毕设了。

    其实,还是主要看大家的反馈情况啦!反馈良好,动力卓越嘛,激素的正向调节哈哈。

    拟用九章来讲述 LATEX,以效仿独孤九剑。如果你身边有朋友对 LATEX 感兴趣,你也可以将本文直接转发给他。另外,听说点右下角好看的朋友,都变好看了哟!

    \color{red}{这里稍微提一下啊,我不是打广告哈!(嘻嘻)更多精彩,请关注公众号:剑指数模}

    一个有一点情怀的大学生独立新媒体

    相关文章

      网友评论

        本文标题:LaTeX 入门(一)| 重剑无锋,大巧不工

        本文链接:https://www.haomeiwen.com/subject/mwkxdqtx.html