\noindent
\colorbox{gray!25}{
\begin{minipage}{\textwidth}
\vskip0.5cm
\leftskip0.5cm
\rightskip0.5cm
Text Here!
\\\end{minipage}}
上面的代码运行良好,但我不想每次想要一个框时都重复它。然而,下面的代码不起作用。我想是因为彩盒从“开始”开始新环境并以“结束”结尾。那么,我该如何解决这个问题?
\newenvironment{gbox}
{
\noindent
\colorbox{gray!25}{
\begin{minipage}{\textwidth}
\vskip0.5cm
\leftskip0.5cm
\rightskip0.5cm
}
{
\\\end{minipage}}
}
答案1
对于这样的工作,最好使用tcolorbox
或。但是,这是可行的。我曾使用过包。mdframed
environ
\documentclass[draft]{article}
\usepackage{xcolor,lipsum,environ}
\begin{document}
\NewEnviron{gbox}{%
\noindent\fboxsep=0pt
\colorbox{gray!25}{%
\begin{minipage}{\textwidth}%
\vskip.5cm
\leftskip.5cm
\rightskip0.5cm
\BODY
\end{minipage}}%
}
\begin{gbox}
\lipsum[1]
\end{gbox}
\end{document}
示例如下tcolorbox
:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[colback=red!5!white,colframe=red!5!white]
\lipsum[1]
\end{tcolorbox}
\end{document}
事情可能会变得更加精彩。详情:texdoc tcolorbox
或texdoc.net
答案2
这是一个避免加载tcolorbox
包而是使用lrbox
环境的解决方案。
\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\newsavebox{\mybox}
\newenvironment{gbox}
{\begin{lrbox}{\mybox}
\begin{minipage}{\dimexpr\linewidth-1cm}
}{\end{minipage}%%
\end{lrbox}%%
\noindent
\bgroup
\setlength{\fboxsep}{0.5cm}%%
\colorbox{gray!25}{\usebox{\mybox}}%%
\egroup
}
\pagestyle{empty}
\begin{document}
\begin{gbox}
\lipsum[1]
\end{gbox}
\end{document}