我正在为我的主程序解决一些练习。我将问题和答案放在 中theorem environment
。我还想将问题放在灰色框中。问题是灰色框的位置不太好,如下图所示。
关于灰色框,我想要的是灰色框内的第二行从下面开始练习 1.我的代码是
\documentclass[a4paper,11pt]{article}
\usepackage{kerkis}
\usepackage{amsmath}
\usepackage{xcolor}
\newcommand*{\mybox}[2]{\colorbox{#1!30}{\parbox{.98\linewidth}{#2}}}
\newtheorem{exe}{Exercise}
\begin{document}
\begin{exe}\mybox{gray}{Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla Bla bla bla }
\end{exe}
\end{document}
对此有什么想法吗?
答案1
这是一个可能的解决方案,使得环境甚至允许分页符(请随意进行最适合您需求的调整):
\documentclass{article}
\usepackage{amsthm}
\usepackage{xcolor}
\usepackage{mdframed}
\usepackage{thmtools}
\usepackage{lipsum}
\declaretheoremstyle[
headpunct=,
headformat={\hspace*{-10pt}\colorbox{white}{\hspace*{6pt}\NAME~\NUMBER.}},
preheadhook={\begin{mdframed}[%
backgroundcolor=gray!60,
hidealllines=true,
innertopmargin=0pt,
skipabove=\topsep,skipbelow=\topsep]},
prefoothook=\end{mdframed}
]{mystyle}
\declaretheorem[style=mystyle,name=Exercise]{exe}
\begin{document}
\lipsum[4]
\begin{exe}
\lipsum[4]
\end{exe}
\lipsum[4]
\end{document}
答案2
这就是你所想的吗?
\documentclass[a4paper,11pt]{article}
\usepackage{kerkis}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{lipsum} % for mock text
\newtheorem{exeX}{Exercise}
\newsavebox{\exebox}
\newenvironment{exe}[1]
{\newcommand{\execolor}{#1}%
\begin{exeX}\mbox{}\\*[3pt]
\begin{lrbox}{\exebox}
\begin{minipage}{\dimexpr\linewidth-2\fboxsep\relax}}
{\end{minipage}\end{lrbox}\colorbox{\execolor}{\usebox{\exebox}}\end{exeX}}
\begin{document}
\begin{exe}{red}
\lipsum*[2]
\end{exe}
\end{document}
和内部定理环境minipage
,以及避免在环境内部lrbox
陈述的需要;颜色应该指定为的参数。\mybox
exe
exe
请注意,minipage
宽度是经过计算的,以便正确填充线宽。