我定义命令
\newcommand{\rec}[2]{\begin{center}
{\fboxsep 8pt
\fcolorbox{RoyalBlue4}{LightYellow2}{
\begin{minipage}[t]{15cm}
\textcolor{RoyalBlue4}{\large{\textsf{\bf #1}}}\\
#2
\end{minipage}}}
\end{center}}
但是当我使用它与居中失败时,例如,如果我输入
\rec{a}{\begin{center}
b
\end{center}}
这里没有问题,但是当我输入
\rec{\begin{center}
a
\end{center}}{b}
失败了。你能告诉我问题出在哪里吗?
答案1
有问题\\
,但您确实想要\par
它。
\documentclass{article}
\usepackage[svgnames,dvipsnames]{xcolor}
\newcommand{\rec}[2]{\begin{center}
\setlength{\fboxsep}{8pt}%
\fcolorbox{RoyalBlue}{LightYellow}{%
\begin{minipage}[t]{15cm}
\textcolor{RoyalBlue}{\large\sffamily\bfseries #1}\par
#2
\end{minipage}%
}
\end{center}%
}
\begin{document}
\rec{a}{\begin{center}b\end{center}}
\rec{\begin{center}a\end{center}}{b}
\end{document}
我改变了颜色,因为我不知道你的颜色是如何定义的。
请注意,这\large
不带参数,这\bf
是一个过时的命令(您可能注意到了,您没有获得无衬线字体)。
答案2
在第二种情况下,错误信息是“这里没有可以结束的行”,这意味着您处于vertical mode
。
尝试:
\documentclass{article}
\usepackage[x11names]{xcolor}
\newcommand{\rec}[2]{\begin{center}
{\fboxsep 8pt
\fcolorbox{RoyalBlue4}{LightYellow2}{
\begin{minipage}[t]{15cm}
%\textcolor{RoyalBlue4}{\large{\textsf{\bf #1}}}%
{\color{RoyalBlue4}\large\bfseries\textsf{#1}}%
\ifhmode\expandafter\\\fi
#2
\end{minipage}}}
\end{center}}
\begin{document}
\rec{a}{\begin{center}
b
\end{center}}
\rec{\begin{center}
a
\end{center}}{b}
\end{document}
对 OP 的代码进行一些改进后: