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

喜你入骨 提交于 2020-08-20 08:05:12

问题


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

Please include the code chunk above in a blogdown .Rmd file, and make sure your Hugo theme supports LaTeX equations. Then Save and serve your site with blogdown::serve_site(). When I do this none of the three options shown above properly escape LaTeX's dollar sign $.

Here's what happens to me (and yes I did update all packages with update.packages(ask = FALSE, checkBuilt = TRUE) prior to trying this). These three results below are from the same three attempts above:

  1. The and in this statement is formatted in LaTeX style while everything else is formatted "normal".
  2. The and in this statement is formatted in LaTeX style while everything else is formatted "normal" (in other words the results are exactly identical to number 1).
  3. The LaTeX $ is escaped but the sentence now displays as "An amount between \$5 and \$10." with one slash before each dollar sign.

How can I properly esacpe the dollar signs in this sentence "An amount between $5 and $10." with a Hugo theme that accepts LaTeX input?

I should mention that if I knit the same .Rmd file with Ctrl+Shift+K the dollar sign does get escaped "properly" if I utilize the solution shown in example #2. The issue only appears when blogdown::serve_site() serve my site, leading me to believe the issue is with Hugo themes accepting LaTeX input.


回答1:


A simple trick is to put in a space between the $ and the number.

4. An amount between $ 5 and $ 10. 

MathJax should only triggered and activate math mode when it is (first) followed by a non-whitespace character and should end at a $ preceded by something that isn't white space.

It doesn't always work quite right but I tried it on my blogdown setup and that seemed okay.

Also ... (and I have no idea if this could be the reason) ... but which version of MathJax are you loading? I'm including the following code in my pages, and that renders your third example okay too.

  <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>


来源:https://stackoverflow.com/questions/62915849/cant-escape-latex-dollar-sign-in-blogdown

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!