当前位置: 首页 > article >正文

在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"
  else
    echo "$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.kler.cn/a/273585.html

相关文章:

  • 【设计模式系列】组合模式(十二)
  • github - ssh 配置 key、下载repo
  • Spring1(初始Spring 解耦实现 SpringIOC SpringDI Spring常见面试题)
  • Centos8安装软件失败更换镜像源
  • 大学适合学C语言还是Python?
  • 模型 定位地图
  • 事务、并发、锁机制的实现
  • EDI在汽车主机厂配送流程中的应用
  • Jenkins 一个进程存在多个实例问题排查
  • 深入解析MVCC:多版本并发控制的数据库之道
  • 自然语言:如何通过机器学习和自然语言处理技术训练生成一个AI?有没有代码展示
  • vite打包流程和原理
  • OpenCV Steger算法提取条纹中心线
  • Android Studio实现内容丰富的安卓美食管理发布平台
  • 【机器学习】函数
  • 小红书推广费用一般多少?CloudNEO:7000+达人资源,助您一臂之力
  • 关于物联网的技术与概念
  • ASP.NET通过Appliaction和Session统计在人数和历史访问量
  • Django 反向解析路由
  • 低代码与数字化工具:重塑软件开发的新范式
  • HTML5球体下落粒子爆炸特效
  • HTTP 工作流程请求响应 - 面试常问
  • 搭建 es 集群
  • MFC中CString类都有哪些成员函数,分别什么作用,如何使用它们?
  • 【NLP6-使用seq2seq模型架构实现英译法任务】
  • 行为型-观察者模式