LaTeX入门 | 超详细讲解

LaTeX入门

什么是LaTeX

LaTeX(读作/ˈlɑːtɛx/或/ˈleɪtɛx/)是一个让你的文档看起来更专业的排版系统,而不是文字处理器。它尤其适合处理篇幅较长、结构严谨的文档,并且十分擅长处理公式表达。它是免费的软件,对大多数操作系统都适用。

LaTeX 基于 TeX(Donald Knuth 在 1978 年为数字化排版设计的排版系统)。TeX 是一种电脑能够处理的低级语言,但大多数人发现它很难使用。LaTeX 正是为了让它变得更加易用而设计的。目前 LaTeX 的版本是 LaTeX 2e。

如果你习惯于使用微软的 Office Word 处理文档,那么你会觉得 LaTeX 的工作方式让你很不习惯。Word 是典型的「所见即所得」的编辑器,你可以在编排文档的时侯查看到最终的排版效果。但使用 LaTeX 时你并不能方便地查看最终效果,这使得你专注于内容而不是外观的调整。

一个 LaTeX 文档是一个以 .tex 结尾的文本文件,可以使用任意的文本编辑器编辑,比如 Notepad,但对于大多数人而言,使用一个合适的 LaTeX 编辑器会使得编辑的过程容易很多。在编辑的过程中你可以标记文档的结构。完成后你可以进行编译——这意味着将它转化为另一种格式的文档。它支持多种格式,但最常用的是 PDF 文档格式。

文章基本信息

文章标题 \title{ }

\title{这是标题}

需要在\begin{document}里面写\maketitle才能显示标题。

文章作者 \author{ }

\author{sillyxue}

写作时间 \date{ }

\date{\today}

文章结构

普通文章\documentclass{UTF8}{ctexart}

\begin{document}\section{第一章节}这是第一章节内容,相当于1\subsection{子章节}这是第一章节子章节内容,相当于1.1\subsubsection{子章节的子章节}这是第一章节子章节的子章节内容,相当于1.1.1
\end{document}  

书籍 \documentclass[UTF8]{ctexbook}

\begin{document}\part{第一部分}\chapter{第一大章}\section{第一章节}这是第一章节内容,相当于1\subsection{子章节}这是第一章节子章节内容,相当于1.1\subsubsection{子章节的子章节}这是第一章节子章节的子章节内容,相当于1.1.1
\end{document}  

字体样式

\textbf{加粗!!}
\textit{斜体!!}
\emph{强调!!}
\underline{下划线!!}

列表

无序列表

\begin{itemize}\item 吃饭\item 睡觉\item 弹尤克里里
\end{itemize}

有序列表

\begin{enumerate}\item 第一步\item 第二步\item 第三步
\end{enumerate}

数学公式

行内公式: 写在两个$之间

$E = mc^2$

普通公式

\begin{equation}E=mc^2
\end{equation}

或者[E = mc^2] ,这种不会自动标注公式序号

公式分行对齐: 在每个需要对齐的位置前写&,除最后一行外每行末尾写\

 \begin{align*}2^5 &= (1+1)^5 \\&= \begin{multlined}[t]\binom{5}{0} \cdot1^{5}+\binom{5}{1} \cdot1^{4}\cdot1+\binom{5}{2} \cdot1^{3}\cdot1^{2} \\+\binom{5}{3} \cdot1^{2}\cdot1^{3}+\binom{5}{4} \cdot1\cdot1^{4}+\binom{5}{5} \cdot1^{5} \end{multlined}\\&= \binom{5}{0}+\binom{5}{1}+\binom{5}{2}+\binom{5}{3}+\binom{5}{4}+\binom{5}{5} \end{align*}

图片

插入图片

% 常用选项[htbp]是浮动格式:(!是强制的意思)
% h:当前位置。将图形放置在正文文本中给出该图形环境的地方。
% t:顶部。将图形放置在页面的顶部。
% b:底部。将图形放置在页面的底部。
% p:浮动页。将图形放置在一只允许有浮动对象的页面上。
\begin{figure*}[!h]\label{yuce}\centering\includegraphics[width=0.5\textwidth]{预测}\caption{这里是图片标题,上一行指定图片的宽度和路径}
\end{figure*}

引入图片

通过插入图片时指定的label标签引用相应图片。

\label{yuce}  % 写在插入图片的位置(上面代码块里写了这个)

这里就可以引用啦啦啦~通过【\ ref {给图片指定的label名字} 】来引用:

图\ref{yuce}描述了......

多子图()引用同上

 \begin{figure}[!h]\centering\subfloat[第一部分]{\includegraphics[width=0.33\textwidth]{figure/3-1}}{}\label{fig1}\subfloat[第二部分]{\includegraphics[width=0.33\textwidth]{figure/3-2}}{}\label{fig2}   \subfloat[第三部分]{\includegraphics[width=0.33\textwidth]{figure/3-3}}{}\label{fig3}\caption{示意图}\label{short3}
\end{figure}

表格

 % 表格(3*3),第四行c是居中的意思\begin{table}[htbp]\centering\caption{表格演示}\begin{tabular}{c | c | c}\hline单元格1 & 单元格2 &单元格3 \\\hline单元格4 & 单元格5 &单元格6 \\\hline单元格7 & 单元格8 &单元格9 \\\hline\end{tabular}\end{table}

这里推荐一个好用的Excel插件,可以自动生成表格:
Excel2LaTeX

 % Table generated by Excel2LaTeX from sheet 'Sheet1'\begin{table}[htbp]\centering\caption{爱好表}\begin{tabular}{c | c | c}\hline\textbf{名字} & \textbf{年龄} & \textbf{爱好} \\\hline小红    & 1     & 唱歌 \\\hline小明    & 2     & 跳舞 \\\hline\end{tabular}%\label{这里指定用于引用的label}%\end{table}%

表格的引用方式和图片的相同

代码

普通代码

% 普通代码\begin{verbatim}#include{stdio.h}int main(){printf("hello,world!");return 0;}\end{verbatim}

语法高亮代码

\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=c,                                        % 设置语言
}% 代码语法高亮\begin{lstlisting}#include{stdio.h}int main(){printf("hello,world!");return 0;}\end{lstlisting}

算法

    \begin{codebox}\Procname{$\proc{Insertion-Sort(A)}$}\li \For $j \gets 2$ \To $\id{length}[A]$    \label{li:for}\li     \Do $\id{key} \gets A[j]$            \label{li:for-begin}\li         \Comment Insert $A[j]$ into the sorted sequence $A[1 \twodots j-1]$.\li         $i \gets j-1$\li         \While $i>0$ and $A[i]>\id{key}$ \label{li:while}\li            \Do $A[i+1] \gets A[i]$       \label{li:while-begin}\li                $i \gets i-1$             \label{li:while-end}\End\li         $A[i+1] \gets \id{key}$          \label{li:for-end}\End\end{codebox}

参考文献

插入参考文献

 % 参考文献列表% 宽度9,表示引用的个数不能超过9个\begin{thebibliography}{9}\bibitem[1]{liuhaiyang2013latex}刘海洋.\newblock \LaTeX {}入门\allowbreak[J].\newblock 电子工业出版社, 北京, 2013.\bibitem[2]{mathematical-modeling}全国大学生数学建模竞赛论文格式规范\end{thebibliography}   

引用参考文献\cite{}

入门书籍可以看《\LaTeX{}入门》\cite{liuhaiyang2013latex}。

% 插入包 \hypersetup{hidelinks} 可以隐藏绿框框

其他

脚注

\footnote{脚注内容}

附录

\appendix

新页

\newpage

插入其他页面

\input{code/p1.tex}

学习资料

  1. 一份(不太)简短的Latex介绍

  2. LaTeX工作室

完整示例

\documentclass[UTF8]{ctexart}
% 导入需要的包
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{clrscode}
\title{这是标题}
\author{sillyxue}
\date{\today}\begin{document}\maketitle\textbf{加粗了!!}\textit{斜体!!}\emph{强调!!}\underline{有下划线!}% 类型为ctexbook时:% \part{第一部分}% \chapter{第一大章}\section{第一章节}这是第一章节内容。\subsection{子章节}这是第一章节子章节内容欧呦\subsubsection{子章节的子章节}这是第一章节子章节的子章节内容哈哈哈哈hahahahahaahahahaha图\ref{yuce}描述了啦啦啦啦啦啦% 图片(t,h,b,p)\begin{figure*}[!h]\label{yuce}\centering\includegraphics[width=0.5\textwidth]{预测}\caption{预测的解释}\end{figure*}% 无序列表\begin{itemize}\item 吃饭\item 睡觉\item 弹尤克里里\end{itemize}% 有序列表\begin{enumerate}\item 第一步\item 第二步\item 第三步\end{enumerate}% 数学公式行内公式写在两个美元符号之间,例如$E=mc^2$,好看诶!\begin{equation}E=mc^2\end{equation}或者用这种,但是不会自动标注公式序号\[E=mc^2\]\begin{equation}d={k \varphi(n)+1} \over e\end{equation}\begin{equation}Y=\alpha \frac{\max_{\left( {}\beta_{1} X_{1}+\beta_{2} X_{2}+\beta_{3} X_{3}+\beta_{4} X_{4}+\beta_{5} X_{5}+\beta_{6} X_{6}\right)  } }{\min_{\left(  {}\beta_{1} X_{1}+\beta_{2} X_{2}+\beta_{3} X_{3}+\beta_{4} X_{4}+\beta_{5} X_{5}+\beta_{6} X_{6}  \right)  } } \end{equation}% 公式对齐\begin{align*}2^5 &= (1+1)^5 \\&= \begin{multlined}[t]\binom{5}{0} \cdot1^{5}+\binom{5}{1} \cdot1^{4}\cdot1+\binom{5}{2} \cdot1^{3}\cdot1^{2} \\+\binom{5}{3} \cdot1^{2}\cdot1^{3}+\binom{5}{4} \cdot1\cdot1^{4}+\binom{5}{5} \cdot1^{5} \end{multlined}\\&= \binom{5}{0}+\binom{5}{1}+\binom{5}{2}+\binom{5}{3}+\binom{5}{4}+\binom{5}{5}\end{align*}% 表格(3*3)\begin{table}[htbp]\centering\caption{表格演示}\begin{tabular}{p{2cm} | c | c}\hline单元格1 & 单元格2 &单元格3 \\\hline单元格4 & 单元格5 &单元格6 \\单元格7 & 单元格8 &单元格9 \\\hline\end{tabular}\end{table}% 用Excel插件自动生成表格% \input{table1.tex}% Table generated by Excel2LaTeX from sheet 'Sheet1'\begin{table}[htbp]\centering\caption{爱好表}\begin{tabular}{c | c | c}% \toprule\hline\textbf{名字} & \textbf{年龄} & \textbf{爱好} \\% \midrule\hline小红    & 1     & 唱歌 \\% \midrule\hline小明    & 2     & 跳舞 \\% \bottomrule\hline\end{tabular}%\label{tab:addlabel}%\end{table}%% 普通代码\begin{verbatim}#include{stdio.h}int main(){printf("hello,world!");return 0;}\end{verbatim}
% 代码语法高亮,加颜色行号参考listings宏包
\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=c                                          % 设置语言
}% 代码语法高亮
\begin{lstlisting}#include{stdio.h}int main(){printf("hello,world!");return 0;}
\end{lstlisting}% 算法\begin{codebox}\Procname{$\proc{Insertion-Sort(A)}$}\li \For $j \gets 2$ \To $\id{length}[A]$    \label{li:for}\li     \Do $\id{key} \gets A[j]$            \label{li:for-begin}\li         \Comment Insert $A[j]$ into the sorted sequence $A[1 \twodots j-1]$.\li         $i \gets j-1$\li         \While $i>0$ and $A[i]>\id{key}$ \label{li:while}\li            \Do $A[i+1] \gets A[i]$       \label{li:while-begin}\li                $i \gets i-1$             \label{li:while-end}\End\li         $A[i+1] \gets \id{key}$          \label{li:for-end}\End\end{codebox}% 脚注\subsection{脚注}利用 \verb|\footnote{具体内容}| 可以生成脚注\footnote{脚注可以补充说明一些东西}。% 矩阵\[\mathbf{X} = \left(\begin{array}{cccc}x_{11} & x_{12} & \ldots & x_{1n}\\x_{21} & x_{22} & \ldots & x_{2n}\\\vdots & \vdots & \ddots & \vdots\\x_{n1} & x_{n2} & \ldots & x_{nn}\\\end{array} \right)\]% 引用参考文献% \hypersetup{hidelinks} 可以隐藏绿框框\LaTeX{}的入门书籍可以看《\LaTeX{}入门》\cite{liuhaiyang2013latex}。这是一个简单的引用,用 \verb|\cite{bibkey}| 完成。% 参考文献列表% 宽度9,表示引用的个数不能超过9个\begin{thebibliography}{9}\bibitem[1]{liuhaiyang2013latex}刘海洋.\newblock \LaTeX {}入门\allowbreak[J].\newblock 电子工业出版社, 北京, 2013.\bibitem[2]{mathematical-modeling}全国大学生数学建模竞赛论文格式规范\end{thebibliography}   \end{document}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cgo内存泄漏排查

示例程序&#xff1a; package main/* #include <stdlib.h> #include <string.h> #include <stdio.h> char* cMalloc() {char *mem (char*)malloc(1024 * 1024 * 16);return mem; } void cMemset(char* mem) {memset(mem, -, 1024 * 1024 * 16); } int arr…

Django的介绍

Django是一个高级的Python Web框架,用于快速开发安全、可维护的Web应用程序。以下是关于Django的详细介绍: 一、框架特点 高效的开发模式 内置功能丰富:Django提供了大量的内置工具和功能,减少了开发人员在构建Web应用基础部分所花费的时间。例如,它自带了一个功能强大的…

第四届新生程序设计竞赛正式赛(C语言)

A: HNUCM的学习达人 SQ同学是HNUCM的学习达人&#xff0c;据说他每七天就能够看完一本书&#xff0c;每天看七分之一本书&#xff0c;而且他喜欢看完一本书之后再看另外一本。 现在请你编写一个程序&#xff0c;统计在指定天数中&#xff0c;SQ同学看完了多少本完整的书&#x…

红日靶场vulnstack (五)

前言 好久没打靶机了&#xff0c;今天有空搞了个玩一下&#xff0c;红日5比前面的都简单。 靶机环境 win7&#xff1a;192.168.80.150(外)、192.168.138.136(内) winserver28&#xff08;DC&#xff09;&#xff1a;192.168.138.138 环境搭建就不说了&#xff0c;和之前写…

汇编语言简要记录-1

汇编语言与汇编指令 汇编语言的主题是汇编指令 汇编指令与机器指令的差别在于指令的表示方法上 1、汇编指令是机器机器指令便于记忆的书写格式 2、汇编指令是机器指令的助记符 ag&#xff1a;机器指令 1000100111011000操作&#xff1a;将寄存器BX的值送到AX中汇编指令 MOV …

C++中实现多态有几种方式

一&#xff09;虚函数&#xff08;Virtual Functions&#xff09;实现多态 概念&#xff1a; 虚函数是在基类中使用关键字virtual声明的成员函数。当一个类包含虚函数时&#xff0c;编译器会为该类创建一个虚函数表&#xff08;v - table&#xff09;&#xff0c;这个表存储了虚…

汽车IVI中控开发入门及进阶(三十七):基于HFP协议的蓝牙电话

概述: HFP全称Hands-free Profile,是一款让蓝牙设备控制电话的软件,多用于汽车上。此类设备最常见的例子是车载免提装置与蜂窝电话或可穿戴无线耳机一起使用。该配置文件定义了支持免提配置文件的两个设备如何在点对点的基础上相互交互。免提模式的实现通常使耳机或嵌入式免…

线程条件变量 生产者消费者模型 Linux环境 C语言实现

只能用来解决同步问题&#xff0c;且不能独立使用&#xff0c;必须配合互斥锁一起用 头文件&#xff1a;#include <pthread.h> 类型&#xff1a;pthread_cond_t PTHREAD_COND_INITIALIZER 初始化 初始化&#xff1a;int pthread_cond_init(pthread_cond_t * cond, NULL);…

AI技术在电商行业中的应用与发展

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

高通---Camera调试流程及常见问题分析

文章目录 一、概述二、Camera配置的整体流程三、Camera的代码架构图四、Camera数据流的传递五、camera debug FAQ 一、概述 在调试camera过程中&#xff0c;经常会遇到各种状况&#xff0c;本篇文章对camera调试的流程进行梳理。对常见问题的提供一些解题思路。 二、Camera配…

高危端口汇总(Summary of High-Risk Ports)

高危端口汇总 能关闭就关闭 &#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解…

贪心算法实例-问题分析(C++)

贪心算法实例-问题分析 饼干分配问题 有一群孩子和一堆饼干&#xff0c;每个小孩都有一个饥饿度&#xff0c;每个饼干都有一个能量值&#xff0c;当饼干的能量值大于等于小孩的饥饿度时&#xff0c;小孩可以吃饱&#xff0c;求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃…

图像处理网络中的模型水印

论文信息&#xff1a;Jie Zhang、Han Fang、Weiming Zhang、Wenbo Zhou、Hao Cui、Hao Cui、Nenghai Yu&#xff1a;Model Watermarking for Image Processing Networks 本文首次提出了图像处理网络中深度水印问题&#xff0c;将知识产权问题引入图像处理模型 提出了第一个深…

【后端面试总结】缓存策略选择

一般来说我们常见的缓存策略有三种&#xff0c;他们各自的优劣势和实现逻辑分别如下 Cache Aside&#xff08;旁路缓存&#xff09; 特点&#xff1a; 灵活性高&#xff1a;应用程序直接与缓存和数据库交互&#xff0c;具有高度的灵活性&#xff0c;可以根据业务需求自定义缓…

【网络安全】网站常见安全漏洞 - 网站基本组成及漏洞定义

文章目录 引言1. 一个网站的基本构成2. 一些我们经常听到的安全事件3. 网站攻击者及其意图3.1 网站攻击者的类型3.2 攻击者的意图 4. 漏洞的分类4.1 按来源分类4.2 按危害分类4.3 常见漏洞与OWASP Top 10 引言 在当今的数字化时代&#xff0c;安全问题已成为技术领域不可忽视的…

spaCy 入门与实战:强大的自然语言处理库

spaCy 入门与实战&#xff1a;强大的自然语言处理库 spaCy 是一个现代化、工业级的自然语言处理&#xff08;NLP&#xff09;库&#xff0c;以高效、易用和功能丰富著称。它被广泛应用于文本处理、信息提取和机器学习任务中。本文将介绍 spaCy 的核心功能&#xff0c;并通过一…

Ubuntu22.04系统源码编译OpenCV 4.10.0(包含opencv_contrib)

因项目需要使用不同版本的OpenCV&#xff0c;而本地的Ubuntu22.04系统装了ROS2自带OpenCV 4.5.4的版本&#xff0c;于是编译一个OpenCV 4.10.0&#xff08;带opencv_contrib&#xff09;版本&#xff0c;给特定的项目使用&#xff0c;这就不用换个设备后重新安装OpenCV 了&…

代码随想录第36天

01背包问题 二维 def hanshu():wupin, bagweight [int(x) for x in input().split()]weight [int(x) for x in input().split()]value [int(x) for x in input().split()]dp [[0]*(bagweight1) for i in range(wupin)] #dp[i][j]代表从物品【0,i-1】让任意取&#xff0c…

[C#]使用 .NET 8/9 中的 Async/Await 避免常见错误并提高性能

在.NET 8中,异步编程对于构建响应迅速且高效的应用程序至关重要。如果使用得当,async/await关键字能够简化异步代码的复杂性,但它也并非毫无挑战。在本文中,我们将探讨开发人员常犯的错误以及避免这些错误的实用策略,所有内容都将基于实际的编码场景展开。让我们深入了解如…

Dataset用load_dataset读图片和对应的caption的一个坑

代码&#xff1a; data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据&#xff1…