LaTeX入门|(1)从Word到LaTeX:LateX排版常用指令

从word的需要到latex的使用

写在前面

学习latex之前大多数使用word的,甚至精通word排版的,对于latex这种使用代码编程进行论文排版或ppt制作就显得比较费劲,比如平时很简单的居中、加粗、空行、插图等一键操作,到了latex中就抓瞎。

为了写个作业模板(为论文模板作准备),我尝试了word的一些常用功能,并总结了其LaTeX的表述方式,总结在下文中。这里并没有做到干湿分离(命令与文本分离),只是单纯为了实现想要的操作。

一、准备工作

环境准备

环境:MacOS Catalina 10.15.3
tex版本:Texlive2019
编辑器:TexStudio or VScode

下载texlive2019后一路next即可,在终端验证是否安装成功,最好打开texlive utilitly进行安装包的更新,以防出错;下载texstudio之后,打开设置–>常规–>语言,设置为中文,打开构建,选择默认编译器为xeLatex。

Latex的构成

latex可以分成命令与文本,故大的构成为导言区与正文区,导言区的基本指令为指明文档类与加载宏包

\documentclass[选项]{文档类}
\usepackage{宏包}

在这里插入图片描述

正文区的基本构成如下:

\begin{document}
	正文
\end{document}

Hello TeX

加载文档类(article、book、letter等),加载宏包(ctex、amsmath等)在document环境中可以输入正文,简单示例如下:

\documentclass[a4paper, UTF8]{article} % 使用UTF-8编码,默认纸张为A4
\usepackage{ctex}
	\begin{document}
		This is my first Latex document.\\
		Hello TeX!
	\end{document}

macOS此时会出现无法加载中文的情况,及时使用UTF8
方法一:
\usepakage[fontset=mac]{ctex}
方法二:
\usepakage{CJK}
\setCJKmainfont{Songti SC} %使用系统中文字体库

二、中文排版说明

用word写文档时,一般使用默认设置,然后直接打字、空格、回车或者点点工具栏即可完成一篇文档

页面设置-geometry

latex进行页面设置需要加载geometry宏包。在指明文档类的时候可以设置纸张大小,也就是设置了paperheight和paperwidth,我们可以从word页面设置上将参数复制过来,使用如下命令进行页面设置。
在这里插入图片描述

\usepackage{geometry}
\geometry{
	a4paper,
	left=3.17cm,
	right=3.17cm,
	top=2.54cm,
	bottom=2.54cm,
	headsep=1.5cm,
	footskip=1.75cm
}

页眉页脚-fancy

页眉页脚设置需调用 f a n c y fancy fancy宏包。
word中设置页眉页脚最常用的是页码格式、页眉格式、首页不同、奇偶不同以及下划线等。latex中页眉页脚共有6个位置,分别是页眉和页脚的左、中、右,通过如下命令可以完成.

页眉页脚内容填写、奇偶页不同等设置,parameter见下表。

\fancy[parameter]{content}

在这里插入图片描述

首页不同、页码格式等见下表,参数具体意思可查看手册

word功能Latex命令参数
此页无页码\thispagestyle{empty}empty plain headings muheadings
设置起始页码\setcounter{page}{num}num为设定的数字
设置页码格式\pagenumbering{style}arabic roman Roman alpha Alph
设置横线宽度\renewcommand{\headrulewidth}{0pt}设定数字为期望大小(设置页脚对应为\footrulewidth)

像论文通常要求页眉的线为文武线,可以通过重新定义headrule来绘制文武线并调整其到页眉的距离

\renewcommand{\headrule}{
	\vspace{10pt}               %定制横线到页眉的距离
	\hrule width\headwidth height1.6pt \vspace{1.2pt}   %定制文武线粗细及间距
	\hrule width\headwidth height0.4pt
}

此外,如论文中常见的第一章与第二章页眉不同,可以在结束第一章文本是,再次使用上述命令进行更换。

一个页眉页脚的实例如下:

%导言区
\pagestyle{fancy}
	\fancyhead[C]{\zihao{3}\songti 大作业报告}
	\fancyhead[LE, RO]{\zihao{-3}\songti 深度学习}
	\fancyfoot[C]{\Large \thepage}                %\thepage表示该页页码,并设置其大小
	\renewcommand{\headrulewidth}{0pt}     %取消页眉横线
	\renewcommand{\footrulewidth}{0pt}     %取消页脚横线

%正文区
\begin{document}
	\thispagestyle{empty}       %首页不设置页码
	\newpage                    %另起一页
	\setcounter{page}{1}        %第二页页码为1
    \pagenumbering{arabic}      %页码格式为阿拉伯数字
\end{document}

文字相关设置

在设置大小时,latex中的距离度量如下:
在这里插入图片描述

字号

article文档类默认字体大小为10pt,可以在调用文档类时更改默认大小

\documentclass[12pt]{article}

word中可以直接选择字体字号,而latex中自然也有着对应规则:
在这里插入图片描述
在默认字号下,通过使用字体命令即可获得对应大小的输出,对于中文,ctex宏包下也有着更简便的命令:
在这里插入图片描述

注意,当局部更改字号时,最好使用大括号将命令与所选文本同时框选。

字体

一般的对非中文字符,常用的为新罗马字体,可以在导言区统一设置

\setmainfont{Times New Roman}    %字体名称需要与设备字体库相符

对于中文字体,就没有我们word那么舒服的使用各种花式字体,通常Ctex宏包下预定义了一下四种中文字体

\songti    \heiti     \fangsong       \kaishu

不用说也知道是什么字体了,同样地,我们也可以在导言区统一设置默认字体

\setCJKmainfont{\songti}

颜色-color

字体的颜色需要调用宏包 c o l o r color color,具体地

\textcolor{red}{text}   %red blue green black white cyan yellow magenta

对齐方式

% 方式一
\begin{center}    %居中center、居左flushleft、居右flushright
	Hello tex!
\end{center}

% 方式二
{\centering  Hello tex!}
{\raggedleft Hello tex!}
{\raggedright Hello tex!}

空格、换行与分段

Latex的这三个操作同word有很大不同,word中空格使用空格键即可,latex可使用\quad或者(空格)进行一次空格;使用\进行换行,latex中的空行显示为分段,也可以使用\par命令进行分段。

其他

% 加粗 方式一
{\textbf Hello tex!}

% 加粗 方式二
{\bfseries Hello tex!}
% 斜体 方式一
{\textit Hello tex!}

% 斜体 方式二
{\itseries Hello tex!}

% 下划线
{\underline Hello tex!}

行距

latex中的行距包括两部分,一个与字体大小相关,称为基本行距,另一个就是因子,可以理解成我们经常说的几倍行距。
在这里插入图片描述
关于latex的行距机制:
每一行都有一条 baseline, 同一段落中相邻两行之间的 baseline 的间距称为行距 (linespace). 一般来说,最终决定两条 baseline 之间的 linespace 距离的,是 LaTeX 的宏 \baselineskip 之中。也就是说,这个长度值,将会是一般情况下的两条 baseline 之间的距离,也就是我们最终的行距。

显然行距应当随着字号的大小变化;若不然,则对于给定的行距数值,较大字号的内容部分显得拥挤不堪。LaTeX 中的字号存储在内部宏 \f@size之中,而内部宏 \f@baselineskip 则记录了行距中和字号相关的部分。这个宏当中,它的单位和字号的单位一样,都是 pt ( 1pt = 1/72.27 inch ). LaTeX 的默认情况下,\f@baselineskip 的值是当前 \f@size 的 1.2 倍——例如,当\f@size 为 10pt 时,\f@baselineskip 的值为 12pt.
为了统一对不同字号的内容进行行距的调整,引入了因子的概念,这是一个数值(而不是长度),储存在 \f@linespread 这个宏里面。这是一个与字号无关的值,在 article 文档类中它默认是 1, 在 ctexart 中默认是 1.3. 通常我们修改行距,都是修改这个因子,而不动前段叙述的基础行距。因此就有必要将因子存储在一个外部宏(没有 @ 的宏)之中,它是\baselinestretch. 于是我们可以大致地认为,\f@linespread 和 \baselinestretch是一回事。

因此对于article文档类
行 距 = 基 础 行 距 ( 1.2 倍 字 体 大 小 ) ( b a s e l i n e s k i p 默 认 1.2 ) ∗ 因 子 ( 与 字 体 无 关 ) ( l i n e s p r e a d 、 b a s e l i n e s t r e t c h 默 认 1 ) 行距=基础行距(1.2倍字体大小)(baselineskip默认1.2) *\\ 因子(与字体无关)(linespread、baselinestretch默认1) =(1.2)(baselineskip1.2)()(linespreadbaselinestretch1)

关于行距的具体设置

% 全局设置,在导言区
\linespread{1.5}    %全局设置1.5倍行距

%局部设置,在正文区
{\linespread{1.5} \selectfont content}   %selectfont使改动立即生效 

%注意linespread这个内部宏与baselinestretch这个外部宏的区别,修改内部宏在更改字体后失效

章节格式设置-titlesec

word最好用的当然是样式了,一般论文排版时,都要先按照要求设置各种样式,然后直接使用。latex中有chapter、section、subsection等章节样式,但是如何像word那样按照自己要求的改呢?

使用ctex宏包

在ctex宏包下我们可以使用texset命令设置,对于上述各种章节名称,都有其下属性进行设置。
在这里插入图片描述在这里插入图片描述

%下面三种命令的作用相同
\CTEXset[name={第,章}, number=\chinese{section}, format=\bfseries]{section}
\ctexset={
	section = {
		name={第, 章},
		number=\chinese{section}, 
		format=\bfseries
	}
}
\ctexset={
	section/name = {第, 章},
	section/number = \chinese{section}, 
	section/format = \bfseries
}

各个属性的具体设置内容,这里只列举一下section的默认设置,触类旁通。

属性默认值
name{}
number\arabic{section}
format\Large \bfseries
aftername\quad
beforskip3.5ex plus 1ex minus .2ex
afterskip2.3ex plus .2ex
未列在内{}

使用titlesec宏包

搞不清楚,我的电脑用不了上面的命令,因此换了条路,titlesec宏包主要包含下面两个命令。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

titlesec的使用方法如下:

%使用titlesec配置了ctex默认的section格式
\usepackage{titlesec}

%\titleformat{command}[shape]{format}{label}{sep}{before-code}[after-code]
\titleformat{\section}{\Large \bfseries}{\arabic{section}}{1em}{}

%\titlespacing{command}{left}{before-sep}{after-sep}[right-sep]
\titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}

超链接-hyperref

word的超链接只需要选中,然后右键选择即可。latex的超链接需要使用 h y p e r r e f hyperref hyperref宏包。

\usepackage[colorlinks,linkcolor=blue]{hyperref}

\href{https://www.baidu.com}{baidu}

交叉引用

即在A处引用B处。latex可以在一些位置设置标签 \label{标签A},然后在其他地方引用。

在这里插入图片描述
使用\ref 和\pageref可以引用此处以及页码,使用如下:
在这里插入图片描述

图片-graphicx

word中的图片直接复制粘贴就好,latex需要调用graphicx宏包进行图片插入,如果需要几张图列在一起组成图片阵列,则需要另调用subfigure宏包。

使用代码插入图片是需要图片的存储路径的,如果某文档所需要的图片都存放在某文件夹下,可以用命令\graphicspath{path} 进行设置,而不用以后每次都输入路径,path可以用逗号分隔开多个路径。插入图片需要使用\includegraphics[parameter]{文件名},其中文件名在不冲突的情况下可以不用输入后缀。

在这里插入图片描述

同样,对于图片,我们也可以设置其浮动位置
在这里插入图片描述

优先级依次降低,一般地,我们直接一次性写上htbp即可。实例如下:

\begin{figure}[htbp]
	 \centering                  % 图片居中
	 \subfigure[BN过程示意图]{      %子图起名
		\includegraphics[width=5cm, height=4cm]{BN.png}}
	 	\hspace{10pt}            %两个字图间横向隔开10pt
	 	\subfigure[BN参数计算]{
	 		\includegraphics[width=5cm, height=4cm]{BNcode.jpg}}	
	 	\caption*{image001}      %整个图起名
	 	\label{fig:subfig}         %定义标签
	 \end{figure}

表格-tabular

word的表格即可以直接插入,也可以复制excel的数据进行粘贴。latex的表格需要调用tabular宏包。其命令格式如下:

\begin{tabular}{<column-spec>}
	<item1> & <item2> & ... \\
	\hiline
	<item1> & <item2> & ... \\
\end{tabular}

在这里插入图片描述
修改列宽可以在参数中设置,如果要修改行宽,则需要在表格前进行设置

\renewcommand \arraystretch{1.8}   %修改数字得到所需行宽

另外绘制竖线也可以定义参数,绘制横线则需要在对应位置使用\hline命令
在这里插入图片描述

论文中常用三线表格,当然可以通过更改hline的宽度进行设置,也可以使用booktabs宏包
在这里插入图片描述

列表

word中列表当有1或者一之后回车,从而生成有序列表,或者使用点、星等生成无序列表。latex直接在正文区开始enumerate或者itemize环境即可。实例如下:

在这里插入图片描述

在这里插入图片描述

代码块-listings

代码块在正式论文不怎么贴,在平时作业上可不少。word在这块不是很友好,latex通过调用listings宏包进行代码块设置。这里列举了常用的listings设置选项,并进行调用。

% 导言区
\usepackage{listings}
\lstset{                              %设置代码块
	basicstyle=\footnotesize\ttfamily,% 基本风格
	numbers=left,        % 行号
	numbersep=10pt,      % 行号间隔 
	tabsize=4,           % 缩进
	extendedchars=true,  % 扩展符号
	backgroundcolor=\color[RGB]{245,245,244},   % 设定背景颜色
	keywordstyle=\color{blue},                  % 设定关键字颜色
	numberstyle=\footnotesize\color{gray},      % 设定行号格式
	commentstyle=\it\color[RGB]{100, 200, 150}, % 设置代码注释的格式
	stringstyle=\color{red},  %设置字符串颜色
	breaklines=true,          % 自动换行
	language=python,
	frame=leftline,        % 框架左边竖线
	xleftmargin=30pt,      % 竖线左边间距
	showspaces=false,      % 空格字符加下划线
	showstringspaces=false,% 字符串中的空格加下划线
	showtabs=false,        % 字符串中的tab加下划线
}

% 正文区
\begin{lstlisting}[language=python] 
    #!/usr/bin/env python
    print('Hello world!')
\end{lstlisting}

公式-amsmath

latex的公式需要调用amsmath宏包,这里涉及公式排版、常用希腊字母表示、常用数学符号表示,因为它与markdown几乎相同,因此将在其他总结中介绍。

参考文献

在word中参考文献是个挺费劲的活,在latex通过建立ref.bib文件,在文件内输入参考文献,然后在正文相应位置使用\cite{名}即可完成一次定义,多次使用。bib格式的参考文献在谷歌学术等学术网站都有相应格式的文件,直接复制然后粘贴到bib文件中即可,不用管排列顺序,后续在正文参考文献中的顺序将根据bibliographystyle{style}进行设置,每个style对应不同的排序规则。

在这里插入图片描述

在导言区设置style,然后在正文最后插入\bibliography{ref}即可,ref为bib文件名,括号内可用逗号同时引用多个bib文件,实例如下:

\bibliographystyle{unsrt}
\begin{document}
		这部分请用高度概括的语言说明所研究问题\cite{ShafieeFast},采取的解决手段。  
	 \newpage
     \bibliography{refs}
\end{document}

%  refs.bib    bib文件
@article{ShafieeFast,
  title={Fast YOLO: A Fast You Only Look Once System for Real-time Embedded Object Detection in Video},
  author={Shafiee, Mohammad Javad and Chywl, Brendan and Li, Francis and Wong, Alexander},
}

三、制作自己的作业(论文)模板

需要综合运用上述方法,并设置cls、cfg等文件,将在另一篇博客中进行说明。

四、自主学习Latex

知道了对应word任务的常用宏包,我们以后在使用过程中可以通过调用终端或cmd学习tex的官方文档或者学习教程。

%终端或cmd下

texdoc ctex        %中文排版说明
texdoc lshort-zh   %一份不太短的latex教程

参考

[1] Latex入门(刘海洋)
[2] Latex排版全解
[3] 一份不太短的Latex教程
[4] Latex的行距机制

  • 11
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值