百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

LaTeX教程:手把手教你编写latex(一)

liuian 2025-10-02 03:12 3 浏览


引言

今天分享的是一个latex的模板,LaTeX 作为专业的文档排版系统,在学术论文、技术报告等领域应用广泛,但传统模板往往显得单调。本教程基于一份功能丰富、视觉精美的 LaTeX 模板代码,从基础设置到高级应用,逐步讲解如何打造既专业又具吸引力的文档,无论你是 LaTeX 新手还是有一定基础的用户,都能从中获得实用技能。

系列文章目录

第一章:深入了解 LaTeX:科技文档排版的利器

第二章:LaTeX 下载安装保姆级教程

第三章:LaTeX 创建工程并生成完整文档指南

第四章:LaTeX 表格制作全面指南

第五章:LaTeX 复杂图形绘制教程:从基础到进阶

第六章:学术排版利器 LaTeX:疑难问题排查与高效应用技巧

第七章:LaTeX 引用参考文献的全面指南

第八章:用LaTeX优化FPGA开发:结合符号计算与Vivado工具链(一)

第九章:用LaTeX优化FPGA开发:结合符号计算与Vivado工具链(二)

第十章:新手入门:从零开始使用这份 LaTeX 模板

第十一章:护理科研人员的 LaTeX 进阶指南:从基础排版到 SCI 级图表制作(一)

第十二章:护理科研人员的 LaTeX 进阶指南:从基础排版到 SCI 级图表制作(二)

第十三章:LaTeX 教程:从入门到专业的排版模板

第十四章:Wiley出版社专用LaTeX文档类手把手教程(一)

第十五章:Wiley出版社专用LaTeX文档类手把手教程(二)

第十六章:《Nursing Research》(护理SCI)LaTeX模板详细教程:从入门到投稿(一)

一、模板整体架构与基础准备

在开始使用该模板前,我们首先要了解其整体架构,这有助于后续的理解与修改。该模板遵循 LaTeX 标准结构,主要分为导言区(设置文档格式、加载包、定义样式)和文档区(撰写正文内容,包含标题页、摘要、目录、章节等)两大部分。

1.1 文档基础设置

代码开头的\documentclass[12pt,a4paper]{article}定义了文档的基本类型,其中12pt指定字体大小为 12 磅,a4paper设置纸张为 A4 尺寸,article表示文档类型为文章类(适用于报告、论文等)。若你需要制作演示文稿,可改为beamer;若制作书籍,可改为book

\documentclass[12pt,a4paper]{article}

1.2 必备包的加载与作用

导言区加载了大量实用包,这些包是实现模板丰富功能的核心,以下是关键包的分类与作用:

包类别

包含包

主要作用

编码与字体

ctex、microtype

ctex包解决中文排版问题,支持中文显示与输入;microtype优化微排版,提升文字间距、字符对齐等细节效果

页面布局

geometry、setspace、parskip、titlesec、titling、fancyhdr

geometry用于设置页边距,代码中\usepackage[margin=1.2in]{geometry}将四边页边距均设为 1.2 英寸;setspace控制行间距,\onehalfspacing设置为 1.5 倍行距;parskip用段落间距代替传统首行缩进,让文档结构更清晰;titlesec和titling用于自定义章节标题和文档标题样式;fancyhdr则用于设计页眉页脚

数学与符号

amsmath、amssymb、amsfonts、mathtools、mathrsfs、amsbsy、stmaryrd

这些包提供了丰富的数学符号、公式排版功能,例如amsmath支持复杂公式的编写,amssymb包含大量数学符号,满足学术文档中数学公式的排版需求

图形和表格

graphicx、float、caption、subcaption、tabularx、booktabs、multirow、makecell、diagbox、tikz、pgfplots、pgf-pie

graphicx用于插入图片;float控制图形和表格的浮动位置;caption和subcaption用于设置图表标题和子标题;tabularx、booktabs等包增强表格功能,支持复杂表格(如合并单元格、对角线表格);tikz是强大的绘图工具,可绘制图形、流程图等;pgfplots用于制作高级数据图表,pgf-pie则专门用于绘制饼图

颜色与渐变

xcolor、colortbl、tikz-3dplot

xcolor支持自定义颜色;colortbl让表格可以设置背景色;tikz-3dplot用于绘制 3D 图形

引用与目录

hyperref、cleveref、tocloft

hyperref实现文档内超链接(如目录跳转、引用跳转);cleveref优化引用格式,支持智能引用标签;tocloft用于自定义目录样式

其他功能

enumitem、url、lipsum、blindtext、listings、eso-pic、pdfpages、multicol、rotating、ulem、textpos、tcolorbox、siunitx

enumitem自定义列表样式;url支持插入网址;lipsum和blindtext生成占位文本,方便测试排版;listings用于展示代码并实现语法高亮;multicol支持多列布局;tcolorbox创建带颜色和边框的文本框;siunitx用于表格中数值的规范排版

代码示例:

% 编码和字体设置
\usepackage[UTF8]{ctex} % 已包含字体和编码设置,移除冲突包
\usepackage{microtype} % 微排版优化

% 页面布局
\usepackage[margin=1.2in]{geometry}
\usepackage{setspace}
\onehalfspacing
\usepackage{parskip} % 段落间距代替首行缩进
\usepackage{titlesec}
\usepackage{titling}
\usepackage{fancyhdr}

% 数学与符号
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{mathtools}
\usepackage{mathrsfs}
\usepackage{amsbsy}
\usepackage{stmaryrd} % 更多数学符号

% 图形和表格
\usepackage{graphicx}
\usepackage{float}
\usepackage{caption,subcaption}
\usepackage{tabularx,booktabs,multirow,makecell}
\usepackage{diagbox} % 表格对角线
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc,patterns,decorations.pathmorphing,decorations.markings,shadows,matrix}
\usepackage{pgfplots} % 高级图表
\pgfplotsset{compat=1.17}
\usepackage{pgf-pie} % 饼图

% 颜色与渐变
\usepackage{xcolor}
\usepackage{colortbl} % 带颜色的表格
\usepackage{tikz-3dplot}

% 引用与目录
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{tocloft} % 自定义目录

% 其他功能
\usepackage{enumitem}
\usepackage{url}
\usepackage{lipsum}
\usepackage{blindtext}
\usepackage{listings}
\usepackage{eso-pic} % 页面装饰
\usepackage{pdfpages} % 插入PDF
\usepackage{multicol} % 多列布局
\usepackage{rotating} % 旋转内容
\usepackage{ulem} % 下划线效果
\usepackage{textpos} % 绝对位置文本
\usepackage{tcolorbox} % 添加缺失的tcolorbox包
\usepackage{siunitx} % 添加siunitx包用于表格中的S列

二、自定义样式:打造专属视觉风格

该模板的一大亮点是支持高度自定义的视觉风格,包括颜色方案、标题样式、页眉页脚、目录样式等,通过修改相关代码,你可以轻松打造符合自己需求的文档外观。

2.1 颜色方案定义与应用

代码中通过\definecolor命令定义了一套完整的颜色方案,涵盖主色调、辅助色、强调色、背景色等,具体如下:

% 自定义颜色方案 - 更丰富的色彩

\definecolor{primary}{RGB}{102, 51, 153} % 深紫色主色调

\definecolor{secondary}{RGB}{220, 38, 38} % 红色辅助色

\definecolor{accent1}{RGB}{16, 185, 129} % 绿色强调色

\definecolor{accent2}{RGB}{59, 130, 246} % 蓝色强调色

\definecolor{light}{RGB}{249, 250, 251} % 浅色背景

\definecolor{dark}{RGB}{17, 24, 39} % 深色文本

\definecolor{gray1}{RGB}{229, 231, 235}

\definecolor{gray2}{RGB}{209, 213, 219}

\definecolor{gray3}{RGB}{156, 163, 175}
  • 修改方法:若你想更换主色调,只需将primary对应的 RGB 数值替换即可。例如,将主色调改为蓝色,可修改为\definecolor{primary}{RGB}{0, 122, 255}(RGB 数值可通过 PS、在线颜色拾取器等工具获取)。
  • 应用场景:定义的颜色可用于文本、标题、表格背景、图形填充等。例如,\textcolor{primary}{文本内容}可将文本设置为主色调;表格中\rowcolor{primary!20}表示将行背景设为主色调,透明度为 20%(数值越小越透明)。

此外,模板还定义了渐变色titleShade,可用于标题背景等元素,代码如下:

% 定义渐变色

% 定义渐变色
\pgfdeclarehorizontalshading{titleShade}{100pt}{%
  color(0pt)=(primary);
  color(50pt)=(accent2);
  color(100pt)=(primary)
}

该渐变为水平方向,从左到右依次为主色调、蓝色强调色、主色调,长度为 100pt,你可根据需要调整颜色顺序和长度。

2.2 超链接样式设置

hyperref包实现了超链接功能,同时通过\hypersetup命令自定义超链接样式,代码如下:

% 超链接设置
\hypersetup{
    colorlinks=true,
    linkcolor=primary,
    filecolor=accent2,
    urlcolor=secondary,
    citecolor=accent1,
    pdftitle={惊艳的LaTeX文档模板},
    pdfauthor={创作者},
    pdfsubject={高级LaTeX排版示例},
    pdfkeywords={LaTeX, 模板, 设计, 排版},
    pdfborder={0 0 0}
}

}

修改这些参数可以改变超链接的外观和 PDF 文件的属性信息,例如将urlcolor改为accent1,可使网址链接显示为绿色强调色。

2.3 标题样式定制

2.3.1 章节标题样式

通过\titleformat命令自定义章节标题的字体、颜色、编号格式和下方装饰线,代码如下:

% 节标题样式 - 渐变色与装饰

% 节标题样式 - 渐变色与装饰
\titleformat{\section}
  {\normalfont\Large\bfseries\color{primary}}
  {\thesection}{1em}{}
  %[\titlerule[2pt]\vspace{0.2em}]
  [\titleline{\color{primary}\titlerule[2pt]}]
\titleformat{\subsection}
  {\normalfont\normalsize\bfseries\color{accent2}}
  {\thesubsection}
  {1em}
  {}
 % [\titlerule[1pt]\vspace{0.1em}]
[\titleline{\color{accent2}\titlerule[1pt]}]

若你想让章节标题字体更大,可将\Large改为\LARGE;若想改变装饰线颜色,替换\color{}中的颜色名称即可。

2.3.2 标题页设计


模板通过自定义命令\decorativeTitlePage创建了精美的装饰性标题页,包含顶部装饰线、标题、副标题、作者信息、日期和底部装饰线,代码如下:

% 标题页装饰
\newcommand{\decorativeTitlePage}{
    \begin{titlepage}
        \centering

        % 顶部装饰
        \begin{tikzpicture}[remember picture, overlay, scale=1]
            \draw[line width=2pt, primary] ($(current page.north west) + (2cm,-2cm)$) to ($(current page.north east) + (-2cm,-2cm)$);
            \draw[line width=1pt, accent2] ($(current page.north west) + (2cm,-2.3cm)$) to ($(current page.north east) + (-2cm,-2.3cm)$);
        \end{tikzpicture}

        \vspace*{1cm}

        % 标题
        \begin{tikzpicture}
            \node[text width=\textwidth, align=center] {
                \Huge\bfseries\sffamily\color{primary} 好看的LaTeX文档模板
            };
        \end{tikzpicture}

        \vspace{1cm}

        % 副标题
        \Large\itshape\color{accent2} 融合艺术与技术的现代排版设计

        \vspace{3cm}

        % 装饰图形
        % \begin{tikzpicture}[scale=0.8]
        %     \pie[
        %         text=legend, 
        %         color={primary, secondary, accent1, accent2},
        %         radius=3cm,
        %         rotate=180
        %     ]{
        %         35, 25, 20, 20
        %     }
        % \end{tikzpicture}

        % \vspace{3cm}

        % 作者信息
        \begin{tabular}{c}
            \Large\bfseries I'm a winner、研途人 \\
            \large 所属机构 \\
            \small \href{mailto:contact@example.com}{contact@example.com} \\
        \end{tabular}

        \vspace{2cm}

        % 日期
        \large 文档创建于: \today

        % 底部装饰
        \begin{tikzpicture}[remember picture, overlay, scale=1]
            \draw[line width=1pt, accent2] ($(current page.south west) + (2cm,2.3cm)$) to ($(current page.south east) + (-2cm,2.3cm)$);
            \draw[line width=2pt, primary] ($(current page.south west) + (2cm,2cm)$) to ($(current page.south east) + (-2cm,2cm)$);
        \end{tikzpicture}
    \end{titlepage}
}
  • 修改标题与副标题:直接替换好看的LaTeX文档模板融合艺术与技术的现代排版设计为你的文档标题和副标题。
  • 更新作者信息:将I'm a winner、沿途人改为作者姓名,所属机构替换为实际机构名称,contact@example.com改为联系邮箱。
  • 调整装饰元素:若想改变顶部 / 底部装饰线的颜色,替换primaryaccent2;若想调整装饰线位置,修改+ (2cm,-2cm)中的数值(第一个数值为水平偏移,第二个为垂直偏移)。

在文档区,通过\decorativeTitlePage命令即可生成标题页。

2.4 页眉页脚设计


fancyhdr包实现了页眉页脚的定制,代码如下:

% 页眉页脚 - 更精致的设计

\pagestyle{fancy}

\fancyhf{} % 清空默认页眉页脚内容

\fancyhead\[L]{\textcolor{primary}{\leftmark}} % 页眉左侧:当前章节标题(主色调)

\fancyhead\[R]{\textcolor{accent2}{\thepage}} % 页眉右侧:页码(蓝色强调色)

\renewcommand{\headrulewidth}{0.4pt} % 页眉线宽度

\renewcommand{\headrule}{\hbox to\headwidth{\color{primary!50}\leaders\hrule height \headrulewidth\hfill}} % 页眉线颜色(半透明主色调)

\renewcommand{\footrulewidth}{0pt} % 隐藏页脚线
  • 若想在页脚添加内容,可使用\fancyfoot[C]{\textcolor{gray3}{页码:\thepage}}(在页脚居中显示灰色页码)。
  • 若想改变页眉线颜色,替换primary!50中的颜色名称,!50表示透明度为 50%。

2.5 目录样式优化


tocloft包用于自定义目录样式,让目录更具视觉层次感,代码如下:

% 目录样式

\renewcommand{\cftsecfont}{\bfseries\color{primary}} % 章节名称字体(粗体、主色调)

\renewcommand{\cftsubsecfont}{\color{accent2}} % 子章节名称字体(蓝色强调色)

\renewcommand{\cftsecpagefont}{\color{dark}} % 章节页码字体(深色文本)

\renewcommand{\cftsubsecpagefont}{\color{dark}} % 子章节页码字体(深色文本)

\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} % 章节名称与页码间的点线填充

在文档区,通过以下代码生成目录:

% 目录

\clearpage % 新页开始

\renewcommand{\contentsname}{\textcolor{primary}{\Large\bfseries 目录}} % 目录标题样式(主色调、大号、粗体)

\tableofcontents % 生成目录

\clearpage % 目录结束后新页开始正文

2.6 列表样式自定义

enumitem包优化了列表(有序列表、无序列表)的样式,代码如下:

% 列表样式

\setlist\[itemize,1]{label=\textcolor{primary}{\textbullet}, leftmargin=\*, topsep=0.5em, itemsep=0.2em} % 一级无序列表(主色调圆点、左边距自适应、上下间距)

\setlist\[itemize,2]{label=\textcolor{accent2}{\textopenbullet}, leftmargin=\*, topsep=0.3em, itemsep=0.1em} % 二级无序列表(蓝色强调色空心圆点)

\setlist\[enumerate]{label={\color{accent1}\alph\*)}, leftmargin=\*, topsep=0.5em, itemsep=0.2em} % 有序列表(绿色强调色小写字母编号,如a)、b))

使用时,直接通过\begin{itemize}\begin{enumerate}创建列表,即可应用自定义样式,例如:

\begin{itemize}

    \item 一级无序列表项(主色调圆点)

   \begin{itemize}

    \item 二级无序列表项(蓝色空心圆点)

    \end{itemize}

\end{enumerate}

\begin{enumerate}

   \item 有序列表项a(绿色a)编号)

   \item 有序列表项b(绿色b)编号)

\end{enumerate}

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...