仅个人拙见,属于简单速通,能用就行的状态。
准备项目
推荐结构为以下形式:
Test-thesis/ # 项目根目录(建议用论文主题命名)├── main.tex # 主文档(你已有的入口文件,所有内容从这里编译)├── .gitignore # Git 忽略文件(你已有的,可直接补充规则)├── figures/ # 图片目录(你已有的,统一存放所有插图)│ ├── chapter1/ # 按章节分文件夹,方便管理│ ├── chapter2/│ └── appendix/├── chapters/ # 章节源码目录(核心!把正文拆分成多个 .tex 文件)│ ├── 01-intro.tex # 第1章 引言│ ├── 02-related.tex # 第2章 相关工作│ ├── 03-method.tex # 第3章 方法│ ├── 04-experiment.tex # 第4章 实验│ ├── 05-conclusion.tex # 第5章 结论│ └── appendix.tex # 附录├── styles/ # 样式/模板目录(统一管理格式)│ ├── Test-thesis.cls # 自定义论文类文件(如果用自定义模板)│ ├── reference.bib # BibTeX 参考文献库(所有参考文献放这里)│ └── custom.sty # 自定义宏包/格式设置(如字体、行距、图表样式)├── tables/ # 表格目录(复杂表格单独存,主文档用 \input 引入)│ ├── tab1-performance.tex│ └── tab2-ablation.tex├── drafts/ # 草稿/备份目录(存放旧版本、未完成内容,不上Git)├── output/ # 编译输出目录(PDF、aux、log 等中间文件,不上Git)│ └── Test-thesis.pdf # 最终生成的论文PDF└── README.md # 项目说明(可选,记录编译命令、依赖、注意事项)当然项目不大的话我更建议使用以下形式,后文皆以该简易形式为例子,方便快速上手。
Test-thesis/ # 项目根目录(建议用论文主题命名)├── main.tex # 主文档(你已有的入口文件,所有内容从这里编译)├── figures/ # 图片目录│ ├── picture.png # 可以是png格式的│ ├── table.pdf # pdf格式的也能直接当图片用│ └── head.jpg # jpg当然更不在话下│ └── ...... # 应该大部分图片格式都支持└── .gitignore # Git 忽略文件(你已有的,可直接补充规则)其中.gitignore这里给一个样例,根据需求自行调整。
/*
!figures/
!*.md!*.tex!.gitignore创建完基础的项目结构后,到远程的仓库下先创建一个空的项目,然后clone到本地,再把创建完的基础项目都复制到clone的目录下面。当然没有远程仓库需求的话直接本地git init即可,之后再需要远程仓库了再去设置。
基础格式
这里简单整理的一份不用额外设置的前置美化设置,直接复制粘贴到main.tex开头,应该大部分情况都够用,不够再修改和添加即可。
\documentclass[12pt]{article}
% 包含必要的包\usepackage[utf8]{inputenc}\usepackage[T1]{fontenc}\usepackage{graphicx}\usepackage{hyperref}\usepackage{geometry}\usepackage{times} % 使用Times字体\usepackage{titlesec} % 自定义章节标题\usepackage{listings} % 代码列表\usepackage{xcolor} % 自定义颜色\usepackage{indentfirst} % 添加首行缩进\usepackage{enumitem} % 更好的列表控制\usepackage{setspace} % 行间距\usepackage{booktabs} % 三线表\usepackage{placeins}\usepackage{subfigure} % 用于排版多张图片\usepackage{float} % 用于排版图片位置\usepackage{graphicx}\usepackage{tcolorbox}\usepackage{hyperref}\usepackage{algorithm}%算法\usepackage{algorithmic}%算法\usepackage{amsmath}%数学符号\usepackage{amssymb}%数学符号\usepackage{multirow}%表格\usepackage{array}
\graphicspath{{./figures/}}
% 页面布局\geometry{ a4paper, margin=1in, % 设置标准边距}
% 行间距\setstretch{1.25} % 设置1.25倍行距
% 段落间距\setlength{\parskip}{6pt plus 2pt minus 1pt}
% 自定义颜色\definecolor{linkcolor}{rgb}{0,0,0.65} % 蓝色链接
% 超链接设置\hypersetup{ colorlinks=true, linkcolor=linkcolor, filecolor=magenta, urlcolor=cyan,}
% 罗马数字作为一级标题% \renewcommand{\thesection}{\Roman{section}}% 阿拉伯数字作为一级级标题\renewcommand{\thesection}{\arabic{section}}
% 阿拉伯数字作为二级标题\renewcommand{\thesubsection}{\arabic{subsection}}
% 阿拉伯数字作为三级标题,附加父节编号\renewcommand{\thesubsubsection}{\thesubsection.\arabic{subsubsection}}
% 标题格式设置\titleformat{\section} {\normalfont\Large\bfseries}{\thesection.}{1em}{}\titlespacing*{\section}{0pt}{24pt plus 6pt minus 3pt}{18pt plus 3pt minus 1.5pt}
\titleformat{\subsection} {\normalfont\large\bfseries}{\thesubsection}{1em}{}\titlespacing*{\subsection}{0pt}{18pt plus 4pt minus 2pt}{12pt plus 2pt minus 1pt}
\titleformat{\subsubsection} {\normalfont\normalsize\bfseries}{\thesubsubsection}{1em}{}\titlespacing*{\subsubsection}{0pt}{15pt plus 4pt minus 2pt}{10pt plus 2pt minus 1pt}
% 如果有更深的标题级别,可以继续定义
% 函数格式定义\newcommand{\func}[1]{\textit{\texttt{#1}}}
% 仅配置边框和间距(核心修改项)\lstset{ frame=single, % 添加单边框(满足"有框"需求) framesep=2pt, % 边框与代码内容的内间距(缩小) aboveskip=5pt, % 代码块上方外部间距(缩小) belowskip=5pt, % 代码块下方外部间距(缩小) % 以下为基础保留项(保证代码可读性,不改动) language=bash, basicstyle=\ttfamily\small, breaklines=true, tabsize=4, showstringspaces=false}开始书写
将Latex的文件理解为代码,有点像HTML,\理解为使用函数,{}可以认为是输入参数,由\begin{}和\end{}围起来的区域可以视作是一个元素体或容器。
我们要写主要内容的时候,应该在下面的结构内部进行,作者和封面这些设置本文不会提及,如有需要请自行搜索。
\begin{document}
% 文段内容写在这里
\end{document}在上面这个结构里面书写标题的时候,一般建议最多到三级标题,从四级标题开始观感上就不是很好了,所以标题只用以下三个就够了:
\section{我是一级标题}
一级标题内的内容
\subsection{我是二级标题}
二级标题内的内容
\subsubsection{我是三级标题}
三级标题内的内容好,现在你应该会写基础的文档了,先试试编译,使用xelatex main.tex进行编译,得到main.pdf,点开查看书写好的文档,可以写一点就编译一次看看效果,探索版面效果是个很有趣的过程。
图表编辑
图片
图片用以下格式即可插入:
\begin{figure}[H] \centering \includegraphics[scale=0.14]{IronMan.png} \caption{I am Iron Man} \label{fig:I am Iron Man}\end{figure}这里每个命令都有自己的用途:
\begin{figure}[H]:创建图片容器,[H]表示固定在当前位置不浮动\centering:居中函数,让内部内容居中显示\includegraphics[scale=0.14]{IronMan.png}:插入图片函数,[scale=]设缩放比例,{}传入图片文件名,建议图片名不要有空格\caption{I am Iron Man}:标题函数,为图片添加下方说明文字\label{fig:I am Iron Man}:定义引用标签函数,用于后文交叉引用这张图\end{figure}:结束图片容器,闭合该区域
设置\label{fig:I am Iron Man}为了方便使用超链接定位图片,在文段中使用\ref{fig:I am Iron Man}即可出现一个对于图片的排序数字。
表格
TIP表格的使用则有些繁琐了,建议利用ai辅助
图片用 figure 环境,表格则用 table 环境配合 tabular 来绘制内容。基础格式如下:
\begin{table}[H] \centering \begin{tabular}{|c|c|c|} \hline 标题1 & 标题2 & 标题3 \\ \hline 内容A & 内容B & 内容C \\ \hline 内容D & 内容E & 内容F \\ \hline \end{tabular} \caption{这是一个示例表格} \label{tab:example}\end{table}各部分的用途说明:
\begin{table}[H]:创建表格容器,[H]同样表示固定在当前位置不浮动\centering:让表格在容器内居中显示\begin{tabular}{|c|c|c|}:绘制表格内容,{|c|c|c|}定义了三列,每列居中(c),列之间用竖线|分隔,表格左右也有竖线c:列内容居中(center)l:左对齐(left)r:右对齐(right)|:绘制竖线,||可绘制双竖线
\hline:横线,用于绘制表格的水平线,放在两行之间&:列分隔符,用于分隔同一行的不同单元格\\:行结束符,表示该行结束,换到下一行\caption{...}:为表格添加上方标题(默认在表格上方,也可通过宏包调整位置)\label{tab:example}:定义引用标签,用于后文交叉引用
设置 \label{tab:example} 后,在文段中使用 \ref{tab:example} 即可出现表格的编号。
如果需要合并单元格,可以使用 \multicolumn 命令:
\begin{table}[H] \centering \begin{tabular}{|c|c|c|} \hline \multicolumn{2}{|c|}{合并两列} & 单独一列 \\ \hline 左 & 中 & 右 \\ \hline \end{tabular} \caption{合并单元格示例} \label{tab:multicolumn}\end{table}\multicolumn{2}{|c|}{合并两列}表示该单元格占 2 列,格式为居中且左右有竖线,内容为“合并两列”
表格和图片的引用方式一致,都通过 \ref{...} 实现。两者主要的区别在于:
- 图片用
\includegraphics插入外部图像 - 表格用
tabular环境直接绘制内部内容
代码
代码块用 listings 宏包,基本格式如下:
\begin{lstlisting}[label={lst:no_random_init}, caption={Disabling random initialization}]# 这里是代码内容def init(): pass\end{lstlisting}各部分说明:
\usepackage{listings}:导言区引入宏包\begin{lstlisting}[...]:开始代码块,[label={...}]设置引用标签,[caption={...}]设置标题- 代码内容直接写在环境中,保留空格和换行
\end{lstlisting}:结束代码块
引用时使用 \ref{lst:no_random_init} 即可得到编号。
若需全局设置样式(如语言、字体),用 \lstset{language=Python, basicstyle=\ttfamily} 配置一次即可。
If this article helped you, please share it with others!
Some information may be outdated





