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
页眉页脚设置需调用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倍字体大小)(baselineskip默认1.2)∗因子(与字体无关)(linespread、baselinestretch默认1)
关于行距的具体设置
% 全局设置,在导言区
\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排版常用指令相关推荐
- LaTeX公式转成word公式(LaTeX公式转MathML / latex2mathml的使用)
2021年3月10日更新 批量一键转换公式 因为又遇到了不得不往Word里放一大堆公式的作业,一个一个弄太慢了,决定弄一个一键执行的版本,效果如下. 只需要在input.txt里放入LaTeX公式,执 ...
- 学术写作利器——LaTeX入门笔记整理(不定期更新,附加使用心得)
LaTeX入门教程(上) 比Word更适合学术写作的编纂语言 Credit:讲座是敝系的几个技术宅办的,作者只负责记录和整理.后面的更新是个人心得. 写这篇日志的初衷是小圈子分享和个人心得记录,适合完 ...
- Latex入门篇之论文排版
Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...
- 我的LaTeX入门--h
LaTeX概览 摘自维基百科: LaTeX, 是一种基于TEX的排版系统,由美国电脑学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所 ...
- LaTeX 入门-语法
LaTeX 入门 - 语法 一.使用 LaTeX 优点 这里首先说明,并不是因为 Word 排版不好才使用 LaTeX.之所以 Word 排版不美观,很大一部分是因为上手太简单,很少有人在使用 Wor ...
- LaTex入门【记录】
LaTex快速入门[记录] 入门步骤 安装教程 Mathtype中公式转LaTex代码 引用参考文献 快捷键 参考 记录下自己LaTex入门路上整理的一些方法和技巧.大家如果觉得有帮助,欢迎点赞和收藏 ...
- Latex 入门笔记(2) 常用语法
文章目录 0. 前言 1. LaTeX 文档总体结构 2. 字符相关 3. 文档元素 3.1 章节与目录 3.2 标题页 3.3 列表.引用.摘要.代码 3.4 表格 4. 排版格式 4.1 字体.字 ...
- LaTeX入门教程 Elseiver模板使用
LaTeX入门教程 & Elseiver模板使用 背景 最近准备向Elseiver期刊投稿,而官网仅提供了LaTeX写作模板,虽然内心有一万个不愿意使用LaTex(是的-我不会用==) ...
- Latex入门基础教程(一)安装TeX Live
Latex入门教程(一)安装TeX Live 前言 TeX & LaTeX 安装TeX Live 下载镜像 安装 启动 前言 LATEX(发音为LAY-tek或LAH-tek)是一种用于创建具 ...
最新文章
- EBioMedicine:西湖大学郑钜圣组-乳制品摄入与肠道微生态、心血管代谢健康的关系...
- Python收发邮件
- 16:9或4:3,哪种屏幕宽高比更适合用户?
- 多操作系统安装实践小结
- PreparedStatement批量处理的一个Framework(原创)
- QT Linux打包发布
- 国内高速前端 Unpkg CDN 替代方案
- 求无序序列每个元素最接近的值
- Latex 中插入超链接 插入网址
- 如何用计算机做出折线图,曲线图怎么做-怎样在电脑上做曲线图电脑上如何做曲线图 – 手机爱问...
- 201312-2-ISBN号码
- 冒泡排序+查找打印——上海大学C语言考试
- MySQL数据库架构相关笔记(二)
- 径向误差、偏心误差和薄棱镜误差
- CentOS或Linux中,查看Tomcat版本的三种方式
- 二分法实现SQL盲注
- 湿空气性质计算,随笔与学习记录(2.水蒸气分压,含湿量,相对湿度)
- KU-600变电站综合自动化系统
- RHEL7的DNS服务
- 为什么数据库会丢失数据?
热门文章
- 设计模式之禅【中介者模式】
- w ndows7安不上HP1020,Win7安装hp1020打印机后无法使用怎么办(图文)
- 微信公众号开发实战 | 01:环境配置
- 级联rc滤波_六阶级联式开关电容低通滤波器设计与仿真分析
- 【TOJ 3755】 Graph and Queries【Splay】
- 产业大观 | “制造之都”东莞谋变背后:服务型制造铺就荣光之路
- Linux LVM卷组恢复过程记录
- 考研英语阅读分析--03Text3
- 【情报百科】一张照片就能精准锁定你的位置
- 华为鸿蒙系统的技术特性,华为鸿蒙系统来了,还有这四大技术特性