LaTeX基础

认识LaTeX

L a T e X LaTeX LaTeX T e X TeX TeX的宏集,其编辑和排版的核心思想在于通过章、节等简单的概念指定文档的逻辑结构,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次批量处理,而这些结构的格式和布局,则是由 L a T e X LaTeX LaTeX系统负责处理。因此,它鼓励从内容中分离布局,同时仍然允许在需要时进行手动排版调整。

LaTeX中命令的一般格式为:\命令名称[备选选项]{参数}
环境指令的一般格式为:

\begin[备选选项]{环境名}
...
\end{环境名}

注意:不带花括号的命令后面如果想打印空格,请加上一对内部为空的花括号再键入空格,否则空格会被忽略.例如:\LaTeX{} Studio.

基本框架

\documentclass{...} 
--[[...导言区...]]--
\begin{document}
--[[在这两个命令之间就是你的文档内容]]--
\end{document}

\documentclass{...}用于指定文档类型(模板)。模板规定一些统一样式,比如章节一级标题都用什么字体什么字号怎么对齐,章节二级标题用什么字体什么字号怎么对齐,一级段落又用什么字体什么字号怎么对齐,页眉页脚页边距一类的页面设置又怎么设置,以及一些自定义的命令。
常用的模板即article,但article模板不支持中文,因此若想在LaTeX中显示中文,则应使用ctexart模板。标准写法为:

\documentclass[UTF8]{ctexart} -- [UTF8]不加也可

另外,该命令也提供了一个文档格式的设置,即\documentclass[options]{},在方括号里可以填写关于文档格式的设置,比较常见的是设置正文字号和页面规格,

其实在LaTeX里的很多命令都是如此,方括号里可以填写设置,不填可以省略方括号

比如\documentclass[12pt,a4paper]{article}表示正文字号为12pt,页面规格为A4纸。另外,LaTeX默认页面大小是A4纸

\begin{} \end{} 命令实则是创建某种环境。 常见环境有:

  • document —— 文件(正文)
  • center —— 居中环境

\documentclass{article}

\author{My Name} --作者
\title{TEST} --文章标题
\date{2021.12.16} --日期   该语句也可不写,在之后maketitle时,日期会自动选取为你编辑这篇文档的当天,并直接排版上去

\begin{document}
    \maketitle   --排版标题和、作者、日期
    Hello, World! --文章内容
\end{document}
\documentclass{article}

\author{My Name}
\title{TEST}

\begin{document}
    \maketitle
    
    \section{biggest part} -- 一级章节标题   大括号内为标题名
    Hello, World! -- 语句自动带有段落首句的缩进
    
    \subsection{big part} -- 二级章节标题
    gugugugugugu
    
    \subsubsection{small part} -- 三级章节标题
    \paragraph{bbbb} -- 一级段落    大括号内为标题名
    Hi!
    \subparagraph{ssss} -- 二级段落
    Ah!
    
\end{document}

在这里插入图片描述
可见,LaTeX会自动给标题标序号,若是想要去除标题前面的数字编号,则是在原命令中大括号前加一个*号即可。例如:

\section*{biggest part}

但是注意:去除编号后章节标题的默认是不会加到目录中的!
自动生成内容目录可用 \tableofcontents 语句。
需要注意的是,LaTeX处理目录需要编译两次。

格式控制

长度单位
单位全称长度
ptpoint(磅)
pcpica 1   p c = 12   p t 1\ pc=12\ pt 1 pc=12 pt,四号字大小
ininch(英寸) 1   i n = 72.27   p t 1\ in=72.27\ pt 1 in=72.27 pt
bpbigpoint(大点) 1   b p = 1 72   i n 1\ bp=\frac{1}{72}\ in 1 bp=721 in
cmcentimeter(厘米) 1   c m = 1 2.54   i n 1\ cm=\frac{1}{2.54}\ in 1 cm=2.541 in
mmmillimeter(毫米) 1   m m = 0.1   c m 1\ mm=0.1\ cm 1 mm=0.1 cm
spscaled point( TeX \TeX TEX基本长度单位) 1   s p = 1 65536   p t 1\ sp=\frac{1}{65536}\ pt 1 sp=655361 pt
em当前字号下大写M的宽度
ex当前字号下小写x的宽度

日常使用的小四为12pt,五号为10.5pt

常用的长度宏:

\textwidth -- 页面上文字的总宽度,即页宽减去两侧边距.
\linewidth -- 当前行允许的行宽.

可变长度
例如5pt plus 3pt minus 2pt:表示一个能收缩到 3pt 也能伸长到 8pt 的长度.
直接使用倍数也是允许的,例如:1.5\parindent

一些语句

注释、换行、缩进、行距、列距
  • 注释则以%号开头,在该符号后(仅一行)的内容均会被认为是注释。

  • 若源文件中文字之间多个空格被视为一个
  • 可以用~代替一个空格,特别之处在于多个~不会被视为一个
  • 若是在源文件中直接换行,那么LaTeX会将这两行文字之间的空白字符忽略,然后以一个空格隔开接在一行(单个换行被视为一个空格)。
  • 源文件中连续两个及以上的回车,那么第二行文字会被认为是新起的一个段落,会带有缩进。(多个换行会被视为一个)
  • 可以用\mbox{}来表示一个空行,从而实现两个段落之间空一行的效果(毕竟多个换行仍代表只换一行)
  • 语句\\是常用的强制换行命令,但不是新起一段,换行后的那段文字没有缩进。
  • \newline\\效果相同,换行无缩进。
  • 命令\par也是换行命令,准确的说,该命令的意思是新起一个段落(和空行的效果一样),因此会带有缩进

在这里插入图片描述
\indent{} —— 缩进(相当于一个tab)
\noindent{} —— 取消缩进
\hspace{X cm} —— 该命令会产生一个长度为Xcm的空格
\vspace{X cm} —— 该命令用于两段文字间,产生一个长度为X cm的垂直间距以隔开两个段落
(若该命令用于段落之中则只会产生一个空格,但设置段落距离的效果仍将会在这段结束时显现。)

调整行间距,可以使用宏包setspace,并创建环境:

\begin{spacing}{factor}

\end{spacing}	

在该环境内,所有行距都变为你设置的factor乘上默认行距,factor是一个小数。

\documentclass[UTF8]{ctexart}
\usepackage{setspace}
\begin{document}
    \begin{spacing}{1.5}
        这里是$1.5$倍(相对默认的行距)行距这里是$1.5$倍(相对默认的行距)行距这里是$1.5$倍(相对默认的行距)行距这里是$1.5$倍(相对默认的行距)行距\\
    \end{spacing}
    
    \begin{spacing}{0.5}
        这里是$0.5$倍(相对默认的行距)行距这里是$0.5$倍(相对默认的行距)行距这里是$0.5$倍(相对默认的行距)行距这里是$0.5$倍(相对默认的行距)行距\\
    \end{spacing}
\end{document}

另外,在导言区添加命令\linespread{factor}可以更改全文行距的。

设置段落之间的距离:

\setlength{\parskip}{0pt}
分页
  • \newpage 开始新的一页

如果要连续新开两页,先在中间加上一个空箱子,例如\newpage\mbox{}\newpage

符号
符号代码样式
省略号\ldots … \ldots
角度$30\,^{\circ}$ 30   ∘ 30\,^{\circ} 30
摄氏度$37\,^{\circ}\mathrm{C}$ 37   ∘ C 37\,^{\circ}\mathrm{C} 37C

英文的省略号使用命令\ldots,而不是三个句点。

插入图片

\includegraphics[设置图片参数]{图片路径}
注意:路径即可以是绝对路径,也可以是相对路径(以tex文件保存的位置开始)。

\documentclass{article}
\usepackage{graphicx}
\begin{document}

    \includegraphics[width=4cm,height=2cm]{test.png}

\end{document}

usepackage{}是调用宏包的命令。宏包其实就可以理解为C++的库,里面定义了一些命令,来实现一定的功能。通常在声明模板(即命令\documentclass{})后,正文前就将所有要用的宏包调用(说实话和C++调用库很像)。
常用的宏包有:

  • graphicx —— 图片相关
  • amsmath、amssymb —— 数学公式
插入表格

插入表格时需要在tabular环境中。

大括号中参数用于设置表格的列属性,其中:

  • 竖线|即表格中的竖线
  • 字母个数(c、l、r)表示列数,c表示元素居中,l表示元素左对齐, r表示元素右对齐

表格内容以&来分隔每列,\\换行,\hline画一条横线。

在这里插入图片描述

页面设置

\newpage命令会使当前页直接结束,并起新的一页。
\pagenumbering{} 该命令可以设置当前页面的页码显示为某一种风格,共有5种风格:

  • arabic —— 阿拉伯数字,即 1 , 2 , 3 , 4 , … 1,2,3,4,… 1,2,3,4,默认样式
  • roman —— 小写罗马数字,即 i , i i , i i i , i v , … i,ii,iii,iv,… i,ii,iii,iv,
  • Roman —— 大写罗马数字,即 I , I I , I I I , I V , … I,II,III,IV,… I,II,III,IV,
  • alph —— 小写英文字母,即 a , b , c , d , … a,b,c,d,… a,b,c,d,
  • Alph —— 大写英文字母,即 A , B , C , D , … A,B,C,D,… A,B,C,D,

setcounter{page}{x}该命令可以设置当前页面的页码为数字x。

\documentclass[UTF8]{ctexart}
\begin{document}
    \pagenumbering{Alph}
	Lorem lpsum
	
    \newpage
    \pagenumbering{Roman}
    \setcounter{page}{4} -- 设置该页的页码数为4,并为大写罗马数字,即最终效果为IV。

\end{document}

\pagestyle{...}\thispagestyle{...} 设置页面样式,即页眉和页脚,使用的是LaTeX默认提供的4种样式:

  • empty —— 没有页眉页脚
  • plain —— 没有页眉,页脚是一个居中的页码
  • headings —— 没有页脚,页眉是章节名称的页码
  • myheadings —— 没有页脚,页眉是页码和用户自定义的内容

区别在于:前者是全局的,对之后的所有页均有效;后者只对当前页有效。

如想对页眉和页脚进行更多个性化的设置,可以去查阅宏包fancyhdr的使用。

要设置页边距需调用宏包geometry
此后在导言区使用命令

\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm} -- 这是Word中默认的页边距

来自由设置页面上下左右的边距。

超链接

需要调用宏包hyperref

\href{URL}{text}

默认的样式是在有链接的文字上加方框,可能比较难看,如果需要调整,可改变\usepackage[option]{hyperref}中的option属性:

  • colorlinks —— 表示链接以改变字体颜色的形式而非加方框
  • linkcolor、anchorcolor、citecolor —— 分别表示用来标识link、anchor、cite等各种链接的颜色。
    (使用tableofcontents生成目录时,点击目录会跳转到相应位置,因此这也是一种超链接。对于目录的设置,我们使用的是linkcolor)

例如,若想使目录的链接颜色依旧是原本的黑色,则:

\usepackage[colorlinks,linkcolor=black]{hyperref} -- 设置了两种属性

另外也可以用\url{URL}直接插入链接,以等宽字体排版。

如想对目录、标题进行更加深入的设置,可以去查阅宏包titletoc、titlesec的使用。

文本位置

LaTeX \LaTeX LATEX 默认使用两端对齐的排版方式,若要使用别的排版,可以通过定义环境实现。

\begin{flushleft} -- 其内的文本全部左对齐
...
\end{flushleft}

\begin{center} -- 其内的文本全部居中对齐
...
\end{center}

\begin{flushright} -- 其内的文本全部右对齐
...
\end{flushright}
文本效果

\fbox{text} 该命令会给大括号里的文本text加上线框。

在引入framed宏包时,还可以创建framed环境,会给其内的文本加线框(建议配合居中环境使用)

\documentclass[UTF8]{ctexart}
\usepackage{framed}
\begin{document}
    \begin{center}
        \begin{framed}
            ....
        \end{framed}
    \end{center}
\end{document}

如想对线框进行更多个性化的设置,可以去查阅宏包mdframed的使用。

字族

命令字族
\rmfamilyRoman 罗马字族
\sffamilySans Serif 无衬线字族
\ttfamilyTypewriter 等宽字族

临时改变字族可以使用:textrm{text}

字系

命令字系
\bfseries粗体 BoldSeries 字系属性
\mdseries中粗体 MiddleSeries 字系属性

临时改变字系可以使用:\textbf{text} 字体加粗

字形

命令字形
\upshape竖直 Upright 字形
\slshape斜体 Slant 字形
\itshape强调体 Italic 字形
\scshape小号大写体 Scap 字形

如果临时改变字形,可以使用:

  • \textup{text},直立(为默认)。
  • \textit{text},意大利体。
  • \textsl{text},倾斜。
  • \textsc{text},小型大写。

在这里插入图片描述

如果在文中多次使用某种字体变换,可以将其自定义成一个命令.
这时请使用 text 系列的命令而不要使用 family, series 或 shape 系列的命令,否则需要多加一组花括号防止“泄露”。以下二者等价:

\newcommand{\concept}[1]{\textbf{#1}}
\newcommand{\concept}[1]{{\bfseries #1}}

\emph{text}斜体

如果对一段已经这样转换为斜体的文本再使用\emph{text},它就会取消斜体,而成为正体。
英文中一般采用斜体来进行强调。(例如在说明书名时)

汉字没有加斜体.平常我们看到的加斜汉字,通常是几何变换得到的结果,非常的粗糙,并不严格满足排版要求;而真正的字形是需要精细的设计的。
同时,汉字字体里面也很少有加粗体的设计。

西文一般设有加斜,但是这与“斜体”并不是同一回事.
加斜是指某种字族 的 Italy 字系;而斜体是指 Slant 字族.
在行文中表强调时使用的是前者;在 Microsoft Word 等软件中看到的倾斜的字母 I I I,也代表前者.

字号
行文会有一个默认的“标准”字号(比如在 documentclass 的选项中设置的12pt),基于此可以再设置相对大小
在这里插入图片描述
这几个命令会将其后面对应文本的字号修改,若只想修改一部分文本的字号,只需用大括号将命令和要修改的文本括起来就好了。

{
    \Huge
    Hello
}
{
    \LARGE
    Hello
}

文本下划线,引入宏包ulem

  • \uline{text},下划线。
  • \uuline{text},双下划线。
  • \uwave{text},波浪线。
  • \sout{text},删除线。
  • \xout{text},斜删除线。
  • \dashuline{text},虚线。
  • \dotuline{text},点线。

需要注意的是, ulem宏包重定义了\emph命令,使得由原来的斜体命令变成了下划线命令,由原来的两次斜体变为正体 变成了 两次下划线就双下划线.
通过宏包的normalem选项可以取消这个更改:\usepackage[normalem]{ulem}.

字体颜色
引入xcolor宏包。该宏包中预定义了一些颜色:
在这里插入图片描述
也可以自定义颜色名

\definecolor{hh}{RGB}{34, 145, 250}

设置文本颜色\color{颜色名}

\color{red}
Hello world!

也可以使用textcolor{颜色名}{text}来设置部分文本颜色。


首字下沉:使用宏包lettrine
在这里插入图片描述

插入代码

使用宏包listings
\lstset{}里填写对代码块的设置,该命令用于导言区,是对代码块的全局设置,之后所有的代码块都会采用该配样式。
注意:要设置代码块中文字和背景的颜色时,建议引入宏包xcolor来设置。
常用配置为:

\lstset{
    basicstyle={                                -- 设置代码格式
        \fontspec{Consolas}
        \scriptsize
    },
    keywordstyle={                              -- 设置关键字格式
        \color[RGB]{40,40,255}
        \fontspec{Consolas Bold}
        \scriptsize
    },
    stringstyle={                               -- 设置字符串格式
        \color[RGB]{128,0,0}
        \fontspec{Consolas}
        \scriptsize
    },
    commentstyle={                              -- 设置代码注释的格式
        \color[RGB]{0,96,96}
        \fontspec{Consolas}
        \scriptsize
    },
    numberstyle={                               -- 设置行号格式
        \scriptsize
        \color{black}
        \fontspec{Consolas}
    },
    emphstyle=\color[RGB]{112,64,160},          -- 设置强调字格式
    language=c++,                               -- 设置语言
    numbers=left,                               -- 显示行号
    numbersep=5pt,                              -- 设置行号与代码的距离
    frame=single,                               -- 设置背景边框
    tabsize=4,                                  -- 设置tab长度
    backgroundcolor=\color[RGB]{245,245,244},   -- 设定背景颜色
    showstringspaces=false,                     -- 不显示字符串中的空格
    showspaces=false,                           -- 不显示代码中的空格
    showtabs=false,                             -- 不显示代码中的tab
    breaklines=true,                            -- 设置自动换行
    morekeywords={},                            -- 可以手动添加关键字
    emph={scanf,printf},                        -- 可以手动添加强调字
    xleftmargin=2em,                            -- 设置左边距,默认与页芯等宽
    xrightmargin=2em,                           -- 设置右边距,默认与页芯等宽
    aboveskip=1em,                              -- 设置上边距
}

效果:
在这里插入图片描述

创建环境:

\begin{lstlisting}
... -- code
\end{lstlisting}

实例:

\documentclass[UTF8]{ctexart}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{fontspec}
\lstset{
	...
}

\begin{document}
    \begin{lstlisting}
	...
    \end{lstlisting}
\end{document}

一些代码样式:

\lstset{
 columns=fixed,       
 numbers=left,                                        
 numberstyle=\tiny\color{gray},                       
 frame=none,                                          
 backgroundcolor=\color[RGB]{245,245,244},            
 keywordstyle=\color[RGB]{40,40,255},                 
 numberstyle=\footnotesize\color{darkgray},           
 commentstyle=\it\color[RGB]{0,96,96},                
 stringstyle=\rmfamily\slshape\color[RGB]{128,0,0},   
 showstringspaces=false,                              
 language=matlab,                                       
}

效果:
在这里插入图片描述

\definecolor{ballblue}{rgb}{0.13, 0.67, 0.8}
\definecolor{cornflowerblue}{rgb}{0.39,0.58,0.93}
\definecolor{babyblueeyes}{rgb}{0.63, 0.79, 0.95}

\lstset{
  backgroundcolor=\color{white},   
  basicstyle=\footnotesize,    
  language=matlab,
  breakatwhitespace=false,         
  breaklines=true,                 % sets automatic line breaking
  captionpos=b,                    % sets the caption-position to bottom
  commentstyle=\color{ballblue},    % comment style
  extendedchars=true,              
  frame=single,                    % adds a frame around the code
  keepspaces=true,                 
  keywordstyle=\color{blue},       % keyword style
  numbers=left,                    
  numbersep=5pt,                   
  numberstyle=\tiny\color{blue}, 
  rulecolor=\color{babyblueeyes},
  stepnumber=1,              
  stringstyle=\color{black},     % string literal style
  tabsize=4,                       % sets default tabsize to 4 spaces
  title=\lstname                   
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值