如何在 R 降价方程式中制作卷曲的 k?

How to make curly k in R markdown equations?

在 R markdown 方程中,我需要制作一个大写小写字母 k,类似于 \ell 生成的大写小写字母“l”。有一些帖子处理这个问题,但是非常基于 LaTex。对于不熟悉 LaTex 细节的 R markdown 用户,我找不到关于此问题的任何帖子。我正在使用 tinytex。

有很多方法可以实现这一点。

PDF/LaTeX-only

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

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

  1. 设置文件preamble.tex:

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

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

  2. 确保 preamble.tex 的内容包含在通过设置 yaml header 您的 .rmd 文件相应:

    ---
    title: "Mathdutchcal"
    output: 
      pdf_document:
        include:
          in_header: preamble.tex
    ---
    
  3. 在数学模式下输入小写大写字母:

    $$\mathdutchcal{hijkl}$$

  4. 编织成 PDF。结果:

正如 Ben Bolker 所建议的,如果您需要经常键入某些大写字母,则在 preamble.tex 中定义宏很方便,例如与

\newcommand{\curlyk}{\ensuremath\mathdutchcal{k}}

你可以使用 \curlyk.

来获得卷曲的 k

PDF/LaTeX + HTML/MathJax

正如 Ben Bolker 所提到的,以上内容不适用于 HTML 输出,因为 MathJax 不支持这些 commands/libraries。 MathJax 中的小写书法字母可以设置为 \mathscr。如果您使用 xelatex 编译并定义合适的字体,这也适用于 PDF 输出,例如STIXTwoMathpreamble.tex.

  1. 设置preamble.tex:

    \setmathfont{STIXTwoMath-Regular.otf}

  2. 设置 yaml header:

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

    $$\mathscr{hijkl}$$

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



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

如果您迫不及待,您或许可以为此使用 Unicode 符号。从 https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols 开始,“MATHEMATICAL SCRIPT SMALL K”的代码是 1D4C0。您可以从维基百科上的 table 剪切并粘贴它或使用组合键(在我的 Ubuntu 系统上 Ctrl-Shift-u + 1D4C0 有效):它看起来像这样 — .

我不知道这在您的方程式中是否看起来不错或在任何地方都能正确渲染,但总比没有好。 (如果可以的话,PDF + LaTeX 肯定会更好看。)