1. 字体和字号

LaTeX\LaTeXLATE​X 根据文档的逻辑结构(章节、脚注等)来选择默认的字体样式以及字号. 需要更改字体样式或字号的话,可以使用下表中列出的命令:

{\small The small and
\textbf{bold} Romans ruled}
{\Large all of great big
{\itshape Italy}.}

字体的各种属性相互独立(“正交”),用户可以改变字体的大小,而仍然保留字体原有的粗体或者斜体的特.

1.1 字体样式

LaTeX\LaTeXLATE​X 提供了两组修改字体的命令,如前表所示,其中诸如 \bfseries 形式的命令将会影响之后所有的字符,如果想要让它在局部生效,需要用花括号分组,也就是写成 {\bfseries ⟨sometext⟩} 这样的形式;对应的 \textbf 形式带一个参数,只改变参数内部的字体,更为常用.

1.2 字号

字号命令实际大小依赖于所使用的文档类及其选项,下表列出了这些命令在标准文档类中的绝对大小,单位为 pt.

使用字号命令的时候,通常也需要用花括号进行分组,如同 \rmfamily 那样.

He likes {\LARGE large and
{\small small} letters}.

LaTeX\LaTeXLATE​X 还提供了一个基础的命令 \fontsize 用于设定任意大小的字号:

\fontsize{⟨size⟩}{⟨base line-skip⟩}

\fontsize 用到两个参数,⟨size⟩ 为字号,⟨base line-skip⟩ 为基础行距. 上表中的命令也都各自设定了与字号对应的基础行距,大小为字号的 1.21.21.2 倍. 如果不是在导言区,\fontsize 的设定需要 \selectfont 命令才能立即生效,而前表中的 666 个命令的字号设定都是立即生效的.

1.3 选用字体宏包

许多字体宏包为我们完成了整套配置,我们可以在调用宏包之后,照常使用 \bfseries\ttfamily 等我们熟悉的命令:

1.4 字体编码

切换字体编码要用到 fontenc 宏包:

\usepackage[T1]{fontenc}

fontenc 宏包是用来配合传统的 LaTeX\LaTeXLATE​X 字体的,如上表中的一些传统字体宏包. 如果使用 xelatex 编译方式,并使用 fontenc 宏包调用 ttfotf 格式字体,就不要再使用 fontenc 宏包. 使用上表中的字体宏包之前最好查看一下宏包的帮助文档,了解使用方法和注意事项.

1.5 使用 fontspec 宏包更改字体

xelatexlualatex 编译命令能够支持直接调用系统和 TeX\TeXTE​X 发行版中的 .ttf.otf 格式字体. 相比于前文介绍的字体宏包,我们有了更多自由修改字体的余地.

xelatexlualatex 命令下支持用户调用字体的宏包是 fontenc, 宏包提供了几个设置全局字体的命令,设置 \rmfamily 等对应命令的默认字体:

\setmainfont{⟨font name⟩}[⟨font features⟩]
\setsansfont{⟨font name⟩}[⟨font features⟩]
\setmonofont{⟨font name⟩}[⟨font features⟩]

其中 ⟨font name⟩ 使用字体的文件名(带扩展名)或者字体的英文名称. ⟨font features⟩ 用来手动配置对应的粗体或斜体,比如为 Windows 下的无衬线字体 Arial 配置粗体和斜体(通常情况下自动检测并设置对应的粗体和斜体,无需手动指定):

\setsansfont[BoldFont={Arial Bold}, ItalicFont={Arial Italic}]{Arial}

⟨font features⟩ 还能配置字体本身的各种特性,这里不再赘述,感兴趣的读者请参考 fontenc 宏包的帮助文档.

需要注意的是:fontenc 宏包会覆盖数学字体设置。需要调用表上表中列出的一些数学字体宏包时,应当在调用 fontenc 宏包时指定 no-math 选项. fontenc 宏包可能被其它宏包或文档类(如 ctex 文档类)自动调用时,则在文档开头的 \documentclass 命令里指定 no-math 选项.

1.6 在 ctex 宏包或文档类中更改中文字体

ctex 宏包或文档类提供了和 fontspec 宏包非常类似的语法设置中文字体:

\setCJKmainfont{⟨font name⟩}[⟨font features⟩]  % 衬线字体
\setCJKsansfont{⟨font name⟩}[⟨font features⟩]  % 无衬线字体
\setCJKmonofont{⟨font name⟩}[⟨font features⟩]  % 等宽字体,一般是打印机字体% 一般论文中设置字体
% 如果不是 ctex 文档类,要 \RequirePackage{xeCJK}
\setmainfont{Times New Roman}  % 设置默认英文字体 Times
\setCJKmainfont[AutoFakeBold=2,AutoFakeSlant=true]{SimSun}  % 设置默认中文字体 宋体

由于中文字体少有对应的粗体或斜体,⟨font features⟩ 里多用其他字体来配置,比如在 Windows 中设定基本字体为宋体,并设定对应的 BoldFont 为黑体,ItalicFont 为楷体:

\setCJKmainfont{SimSun}[BoldFont=SimHei, ItalicFont=KaiTi]

2. 文字装饰和强调

强调文字的方法,或者是添加下划线等装饰物,或者是改变文字的字体.

LaTeX\LaTeXLATE​X 定义了 \underline 命令用来为文字添加下划线:

An \underline{underlined} text.

\underline 命令生成下划线的样式不够灵活,不同的单词可能生成高低各异的下划线,并且无法换行. ulem 宏包提供了更灵活的解决方案,它提供的 \uline 命令能够轻松生成自动换行的下划线:

An example of \uline{somelong and \\
underlined words.}

前一节介绍了 \emph 命令,它将文字变为斜体以示强调,而如果在已强调的文字中嵌套使用 \emph 命令,命令内则使用直立体文字:

Some \emph{emphasized words,
including \emph{double-emphasized}
words}, are shown here.

3. 段落格式和间距

3.1 长度和长度变量

在前面的一些章节,我们已经见到一些长度和长度变量的用法,这里首先统一介绍长度和长度变量.

长度的数值 ⟨length⟩ 由数字和单位组成,常用的单位见下表:

在一些情况下还会用到可伸缩的“弹性长度”,如 12pt plus 2pt minus 3pt 表示基础长度为 12pt,可以伸展到 14pt,也可以收缩到 9pt. 也可只定义 plus 或者 minus 的部分,如 0pt plus 5pt.

长度的数值还可以用长度变量本身或其倍数来表达,如 2.5\parindent 等.

LaTeX\LaTeXLATE​X 预定义了大量的长度变量用于控制版面格式,如页面宽度和高度、首行缩进、段落间距等. 如果需要自定义长度变量,需使用如下命令:

\newlength{\⟨length command⟩}

长度变量可以用 \setlength 赋值,或用 \addtolength 增加长度:

\setlength{\⟨length command⟩}{⟨length⟩}
\addtolength{\⟨length command⟩}{⟨length⟩}

3.2 行距

前文中我们提到过 \fontsize 命令可以为字号设定对应的行距,但我们很少那么用,更常用的办法是在导言区使用 \linespread 命令:

\linespread{⟨factor⟩}

其中 ⟨factor⟩ 作用于基础行距而不是字号,缺省的基础行距是 1.21.21.2 倍字号大小(参考 \fontsize 命令),因此使用 \linespread{1.5} 意味着最终行距为 1.81.81.8 倍的字号大小.

如果不是在导言区全局修改,而想要局部地改变某个段落的行距,需要用 \selectfont 命令使 \linespread 命令的改动立即生效:

{\linespread{2.0}\selectfont
The baseline skip is set to be
twice the normal baseline skip.
Pay attention to the \verb|\par|
command at the end. \par}In comparison, after the
curly brace has been closed,
everything is back to normal.

字号的改变是即时生效的,而行距的改变直到文字分段时才生效,如果需要改变某一部分文字的行距,那么不能简单地将文字包含在花括号内. 注意下面两个例子中 \par 命令的位置,包括上一个例子的写法:

{\Large Don't read this!
It is not true.
You can believe me!\par}

{\Large This is not true either.
But remember I am a liar.}\par

3.3 段落格式

以下长度分别为段落的左缩进、右缩进和首行缩进:

\setlength{\leftskip}{⟨length⟩}
\setlength{\rightskip}{⟨length⟩}
\setlength{\parindent}{⟨length⟩}

它们和设置行距的命令一样,在分段时生效.
控制段落缩进的命令为:

\indent
\noindent

LaTeX\LaTeXLATE​X 默认在段落开始时缩进,长度为用上述命令设置的 \parindent. 如果需要在某一段不缩进,可在段落开头使用 \noindent 命令. 相反地,\indent 命令强制开启一段首行缩进的段落,在段落开头使用多个 \indent 命令可以累加缩进量.

LaTeX\LaTeXLATE​X 还默认在 \chapter\section 等章节标题命令之后的第一段不缩进,如果不习惯这种设定,可以调用 indentfirst 宏包,令第一段的首行缩进照常.

段落间的垂直间距为 \parskip,如设置段落间距在 0.8ex1.5ex 变动:

\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

3.4 水平间距

LaTeX\LaTeXLATE​X 默认为将单词之间的“空格”转化为水平间距,如果需要在文中手动插入额外的水平间距,可使用 \hspace 命令:

This\hspace{1.5cm}is a space of 1.5 cm.

\hspace 命令生成的水平间距如果位于一行的开头或末尾,则有可能因为断行而被舍弃,可使用 \hspace* 命令代替 \hspace 命令得到不会因断行而消失的水平间距.

命令 \stretch{⟨n⟩} 生成一个特殊弹性长度,参数 ⟨n⟩ 为权重,它的基础长度为 0pt,但可以无限延伸,直到占满可用的空间. 如果同一行内出现多个 \stretch{⟨n⟩},这一行的所有可用空间将按每个 \stretch 命令给定的权重 ⟨n⟩ 进行分配.

命令 \fill 相当于 \stretch{1}

x\hspace{\stretch{1}}
x\hspace{\stretch{3}}
x\hspace{\fill}x

在正文中用 \hspace 命令生成水平间距时,往往使用 em 作为单位,生成的间距随字号大小而变. 我们在数学公式中见过 \quad\qquad 命令,它们也可以用于文本中,分别相当于 \hspace{1em}\hspace{2em}

{\Large big\hspace{1em}y}\\
{\Large big\quad y}\\
nor\hspace{2em}mal\\
nor\qquad mal\\
{\tiny tin\hspace{1em}y}\\
{\tiny tin\quad y}

3.5 垂直间距

在页面中,段落、章节标题、行间公式、列表、浮动体等元素之间的间距是 LaTeX\LaTeXLATE​X 预设的,比如 \parskip,默认设置为 0pt plus 1pt.

如果我们想要人为地增加段落之间的垂直间距,可以在两个段落之间的位置使用 \vspace 命令:

A paragraph.\vspace{2ex}
Another paragraph.

\vspace 命令生成的垂直间距在一页的顶端或底端可能被“吞掉”,类似 \hspace 在一行的开头和末尾那样. 对应地,\vspace* 命令产生不会因断页而消失的垂直间距. \vspace 也可用\stretch 设置无限延伸的垂直长度.

在段落内的两行之间增加垂直间距,一般通过给断行命令 \\ 加可选参数,如 \\[6pt]\\*[6pt]. \vspace 也可以在段落内使用,区别在于 \vspace 只引入垂直间距而不断行:

Use command \verb|\vspace{12pt}|
to add \vspace{12pt} some spaces
between lines in a paragraph.Or you can use \verb|\\[12pt]|
to \\[12pt] add vertical space,
but it also breaks the line.

另外 LaTeX\LaTeXLATE​X 还提供了 \bigskip, \medskip, \smallskip 来增加预定义长度的垂直间距.

\parbox[t]{3em}{TeX\par TeX}
\parbox[t]{3em}{TeX\par\smallskip TeX}
\parbox[t]{3em}{TeX\par\medskip TeX}
\parbox[t]{3em}{TeX\par\bigskip TeX}

4. 页面和分栏

控制页边距的参数由下图(奇数页)中给出的各种长度变量控制.

可以用 \setlength 命令修改这些长度变量,以达到调节页面尺寸和边距的作用;反之也可以利用这些长度变量来决定排版内容的尺寸,如在 tabularx 环境或 \includegraphics 命令的参数里,设置图片或表格的宽度为 0.8\textwidth .

页边距等比较直观的参数则必须间接设置。我们根据上图将各个方向的页边距计算公式给出(以奇数页为例):

⟨left-margin⟩ = 1in + \hoffset + \oddsidemargin
⟨right-margin⟩ = \paperwidth − ⟨left-margin⟩ − \textwidth
⟨top-margin⟩ = 1in + \voffset + \topmargin + \headheight + \headsep
⟨bottom-margin⟩ = \paperheight − ⟨top-margin⟩ − \textheight

如果需要设置合适的 ⟨left-margin⟩⟨right-margin⟩,就要通过上述方程组把 \oddsidemargin\textwidth 等参数解出来!

幸好 geometry 宏包提供了设置页边距等参数的简便方法,能够帮我们完成背后繁杂的计算.

4.1 利用 geometry 宏包设置页面参数

geometry 宏包的调用方式类似于 graphicx,你既可以调用 geometry 宏包然后用其提供的 \geometry 命令设置页面参数:

\usepackage{geometry}
\geometry{⟨geometry-settings⟩}

也可以将参数指定为宏包的选项:

\usepackage[⟨geometry-settings⟩]{geometry}

其中 ⟨geometry-settings⟩ 多以⟨key⟩=⟨value⟩ 的形式组织.

比如,符合 Microsoft Word 习惯的页面设定是 A4 纸张,上下边距 1 英寸,左右边距 1.25 英寸,于是我们可以通过如下两种等效的方式之一设定页边距:

\usepackage[left=1.25in,right=1.25in,top=1in,bottom=1in]{geometry}
% or like this:
\usepackage[hmargin=1.25in,vmargin=1in]{geometry}

又比如,需要设定周围的边距一致为 1.25 英寸,可以用更简单的语法:

\usepackage[margin=1.25in]{geometry}

对于书籍等双面文档,习惯上奇数页右边、偶数页左边留出较多的页边距,而书脊一侧的奇数页左边、偶数页右边页边距较少. 我们可以这样设定:

\usepackage[inner=1in,outer=1.25in]{geometry}

更详细的用法可查阅 geometry 宏包的帮助文档.

4.2 页面内容的垂直对齐

LaTeX\LaTeXLATE​X 默认将页面内容在垂直方向分散对齐. 对于有大量图表的文档,许多时候想要做到排版匀称的页面很困难,垂直分散对齐会造成某些页面的垂直间距过宽,还可能报大量的
Underfull \vbox 消息。LaTeX\LaTeXLATE​X 还提供了另一种策略:将页面内容向顶部对齐,给底部留出高度不一的空白.

以下命令分别令页面在垂直方向向顶部对齐/分散对齐:

\raggedbottom
\flushbottom

4.3 分栏

LaTeX\LaTeXLATE​X 支持简单的单栏或双栏排版.

标准文档类的全局选项 onecolumntwocolumn 可控制全文分单栏或双栏排版。LaTeX\LaTeXLATE​X 也提供了切换单/双栏排版的命令:

\onecolumn
\twocolumn[⟨one-column top material⟩]

\twocolumn 支持带一个可选参数,用于排版双栏之上的一部分单栏内容.

切换单/双栏排版时总是会另起一页(\clearpage)。在双栏模式下使用 \newpage 会换栏而不是换页;\clearpage 则能够换页.

双栏排版时每一栏的宽度为 \columnwidth,它由 \textwidth 减去 \columnsep 的差除以 2 得到. 两栏之间还有一道竖线,宽度为 \columnseprule,默认为零,也就是看不到竖线.

5. 页眉页脚

5.1 基本的页眉页脚样式

LaTeX\LaTeXLATE​X 中提供了命令 \pagestyle 来修改页眉页脚的样式:

\pagestyle{⟨page-style⟩}

命令 \thispagestyle 只影响当页的页眉页脚样式:

\thispagestyle{⟨page-style⟩}

⟨page-style⟩ 参数为样式的名称,在 LaTeX\LaTeXLATE​X 里预定义了四类样式:

其中 headings 的情况较为复杂:

  • article 文档类,twoside 选项偶数页为页码和节标题,奇数页为小节标题和页码
  • article 文档类,oneside 选项页眉为节标题和页码
  • report / book 文档类,twoside 选项偶数页为页码和章标题,奇数页为节标题和页码
  • report / book 文档类,oneside 选项页眉为章标题和页码

\pagenumbering 命令令我们能够改变页眉页脚中的页码样式:

\pagenumbering{⟨style⟩}

⟨style⟩ 为页码样式,默认为 arabic(阿拉伯数字),还可修改为 roman(小写罗马数字)、Roman(大写罗马数字)等. 注意使用 \pagenumbering 命令后会将页码重置为 111. book 文档类的 \frontmatter\mainmatter 内部就使用了 \pagenumbering 命令切换页码样式.

5.2 手动更改页眉页脚的内容

对于 headings 或者 myheadings 样式,LaTeX\LaTeXLATE​X 允许用户使用命令手动修改页眉上面的内容,特别是因为使用了 \chapter* 等命令而无法自动生成页眉页脚的情况:

\markright{⟨right-mark⟩}
\markboth{⟨left-mark⟩}{⟨right-mark⟩}

在双面排版、headings /myheadings 页眉页脚样式下,⟨left-mark⟩⟨right-mark⟩ 的内容分别预期出现在左页(偶数页)和右页(奇数页). 事实上 \chapter\section 等章节命令内部也使用 \markboth 或者 \markright 生成页眉.

5.3 fancyhdr 宏包

fancyhdr 宏包改善了页眉页脚样式的定义方式,允许我们将内容自由安置在页眉和页脚的左、中、右三个位置,还为页眉和页脚各加了一条横线.

fancyhdr 自定义了样式名称 fancy. 使用 fancyhdr 宏包定义页眉页脚之前,通常先用 \pagestyle{fancy} 调用这个样式. 在 fancyhdr 中定义页眉页脚的命令为:

\fancyhf[⟨position⟩]{…}
\fancyhead[⟨position⟩]{…}
\fancyfoot[⟨position⟩]{…}
  • 其中 ⟨position⟩L(左)/ C(中)/ R(右)以及与 O(奇数页)/ E(偶数页)字母的组合

  • \fancyhf 用于同时定义页眉和页脚,习惯上使用 \fancyhf{} 来清空页眉页脚的设置

下面给出了 fancyhdr 基础用法的一个示例,效果为将章节标题放在和 headings 一致的位置,但使用加粗格式;页码都放在页脚正中;修改横线宽度,“去掉”页脚的横线.

% 在导言区使用此代码
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}
\fancyfoot[C]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.4pt} % 注意不用\setlength
\renewcommand{\footrulewidth}{0pt}

fancyhdr 还支持用 \fancypagestyle 为自定义的页眉页脚样式命名,或者重新定义已有的样式如 plain等:

% 自定义myfancy 样式
\fancypagestyle{myfancy}{%
\fancyhf{}
\fancyhead{...}
\fancyfoot{...}
}
% 使用样式
\pagestyle{myfancy}

LaTeX 排版(三)——排版样式设定相关推荐

  1. Word排版之段落样式+如何创建一个三线表外观的表格样式

      通过建立正文.标题.表格等的段落样式可以方便的统一调整文章各部分样式类型.点击样式栏右下角的小三角可以弹出样式对话框,执行新建.管理.删除样式等操作. 首先建立"论文正文"样式 ...

  2. LaTeX 文档排版教程

    很全的教程:LaTeX 文档排版教程 by 吕荐瑞 暨南大学数学系 目录 第一部分:从零开始 第一节:开始使用 第二节:快速入门 第三节:撰写文本 第四节:撰写公式 第五节:错误处理 第六节:命令速查 ...

  3. 3. LaTeX图片的排版、引用与格式

    3. LaTeX图片的排版.引用与格式 1.LaTeX 图片排版方式   在 LaTex 排版的论文写作中,LaTex 的所有宏包文件都要写在 \documentclass 命令之后和 \begin{ ...

  4. LaTeX论文自动化排版

    本文介绍了LaTeX的一些基本知识,重点描述了LaTeX论文自动化排版的一些核心技巧,帮助读者朋友们提高写作的效率和自动化程度. 1. LaTeX的基本介绍 在介绍LaTeX前,必须先了解一下TeX及 ...

  5. LaTeX 参考文献的排版与引用

    6. LaTeX 参考文献的排版与引用_Training.L的博客-CSDN博客_latex参考文献格式

  6. LaTex算法代码排版-algorithm2e

    LaTex算法代码排版-algorithm2e 1.使用如下宏包 2.示例代码 3.生成效果 4.参考链接 1.使用如下宏包 \usepackage[ruled]{algorithm2e} %带竖线 ...

  7. 计算机页面格式和编排,计算机基础教案word排版(三)页面格式设置.doc

    计算机基础教案word排版(三)页面格式设置 任课教师 姓 名任课 班级科 目计算机文化基础授课日期第 10 周星期 一 4月16日 本教案授课节数2审批课题&2.4 word排版(三)页面格 ...

  8. 计算机页面格式和编排,计算机基础教案 word排版(三)页面格式设置

    计算机基础教案 word排版(三)页面格式设置 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 1任课教师 姓 名任课 班级科 目计 ...

  9. 计算机页面格式,计算机基础教案 word排版(三)页面格式设置.doc

    计算机基础教案 word排版(三)页面格式设置.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 112.组织学生分组实习训练及注意事项 ...

  10. 计算机页面格式和编排,计算机基础教案word排版(三)页面格式设置

    <计算机基础教案word排版(三)页面格式设置>由会员分享,可在线阅读,更多相关<计算机基础教案word排版(三)页面格式设置(5页珍藏版)>请在人人文库网上搜索. 1.任课教 ...

最新文章

  1. Bitcoin.com开发人员正创建一个用Rust语言编写的BCH全节点
  2. mysql获取多层嵌套json_使用两个mySQL查询来创建嵌套的JSON数组
  3. 在程序中设置最小化、最大化、关闭按钮
  4. oracle 触发器的种类和触发事件
  5. ElasticSearch5.3的 head插件启动与关闭
  6. xposed 修改参数_【Android 原创】2020春节红包第三题Xposed框架Hook的应用
  7. 结构与算法(04):排序规则与查找算法
  8. 计算机基础教学模式,计算机基础行动导向教学模式的应用
  9. 我用Python爬了点你们需要的电影,这些电影真的很不错~
  10. 将redis加入到Windows服务开机启动
  11. Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件
  12. pandas导入导出数据
  13. 信息熵及其Python的实现
  14. 数值优化——牛顿迭代法求解函数零点
  15. 淮安php照片,一组图 看超罕见的老淮安 看超震撼的新淮安
  16. linux系统使用crontab定时删除日志文件
  17. FATE —— 二.4.2 Criteo上的联邦经典CTR模型训练
  18. 【不就是java设计模式吗】设计模式七大原则,用代码对比方式,化抽象为具体,实打实的教会你
  19. 什么是soft wrap,什么是IDEA的soft wrap,如何设置IDEA默认所有类型的文件都自动换行(如何设置用IDEA打开markdown文件不自动换行)
  20. Vue3日期选择器(DatePicker)

热门文章

  1. 软考高级系统架构设计师系列论文:详细介绍一篇论文的万能模版,快速了解如何写好一篇架构设计师论文
  2. 智能优化算法的常用改进方法
  3. PMP 项目管理过程组与知识领域梳理
  4. 设置背景图片大小的方法
  5. java等额本息、等额本金计算 记录一下
  6. 苹果发布iOS16正式版,各机型升级建议
  7. 3.PS 缩小放大、移动、选区工具
  8. Nods.js安装配置(windows)
  9. 基于SLAM的机器人的自主定位导航
  10. 日常生活 - 打印机如何扫描文件到电脑上