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}
请注意,我仍然使用支撑我之前在两个minipage
s 中都定义过。但我还利用了\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。
每个解决方案都不需要计算。