如何在 R markdown 方程中制作卷曲 k ?

ben*_*ben 5 r mathjax r-markdown tinytex

在 R markdown 方程中,我需要创建一个卷曲小写 k,类似于 生成的卷曲小写“l” \ell。有一些帖子涉及这个问题,但都是基于 LaTex 的。我找不到任何关于这个问题的帖子,为不熟悉 LaTex 细节的 R markdown 用户提供解决方案。我正在使用tinytex。

Mar*_*old 4

有多种方法可以实现这一目标。

仅限 PDF/LaTeX

如果您只需要 PDF 输出,您可以使用在数学模式下支持小写书法字母的 LaTeX 包,例如dutchcal

由于这不是 tex.stackexchange 并且您提到您对 Tex 不太熟悉,因此我不会详细介绍。这是 PDF rmarkdown 项目的一个简单示例:

  1. 设置文件preamble.tex

    \DeclareMathAlphabet{\mathdutchcal}{U}{dutchcal}{m}{n}

    这可确保在数学模式下使用荷兰语字母\mathdutchcal{<letters>}

  2. 通过相应设置 .rmd 文件的 yaml 标头,确保preamble.tex的内容包含在生成 PDF 的 tex 文件中:

    ---
    title: "Mathdutchcal"
    output: 
      pdf_document:
        include:
          in_header: preamble.tex
    ---
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在数学模式下输入小写大写字母:

    $$\mathdutchcal{hijkl}$$

  4. 编织成PDF。结果:

正如 Ben Bolker 所建议的,如果您需要频繁键入某些大写字母,那么在preamble.tex中定义宏会很方便,例如

\newcommand{\curlyk}{\ensuremath\mathdutchcal{k}}
Run Code Online (Sandbox Code Playgroud)

你可以使用 得到一个卷曲的 k \curlyk


PDF/LaTeX + HTML/MathJax

正如 Ben Bolker 所提到的,以上内容不适用于 HTML 输出,因为 MathJax 不支持这些命令/库。MathJax 中的小写书法字母可以通过 来设置\mathscr如果您使用xelatex进行编译并定义合适的字体(例如preamble.tex中的STIXTwoMath) ,这也适用于 PDF 输出。

  1. 设置preamble.tex

    \setmathfont{STIXTwoMath-Regular.otf}

  2. 设置 yaml 标头:

    ---
    title: "PDF/LaTeX + HTML/MathJax"
    output: 
      pdf_document:
        latex_engine: xelatex
        include:
          in_header: preamble.tex
    ---
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在数学模式下输入小写大写字母:

    $$\mathscr{hijkl}$$

  4. 编织为 PDFHTML。结果(PDF 顶部,HTML 底部):



评论。如果您使用的是tinytex,则可能未安装 PDF 输出所需的LaTeX 软件包(dutchcalstix2-otf )。当你编织成 PDF 时,tinytex 应该安装它们。如果失败,您可以使用 TeX Live Manager 的便捷功能(例如 )手动安装软件包tinytex::tlmgr_install("dutchcal")