如何在LaTeX / PDF中重新定义标准书本“定理环境”?

问题描述 投票:0回答:1

我正在使用bookdown,并希望通过例如添加一些轻微的背景阴影来更清楚地区分PDF版本中的标准“示例”和“定义” environments(例如)。

我该怎么做?我什至找不到这些环境的定义位置(例如preamble.tex中没有定义)。

Yihui的书says

“如果您是LaTeX或HTML专家,则可能需要自定义无论如何,这些环境的风格(请参见第4章)。 “

这意味着有可能。我已经阅读了该部分,但是我仍然在努力(因此而发):显然我不是专家!

例如,为了测试我想做的事是否可行,我尝试了一些非常简单的开始;我将此添加到preamble.tex

\makeatletter
\renewenvironment{example}
               {\begin{quote}}
               {\end{quote}}
\makeatother

LaTeX编译报告:

! LaTeX Error: Environment example undefined.

所以也许根本不是一个标准环境。确实,这本书暗示它可能是一个定理。但是我不知道如何重新定义一个定理...

因此,有一种方法可以为PDF输出重新定义这些标准块(如果可以,如何重新定义?)>

P

我正在使用书本,并且希望通过例如添加一些细微的……]来更清楚地区分PDF版本中的标准“示例”和“定义”环境(例如)。

标准块是环境,但是它们是在您的自定义序言中定义的。使用\AtBeginDocument,您可以将自己的更改移到该定义之外:

--- output: bookdown::pdf_document2: keep_tex: yes header-includes: - \AtBeginDocument{\renewenvironment{example}{\begin{quote}}{\end{quote}}} --- # Some section ```{example} Here is my example. ``` ```{definition} Here is my definition. ```

注意:

我正在使用header-includes而不是preamble.tex,但这没关系。

    keep_tex: yes对于分析这样的事情非常有用。
  • 这些环境是使用LaTeX软件包amsthm创建的。它可能会提供更方便的自定义挂钩。
bookdown
1个回答
0
投票
标准块是环境,但是它们是在您的自定义序言中定义的。使用\AtBeginDocument,您可以将自己的更改移到该定义之外:
© www.soinside.com 2019 - 2024. All rights reserved.