Minipages 并不总是对齐,而 Boxedminipages 却总是对齐

Minipages 并不总是对齐,而 Boxedminipages 却总是对齐

Boxedminipages行列就像人们所期望的那样,无论是用文本还是图形填充,但minipages填充graphic行列却令人不安。(当然,一种解决方法是使用\raisebox{<length>}。它在最小工作示例中被注释掉了。)

我无法弄清楚/找到如何提供要包含在以下最低工作示例中的图形。我正在使用http://freemathtexts.org/graphic.pdf但我必须依靠一些好心人来修复下面的图形。

以下是使用 Boxed minipages 的最小工作示例:

\documentclass{book}

\usepackage{boxedminipage}
    \usepackage{graphicx}   

\begin{document}

\begin{boxedminipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{boxedminipage}
\begin{boxedminipage}[t]{40mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{boxedminipage}

\bigskip

\begin{boxedminipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{boxedminipage}
\begin{boxedminipage}[t]{30mm}
\includegraphics[width=\linewidth]{example-image}
\end{boxedminipage}

\end{document}

以下是包含小页面的最小工作示例:

\documentclass{book}

\usepackage{boxedminipage}
    \usepackage{graphicx}   

\begin{document}

\begin{minipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{minipage}
\begin{minipage}[t]{40mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{minipage}

\bigskip

\begin{minipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. Some text to fill the minipage. 
\end{minipage}
\begin{minipage}[t]{30mm}
%\raisebox{-13mm}{%
\includegraphics[width=\linewidth]{example-image}
%}%
\end{minipage}

\end{document}

答案1

我不确定你的评论是否\raisebox意味着你不想用这种方法得到答案。不过,这里有两种方法,

第一种方法避免使用\raisebox。我将命令定义\aestrut

\newcommand\aestrut{\rule{0pt}{\ht\strutbox}}

然后我将其用作minipage我想在第一行对齐的两个元素中的第一个元素。

Some text
\begin{minipage}[t]{70mm}
  \aestrut
  Some text to fill the minipage. Some text to fill the
  minipage. Some text to fill the minipage. Some text to
  fill the minipage.
\end{minipage}
\begin{minipage}[t]{30mm}
  \aestrut\par
  \vspace{-\dimexpr\baselineskip}%%
  \includegraphics[width=\linewidth]{example-image}
\end{minipage}

问题\includegraphics是基线是包含的图像的底部。因此,必须采取一些措施来纠正 LaTeX 认为的基线的“位置”。以上结果为:

在此处输入图片描述

\vspace{....}调整图片顶部对齐。如果没有\vspace{....},结果将如下所示:

在此处输入图片描述

如何调整取决于你。

第二种方法是使用\raisebox命令。

Some text
\begin{minipage}[t]{70mm}
  \aestrut
  Some text to fill the minipage. Some text to fill the
  minipage. Some text to fill the minipage. Some text to
  fill the minipage.
\end{minipage}
\begin{minipage}[t]{30mm}
  \raisebox{-\dimexpr\height-\ht\strutbox}{\includegraphics[width=\linewidth]{example-image}}%
\end{minipage}

请注意,我仍然使用支撑我之前在两个minipages 中都定义过。但我还利用了\raisebox对其所含图像高度的了解,并根据这个量和 调整了框的高度\baselineskip

在此处输入图片描述

答案2

当您这样做时\begin{minipage}[t],该框的参考点与框中的第一个项目(项目表示跳过、规则或框)处于同一级别。

对于图像来说,小页面包含一行段落,仅由图像本身组成;该行被做成一个框,图像​​位于其基线处。

从下图可以清楚地看出

在此处输入图片描述

不会发生这种情况boxedminipage,因为第一项是最高规则。

为了解决这个问题,您可以采取一些策略。

第一个策略:使用跳过

\begin{minipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage.
Some text to fill the minipage. Some text to fill the minipage.
\end{minipage}
\begin{minipage}[t]{30mm}
\vspace{-\ht\strutbox}
\includegraphics[width=\linewidth]{example-image}
\end{minipage}

在此处输入图片描述

第二种策略:在两个小页面中使用规则

在此处输入图片描述

第三个策略:使用adjustbox

\documentclass{book}

\usepackage{graphicx}
\usepackage[export]{adjustbox}

\begin{document}

\begin{minipage}[t]{70mm}
Some text to fill the minipage. Some text to fill the minipage.
Some text to fill the minipage. Some text to fill the minipage.
\end{minipage}
\includegraphics[width=30mm,valign=t]{example-image}

\end{document}

这甚至不需要第二个 minipage。结果与第一个策略相同。

在此处输入图片描述

有一个小小的区别:与情况 2 相比,情况 1 和 3 中的图像顶部略高。我更喜欢 3 而不是 2。

每个解决方案都不需要计算。

相关内容