LaTeX 学习笔记

之前上线代课时就想学一下 LaTeX, 结果拖到了现在不得不用 LaTeX 交作业的时候才终于开始认真学了。主要参考的教程是 YouTube 上面的搜索 LaTeX tutorial 排第一的一个系列视频

边学边做笔记,争取十一期间基本掌握,至少也要像写 markdown 这样熟练吧。

第零讲 环境搭建

我在 linux 和 windows 下都搭建了 LaTeX 的环境。 linux 下使用的是 texlive, windows 下使用的是 CTeX。编辑器使用的是跨平台的 Texmaker,感觉比较好用。安装都很无脑,archlinux 及衍生发行版下 sudo pacman -S texlive-bin texlive-core texlive-langchinese texlive-latexextra texlive-science texmaker 就装好了最基础的包。windows下更不用说了,下载安装包然后一路点点点就好了。

对于中文的支持主要还是依靠 XeLaTeX 这个东西,以上的包安装后都是自带这个的。比较省事的使用方式就是 documentclass 里面写 ctexart 等类型,更深入的中文相关配置还在摸索中。

目前来说使用的感受就是 windows 下编译明显偏慢。在 linux 下屏幕开了缩放后 texmaker 内置的 pdf 阅读器字会变模糊。

第一讲 创建文档

主要了解下 tex 文件的基本结构和编译等操作

直接以一段简单 tex 代码为例说明

\documentclass[11pt, a4paper]{article} % 以这句开头,方括号里面设置字体、纸张等,花括号里面是文档类型
\usepackage[margin=1in]{geometry} % 引入宏包,这句是设置页边距为一英寸

\begin{document} % 成对出现的 begin 和 end,里面写内容
This is test $ x+1 $ % 一个 $ 包裹的是行内公式
$$ c^2 = a^2 + b^2 $$ % 两个 $ 包裹的公式会另起一行
\\ % 两个反斜杠是换行符
\end{document}

至于编译 tex, 视频以 texmaker 这种编辑器为例,有编译和预览的按钮,在设置界面可以看到实际执行的命令。

补充一下对中文的支持。可以直接使用 ctexart 这样的文章类型,或是像 \usepackage{ctex} 这样引入 ctex 的宏包,编译时使用 xelatex 来编译。

第二讲 常用数学符号

这一讲主要针对数学符号,还是以代码来说明比较方便

\documentclass{article}

\begin{document} 
superscript: $ 2x^3 $ % ^ 是上标,这个都很熟悉了
$$ 2^{x+1} $$ % 这个时候要用括号整体括起来,不然只对一个生效

subscript: $ x_1 $ % _ 是下标, 规则和上标一样

greek letters: % 一些常用的希腊字母, 反斜杠加英文写法,首字母大写对应大写希腊字母
$$ \pi \alpha \beta \gamma \Delta \epsilon $$
$$ A = \pi r^2 $$ % 别把其他字母跟转义的\pi连到一起

functions: % 常见函数都要加反斜杠
$$ \sin{x} $$ % 三角函数。不转义会连起来,很丑
$$ \log_{10}{x} $$ % 对数,可用下标
$$ \sqrt[3]{x} $$ % 根号,方括号写几次方

fractions: % 分数
$$ \frac{1}{2} $$ % 两个花括号写分子分母
% 行内公式写分数会缩小
displaystyle $ \displaystyle{frac{1}{2}} $ makes fraction larger

% 公式之间都可以嵌套,比如这个连分数
$$\frac{1}{1+\frac{1}{1+\cdots}} % \cdot 点 \cdots 省略号

\end{document}

要用到的符号还有很多,这里只讲到了一些最最简单的。一开始估计会经常翻文档,多写写就会熟练了。

第三讲 括号&表格&array

括号

在公式中使用括号,圆括号和方括号可以直接用,花括号需要用反斜杠来转义。事实上,保留的标记符号都需要进行转义来输出原符号。

如果括住分数这样的需要大一点的括号,需要使用 \left(\right) 这一对包起来,其他括号和绝对值那个竖杠(视频中称为pipe)同理。

如果只需要半边括号,将 \left 或 \right 后面的符号换成.即可。如 \left.\frac{dy}{dx}\right|_{x=1} 这句公式会渲染成为 $\left.\frac{dy}{dx}\right|_{x=1}$ ,嗯偶尔也会用得到。

表格

表格用 一对 tabular 包起来,具体语法看一段代码就好理解

\begin{tabular}{c|ccc|} % 后面的花括号写列的格式,竖线的部分会加分隔线
$x$ & 1 & 2 & 3 \\  % 列中间用 & 隔开,\\换行 
\hline % 要手动加横线
$f(x)$ & 1 & 2 & 3 
\end{tabular}

array

不太懂地道的表达,视频里叫做 array,实际看起来就是编号的公式,不懂就不瞎翻译了。

\begin{eqnarray} % 如果是 eqnarray*, 就会隐藏编号
x=y+1 \\ % 直接写公式,\\换行
a&=\sqrt{b}+5 % 等号前加个&就会居中显示
\end{eqnarray}

第四讲 列表

这里说的列表相当于 HTML 里面的 ol, ul 这种东西

\begin{enumerate} % 有序列表
\item xxx
\item[233] yyy % 中括号内自定义标号
\end{enumerate}

\begin{itemize} % 无序列表
\item lalala
\item 123
\end{itemize}

第五讲 文本和文档排版

首先是对字体的一些操作

% 格式控制
\textit{xxx} % 斜体
\textbf{xxx} % 粗体
\textsc{xxx} % 大写
\texttt{xxx} % 打字机等宽字体
% 大小控制
\begin{large} 
\end{large} % 除此之外还有 Large,huge,Huge,tiny,small
% 位置控制
\begin{center} % 还有 flushleft flushright
\end{center}

接下来是对段落的控制

\tableofcontents % 生成目录
% 生成标题/作者/日期
\title{xx}
\author{xxx}
\date{\today}
\maketitle
\section{xxx} % 分章节,自动生成数字标号标题
\subsection{yyy} % 二级标题

第六讲 包&宏&图片

\usepackage[]{} 在 document 开始前引入需要用的包。可用的包非常多,功能也千奇百怪,如果有相应的需求去查文档。举个例子,algorithm 包用来写算法伪代码, geometry包用来调整页边距啥的

宏这个比较常见,用于定义自己的特定操作,跟C语言还有啥Word里面的宏差不多是一个意思。

插图片可以用 graphicx 这个包,\includegraphics[配置项]{/path/to/image.png}

第七讲 错误&Debug

第八讲 小技巧

第九讲 微积分符号

第十讲 Beamer幻灯片制作

单开一篇博客讲吧