子图内对齐环境的间距

子图内对齐环境的间距

我喜欢将两个子图括起来,用于在框架框中并排显示对齐环境。然而,这会导致框顶部的填充变得丑陋。

在此处输入图片描述

之前的一个帖子(\align* 之前的空格是从哪里来的?) 强调,在数学环境之前有一个标准从来都不是一个好主意。

我很好奇这是否是这里的问题以及如何避免它。

请注意,我确实需要对齐环境,而且问题似乎不依赖于其内容。

\documentclass[fontsize=11pt,paper=a4,headsepline,footsepline,DIV=13,BCOR=12mm,bibliography=toc,chapterprefix=on]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ngerman,american]{babel}
\usepackage[utf8]{inputenc}

% serveral packages

\usepackage{lmodern}
\usepackage[final]{microtype}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}

\usepackage{lipsum} %%% can be delted in the end !!!!!!

% figures and captions

\usepackage{caption}
\captionsetup{format=plain, width=.9\textwidth}
\usepackage{subcaption}

\begin{document}

\lipsum[1]

\lipsum[2]

\begin{figure}[h]%
    \framebox[\textwidth]{\begin{subfigure}[t]{.5\textwidth}
            \begin{align*}%
                E = m \cdot c^2
            \end{align*}
        \end{subfigure}%
        \begin{subfigure}[t]{.5\textwidth}%
            \begin{align*}%
                E = m \cdot c^2
            \end{align*}
    \end{subfigure}}
    \caption{Some caption.}
\end{figure}

\lipsum[1]

\lipsum[3]

\end{document}

答案1

通过使用empheq包和flalign环境:

\documentclass{article}
\usepackage{empheq}
\usepackage{xcolor}
\setlength\fboxsep{6pt}

\usepackage{lipsum}

    \begin{document}
\lipsum[1]
    \begin{empheq}[box=\fcolorbox{red}{white}]{flalign*}
&&  
    F & = ma    
& 
  E &= mc^2   
&&
    \end{empheq}
\lipsum[2]
    \end{document}

在此处输入图片描述

答案2

您可以将环境上方和下方的间距设置align为零(请参阅这个答案)。如果在环境内部执行此操作figure,则这些设置仅适用于此环境。

也许将数学环境直接放在 a 之后并不是一个好主意\par,但是由于您将align环境包装在 a 内部figure,所以我认为这应该不是问题。

\documentclass[fontsize=11pt, paper=a4, headsepline, footsepline, DIV=13, BCOR=12mm, bibliography=toc, chapterprefix=on]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[ngerman,american]{babel}
\usepackage[utf8]{inputenc}

% serveral packages

\usepackage{lmodern}
\usepackage[final]{microtype}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}

\usepackage{lipsum} %%% can be delted in the end !!!!!!

% figures and captions

\usepackage{caption}
\captionsetup{format=plain, width=.9\textwidth}
\usepackage{subcaption}

\begin{document}

\lipsum[1]

\lipsum[2]

\begin{figure}[h]%
    \setlength{\abovedisplayskip}{0pt}%
    \setlength{\belowdisplayskip}{0pt}%
    \setlength{\abovedisplayshortskip}{0pt}%
    \setlength{\belowdisplayshortskip}{0pt}%
    \framebox[\textwidth]{%
        \begin{subfigure}[t]{.5\textwidth}%
            \begin{align*}%
                E = m \cdot c^2
            \end{align*}%
        \end{subfigure}%
        \begin{subfigure}[t]{.5\textwidth}%
            \begin{align*}%
                E = m \cdot c^2
            \end{align*}%
        \end{subfigure}%
    }
    \caption{Some caption.}
\end{figure}

\lipsum[1]
%
\begin{align*}%
    E = m \cdot c
\end{align*}
%
\lipsum[3]

\end{document}

在此处输入图片描述

答案3

我看不出有什么理由subfigure,除非你想有子标题。align*当涉及单个方程时,我也看不出有什么理由。

无论如何,用于$\begin{aligned}...\end{aligned}$多行显示或$\displaystyle...$单个方程式。

\documentclass[fontsize=11pt,paper=a4,headsepline,footsepline,DIV=13,BCOR=12mm,bibliography=toc,chapterprefix=on]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ngerman,american]{babel}
\usepackage[utf8]{inputenc}

% serveral packages

\usepackage{lmodern}
\usepackage[final]{microtype}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}

\usepackage{lipsum} %%% can be delted in the end !!!!!!

% figures and captions

\usepackage{caption}
\captionsetup{format=plain, width=.9\textwidth}
\usepackage{subcaption}

\begin{document}

\lipsum[1]

\lipsum[2]

\begin{figure}[htp]

\framebox[\textwidth]{%
  \begin{subfigure}[t]{.5\textwidth}
  \centering
    $\begin{aligned}
      E &= m \cdot c^2 \\
      F &= ma
    \end{aligned}$
  \caption{Subfigure}
  \end{subfigure}%
  \begin{subfigure}[t]{.5\textwidth}
  \centering
    $\begin{aligned}
      E &= m \cdot c^2 \\
      F &= ma
    \end{aligned}$
  \caption{Subfigure}
  \end{subfigure}%
}% end of \framebox

\caption{Some caption.}
\end{figure}

\lipsum[1]

\end{document}

在此处输入图片描述

答案4

基本解决方案

\usepackage{adjustbox}

手动的:https://ctan.org/pkg/adjustbox

参见(第 4.2 节)margin=<left> <bottom> <right> <top>

正在使用:

\begin{figure} % ...
% ...
\begin{adjustbox}{margin=0em 0em 0em -1em, varwidth=\textwidth,fbox,center}
% ...
% subfigures, etc.. go here
% ...
\end{adjustbox}
% ...
\end{figure}

效果:移动盒子向上 1em

细节

忽略嵌入子图的基本原理,似乎有几种方法可以解决这个问题。我曾经adjustbox解决过这个问题。

需要一个包adjustbox

https://ctan.org/pkg/adjustbox

我刚刚将上边距设置为-1em

平均能量损失

\documentclass[12pt]{scrbook}
\usepackage{amsmath}
\usepackage{adjustbox}
\usepackage{subcaption}

\begin{document}

\begin{figure}[h]%
  \begin{adjustbox}{margin=0em 0em 0em -1em, 
                    varwidth=\textwidth,fbox,center}
        \begin{subfigure}[t]{.5\textwidth}
            \begin{align*}%
                E &= mc^2
            \end{align*}
        \end{subfigure}%
        \begin{subfigure}[t]{.5\textwidth}
            \begin{align*}%
                E &= mc^2
            \end{align*}
        \end{subfigure}
   \end{adjustbox}
\caption{Energy is matter is energy.}
\end{figure}

\end{document}

结果

在此处输入图片描述

相关内容