Latex生成的PDF中加入书签/Navigation/导航

news2025/6/3 23:13:07

本文参考:【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客

(这篇文章写的真的太棒了!非常推荐)

题外话,我的碎碎念,这也是我如何提高搜索能力的办法:想在Latex生成的PDF中加入书签,我在检索这个问题的时候,脑子是有画面的,pdf阅读器左侧的navigation,我忘记了这个叫书签,因为我只记得在word中显示导航项的英文是navigation, 由英文才想起对应的中文是导航,于是检索这个问题时,我在必应的搜索框中键入的关键词是:Latex增加导航。

回车,在搜索页面中,总是会有更相关的词,这个时候,只需要把关键词替换一下,总是会得找到自己问题的解决办法。当然,今天的这个问题,并没有这么复杂,不需要找到更相关的词,再次进行搜索。

总结:

  1. 生成目录:
    \tableofcontents  % 生成目录
  2. 生成PDF书签:
    \usepackage{hyperref}  %添加在begin{document}之前

目录

一、Latex生成目录

 二、生成PDF书签

2.1-生成PDF书签

2.1-进一步,消除红色超链接框,让保留超链接


一、Latex生成目录

假设Latex中已经生成多级标题,我们用命令:\tableofcontents可以生成目录。

值得注意的是,这种方式生成的目录不带有超链接。

注意:下述Latex代码 需要使用XeLatex编译

推荐使用Overleaf!简单方便!

\documentclass{article}
\title{论文题目}
\author{作者}
\date{\today}


\usepackage[UTF8]{ctex} %中文
% 页边距
\usepackage{geometry}
\newgeometry{left = 3 cm, right = 3 cm, top=2.5cm, bottom=1.5cm}

\begin{document}
\maketitle
\textbf{Abstract}


\tableofcontents  % 生成目录

\newpage
\section{Python}  % 一级标题
\subsection{Leetcode}  % 二级标题

\section{写作}  % 一级标题

\section{其他}  % 一级标题
\subsection{Latex}  % 二级标题
\subsection{博客}  % 二级标题

\end{document}	

上述代码效果:

 

 Latex中文环境参考:

LaTex支持中文的三种方式_latex编译中文-CSDN博客

 二、生成PDF书签

2.1-生成PDF书签

直接加一行命令:\usepackage{hyperref}

值得注意的是,通过这种方式,得到的PDF中的目录是带有超链接的!

 代码如下:

\usepackage{hyperref}  % 在\begin{document}之前加入

\begin{document}

 效果如下:

2.1-进一步,消除红色超链接框,让保留超链接

注意到,在第二节中,生成的PDF文件的目录带有红色的框框(通常红色的框框提示我们这个地方是有超链接的!)但是pdf文档中的目录有红框框,不好看,我们可以使用如下命令:

参考:

【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客

本文主要参考:【Latex学习】在生成pdf中加入书签/目录/提纲_latex 书签-CSDN博客 , 这篇文章给出了两种生成PDF书签的方式,一是通过hyperrefLatex宏包 ,二是通过pdfcomment Latex宏包 。

下面是由ChatGPT给出的hyperref宏包和pdfcomment宏包之间的区别:

pdfcommenthyperref是两个不同的LaTeX包,它们分别用于不同的目的。

  1. pdfcomment包用于在PDF文档中添加注释和批注。它提供了一些命令,可以在文档中添加注释、批注、高亮和下划线等标记,这些标记会直接在生成的PDF文件中显示。这对于在共享或审阅文档时添加注释非常有用。

  2. hyperref包用于创建超链接和书签。它可以让你在文档中创建内部和外部链接,包括交叉引用、URL链接、目录链接等。此外,hyperref还可以在PDF文档中生成书签,使得阅读和导航文档变得更加方便。

虽然这两个包都与PDF文档有关,但它们的功能和用途是不同的。pdfcomment用于添加注释和标记,而hyperref用于创建链接和书签。如果你需要在文档中添加注释,可以使用pdfcomment包;如果你需要创建链接和书签,可以使用hyperref包。需要注意的是,当同时使用这两个包时,可能会出现一些兼容性问题,需要小心处理。

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

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

相关文章

python脚本 链接到ssh服务器 快速登录ssh服务器 ssh登录

此文分享一个python脚本,用于管理和快速链接到ssh服务器。 效果演示 🔥完整演示效果 👇第一步,显然,我们需要选择功能 👇第二步,确认 or 选择ssh服务器,根据配置文件中提供的ssh信息,有以下情况 👇场景一,只有一个候选ssh服务器,则脚本会提示用户是否确认链…

【hcie-cloud】【9】华为云Stack_Deploy部署工具介绍

文章目录 前言华为云Stack Deploy简介华为云Stack Deploy工具简介华为云Stack Deploy工具部署范围华为云Stack Deploy工具节点网络要求华为云Stack Deploy工具部署流程 华为云Stack Deploy功能介绍部署工具工程场景部署流程介绍创建工程 - 基本信息填写创建工程 - 基本参数选择…

【ITK库学习】使用itk库进行图像配准:“Hello World”配准

目录 1、itkImageRegistrationMethod / itkImageRegistrationMethodv42、itkTranslationTransform3、itkMeanSquaresImageToImageMetric / itkMeanSquaresImageToImageMetric44、itkRegularStepGradientDescentOptimizerv / itkRegularStepGradientDescentOptimizerv4 图像配准…

0基础学习VR全景平台篇第130篇:曝光三要素—感光度

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 众所周知,摄影是一门用光的艺术。随着天气、地点、时间的变化,我们所处环境的光线也随之发生改变。而在不同的环境下该如何去正确的调节曝光,是…

Spring security之授权

前言 本篇为大家带来Spring security的授权,首先要理解一些概念,有关于:权限、角色、安全上下文、访问控制表达式、方法级安全性、访问决策管理器 一.授权的基本介绍 Spring Security 中的授权分为两种类型: 基于角色的授权&…

【Angular】Angular中的最差实践

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

4.4【共享源】克隆实战开发之截屏(二)

三,显示器截图 screen_read_display() 函数则用于捕获显示器的屏幕截图。我们需要在特权上下文中工作,以便可以完全访问系统的显示属性。我们可以通过调用具有 SCREEN_DISPLAY_MANAGER_CONTEXT 上下文类型的 screen_create_context() 来创建特权上下文。进程必须具有 root 的…

使用minio实现大文件断点续传

部署 minio 拉取镜像 docker pull minio/minio docker images新建映射目录 新建下面图片里的俩个目录 data(存放对象-实际的数据) config 存放配置开放对应端口 我使用的是腾讯服务器所以 在腾讯的安全页面开启 9000,9090 两个端口就可以了(根据大家实际…

使用python对windows/win11进行属性设置

有一个个人的需求,针对windows系统进行属性设置,这里以对鼠标的左右键主键进行切换为例,进行了研究,以当前win11系统为基础进行了更动。 首先是对于如果打开windows系统下的鼠标设置,有以下几种办法: 添加…

十大经典排序算法(个人总结C语言版)

文章目录 一、前言二、对比1.排序算法相关概念1.1 时间复杂度1.2 空间复杂度1.3 排序方式1.4 稳定度 2.表格比较3.算法推荐3.1 小规模数据3.2 中等规模数据3.3 大规模数据3.4 特殊需求 三、排序算法1.冒泡排序(Bubble Sort)1.1 简介1.2 示例代码&#xf…

使用互斥锁(Mutex)管理共享资源

在Go中确保并发安全性 并发是Go中的一个强大功能,它允许多个Goroutines(并发线程)同时执行。然而,伴随着强大的功能也带来了大量的责任。当多个Goroutines并发地访问和修改共享资源时,可能会导致数据损坏、数据竞争&a…

网络爬虫之Ajax动态数据采集

动态数据采集 规则 有时候我们在用 requests 抓取页面的时候,得到的结果可能和在浏览器中看到的不一样,在浏览器中可以看到正常显示的页面教据,但是使用 requests 得到的结果并没有,这是因为requests 获取的都是原始的 HTML 文档…

【小白攻略】php 小数转为百分比,保留两位小数的函数

php 小数转为百分比 首先,最简单直观的方法是利用PHP内置的number_format函数。该函数可以对一个数字进行格式化,并可以设置小数点后的精度。通过将小数乘以100,再用number_format函数将结果格式化为百分比形式,即可达到将小数转为…

uniapp怎么动态渲染导航栏的title?

直接在接口请求里面写入以下: 自己要什么参数就写什么参数 本人仅供参考: this.name res.data.data[i].name; console.log(名字, res.data.data[i].name); uni.setNavigationBarTitle({title: this.name}) 效果:

图论 | 网络流的基本概念

文章目录 流网路残留网络增广路径割最大流最小割定理最大流Edmonds-Karp 算法算法步骤程序代码时间复杂度 流网路 流网络: G ( V , E ) G (V, E) G(V,E) 有向图,不考虑反向边s:源点t:汇点 c ( u , v ) c(u, v) c(u,v)&#xff…

CSS:浮动

CSS:浮动 浮动效果浮动方式 float浮动特性标准流脱标脱标的影响脱标的影响范围 清除浮动清除浮动原理 clear基于clear的清除浮动方式额外标签法:afert伪元素法双伪元素法 清除浮动原理 BFCBFC定义BFC布局规则创建一个BFC基于BFC的清除浮动方式父级添加overflow法 浮…

物理模拟重力 斜抛运动计算 抛物线计算

物理模拟重力 斜抛运动计算 抛物线计算 一、介绍二、原理三、实现如下PhysicsUtil.cs 工具类Missile.cs 四、资源分享 一、介绍 模拟Unity原始重力系统进行重写,可是实现发射到指定目标位置并能继续当前力进行自身的弹力与摩擦继续运动 二、原理 将Unity原始不受控…

鸿蒙开发4.0-ArkTS与H5的交互

ArkTS侧与H5的交互 首先在开发H5页面(输入框和金额选择部分)前需要实现JSBridge桥接打通两侧的交互。开发者可以在ArkTS侧定义一个JSBridge类,在类中封装call方法以及initJsBridge方法。 准备异步执行脚本,在脚本中声明一个JSBri…

工具系列:PyCaret介绍_Fugue 集成_Spark、Dask分布式训练

工具系列:PyCaret介绍_Fugue 集成_Spark、Dask分布式训练 Fugue 是一个低代码的统一接口,用于不同的计算框架,如 Spark、Dask。PyCaret 使用 Fugue 来支持分布式计算场景。 目录 1、分布式计算示例: (1)分类 (2)回归 (3)时间…

7.5组合总和②(LC40-M)

算法: 相比于上一题,数组candidates有重复元素,而要求不能有重复的组合,所以相对于39.组合总和 (opens new window)难度提升了不少。 如何去重? 先把candidates排序,让重复的元素都在一起 单层递归时&a…