latex 使用感受

优点

我对latex多图排版方面真的是又爱又恨,爱的是你可以通过设置来调整图片的大小,图片的间距,以及他会帮你将图片进行对齐,不用像之前在ppt里面一样还要自己一张一张图片去调整,真的挺方便的。

缺点

虽然latex支持多图排版功能很方便,但是要实现类似这种排版,工作量也是不小的,而且调其格式来,工作量真的不小,真的有一种让你像在PPT里面排好序,然后再引用进去的感觉,但是呢,PPT的话,如果你换了一张图片,就得自己重新去贴,重新调整位置,然后再替换原来的图片,也是挺麻烦的。latex的话,只要你死了一次,把格式排版搞好后,后面替换都是非常简单的。

下面我开始分享我在latex的多图排版的步骤

大概过程如下

1、建好文件夹。

在你lpaper的atex版本的文件夹中,建一个文件夹figures,如果有已经有了的话,建议再建一个文件夹,名称就是你的图片插入的章节名称或者主题名称,例如我这块是消融实验,那么我就在 figures 里面建了一个ablation的文件夹

2、放置图片。准备好图片,把图片放到步骤一的文件夹中

3、将图片进行命名

latex默认编排图片都是以一列为单位显示,为了便于后面图片的使用,所以命名规则这里是有讲究的。

建议图片名称可以这样子命名  colunm.row.png  图片名称由两个数字组成,第一个数字表示改图处于第几列,第二个数据表示这个图片处于第几行,例如对于第一行同一类的图片的图片名我是这样子命名的1.1,png 2.1png  3.1png .....5.1.png(这样子命名不仅简洁好理解,而且对后面我们献出的一件神奇帮助很大。)

大家如果不小心命名成 1.1.png  1.2.png 1.3.png,最后显示出来肯定是有问题的,那么怎么办,两种办法,一种是手动改,如果图片数量多,你肯定要抓狂,那么第二种是使用我提供的Python代码,将图片名称倒过来。代码我会贴在文章后面

4、编写排版代码(最后看了步骤5,再决定是否手写)

在ctex里面开始编写下面的内容(需要调整的参数只有两个,但是你会发现,你需要调整的地方却不是一般的多,如果你有n张图,需要排成m行,那么就是需要改n+m个地方,有没想哭的感觉。作为程序猿,啥都不会,啥都可以欺负我,但是软件绝对不可以!!!我们信奉的宗旨是,软件上一切用得不爽的地方,我们就要用代码去消灭他。所以在此,我们要祭出一件终极武器,排版代码生成器,详见步骤5)

(这也是我想吐槽latex的地方,图片排班没有预浏览功能,你改了格式,还需要等待生成Pdf才能看到效果,然后从编译到后面看到效果需要40秒左右,等得真的让人奔溃,后面我发现其实pdf生成还是挺快的,但是ctex的Pdf预浏览框显示很慢,估计这个框是因为需要高亮修改过的内容,导致慢的,应该可以调吧!我试试了再跟大家分享)

\begin{figure}[h]
%begin{minipage}中的0.149  centerline中width=\textwidth这两个是需要调整的参数\begin{minipage}{0.149\linewidth}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.1.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.2.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.3.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.4.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.5.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/1.6.png}}\vspace{3pt}\centerline{Image}\end{minipage}....\begin{minipage}{0.149\linewidth}\centerline{\includegraphics[width=\textwidth]{ablation/6.1.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/6.2.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/6.3.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/6.4.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/6.5.png}}\vspace{3pt}\centerline{\includegraphics[width=\textwidth]{ablation/6.6.png}}\vspace{3pt}\centerline{bbb}\end{minipage}\caption{...}\label{fig4}
\end{figure}

5、使用排版神器---排版代码生成器

由于需要修改的地方太多了,然后仔细分析排版代码,发现其实都是有章可循,除了图片名其他都是重复的。这种情况下,非常适合用代码生成器来解决这个问题。然后我用python写了一个简单的排版代码生成器,具体源码如下


def generate_ablation_code():#name 为每一列图片下面显示的标注names=["Image","GT","SCRN","SCRN-A","BSRN-NA","BSRN"]#range(1,7) 中 7表示我有6列 print("begin{figure}[h]")for i in range(1,7):print(r"\begin{minipage}{0.149\linewidth}")if i==1:print(r"\vspace{3pt}")#range(1,7) 中 7表示每列我有6张图 for j in range(1,7):#之前图片的命名在这边有大作用tmp = "\centerline{\includegraphics[width=\\textwidth]{ablation/"+str(i)+"."+str(j)+".png}}\n\\vspace{3pt}"print(tmp)#打印图片下面显示的标注print("\centerline{"+names[i-1]+"}")print(r"\end{minipage}")print("end{figure}")

生成后把控制台生成的内容贴到ctex中即可

最终效果

代码

文件名置换

"""
转换文件名,将原来文件夹中的 1.2.png 1.3.png...文件,在新文件夹中变成 2.1.png  3.1.png 注意该代码不会影响原来的文件,只会在新文件夹中生成新文件
"""
def change_file_name():# 源文件地址origin_file_path = r"E:\1paper\1latex\xxxx\figures\a/"# 目标文件件地址(要先自己生成好)des_file_path = r"E:\1paper\1latex\xxxx\figures\experiment/"file_list =  os.listdir(origin_file_path)for file in file_list:file_names = file.split(".")new_file_name = file_names[1]+"."+file_names[0]+".png"copyfile(origin_file_path+file, des_file_path+new_file_name)

效果

原来文件夹

目标文件夹

Latex 多图片排版--排版代码生成器相关推荐

  1. Latex多图片灵活排版

    原博客地址使用floatrow宏包处理浮动体 此宏包支持各种浮动体排版,不仅仅是图片 我在这里只摘摘录了几个原文的简单代码,并附上效果图 \begin{figure}[!htp]\begin{floa ...

  2. [LaTeX] 用minipage来排版多张图片(子图片)! (以及用subfigure而不是subfloat来排版代码型图片)

    文章目录 前言 1 代码 2 小结 3 补充:用subfigure而不是subfloat来排版代码型图片 前言 上一篇写了[LaTeX] 字图片复杂排版的博客,刚刚找到了更好更简洁方便的方法!完全可以 ...

  3. 3. LaTeX图片的排版、引用与格式

    3. LaTeX图片的排版.引用与格式 1.LaTeX 图片排版方式   在 LaTex 排版的论文写作中,LaTex 的所有宏包文件都要写在 \documentclass 命令之后和 \begin{ ...

  4. Latex学习--图片处理(格式选择与图片排版)

    一.格式选择 在写Latex文档时,发现使用PNG格式得图片后,把生成得PDF放大,发现图片严重失真. 所以查阅资料.发现大家基本使用得eps文件格式.因此我也建议使用eps格式. 怎么获取eps格式 ...

  5. Latex之图片排版

    文章目录 一.图片基本设置 二.位置的设置 三.图片并列排版 总结 一.图片基本设置 \begin{figure}\centering\includegraphics[width=5.6in,heig ...

  6. ppt中如何合并流程图_PPT中图片如何排版才能好看

    做PPT多了,我们就会知道图片在PPT中的重要作用:它是提高PPT逼格.提升视觉效果的有力武器. 可问题来了,既然图片很重要,那么PPT里面图片如何放置.如何排版呢?1.2张图片很好办,但多了怎么办? ...

  7. android开发中论坛帖子图片的排版

    有些时候在论坛的图片排版问题上不想光用九宫格,因为不管每行回复是几张图片都用九宫格的话,有时候并不是那么整齐.所以有时候会根据UI的要求,对不同的张数进行不同的排版.比如 其实对于这种图片的排版,在实 ...

  8. 微信小程序淘宝首页双排图片布局排版代码

    小程序淘宝首页双排图片布局排版代码 效果图: 使用技术主要是flex布局,绝对定位布局,小程序前端页面开发,以及一些样式! 直接贴代码,都有详细注释,熟悉一下,方便以后小程序开发! wxml: < ...

  9. 装修笔记--图片横向排版测试

    装修笔记--图片横向排版 墙柜设计 主卧 房间尺寸 风格精选 童卧 次卧 客卧 客厅 阳台 排版示例 有道自己图标 方案一:利用Html的table标签 方案二:利用Html的center标签 有个写 ...

  10. LaTex 的图片插入

    LaTeX插入图片时,常用的图片格式有:png, pdf, jpg, eps.以上四种图片格式各有优劣,其中最为显著的差异是清晰度和图片文件大小.在清晰度方面:eps是清晰度最高的,其次是pdf和pn ...

最新文章

  1. Java程序员需要了解的两种服务器设计模型
  2. Android APP常见的5类内存泄露及解决方法
  3. 是的,我更喜欢这样的工程师
  4. Lesson6 how to use HTML QT Widgets
  5. MyBatis→优缺点、select延迟加载、接口式MyBatis编程、一级缓存、二级缓存、集成Redis自定义缓存、Log4j
  6. pascal与其它语言代码书写的不同和pascal的快捷键
  7. 企业如何高效用云?| 资深运维架构师细说云架构下的运维体系构建
  8. 开发笔记1 关于指针,结构体使用指针的问题
  9. 【RecSys】推荐系统和计算广告经典算法论文及实现总结
  10. 集体智慧编程--优化
  11. Android--分享功能
  12. uniapp 微信小程序 分片 断点续传 大文件上传
  13. 安理工计算机专业分数线,安徽理工大学复试录取分数线
  14. IP路由基础之静态路由
  15. 程序员在二线城市工作爽吗?
  16. centos7 shell脚本开机自启动(亲测可用)
  17. Word中设置论文参考文献对齐方法
  18. 学生云服务器哪个好?阿里云,腾讯云,华为云,有适合学生党云服务器推荐吗?
  19. VueUse中文文档/Vue官方工具库
  20. 谈谈对数据治理的理解

热门文章

  1. css3 3d 过 锯齿,css3 3d旋转 出现锯齿_html/css_WEB-ITnose
  2. MHA Failover测试-上
  3. php函数大小写转化,php大小写转换函数(strtolower、strtoupper)用法介绍
  4. 中国大学mooc乐学python答案_中国大学mooc慕课_乐学Python_章节期末网课答案
  5. 初为人师[/size]
  6. html里面链接,html – 链接里面的一个链接
  7. 如何在云服务器上自动运行.py文件
  8. java 读取文件inputstream_使用Inputstream读取文件
  9. python3d动图_如何在Python上制作3D图形的动画
  10. 树莓派4b 3.5inch显示屏+远程+FTP+建站