中心溢出子浮动

中心溢出子浮动

我有一些图,我想使用 subfloat 将它们组合成一个图作为子图。我想将它们对齐为每行两个,但它们似乎太大了(超出 \hbox)。尽管如此,我希望它们位于一行上并居中,这意味着它们应该与工作表的左边框和右边框具有相同的距离。

下面的代码是我的一个图表的精简版,展示了问题。

\documentclass[a4paper,10pt]{scrreprt}
\usepackage{pgfplots}
\usepackage{subfig}
\usepackage{blindtext}

\begin{document}
\begin{figure}
\centering
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\end{figure}
\blindtext
\end{document}

正如您在结果页面中看到的,图形距离右边界比距离左边界更近。

图移至右边距

我似乎无法以任何方式移动它们。正如你所见,我试过\centering,而且我也试过,但\subfloatrow无济于事。

答案1

用于\makebox将“官方宽度”设置为零。这将消除overfull \hbox警告(因为 TeX 现在认为图像宽度为零点)并使框居中:

\documentclass[a4paper,10pt]{scrreprt}
\usepackage{pgfplots}
\usepackage{subfig}
\usepackage{blindtext}

\begin{document}
\begin{figure}
\centering
\makebox[0pt]{
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
}
\end{figure}
\blindtext
\end{document}

在此处输入图片描述

答案2

您想调整大小还是只是移动它们?您可以轻松调整它们的大小以\textwidth使用\resizebox{\textwidth}{!}{ }(在figure环境内),恕我直言,这样看起来会更好。

在此处输入图片描述

\documentclass[a4paper,10pt]{scrreprt}
\usepackage{pgfplots}
\usepackage{subfig}
\usepackage{blindtext}

\begin{document}

\begin{figure}
\resizebox{\textwidth}{!}{
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
}
\end{figure}

\blindtext

\end{document}

这是移位的示例代码,使用subcaptionDonut E. Knot 在其评论中提到的方法,效果会比 更好subfloat。这应该可以帮助您入门。

\documentclass[a4paper,10pt]{scrreprt}
\usepackage{pgfplots}
\usepackage{subcaption}
\usepackage{subfig}
\usepackage{blindtext}

\newsavebox{\mybox}

\newlength{\boxwidth}

\newenvironment{myenv}{%
    \begin{lrbox}{\mybox}%
}{%
    \end{lrbox}%
    \setlength{\boxwidth}{\the\wd\mybox}%
    \addtolength{\boxwidth}{-\textwidth}%
    \hspace*{-0.5\boxwidth}\makebox[\the\wd\mybox][c]{%
        \usebox{\mybox}%
    }%
}

\begin{document}
\blindtext
\begin{figure}[hbtp]
  \begin{myenv}
    \begin{subfigure}[c]{0.6\textwidth}
            \begin{tikzpicture}
                    \begin{axis}[]
                    \end{axis}
            \end{tikzpicture}
            \caption{Left figure}
            \label{fig:Left}
    \end{subfigure}
    \qquad
    \begin{subfigure}[c]{0.6\textwidth}
            \centering
            \begin{tikzpicture}
                    \begin{axis}[]
                    \end{axis}
            \end{tikzpicture}
            \caption{Right figure}
            \label{fig:Right}
    \end{subfigure}
  \end{myenv}
  \caption{Left and right figures side by side}
  \label{fig:Group}
\end{figure}
\blindtext
\end{document}

答案3

建议使用 的解决方案subcaption

\documentclass[preview,border=12pt]{standalone}% change it back to your document class
\usepackage{pgfplots}
\usepackage{subcaption}
\usepackage{blindtext}

\begin{document}
\blindtext
\begin{figure}[hbtp]
    \centering
    \subfigure[c]{.4\linewidth}
            \centering
            \begin{tikzpicture}[scale=0.6]
                    \begin{axis}[]
                    \end{axis}
            \end{tikzpicture}
            \caption{Left figure}
            \label{fig:Left}
    \endsubfigure
    \qquad
    \subfigure[c]{.4\linewidth}
            \centering
            \begin{tikzpicture}[scale=0.6]
                    \begin{axis}[]
                    \end{axis}
            \end{tikzpicture}
            \caption{Right figure}
            \label{fig:Right}
    \endsubfigure
    \caption{Left and right figures side by side}
    \label{fig:Group}
\end{figure}
\blindtext
\end{document}

在此处输入图片描述

答案4

尝试使用scale选项,tikzpicture如下面的代码所示:

\documentclass[a4paper,10pt]{scrreprt}
\usepackage{pgfplots}
\usepackage{subfig}
\usepackage{blindtext}

\begin{document}
\begin{figure}
\centering
\subfloat[]{
\begin{tikzpicture}[scale=0.7]
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}[scale=0.7]
\begin{axis}[]
\end{axis}
\end{tikzpicture}
}
\end{figure}
\blindtext
\end{document}

tikzpicture 缩放

相关内容