使用 todonotes 突出显示定理环境

使用 todonotes 突出显示定理环境

我正在尝试利用 来突出显示类似定理的环境(使用 定义amsthmtodonotes

我在序言中说过:

\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

它对我有用,相反框架(因为我的文件中有一些先前的定义)。

相关内容