当前位置: 首页 > news >正文

LaTex入门(二):LaTex控制序列的作用

本文内容: 介绍 LaTeX 中最重要的两个控制序列

  • \documentclass
  • \usepackage

在详细介绍 \documentclass\usepackage 之前,先总结一下两个控制序列的作用,同时也是本文要介绍的内容(如果之前没有相关了解,在看过正文以后就能很好地理解这里的总结)。

1)Latex 处理 tex 源文件时, 首先需要知道作者所要创建的文档类型,比如要创建的是学术文章,书籍还是PPT。文档类型可由控制序列 \documentclass 指定,我们可以使用两种文档类型:

  1. 默认的文档类型,比如 article(学术文章),book(书籍)等
  2. 自定义的文档类型,需要提供相应的 .cls 类文件

2)创建文档还需要满足作者的各种特定需求,比如插入图片、算法模块等。这些特定的需求由特定的宏包提供,而宏包可由控制序列 \usepackage 进行调用。

文章目录

  • 1. 控制序列:documentclass
  • 2. 控制序列:usepackage

1. 控制序列:documentclass

控制序列 /documentclass 用于指定文档类型,文档类型规定了 LaTeX 源码编译之后生成的文档性质,比如学术文章、书籍、演示文稿等。

使用方法:

\documentclass[option]{class}

其中,[option] 为可选参数,{class} 为必要参数。

比如:

  • \documentclass{article} 使用 article 文档类,没有使用可选参数
  • \documentclass[11pt,twoside,a4paper]{article} 使用 article 文档类,同时规定文档字体大小为11pt,并在 A4 纸上双面打印。

上面的例子中,class 指定了想要的文档类型(下面列出几种常用的文档类型)

  • article:排版学术论文、学术报告等
  • ctexart:与 article 类似,主要用于排版中文文章
  • report:排版多章节长报告、短篇书籍
  • book:排版书籍
  • slides:排版幻灯片格式
  • moderncv:排版个人简历

option 可以定制更具体的文档类属性,各属性之间用逗号隔开

  • 12pt:指定字体大小,默认为10pt,可选 10pt / 11pt / 12pt
  • a4paper:指定纸张大小,默认为 letterpaper,可选 a4paper / a5paper / b5paper / executivepaper / legalpaper
  • titlepage:指定标题,article 默认为 notitlepage,report 和 book 默认为 titlepage
  • landscape:指定排版方向为横向,默认为纵向排版
  • onecolumn:指定单栏排版,默认 onecolumn,可选 onecolumn / twocolumn
  • oneside:指定论文的单双面,默认是单面印刷,可选 oneside / twoside

上面列举的几种文档类型(class)都是 Tex 系统中自带的,我们可以通过 \documentclass 直接进行指定。而某些情况下需要自定义文档类型,这时仍是通过 \documentclass 指定,不同的是需要我们自己提供定义了文档类型的类文件 .cls。一般投稿会议 / 期刊,他们会有特定的文档类型,提供给你的就是一个 .cls 类文件。

这个 .cls 类文件的使用方法和上面其实是一样的,假我们的类文件为 myclass.cls,我们只要把该文件放在 tex 同目录下,并在\documentclass 控制序列的必要参数 class 填上 myclass 即可。P.S. 花括号内的必要参数要和 .cls 的文件名一致。

以 Elsevier 期刊模板为例,Elsevier 期刊的自定义文档类是 elsarticle,对应的类文件是 elsarticle.cls,我们只要使用控制序列:

\documentclass{elsarticle}

2. 控制序列:usepackage

控制序列 /usepackage 用于调用各种功能性宏包,目的是为增强 Latex 功能,满足我们的各种需求。比如插入图片、使用算法模块等。

使用方法:

\usepackage[options]{package}

其中,[option] 为可选参数,{package} 是宏包的名称,为必要参数。

比如:

  • \usepackage{natbib}:调用 natbib 宏包设置正文中引用的样式,默认引用样式为 [author-year]
  • \usepackage[numbers]{natbib}:使用可选参数 numbers,将引用样式设置为数字引用

大多数常用宏包都已经内置在了 LaTeX 系统里,不需要我们额外安装。如果需要用的宏包没有安装,比如这里我缺少 spconf.sty,则会报错:

LaTex Error: File ‘spconf.sty' not found

缺少宏包可以从 这个链接 下载,将解压的宏包文件放在 TeX 安装目录。有时候如果提供的宏包只有代码,比如 这个链接,可以自己在 TeX 安装目录下新建一个文本文档,起名为 spconf.sty,内容复制粘贴进去。

P.S. \usepackage 可以一次性调用多个宏包,必要参数中用逗号隔开即可,但推荐每个宏包调用使用一行代码。

\usepackage{amsmath, amsthm}

相关文章:

  • [Linux](16)网络编程:网络概述,网络基本原理,套接字,UDP,TCP,并发服务器编程,守护(精灵)进程
  • UI自动化总结
  • Zabbix6.0使用教程 (二)—zabbix6.0常用术语
  • java计算机毕业设计网络游戏管理网站源程序+mysql+系统+lw文档+远程调试
  • 【机器学习】Rasa NLU以及Rasa Core概念和语法简介(超详细必看)
  • Service (一) 启动/绑定服务
  • 数据结构-八大排序
  • MySQL小知识:为何从8.0开始取消了MySQL查询缓存
  • python数据类型(1)
  • HTML+CSS网页设计期末课程大作业 【茶叶文化网站设计题材】web前端开发技术 web课程设计 网页规划与设计
  • 8年三届世界杯,8年前端开发,梅西一共踢没了我八千八
  • 第十四届蓝桥杯模拟赛(第二期)——C语言版
  • c语言:关键字(一)
  • 毕业设计 单片机多功能红外空调遥控器 - 嵌入式 物联网
  • Docker 讲解与基本操作
  • 【Linux系统编程】快速查找errno错误码信息
  • 【mysql】环境安装、服务启动、密码设置
  • Codepen 每日精选(2018-3-25)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java-详解HashMap
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Sass 快速入门教程
  • 从零开始在ubuntu上搭建node开发环境
  • 番外篇1:在Windows环境下安装JDK
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 微信小程序--------语音识别(前端自己也能玩)
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 7行Python代码的人脸识别
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #Linux(帮助手册)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (八)Spring源码解析:Spring MVC
  • (编译到47%失败)to be deleted
  • (二)springcloud实战之config配置中心
  • (顺序)容器的好伴侣 --- 容器适配器
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .bashrc在哪里,alias妙用
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • @FeignClient注解,fallback和fallbackFactory
  • @html.ActionLink的几种参数格式
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [.NET]桃源网络硬盘 v7.4
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C++]打开新世界的大门之C++入门
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [HDU5685]Problem A
  • [hive]中的字段的数据类型有哪些