latex宏包pythontex使用简明手册

news2024/9/23 13:26:58

文章目录

  • 1.背景
  • 2. 基本示例
    • 2.1 hello world
      • 2.1.1 代码与输出结果
      • 2.1.2 说明
      • 2.1.3 如何编译使用了pythontex宏包的Latex文档
      • 2.1.4 如何既输出python代码又输出代码执行结果
    • 2.2 在Latex中嵌入python变量的值
      • 2.2.1 示例代码与文档输出
      • 2.2.2 说明
    • 2.3 在latex文档中输出控制台会话
      • 2.3.1 代码示例与输出结果
      • 2.3.2 说明
  • 3. 更多高级示例

1.背景

latex可以做许多事,因为latex语言具有一定的程序描述能力。但是,在一些情况下,所需要的编程工作,往往令人痛苦。

如果能够在latex文档中使用流行的编程语言进行文档自动化,那该多好?latex在2020年前后,就已经具备这种能力了,最新版的texlive已经完整地提供了这一功能,它以pythontex宏包的形式体现出来。要使用它,您的电脑应该安装python2,最好安装python3,其路径在系统环境变量PATH中。

简而言之:pythontex宏包使得我们可以在latex文档中使用python语言编写程序代码,输出python代码自身、代码执行结果或两者的混合到最终生成的PDF文档中。这种特性使得latex文档成为一种可再生的文档(reproducible document)。也使得在web应用中自动生成pdf文档多了一个可选的技术方案。

2. 基本示例

2.1 hello world

2.1.1 代码与输出结果

\documentclass{article}
\usepackage{pythontex}
\begin{document}
\begin{pycode}
print(r'\emph{Hello} world!')
\end{pycode}
\end{document}

上述latex文件正确编译后,pdf文档将出现如下内容:
在这里插入图片描述

2.1.2 说明

这个示例展示了pythontex的基本用法:
(1)在latex文档导言区中引入pythontex宏包
\usepackage{pythontex}
(2)使用pycode环境,可以把一段python代码的执行结果输出
到文档。
特别注意:不要用tab制表符进行缩进,一律使用空格缩进,否则就会造成语法错误。
其中,print函数是用来向文档中输出结果的。

2.1.3 如何编译使用了pythontex宏包的Latex文档

三步曲:

$ xelatex xxx.tex # 编译,将python代码分离出来
$ pythontex xxx.tex # 编译,执行python代码,把结果保存
$ xelatex xxx.tex # 把保存的结果编译到最终的输出文档

2.1.4 如何既输出python代码又输出代码执行结果

使用pyblock环境和printpythontex命令,代码和PDF内容如下:
在这里插入图片描述在这里插入图片描述

2.2 在Latex中嵌入python变量的值

2.2.1 示例代码与文档输出

在这里插入图片描述在这里插入图片描述

2.2.2 说明

使用pycode环境和py命令,可以避免复制粘贴错误。
使用py命令,可以执行一些简单的运算,把运算结果输出到文档中。
例如,可以通过命令\py{2**12}在文档中产生 2 12 2^{12} 212的运算结果。
相应于环境“pycode”、“pyblock”,pythontex包还提供了具有相同
功能的命令,分别为pyc,pyb,都可以带可选参数。具体请参考pythontex帮助文档。
\py{x}还可以写成\py#x#形式。

2.3 在latex文档中输出控制台会话

2.3.1 代码示例与输出结果

在这里插入图片描述在这里插入图片描述

2.3.2 说明

pyconsole环境相当于是把python在命令行下的输出作为文稿的输出。
如果希望把该环境中的变量的值嵌入到文档,怎么办?
使用命令:\pycon
具体请参考文档:pythontex.pdf

3. 更多高级示例

参考:
在这里插入图片描述

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

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

相关文章

2.29号的复盘开始商城项目的规格如何设施的方式

第五次设计方式 我本来想的是,按照对于的组方式解拆分,通过分组处理的内存不同查询对应的手机上 出现问就是这里 对于的组相应规格相应里面有对于的价格,价格也就相同,无法进行区分 查询出来的对应的结果 还是没有办法具体拆分…

现货大宗商品发售平台搭建须知

在搭建现货大宗商品发售平台时,需要考虑以下关键因素: 目标市场分析:首先要明确你的平台将服务于哪些大宗商品市场,如农产品、金属、能源等。了解这些市场的特点、参与者、交易规则等,有助于你设计出更符合市场需求的…

解析/区分MOS管的三个引脚G、S、D(NMOS管和PMOS管)

MOS管的三个引脚分别是Gate(栅极)、Source(源极)和Drain(漏极)。以下是详细介绍: Gate(栅极)。这是控制MOS管开关的关键引脚,用于控制电流的流通。Source&…

pikachu验证XXE漏洞

先随便输入一个内容查看 接下来用bp抓包看下参数 有个xml参数&#xff0c;而且Content-Type: application/x-www-form-urlencoded&#xff0c;我们传入url编码后的xml内容试一下 <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE foo [<!EN…

社区店选址人流量标准:如何确保充足的顾客流量

在选择社区店的位置时&#xff0c;确保充足的顾客流量是至关重要的。 作为一名开鲜奶吧5年的创业者&#xff0c;我将分享一些关于社区店选址人流量标准的关键要点&#xff0c;帮助你找到最适合的店铺位置。 1、研究人口统计学数据 了解潜在顾客的人口特征是选址的基础。通过研…

Unity3D学习之Lua热更新解决方案(二)XLua

文章目录 1 XLua概述2 xLua导入和AB包相关准备3 C#调用Lua3.1 Lua解析器3.2 文件加载重定向3.3 Lua解析器管理器3.3.1 重定向AB包内的Lua3.3.2 获得_G大表 3.4 全局变量的获取3.5 全局函数的获取3.5.1 无参无返回3.5.2 有参有返回3.5.3 多返回值3.5.4 变长参数 3.6 List和Dicti…

C 嵌入式系统设计模式 18:临界区模式

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之四…

【AIGC】OpenAI推出王炸级模型sora,颠覆AI视频行业(2024)

对于OpenAI推出的Sora模型&#xff0c;我们可以进一步探讨其可能的技术细节、潜在应用以及对AI视频行业的影响。 点击以下任一云产品链接&#xff0c;跳转后登录&#xff0c;自动享有所有云产品优惠权益&#xff1a; 经过笔者亲测&#xff0c;强烈推荐腾讯云轻量应用服务器作…

前端打包部署(黑马学习笔记)

我们的前端工程开发好了&#xff0c;但是我们需要发布&#xff0c;那么如何发布呢&#xff1f;主要分为2步&#xff1a; 1.前端工程打包 2.通过nginx服务器发布前端工程 前端工程打包 接下来我们先来对前端工程进行打包 我们直接通过VS Code的NPM脚本中提供的build按钮来完…

Http基础之http协议、无状态协议、状态码、http报文、跨域-cors

Http基础 HTTP基础HTTP协议请求方法持久连接管线化 无状态协议使用Cookie状态管理 状态码1XX2XX OK200 OK204 NO Content206 Content-Range 3XX 重定向301302304307 4XX400401403404 5XX500503 HTTP报文请求报文响应报文通用首部字段Cache-ControlConnectionDate请求首部字段Ac…

Python编程小案例—利用flask查询本机IP归属并输出网页图片

Python编程小案例—利用flask查询本机IP归属并输出网页图片 环境&#xff1a;Pycharm Mac OS 源码如下&#xff1a; from flask import Flask, render_template, requestapp Flask(__name__)app.route(/) def index():return render_template(IP查询.html)if __name__ __…

还在用Jenkins?快来试试这款简而轻的自动部署软件!

最近发现了一个比 Jenkins 使用更简单的项目构建和部署工具&#xff0c;完全可以满足个人以及一些小企业的需求&#xff0c;分享一下。 Jpom 是一款 Java 开发的简单轻量的低侵入式在线构建、自动部署、日常运维、项目监控软件。 日常开发中&#xff0c;Jpom 可以解决下面这些…

STM32 DMA入门指导

什么是DMA DMA&#xff0c;全称直接存储器访问&#xff08;Direct Memory Access&#xff09;&#xff0c;是一种允许硬件子系统直接读写系统内存的技术&#xff0c;无需中央处理单元&#xff08;CPU&#xff09;的介入。下面是DMA的工作原理概述&#xff1a; 数据传输触发&am…

venv、pip、conda、anaconda、miniconda的区别和优缺点,和彻底清除python多余的环境

virtualenv(venv) 这是一个虚拟环境管理器&#xff0c;它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境&#xff0c;这最大的好处是我可以不污染开发环境。​ pip pip 是 Python 最常用的包管理器&#xff0c;它能自动处理依赖 。 conda 如果说venv是虚拟…

5、DVWA代码审计(2)

一、csrf 1、csrf(low) 限制 复现 GET /vulnerabilities/csrf/?password_new123456&password_conf123456&ChangeChange HTTP/1.1 Host: ddd.com Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,…

探索数据宇宙:深入解析大数据分析与管理技术

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

迪杰斯特拉算法的具体应用

fill与memset的区别介绍 例一 #include <iostream> #include <algorithm> using namespace std; const int maxn500; const int INF1000000000; bool isin[maxn]{false}; int G[maxn][maxn]; int path[maxn],rescue[maxn],num[maxn]; int weight[maxn]; int cityn…

Linux内存地址空间

目录 一、虚拟地址空间 1.虚拟地址空间的定义 2.虚拟地址空间的布局 二、内存壁垒 1.内存壁垒的定义​编辑 2.段错误 三、内存映射的建立与解除 &#xff08;1&#xff09;mmap &#xff08;2&#xff09;munmap &#xff08;3&#xff09;堆内存的分配和释放 1.sbrk …

一文掌握大模型提示词技巧:从战略到战术

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

【c++】构造函数(下)——初始化列表

Hello,everybody!构造函数的内容比较多&#xff0c;语法还有些复杂。我分成了两篇文章进行讲解&#xff0c;大家在看过构造函数(上)后再来看这篇文章更容易理解哟&#xff01; 1.初始化列表的格式 类似这种格式&#xff0c;在初始化列表中第一行用冒号开头&#xff0c;剩下的用…