问题概述
我正在使用 Powerpoint 来创建我的绘图。使用正常幻灯片大小时,图形周围有一些白色区域。在 Visio 中,可以庄稼页面适合所含图形的边距。在 powerpoint 中如何实现这一点?意思是,所含对象的边界框是幻灯片的大小。
长期动机
近年来,Powerpoint 变得越来越好。特别是在处理图形时,它甚至在某些情况下超越了 Microsoft Visio。因此,Powerpoint 越来越成为创建图表的首选工具。甚至可以轻松创建包含 10 种以上形状的更复杂的图表。
在科学出版物中使用图表时,例如乳胶,图表的大小通常不遵循 PowerPoint 幻灯片的常规尺寸,而是具有适合纸张的尺寸。通常,其高度与 PowerPoint 幻灯片的典型高度不同。
我愿意不是截取屏幕截图,因为屏幕截图是光栅图形。我导出 PDF,因为 PDF 保留了向量信息。例如参见描述矢量与栅格的最佳方式讨论一下为什么矢量图形有用。
我希望下面的截图能清楚地表明需要不同的格式。我很清楚,这个演示文稿是一个快速草图,没有充分利用 powerpoint 的全部功能。
预期的工作流程是:
- 在 PowerPoint 中创建图表
- 裁剪图
- 将图表保存为 PDF
\includegraphics{diagram.pdf}
在 LaTeX 中的使用
当前工作流程:
替代方案 A:将步骤 2 替换为以下顺序:
- 标记所有形状
- 切割所有形状
- 更改幻灯片大小
- 粘贴所有形状
- 如果存在边界不匹配的情况,则转到 2
备选方案 B:插入步骤 3a:
- 在 Acrobat Professional 中打开 PDF
- 使用 Acrobat 的页面裁剪工具
- 保存 PDF
我知道PDF 剪刀也可以使用,但这仍然是手工工作。
评论
关于方案 A:每次图表发生细微变化时,我都不必调整幻灯片边框。如果我进行重大更改,我可能必须手动调整边框。
关于替代方案B:每次我都必须进行裁剪,我会更改图形
还有替代方案 C,我利用了trim
LaTeXgraphicx
软件包的功能。但是,每次幻灯片发生重大变化时,我都必须猜测正确的值,这使得该替代方案与替代方案 A 类似。
相关工作
我发现如何在不调整幻灯片上任何对象大小的情况下调整幻灯片尺寸?答案JarynPL
似乎很有希望。可能他的宏只需要修改一下。如果没有明确的解决方案,我会自己做并发布在这里。
答案1
根据您的解释:
A。
您的请求无法通过 PowerPoint 工具栏上的简单命令实现,因为 PowerPoint 的主要目的在别处。
B.
可以使用 VBA 编程创建宏。以编程方式
- 迭代所有形状并计算所有形状(=整个图形)的顶部、左侧、底部和右侧边缘。
- 移动每个形状(设置其左边和顶部属性),这样整个绘图(形状组)的中心将成为幻灯片的中心。原因:我可以看到尺寸变化是相对于中心幻灯片,因此在调整幻灯片大小之前请先将内容置于中央。
- 将幻灯片尺寸设置为根据步骤 1 中收集的值计算出的宽度和高度。
根据您的 StackOverflow 个人资料,我可以看出您是一名程序员,因此如果您真的需要此功能,那么将它组合在一起应该不是什么难事,而且可以节省将来调整幻灯片大小的大量时间。
形状在集合中ActivePresentation.Slides(1).Shapes
(使用For Each
... Next
)。您可以找到大量示例 – 关键字是 vba,例如vba powerpoint resize slide
或vba powerpoint iterate shapes
。
Alt使用+可以访问 VBA 代码编辑器F11。在编辑器中,可以使用F2– 对象检查器研究对象模型。每个对象都有详细记录,按对象检查器中的帮助图标。将宏存储在演示文稿中,并将文件保存为类型PowerPoint 启用宏的演示文稿或PowerPoint 启用宏的模板。如果您遇到问题,请先搜索,然后随时在 StackOverflow 上提问。VBA 编码相对简单。它有几个奇怪之处(不要在过程调用中使用括号,只在函数调用中使用括号;集合中的元素索引从 1 开始),但它们是可以忍受的。
另请参阅调试菜单来促进你的开发。你可以在程序等待时修改实时代码(黄线),并且可以使用设置下一个语句命令可将当前执行点向前或向后移动到任意位置。节省大量时间。
在 PowerPoint 中,可以使用Alt+F8或从看法菜单。
答案2
您可以安装 python 模块https://github.com/abarker/pdfCropMargins并执行以下批处理脚本:
REM Remember to install pdfCropMargins
REM
REM pip install pdfCropMargins --upgrade
if not exist "uncropped" mkdir uncropped
if not exist "copped" mkdir cropped
FOR %%i IN (*.pdf) DO (
pdf-crop-margins %%i --verbose --modifyOriginal --usePrefix --stringSeparator "/" --noclobberOriginal
)
pause
这将裁剪包含批处理脚本的文件夹的所有文件。
使用以下批处理脚本,您只需拖放导出.pdf
到.bat
文件。
REM Remember to install pdfCropMargins
REM
REM pip install pdfCropMargins --upgrade
if not exist "uncropped" mkdir uncropped
if not exist "copped" mkdir cropped
set arg1=%1
pdf-crop-margins "%arg1%" --verbose --usePrefix --stringSeparator "/" --threshold 230
pause
答案3
现在有一个右键菜单,您可以在其中将每个形状保存为单独的图片。
答案4
你的 texlive 套件应该有一个pdfcrop
可以裁剪导出的 pdf 的工具自动地。