mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1169 words
3 minutes
Try Latex
2025-02-02

仅个人拙见,属于简单速通,能用就行的状态。

准备项目#

推荐结构为以下形式:

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} 配置一次即可。

Share

If this article helped you, please share it with others!

Try Latex
https://blog.yremmmm.com/posts/latex/
Author
why?
Published at
2025-02-02
License
CC BY-NC-SA 4.0

Some information may be outdated

Table of Contents