25 minipage后面的可选参数,其功能原理是什么?通俗易懂一些.

发布于 2024-08-06 00:00:21

`CFF21F7900341B512F7A1D70F5C6CDCD.png

\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)吗?

查看更多

关注者
0
被浏览
972
Sagittarius Rover
Sagittarius Rover 2024-08-06
我要成为TikZ糕手/(ㄒoㄒ)/~~

诚如@u38442 的解释,我又尝试了一下,下面是测试的结果.

按我个人理解,minipage环境的作用是用来对齐文字环境内的「小页面」,因此默认是按照baseline居中对齐的,你想要实现和控制的是多个minipage之间的垂直对齐关系,而minipage会根据内容自动设置高度,例如下图,自动匹配的高度不统一导致了你的问题.

image.png

可以尝试指定可选的 [height] 参数来实现.
下面是一个MWE和效果.

image.png

\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语法学习对你来说仍然任重而道远.
image.png
(p.s.上面的{ctexart}花括号打错了,但我懒得再截图...)

另:对于设置对齐方式这种较为精细化的需求,GPT等大模型不一定(往往不能)可以提供准确的解答,更好的办法(几乎也是唯一的办法)是阅读宏包的文档.可以搜索一下texdoc <package name>命令,当然如果你是在overleaf上使用的话,可以尝试检索CTAN+<package name>.但其实对于精细需求我个人是不建议使用大模型帮助的,"GPT不懂LaTeX".

祝好!

3 个回答
Thallo
Thallo 2024-08-06
这家伙不懒,但还是什么也没写

minipage 提供三个可选参数,将文本内容放入一个宽width的盒子当中,这样像是一个页面的缩小版本,所以说是「小页面」。

\begin{minipage}[position][height][inner-pos]{width}
  contents
\end{minipage}
  1. width 给出框的宽度,使用的是刚性长度。
  2. position 控制垂直对齐

    • c:默认选项,垂直中心与相邻文本行中心对齐。
    • t:将 minipage 顶行的基线和相邻文本的基线对齐,类似于\vtop
    • b:将 minipage 底部的基线和相邻文本的基线对齐,类似于\vbox
  3. height 给出框的高度,也是使用刚性长度。
  4. inner-pos 控制文本内容在盒子内的放置方式,它默认和 position 的值一样。不难发现,当它在 height 选项设置的高度大于本身的高度才有意义。

    • c:放置在中心。
    • t:放置在顶部。
    • b:放置在底部。
    • s:将内容垂直伸出。
时珍
时珍 2024-08-07
面对困难的勇气!

另外小疑问,
1,begin{minipage}[t]{0.32textwidth}中t指的是position,而不是inner-pos吧?
2,你的例子中,好像position一律选c,即没有展示position变化带来的效果区别?仅有InnerPostion的区别.
3,markdown我正搜学习视频,结果搜到了一个叫typst的东西,它说要取代latex,突然无语了,又要换。我最近学一下markdown.

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览