从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

页眉页脚设置需调用fancyfancyfancy宏包。
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

字体的颜色需要调用宏包colorcolorcolor,具体地

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

对齐方式

% 方式一
\begin{center}    %居中center、居左flushleft、居右flushrightHello 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倍字体大小)(baselineskip默认1.2)∗因子(与字体无关)(linespread、baselinestretch默认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
beforskip 3.5ex plus 1ex minus .2ex
afterskip 2.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的超链接需要使用hyperrefhyperrefhyperref宏包。

\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 pythonprint('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的行距机制

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

  1. LaTeX公式转成word公式(LaTeX公式转MathML / latex2mathml的使用)

    2021年3月10日更新 批量一键转换公式 因为又遇到了不得不往Word里放一大堆公式的作业,一个一个弄太慢了,决定弄一个一键执行的版本,效果如下. 只需要在input.txt里放入LaTeX公式,执 ...

  2. 学术写作利器——LaTeX入门笔记整理(不定期更新,附加使用心得)

    LaTeX入门教程(上) 比Word更适合学术写作的编纂语言 Credit:讲座是敝系的几个技术宅办的,作者只负责记录和整理.后面的更新是个人心得. 写这篇日志的初衷是小圈子分享和个人心得记录,适合完 ...

  3. Latex入门篇之论文排版

    Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...

  4. 我的LaTeX入门--h

    LaTeX概览 摘自维基百科: LaTeX, 是一种基于TEX的排版系统,由美国电脑学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所 ...

  5. LaTeX 入门-语法

    LaTeX 入门 - 语法 一.使用 LaTeX 优点 这里首先说明,并不是因为 Word 排版不好才使用 LaTeX.之所以 Word 排版不美观,很大一部分是因为上手太简单,很少有人在使用 Wor ...

  6. LaTex入门【记录】

    LaTex快速入门[记录] 入门步骤 安装教程 Mathtype中公式转LaTex代码 引用参考文献 快捷键 参考 记录下自己LaTex入门路上整理的一些方法和技巧.大家如果觉得有帮助,欢迎点赞和收藏 ...

  7. Latex 入门笔记(2) 常用语法

    文章目录 0. 前言 1. LaTeX 文档总体结构 2. 字符相关 3. 文档元素 3.1 章节与目录 3.2 标题页 3.3 列表.引用.摘要.代码 3.4 表格 4. 排版格式 4.1 字体.字 ...

  8. LaTeX入门教程 Elseiver模板使用

    LaTeX入门教程 & Elseiver模板使用 背景     最近准备向Elseiver期刊投稿,而官网仅提供了LaTeX写作模板,虽然内心有一万个不愿意使用LaTex(是的-我不会用==) ...

  9. Latex入门基础教程(一)安装TeX Live

    Latex入门教程(一)安装TeX Live 前言 TeX & LaTeX 安装TeX Live 下载镜像 安装 启动 前言 LATEX(发音为LAY-tek或LAH-tek)是一种用于创建具 ...

最新文章

  1. EBioMedicine:西湖大学郑钜圣组-乳制品摄入与肠道微生态、心血管代谢健康的关系...
  2. Python收发邮件
  3. 16:9或4:3,哪种屏幕宽高比更适合用户?
  4. 多操作系统安装实践小结
  5. PreparedStatement批量处理的一个Framework(原创)
  6. QT Linux打包发布
  7. 国内高速前端 Unpkg CDN 替代方案
  8. 求无序序列每个元素最接近的值
  9. Latex 中插入超链接 插入网址
  10. 如何用计算机做出折线图,曲线图怎么做-怎样在电脑上做曲线图电脑上如何做曲线图 – 手机爱问...
  11. 201312-2-ISBN号码
  12. 冒泡排序+查找打印——上海大学C语言考试
  13. MySQL数据库架构相关笔记(二)
  14. 径向误差、偏心误差和薄棱镜误差
  15. CentOS或Linux中,查看Tomcat版本的三种方式
  16. 二分法实现SQL盲注
  17. 湿空气性质计算,随笔与学习记录(2.水蒸气分压,含湿量,相对湿度)
  18. KU-600变电站综合自动化系统
  19. RHEL7的DNS服务
  20. 为什么数据库会丢失数据?

热门文章

  1. 设计模式之禅【中介者模式】
  2. w ndows7安不上HP1020,Win7安装hp1020打印机后无法使用怎么办(图文)
  3. 微信公众号开发实战 | 01:环境配置
  4. 级联rc滤波_六阶级联式开关电容低通滤波器设计与仿真分析
  5. 【TOJ 3755】 Graph and Queries【Splay】
  6. 产业大观 | “制造之都”东莞谋变背后:服务型制造铺就荣光之路
  7. Linux LVM卷组恢复过程记录
  8. 考研英语阅读分析--03Text3
  9. 【情报百科】一张照片就能精准锁定你的位置
  10. 华为鸿蒙系统的技术特性,华为鸿蒙系统来了,还有这四大技术特性