Jak mogę utworzyć pole tekstowe dla notatki w przecenach?

86

Piszę dokument w przecenie. Używam wspaniałego pandoc do tworzenia plików docx i tex ze źródła Markdown. Chciałbym mieć pole tekstowe na wskazówki i uwagi dla czytelników, tak jak często robią to książki o programowaniu. Nie mogę wymyślić, jak to zrobić w ramach przeceny. Możesz pomóc?

TJB
źródło
Firma Microsoft używa do tego własnej składni w swojej dokumentacji, ale prawdopodobnie nie zadziała w Twoim środowisku. Zawarte tutaj dla kompletności i porównania z odpowiedziami poniżej. github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/…
brianary

Odpowiedzi:

95

To, co zwykle robię, aby umieścić pole ostrzegawcze (np. Uwaga lub Ostrzeżenie) w tekstach przecen (nie tylko podczas używania pandoc, ale także wszędzie tam, gdzie ta przecena jest obsługiwana), to otaczanie treści dwoma poziomymi liniami:

---
**NOTE**

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

---

co wyglądałoby mniej więcej tak:


UWAGA

Działa ze wszystkimi smakami przecen (poniższy pusty wiersz ma znaczenie).


Dobrą rzeczą jest to, że nie musisz się martwić o to, który wariant przeceny jest obsługiwany lub które rozszerzenie jest zainstalowane lub włączone.

EDYCJA : Jak @ filups21 wspomniał w komentarzach, wydaje się, że pozioma linia jest reprezentowana przez ***w RMarkdown. Tak więc rozwiązanie wspomniane wcześniej nie działa ze wszystkimi smakami przecen, jak pierwotnie twierdzono.

rysownik
źródło
4
Jest to przydatne, ale nie działa z RMarkdown / Rstduio / Knitr
bjw
1
bjw - pozioma linia w rmarkdown jest ***poprzedzona pustą linią. Alternatywnie możesz umieścić notatkę w cytacie blokowym, rozpoczynając wiersz od >(również poprzedzony pustą linią).
filups 21
80

W przypadku GitHub zwykle wstawiam cytat blokowy.

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

staje się...

UWAGA: treść notatki.

Oczywiście zawsze jest zwykły HTML ...

Vlad
źródło
@KamilSJaron: co? Nie, nie są. Czy myślisz o blokach kodu?
naught101
@ naught101 Ah, czytałem cytat jako odwrotny cytat. Jednak potrójne cudzysłowy rzeczywiście nie zawijają się.
Kamil S Jaron
3
Wolę to uniwersalne rozwiązanie. Lubię też używać emotikonów Unicode do poprzedzania notatki, na przykład > ℹ️ This is an informationlub > ⚠️ This is a warning.
pierre_loic
1
To i kludge tabeli to jedyne przenośnie odpowiedzi na to pytanie. Twarda reguła kludge proponowany przez górną odpowiedź nie pokazuje okno, a tym samym nie rozwiąże to pytanie. Rzeczywiście, ta odpowiedź w połączeniu z modem ikon Unicode @ pierre_loic w większości replikuje notatki reStructuredText .
Cecil Curry
16

Najprostszym rozwiązaniem tego samego problemu, które znalazłem, jest użycie tabeli wielowierszowej z jednym wierszem i bez nagłówka (w pierwszej kolumnie znajduje się obraz, a w drugiej tekst):

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

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

Innym podejściem, które może zadziałać (dla PDF) jest użycie domyślnej dyrektywy Latex fbox :

 \fbox{My text!}

Lub moduł FancyBox dla bardziej zaawansowanych funkcji (i lepiej wyglądających pudełek): http://www.ctan.org/tex-archive/macros/latex/contrib/fancybox .

Etienne Savard
źródło
1
Czy wiesz, czy możliwe jest zdefiniowanie, jak notatka pandoc-markdown będzie wyglądać w pliku szablonu pandoc? Na przykład edycja ~ / .pandoc / templates / default.latex?
tmaric
11

Użyj rozszerzenia upomnienia . W przypadku mkdocs można to skonfigurować w mkdocs.ymlpliku:

markdown_extensions:
    - admonition

Następnie wstaw notatkę do plików md w następujący sposób:

!!! note

     This is a note.

Zobacz przykład tutaj .

Boni García
źródło
8

Podobnie jak w rozwiązaniu Etienne, prosty stół ładnie formatuje:

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

Inną alternatywą (na którą kładzie się większy nacisk) jest umieszczenie treści jako nagłówka tabeli bez treści:

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

Na koniec możesz dołączyć linię poziomą (podział tematyczny), aby utworzyć zamkniętą ramkę (chociaż styl linii różni się nieco od linii nagłówka w tabeli):

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

---

Zwróć uwagę na pusty wiersz po tekście.

Gordon Bean
źródło
Bardzo podoba mi się to rozwiązanie, ale kiedy konwertuję je przez pandoc i xelatex na pdf, wydaje się, że przeznacza 50% na NOTEkolumnę „ ” i 50% na drugą; można używać tabel wielowierszowych zgodnie ze stackoverflow.com/questions/27219629 - ale są też inne problemy z formatowaniem.
sdbbs
6

Oto prosty przykład oparty na lateksie.

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

Co skutkuje w: wprowadź opis obrazu tutaj

Niestety, ponieważ jest to lateks, nie można już umieszczać przecen w polu TODO (co zwykle nie jest dużym problemem) i nie zadziała przy konwersji do formatów innych niż PDF (np. Html).

naught101
źródło
5

Następujące metody działają na GitHub, na GitLab ... i na Stackoverflow , który teraz używa CommonMark !


> Jednowierszowe pudełko wykonane za pomocą Blockquote

Jednowierszowe pudełko wykonane za pomocą cytatu blokowego


`One-Line Box wykonane z Backticks`

One-Line Box made with Backticks


``
Pudełko wykonane z potrójnymi znakami wstecznymi
''

Box made with Triple Backticks  


~ ~ ~
Pudełko wykonane z Potrójnych Tild
(usuń spacje między tyldami, aby to zadziałało)
~ ~ ~

Box made with Triple Tildes


Pudełko wykonane z czterema spacjami na początku każdej linii:

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


... lub użyj linii poziomych?

Trzy kreski (---) tworzą poziomą linię:


Uwaga : „Twoje skupienie określa Twoją rzeczywistość”. - Qui-Gon Jinn.


Aby uzyskać więcej konfiguracji, zdecydowanie polecam doskonały przewodnik po GitLab Markdown .
Możesz również sprawdzić mniej szczegółową podstawową składnię formatowania GitHub .
Możesz porównać implementacje Markdown za pomocą Babelmark .

Przydatne wskazówki:

  • aby wymusić nowy wiersz, wstaw dwie spacje na końcu linii;

  • aby uniknąć znaków specjalnych, użyj \.

kotchwane
źródło
3

Czy próbowałeś używać podwójnych zakładek? Aby zrobić pudełko:

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

U mnie działa w zwykłym dokumencie Rmarkdown z wyjściem html. Część z podwójnymi zakładkami powinna pojawić się w zaokrąglonym prostokątnym, jasnoszarym polu.

Cho Jay
źródło
Działa również na VS Code i GitHub!
Nagev
To jest blok kodu.
CivFan