在Latex中优雅的插入svg图片(Ubuntu22.04)

文章目录

  • 一、前言
  • 二、准备工作
  • 三、脚本编程
  • 四、结论


一、前言

LaTeX \LaTeX LATEX 中,插入图片常用的为 figure 环境加 \includegraphics 命令:

\begin{figure}[!htbp]\centering\includegraphics[width=\textwidth]{图片名.jpg/jpeg/png/pdf}\caption{标题}\label{标签}
\end{figure}

然而如果我们的图片为 SVG 图,直接进行插入是会报错的:

在这里插入图片描述
主要报错信息如下:

! Unable to read an entire line---bufsize=200000. Please increase buf_size in texmf.cnf.

百度是能找到很多 svg 图转其他格式图片的方法的,用 Python 也能做,这里主要介绍结合 bash 脚本进行批量处理。


二、准备工作

首先使用 apt-get 安装 inkscape 工具:

sudo apt-get install inkscape -y

其主要思路就是使用 inkscape 工具将目录下的 svg 图片逐一转换为 pdf 文件,这样便能通过上述 \includegraphics 命令插入:

inkscape --export-filename=图片名.pdf 图片名.svg

三、脚本编程

对于一整个文件夹的 svg 图片,我们希望能通过脚本实现自动将其全部转换为 pdf 文件以方便我们插入,在 svg 图片目录下打开终端,新建文件 convert_svg_to_pdf.sh

vim convert_svg_to_pdf.sh

具体 bash 语句如下:

#!/bin/bash# 遍历当前目录下的所有.svg文件
for file in *.svg; do# 检查文件是否存在if [ -f "$file" ]; then# 移除文件扩展名,准备输出文件名base_name=$(basename "$file" .svg)# 使用Inkscape命令转换文件inkscape --export-filename="${base_name}.pdf" "$file"elseecho "$file does not exist."fi
done

按下 esc 键,输入 :wq,保存并退出,通过如下命令运行此脚本:

bash convert_svg_to_pdf.sh

可以看到目录下的 svg 图片都生成了对应的 pdf 文件,如此便可通过如下命令插入 LaTeX \LaTeX LATEX 中:

\begin{figure}[!htbp]\centering\includegraphics[width=\textwidth]{图片名.pdf}\caption{标题}\label{标签}
\end{figure}

四、结论

相比于将 svg 图片通过网页转为其他格式图片,此方法能批量处理文件夹下的大量 svg 图片,方便快捷,就是会生成新的 pdf 文件占用内存。


谢谢!

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

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

相关文章

【LeetCode热题100】 226. 翻转二叉树(二叉树)

一.题目要求 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 二.题目难度 简单 三.输入样例 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:…

文件处理(二)

CSV文件的读取和写入 CSV文件的操作 csv是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出。 与Excel文件不同,CSV文件中: 值没有类型,所有值都是字符串不能指定字体颜色等样式不能指定单元格的宽高&…

【自动驾驶可视化工具】

自动驾驶可视化工具 自动驾驶可视化工具1.百度Apollo的Dreamview:2.Cruise的Worldview:3.Uber的AVS:4.Fglovex Studio: 自动驾驶可视化工具 介绍一下当前主流的自动驾驶可视化工具。 1.百度Apollo的Dreamview: Dreamview是百度Apollo平台开发的一种可视化工具,用…

滑块验证码

1.这里针对滑块验证给了一个封装的组件verifition,使用直接可以调用 2.组件目录 3.每个文件的内容 3.1 Api文件中只有一个index.js文件,用来存放获取滑块和校验滑块结果的api import request from /router/axios//获取验证图片 export function reqGe…

centos7.9的GUI桌面样式不符合默认熟悉的操作习惯

一、问题描述: 原因:桌面样式选错了。 二、解决: 1.先登进去LogOut。 2.点击设置的工具图标中的GNOME Classic即可恢复成默认操作习惯的桌面样式。 3.恢复到默认熟悉的操作界面

(一)Neo4j下载安装以及初次使用

(一)下载 官网地址:Neo4j Graph Database & AnamConnect data as its stored with Neo4j. Perform powerful, complex queries at scale and speed with our graph data platform.https://neo4j.com/ (二)安装并配…

系统明天上线,PG表空间还不规划好疯狂给同事埋雷

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

天眼销批量查询功能上线

天眼销是一款提供企业线索的产品,致力于帮助客户获取最新的企业联系方式、工商信息等关键数据。 数据库收录全国 3.3亿及以上企业(含个体)线索,涵盖企业名称、企业状态、注册时间、注册资本、经营范围、法人信息、联系方式等维度,为用户提供…

【python开发】并发编程(上)

并发编程(上) 一、进程和线程(一)多线程(二)多进程(三)GIL锁 二、多线程开发(一)t.start()(二)t.join()(三)t.…

数据的响应式:实现动态数据驱动的技巧

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:StepperItem)

用作Stepper组件的页面子组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 接口 StepperItem() 属性 参数名参数类型参数描述prevLabelstring设置左侧文本按钮内…

upload文件上传漏洞复现

什么是文件上传漏洞: 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“…

LeetCode108题:将有序数组转换为二叉搜索树(python3)

一个容易想到的思路:使用 nums 中最靠近中心的位置作为整棵 BST 的根节点,确保左右子树节点数量平衡。随后递归构造 nums 中下标范围为 [0,mid−1]作为左子树,递归构造 nums 中下标范围为 [mid1,n−1]作为右子树。 # Definition for a binar…

理论学习:with torch.no_grad()

如果不加上“with torch.no_grad():”,模型参数会发生改变吗? 如果不使用with torch.no_grad():,在进行模型推理(即计算outputs_cls net(inputs[batch_size//2:])这一步)时,模型参数不会发生改变&#xf…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Web)中篇

onBeforeUnload onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResult }) > boolean) 刷新或关闭场景下,在即将离开当前页面时触发此回调。刷新或关闭当前页面应先通过点击等方式获取焦点,才会触发此回调。 参数…

开发验证一切正常,而测试人员在性能测试时偶发报错,如何解决?

在业务系统逻辑实现中,经常涉及异步执行、异步更新场景的开发和使用。但在性能测试中,经常会出现因为异步逻辑设计不合理引发的不可预知问题,比如在开发验证时一切正常,测试人员在性能测试时偶发报错。 本文从Spring事务、业务逻辑…

前端三件套 | 综合练习:模拟抽奖活动,实现一个简单的随机抽取并显示三名获胜者

随机运行结果如下&#xff1a; 参考代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

P2934 [USACO09JAN] Safe Travel G 题解

题意 给定一张 n n n 个点 m m m 条边的无向图&#xff0c;对于每个除 1 1 1 以外的点 u u u&#xff0c;求在不允许经过原来从 1 1 1 到 u u u 的最短路径的最后一条边时&#xff0c; 1 1 1 到 u u u 的最短路。 保证 1 1 1 到其他点的最短路唯一&#xff0c;无解输出…

git撤回代码提交commit或者修改commit提交注释

执行commit后&#xff0c;还没执行push时&#xff0c;想要撤销之前的提交commit 撤销提交 使用命令&#xff1a; git reset --soft HEAD^命令详解&#xff1a; HEAD^ 表示上一个版本&#xff0c;即上一次的commit&#xff0c;也可以写成HEAD~1 如果进行两次的commit&#xf…

鸿蒙Socket通信示例(TCP通信)

前言 DevEco Studio版本&#xff1a;4.0.0.600 参考链接&#xff1a;OpenHarmony Socket 效果 TCPSocket 1、bind绑定本地IP地址 private bindTcpSocket() {let localAddress resolveIP(wifi.getIpInfo().ipAddress)console.info("111111111 localAddress: " …