Latex中插入多张图片,实现并排排列或者多行多列排列

2022-08-14 11:38:28 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

最近需要用latex插入多张图片,达到这么一个效果。

但是我原来只插入过一张图片(图片内容来源于网络;是国漫一人之下的宝儿姐。强推这部国漫~),代码如下,效果如图:

代码语言:javascript复制
begin{figure}
centering
includegraphics[height=4.5cm,width=9.5cm]{111.eps}
caption{pic1}
label{2}
end{figure}

所以我去网上搜索了一些资料,找到了一些关于在latex中插入多个图片的方法,首先我们来看第一种方法,也是我一开始用的方法:利用latex的subfigure排版,并排放置多张图。(使用宏包usepackage{graphicx}以及usepackage{subfigure} 谢谢@那些空洞的日子指出拼写错误)

源码如下,达到效果如下:

代码语言:javascript复制
begin{figure}[htbp]
centering
subfigure[pic1.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig1}
end{minipage}%
}%
subfigure[pic2.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}%
}%
subfigure[pic3.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}
}%
subfigure[pic4.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}
}%
centering
caption{ pics}
end{figure}

其中0.25linewidth是你插入图片的幅度(我理解为这副图的宽占1/4行,你下张图并排插入的话需要从1/4行处往后开始插),相当于0.25倍的当前latex中规定的一行的长度(感谢@heathrine指正),width=1in是指图片的宽度。它可以在一个大图的框架里面插入多个小图,自动编号为a,b,c,d….并对小图分别描述。

但是这个效果还不是我想要的。于是我就想用一个subfigure里面包裹两个pic看看效果

结果并没有达到我想要的效果。

这样的话就只是将其分成两个部分,只能对对应的两个部分进行描述,而不能对四张图每张都进行描述了。

然后我在latex代码中每隔两个subfigure打一个回车键,奇妙的事情就发生了!

代码语言:javascript复制
begin{figure}[htbp]
centering

subfigure[pic1.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig1}
end{minipage}%
}%
subfigure[pic2.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}%
}%
                 %这个回车键很重要 quad也可以
subfigure[pic3.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}
}%
subfigure[pic4.]{
begin{minipage}[t]{0.25linewidth}
centering
includegraphics[width=1in]{111.eps}
%caption{fig2}
end{minipage}
}%

centering
caption{ pics}
end{figure}

然后效果图如下:

这样就达到了我的效果,既能将图片分成四个小图片,也能对四个小图片分别进行描述。

为什么打回车就能隔开了呢?因为文档(下面那个链接)里面说:One such is the spacing between figures. By default, the methods described below leave little or no space between two sub-figures. Therefore, horizontal space needs to be added manually (if required) using, e.g., the standard lengths quad and qquad or the hspace command.

如果不用上述方式,用下面这种也能达到对应的效果。(PS:这种方式看起来简洁一些)

代码语言:javascript复制
begin{figure}[htbp]
centering
subfigure[pic1.]{
includegraphics[width=5.5cm]{111.eps}
%caption{fig1}
}
quad
subfigure[pic2.]{
includegraphics[width=5.5cm]{111.eps}
}
quad
subfigure[pic3.]{
includegraphics[width=5.5cm]{111.eps}
}
quad
subfigure[pic4.]{
includegraphics[width=5.5cm]{111.eps}
}
caption{ pics}
end{figure}

下面是一篇关于latex插入图片的文章,贴出来大家看一下:点击打开链接

另外,还有这么一种方法,大家也可以试一试:

代码语言:javascript复制
begin{figure}[htbp]
centering
subfigure[1]{
begin{minipage}{4.5cm}
centering
includegraphics[width=6cm]{4a.eps}
caption{World Map}
end{minipage}%
}%
subfigure[2]{
begin{minipage}{7cm}
centering
includegraphics[width=6cm]{4b.eps}
caption{Concrete and Constructions}
end{minipage}
}
subfigure[1]{
begin{minipage}{4.5cm}
centering
includegraphics[width=6cm]{4a.eps}
caption{World Map}
end{minipage}%
}%
subfigure[2]{
begin{minipage}{7cm}
centering
includegraphics[width=6cm]{4b.eps}
caption{Concrete and Constructions}
end{minipage}
}
caption{side by side figure}
end{figure}

如不能正常并排排列,可以尝试改一下width参数。

———————-2020-03-05更新——————

来自评论区的小伙伴@不染。的回复:po主的代码很有用,解决了我的问题,不过现在通行的主要是subfig宏包代替subfigure,而且使用subfig宏包注意把po主代码中的subfigure改成subfloat.

大家也可以试试这种方法哈,感谢不染。

———————-2020-03-16更新——————

给自己打个广告,哈哈哈。

生活中也不只是工作呀,如果感兴趣的话可以关注我的个人公众号,里面包括:美食、游记等原创内容。

有什么问题欢迎在评论区交流,希望能够帮到大家~

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132664.html原文链接:https://javaforall.cn

0 人点赞