此处仅为博主备忘记录,学习完整的LaTeX,可以在我的网盘中找到相关资料!

也可以(推荐)从LaTeX工作室的在线知识库中系统的学习TeX

推荐两位大佬,看看他们对LaTeX的理解:

从初识开始

上学期要交一份电子档的实验报告,苦于word+mathtype的繁琐冗余,我选择了markdown转html,再用css修饰一下,效果很是理想。但是想进一步应用在其他场合,MD的劣势也凸显出来了:标记元素过于贫乏。

直到一个多月前,通过零零散散的学习Tex,我便深深的爱上了它!个人觉得 LaTeX 在写文排版方面相当于HTML+CSS+JavaScript的组合(不谈word,在LaTeX面前谈word就过分了),既负责标记,又要管理样式,还要能自由、灵活地实现各种奇幻需求。

但是这种灵活性固然使得内容与格式分离的原则得不到彻底贯彻,但试想,所有的格式修改,哪怕只出现一次,也要额外做一个语义标记,又是否确有必要呢?这一点就劝退了很多不敲代码的人。

以 Markdown 撰写文稿,以 LaTeX 排版

宏定义功能

一个TeX宏( macro)是以反斜线\开头,后面紧接着一串字母的字符串,它在TeX中通常用来代替另外一个字符串,也有时表示其他一些特殊的含义。 传统上将这种字符串代替的机制称为宏,LaTeX就是一种复杂的宏语言。

在LaTeX中,宏通常被分为两类:一般的宏被形象地叫做“命令"(command),而以命令\begin{<环境名>}\end{(环境名)}包围的结构则称为“环境”( environment )。命令和环境都可以带有若干可选的和必须的参数,表示不同的含义,命令和环境是LaTeX中使用格式相对固定两类宏。

\newcommand命令

可以使用\newcommand来新定义一个命令,其语法格式如下:

待更。。。

宏包

  • 调用宏包的方法非常类似调用文档类的方法:
  • \usepackage[⟨options⟩]{⟨package-name⟩}

下面列出了常用一些包

文字、公式和符号

  • amsmath 提供数学公式支持
  • mathtools 数学扩展包,定制了很多符号、矩阵
  • amsfonts 扩展符号的基础字体支持
  • bm 提供将数学符号加粗的命令 \bm
  • siunitx 以国际单位规范排版物理量的单位
  • mhchem 排版化学式和方程式
  • tipa 排版国际音标

排版元素

  • ulem 提供排版可断行下划线的命令 \uline 以及其它装饰文字的命令。
  • endnote 排版尾注。
  • marginnote 改善的边注排版功能。
  • multicol 提供将内容自由分栏的 multicols 环境。
  • multitoc 生成多栏排版的目录。
  • minitoc 为章节生成独立的小目录。
  • glossaries 生成词汇表。
  • verbatim 对原始的 verbatim 环境的改善。提供了命令\verbatiminput调用源文件。
  • fancyvrb 提供了代码排版环境 Verbatim 以及对版式的自定义。
  • listings 提供了排版关键字高亮的代码环境 lstlisting 以及对版式的自定义。类似宏包有minted
  • algorithmic 一个简单的实现算法排版的宏包。如果要生成浮动体的话,需要搭配 algorithm 宏包使用。
  • algorithm2e 较为复杂的、可定制的算法排版宏包。类似宏包有 algorithmicx 等。
  • ntheorem 定制定理环境。类似宏包包括 theorem、thmtools、amsthm 等。
  • mdframed 排版可自动断页的带边框文字段落,提供边框样式的定制功能。
  • tcolorbox 以 TikZ 为基础提供排版样式丰富的彩色盒子的功能。

图表和浮动体

  • booktabs 排版三线表。
  • array 对表格列格式的扩展。
  • tabularx 提供 tabularx 环境排版定宽表格,支持自动计算宽度的 X 列格式。
  • arydshln 支持排版虚线表格线。
  • colortbl 支持修改表格的行、列、单元格的颜色。
  • multirow 支持合并多行单元格。
  • makecell 支持在单元格里排版多行内容(嵌套一个单列的小表格)。
  • diagbox 排版斜线表头。
  • longtable 提供排版跨页长表格的 longtable 环境。
  • ltxtable 跨页长表格可使用 tabularx 的 X 列格式。
  • tabu 提供排版复杂格式表格的 tabu 环境。与 longtable 一同调用时,提供排版复杂格式跨页长表格的 longtabu 环境。
  • graphicx 支持插图。
  • bmpsize latex + dvipdfmx 命令下支持 BMP/JPG/PNG 等格式的位图。
  • epstopdf pdflatex 命令下支持 EPS 格式的矢量图。
  • wrapfig 支持简单的文字在图片周围的绕排。
  • subfig 提供子图表和子标题的排版。类似宏包有 subfigure 和 subcaption 等。
  • caption 控制浮动体标题的格式。
  • bicaption 生成双语浮动体标题。
  • float 为浮动体提供不浮动的 H 模式;提供自定义浮动体结构的功能。

修改版式

  • geometry 修改页面尺寸、页边距、页眉页脚等参数。
  • fancyhdr 修改页眉页脚格式,令页眉页脚可以左对齐、居中、右对齐。
  • titlesec 修改章节标题 \chapter、\section 等的格式。
  • titletoc 修改目录中各条目的格式。
  • tocloft 类似 titletoc 的修改目录条目格式的宏包。
  • tocbibind 支持将目录、参考文献、索引本身写入目录项。
  • footmisc 修改脚注 \footnote 的格式。
  • indentfirst 令章节标题后的第一段首行缩进。112 附录 B 排除错误、寻求帮助
  • enumerate 提供简单的自定义标签格式的 enumerate 环境。
  • enumitem 修改列表环境 enumerate 和 itemize 等的格式。
  • lettrine 生成段落首字母大写的效果

在一般情况
下,比较常用的包和配套的参数如下所示:

\usepackage{amsmath}% 提供数学公式支持
\usepackage{graphics}% 用于添加图片
\usepackage{graphicx}% 加强插图命令
\usepackage{subfigure}% 用于添加子图
\usepackage{wrapfig}% 提供图片环绕风格支持
\graphicspath{{./}{./contents/}{./contents/fig/}}% 设置图片可能存在的路径
\newcommand{\figpath}[1]{contents/fig/#1} % 设置图片路径
\usepackage{fontspec}% 用于配置字体
\usepackage[table]{xcolor}% 用于各种颜色环境
\usepackage{enumitem}% 用于定制 list 和 enum
\usepackage{float}% 用于控制 Float 环境,添加 H 参数(强制放在 Here)
\usepackage[colorlinks, linkcolor=black, urlcolor=blue, anchorcolor=blue, citecolor=green]{hyperref}% 用于超链接,另外添加该包目录会自动添加引用。
\usepackage[most]{tcolorbox}% 用于添加各种边框支持,most 参数表示将全部命令支持都添加进来
\usepackage[cache=true,outputdir=./out]{minted}% 如果不保留临时文件就设置 cache=false, 如果输出设置了其他目录那么 outputdir 参数也有手动指定,否则会报错。
\tcbuselibrary{minted}% 加载 tcolorbox 的代码风格
\usepackage[a4paper,left=4cm,right=4cm,top=3cm,bottom=1cm]{geometry}%用于控制版式
\usepackage{appendix}% 用于控制附加文件
\usepackage[UTF8,fontset=windowsnew,heading=true]{ctex} % 用于提供中文支持
\ctexset{
    section = {
        number = 第\chinese{section}章,
        format = \zihao{3}\bfseries,
        },
    subsection = {
        number = \arabic{section}.\arabic{subsection},
        format = \Large\bfseries
        },
    subsubsection = {
        number =
        \arabic{section}.\arabic{subsection}.\arabic{subsubsection},
        format = \Large\bfseries,
        },
    }
\usepackage{multirow} % 用于表格环境多行多列的支持
\usepackage{pdfpages} % 用于插入 pdf 页
\usepackage{ulem} % 用于好看的下划线、波浪线等修饰
\usepackage{fixltx2e} % 用于文本环境的下标
\usepackage{adjustbox} % 用于调整" 盒子" 位置
\usepackage{longtable}% 用于提供长表格支持
\usepackage{nameref} % 用于在引用时附加描述而不只是计数值

文字与符号(超出ASCII码范围的解决方案)

  • 大部分字母都可以使用UTF8原生编码直接输入(前提是计算机键盘布局或输入法的支持)
  • LaTeX的单引号 ‘ ’ 用$半角 $和' 输入,双引号 “ ”` 和 '' 输入(虽然 " 也能表示双引号,
    但没有合适的单个符号用来表示前双引号,所以不常用在正文)。
  • LaTeX中有三种长度的“横线”可用:连字号(hyphen,单个使用-)、短破折号即范围(en-dash,两个-连用)和长破折号(em-dash,三个-连用)。它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 – 用来连接数字表示范围;长破折号 — 用来连接单词,与中文语境中的破折号用法类似。
  • LaTeX提供了命令\ldots来生成省略号,相对于直接输入三个点的方式更为合理。\ldots
    \dots 是两个等效的命令。
如果觉得我的文章对你有用,请随意赞赏