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

时间:2019-10-02 05:30:23

标签: bookdown

我正在使用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。

1 个答案:

答案 0 :(得分:1)

标准块是环境,但是它们是在自定义序言之后 定义的。使用# CSV of news articles, with authors, articles, and comments df = pd.read_csv('articles.csv') # Counts per author art_count = df['AUTHOR'].value_counts() # Calculate # of comments per article def comment_sum(df, channel, channel_name, target): # ex) sum(df[df['AUTHOR'] == 'NYTIMES']['COMMENTS']) return sum(df[df[channel] == channel_name][target]) # Calculate # of comments com_count = [] for newspaper in art_count.index: com_count.append(comment_sum(df,'AUTHOR',newspaper,'COMMENTS')) ,您可以将自己的更改移到该定义之外:

\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对于分析这样的事情很有帮助。
  • 这些环境是使用LaTeX软件包keep_tex: yes创建的。它可能会提供更方便的自定义挂钩。