无法在 blogdown 中转义 LaTeX 美元符号 `$`

Can't escape LaTeX dollar sign `$` in blogdown

1. An amount between  and .  
2. An amount between $5 and $10.  
3. An amount between \ and \.  

请将上面的代码块包含在 blogdown .Rmd 文件中,并确保您的 Hugo 主题支持 LaTeX 方程式。然后 Save 并使用 blogdown::serve_site() 为您的站点提供服务。当我这样做时,上面显示的三个选项中的 none 正确地转义了 LaTeX 的美元符号 $.

这是发生在我身上的事情(是的,我在尝试这个之前用 update.packages(ask = FALSE, checkBuilt = TRUE) 更新了所有包)。下面这三个结果来自上面相同的三个尝试:

  1. 此语句中的 and 格式为 LaTeX 样式,而其他所有内容均采用“正常”格式。
  2. 此语句中的 and 格式为 LaTeX 样式,而其他所有格式均为“正常”格式(换句话说,结果与数字 1 完全相同)。
  3. LaTeX $ 被转义,但句子现在显示为“An amount between \$5 and \$10.”,每个美元符号前有一个斜线。

如何使用接受 LaTeX 输入的 Hugo 主题正确转义“金额在 5 美元到 10 美元之间。”这句话中的美元符号?

我应该提一下,如果我用 Ctrl+Shift+K 编织同一个 .Rmd 文件,如果我使用示例 #2 中所示的解决方案,美元符号确实会“正确地”转义。该问题仅在 blogdown::serve_site() 为我的网站提供服务时出现,使我相信问题出在接受 LaTeX 输入的 Hugo 主题上。

一个简单的技巧是在 $ 和数字之间添加一个 space。

4. An amount between $ 5 and $ 10. 

MathJax 应该只在(第一个)后跟一个非白色字符时触发并激活数学模式space,并且应该以 $ 结尾,前面是非白色字符 space .

它并不总是能正常工作,但我在我的 blogdown 设置中尝试过,看起来还不错。

另外...(我不知道这是否是原因)...但是您加载的是哪个版本的 MathJax?我在我的页面中包含了以下代码,这也使您的第三个示例正常。

  <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\(","\)"] ],
      displayMath: [ ['$$','$$'], ["\[","\]"] ],
      skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
      processEscapes: true
    }
    });
  </script>
  <script type="text/javascript"
      src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
  </script>

在 MathJax.Hub.Config 中设置 processEscapes: true

然后,使用 \$ 显示美元符号 - 三重反斜杠....