`
\documentclass[aspectratio=169]{ctexbeamer}
\usepackage{graphicx}
\begin{document}
\begin{frame}{3个minipage都顶部对齐}
\begin{minipage}[t]{0.3\textwidth}
你好.
\end{minipage}
\begin{minipage}[t]{0.3\linewidth}
\includegraphics[width=0.6\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[t]{0.3\textwidth}
他好.
\end{minipage}
\end{frame}
%---------------------------------------------------------------------------------%
\begin{frame}{3个minipage都底部对齐}
\begin{minipage}[b]{0.3\textwidth}
苹果.
\end{minipage}
\begin{minipage}[b]{0.3\textwidth}
\includegraphics[width=0.6\textwidth]{example-image-b}
\end{minipage}
\begin{minipage}[b]{0.3\textwidth}
橘子.
\end{minipage}
\end{frame}
%---------------------------------------------------------------------------------%
\begin{frame}{3个minipage都居中对齐}
\begin{minipage}[c]{0.3\textwidth}
orange.
\end{minipage}
\begin{minipage}[c]{0.3\textwidth}
\includegraphics[width=0.6\textwidth]{example-image-c}
\end{minipage}
\begin{minipage}[c]{0.3\textwidth}
orange.
\end{minipage}
\end{frame}
\end{document}
以上代码,我想看看tcb三个参数是否真的如top,center,bottom名字一样,产生对应的效果,结果不是.另外chatgpt说这3个参数的对齐不是minipage之间的对齐,而是minipage内部内容的对齐方式,有朋友能举一个mwe(minimal working example)吗?
诚如@u38442 的解释,我又尝试了一下,下面是测试的结果.
按我个人理解,minipage
环境的作用是用来对齐文字环境内的「小页面」,因此默认是按照baseline
居中对齐的,你想要实现和控制的是多个minipage
之间的垂直对齐关系,而minipage
会根据内容自动设置高度,例如下图,自动匹配的高度不统一导致了你的问题.
可以尝试指定可选的 [height]
参数来实现.
下面是一个MWE和效果.
\documentclass[aspectratio=169]{ctexbeamer}
\usepackage{lipsum}
\usepackage{graphicx}
\begin{document}
\begin{frame}{给minipage加框并展示inner-pos参数的区别}
\fbox{
\begin{minipage}[c][5cm][t]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image-a}
\end{minipage}
}
\fbox{
\begin{minipage}[c][5cm][c]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image-b}
\end{minipage}
}
\fbox{
\begin{minipage}[c][5cm][b]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image-c}
\end{minipage}
}
\end{frame}
%---------------------------------------------------------------------------------%
\begin{frame}{3个minipage都顶部对齐}
\fbox{
\begin{minipage}[c][.2\textheight][t]{.28\textwidth}
\centering
苹果.
\end{minipage}
}
\fbox{
\begin{minipage}[c][.2\textheight][t]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image}
\end{minipage}
}
\fbox{
\begin{minipage}[c][.2\textheight][t]{.28\textwidth}
\centering
苹果.
\end{minipage}
}
\end{frame}
%---------------------------------------------------------------------------------%
\begin{frame}{3个minipage都居中对齐}
\fbox{
\begin{minipage}[c]{.28\textwidth}
\centering
苹果.
\end{minipage}
}
\fbox{
\begin{minipage}[c]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image}
\end{minipage}
}
\fbox{
\begin{minipage}[c]{.28\textwidth}
\centering
橘子.
\end{minipage}
}
\end{frame}
%---------------------------------------------------------------------------------%
\begin{frame}{3个minipage都居底对齐}
\fbox{
\begin{minipage}[c][.2\textheight][b]{.28\textwidth}
\centering
苹果.
\end{minipage}
}
\fbox{
\begin{minipage}[c][.2\textheight][b]{.28\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image}
\end{minipage}
}
\fbox{
\begin{minipage}[c][.2\textheight][b]{.28\textwidth}
\centering
苹果.
\end{minipage}
}
\end{frame}
\begin{frame}{演示minipage设置不同的高度}
生活就像海洋,只有意志坚强的人才能到达彼岸.生活就像海洋,只有意志坚强的人才能到达彼岸.生活就像海洋,只有意志坚强的人才能到达彼岸.生活就像海洋,只有意志坚强的人才能到达彼岸.
\fbox{
\begin{minipage}{.2\textwidth}
\centering
这是一小段话.
\end{minipage}
}
\fbox{
\begin{minipage}{.15\textwidth}
\centering
\includegraphics[width=.6\textwidth]{example-image}
\end{minipage}
}
\fbox{
\begin{minipage}{.15\textwidth}
\centering
\includegraphics[width=.8\textwidth]{example-image}
\end{minipage}
}
\end{frame}
\end{document}
此外,关于markdown插入代码块的语法,需要如下图做围栏式代码块,markdown语法学习对你来说仍然任重而道远.
(p.s.上面的{ctexart}花括号打错了,但我懒得再截图...)
另:对于设置对齐方式这种较为精细化的需求,GPT等大模型不一定(往往不能)可以提供准确的解答,更好的办法(几乎也是唯一的办法)是阅读宏包的文档.可以搜索一下texdoc <package name>
命令,当然如果你是在overleaf上使用的话,可以尝试检索CTAN+<package name>
.但其实对于精细需求我个人是不建议使用大模型帮助的,"GPT不懂LaTeX".
祝好!
minipage 提供三个可选参数,将文本内容放入一个宽width的盒子当中,这样像是一个页面的缩小版本,所以说是「小页面」。
\begin{minipage}[position][height][inner-pos]{width}
contents
\end{minipage}
position 控制垂直对齐
c
:默认选项,垂直中心与相邻文本行中心对齐。t
:将 minipage
顶行的基线和相邻文本的基线对齐,类似于\vtop
b
:将 minipage
底部的基线和相邻文本的基线对齐,类似于\vbox
inner-pos 控制文本内容在盒子内的放置方式,它默认和 position 的值一样。不难发现,当它在 height 选项设置的高度大于本身的高度才有意义。
c
:放置在中心。t
:放置在顶部。b
:放置在底部。s
:将内容垂直伸出。
非常感谢你的例子,尤其是fbox,真的非常直观展示了inner-positon的改变,导致内容在盒子中上下移动。厉害!