居中问题

居中问题

我定义命令

\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 的代码进行一些改进后:

输出2

相关内容