如何在todonotes中使用markdown?

如何在todonotes中使用markdown?

我使用 todonotes,尤其是在协调大型项目时。特别是在起草和快速集思广益阶段,我希望能够在 todonotes 中使用 markdown,这样就不必浪费时间嵌套 itemize 等。

遗憾的是,我似乎无法让它工作:我多次尝试将 markdown 环境放入 todonote 中,如下所示

\todo[...]{\begin{markdown}...\end{markdown}}

失败并出现许多错误(大多数似乎是失控参数),听起来像这样:

Argument of ^^M has an extra }.

有什么想法/帮助/指点吗?

麦格维:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{markdown}
\usepackage{todonotes}

\begin{document}

% normal markdown works:
\begin{markdown}
* woah
* bullets
\end{markdown}

% todonotes work
\todo[inline,prepend,caption={WOAH}]{yay}

% todonotes with itemize work
\todo[inline,prepend,caption={WOAH}]{yay
\begin{itemize}
    \item woah
    \item complicated bullets
\end{itemize}
}

% todonotes with markdown break
\todo[inline,prepend,caption={WOAH}]{nay
\begin{markdown}
* woah
* bullets easy
* boom
\end{markdown}
}

\end{document}

答案1

在这种情况下,markdown是一个逐字环境,因此它不能在大多数命令的参数中使用。

https://texfaq.org/FAQ-verbwithin更多细节。

无需更改太多代码即可进行修复cprotect。请注意 周围的额外括号组\todo[inline,prepend,caption={WOAH}]

\documentclass{article}
\usepackage{markdown}
\usepackage{todonotes}
\usepackage{cprotect}

\begin{document}

\cprotect{\todo[inline,prepend,caption={WOAH}]}{nay
\begin{markdown}
* woah
* bullets easy
* boom
\end{markdown}
}

\end{document}

有关解释,请参阅包的文档cprotect

请注意,这\cprotect[om]\todo[inline, ...]{nay ...}不起作用,因为可选参数必须不是受到保护(保护的具体含义相当复杂,请参阅我的答案更多细节。)


或者也可以\todo像这样重新定义

\NewCommandCopy\oldtodo\todo
\outer\def\todo[#1]{\icprotect{\oldtodo[#1]}}
  • 请参阅cprotect文档以了解为何icprotect应使用。
  • \NewCommandCopy是必需的,因为内部\todo使用某种机制来保护它(防止它在仅扩展上下文中被扩展)。

答案2

避免使用 markdown 的另一种方法。并不是说 markdown 是需要避免的,我建议用户202729 的回答,而只是为了展示一些包。

下面将内联 todonotes 显示为tcolorbox。 tcolorbox 内部是一个easylist,它为类似于 markdown 的(嵌套)列表提供了简单的语法。示例中还有一个原始链接、一个带标签的链接和一些代码。

可以通过将 tcolorbox 环境重新定义为包中的注释环境来“禁用”它们verbatim

itemize通过将样式的定义复制easylist到序言中作为默认设置,文档内部列表的语法会简化一些(否则会是\begin{easylist}[itemize])。其他元素(链接和代码)的语法也应该相对简单且输入速度快。

梅威瑟:

\documentclass{article}
\usepackage[at]{easylist}
% set itemize style as default
\ListProperties(Hang=true,Space=4pt,Space*=4pt,Hide=1000,%
Margin1=1.5em,Style1*=\textbullet\hskip .5em,%
Margin2=3.7em,Style2*=--\hskip .5em,%
Margin3=5.9em,Style3*=$\ast$\hskip .5em,%
Margin4=7.8em,Style4*=$\cdot$\hskip .5em)%
\usepackage{tcolorbox}
\usepackage{hyperref}
\usepackage{verbatim} % for switching off tcolorbox
\tcbset{
  colback=red!5!white,
  colframe=red!75!black,
}

% uncomment the next line to disable tcolorbox
%\renewenvironment{tcolorbox}{\comment}{\endcomment}
\begin{document}
Some text

\begin{tcolorbox}[title=WOAH]
\begin{easylist}
@ item 1
@ item2
@@ nested item
@ item3
\end{easylist}
\url{https://tex.stackexchange.com}\\
\href{https://tex.stackexchange.com}{TeX.SE}\\
\verb+return "@#$%^&"+
\end{tcolorbox}

More text
\end{document}

结果:

在此处输入图片描述

相关内容