簡體   English   中英

定理環境在蒸餾中不渲染或交叉引用

[英]Theorem environment not rendering or cross-referencing in distill

我正在嘗試寫一篇distill::distill_article博客文章,它需要使用 LaTeX 數學環境,例如定理、引理、證明等。

我已嘗試遵循這些說明以及這些說明,但無論使用LaTeX塊還是 rmarkdown 塊,我都無法呈現theorem環境。

我還注意到在bookdown中專門使用distill::distill_article提出了類似的問題 此修復程序也不起作用。 請注意,我的用例是在 distill::distill_article 中使用 bookdown 定理環境,而不是相反。

這是該問題的代表:

---
title: "Test Title"
description: |
  Test description
author: Test author
date: 2021-12-31
output:
  distill::distill_article:
    self_contained: false
---


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

# TL;DR;

Trying to ensure that theorem environments are working in 
`distill::distill_article`.

# Main theorems

With the definitional background established, let's move onto the
main theorem of this article.

\begin{align} 
g(X_{n}) &= g(\theta)+g'({\tilde{\theta}})(X_{n}-\theta) \notag \\
\sqrt{n}[g(X_{n})-g(\theta)] &= g'\left({\tilde{\theta}}\right)
  \sqrt{n}[X_{n}-\theta ] (\#eq:align)
\end{align} 

<!-- # This  does not work, i.e., render in html -->
\begin{theorem}[Delta Method]\label{nthm:deltamethod}
g(X_{n}) &= g(\theta)+g'({\tilde{\theta}})(X_{n}-\theta) \notag \\
\sqrt{n}[g(X_{n})-g(\theta)] &= g'\left({\tilde{\theta}}\right)
  \sqrt{n}[X_{n}-\theta ] (\#eq:align)
\end{theorem} 

<!-- # This reference does not work, i.e., is not recognized -->
We have a labeled and named theorem below, and \@ref(nthm:deltamethod).

<!-- # This  does not work either, i.e., render in html -->
::: {.theorem #pythagoras name="Pythagorean theorem"}
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have

$$a^2 + b^2 = c^2$$
:::

<!-- # This reference does not work either, i.e., is not recognized -->
We have a labeled and named theorem below, and \@ref(thm:pythagoras).

請注意,我在bookdown中加載了 bookdown,目的是呈現定理環境。 但是它不起作用,即不呈現定理或交叉引用。 有人可以幫忙解決這個問題嗎?

Session 信息

 ─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── setting value version R version 4.1.2 (2021-11-01) os macOS Monterey 12.0.1 system x86_64, darwin17.0 ui RStudio language (EN) collate en_US.UTF-8 ctype en_US.UTF-8 tz America/New_York date 2022-01-02 ─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── package * version date lib source assertthat 0.2.1 2019-03-21 [1] standard (@0.2.1) backports 1.2.1 2020-12-09 [1] standard (@1.2.1) bookdown * 0.24 2021-09-02 [1] CRAN (R 4.1.0) broom 0.7.10 2021-10-31 [1] CRAN (R 4.1.0) cachem 1.0.5 2021-05-15 [1] standard (@1.0.5) cellranger 1.1.0 2016-07-27 [1] standard (@1.1.0) cli 3.1.0 2021-10-27 [1] CRAN (R 4.1.0) clipr 0.7.1 2020-10-08 [1] standard (@0.7.1) colorspace 2.0-2 2021-06-24 [1] standard (@2.0-2) crayon 1.4.1 2021-02-08 [1] standard (@1.4.1) DBI 1.1.1 2021-01-15 [1] standard (@1.1.1) dbplyr 2.1.1 2021-04-06 [1] standard (@2.1.1) desc 1.4.0 2021-09-28 [1] CRAN (R 4.1.0) details 0.2.1 2020-01-12 [1] CRAN (R 4.1.0) digest 0.6.27 2020-10-24 [1] standard (@0.6.27) distill 1.3 2021-10-13 [1] CRAN (R 4.1.0) downlit 0.4.0 2021-10-29 [1] CRAN (R 4.1.0) dplyr * 1.0.7 2021-06-18 [1] standard (@1.0.7) ellipsis 0.3.2 2021-04-29 [1] standard (@0.3.2) evaluate 0.14 2019-05-28 [1] standard (@0.14) fansi 0.5.0 2021-05-25 [1] standard (@0.5.0) fastmap 1.1.0 2021-01-25 [1] standard (@1.1.0) forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.0) fs 1.5.2 2021-12-08 [1] CRAN (R 4.1.0) generics 0.1.0 2020-10-31 [1] standard (@0.1.0) ggplot2 * 3.3.5 2021-06-25 [1] standard (@3.3.5) glue 1.4.2 2020-08-27 [1] standard (@1.4.2) gtable 0.3.0 2019-03-25 [1] standard (@0.3.0) haven 2.4.1 2021-04-23 [1] standard (@2.4.1) hms 1.1.0 2021-05-17 [1] standard (@1.1.0) htmltools 0.5.1.1 2021-01-22 [1] standard (@0.5.1.1) httr 1.4.2 2020-07-20 [1] standard (@1.4.2) jsonlite 1.7.2 2020-12-09 [1] standard (@1.7.2) knitr 1.37 2021-12-16 [1] CRAN (R 4.1.0) lifecycle 1.0.0 2021-02-15 [1] standard (@1.0.0) lubridate 1.7.10 2021-02-26 [1] standard (@1.7.10) magrittr 2.0.1 2020-11-17 [1] standard (@2.0.1) memoise 2.0.0 2021-01-26 [1] standard (@2.0.0) modelr 0.1.8 2020-05-19 [1] standard (@0.1.8) munsell 0.5.0 2018-06-12 [1] standard (@0.5.0) pillar 1.6.1 2021-05-16 [1] standard (@1.6.1) pkgconfig 2.0.3 2019-09-22 [1] standard (@2.0.3) png 0.1-7 2013-12-03 [1] standard (@0.1-7) purrr * 0.3.4 2020-04-17 [1] standard (@0.3.4) R6 2.5.0 2020-10-28 [1] standard (@2.5.0) Rcpp 1.0.7 2021-07-07 [1] CRAN (R 4.1.0) readr * 1.4.0 2020-10-05 [1] standard (@1.4.0) readxl 1.3.1 2019-03-13 [1] standard (@1.3.1) reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.0) rlang 0.4.11 2021-04-30 [1] standard (@0.4.11) rmarkdown 2.11 2021-09-14 [1] CRAN (R 4.1.0) rprojroot 2.0.2 2020-11-15 [1] standard (@2.0.2) rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.0) rvest 1.0.0 2021-03-09 [1] standard (@1.0.0) scales 1.1.1 2020-05-11 [1] standard (@1.1.1) sessioninfo 1.1.1 2018-11-05 [1] standard (@1.1.1) stringi 1.6.2 2021-05-17 [1] standard (@1.6.2) stringr * 1.4.0 2019-02-10 [1] standard (@1.4.0) tibble * 3.1.2 2021-05-16 [1] standard (@3.1.2) tidyr * 1.1.3 2021-03-03 [1] standard (@1.1.3) tidyselect 1.1.1 2021-04-30 [1] standard (@1.1.1) tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.1.0) utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.0) vctrs 0.3.8 2021-04-29 [1] standard (@0.3.8) withr 2.4.2 2021-04-18 [1] standard (@2.4.2) xfun 0.29 2021-12-14 [1] CRAN (R 4.1.0) xml2 1.3.2 2020-04-23 [1] standard (@1.3.2) yaml 2.2.1 2020-02-01 [1] standard (@2.2.1) [1] /Library/Frameworks/R.framework/Versions/4.1/Resources/library

在 YAML 之后添加這個,然后:::之間的方法將起作用:

<style>
.theorem{
  display: block;
  font-style: italic;
}
.theorem::before{
  content:"Theorem. ";
  font-weight: bold; 
  font-style: normal;
}
.theorem[name]::before{
  content: "Theorem (" attr(name) ") ";
}
</style>

::: {.theorem name="Pythagorean theorem"}
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have
$$a^2 + b^2 = c^2$$
:::

在此處輸入圖像描述

如果您希望能夠通過超鏈接引用該定理,可以使用href ,如下所示:

如果你想參考你的定理,你可以這樣做。 考慮到<a href="#Pythagorean theorem">勾股定理</a> ,應該有一種方法可以鏈接它。`

在此處輸入圖像描述

我沒有完成所有這些,但這是引理的一個。 這使用了兩個類:lemma 和 lemmaS。 當您使用 class 引理時,它會更改整數,當您使用引理時,它會增加小數。 此方法可應用於所有不同類型的公式塊。

更新后的 styles:

<style>
h1 {
  counter-reset: lemma;
}
h2 {
  counter-reset: lemmaS;
}
.lemma, .lemmaS, .theorem { /* updated to add two types of lemma */
  display: block;
  font-style: italic;
}
.lemma:first-of-type::before, 
.lemmaS:first-of-type::before {
  counter-set: lemma 1;
}
.theorem::before{
  content:"Theorem. ";
  font-weight: bold; 
  font-style: normal;
}
.theorem[name]::before{
  content: "Theorem (" attr(name) ") ";
}
.lemma::before {    /* This will increment by whole numbers: 1, 2, 3 */
  counter-increment: lemma; 
  content: "Lemma " counter(lemma) "." counter(lemmaS);
  font-weight: bold;
  font-style: normal;
}
.lemmaS::before {   /* This will increment by decimals numbers: 2.1, 2.2 */
  counter-increment: lemmaS;
  content: "Lemma " counter(lemma) "." counter(lemmaS) " ";
  font-weight: bold;
  font-style: normal;
}
</style>

代碼,使用h1#重置整數; <h2>##重置小數點。

# TL;DR;

::: {.theorem name="Pythagorean theorem"}
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have
$$a^2 + b^2 = c^2$$
:::

<div class="lemma" name="pythag">
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have
$$a^2 + b^2 = c^2$$
</div>

<div class="lemmaS" name="YetAnotherPythag">
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have
$$a^2 + b^2 = c^2$$
</div>

## Tell me about lemmas

<div class="lemma" name="andMore">
For a right triangle, if $c$ denotes the length of the hypotenuse
and $a$ and $b$ denote the lengths of the other two sides, we have
$$a^2 + b^2 = c^2$$
</div>

在我打字的時候看着這個,我想到了一些可以讓這個更干凈的方法......但我只是想讓它在那里工作,我確信有一種方法只使用一個引理的 class。 使用標題來表示何時增加整數,無論哪種方式。 這應該可以讓您使用其他選項,如果您不想要數字,請使用定理設置。 只需將單詞 theorem 更改為您想要查看的單詞,如果您想給它們編號。 如果您想要以上所有內容,請將單詞 lemma 更改為您想要出現的單詞。 append CSS 中的名稱。

例如,要使用編號,但添加推論 - 您可以 append 不使用“內容”一詞,使用“內容”,復制並更改該詞:

.corrolary, 
.lemma, 
.lemmaS, 
.theorem {    /* updated to add two types of lemma */
  display: block;
  font-style: italic;
}
.corollary::before{. /* Copy of .theorem, updated for Corollary */
  content:"Corollary. ";
  font-weight: bold; 
  font-style: normal;
}

在此處輸入圖像描述

bookdown功能可以使用base_format參數與其他單一格式一起使用,如 bookdown.org/yihui/bookdown/a-single-document.html 中所述

如果所有bookdown的特征都不是 100% 兼容distill格式,那么定理和證明處理應該是。 所以這將起作用:


---
title: "Test Title"
description: |
  Test description
author: Test author
date: 2021-12-31
output:
  bookdown::html_document2:
    self_contained: false
    base_format: distill::distill_article
---

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

# TL;DR;

Trying to ensure that theorem environments are working in `distill::distill_article`.

::: {#pythagoras .theorem name="Pythagorean theorem"}
For a right triangle, if $c$ denotes the length of the hypotenuse and $a$ and $b$ denote the lengths of the other two sides, we have

$$a^2 + b^2 = c^2$$
:::

We have a labeled and named theorem below, and \@ref(thm:pythagoras).

bookdown 和 distill 示例

您將獲得與 bookdown 中相同的 HTML 渲染。

有關更多上下文,請參閱 Github 上的問題: https://github.com/rstudio/distill/issues/433

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM