在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.mzph.cn/news/753998.shtml

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

相关文章

Java SE入门及基础(40)

目录 自定义异常 1. 为什么要使用自定义异常 自定义运行时异常语法 自定义检查异常语法 示例 2. 异常使用注意事项 Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 自定义异常 1. 为什么要使用自定义异常 在Java 中,异常的类型非常的多,…

CSS 零基础入门教程

目录 1. div 和 span2. 什么是CSS?3. CSS 引入方式3.1 内部样式表3.2 外部样式表3.3 行内样式 4. 选择器4.1 标签选择器4.2 类选择器4.3 id 选择器4.4 通配符选择器 5. CSS 基础属性6. 谷歌浏览器调试工具 正文开始。 1. div 和 span 在学习 CSS 之前,…

什么是网站?为什么要搭建网站?

网站:简单来说,网站就是通过互联网来展示信息的页面集合。它可以在电脑或者手机上打开,提供各种功能,比如查看新闻、购买商品、搜索信息等。 一、建网站的目的:展示个人或企业的存在 网站建设的首要目的之一是展示个人…

【C++】三大特性之多态

1 定义及实现 1.1 概念 多态是C三大特性之一。通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如学…

简化您的网络连接 —— socks5代理,怎么轻松设置

您需要 SOCKS5 代理吗?在本文中,我们将向您展示逐步的 SOCKS5 代理设置。了解如何获取 SOCKS5 和其他代理协议 —— HTTP 和 HTTPS 代理。 正在寻找 SOCKS5 代理?幸运的是,Smartdaili 现在支持 SOCKS5 协议以及住宅、移动和专用数…

Java后端面试:框架篇高频面试(Spring、SpringMVC、SpringBoot、MyBatis)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Java后端面试:MySQL面试篇(底层事务、SQL调优) 📚订阅专栏:Java后端面…

十四、ReadWriteLock

ReadWriteLock 读写锁 又叫排他锁 如果使用互斥锁,一个线程在读,其他线程也不能读也不能写 换成读写锁的时候,读线程是读锁,写线程是写锁,写锁是排他的 在多线程大大提高效率,当一个线程在读的时候&…

高可用篇_A Docker容器化技术_IV Dockerfile的基本概念和应用

原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 DockerFile 解析 一个镜像文件到底是如何创建? dockerfile 描述出镜像文件需要的一些依赖配置和环境变量 执行命令将我们docker…

glib交叉编译

Glib交叉编译 逸一时,误一世。 —— 田所浩二「夏夜银梦」 交叉编译 GLib 涉及到在一个平台上生成能够在另一个平台上运行的目标文件。在这种情况下,我们将会在一台主机(通常是开发机器)上使用交叉编译工具链来构建 GLib 库&#…

从历年315曝光案例,看APP隐私合规安全

更多网络安全干货内容:点此获取 ——————— 随着移动互联网新兴技术的发展与普及,移动APP的应用渗透到人们的衣食住行方方面面,衍生出各类消费场景的同时,也带来了无数的个人隐私数据泄露、网络诈骗事件。 历年来&#xff…

grpc python实现异步调用(不用grpc异步接口)

grpc python实现异步调用[不用grpc异步接口] 1.infer_session.proto2.生成Python库函数3.infer_session_server.py4.infer_session_client.py5.common.py6.运行7.输出 grpc同步调用更简单,但是在处理复杂任务时,会导致请求阻塞,影响吞吐。当然,可以采用grpc异步接口解决,本方采…

机器人在果园内行巡检仿真

文章目录 创建工作空间仿真果园场景搭建小车模型搭建将机器人放在仿真世界中创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws仿真果园场景搭建 cd ~/catkin_ws/src git clone https://gitcode.com/clearpathrobotics/cpr_gazebo.git小车模型搭建 DiffBot是一种具有两个…

【English Learning】Day16

2024/03/18 和小录打卡的第16天 目录 Words & phrases Words & phrases weakness a sign of weakness 懦弱的表现strengthens and weaknesses 优点和缺点a weakness for 对---迷恋qualify qualify for the Olympics 取得参加奥运会资格gloomy a gloomy room 昏暗的房间…

Java 快速幂

在Java中,实现快速幂算法可以极大地提高计算大整数幂次的效率。快速幂算法的基本思想是,将幂次转化为二进制形式,然后利用二进制位的特性,通过不断平方和乘法操作来得到结果。 以下是一个Java实现的快速幂算法: java…

Vmware虚拟机配置虚拟网卡

背景 今天同事咨询了我一个关于虚拟机的问题,关于内网用Vmware安装的虚拟机,无法通过本机访问虚拟上的Jenkins的服务。   验证多次后发现有如下几方面问题。 Jenkins程序包和JDK版本不兼容(JDK1.8对应Jenkins不要超过2.3.57)虚…

信号量——生产消费者模型

前文 在这一篇博客(信号量博客)中我曾经提及过信号量的知识,而当对信号量进行提炼总结时,大致是以下三点: 1. 信号量本质是一个计数器(代表资源的数量) 2. 申请信号量本质就是对资源的一种预定机…

final关键字

final关键字 基本介绍final使用细节 基本介绍 final 中文意思:最后的,最终的。 final 可以修饰类、属性、方法和局部变量。 在某些情况下会使用到final: 1) 当不希望类被继承时,可以用 final 修饰; // 如…

Python--成员方法、@staticmethod将成员方法静态化、self参数释义

在 Python 中,成员方法是指定义在类中的函数,用于操作类的实例对象。成员方法通过第一个参数通常命名为 self,用来表示调用该方法的实例对象本身。通过成员方法,可以实现类的行为和功能。 成员方法的定义 在类中定义成员…

深入理解数据结构树

文章目录 一、树是什么二、树的相关概念三、树常见类型四、树的应用应用场景五、树的代码实现 一、树是什么 数据结构树是一种非线性的数据结构,它由节点和边组成。树的节点之间通过边连接,形成层次结构。树的顶部节点称为根节点,每个节点可以…

【Linux】Linux上代码的编译与调试

目录 Linux上常用的编译器gcc\g 如何使用gcc/g 编译过程: 如何使用gcc编译? 进行预处理 进行编译 进行汇编 进行链接 函数库 函数库的分类 gcc选项 Linux调试器-gdb的使用 gdb的常用参数 Linux项目自动化构建工具make/Makefile 原理 利用…