【python】jupyter notebook导出pdf和pdf不显示中文问题

文章目录

  • 写在前面
  • 1. 使用jupyter notebook导出pdf
    • 1.1 安装`Pandoc`
    • 1.2 安装`MiKTex`
    • 1.3 示例导出pdf
  • 2. 中文显示问题
    • 2.1 显示中文问题示例
    • 2.2 解决办法1:修改tex
    • 2.3 解决办法2:修改内置文件

写在前面

使用jupyter notebook导出pdf时,出现了一些问题:

1)会报错,缺少安装包;

2)没有报错并且生成了pdf,但是只显示英文,不显示中文。

下面是给出了一些网搜后适用自己的解决办法。

1. 使用jupyter notebook导出pdf

导出pdf步骤:File-> Download as -> PDF via LaTex(.pdf)

在这里插入图片描述

出现报错没有Pandoc

jupyter notebook nbconvert failed: Pandoc wasn't found. Please check that pandoc is installed

报错说明:转换失败,原因是没有找到Pandoc

1.1 安装Pandoc

Pandoc官网下载地址: https://pandoc.org/installing.html

下载安装包github地址:https://github.com/jgm/pandoc/releases/tag/3.1.6.2
在这里插入图片描述

gitcode的镜像也有:https://gitcode.net/mirrors/jgm/pandoc/-/releases/3.1.6.1?spm=1033.2243.3001.5876
在这里插入图片描述
下载pandoc后根据提示正常安装即可。

1.2 安装MiKTex

如果导出pdf通过LaTex,还需要下载MiKTex: https://miktex.org/download
在这里插入图片描述
下载MiKtex后根据提示正常安装即可。

两个包(Pandoc,MiKTex)都安装完成后,退出并重启jupyter notebook后才生效。并且,在重启后在导出pdf过程中,会自动安装一些依赖包,根据提示点击安装即可。

注:期间想通过HTML导出pdf,还安装过pip install nbconvert(不过,PDF via. HTML还是报错,先忽略)。

1.3 示例导出pdf

Jupyter编辑示例:
在这里插入图片描述

导出的pdf示例:
在这里插入图片描述

2. 中文显示问题

如果jupyter notebook编辑的内容都是英文,安装上面2个包并安装依赖包后直接导出是没有问题的。如果内容包含中文,则只显示英文忽略中文。

2.1 显示中文问题示例

Jupyter编辑内容包含中文示例:
在这里插入图片描述

包含中文导出pdf示例:只输出英文内容,忽略中文。
在这里插入图片描述

2.2 解决办法1:修改tex

需要以下三步:

  • (1)将.ipynb文件编译为.tex格式:

    jupyter nbconvert --to latex ${ipynb_file}# 示例:
    jupyter nbconvert --to latex jupy2pdf-中文.ipynb
    

    执行完成后,会生成文件jupy2pdf-中文.tex

  • (2) 修改tex文件:

    在tex文件的中加入加载包命令:

    \usepackage{fontspec, xunicode, xltxtra}
    \setmainfont{Microsoft YaHei}
    \usepackage{ctex}
    

    在这里插入图片描述

  • (3) 使用 MiKTeX 生成pdf:

    执行如下命令可生成pdf:

    xelatex ${tex_file}
    # 示例:
    xelatex jupy2pdf-中文.tex 
    

    其中,命令xelatex就是前面下载的MiKTex软件,对应下载路径:

    /YourDir/MiKTeX/miktex/bin/x64/xelatex
    

    执行完成后,会生成相应的中间文件:

    jupy2pdf-中文.ipynb  # 原文件
    jupy2pdf-中文.tex  # tex编辑文件
    jupy2pdf-中文.aux
    jupy2pdf-中文.log
    jupy2pdf-中文.out
    jupy2pdf-中文.pdf  # 目标pdf文件
    

    示例生成的目标pdf文件:jupy2pdf-中文.pdf
    在这里插入图片描述

2.3 解决办法2:修改内置文件

"解决方法1:修改tex"虽然解决了中文显示问题,但是每次需要手动添加相应的中文包才能解决。

(1)先是参考了一篇博客,需要在Python安装包下:

Python\Lib\site-packages\nbconvert\templates\latex 

找到 base.tplx 文件并进行修改。

笔者有nbcovert安装目录,但是没有找到 latex目录(更没有 base.tplx 文件),可能这种方法可以从根本上解决并直接导出pdf(而不需要每次手动在tex文件中手动添加)。

(2)其他地方找到了解决办法

参考: https://www.zhihu.com/question/427092422

与上面修改文件的路不同,修改的是jupyter目录下的文件:

Python\share\jupyter\nbconvert\templates\latex\index.tex.j2

就是把 block doclass下的 article 改成 ctexart
在这里插入图片描述

示例:从jupyter导出pdf显示中文 (章节名称居中了?)

在这里插入图片描述

(3)章节名称居中问题调整

类似地,修改内置文件:

Python\share\jupyter\nbconvert\templates\latex\index.tex.j2

index.tex.j2文件中增加如下命令:参考博客

\CTEXsetup[format={\Large\bfseries}]{section}

修改前后:
在这里插入图片描述

调整后pdf导出示例:
在这里插入图片描述


<完>

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

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

相关文章

31、springboot 配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口

配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口 ★ 设置HTTP服务端口&#xff1a; - server.port或者SERVER_PORT环境变量——总结来说&#xff0c;其实就是要配置server.port外部配置属性。▲ 同样遵守如下优先级&#xff1a; 这些都是外部配置源&#x…

Win 11 电脑的 Win + E 快捷键失效

报的错误信息如下&#xff1a; 该文件没有与之关联的应用来执行该操作。请安装应用&#xff0c;若已经安装应用&#xff0c;请在”默认应用设置"页面中创建关联。 报错原因&#xff1a;系统注册表被改写了导致的出错 解决办法&#xff1a; 1、首先&#xff0c;按键盘上…

python编程环境使用技巧2-python环境迁移

Python环境迁移步骤 将Python环境从一个计算机迁移到另一个计算机可以按照以下步骤进行&#xff1a; 1-备份环境&#xff1a; 在源计算机上&#xff0c;使用pip工具备份当前Python环境的包列表到一个文本文件。在命令行终端中执行以下命令&#xff1a; pip freeze > requi…

【韩顺平 零基础30天学会Java】数组、排序和查找(2days)

数组、排序、查找和多维数组 数组可以存放多个同一类型的数据。数组也是一种数据类 型&#xff0c;是引用数据类型。 定义一个数组 double[] hens {3,5,1,3.4,2,50} 遍历数组得到数组所有元素的和 hens[下标]&#xff0c;下标是从0开始编号的。 可以通过数组名.lenght得到数组…

【数据库】使用ShardingSphere+Mybatis-Plus实现读写分离

书接上回&#xff1a;数据库调优方案中数据库主从复制&#xff0c;如何实现读写分离 ShardingSphere 实现读写分离的方式是通过配置数据源的方式&#xff0c;使得应用程序可以在执行读操作和写操作时分别访问不同的数据库实例。这样可以将读取操作分发到多个从库&#xff08;从…

详细手机代理IP配置

嗨&#xff0c;亲爱的朋友们&#xff01;作为一家代理产品供应商&#xff0c;我知道有很多小伙伴在使用手机进行网络爬虫和数据采集时&#xff0c;常常会遇到一些IP限制的问题。别担心&#xff01;今天我要给大家分享一下手机IP代理的设置方法&#xff0c;让你们轻松应对这些限…

vue2 路由入门

一、单页应用程序介绍 1.概念 单页应用程序&#xff1a;SPA【Single Page Application】是指所有的功能都在一个html页面上实现 2.具体示例 单页应用网站&#xff1a; 网易云音乐 https://music.163.com/ 多页应用网站&#xff1a;京东 https://jd.com/ 3.单页应用 VS 多页…

PostgreSQL命令行工具psql常用命令

1. 概述 通常情况下操作数据库使用图形化客户端工具&#xff0c;在实际工作中&#xff0c;生产环境是不允许直接连接数据库主机&#xff0c;只能在跳板机上登录到Linux服务器才能连接数据库服务器&#xff0c;此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互…

一百六十四、Kettle——Linux上脚本运行kettle的转换任务(Linux本地、Linux资源库)

一、目的 在kettle的转换任务以及共享资源库、Carte服务创建好后&#xff0c;需要对kettle的转换任务用海豚调度器进行调度&#xff0c;调度的前提的写好脚本。所以&#xff0c;这篇博客首先介绍在Linux上脚本运行kettle的转换任务 二、前提准备 &#xff08;一&#xff09;…

【PHP】echo 输出数组报Array to string conversion解决办法

代码&#xff1a; <?PHP echo "Hello World!";$demoName array("kexuexiong","xiong");echo "<pre>";var_dump($demoName);echo $demoName; print_r($demoName);echo "</pre>"; ?>输出结果&#xff1…

土豆叶病害识别(图像连续识别和视频识别)

效果视频&#xff1a;土豆叶病害识别&#xff08;Python代码&#xff0c;pyTorch框架&#xff0c;视频识别&#xff09;_哔哩哔哩_bilibili 代码运行要求&#xff1a;Torch库>1.13.1&#xff0c;其它库无版本要求 1..土豆叶数据集主要包好三种类别&#xff08;Early_Blight…

自然语言处理(二):近似训练

近似训练 近似训练&#xff08;Approximate Training&#xff09;是指在机器学习中使用近似的方法来训练模型&#xff0c;以降低计算复杂度或提高训练效率。这种方法通常用于处理大规模数据集或复杂模型&#xff0c;其中精确的训练算法可能过于耗时或计算资源不足。 近似训练…

机器学习理论笔记(二):数据集划分以及模型选择

文章目录 1 前言2 经验误差与过拟合3 训练集与测试集的划分方法3.1 留出法&#xff08;Hold-out&#xff09;3.2 交叉验证法&#xff08;Cross Validation&#xff09;3.3 自助法&#xff08;Bootstrap&#xff09; 4 调参与最终模型5 结语 1 前言 欢迎来到蓝色是天的机器学习…

【springboot】Spring Cache缓存:

文章目录 一、导入Maven依赖&#xff1a;二、实现思路&#xff1a;三、代码开发&#xff1a; 一、导入Maven依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId><…

lnmp架构-mysql

1.MySQL数据库编译 make完之后是这样的 mysql 初始化 所有这种默认不在系统环境中的路径里 就这样加 这样就可以直接调用 不用输入路径调用 2.初始化 重置密码 3.mysql主从复制 配置master 配置slave 当master 端中还没有插入数据时 在server2 上配slave 此时master 还没进…

2.文章复现《热电联产系统在区域综合能源系统中的定容选址研究》(附matlab程序)

0.代码链接 1.简述 光热发电是大规模利用太阳能的新兴方式&#xff0c;其储热系 统能够调节光热电站的出力特性&#xff0c;进而缓解光热电站并网带来的火电机组调峰问题。合理配置光热电站储热容量&#xff0c;能够 有效降低火电机组调峰成本。该文提出一种光热电站储热容 量配…

HLS实现CORDIC算法计算正余弦并上板验证

硬件&#xff1a;ZYNQ7010 软件&#xff1a;MATLAB 2019b、Vivado 2017.4、HLS 2017.4、System Generator 2017.4 1、CORDIC算法计算正余弦 CORDIC算法详细分析网上有很多资料&#xff0c;它的原理是用一系列旋转去逼近目标角度&#xff0c;这一系列旋转的角度为 θ a r c t…

Unity中实现获取InputField选中的文字

一&#xff1a;前言 获取到选中的文字&#xff1a;哈哈 二&#xff1a;实现 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition&#xff0c;开始选择时的光标下标和当前光标下标 using UnityEngine; using UnityEngine.EventSystems; using UnityEngin…

蓝蓝设计ui设计公司作品案例-中节能现金流抗压测试软件交互及界面设计

中国节能是以节能环保为主业的中央企业。中国节能以生态文明建设为己任&#xff0c;长期致力于让天更蓝、山更绿、水更清&#xff0c;让生活更美好。经过多年发展&#xff0c;中国节能已构建起以节能、环保、清洁能源、健康和节能环保综合服务为主业的41产业格局&#xff0c;成…

机器视觉-外观缺陷检测已成笑话

外观检测盛行几年,只要做机器视觉工程师,每个人都好奇都想做做。不做不知道,一做吓一跳。我将从各大家一线公司掌握的信息来具体分析外观缺陷检测埋了多少坑: 明显的现象,公司摆了很多设备,都在公司,都没有出售。我从业15年,从来没有经历过有这么多设备待在公司。从来…