LaTex使用教程(持续更新中~)

Latex使用教程

1 文档结构

% 指定文档类型,以%开头的行是注释行
\documentclass[a4paper,12pt]{article} 
% 使用包,支持中文
\usepackage{ctex}

% 创建标题页的内容
\title{C语言程序设计}
\author{ldc}
\date{2019-5-1}

% 开始文档
\begin{document}
% 生成标题
\maketitle
% 文档内容
A sentence of text. 你好!
% 结束文档
\end{document}

\documentclass: 这里指定文档类型 ,可用的类型包括:

  • article:适合短篇的文档,比如论文,短篇报告等;
  • report:适合长篇带有章节(chapter)的文档,比如博士论文等;
  • book:带有章节的书籍等;
  • slides:生成演示文档

文档类型的属性选项options,需要写在[ ]里面:

  • 纸张:

    • a4paper:缺省设置;
    • letterpaper:某些发行版里是缺省设置
    • a5paperb5paperexecutivepaperlegalpaper
  • 3种标准字体高度:

    • 10pt:缺省设置,11pt12pt

纸张方向,缺省是竖向。

可以用geometry包来设置更多的纸张大小以及页边距等更多排版格式。

\usepackage:使用包

  • ctex:支持中文

\date是文章写作日期,这里使用\today来自动生成编译时的日期,也可以用其他固定的日期来填充,如:\date{2019-5-2}

\maketitle指令生成标题,对于article,标题和正文都在一页,bookreport则会生成标题页,正文在下一页。


单列还是多列显示,可选项包括:

onecolumn:缺省,单列显示;twocolumn:双列显示

可以用multicol包来创建更复杂的多列显示文

公式显示选项,缺省是右对齐,公式编号在右边,可以设置下面的选项:

fleqn:公式左对齐,leqno:公式编号在公式左边

使用landscape 来设置横向,但是有点问题,显示时边距会过大,可以使用geometry包来更好解决这个问题。

单面还是双面打印,对于单面打印,每一页的边距都一样,对于双面打印,奇数页和偶数页的边距会不同,更适合装订。

对于articlereport类型的文档,其缺省的选项是单面,即oneside

对于book,其缺省的选项是双面,即twoside

文档的标题页设置

对于article,缺省是notitlepage,也就是标题之后就是正文,之间不分页;

对于reportbook,缺省是titlepage,标题页之后会分页,正文在下一页。

每章是否新开页

对于report,缺省是openany,也就是新章可以在左边或者右边页面;

对于book,缺省是openright,也就是新章页面必须在右边页,如果有需要,会在左边页插入一页空白。


1-1 目录、页码

\begin{document}

% 生成目录
\tableofcontents
% 插入新页
\newpage
% 设置页码格式是阿拉伯数字
\pagenumbering{arabic}

\end{document}

\newpage:插入新页

\pagenumbering:设置页码格式

  • arabic:阿拉伯数字
  • roman:罗马数字

\tableofcontents:插入目录

1-2 摘要

\begin{abstract}
Your abstract.
\end{abstract}

1-3 章节

\begin{document}

% 正文
\section{概述}
\section{算法}
\subsection{算法的定义}

% 附录
\appendix
\section{Proofs}
\section{Additional Experiments}

\end{document}

\section\subsection创建章、节,可用的段落有:

\part: 部,深度:-1,不能用在letter

\chapter:章,深度:0,可以用在bookreport

\section:节,深度:1,不能用在letter;

\subsection:小节,深度:2, 不能用在letter;

\subsubsection:小小节,深度:3,不能用在letter;

\paragraph:带标题的段落(用{ }),深度:5,不能用在letter;

\subparagraph:带标题的次级段落(用{ }),深度:6,不能用在letter;

一般,深度5、6的不会计入目录(contents)。

上面的格式一般都固定,重新修改会比较麻烦,可以使用ssectionsectsty包进行更好的设置。

注意,当设定标题(用{}包含的)时候,在插入目录时会自动编入,但是如果太长或有格式异常,可以通过设置可选标题(用[]来包含),在编入目录时如果有可选标题会自动选用,参考下例:

\section[编入目录的标题]{实际的太长的标题}

章节标题会自动编号,缺省设置如下:

对于part:采用罗马数字编号,如:Part I, Part II, ...

对于chaptersection:采用 阿拉伯数字,如:Chapter 22.1 xxx等;

对于附录Appendix:采用拉丁字母,如:Appendix A, Appendix B, ...等;

可以设置下面两个参数来设定哪一级标题使用编号,以及目录采用哪一级的标题,如下设置只到section(级别为1):

\setcounter{secnumdepth}{1}
\setcounter{tocdepth}{1}

若某级标题不需要进行编号(也就意味不会加入目录),可以加上*,如下例:

\sebsection*{本小节不进行编号}

1-4 标签、引用

\label{sec11}

根据 第\pageref{sec11}页\ref{sec11}对算法的描述,可以归纳出三种基本算法结构,这些都有C语言的对应控制结构。

\label:创建一个标签

\pageref :交叉引用得到标签所在的页码

\ref:交叉引用

  • 在章节中,得到这个标签所在的章、节编号???
  • {fig:fat_boxplot}在图片中,被替换为与标签相关联的图表的编号。

1-5 引用

\cite{greenwade93}

\bibliographystyle{alpha}:文献引用风格

  • 这里是使用了 alpha 风格,这种风格会用作者名字和出版年份的首字母进行标记,如 [ABC01]。你可以根据需要选择其他的风格,比如 plainunsrt 等。

\bibliography{sample}:参考文献数据库的文件名。sample.bib 是一个 BibTeX 数据库文件(一种用于管理参考文献的工具)。

2 文字样式结构

2-1 字体

\textit 设置斜体文本

latex中采用的单位unit:

pt:一个点point相当于1/72.27inch,也就是大约0.0138inch0.3515mm

mm:毫米; cm:厘米; in:英寸;

ex:约等于当前字体中字母x(小写)的高度;

em:约等于当前字体中字母M(大写)的宽度;

mu:当前采用的数学字体为参考的em,则1mu=1/18em

2-2 标点 空格 特殊字符

\dots … \dots

\cdots ⋯ \cdots

\chi^{2} χ 2 \chi^{2} χ2

\author{数据212\ \ 尹思凡}
\author{数据212~尹思凡}

\ \ 表示一个标准的空格,而 ~ 表示一个不会被断行的空格。

\quad
\verb|.bib| % 输出.bib

\verb 是用来显示原始文本的命令,通常用于显示代码、文件名等内容,它会直接将其内容以原始形式输出,而不对其中的特殊字符进行解释或格式化。

2-3 列表

无序

\begin{itemize}
  	\item xxx1
  	\item xxx2
  	\begin{itemize}
  		\item yxxx1
  		\item yxxx1
  		\begin{itemize}
  			\item zxxx1
  			\item zxxx2
  			\begin{itemize}
  			  \item mxxx1
  			  \item mxxx2
  		  \end{itemize}
  		\end{itemize}
  	\end{itemize}
\end{itemize}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

有序

\begin{enumerate}
  	\item xxx1
  	\item xxx2
\end{enumerate}

\begin{enumerate}[label=(\alph*)]:小写字母

\begin{enumerate}[lable=(\arabic*)]:阿拉伯数字

2-4 表格

LaTeX Table Editor and Generator - Table Convert Online

\begin{table}[H]   
\begin{center}   
\caption{}  
\label{table:2} 
    \begin{tabular}{|c|c|c|c|c|}   
        \hline  & $L_2$ & $L_1$ & $L_{max}$ & cos(x, $x_i$) \\
        \hline $d_1$ & 0.14 & 0.2 & 0.1 & 1.000\\
        \hline $d_2$ & 0.67 & 0.9 & 0.6 & 0.996\\
        \hline $d_3$ & 0.28 & 0.4 & 0.2 & 0.997\\
        \hline $d_4$ & 0.22 & 0.3 & 0.2 & 0.998\\
        \hline $d_5$ & 0.61 & 0.7 & 0.6 & 0.965\\
        \hline
    \end{tabular}   
\end{center}
\end{table}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

\begin{table}[!ht]
    \begin{tabular}{ p{6cm}p{4cm}p{3cm} } % |表示表格线,p表示表格宽(3cm)
    \hline  % 水平线
    \multicolumn{3}{c}{Country List} \\ % 设置多列合并,c表示中间对齐,l表示左对齐,r表示右对齐
    \hline
    Country Name     or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 \\ % \\ 表示换行
    \hline
    Afghanistan & AF &AFG \\
    Aland Islands & AX   & ALA \\
    Albania &AL & ALB \\
    Algeria    &DZ & DZA \\
    American Samoa & AS & ASM \\
    Andorra & AD & AND   \\
    Angola & AO & AGO \\
    \hline
    \end{tabular}
\end{table}

在Typora中,LaTeX的对齐需要使用\begin{}...\end{}环境来实现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

\begin{table}
    \begin{tabular}{ |p{6cm}|p{4cm}|p{3cm}| } % |表示表格线,p表示表格宽(3cm)
    \hline  % 水平线
    \multicolumn{3}{|c|}{Country List} \\ % 设置多列合并,c表示中间对齐,l表示左对齐,r表示右对齐
    \hline
    Country Name     or Area Name& ISO ALPHA 2 Code &ISO ALPHA 3 \\ % \\ 表示换行
    \hline
    Afghanistan & AF &AFG \\
    Aland Islands & AX   & ALA \\
    Albania &AL & ALB \\
    Algeria    &DZ & DZA \\
    American Samoa & AS & ASM \\
    Andorra & AD & AND   \\
    Angola & AO & AGO \\
    \hline
    \end{tabular}
\end{table}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2-5 链接

\href{https://www.overleaf.com/learn}{help library}
\href{https://www.overleaf.com/user/subscription/plans}{choose your plan}.

\url{https://www.overleaf.com/contact}

3 算法

3-1 伪代码

这两个宏包是被设计成同时一起使用的,但也可以根据用户的特殊需要分开使用。其中 algorithm 宏包主要是为算法提供一个浮动体环境,也就是说,在 LaTeX 中算法和图像,表一样,都是浮动体。algorithmic 宏包主要是用来完成算法的描述功能,该宏包提供了我们描述算法常用的几种结构命令,如条件结构、循环结构等,但也可以客制化流程。

\usepackage{algorithm}
\usepackage{algorithmic}
\begin{algorithm}
\caption{Algorithm Title}
\begin{algorithmic}
\REQUIRE $n \geq 1$                  %输入条件
\ENSURE $Sum = 1 + \cdots + n$       %输出
\STATE $Sum \leftarrow 0$            %\STATE 命名演示
\IF {$n < 1$}                        %条件语句
\PRINT {Input Error}                 %打印语句
\ELSE
    \FOR {$i = 0$ to n}          %FOR循环结构
    \STATE $Sum = Sum + i$\\
    \STATE $i = i + 1$
    \ENDFOR
\ENDIF
\RETURN Sum
\end{algorithmic}
\end{algorithm}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

\begin{algorithm} 
	\caption{Calculate $y = x^n$} 
	\label{alg3} 
	\begin{algorithmic}
		\REQUIRE $n \geq 0 \vee x \neq 0$ 
		\ENSURE $y = x^n$ 
		\STATE $y \gets 1$ 
		\IF{$n < 0$} 
		\STATE $X \gets 1 / x$ 
		\STATE $N \gets -n$ 
		\ELSE 
		\STATE $X \gets x$ 
		\STATE $N \gets n$ 
		\ENDIF 
		\WHILE{$N \neq 0$} 
		\IF{$N$ is even} 
		\STATE $X \gets X \times X$ 
		\STATE $N \gets N / 2$ 
		\ELSE[$N$ is odd] \STATE $y \gets y \times X$ 
		\STATE $N \gets N - 1$ 
		\ENDIF 
		\ENDWHILE 
	\end{algorithmic} 
\end{algorithm}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3-2 代码块

\usepackage{listings}

\begin{lstlisting}[   % 进行参数设置
	language=Python, % 设置语言
	numbers=left, % 在左侧显示行号
	basicstyle=\small\ttfamily, % 设置字体族
	breaklines=true, % 自动换行
    [frame=none] %无框
	[frame=leftline,topline,rightline, bottomline] %分别对应只在左侧,上方,右侧,下方有竖线
	[frame=trb] %t-top,r-right,b-bottom,l-left. 这是为框架只在上,右,下方
	[frame=trBL] %大写表示双重线
	columns=flexible %单词间隔调整
]  
def anagramSolution1(s1, s2): 
    alist = list(s2) 
    pos1 = 0 
    stillOK = True 

    while pos1 < len(s1) and stillOK: 
        pos2 = 0 
        found = False 
        while pos2 < len(alist) and not found: 
            if s1[pos1] == alist[pos2]: 
                found = True 
            else: 
                pos2 = pos2 + 1 
        
        if found: 
            alist[pos2] = None 
        else: 
            stillOK = False 
        
        pos1 = pos1 + 1 
    return stillOK
\end{lstlisting}

4 公式

$$
% 正常在此处编写公式即可
$$

4-1 方程式

\usepackage{amsmath} % 自定义编号\begin{equation}

\begin{equation}
    newguess=\frac{1}{2}×(oldguess+\frac{n}{oldguess})
    \tag{2}
\end{equation}

4-2 公式组

\begin{aligned}:用于排版多行公式并对齐。通常用 & 符号来指示对齐的位置。

\begin{array}{l}:默认居中。{l}表示左对齐

\usepackage{amsmath} % 使用 amsmath 宏包以排版数学公式

\[
\begin{array}{l}
\text{我们已知}\mathbf{w}^* = (\mathbf X^\top \mathbf X)^{-1}\mathbf X^\top \mathbf{y}.\\
\end{array}
\]

使用了\[ \] 数学环境来包裹数学公式,同时使用\text{}命令将汉字包裹在数学环境之外,这样汉字不会引发错误。

5 格式

如果你希望参数在整个文档中生效,通常会将命令放在导言区(即 \begin{document} 之前)。

如果你希望设置的长度参数只在文档的某个特定部分生效,那么可以将命令放在该部分的开始处。

5-1 间距

行间距?

\usepackage{setspace}

\begin{spacing}{1.0} 
\end{spacing} 

\hfill:在排版多个元素时,用来平均分配它们之间的空间,从而使它们在一行中均匀分布,而不是紧凑在一起。

5-2 缩进

% 设置每段第一行的缩进
\setlength{\parindent}{4em}

% 用于在当前位置插入一个标准的缩进量,即与当前段落的缩进量相同。(在段落的中间位置手动插入一个额外的缩进,它会在当前位置插入一个新的缩进,而不另起一个新的段落。注意,\\换行后不属于下一段,而是段内。)
\indent 

5-3 长度参数

\textwidth : 表示当前文本区域的宽度。它通常用于设置图像或表格的宽度,以确保它们适应当前文本的布局。在一个页面中,\textwidth 是指除去页边距之外的可用文本区域的宽度。在单栏文档中,它等于页面宽度减去左右页边距的总和。在双栏文档中,\textwidth 则是两栏的宽度之一。

段落之间的宽度:

\setlength{\parskip}{1cm}

可以用下面的命令来设置段落每行之间的间距(下面设置为1.5倍行距):

\renewcommand{\baselinestretch}{1.5}

可以用\pagestyle{style}设置每页的页眉(\header)和页脚(\footer)的设置,style的可选项是:

\plain:缺省,页码打印在页脚中间;

\headings:页码,每章标题打印在页眉,页脚留空;

\empty:设置页眉页脚为空。

对特定页可以用:\ thispagestyle{style}可以设置 独立的页码页眉设置。

6 图片

\usepackage{graphicx}

\begin{figure}[htbp]
\centering
\includegraphics[scale=0.4]{img/后序表达式.png}
\caption{向右移动运算符,以得到后序表达式}
\label{figure}
\end{figure}

\centering 将图片居中显示;

\includegraphics{} 插入一张图片,花括号 {} 内就是图片的名称,方括号 [] 内同样是控制参数,但这里控制的是图片的显示大小;

\caption{} 图例信息;

\label{} 图的标签,在写论文时可以在正文中引用;

二者可以像下面一样写在一起:

\caption{\label{fig:frog}This frog was uploaded via the file-tree menu.}

图片位置控制参数:\begin{figure}[htbp]

  • [h] 表示当前位置(here),也就是说图片将放在你设置的当前位置,但是如果这一页的空间不足以放下这个图片,此时图片会转到下一页;
  • [t] 顶端(top),此时优先将图片放置在页面的顶部;
  • [b] 底部(bottom)此时优先将图片放置在页面底部;
  • [p] 将图片设置为浮动状态,系统会自动排版图片的位置;
  • 一般推荐这几个参数结合使用,比如:[ht]、[htbp],此时这几种位置具有优先级。
\usepackage{algorithm}
\usepackage{algorithmic}

\begin{figure}[H] % 强制将浮动对象(如图表)放置在当前位置

图片大小控制参数:\includegraphics[scale=0.2]{girl.eps}

  • [scale],表示按原图比例缩放,比如 scale=0.2 表示将原图缩小 5 倍,如果要放大只需要将 scale 设置为大于 1 即可;
  • [height = 1cm, width = 2cm]:直接设置图片宽高。

6-1 subfigure子图

\usepackage{subcaption}

\begin{figure}[htbp]
\centering
    \begin{subfigure}{0.45\textwidth} % 子图的宽度为当前文本区域宽度的 45%
      \centering
      \includegraphics[width=\textwidth]{img/age盒图.png}
      \caption{age盒图}
      \label{fig:age_boxplot}
    \end{subfigure}
    \hfill
    \begin{subfigure}{0.45\textwidth}
      \centering
      \includegraphics[width=\textwidth]{img/fat盒图.png}
      \caption{\%fat盒图}
      \label{fig:fat_boxplot}
    \end{subfigure}
\caption{age和\%fat的盒图}
\label{fig:boxplots}
\end{figure}

6-2 minipage

\begin{figure}
\centering
    \begin{minipage}{0.48\textwidth}
        \centering
        \includegraphics[width=\textwidth]{img/age盒图.png}
        \caption{age盒图}
        \label{fig:age_boxplot}
    \end{minipage}
    \hfill
    \begin{minipage}{0.48\textwidth}
        \centering
        \includegraphics[width=\textwidth]{img/fat盒图.png}
        \caption{\%fat盒图}
        \label{fig:fat_boxplot}
    \end{minipage}
\caption{并排放置的盒图} % 这两行不要就不算做一个大图
\label{fig:boxplots} % 这两行不要就不算做一个大图
\end{figure}
  • 71
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
LaTeX是一种排版系统,用于专业且高质量的文档制作。下面是一些常用的LaTeX命令和技巧,供初学者参考: 1. 使用LaTeX平台:LaTeX可以在多个平台上使用,比如Overleaf、TeX Live等。选择合适的平台是个人习惯问题,但是LaTeX的语法是通用的。 2. LaTeX命令:LaTeX的命令用于控制文档的格式和样式。例如,使用\documentclass命令定义文档类,\section命令用于创建章节,\subsection命令用于创建小节等等。 3. 标题和目录:LaTeX可以使用自动编号的章节命令,比如\section{标题}。如果不需要自动编号,可以使用\section*{标题}命令。生成目录的方法很简单,只需在适当的位置插入\tableofcontents命令即可。 4. 数学公式:LaTeX在排版数学公式方面非常强大。使用\begin{equation}和\end{equation}命令可以创建带有自动编号的数学公式。使用$符号可以创建行内公式。 5. 图片和表格:LaTeX可以插入图片和创建表格。使用\includegraphics命令插入图片,使用\begin{table}和\end{table}命令创建表格。 6. 引用和参考文献:LaTeX可以轻松管理引用和参考文献。使用\cite命令可以引用文献,并使用bibliography命令指定参考文献列表。 以上是关于LaTeX使用教程的一些基本排版方法和命令。希望对初学者有所帮助。任何问题都可以在评论区留言,同时也可以参考本文末尾的小实例来进一步学习和实践。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [LaTeX基本命令使用教程(清晰实例)(Overleaf平台)(论文排版)](https://blog.csdn.net/Gentleman_Qin/article/details/79963396)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [LaTeX教程(三)——文档格式排版](https://blog.csdn.net/ifhuke/article/details/128212990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

galaxy_Fannn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值