蚊章汇 - Earl Ramirez
type: channel
link: https://linuxcn.bwsl.wang/author/1510/
description: Earl Ramirez
items: LaTeX 排版（3）：排版
items: LaTex 排版 （2）：表格
items: LaTeX 排版（1）：列表

LaTeX 排版（3）：排版
type: item
date: 2021-02-26T19:31:33+08:00
description: 本 系列 介绍了 LaTeX 中的基本格式。第 1 部分 介绍了列表。第 2 部分 阐述了表格。在第 3 部分中，你将了解 LaTeX 的另一个重要特性：细腻灵活的文档排版。本文介绍如何自定义页面布局、目录、标题部分和页面样式。页面维度当你第一次编写 LaTeX 文档时，你可能已经注意到默认边距比你想象的要大一些。页边距与指定的纸张类型有关，例如 A4、letter 和 documentclass（article、book、report） 等等。要修改页边距，有几个选项，最简单的选项之一是使用 fullpage 包。该软件包设置页面的主体，可以使主体几乎占满整个页面。—— FULLPAGE PACKAGE DOCUMENTATION另一个选择是使用 geometry 包。在探索 geometry 包如何操纵页边距之前，请首先查看如下所示的页面尺寸。1 英寸 + \hoffset1 英寸 + \voffset\oddsidemargin = 31pt\topmargin = 20pt\headheight = 12pt\headsep = 25pt\textheight = 592pt\textwidth = 390pt\marginparsep = 35pt\marginparwidth = 35pt\footskip = 30pt要使用 geometry 包将边距设置为 1 英寸，请使用以下示例\usepackage{geometry} \geometry{a4paper, margin=1in} 除上述示例外，geometry 命令还可以修改纸张尺寸和方向。要更改纸张尺寸，请使用以下示例：\usepackage[a4paper, total={7in, 8in}]{geometry} 要更改页面方向，需要将横向（landscape）添加到 geometery 选项中，如下所示：\usepackage{geometery} \geometry{a4paper, landscape, margin=1.5in 目录默认情况下，目录的标题为 “contents”。有时，你想将标题更改为 “Table of Content”，更改目录和章节第一节之间的垂直间距，或者只更改文本的颜色。若要更改文本，请在导言区中添加以下行，用所需语言替换英语（english）：\usepackage[english]{babel} \addto\captionsenglish{ \renewcommand{\contentsname} {\bfseries{Table of Contents}}} 要操纵目录与图、小节和章节列表之间的虚拟间距，请使用 tocloft 软件包。本文中使用的两个选项是 cftbeforesecskip 和 cftaftertoctitleskip。tocloft 包提供了控制目录、图表列表和表格列表的排版方法。—— TOCLOFT PACKAGE DOUCMENTATION\usepackage{tocloft} \setlength\ctfbeforesecskip{2pt} \setlength\cftaftertoctitleskip{30pt} 默认目录定制目录边框在文档中使用包 hyperref 时，目录中的 LaTeX 章节列表和包含 \url 的引用都有边框，如下图所示。要删除这些边框，请在导言区中包括以下内容，你将看到目录中没有任何边框。\usepackage{hyperref} \hypersetup{ pdfborder = {0 0 0}} 要修改标题部分的字体、样式或颜色，请使用程序包 titlesec。在本例中，你将更改节、子节和三级子节的字体大小、字体样式和字体颜色。首先，在导言区中增加以下内容。\usepackage{titlesec} \titleformat*{\section}{\Huge\bfseries\color{darkblue}} \titleformat*{\subsection}{\huge\bfseries\color{darkblue}} \titleformat*{\subsubsection}{\Large\bfseries\color{darkblue}} 仔细看看代码，\titleformat*{\section} 指定要使用的节的深度。上面的示例最多使用第三个深度。{\Huge\bfseries\color{darkblue}} 部分指定字体大小、字体样式和字体颜色。页面样式要自定义的页眉和页脚，请使用 fancyhdr。此示例使用此包修改页面样式、页眉和页脚。下面的代码简要描述了每个选项的作用。\pagestyle{fancy} %for header t…

LaTex 排版 （2）：表格
type: item
date: 2021-02-23T19:36:54+08:00
description: LaTeX 提供了许多工具来创建和定制表格，在本系列中，我们将使用 tabular 和 tabularx 环境来创建和定制表。基础表格要创建表，只需指定环境 \begin{tabular}{列选项}：\begin{tabular}{c|c} Release &Codename \\ \hline Fedora Core 1 &Yarrow \\ Fedora Core 2 &Tettnang \\ Fedora Core 3 &Heidelberg \\ Fedora Core 4 &Stentz \\ \end{tabular} 在上面的示例中，花括号中的 ”{c|c}” 表示文本在列中的位置。下表总结了位置参数及其说明。参数位置c将文本置于中间l将文本左对齐r将文本右对齐p{宽度}文本对齐单元格顶部m{宽度}文本对齐单元格中间b{宽度}文本对齐单元格底部m{宽度} 和 b{宽度} 都要求在最前面指定数组包。使用上面的例子，让我们来详细讲解使用的要点，并描述你将在本系列中看到的更多选项：选项意义&定义每个单元格，这个符号仅用于第二列\\这将终止该行并开始一个新行``指定表格中的垂直线（可选）\hline指定表格中的水平线（可选）*{数量}{格式}当你有许多列时，可以使用这个，并且是限制重复的有效方法` `指定表格中垂直双线定制表格学会了这些选项，让我们使用这些选项创建一个表。\begin{tabular}{*{3}{|l|}} \hline \textbf{Version} &\textbf{Code name} &\textbf{Year released} \\ \hline Fedora 6 &Zod &2006 \\ \hline Fedora 7 &Moonshine &2007 \\ \hline Fedora 8 &Werewolf &2007 \\ \hline \end{tabular} 管理长文本如果列中有很多文本，那么它的格式就不好处理，看起来也不好看。下面的示例显示了文本的格式长度，我们将在导言区中使用 blindtext，以便生成示例文本。\begin{tabular}{|l|l|}\hline Summary &Description \\ \hline Test &\blindtext \\ \end{tabular} 正如你所看到的，文本超出了页面宽度；但是，有几个选项可以克服这个问题。指定列宽，例如 m{5cm}利用 tablarx 环境，这需要在导言区中引用 tablarx 宏包。使用列宽管理长文本通过指定列宽，文本将被折行为如下示例所示的宽度。\begin{tabular}{|l|m{14cm}|} \hline Summary &Description \\ \hline Test &\blindtext \\ \hline \end{tabular}\vspace{3mm} 使用 tabularx 管理长文本在我们利用表格之前，我们需要在导言区中加上它。tabularx 方法见以下示例：\begin{tabularx}{宽度}{列选项}。\begin{tabularx}{\textwidth}{|l|X|} \hline Summary & Tabularx Description\\ \hline Text &\blindtext \\ \hline \end{tabularx} 请注意，我们需要处理长文本的列在花括号中指定了大写 X。合并行合并列有时需要合并行或列。本节描述了如何完成。要使用 multirow 和 multicolumn，请将 multirow 添加到导言区。合并行multirow 采用以下参数 \multirow{行的数量}{宽度}{文本}，让我们看看下面的示例。\begin{tabular}{|l|l|}\hline Release &Codename \\ \hline Fedora Core 4 &Stentz \\ \hline \multirow{2}{*}{MultiRow} &Fedora 8 \\ &Werewolf \\ \hline \end{tabular} 在上面的示例中，指定了两行，* 告诉 LaTeX 自动管理单元格的大小。合并列multicolumn 参数是 {multicolumn{列的数量}{单元格选项}{位置}{文本}，下面的示例演示合并列。\begin{tabular}{|l|l|l|}\hline Release &Codename &Date \\ \hline Fedora Core 4 &Stentz &2005 \\ \hline \multicolumn{3}{|c|}{Mulit-Column} \\ \hli…

LaTeX 排版（1）：列表
type: item
date: 2021-02-13T17:41:11+08:00
description: 本系列基于前文《在 Fedora 上用 LaTex 和 TeXstudio 排版你的文档》和《LaTeX 基础》，本文即系列的第一部分，是关于 LaTeX 列表的。列表类型LaTeX 中的列表是封闭的环境，列表中的每个项目可以取一行文字到一个完整的段落。在 LaTeX 中有三种列表类型：itemize： 无序列表 unordered list / 项目符号列表 bullet list enumerate： 有序列表 ordered list description： 描述列表 descriptive list 创建列表要创建一个列表，需要在每个项目前加上控制序列 \item，并在项目清单前后分别加上控制序列 \begin{<类型>} 和 \end{<类型>}（将其中的<类型>` 替换为将要使用的列表类型），如下例：itemize（无序列表）\begin{itemize} \item Fedora \item Fedora Spin \item Fedora Silverblue \end{itemize} enumerate（有序列表）\begin{enumerate} \item Fedora CoreOS \item Fedora Silverblue \item Fedora Spin \end{enumerate} description（描述列表）\begin{description} \item[Fedora 6] Code name Zod \item[Fedora 8] Code name Werewolf \end{description} 列表项目间距可以通过在导言区加入 \usepackage{enumitem} 来自定义默认的间距，宏包 enumitem 启用了选项 noitemsep 和控制序列 \itemsep，可以在列表中使用它们，如下例所示：使用选项 noitemsep将选项 noitemsep 封闭在方括号内，并同下文所示放在控制序列 \begin 之后，该选项将移除默认的间距。\begin{itemize}[noitemsep] \item Fedora \item Fedora Spin \item Fedora Silverblue \end{itemize} 使用控制序列 \itemsep控制序列 \itemsep 必须以一个数字作为后缀，用以表示列表项目之间应该有多少空间。\begin{itemize} \itemsep0.75pt \item Fedora Silverblue \item Fedora CoreOS \end{itemize} 嵌套列表LaTeX 最多最多支持四层嵌套列表，如下例：嵌套无序列表\begin{itemize}[noitemsep] \item Fedora Versions \begin{itemize} \item Fedora 8 \item Fedora 9 \begin{itemize} \item Werewolf \item Sulphur \begin{itemize} \item 2007-05-31 \item 2008-05-13 \end{itemize} \end{itemize} \end{itemize} \item Fedora Spin \item Fedora Silverblue \end{itemize} 嵌套有序列表\begin{enumerate}[noitemsep] \item Fedora Versions \begin{enumerate} \item Fedora 8 \item Fedora 9 \begin{enumerate} \item Werewolf \item Sulphur \begin{enumerate} \item 2007-05-31 \item 2008-05-13 \end{enumerate} \end{enumerate} \end{enumerate} \item Fedora Spin \item Fedora Silverblue \end{enumerate} 每种列表类型的列表样式名称enumerate（有序列表）itemize（无序列表）\alph* （小写字母）$\bullet$ （●）\Alph* （大写字母）$\cdot$ （•）\arabic* （阿拉伯数字）$\diamond$ （◇）\roman* （小写罗马数字）$\ast$ （✲）\Roman* （大写罗马数字）$\circ$ （○） $-$ （－）按嵌套深度划分的默认样式嵌套深度enumerate（有序列表）itemize（无序列表）1阿拉伯数字（●）2小写字母（－）3小写罗马数字（✲）4…