使用 \newcommand 中的 minipage 环境

使用 \newcommand 中的 minipage 环境

我想将minipage环境放在里面newcommand以避免输入。

\documentclass[aspectratio=169]{beamer}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[nomessages]{fp}

\newcommand{\MYfigure}[4]{
    \begin{figure}
        \centering
        \includegraphics[width=#1\textwidth]{images/#2}
        \caption{#4 #3}
    \end{figure}
}

\newcommand{\MYminipage}[3]{
    \begin{minipage}{(#1-0.3)*\textwidth}
        #2
    \end{minipage}
    \begin{minipage}{(1-#1-0.3)*\textwidth}
        #3
    \end{minipage}
}

\begin{document}
\begin{frame}
    \MYminipage{0.5}{\MYfigure{1}{imagename.jpg}{text}{text}}{\MYfigure{1}{imagename.jpg}{text}{text}}
\end{frame}
\end{document}

对于imagename.jpg文件夹中的任何图像,images都可以使用 。我认为问题在于小页面宽度的计算(例如(1-#1-0.3)*\textwidth)。这就是我已经尝试使用 的原因\usepackage[nomessages]{fp}

编辑:澄清需要什么:我想要这个,但带有宏\MYminipage

\documentclass[aspectratio=169]{beamer}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}

    \usepackage[nomessages]{fp}

        \newcommand{\MYfigure}[4]{
            \begin{figure}
                \centering
                \includegraphics[width=#1\textwidth]{images/#2}
                \caption{#4 #3}
            \end{figure}
        }

        %\newcommand{\MYminipage}[3]{
        %    \begin{minipage}{\dimexpr#1\textwidth-.3\textwidth\relax}
    %        #2
    %    \end{minipage}
    %    \begin{minipage}{\dimexpr\textwidth-#1\textwidth-.3\textwidth\relax}
    %        #3
    %    \end{minipage}
    %}

    \begin{document}
    \begin{frame}
        \begin{minipage}{.47 \textwidth}
        \MYfigure{1}{imagename.jpg}{text}{text}
        \end{minipage}
        \begin{minipage}{.47 \textwidth}
        \MYfigure{1}{imagename.jpg}{text}{text}
        \end{minipage}
    \end{frame}
    \end{document

Ulrich Diez 建议的代码是:

\documentclass[aspectratio=169]{beamer}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\usepackage[nomessages]{fp}

\newcommand{\MYfigure}[4]{%%%
    \begin{figure}%%%
        \centering
        \includegraphics[width=#1\textwidth]{images/#2}%%%
        \caption{#4 #3}%%%
    \end{figure}%%%
}%%%

\newcommand{\MYminipage}[3]{%%%
    \begin{minipage}{\dimexpr#1\textwidth-.3\textwidth\relax}%%
        #2%%%
    \end{minipage}%%%
    \begin{minipage}{\dimexpr\textwidth-#1\textwidth-.3\textwidth\relax}%%%
        #3%%%
    \end{minipage}%%%
}%%%

\begin{document}
\begin{frame}%%%
    \MYminipage{0.5}{\MYfigure{1}{imagename.jpg}{text}{text}}{\MYfigure{1}{imagename.jpg}{text}{text}}%%%
\end{frame}
\end{document}

并产生:在此处输入图片描述

但我想要的是:

在此处输入图片描述

答案1

\documentclass[aspectratio=169]{beamer}
\newcommand{\MYfigure}[4][]{%
  \begin{figure}
        \centering
        \includegraphics[#1]{images/#2}
        \ifx\relax#3\relax \else\caption[#4]{#3}\fi
  \end{figure}%
}

\begin{document}
\setbeamertemplate{navigation symbols}{}
\begin{frame}[plain]
\begin{minipage}{.47 \textwidth}
    \MYfigure[height=\textheight,width=\linewidth]{tiger}{}{}
\end{minipage}\hfill
\begin{minipage}{.47 \textwidth}
    \MYfigure[height=\textheight,width=\linewidth]{tiger}{}{}
\end{minipage}
\end{frame}
\end{document}

也许您还需要keepaspectratio图像的参数。这取决于图像的大小。

在此处输入图片描述

相关内容