LaTex | 导出 PNG 图片

2023-05-16

问题描述

我们需要将 LaTeX 文档转换为 PNG 图片(我们需要使用 LaTeX 的 bytefield 包绘制“字节序列图”,以在 Zim 中显示)

该笔记将记录:如何使用 .tex 文件,生成 PNG 图片。

方案一、latex => dvi => png


# 导出图片
latex /path/to/file.tex
dvipng file.dvi

# 显示图片
display file1.png
  

关于 graphicx\rotatebox 问题

DVI to PDF Converter - TeX - LaTeX Stack Exchange
Which DVI viewer on linux? - TeX - LaTeX Stack Exchange

该方法无法很好的处理 graphicx\rotatebox 命令,如图 D/B 与 AVL 偏移(本应该旋转 90 度,以垂直显示):

latex.png

经过测试,应该是 dvipng 命令的问题:
1)进行 latex => dvi 转换,然后使用 xdvi 打开 DVI 文件,将如上图显示

(1)可能 xdvi 程序存在问题;(2)可能生成的 DVI 文件存在问题;
2)进行 laxtex => dvi => pdf 转换(dvipdfm example.dvi),在 PDF 中,显示正常
(1)因为能够”还原“,因此 DVI 文件没有问题;(2)可能 xdvi 程序有问题,并且 dvipng 也可能有问题;

 

这也引出我们的「方案二、使用 standalone 处理」(我们的需求本就是:只需要生成的图片,而不是整个文档)

方案二、使用 standalone 处理

使用 stadalone 包,可以直接将 LaTeX 文档导出 PNG 图片(在内部,依旧使用 Shell 命令进行转换)。

对于如下代码:


% example.tex
\documentclass[convert={density=120,outext=.png}]{standalone}
\usepackage{bytefield}
\usepackage{graphicx}

\begin{document}
    \begin{bytefield}[bitwidth=1.5em, bitheight=\widthof{~AVL~}, endianness=big]{32}
        \bitheader{0-24,31} \\
        & \bitbox{8}{Base (31-24)} & \bitbox{1}{G} & \bitbox{1}{\rotatebox{90}{D/B}}
        & \bitbox{1}{L} & \bitbox{1}{\rotatebox{90}{AVL}} & \bitbox{4}{Limit (19-16)}
        & \bitbox{1}{P} & \bitbox{2}{DPL} & \bitbox{1}{S} & \bitbox{4}{TYPE}
        & \bitbox{8}{Base (23-16)}
    \end{bytefield}
\end{document}
  

执行 latex -shell-escape -halt-on-error example.tex 命令,将直接输出 example.png 图片:
example.png

下面是更复杂的例子(参考 CTAN: Package standalone 文档),演示如何修改用于转换图片的命令:


\documentclass[
    convert={
        convertexe={convert},
        command=\unexpanded{{
            \convertexe \space
            -density \density \space
            \infile \space
            -resize \size \space
            \outfile}},
        density=800,size=800x600,outext=.png
    },
    border={.5 .5 .5 2mm},
]{standalone}

\usepackage{bytefield}
\usepackage{graphicx}

\begin{document}
    \begin{bytefield}[bitwidth=1.5em, bitheight=\widthof{~AVL~}, endianness=big]{32}
        \bitheader{0-24,31} \\
        & \bitbox{8}{Base (31-24)} & \bitbox{1}{G} & \bitbox{1}{\rotatebox{90}{D/B}}
        & \bitbox{1}{L} & \bitbox{1}{\rotatebox{90}{AVL}} & \bitbox{4}{Limit (19-16)}
        & \bitbox{1}{P} & \bitbox{2}{DPL} & \bitbox{1}{S} & \bitbox{4}{TYPE}
        & \bitbox{8}{Base (23-16)}
    \end{bytefield}
\end{document}
  

这将生成更加清晰的图片(依旧模糊,需要更好的控制 convert 命令参数):
example-00.png

参考文献

pdf - Including graphics for both DVI and PNG - TeX - LaTeX Stack Exchange
graphics - Compile a LaTeX document into a PNG image that's as short as possible - TeX - LaTeX Stack Exchange

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LaTex | 导出 PNG 图片 的相关文章

随机推荐

  • Linux下7z压缩解压软件区别

    本文首发于个人博客 xff0c 文章链接为 xff1a https blog d77 xyz archives 4744f068 html 最近需要在 Ubuntu下用 7z 来压缩点东西 xff0c 发现 Ubuntu 默认没有安装 7z
  • FMC接口说明

    FMC介绍 FMC是英文FPGA Mezzanine Card FPGA 夹层卡 的缩写 xff0c 用于FPGA IO和通讯部件之间的连接 实现FPGA具有重配置IO能力的引脚与其他的FMC子卡IO连接 其信号完整性可以保证高达几G bp
  • win10开机为“其他用户”无法登录,及系统登录账户没有管理员权限无法安装软件解决方案

    win10开机为 其他用户 无法登录 xff0c 及系统登录账户没有管理员权限无法安装软件解决方案 开机为 其他用户 无法进入系统无须重装系统 解决方案注意不要漏了管理员权限 xff0c 笔者在给系统加上本地账户之后忘记加管理员权限了 xf
  • java日志之log4j、log4j2、slf4j

    本文从整体视角分析 xff0c 重在帮助初学者了解log4j log4j2之间的关系 以及与slf4j整合时使用的中间jar包 xff1a slf4j log4j12 log4j slf4j impl 1 Log4j log4j核心包只有一
  • Spring框架中的IOC容器及bean管理

    这篇文章讲述的是Spring框架中的IOC容器及bean管理 xff0c 如有错误或者不当之处 xff0c 还望各位大神批评指正 什么是IOC容器 xff1f IOC即反转控制 xff0c 创建对象的权利交给容器来完成 xff0c 而程序要
  • 磁力机航向角计算与补偿

    地理坐标系下该点的磁场强度为 xff08 M 0 xff0c D xff09 xff0c 磁力计测得的三轴磁场强度为 xff08 mx my mz xff09 当我们认为飞机是完全水平放在地上的时候 xff0c 即Z轴和Zb轴是平行的时候
  • Decorators 装饰器

    预备知识 xff1a args的使用方法 xff0c args 用来将参数打包成tuple给函数体调用 例子一 xff1a span class token operator gt gt span span class token oper
  • 一个JAVA程序员成长之路分享

    我搞JAVA也有些日子了 因为我比较贪玩 上进心不那么强 总是逼不得已为了高薪跳槽才去学习 所以也没混成什么大牛 但好在现在也已经成家立业 小日子过的还算滋润 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了 我特别感谢当
  • 「Jenkins Pipeline」- 执行 Shell 命令 @20210203

    问题描述 Jenkins Pipeline xff0c 更像 胶水 xff0c 将很多脚本与工具粘合在一起 xff0c 实现自动化任务 xff0c 而它本身并没有提供特定功能 执行 Shell 命令或者脚本是个非常常见的任务 该笔记将记录在
  • 「snap」- ERR - Waiting for automatic snapd restart @20210208

    问题描述 使用 snap 安装 chromium 浏览器时出现如下错误 xff0c 并一直卡住 xff1a 2020 08 21T16 56 10Z INFO Waiting for automatic snapd restart 问题原因
  • 锁屏时间格式不随多用户的时间格式变化而变化?

    背景 xff1a 时间格式有12 24小时制 xff0c 系统设置时间格式之后 xff0c 状态栏和锁屏的时间显示也会相应的发生变化 xff0c 但是现在发现一个问题 xff1a 当我切换到多用户设置时间格式的时候发现 xff0c 状态栏的
  • R语言利用igraph和networkD3包快速入门做出炫酷的社交网络图等几类图。

    原来CDSN编辑器老出问题 xff0c 图片各种显示不好 xff08 老文章依然是原来编辑器 xff09 xff0c 又将本文整理了一遍地址 1 igraph包绘制社交关系图 xff08 也有叫知识图谱的 xff09 绘图的快速入门技巧是三
  • 「Shell」- 判断字符串结尾 @20210209

    下面围绕 判断字符串是否以 txt结尾 展开 转变一下也同样适用于 判断字符串是否以 txt开头 通用的方法 方法一 使用grep命令 bin sh str 61 34 path to foo txt 34 使用if语句 if echo 3
  • 「Firefox」- 在地址栏中,显示二维码 @20210211

    问题描述 在以前某些版本的 Firefox 中 xff0c 地址栏会显示当前地址的二维码 xff0c 再后便消失 xff08 可能功能被取消 xff09 现在 xff08 02 10 2021 xff09 xff0c 我们需要在地址栏中显示
  • 「GNOME 3」- 修改 Topbar 字体(顶部栏字体)、调整默认主题 @20210211

    问题描述 在 GNOME 3 中 xff0c 在进行字体设置时 xff0c 我们发现 Topbar 的字体没有修改 xff0c 因此窗口字体与 Topbar 字体不同 经过搜索 xff0c 我们知道 xff0c Topbar 的字体是主题负
  • 「KVM」- 常见错误及注意事项 @20210223

    启动错误 1 vmport is not available with this QEMU binary 问题描述 xff1a 启动Guest时产生如下错误 xff1a error unsupported configuration vmp
  • 「Jumpserver」- 通过 SSH 连接 Jumpserver 资产 @20210302

    问题描述 在通常情况下 xff0c 我们会通过 Web 界面访问资产 执行命令 xff0c 以进行服务器管理 但是 xff0c 有时候我们也需要通过 SSH 客户端连接服务器 Jumpserver 提供对此的支持 该笔记将记录 xff1a
  • 「Selenium」- 在页面中,点击按钮(或元素) @20210311

    问题描述 该笔记将记录 xff1a 在 Selenium 中 xff0c 如何使用代码点击按钮 xff0c 以及常见问题处理 解决方案 使用 click 点击 通常点击元素使用 click 方法即可 xff1a 选择元素并进行点击 webD
  • 「Linux」- 安装网易云音乐(Neteast Cloud Music) @20210330

    问题描述 我们想在 Ubuntu 20 04 LTS 中安装网易云音乐 xff08 Neteast Cloud Music xff09 xff0c 自然是用来播放音乐 该笔记将记录 xff1a 在 Debian 及衍生版 xff08 比如
  • LaTex | 导出 PNG 图片

    问题描述 我们需要将 LaTeX 文档转换为 PNG 图片 xff08 我们需要使用 LaTeX 的 bytefield 包绘制 字节序列图 xff0c 以在 Zim 中显示 xff09 该笔记将记录 xff1a 如何使用 tex 文件 x