мини-страницы с рисунками бок о бок

мини-страницы с рисунками бок о бок

У меня есть этот код, где часть, помеченная , Aтакая же, как часть, помеченная , Bза исключением того, что .4в Aнаходится .45в B. Несмотря на то, что они очень похожи, первый размещает изображения рядом, причем самое правое выравнивается по правому краю, а второй этого не делает. Я не понимаю, почему есть разница. Может кто-нибудь объяснить это.

\documentclass{article}
\usepackage{colortbl}
\usepackage{graphicx}
\begin{document}

\begin{center} 
\noindent\colorbox{blue}{\parbox[t][0.5cm][c]{\textwidth}{\bfseries{HEADER}}}
\end{center} 

\noindent\begin{minipage}{\textwidth}

%A
\noindent\begin{minipage}[b]{.4\textwidth}
\includegraphics[width=2in]{elephant}
Some text.
\end{minipage} 
\hfill
\begin{minipage}[b]{.4\textwidth}
\includegraphics[width=2in]{elephant}
Some more text.
\end{minipage}

\end{minipage}

\vspace{5ex}

%B
\noindent\begin{minipage}{\textwidth}

\noindent\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=2in]{elephant}
Some text.
\end{minipage} 
\hfill
\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=2in]{elephant}
Some more text.
\end{minipage}

\end{minipage}

\end{document}

Выход:

Скриншот

Информация о лицензии Creative Commons на изображении слоназдесь

решение1

В A) вы объявляете ширину .4\textwidthдля miniboxes и ширину 2inдля изображений, но 2in > .4\textwidth (с полями по умолчанию); ваши изображения на самом деле шире, чем зарезервированное для них пространство, и изображения выходят за правое поле (проверьте это с помощью draftпараметра class и посмотрите на .logфайл).

В B) теперь у изображений достаточно места 2in <.45\textwidth, так как minipages заполняет ширину текста, но не изображения; изображение на второй мини-странице набирается, начиная с мини-страницы, поэтому у вас будет пустое пространство шириной .45\textwidth-2in(вы можете проверить это, используя \fboxкаждый minipageпараметр \fboxsepв 0pt).

В заголовке вы не учитываете \fboxsep(расстояние между блоком и его содержимым), и это приведет к переполнению блока (ширина для должна \parboxбыть \textwidth-2\fboxsep).

В следующем коде я использовал draftопцию класса (переполнение \hboxes будет отмечено черной линией) и заключил мини-страницы в красную рамку, чтобы вы могли видеть, что происходит на самом деле:

\documentclass[draft]{article}
\usepackage{colortbl}
\usepackage{graphicx}

\newcommand\Mybox[1]{%
  \setlength\fboxsep{0pt}\fcolorbox{red}{white}{#1}
}

\begin{document}

\begin{center} 
\noindent\colorbox{blue}{\parbox[t][0.5cm][c]{\textwidth}{\bfseries{HEADER}}}
\end{center} 

\noindent\begin{minipage}{\textwidth}

%A
\noindent\Mybox{\begin{minipage}[b]{.4\textwidth}
\includegraphics[width=2in]{elephant}
Some text.
\end{minipage}} 
\hfill
\Mybox{\begin{minipage}[b]{.4\textwidth}
\includegraphics[width=2in]{elephant}
Some more text.
\end{minipage}}

\end{minipage}

\vspace{5ex}

%B
\noindent\begin{minipage}{\textwidth}

\noindent\Mybox{\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=2in]{elephant}
Some text.
\end{minipage}} 
\hfill
\Mybox{\begin{minipage}[b]{.45\textwidth}
\includegraphics[width=2in]{elephant}
Some more text.
\end{minipage}}

\end{minipage}

\end{document}

И вот результат:

введите описание изображения здесь

Вот измененная версия вашего кода; использование width=\linewidthгарантирует, что изображения займут ровно столько места, сколько доступно внутри minipages:

\documentclass{article}
\usepackage{colortbl}
\usepackage[demo]{graphicx}
\usepackage{lipsum}

\begin{document}

\begin{center} 
\colorbox{blue}{\parbox[t][0.5cm][c]{\dimexpr\textwidth-2\fboxsep\relax}{\bfseries{HEADER}}}
\end{center} 

\lipsum[2]

\noindent\begin{minipage}[b]{.4\textwidth}
\includegraphics[width=\linewidth]{elephant}
Some text.
\end{minipage}%
\hfill
\begin{minipage}[b]{.4\linewidth}
\includegraphics[width=\textwidth]{elephant}
Some more text.
\end{minipage}

\end{document}

введите описание изображения здесь

решение2

Для размещения фигур рядом вы можете попробовать этот способ (все обрабатывается автоматически, и вы можете использовать большее или меньшее количество фигур: 2, 3, 4 и т. д.):

\usepackage{graphicx}
\usepackage{subfigure}
\begin{document}

\begin{figure}[ht]
\centering
\subfigure[Subfigure 1 title]{
    \rule{2.8cm}{2cm}
    \label{fig:subfig1}
}
\subfigure[Subfigure 2 title]{
    \rule{2.8cm}{2cm}
\label{fig:subfig2}
}
\subfigure[Subfigure 3 title]{
    \rule{2.8cm}{2cm}
    \label{fig:subfig3}
}
\subfigure[Subfigure 4 title]{
    \rule{2.8cm}{2cm}
    \label{fig:subfig4}
}
\caption[Optional caption for list of figures]{General Caption of subfigures 1-4}
\label{fig:subfigureExample1}
\end{figure}

Reference to figure1:
    \ref{fig:subfigureExample1} 
and 
    \ref{fig:subfig4}.

\end{document}

введите описание изображения здесь

And the referencing:

введите описание изображения здесь

Или это (необходимо предоставить изображения subfig5.jpg - subfig8.jpg):

\usepackage{graphicx}
\usepackage{subfigure}
\begin{document}
\begin{figure}[ht]
\centering
\subfigure[Subfigure 5 title]{
    \includegraphics[width=0.4\columnwidth, keepaspectratio]{subfig5.jpg}
    \label{fig:subfig5}
}
\subfigure[Subfigure 6 title]{
    \includegraphics[width=0.4\columnwidth, keepaspectratio]{subfig6.jpg}       
    \label{fig:subfig6}
}
\subfigure[Subfigure 7 title]{
    \includegraphics[width=0.4\columnwidth, keepaspectratio]{subfig7.jpg}    
    \label{fig:subfig7}
}
\subfigure[Subfigure 8 title]{
    \includegraphics[width=0.4\columnwidth, keepaspectratio]{subfig8.jpg}    
    \label{fig:subfig8}
}
\caption[Optional caption for list of figures 5-8]{General Caption of subfigures 5-8}
\label{fig:subfigureExample2}
\end{figure}

Reference to figure:
    \ref{fig:subfigureExample2} 
and 
    \ref{fig:subfig6}.

\end{document}

введите описание изображения здесь

And the referencing:

введите описание изображения здесь

Подсказка: Пакет "Subfigure" может быть старым, но делает все автоматически. Я попробовал несколько вариантов и нашел его самым полезным.

решение3

Если вам не нравится использовать подрисунок, используйте «подпись» и «подпись»:

\usepackage{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}  
    \centering
    \begin{subfigure}[t]{0.4\columnwidth}
        \centering
        \includegraphics[width=\columnwidth, keepaspectratio]
        {frog.jpg}
        \caption{Subfigure 1 title}\label{fig:subfig1}      
    \end{subfigure}
    \quad
    \begin{subfigure}[t]{0.4\columnwidth}
        \centering
        \includegraphics[width=\columnwidth, keepaspectratio]
        {frog.jpg}
        \caption{Subfigure 2 title}\label{fig:subfig2}
    \end{subfigure}
    \begin{subfigure}[t]{0.4\columnwidth}
        \centering
        \includegraphics[width=\columnwidth, keepaspectratio]
        {frog.jpg}
        \caption{Subfigure 3 title}\label{fig:subfig3}      
    \end{subfigure}
    \quad
    \begin{subfigure}[t]{0.4\columnwidth}
        \centering
        \includegraphics[width=\columnwidth, keepaspectratio]
        {frog.jpg}
        \caption{Subfigure 4 title}\label{fig:subfig4}
    \end{subfigure}
    \caption{General Caption of subfigures 1-4}\label{fig:subfigureExample1}
\end{figure}    

Testing Reference to figure:
Figure \ref{fig:subfigureExample1} and Figure \ref{fig:subfig4}.

\end{document}

введите описание изображения здесь

Связанный контент