在另一个主题中我请求一些帮助来建立一个自己的solution
环境以供学生作业表使用。
我们在那里检查了一个布尔值(如果它是解决方案表或仅仅是学生的作业表),如果布尔值返回true
,则打印环境内的答案solution
。(代码在 MWE 内)
由于问题是在enumerate
环境中设置的,因此问题和答案都会缩进。我现在遇到的小问题是解决方案容器 (a tcolorbox
) 比 更宽linewidth
。如果我第二次缩进,它会更大……
我怎样才能将这个环境限制在真实环境中\linewidth
?
以下是 MWE:
\documentclass[12pt]{article}
% %%%
% Packages
% %%%
\usepackage[utf8]{inputenc}
\usepackage[showframe]{geometry}
\geometry{verbose, a4paper, tmargin=3cm, bmargin=3cm, lmargin=2.5cm, rmargin=2.5cm}
\usepackage{lipsum, enumerate, ifthen, tcolorbox}
\tcbuselibrary{breakable}
% %%%
% Variable Settings
% %%%%
\newboolean{solution}
\setboolean{solution}{true}
% %%%
% Environments / Commandy
% %%%%
\newcommand{\Problem}[1]{
{
\vspace*{0.5cm}
\textsf{\textbf{Problem #1}}
\vspace*{0.2cm}
}
}
\newenvironment{solution}
{
\ifthenelse{\boolean{solution}}{
\tcolorbox[breakable, width=\textwidth, colframe=red, colback=white]
}{}
}
{
\ifthenelse{\boolean{solution}}{
\endtcolorbox
\vspace*{-\baselineskip}
}{}
}
% %%%
% Document
% %%%%
\begin{document}
\begin{center}
\LARGE \sf \textbf{MWE}
\end{center}
\vspace*{0.2cm}
\Problem{1: Foo}
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea dictumst.
\begin{solution}
\lipsum[4-5]
\end{solution}
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea dictumst.
\begin{solution}
\lipsum[4-4]
\end{solution}
\end{enumerate}
\end{enumerate}
\end{document}
我使用-packageshowframe
的属性geometry
来显示\linewidth
我的环境的真实位置。很明显,重叠与枚举的缩进完全相同。
非常感谢您的帮助。
答案1
在您的问题中您已经讨论过\linewidth
- 只需使用它来代替\textwidth
:
\documentclass[12pt]{article}
% %%%
% Packages
% %%%
\usepackage[utf8]{inputenc}
\usepackage[showframe]{geometry}
\geometry{verbose, a4paper, tmargin=3cm, bmargin=3cm, lmargin=2.5cm, rmargin=2.5cm}
\usepackage{lipsum, enumerate, ifthen, tcolorbox}
\tcbuselibrary{breakable}
% %%%
% Variable Settings
% %%%%
\newboolean{solution}
\setboolean{solution}{true}
% %%%
% Environments / Commandy
% %%%%
\newcommand{\Problem}[1]{
{
\vspace*{0.5cm}
\textsf{\textbf{Problem #1}}
\vspace*{0.2cm}
}
}
\newenvironment{solution}
{
\ifthenelse{\boolean{solution}}{
\tcolorbox[breakable, width=\linewidth, colframe=red, colback=white]
}{}
}
{
\ifthenelse{\boolean{solution}}{
\endtcolorbox
\vspace*{-\baselineskip}
}{}
}
% %%%
% Document
% %%%%
\begin{document}
\begin{center}
\LARGE \sf \textbf{MWE}
\end{center}
\vspace*{0.2cm}
\Problem{1: Foo}
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea dictumst.
\begin{solution}
\lipsum[4-5]
\end{solution}
\begin{enumerate}
\item Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In hac habitasse platea dictumst.
\begin{solution}
\lipsum[4-4]
\end{solution}
\end{enumerate}
\end{enumerate}
\end{document}