Как создать текстовое поле для заметки в уценке?

86

Пишу документ в уценке. Я использую замечательный pandoc для создания файлов docx и tex из источника уценки. Я хотел бы иметь текстовое поле для советов и заметок читателям, как это часто бывает в книгах по программированию. Не могу понять, как это сделать в уценке. Вы можете помочь?

TJB
источник
Microsoft использует для этого собственный синтаксис в своей документации, но вряд ли он будет работать в вашей среде. Включено сюда для полноты и сравнения с ответами ниже. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
brianary

Ответы:

95

То, что я обычно делаю для размещения окна предупреждения (например, примечания или предупреждения) в текстах уценки (не только при использовании pandoc, но и везде, где эта уценка поддерживается), заключается в окружении содержимого двумя горизонтальными линиями:

---
**NOTE**

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

---

что будет примерно так:


НОТА

Он работает со всеми видами уценки (имеет значение пустая строка ниже).


Хорошо то, что вам не нужно беспокоиться о том, какой вариант уценки поддерживается или какое расширение установлено или включено.

РЕДАКТИРОВАТЬ : как @ filups21 упомянул в комментариях, кажется, что горизонтальная линия представлена ***в RMarkdown. Таким образом, упомянутое ранее решение не работает со всеми вариантами уценки, как было заявлено изначально.

карикатурист
источник
4
Это полезно, но не работает с RMarkdown / Rstduio / Knitr
bjw
1
bjw - горизонтальной строке в rmarkdown ***предшествует пустая строка. Кроме того, вы можете поместить заметку в цитату, начав строку с >(также предшествующей пустой строкой).
filups21
80

В GitHub я обычно вставляю цитату.

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

становится ...

ПРИМЕЧАНИЕ: содержание заметки.

Конечно, всегда есть простой HTML ...

Влад
источник
@KamilSJaron: а? Нет, это не так. Вы думаете о блоках кода?
naught101
@ naught101 А, я читал цитату как обратную. Однако тройные обратные кавычки действительно не являются переносом.
Kamil S Jaron
3
Я предпочитаю это универсальное решение. Мне также нравится использовать смайлы Unicode для добавления к заметке префикса, например > ℹ️ This is an informationили > ⚠️ This is a warning.
pierre_loic
1
Этот и табличный кладж - единственные ответы, позволяющие переносить этот вопрос. Жесткое правило ляп , предложенный верхний ответ не показывает коробку и , таким образом , не в состоянии решить этот вопрос. Действительно, этот ответ в сочетании с модом значков Unicode @ pierre_loic в основном копирует заметки reStructuredText .
Сесил Карри,
16

Самое простое решение, которое я нашел для той же проблемы, - использовать многострочную таблицу с одной строкой и без заголовка (в первом столбце есть изображение, а во втором - текст):

----------------------- ------------------------------------
![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), - использовать директиву fbox по умолчанию для латекса :

 \fbox{My text!}

Или модуль FancyBox для более продвинутых функций (и более привлекательных коробок): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox .

Этьен Савар
источник
1
Знаете ли вы, можно ли определить, как заметка pandoc-markdown будет выглядеть внутри файла шаблона pandoc? Например, редактирование ~ / .pandoc / templates / default.latex?
tmaric
11

Используйте расширение admonition . Для mkdocs это можно настроить в mkdocs.ymlфайле:

markdown_extensions:
    - admonition

Затем вставьте заметку в свои файлы MD следующим образом:

!!! note

     This is a note.

См. Пример здесь .

Бони Гарсия
источник
8

Подобно решению Этьена, простая таблица прекрасно форматируется:

| | |
|-|-|
|`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.|

---

Обратите внимание на пустую строку после текста.

Гордон Бин
источник
Мне очень нравится это решение, но когда я конвертирую его через pandoc и xelatex в pdf, кажется, что оно выделяет 50% для NOTEстолбца " " и 50% для другого; можно использовать многострочные таблицы согласно stackoverflow.com/questions/27219629, но тогда возникают другие проблемы с форматированием.
sdbbs,
6

Вот простой пример на основе латекса.

---
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

что приводит к: введите описание изображения здесь

К сожалению, поскольку это латекс, вы больше не можете включать разметку в поле TODO (что обычно не является большой проблемой), и он не будет работать при преобразовании в форматы, отличные от PDF (например, html).

ничто101
источник
5

Следующие методы работают на GitHub, GitLab ... и Stackoverflow , который теперь использует CommonMark !


> Однострочная коробка, созданная с помощью Blockquote

Однострочная коробка, созданная с помощью Blockquote


`Однострочная коробка с обратными кавычками`

One-Line Box made with Backticks


``
Коробка с тройными обратными кавычками
''

Box made with Triple Backticks  


~ ~ ~
Коробка с тройными тильдами
(удалите пробелы между тильдами, чтобы это работало)
~ ~ ~

Box made with Triple Tildes


Коробка с четырьмя пробелами в начале каждой строки:

    “Sometimes we must let go of our pride and do what is requested of us.”
    Padmé Amidala


... или использовать горизонтальные линии?

Три черточки (---) образуют горизонтальную линию:


Примечание : «Ваше внимание определяет вашу реальность». - Куай-Гон Джинн.


Для получения дополнительных конфигураций я настоятельно рекомендую отличный GitLab Markdown Guide .
Вы также можете проверить менее подробный синтаксис базового форматирования GitHub .
Вы можете сравнить реализации Markdown с помощью Babelmark .

Полезные советы:

  • чтобы принудительно перейти на новую строку, поставьте два пробела в конце строки;

  • чтобы избежать специальных символов, используйте \.

Котчване
источник
3

Вы пробовали использовать двойные вкладки? Чтобы сделать коробку:

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

У меня это работает в обычном документе Rmarkdown с выводом html. Часть с двумя вкладками должна появиться в прямоугольной светло-серой рамке со скругленными углами.

Чо Джей
источник
Также работает с VS Code и GitHub!
Нагев
Это блок кода.
CivFan