我正在用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)时,它将不起作用。

其他回答

类似于Etienne的解决方案,一个简单的表格格式很好:

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

另一种选择(更强调)是将内容作为无主体表的头:

|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|
|-|-|

最后,你可以添加一条水平线(主题断线)来创建一个封闭的方框(尽管线条样式与表中的标题行略有不同):

| | |
|-|-|
|`NOTE` | This is something I want you to notice. It has a lot of text, and I want that text to wrap within a cell to the right of the `NOTE`, instead of under it.|

---

注意文本后面的空行。

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

----------------------- ------------------------------------
![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。

另一个解决方案是使用CSS邻接并使用h4(或更高):

#### note

This is the note content
h4 {
  display: none; /* hide */
}

h4 + p {
  /* style the note however you want */
}

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

markdown_extensions:
    - admonition

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

!!! note

     This is a note.

这里有一个例子。

我通常在标记文本中放置警告框(例如,注意或警告)(不仅在使用pandoc时,而且在任何支持标记的地方)是用两条水平线围绕内容:

---
**NOTE**

It works with almost all markdown flavours (the below blank line matters).

---

大概是这样的:


NOTE

它适用于所有降价的口味(下面的空白行很重要)。


好消息是你不需要担心哪个降价风味是支持的,或者安装或启用了哪个扩展。

编辑:正如@filups21在评论中提到的,在RMarkdown中,一条水平线似乎是由***表示的。所以,之前提到的解决方案并不像最初声称的那样适用于所有廉价口味。