笔记:LaTeX不快速入门

笔记:LaTeX不快速入门

2021年7月15日

刘海洋 · LaTeX 不快速的入门 – 跟着大神学习最纯正的 LaTeX 知识_哔哩哔哩_bilibili

真的只是入门,想速成提议查找其他示例多的教程,想仔细学提议买本书从头学

0.谈谈LaTeX

0.1 历史

  • Donald Knuth 编制了TEX排版系统
  • Leslie Lamport 编写了一组基于TEX的宏,即LaTeX

0.2 LaTeX印象

  • 写毕业论文,据说很方便
  • 论文投稿要用,别的格式不要
  • 写书的工具,有的老师用它
  • 可以写作业、记笔记,输出PDF

0.3 LaTeX/TEX是什么?

  • TEX来自于technology的希腊词根
  • LATEX = Lamport TEX
  • TEX是一种专业排版软件
  • TEX是一种计算机宏语言。同为宏语言的有C语言预处理宏、Linux下的M4;但功能和形式更相近的是HTML+PHP
  • LATEX是定义再TEX语言上的一大组宏命令。LATEX之于TEX类似HTML+CSS之于基本的HTML
  • LATEX使格式化的代码转换为排版好的文档

0.4 安装并更新TEX发行版

  • TEXLive,macOS,MiKTeX
  • 网页在线版:https://www.overleaf.com/
  • 各个大学的把你也论文模板可能需要更新TEX发行版本后才能使用。如果不要求更新,Linux环境下也可以使用软件源里的版本(APT大法)
  • Index of /CTAN/systems/texlive/Images/ (ustc.edu.cn)下载名为texlive2021.iso的文件然后安装即可
  • 注意预留硬盘空间,不提议装在C盘,并且安装路径不能有英文。

0.5 准备一些靠谱的教程

  • 《LATEX入门》
  • 《LaTeX实用教程》
  • LATEX Tutorials: A Primer
  • B站视频(本文开头),知乎、CSDN等社区

1.组织文档结构

1.1 编写结构化文档

  • 文档组成:标题、前言、摘要、目录、正文(篇 章 节 段)、列表、公式、引用、代码、画图……文献、索引、词汇表
  • LATEX支持结构化的文档编写方式,也只有具有良好结构的文档才适合实用LATEX来编写。
  • 步骤:拟定主题,列出提纲,填写内容,调整格式(平时可不要在意格式)

1.2 Markdown

  • 最简单的结构标记语言
  • 工具:Typora
  • 记笔记比较方便

1.3 LYX

  • 结构化的文档写作系统
  • 所见即所得
  • 可以模仿LATEX大部分功能,也可以生产LATEX代码

1.4 LATEX

  • 结构化文档语言
  • 可以使用任意文本编辑器编写
  • 推荐VScode,安装latex workshop插件

1.5 LATEX文档基本结构

  • 以document环境为界,之前是导言部分,内部为正文部分,之后的部分被忽略。

  • 在导言区进行格式设置,正文部分套用格式

    %%% 简单文档
    % 导言:格式设置
    documentclass{ctexart}
    usepackage[b5paper]{geometry}
    % 正文:填写内容
    egin{document}
    使用 LaTeX
    end{docement}
    

  • 文档部件:

    • 标题: itle,auther,date-maketitle
    • 摘要、前言:abstract 环境/chapter*
    • 目录: ableofcontents
    • 章节:chapter,section,…
    • 附录:appendix+chapter或section…
    • 文献:ibliography
    • 索引:printindex
  • 文档划分:

    • 大型文档:frontmatter、mainmatter、ackmatter

      页码、标题等会随着命令变化

    • 一般文档:appendix

    • 层次 名称 命令 说明
      -1 part part 可选最高层
      0 chapter chapter report、book类最高层
      1 section section article类最高层(一般的论文)
      2 subsection subsection
      3 subsubsection subsubsection report,book类 默认不编号、不编目录
      4 paragraph paragraph 默认不编号、不编目录
      5 subparagraph subparagraph 默认不编号、不编目录
  • 磁盘文件组织

    • 小文档将所有内容写在同一个目录中。比较大的文档,可以将文档分成多个文件,并划分文件目录结构:

      • 主文档,给出文档框架结构
      • 按内容章节划分不同的文件
      • 使用单独的类文件和格式文件设置格式
      • 用小文件隔离复杂的图表
    • 相关命令:

      • documentclass:读入文档类文件(.cls)
      • usepackage:读入一个格式文件——宏包(.sty)
      • include:分页,并读入章节文件(.tex)
      • input:读入任意的文件
    • 文档结构示例:

      % language-main.tex
      % 写的是一本书
      documentclass{book}
      % 调用索引表功能
      usepackage{makeidx}
      makeidx
      	itle{Languages} auther{someone}
      egin{document}
      frontmatter
      maketitle
      	ableofcontents
      mainmatter
      include{intro}
      include{class}
      ackmatter
      include{appendix}
      % 参考文献,使用一些工具管理
      ibliography{foo}
      printindex
      end{document}
      

      % intro.tex
      part{Introduction}
       chapter{Background}
      

      % class.tex
      part{Classification}
       chapter{Natural Language}
       chapter{Computer Languages}
        section{Machine Languages}
        section{High Level Languages}
         subsection{Compiled Language}
         subsection{Interpretative Language}
         subsubsection{Lisp}
          paragraph{Common Lisp}
          paragraph{Scheme}
         subsection{Perl}
      

      % appendix.tex
      chapter{Appendix}
      
      

2.填写文档内容

提议同时参考其他完整教程

2.1 LATEX基础

documentclass[UTF8]{article}
egin{document}
Hello world!
end{documents}

  • 英文a文档rticle,中文文档ctexart

  • 中文.tex文件 –>xelatex –> .pdf文件

    英文.tex文件 –>pdflatex –> .pdf文件

    为了生成目录、引用信息,往往需要若干次编译

2.1.1 语法结构

  • 相比原始TEX语言,LATEX语法结构相对固定

  • 命令:参数总在后面用花括号表明,用中括号表明可选参数

  • 环境:egin{env} … end{env}

  • 注释:以%开头

2.1.2 LATEX宏:命令与环境

  • 命令:以反斜线开通,可以带有零到多个参数
  • 环境:egin{env} … end{env}

2.2 正文文本

  • 直接输入正文文本

  • 用空格分开单词,换行相当于空格

  • 换行敲两个回车(空一行)

  • 一些符号被宏语言占用,需要转义:

    # $ % & { } extbackslash

    键盘上没有的符号用命令输入

2.3 公式

  • 数学模式下字体、符号、间距与正文不同,一切数学公式都要在数学模式下输入

  • $n=5$
    

  • 行内公式:用一对$标示

  • 显示公式:

    • 简单的不编号公式用命令[和]标示
    • 基本的编号公式用equation环境
    • 更复杂的结构使用amsmath宏包提供的专门数学环境。(不要使用eqnarray环境)
  • 数学结构:

    • 上标:^
    • 下标:_
    • 上下画线与花括号:overline,underline,overbrace,underbrace
    • 分式:frac{分子}{分母}
    • 根式:sqrt[次数]{根号下}
    • 矩阵:使用amsmath宏包提供的专门矩阵环境matrix,pmatrix,bmatrix等。特别复杂的矩阵使用array环境作为表格画出
    • 其他查阅相关资料
  • 数学符号:

    • 数学字母a,b,数学字体mathbb,mathcal等
    • 普通符号:如infty(无限),angle(角)
    • 二元运算符:+,-等
    • 二元关系符:=,<等
    • 括号:<a,b>,使用left,
      ight放大
    • 标点:逗号、分号(colon)
  • amsmath与mathtools

    • amsmath是基本数学工具包,mathtools是对amsmath的补充和增强
  • 科技功能

    • siunitx:数字单位的一揽子解决方案(siunitx的代码有整个latex内核那么长,不要重复造轮子)
    • chemformula:编写化学式

2.4 列表与文本块:

  • 列表环境

    • enumerate编号列表
    • itemize不带编号
    • description有标题
  • 定理类环境

    • ewtheorem定义定理类环境,如
      ewtheorem{thm}{定理}[section]

    • 使用定理类环境,如:

      egin{thm}
      一个定理
      end{thm}
      

2.5 诗歌和引文

  • verse
  • quote
  • quotation

2.6 抄录代码

  • verb命令,如:

    verb|#include <stdio.h>|
    

  • verbatim

    egin{verbatim}
    #include<stdio.h>
    int main() {
      puts("Hello world.");
    }
    end{verbatim}
    

  • 高级代码:语法高亮

    • 使用listings宏包
    • minted宏包(调用Pygment)
  • 算法结构

    • clrscode宏包(算法导论使用)
    • algorithm2e宏包
    • algorithmicx宏包的aigpseudocode格式

2.7 图表

  • 画表格:

    • 使用tabular环境

      egin{tabular}{|rr|}
      hline
      输入& 输出 hline
      $-2$ & 4 
      0 & 0 
      2 & 4  hline
      end{tabular}
      

    • 使用其他工具

    • 其他多种宏包:

      • 单元格处理:multirow、makecell
      • 长表格:longtable、xtab
      • 定宽表格:xtabular
      • 表线控制:booktabs、diagbox、arydshln
      • 表列格式:array
      • 综合应用:tabu

2.8 插图

  • 数据集用graphicx宏包提供的includegraphics命令

    includegraphics[width=2cm]{pkulogo.pdf}
    

  • 代码画图:

    • 优先使用外部工具画图,存储为pdf格式使用latex插入

2.9 浮动体

  • figure环境
  • table环境
  • 使用float宏包
  • 浮动体标题用caption命令得到,自动编号

2.10 自动化工具

  • 目录
    • 需要多次编译
  • pdf链接与书签
    • hyperref产生链接与书签
  • bibtex参考文献
    • 一般文献都能查到bibtex格式
    • 设置文件格式:
      • 使用合适的.bst格式
      • natbib与作者-年格式
      • 利用custom-bib产生定制格式
      • biblatex+Biber:文献处理新方式

3.设计文档格式

3.1 基本原则

  • 格式与内容分离(不要太在意细节)
  • 使用内容相关的命令与环境

3.2 使用宏包

  • 作用:宏包可以将可重用的代码提取出来,相当于library
  • 使用forest包生成树
  • 问题:可能出现兼容性问题
  • 和编程使用库的原则几乎一样

3.3 格式

  • 字体字号:

    • mfamily, extrm{}
    • sffamily, exsf{}
    • tfamily, extt{}
    • 字号:Huge,LARGE,large,
      ormalsize,small,footnotesize,scriptsize, iny
    • 中文字号:zihao{5}zihao{-3}
  • 对齐:centering,
    aggedleft,
    aggedright

  • 空白间距:hspace{2cm},vspace{3cm}

  • 版面布局:geometry宏包,fancyhdr宏包(页眉页脚)

  • 分页断行:linebreak(少用),

                  pagebreak(少用),
    ewpage,clearpage,cleardoublepage
    

  • 盒子:mbox{},parbox{4em}{内容}、minipage

3.4 格式应用于文档

  • 使用在导言区单独设置格式

    • 直接设置相关参数。如parindent,parskip,linespread,pagestyle
    • 修改部分命令定义。如 ehsection,labelenumi,descriptionlabel,figurename
    • 利用工具宏包完成设置。如ctex设置中文格式,tocloft设置目录格式
  • 利用自定义命令和环境

    
    ewcommandprg[1]{	extsf{#1}}
    

  • 章节标题

    • ctex及文档类,中文用ctexset,西文用titlesec
  • 浮动标题

  • 列表环境

    • enumitem宏包

4.个人感受

该视频仅仅大体上介绍了LaTeX怎么使用,让我们对LaTeX有一个宏观上的了解,为我们后来学好LaTeX打下了良好的基础。不过,如果我们想短时间内学会用LaTeX写论文,则不是这个视频解决的问题。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容