我正在用markdown写文档。我正在使用神奇的pandoc从markdown源创建docx和tex文件。我想有一个文本框提示和注释的读者编程书籍经常做的方式。我不知道如何做到这一点在markdown。你能帮忙吗?


当前回答

这是一个简单的基于乳胶的例子。

---
header-includes:
    - \usepackage[most]{tcolorbox}
    - \definecolor{light-yellow}{rgb}{1, 0.95, 0.7}
    - \newtcolorbox{myquote}{colback=light-yellow,grow to right by=-10mm,grow to left by=-10mm, boxrule=0pt,boxsep=0pt,breakable}
    - \newcommand{\todo}[1]{\begin{myquote} \textbf{TODO:} \emph{#1} \end{myquote}}
---

blah blah

\todo{something}

blah

结果是:

不幸的是,因为这是latex,所以你不能再在TODO框中包含markdown(通常这不是一个大问题),并且当转换为PDF以外的格式(例如html)时,它将不起作用。

其他回答

对于同样的问题,我发现的最简单的解决方案是使用一个多行表,只有一行,没有标题(第一列是图像,第二列是文本):

----------------------- ------------------------------------
![Tip](images/tip.png)\ Table multiline text bla bla bla bla
                        bla bla bla bla bla bla bla ... the
                        blank line below is important 

----------------------------------------------------------------

另一种可能工作(PDF)的方法是使用Latex默认的fbox指令:

 \fbox{My text!}

或FancyBox模块获得更高级的功能(和更好看的盒子):http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox。

使用警告扩展。对于mkdocs,可以在mkdocs中配置。yml文件:

markdown_extensions:
    - admonition

然后在md文件中插入注释,如下所示:

!!! note

     This is a note.

这里有一个例子。

使用GitHub,我通常会插入一个blockquote。

> **_NOTE:_**  The note content.

变得……

注:说明内容。

当然,总有简单的HTML…

你试过使用双标签吗?做一个盒子:

Start on a fresh line
Hit tab twice, type up the content
Your content should appear in a box

它在带有html输出的常规Rmarkdown文档中为我工作。双选项卡部分应该出现在一个圆角矩形浅灰色框中。

你也可以使用https://www.npmjs.com/package/markdown-it-container

::: warning
*here be dragons*
:::

然后渲染为:

<div class="warning">
<em>here be dragons</em>
</div>