Bookdown定理中的Latex宏

问题描述

我正在尝试在书本项目中使用一些乳胶宏(这是一项了不起的技术!)。

我想在文本中(以及在定理环境中)写诸如| x>的符号,对于这些符号,在正常的乳胶文档中,我会使用刹车片。在实践中,我会写一个乳胶文件

\usepackage{braket}

我不明白为什么,但是在序言\ usepackage {braket}中添加无效,因为$ \ ket {x} $无法在文本中正确呈现。

为了避免这个问题,我想到了在markdown文件的开头添加一些宏的想法。

\DeclarePairedDelimiter\bra{\langle}{\rvert}
\DeclarePairedDelimiter\ket{\lvert}{\rangle} 
\DeclarePairedDelimiterX\braket[2]{\langle}{\rangle}{#1 \delimsize\vert #2} 

不幸的是,它不能解决问题。在这两种情况下,都会出现以下错误

[WARNING] Could not convert TeX math '\ket{\psi}',rendering as TeX:
  \ket{\psi}
      ^
  unexpected "{"
  expecting "%","\\label","\\nonumber" or whitespace

关于如何解决此问题的任何想法? 谢谢。

解决方法

您必须将LaTeX代码放入单独的.tex文件中,然后将其提供给YAML选项includes

示例:

add_packages.tex

\usepackage{braket}

index.Rmd

--- 
output:
  bookdown::pdf_book:
    includes:
      in_header: add_packages.tex
documentclass: book
site: bookdown::bookdown_site
---

# Let's test `braket`

$$\bra{\Psi}\ket{\Psi}$$

enter image description here

有关更多信息,请参见Yihui的预订套件中的documentation