我定义了一个新命令,用于创建一个带有标题的空框。代码如下:
\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}