[论文工具] LaTeX论文SVG和EPS矢量图转换方法详解

news2025/1/10 20:46:34

祝大家中秋国庆双节快乐!
回过头来,我们在编程过程中,经常会遇到各种各样的问题。然而,很多问题都无法解决,网上夹杂着各种冗余的回答,也缺乏系统的实战技巧归纳。为更好地从事科学研究和编程学习,后续将总结各类常见实战技巧,希望对您有所帮助。

本文主要介绍LaTeX论文SVG和EPS矢量图转换方法总结,包括Visio、Excel、Matplotlib等常见方法转换,总体而言是将图片转换为SVG,再转EPS矢量图和生成PDF文件,最终在LaTeX中显示。本文一方面作为自己的学习笔记,另一方面希望能帮助初学者解决实际问题,且看且珍惜!

文章目录

  • 一.非矢量图模糊问题
  • 二.Visio转矢量图EPS至LaTeX
  • 三.Matplotlib绘制图转矢量图EPS至LaTeX
  • 四.Excel转矢量图EPS至LaTeX
  • 五.AI和PS转矢量图EPS至LaTeX
  • 六.总结


一.非矢量图模糊问题

假设存在如下图所示的图像,在LaTeX中会调用 \includegraphics 显示图像,通常期刊或会议会要求为矢量图,并且格式为EPS。

在这里插入图片描述

然而,如果不是矢量图,其图片放大后边缘会形成锯齿状,即使是EPS格式也可能是错误转换的矢量图形式,如下图所示,其图片内容比较模糊。

在这里插入图片描述

在这里插入图片描述

那么,如何解决矢量图转换的问题呢?因为我们在画图或编程生成实验效果图过程中,通常会利用Visio、Excel或编写Python代码。本文主要介绍常见的EPS矢量图转换方法,其核心流程为:

  • 将图片转换为SVG,再转EPS矢量图和生成PDF文件,最终在LaTeX中显示

后续内容包括:

  • Visio转矢量图EPS至LaTeX
  • Matplotlib绘制图转矢量图EPS至LaTeX
  • Excel转矢量图EPS至LaTeX
  • AI和PS转矢量图EPS至LaTeX

此外,大家尤其需要注意:(1)不要直接用PNG转EPS矢量图,因为大部分转换会失败,即使是EPS格式的图像;(2)部分在线网站提供SVG转EPS矢量图的过程,大家可以使用,但需要在最终版PDF论文文件中,放大看是否模糊;(3)部分LaTeX还需要PDF格式的图像文件,但LaTeX会自动将EPS转换为“XX-eps-converted-to”格式,如果不行选择在线网站转换。


二.Visio转矢量图EPS至LaTeX

通常在英文论文撰写中,我们会利用Visio绘制框架图或示例图,如何将其转换为EPS矢量图呢?

第一步,利用Visio绘制框架图或示意图,通常为VSD格式。

在这里插入图片描述

第二步,将图像导出为SVG格式(而非PNG格式)。

在这里插入图片描述

在这里插入图片描述

第三步,利用在线网站将SVG图像转换为EPS矢量图。强烈推荐下列这个网站,其它网站效果较差。

  • https://cloudconvert.com/svg-to-eps

在这里插入图片描述

在这里插入图片描述

输出结果如下图所示,矢量图放在大字体也是清晰的。

  • 温馨提示: cloudconvert网站转换图片只能使用10次机会,建议大家后续付费支持。然而,更换IP地址和浏览器亦可多增加几次。

在这里插入图片描述

在这里插入图片描述

第四步,尝试在线将EPS矢量图转换成PDF文件。

在这里插入图片描述

在这里插入图片描述

第五步,将图像按照指定名字命名,然后在LaTeX中显示。

在这里插入图片描述

\begin{figure}[!ht]
	\centering
	\includegraphics[width=0.45\textwidth]{5.eps}
	\caption{An example of obfuscation and deobfuscation.}
	\label{fig5}
\end{figure}

显示如下图所示:

在这里插入图片描述

最终完成LaTeX矢量图及显示,放大也非常清晰。

在这里插入图片描述


三.Matplotlib绘制图转矢量图EPS至LaTeX

在实验过程中,我们通常会撰写Python代码绘制实验效果图,其中画图会调用Matplotlib库实现。此外,由于深度学习代码绘制图像(如ROC曲线)较为复杂,我们仅撰写Matplotlib绘制图的代码,如下所示:

from matplotlib import pyplot
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['Times New Roman']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams.update({'font.size': 16})

x = ['1','2','3','4','5','6','7','8','9','10']

#Accuacy
CNN = [0.7315, 0.8271, 0.9069, 0.9304, 0.9424, 0.9464, 0.9480, 0.9493, 0.9509, 0.9517]
BiLSTM = [0.8245, 0.8957, 0.9322, 0.9497, 0.9588, 0.9603, 0.9608, 0.9612, 0.9616, 0.9617]
BiGRU = [0.8110, 0.8823, 0.9221, 0.9454, 0.9548, 0.9582, 0.9588, 0.9595, 0.9598, 0.9604]
Transformer = [0.8512, 0.9111, 0.9438, 0.9563, 0.9611, 0.9619, 0.9625, 0.9630, 0.9631, 0.9631]
Our = [0.9318, 0.9606, 0.9700, 0.9706, 0.9710, 0.9712, 0.9711, 0.9714, 0.9712, 0.9715]

plt.xlim(-0.5, 10)
plt.plot(x, CNN, marker='o', c='r', mec='r', mfc='w', linestyle=":",label='CNN')
plt.plot(x, BiLSTM, marker='D', ms=5,linestyle=":", label='BiLSTM')
plt.plot(x, BiGRU, marker='*', ms=8, linestyle="-.", label='BiGRU')
plt.plot(x, Transformer, marker='x', ms=6,linestyle="--", label='Transformer')
plt.plot(x, Our, marker='.', c='b', mec='b', ms=10, label='Our Method')
plt.legend(loc="lower right", fontsize="14")
plt.xticks(x, x, rotation=1)
plt.gca().yaxis.set_major_formatter(ticker.FormatStrFormatter('%.4f'))
plt.margins(0)
plt.subplots_adjust(bottom=0.10)
plt.xlabel('Epoch')
plt.ylabel("Accuracy")
plt.ylim(0.7000, 1.0000)  
plt.savefig('result-acc.svg', format='svg', dpi=1000)
plt.show()

第一步,撰写Python绘制图像代码,生成如下图所示的结果。

在这里插入图片描述

第二步,大家可以导出SVG或EPS矢量图,如下图所示。

在这里插入图片描述

在这里插入图片描述

第三步,利用AI软件导出PDF格式文件。

在这里插入图片描述

在这里插入图片描述

第四步,重命名EPS和PDF,并利用LaTeX显示图像。

\begin{figure}[!ht]
	\centering
	\includegraphics[width=0.5\textwidth]{6.eps}
	\caption{The accuracy of different methods.}
	\label{fig6}
\end{figure}

最终显示效果如下图所示,请放大清晰。

在这里插入图片描述

在这里插入图片描述

然而,导出为EPS图像时其留白界面较多,导致最终显示图像效果较差。一方面,读者可以尝试AI编辑EPS图像时调整背景大小;另一方面,Matplotlib导出图像时可以选择SVG图像,再转换为指定的EPS和PDF文件,可以选择在线转换或AI工具转换。

在这里插入图片描述

在这里插入图片描述

最终修改后的效果如下图所示,总之推荐的顺序还是为:

  • SVG=>EPS=>PDF

在这里插入图片描述


四.Excel转矢量图EPS至LaTeX

在实验过程中,部分读者习惯用Excel绘制实验结果,我们同样需要将Excel转换为矢量图。

第一步,利用Excel绘制实验效果图,如下图所示。然而,Office缺乏将Excel转换为矢量图的功能,在线网站转换的效果也非常差。那么,如何解决呢?

在这里插入图片描述

第二步,由于Excel和Visio之间可以相互转换(相同家族产品),因此,我们将Excel绘制的图像复制到Visio中。

在这里插入图片描述

为更饱满地显示图像,按住Ctrl拖动鼠标能将图像调整为更饱满。

在这里插入图片描述

第三步,在Visio中将图片导出为SVG矢量图。

在这里插入图片描述

第四步,再利用前面两个部分(在线网站或AI工具)将SVG图转换为EPS矢量图或PDF文件,最终显示效果如下图所示。

在这里插入图片描述

在这里插入图片描述


五.AI和PS转矢量图EPS至LaTeX

在前面的内容中,我们已经看到了AI软件转EPS矢量图的过程。同样,PS也具有相同的功能,但再次强调,不推荐大家直接将PNG图片转换为矢量图,建议SVG图片转换。在这里,我们尝试将PNG图像转换为矢量图,看看其模糊的效果。

在这里插入图片描述

在这里插入图片描述

输出结果如下图所示,图像比较模糊。

在这里插入图片描述


六.总结

写到这里,希望这篇文章对您有所帮助,后续也将继续更新内容。还有种在线绘制实验结果图的,以后有机会再介绍。需要注意:

  • 不要PNG图像转换,否则会有阴影效果
  • 先转SVG,再转EPS矢量图和PDF文件

月是故乡明,伟大祖国母亲生日快乐。​见过各地山水,最清澈的还是家乡施秉的杉木河;吃过很多酸汤,最正宗的还是家乡黔东南的红酸白酸。难得这两天回老家看看,看到了家乡的发展和变化;看到了自己零几年的读书笔记;看到了小学中学的奖状和证件,值得纪念的是全县中考第一和那两张全国物理和数学竞赛获奖;看到了父亲为自己包好的各类文学书,以及父亲九几年手写的书法和绘画,并刻在自家的桌椅上(图3),父爱母爱伟大。

​回首,人生犹如贵州连绵的青山绿水,总是起起伏伏,从小学到初中是上升期;紧接着到高中又直线下降;到大学初学程序又波折起伏;硕士毕业初为老师又缓慢下降;到发改借调又短暂回升;读博又起伏波折,如今又直线下降。然而,家乡的大山总能让我们养成质朴的性格,正如女神总笑我去哪都要背着个电脑,陪伴之余还是要敲敲代码,看看这平凡的世界。脚踏实地,知行合一,见笑见笑,爱你们喔!祝大家双节快乐。

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

(By:Eastmount 2023-10-06 夜于黔东南 http://blog.csdn.net/eastmount/ )

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

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

相关文章

C语言中文网 - Shell脚本 - 1

Shell 既是一个连接用户和 Linux 内核的程序,又是一门管理 Linux 系统的脚本语言。Shell 脚本虽然没有 C、Python、Java、C# 等编程语言强大,但也支持了基本的编程元素。 第1章 Shell基础(开胃菜) 欢迎来到 Linux Shell 的世界&am…

吃鸡攻略大揭秘!提升战斗力,分享干货!

大家好!我是你们的吃鸡玩家小编。今天我要和大家分享一些关于提高游戏战斗力和分享顶级游戏干货的干货! 首先,我们要提到的是绝地求生作图工具推荐。作为一名吃鸡玩家,你一定想要在游戏中获得更多的优势。绝地求生作图工具是你必备…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 八)

其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了Watch和$$来为开发者提供更多功能: Watch用于监听状态变量的变化。$$运算符:给内置组件提供TS变量的引用,使得TS变量和内置组件的内部状态保持同步…

WSL 安装 NVIDIA显卡驱动

文章目录 WSL 安装 NVIDIA显卡驱动本机显卡信息验证安装 WSL 版 Ubuntu 22.04在 WSL 中安装 NVIDIA显卡驱动WSL 安装 NVIDIA显卡驱动 最近在研究一些 AIGC 工具,由于 Windows 加入了 WSL 之后的各种特性,本文记录一下如何在 WSL 的 Linux发行版 中安装 NVIDIA 显卡驱动的步骤,…

力扣第110题 平衡二叉数 c++ 树 深度优先搜索 二叉树

题目 110. 平衡二叉树 简单 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root [3,9,20,null…

车险计算器微信小程序源码 带流量主功能

车险计算器微信小程序源码带流量主功能,可以精准的算出车险的书目,是一个非常实用的微信小程序源码。 简单的计算让你得知车险价值 另外也支持流量主,具体小编也就不多说了,大家自己搭建研究吧。 源码下载:https://d…

nsoftware Cloud SMS 2022 .NET 22.0.8 Crack

nsoftware Cloud SMS 能够通过各种流行的消息服务(包括 Twilio、Sinch、SMSGlobal、SMS.to、Vonage、Clickatell 等)发送、接收和安排 SMS 消息,从而提供了一种简化且高效的消息服务方法。 Cloud SMS 提供单个 SMS 组件,允许通过…

spring源码解析——IOC之bean创建

正文 在 Spring 中存在着不同的 scope,默认是 singleton ,还有 prototype、request 等等其他的 scope,他们的初始化步骤是怎样的呢?这个答案在这篇博客中给出。 singleton Spring 的 scope 默认为 singleton,第一部…

C++11(左值(引用),右值(引用),移动语义,完美转发)

目录 一、左值与左值引用 1、左值 2、左值引用 3、意义 二、右值与右值引用 1、右值 2、右值引用 三、右值引用使用场景和意义 1、右值的分类 2、移动构造 3、移动赋值 四、万能引用 五、完美转发 一、左值与左值引用 1、左值 左值是一个表示数据的表达式(如变量名…

软件设计之抽象工厂模式

抽象工厂模式指把一个产品变成一个接口,它的子产品作为接口的实现,所以还需要一个总抽象工厂和它的分抽象工厂。 下面我们用一个案例去说明抽象工厂模式。 在class中可以选择super类和medium类,即选择一个产品的子类。在type中可以选择产品的…

LomBok的使用,MyBatis的使用(增删改查)

Lombok是一个Java库&#xff0c;能自动插入编辑器并构建工具&#xff0c;简化Java开发。通过添加注解的方式&#xff0c;不需要 为类编写getter或equels方法&#xff0c;同时可以自动化日志变量。 结构 pom <?xml version"1.0" encoding"UTF-8"?>…

LLM - FastAPI 搭建简易问答 Server

目录 一.引言 二.辅助函数 1.黑名单 2.清除函数 三.模型函数 1.加载模型 2.生成配置 四.服务部署 1.post - predict 2.get - clean_cache 3.main - run_app 五.总结 一.引言 SFT workflow 微调工作流程 一文中我们介绍了模型微调从数据到最终应用的流程 FastAPI …

C语言 选择(分支)

if 语句&#xff08;分支语句/选择语句&#xff09; 结构&#xff1a; if ( expressio ) statement 如果对 expression 求值为真&#xff08;非0&#xff09;&#xff0c;则执行 statement &#xff1b;否则&#xff0c;跳过 statement 。与 while 循环一样&#xff0c…

推荐两款不错的打字练习网站~

前言 对于写论文或者编程工作&#xff0c; 打字是其中十分耗费体力的一环&#xff0c;如果学会了盲打&#xff0c;那么可以起到事倍功半的作用。为了提高工作效率&#xff0c;我特意在网路上搜寻了大量打字练习的网站&#xff0c;最终发现有两款打字网站十分不错&#xff0c;同…

论文阅读-- A simple transmit diversity technique for wireless communications

一种简单的无线通信发射分集技术 论文信息&#xff1a; Alamouti S M. A simple transmit diversity technique for wireless communications[J]. IEEE Journal on selected areas in communications, 1998, 16(8): 1451-1458. 创新性&#xff1a; 提出了一种新的发射分集方…

搭建环境遇到的坑

office2010装完没法激活&#xff0c;因为没有关闭杀毒软件和防火墙。AWTK designer编译时报这个错&#xff0c;scons按这个方法装之后就好了。 装AWTK designer后&#xff0c;打不开软件&#xff0c;总是闪退&#xff0c;装了VS后就打得开了装IAR时找不到ActivationInfo.txt&am…

abp中iquery类使用orderBy接口功能报错问题

在后端写排序时&#xff0c;当使用如下OrderBy(排序字段)时&#xff0c;只引用System.Linq时如下错误&#xff1a; 只是因为缺少一个引用&#xff1a;System.Linq.Dynamic.Core  在如下类文件中引用 System.Linq.Dynamic.Core  注意&#xff1a;切记不能删掉System.Linq的引…

STM32 CubeMX ADC采集(HAL库)

STM32 CubeMX ADC采集&#xff08;HAL库&#xff09; STM32 CubeMX STM32 CubeMX ADC采集&#xff08;HAL库&#xff09;ADC介绍ADC主要特征一、STM32 CubeMX设置二、代码部分三&#xff0c;单通道轮询采样速度总结 ADC介绍 12位ADC是一种逐次逼近型模拟数字转换器。它有多达1…

springboot整合rabbitmq入门(三)

在上一篇文章中介绍了rabbitmq的fanout模式。今天继续学习另一种模式——direct模式。这种模式是rabbitmq的最简单一种模式。 首先创建一个名为helloDirect1的对列 Configuration public class DirectRabbitConfig {Beanpublic Queue directA(){return new Queue("hell…

【翻译】NCLS: Neural Cross-Lingual Summarization

Abstract 跨语言摘要&#xff08;CLS&#xff09;是为不同语言的源文件生成特定语言摘要的任务。现有方法通常将此任务分为两个步骤&#xff1a;摘要和翻译&#xff0c;导致错误传播的问题。为了解决这个问题&#xff0c;我们首次提出了一种端到端的CLS框架&#xff0c;我们称…