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

相关文章

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

poj 1287 Networking(prim or kruscal最小生成树)

题意给你点与点间距离,求最小生成树。 注意点是,两点之间可能有不同的路,输入的时候选择最小的,和之前有道最短路WA的题目类似。 prim代码: #include<stdio.h>const int MaxN = 51;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int P;int prim(){bool vis[MaxN];

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

hdu 1102 uva 10397(最小生成树prim)

hdu 1102: 题意: 给一个邻接矩阵,给一些村庄间已经修的路,问最小生成树。 解析: 把已经修的路的权值改为0,套个prim()。 注意prim 最外层循坏为n-1。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstri