
所以我用的是流行的艾斯沃格爾模板為了我的個人工作。我基本上在 Markdown 中輸入所有內容,然後使用 pandoc 將其轉換為漂亮的 pdf。
使用區塊引號(> text)會產生一個漂亮的條形。然而,我遇到了添加更多樣式選項的願望。假設我不僅想將這些區塊引號用於實際報價,而且還想用於「資訊面板」或「警報面板」。我希望能夠選擇以某種方式在我的 Markdown 文件中給出前綴或自訂 tex 命令,並顯示正確的框。
讓我們說,而不是擁有:> text
這會產生一個好看的灰色盒子,左側有一個破折號,我想要類似的東西,\alert > text
以便盒子被渲染為一些紅色,而不是原始的塊引用顏色。
當然,語法可能看起來完全不同,但我只需要找到一種方法來自訂這個很酷的 pandoc-latex 東西,最好是使用自訂命令。我對編寫純 LaTeX 有點熟悉,但使用 pandoc 速度更快,因為我還在 Markdown 文件中做筆記。
有人有主意嗎?
乾杯
答案1
好吧,看看 eisvogel 模板,它看起來像是在customblockquote
使用 mdframed 套件定義的特殊環境中排版塊引用:參見它的文檔。
您可以使用 yaml 選項定義新的 LaTeX 指令以與 pandoc 一起使用header-includes:
。 (或在命令列標誌中包含的單獨文件中-H
。)我認為一個選擇是使用這樣的命令來重新定義此環境。如果您想恢復正常,則必須將其重新定義回範本定義的方式
---
title: My Document
author: Someone
date: 7 May 2022
header-includes: |
\definecolor{myred}{RGB}{245,20,20}
\newcommand{\normalquote}{
\definecolor{blockquote-text}{RGB}{119,119,119}
\renewmdenv[rightline=false,
bottomline=false,
topline=false,
linewidth=3pt,
linecolor=blockquote-border,
skipabove=\parskip]{customblockquote}
}
\newcommand{\redalert}{
\definecolor{blockquote-text}{RGB}{240,240,240}
\renewmdenv[
linewidth=2pt,
linecolor=black,
leftmargin=10pt,
rightmargin=10pt,
backgroundcolor=myred,
fontcolor=white,
shadow=true,
skipabove=\parskip]{customblockquote}
}
...
This is some regular text.
> This is a regular quote.
\redalert
> This is a *very* red box with a shadow and light text.
\normalquote
> This is a normal blockquote again.
您當然可以根據需要定義任意數量的此類樣式。
如果我對 pandoc 過濾器和模板有更多了解,很可能會有一種更直接的方法,但這可能足以滿足您的目的。
答案2
考慮切換到四開本,這旨在成為 R markdown 的進化飛躍。如果您掛鉤於自訂模板,也許這不是一個好主意(我沒有測試它是否可以在四開本中使用,在進行一些/許多更改之後或根本不使用),但除此之外,四開本包含一些易於使用的預定義「標註」:
來源 (mwe.qmd
):
---
format: pdf
---
## Callouts in Quarto
In Quarto (next generation of R markdown) you can use "callouts"
to show predefined alert boxes. For PDF output, \LaTeX\
`tcolorbox` package is used in the background automatically.
::: callout-note
There are five types of callouts:
`note`, `tip`, `warning`, `caution` and `important`.
:::
::: callout-tip
## Tip with custom caption
This is an example of a tip with custom caption.
:::
::: callout-warning
foo
:::
::: {.callout-caution}
## Take care !
foo
:::
::: callout-important
foo
:::
請注意,在「經典」R markdown 中,您也可以使用自訂區塊產生不同的 LaTeX 環境。例如,一個簡單的tcolorbox
可能是:
::: {.tcolorbox data-latex="[title=Warning]"}
foo
:::
但正如您所看到的,即使對於預設框,語法也有點複雜,並且您負責包含模板中所需的包,或者等等header-includes
,並且製作更複雜的框將需要一些額外的工作(請參閱連結) ,而在四開本中只需鍵入簡單的標註塊。此外,這些區塊不能匯出為其他格式,而 Quarto 的標註可匯出為 HTML 和 DOCX 表格,很好地模仿了 es tcolorbox
。
答案3
由於討論似乎傾向於警告塊,我建議看一下 Awesome Boxes:
https://www.nic.funet.fi/pub/TeX/CTAN/graphics/awesomebox/awesomebox.pdf
易於使用,與 Markdown 和 Pandoc 搭配良好。