figure环境使用minipage并排图,页面左右间距不同?

发布于 2021-09-16 13:50:19
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{geometry}
\geometry{top=2cm,bottom=2cm,left=2cm,right=2cm}
\begin{document}
    \begin{figure}[h]
        \begin{minipage}{9cm}
            \centering
            \includegraphics[width=8cm]{pic.jpg}
            \caption{1}
        \end{minipage}
        \begin{minipage}{9cm}
            \centering
            \includegraphics[width=8cm]{pic.jpg}
            \caption{2}
        \end{minipage}
    \end{figure}
\end{document}

image.png
请问这里为什么左右边距看起来不一样?如何强制调整为相同?

查看更多

关注者
0
被浏览
3.4k
2 个回答
Photon
Photon 2021-09-16
这家伙很懒,什么也没写!

好像用0.5textwidth代替9cm可以解决,但是是什么原理?

Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

考古...

好像用0.5\textwidth代替9cm可以解决,但是是什么原理?

正如群主所说,是因为两个minipage的总间距超过了页面版心的宽度。

image.png

这段距离没有超过了两个minipage的总宽度(18cm)...

这同时导致一个警告:

Overfull \hbox (13.88782pt too wide) in paragraph at lines 8--18
[]$[]$ $[]$

一种解决办法是,将距离缩短为(比如8.5cm),并再用\hfill填充距离:

\documentclass{article}
\usepackage{graphicx}
\usepackage[showframe]{geometry}
\usepackage[type=upperleft]{fgruler}
\geometry{margin=2cm}
\begin{document}
\begin{figure}[htbp]
    \begin{minipage}{8.5cm}
        \centering
        \includegraphics[width=8cm]{example-image-a}
        \caption{1}
    \end{minipage}\hfill%
    \begin{minipage}{8.5cm}
        \centering
        \includegraphics[width=8cm]{example-image-b}
        \caption{2}
    \end{minipage}
\end{figure}

\end{document}

image.png

另一种解决办法是你所说的.5\textwidth:

\documentclass{article}
\usepackage{graphicx}
\usepackage[showframe]{geometry}
\usepackage[type=upperleft]{fgruler}
\geometry{margin=2cm}
\begin{document}
\begin{figure}[htbp]
    \begin{minipage}{.5\textwidth}
        \centering
        \includegraphics[width=8cm]{example-image-a}
        \caption{1}
    \end{minipage}
    \begin{minipage}{.5\textwidth}
        \centering
        \includegraphics[width=8cm]{example-image-b}
        \caption{2}
    \end{minipage}
\end{figure}

\end{document}

会得到如下的结果:

image.png

但此时还是有警告(但这时的距离明显缩短了,仅有2.2222pt):

Overfull \hbox (2.2222pt too wide) in paragraph at lines 8--18
[]$[]$ $[]$

如果你说你的眼睛就是尺,你还会发现其实还是没有exactly对齐,这是因为缺少%吞去行末空格导致的。详见这个经典回答

需要在两个minipage之间加上一个%:

\documentclass{article}
\usepackage{graphicx}
\usepackage[showframe]{geometry}
\usepackage[type=upperleft]{fgruler}
\geometry{margin=2cm}
\begin{document}
\begin{figure}[htbp]
    \begin{minipage}{.5\textwidth}
        \centering
        \includegraphics[width=8cm]{example-image-a}
        \caption{1}
    \end{minipage}%%%%注意这里的行末%不可或缺
    \begin{minipage}{.5\textwidth}
        \centering
        \includegraphics[width=8cm]{example-image-b}
        \caption{2}
    \end{minipage}
\end{figure}

\end{document}

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览