我正在尝试利用 来突出显示类似定理的环境(使用 定义amsthm
)todonotes
。
我在序言中说过:
\newtheorem{que}{Question}
\newcommand*{\question}[1]{%
\todo[inline,color=red!10,caption={}]{\begin{que}
#1
\end{que}
}}
问题是,在身体里,当有类似的东西时:
\question{\lipsum[10]}
其结果是:
我尝试定义theoremstyle
如下:
\newtheoremstyle{queSty}%
{-1em} % Space above
{0pt} % Space below
{} % body font
{} % Indent amount
{} % Theorem head font
{:} % Punctuation after theorem head
{.5em} % Space after theorem head
{} % Theorem head spec
使用这种样式会产生以下框:
这更好,但仍然不够好。40pt
例如,将第一个参数设置为确实会增加这个垂直间距,但我无法让它消失。
如何去掉框开头的空行?我希望与底部的间距相同。
我想我可以调整提供的解决方案这里例如,但我想尝试使用todonotes
。
答案1
正如 egreg 所说,todonotes
这确实是不适合这项工作的工具。如果您使用该包,您可以获得完全相同的结果mdframed
,并且当您这样做时,行距会完美地发挥作用。以下是“之前”和“之后”的比较——第一次使用todonotes
和第二次使用mdframed
。
以下是生成该代码的代码。
\documentclass{article}
\usepackage{amsmath}
\usepackage{todonotes}
\usepackage{lipsum}
\usepackage[framemethod=tikz]{mdframed}
\begin{document}
\newtheorem{que}{Question}
\newcommand*{\question}[1]{\todo[inline,color=red!10,caption={}]{\begin{que}#1\end{que}}}
\newmdtheoremenv[%
backgroundcolor=red!10,%
outerlinecolor=black,%
innertopmargin = \topskip,%
splittopskip = \topskip,%
ntheorem = true,%
skipabove = \baselineskip,%
skipbelow = \baselineskip,%
roundcorner=4]
{Que}{Question}
\lipsum[2]
\question{\lipsum[2]}
\lipsum[2]
\begin{Que}
\lipsum[2]
\end{Que}
\lipsum[2]
\end{document}
答案2
另一种解决方案是使用彩色盒子在此线程中给出(答案 nb 32):https://tex.stackexchange.com/a/204888
它对我有用,相反框架(因为我的文件中有一些先前的定义)。