乳胶盒的问题

乳胶盒的问题

我定义了一个新命令,用于创建一个带有标题的空框。代码如下:

  \newcommand{\mybox}[2]{
\textbf{\emph{#1}}
\vspace{2mm}
{\centering\fbox{
        \begin{minipage}{\textwidth}
            \hfill\vspace{#2}
        \end{minipage}
}   }
}

问题是,当我使用完全相同的代码而不使用我定义的新命令时,输出正是我所期望的 - 一个粗体斜体标题,下面是一个空白框。

但是,当我使用新命令时,例如,\mybox{Title}{1in}框就在标题旁边!这很令人困惑!

我将非常感激您的帮助,提前谢谢您!

答案1

我认为我无法真正解释技术原因,但\par在标题后面添加了一个。

minipage您还需要将的宽度设置为\dimexpr\textwidth-2\fboxsep。这是因为\fbox在框架和内容之间插入了一些空间。最后,您需要%在某些行的末尾添加一些,以避免出现虚假的空格,例如%行末百分号 ( ) 有什么用?%为什么宏定义中有行尾?需要添加哪些位置来%删除不需要的空格?

\documentclass[12pt]{article}
\usepackage{showframe}
\newcommand{\mybox}[2]{%
\textbf{\emph{#1}}\par
\vspace{2mm}
{\centering\fbox{%
        \begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule\relax}
            \hfill\vspace{#2}
        \end{minipage}%
}}%
}
\begin{document}

\mybox{Title}{1in}

\end{document}

在此处输入图片描述

相关内容