问题描述
我正在尝试在书本项目中使用一些乳胶宏(这是一项了不起的技术!)。
我想在文本中(以及在定理环境中)写诸如| 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}$$
有关更多信息,请参见Yihui的预订套件中的documentation。