论文高清出图 matlab,visio, adobe illustrator, PDF

本文介绍如何使用Matlab导出不同格式的矢量图,包括EPS、PDF等,并提供了利用Visio和Adobe Illustrator进行图形合并及处理的方法。此外还讨论了如何减少导出PDF时的空白边缘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  1. 使用matlab完成绘图后,希望直接导出矢量图供写作,而不是PNG等位图。
  2. 有些论文对图的数量还有限制,有时需要将多个图进行合并。虽然可以直接使用matlab,latex等进行合并,但感觉这两种方法比较麻烦。

我更偏向于matlab导出矢量图,放到Visio进行合并和处理,在导出矢量图,使用latex进行写作(只支持eps和PDF格式矢量图)。

matlab导出矢量图

使用 print 函数或者 saveas 函数, 设置相应导出的矢量图格式,详见matlab参考文档。

print(Fig1, 'ChenFig1', '-dpng', '-r600')
print(Fig1, 'ChenFig1', '-dpdf', '-r600')
print(Fig1, 'ChenFig1', '-depsc', '-r600')
print(Fig1, 'ChenFig1', '-dmeta', '-r600')
print(Fig1, 'ChenFig1', '-dsvg', '-r600')
print(Fig1, 'ChenFig1', '-dpsc', '-r600')

我自己定义的 matlab 导出 PDF 函数

function [] = PrintFig2PDF(Fig, FileName)
% for exporting Fig to PDF for paper
% This function will adjust the configuration for exporting Figure to PDF,
% mainly to get rid of the large blank margin of the generated PDF.
%
% Attention: 
% [1] try to avoid adjusting the size of the figure after this function.
%
% Input: 
%       FileName -- name of the PDF, containing the path of the folder
%       Fig      -- handle of the figure for PDF
% 

if nargin == 1
    if isa(Fig,'matlab.ui.Figure')
        FileName = 'New';
    elseif isa(Fig,'char')
        FileName = Fig;
        Fig = gcf;
    end
elseif nargin == 2
    if isa(Fig,'char')
        temp = Filename;
        FileName = Fig;
        Fig = temp;
    end
elseif nargin <1
    Fig = gcf;
    FileName = 'New';
end

set(Fig,'Units','Inches');
% Fig.Renderer = 'vector';          % 这个可以是 3D plot 输出矢量图
pos = get(Fig,'Position');
set(Fig,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])

%% Ver2023 and its previous release are different in print function
ver = version('-date'); 
if str2num(ver(end-4:end))<2023
    print(Fig, FileName,'-dpdf','-r0', '-painters')
else
    print(Fig, FileName,'-dpdf','-r0', '-vector')
    % another method exportgraphics ver>2020a
    % exportgraphics(Fig,[FileName,'.pdf'],'BackgroundColor','none','ContentType','vector')
end

end

Visio导出PDF矢量图

我推荐直接使用Visio导出PDF,然后提供给latex写作。

在Visio中新建多个 “页面(page)”, 一个页面进行合并,标记等操作。另外一个页面用于导出PDF,这个需要调整页面大小,从而消除导出PDF周边空白,也可以使用PDF编辑器调整导出PDF周围空白(修改后导出图形比较麻烦 )。

Visio可以使用的格式

  1. emf(缩放文字不会变动)
  2. svg (缩放文字会变动, 会导致较大缩放比例时整个布局变动

Visio不可可以使用的格式

  1. eps
  2. pdf
  3. ps
  4. asv

Visio另存为,选择PDF,在导出选项中选择 “选择”(推荐)或者“当前页”。

在这里插入图片描述

如何消除Visio导出PDF四周的空白

  1. 文件->选项->自定义功能区->主选项卡,勾选开发工具,点击确定
  2. 点击开发工具->显示ShapeSheet->页,将Print Properties,PageLeftMargin,PageRightMargin,PageTopMargin,PageBottomMargin全部设置为0
  3. 设计->大小,适应绘图
  4. 文件->导出,导出为pdf格式
  5. 推荐导出是使用“选择”而不是“当前页”,因为当前页导出的PDF文件四周是有边框的,latex生成的文档的图片也是有边框的,不美观。

在这里插入图片描述

Visio 中的 位图 导出PDF时候变模糊

在 Visio 中对内容编辑好后,导出 PDF 时候,发现 PDF 中的位图分辨率很低,尤其是将Visio内容按照 1:1 放入latex 论文的时候更明显。 有下面几个办法

  1. 使用 Visio 打印,选择打印机,比如 Adobe 的打印机,设置属性中找到图片分辨率的地方,改高。但是这种办法只能一定程度提高分辨率。
  2. Visio 导出 svg 格式,用浏览器打开后再打印到 PDF,这种图片和你插入 Visio 的清晰度是一样的。但是这种在你 Visio 内容中出现 渐变颜色,特殊箭头,符号公式等时候会出现显示异常。
  3. Visio直接保存 PDF,保证只有图片模糊,然后用 adobe acrobat 打开,在编辑模式选中图片,右键“替换图像”,选中对应的图像,替换之后保存,图片就是和原图一样清晰。但是这种需要这个图片不能再 visio 中改变长宽比和裁剪,最好是提前处理好图片。
    在这里插入图片描述

Adobe的illustrator制作矢量图

使用Adobe的illustrator软件替代 前面提到的Visio软件 对需要合并,标注,修改的图片进行操作, 然后导出矢量图。相对来说这个软件是专业矢量图处理软件,上述格式应该都可以处理。但自己不熟悉,没有进一步尝试。

不建议matlab导出到这个软件的格式

  1. emf (文字大小变化)

推荐matlab导出到这个软件的格式

  1. eps
  2. ps
  3. svg

matlab导出PDF格式图片调整边缘空白

网上找到的关于导出PDF格式文件去除边缘空白的代码:

% 导出到pdf
set(gcf,'Units','Inches');
pos = get(gcf,'Position');
set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)])
filename = ''; % 设定导出文件名
print(gcf,filename,'-dpdf','-r0')
close(gcf)

PPT

和Visio类似,也可以用PPT处理。PPT的好处是可以使用office自带的公式,并且可以支持 latex 输入。

但是注意导出PDF时最好使用 “Save as Adobe PDF”。这个导出的接近真实PPT效果。保存副本选 PDF 容易导致格式兼容问题。
在这里插入图片描述

Save as Adobe PDF

在这里插入图片描述

另存副本 PDF
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值