jupyter notebook转换成LaTeX代码后,生成的pdf中不含In或者Out标识

2023-11-28 08:59

本文主要是介绍jupyter notebook转换成LaTeX代码后,生成的pdf中不含In或者Out标识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近,在用Jupyter notebook写一些带解释说明性的Python语言教程,同时需要生成pdf格式文件。我利用pandoc将.ipynb转换成了 LaTeX \LaTeX LATEX代码,利用这些代码,我个性化自己需要的书籍模板(documentclass 为book)。之所以这样做,是因为由Jupyter notebook直接转成的pdf,好多地方不符合我的要求,包括标题、日期等,况且是article模板。转成 LaTeX \LaTeX LATEX代码后,我可以按我自己的风格写,高度的灵活性。我也挺佩服Jupyter notebook的设计者们,能给出那么多灵活的接口,包括 LaTeX \LaTeX LATEX。解决了好多问题后,但是还是遇到了一个问题。在此值得记录如下。

问题描述

在Jupyter notebook中,Python代码和其代码的输出有明显的区分,分别带有In、Out标识,如下图:
Jupyter notebook中代码标识
但是,利用由同一.ipynb文件转成的 LaTeX \LaTeX LATEX代码,进而利用TexLive生成的pdf文件内容中,却不含In、Out标识了,如下图:
由LaTeX生成的pdf中不含In、Out标识
这是一个我想解决的问题。搜了搜国内外的相关技术论坛,没有结果,找不到与我一样遇到这个问题的人。没办法,只能自己动脑筋,自己解决问题了。

解决思路和过程

这只能从 LaTeX \LaTeX LATEX的代码上解决问题。我使用了 LaTeX \LaTeX LATEX好多年,无论是基础的利用已有的模板撰写上,还是高级的设计一个模板上,都涉猎和深入过。我有信心解决该问题。

首先需要找到产生不带In、Out标识的 LaTeX \LaTeX LATEX代码

这很好定位,相信用过 LaTeX \LaTeX LATEX的人,都能做到,与产生输出[3]相对应的代码如下:

\prompt{Out}{outcolor}{3}{\boxspacing}

很显然,上面是一条普通的 LaTeX \LaTeX LATEX代码,其中第1个参数明显带有Out字样。那为什么没显示出来呢?只能从命令\prompt的定义找起。该命令的定义,也是由Jupyter notebook转换而来。我们也能很容易找到定义该命令的代码,如下:

\newcommand{\prompt}[4]{{\ttfamily\llap{{\color{#2}[#3]:\hspace{3pt}#4}}\vspace{-\baselineskip}}}

请大家花些功夫了解\newcommand的用法,它是一个定义命令的命令。上述代码定义的命令\prompt有四个参数,但在命令的定义体中却只使用了后面三个参数,第一个参数没有使用,而最上面代码中的Out正好处在第一个参数的位置。找到病因了。

解决方案

由上面分析可知,既然定义\prompt时,第1参数没用上,且第1个参数的内容正好是我需要的In、Out标识,那么我在定义\prompt时,将第1个参数使用上不就可以了吗。
更改后的定义\prompt的代码如下:

\newcommand{\prompt}[4]{{\ttfamily\llap{{\color{#2}#1 [#3]:\hspace{3pt}#4}}\vspace{-\baselineskip}}}

重新编译 LaTeX \LaTeX LATEX,生成的结果如下图:
生成了带有标识的结果
可以看出,我已成功解决了该问题。

感悟

之前,我自己也有疑问,学那么多深入的 LaTeX \LaTeX LATEX到底有什么用。今天遇到的问题,让我明白,之前学的知识,还真能用上。知识先尽可能多地学,因为指不定哪一天就用上了,用上后,能让自己有满满的成就感。

尤其是软件工程类的知识,还是要尽可能多地学。许多学生问,我在教科书上学的东西,为什么在工作岗位的项目上没用上?我的回答是,1)你自己水平太低,实际用上了却不知;2)你的项目太水。

这篇关于jupyter notebook转换成LaTeX代码后,生成的pdf中不含In或者Out标识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429422

相关文章

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061