如何为 r markdown pdf 输出创建自定义示例环境?

How to create a custom example environment for r markdown pdf output?

我希望在 r markdown 中创建一个自定义样式的示例环境来呈现 pdf 输出。

我想要看起来像this or like this的东西,但我仍然希望示例被编号,并且我想使用简单的语法

'''{example} <!-- I use ' instead of ` to make it appear in this question -->
Hello  
'''

贯穿我的文档。这是可以实现的吗?提前致谢!

编辑:我正在添加一个最小的例子

---
header-includes:
   - \newtheorem{theorem}{Theorem}
   - \newtheorem{example}{Example}
urlcolor: blue
extension: latex_macros
numbersections: true
output:
   bookdown::pdf_document2:
      toc: false
biblio-style: apalike
---

'''{example} <!-- I use ' instead of ` to make it appear in this question -->
Hello  
'''

然后我得到这样的东西

但我希望示例具有样式和编号。也许放在一个看起来像这样的块中(图片来自 here,但没有示例编号,我不能只使用 r markdown 块)

你可以像普通的LaTeX一样使用一些包。我给你一个包 thmtoolsmdframed.

的例子
---
output:
  pdf_document: 
    includes:
      in_header: preamble.tex
    keep_tex: yes
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

\begin{example}
    Hello I am an example.
\end{example}

文件preamble.tex:

\usepackage{amsthm,thmtools}
\usepackage{mdframed}

\definecolor{verylightgray}{gray}{0.9}

\declaretheoremstyle[
  headfont=\color{black}\normalfont\bfseries,
  bodyfont=\color{black}\normalfont\sffamily,
  mdframed={
    backgroundcolor=verylightgray, 
    hidealllines=true, 
    innertopmargin=2pt, 
    innerbottommargin=2pt, 
    skipabove=\topsep, 
    skipbelow=\topsep
  }]{mystyle} 

\declaretheorem[
  style=mystyle,
  name=Example
]{example}

需要换行符或上边距...

您可以使用 tcolorbox 作为示例:

---
header-includes: |
   \BeforeBeginEnvironment{document}{
      \usepackage[most]{tcolorbox}
      \let\example\undefined 
      \let\endexample\undefined 
      \newtcolorbox[auto counter]{example}{
        colback=white,
        colbacktitle=black,
        arc=0mm,
        title={Example~\thetcbcounter:},
        bottom=-.7\baselineskip,
        colframe=black,
        fonttitle=\bfseries
   }}
urlcolor: blue
extension: latex_macros
numbersections: true
output:
   bookdown::pdf_document2:
      toc: false
      keep_tex: true
biblio-style: apalike
---

test

```{example} 
Hello  
```