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

本文参考:【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.mzph.cn/news/241114.shtml

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

相关文章

2023的AI工具集合,google和claude被禁用解决和edge的copilot

一、前言 AI工具集合 首先,OpenAI的ChatGPT以其深度学习模型和强大的语言处理能力引领了AI聊天机器人的潮流。自2022年11月30日上线以来,它创下了100万用户的注册记录,并被广泛应用于全球财富500强公司。为了实现盈利,OpenAI发布…

iOS 开发设计 App 上架符合要求的截图

1. 真机运行截屏 2. 可以在 Apple developer 官网 Design 下找到 iPhone 边框 https://developer.apple.com/design/resources/ 不用这个边框也行,可以参考已上架 App 的图片框 3. 使用 Procreate(PhotoShop)创建符合要求的画布大小 4. 导入…

springboot集成websocket全全全!!!

一、界面展示 二、前置了解 1.什么是websocket WebSocket是一种在单个TCP连接上进行全双工通信的持久化协议。 全双工协议就是客户端可以给我们服务器发数据 服务器也可以主动给客户端发数据。 2.为什么有了http协议 还要websocket 协议 http协议是一种无状态,非…

铭飞CMS cms/content/list接口存在SQL注入 附POC

@[toc] 铭飞CMS cms/content/list接口存在SQL注入 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用…

内存函数的学习

额外知识点 第一个 假设c为int类型,(char)c之后,之后如果还用变量c的话,c依然为int类型。()强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …

增强客户获取能力:探索 B 端影片行销的影响

01 B端企业短视频营销的价值与难点 短视频营销在当今的市场中越来越受到重视。有数据显示,越来越多的市场人将尝试增加短视频营销的预算,并且在2023年,每5个市场人中就有1个人将尝试短视频营销。相较于内容深、信息量大的长视频,…

串口通信(7)-C#串口通信通信帮助类实例

本文讲解C#串口通信通信帮助类实例 首先创建winform项目添加界面和控件 UI界面 namespace SerialPortDemo {partial class MainForm{/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.IContainer components = null;/// <sum…

c#委托学习笔记1

委托三步骤 第一步&#xff1a;定义委托 //第一步&#xff1a;1 声明委托(定义委托) //对于声明委托的解释如下&#xff1a; //解释a&#xff1a;函数指针 //解释b&#xff1a;委托就是定义函数的形状&#xff08;形态&#xff09; // 即&#xff1a;返回值类型&#x…

宝塔面板 -- 创建第一个自己的网站

文章目录 前言 一、安装宝塔面板 二、注册宝塔面板 三、安装nginx 四、第一个hello world运行 五、总结 文章目录 前言一、安装宝塔面板二、注册宝塔面板三、安装nginx四、第一个hello world运行五、总结 前言 阿里云最近对在校大学生免费每人赠送一台服务器&#xff0c…

展望2023年CSDN博客之星评选

目录 1 前言2 博客的意义3 人工智能对博客的影响4 AI 技术下的成长与分享5 技术的探索6 博客之星评选对于技术人的激励作用7 结语 1 前言 当我们回顾过去&#xff0c;博客不仅仅是一种记录生活、分享经验的方式&#xff0c;更是一个见证自我成长与进步的平台。站在2023年度 CS…

uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取和更新表单数据)

效果预览 相关代码 页面–我的 src\pages\my\my.vue <!-- 个人资料 --><view class"profile" :style"{ paddingTop: safeAreaInsets!.top px }"><!-- 情况1&#xff1a;已登录 --><view class"overview" v-if"membe…

离散型制造企业为什么要注重MES管理系统的实施

离散型制造企业经常面临三个核心问题&#xff1a;生产什么、生产多少以及如何生产。尽管许多企业都实施了ERP系统&#xff0c;但仍然绕不开MES管理系统的话题。本文将从三个方面详细解释为什么离散型企业需要实施MES管理系统。 一、生产线经常出现的问题 在离散型企业中&#…

Leetcode 45 跳跃游戏 II

题意理解&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。 还是从初始坐标i0的位置到达最后一个元素&#xff0c;但是问题不是能不能跳到&#xff0c;而是最少几步能跳到最后一个元素。 目标&…

Javascript:DOM对象

Javascript&#xff1a;DOM-获取对象 DOM与JavaScript的关系什么是DOMDOM相关概念DOM 树DOM 节点DOM对象 获取DOM对象通过CSS选择器来获取DOM对象其他方式 操作DOM对象控制DOM对象内容控制DOM对象属性控制HTML标签属性控制CSS样式通过style属性操作CSS通过类名(className) 操作…

详解KMP算法

KMP算法应该是每一本《数据结构》书都会讲的&#xff0c;算是知名度最高的算法之一了&#xff0c;但很可惜&#xff0c;我大二那年压根就没看懂过~~~ 之后也在很多地方也都经常看到讲解KMP算法的文章&#xff0c;看久了好像也知道是怎么一回事&#xff0c;但总感觉有些地方自己…

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制 前言0. 基础Qt/PyQt5介绍/关联Qt的优缺点&#xff08;为什么要用qt来做界面&#xff09;Qt 的核心机制请简要介绍一下Qt中的主窗口&#xff08;MainWindow&#xff09;类&#xff0c;它有哪些重要的函数和成员变量&#xff…

【ArduinoOTA无线(OTA)更新的EASY指南】

【ArduinoOTA无线&#xff08;OTA&#xff09;更新的EASY指南】 1. 前言2. 了解 ESP32 的 ArduinoOTA3. 无线更新案例4. ArduinoOTA入门5. 安装必备组件6. 设置硬件7. ESP32 OTA 的最低代码8. 按照我们的流程学习Arduino编程➜9. 这对OTA来说非常重要10. 通过无线方式将草图上传…

携手河南恩坤德,共创养殖新篇章

在这个充满机遇与挑战的时代&#xff0c;养殖业正在经历一场前所未有的变革。作为养殖户&#xff0c;您需要一个能够与您共同应对变革、共创未来的合作伙伴。河南恩坤德农业正是这样一个值得信赖的伙伴&#xff0c;我们携手共创养殖新篇章。 河南恩坤德农业以客户需求为导向&am…

Ai图片处理

Ai也可以直接导入PS文件&#xff0c;只不过需要进行一个相关的选择&#xff0c;一般来说是将图层转化为对象 第二个为图层拼合为单个图像&#xff08;不常用&#xff09; 第三个则是将隐藏的图片也进行显示 如果你觉得图片的信息的过少好想插入其他的图片&#xff0c;可以选择…

【mongoose】 Model.create() no longer accepts a callback 报错解决

在最新版的 mongoose 操作 MongoDB 数据库的时候&#xff0c;当我们插入一条数据时候&#xff0c;会报错 &#xff1a;Model.create() no longer accepts a callback&#xff0c;看了很多文章都说是&#xff0c;版本太高&#xff0c;都妥协选择了降低回旧版本&#xff0c;但我就…