2012-02-25 58 views
13

我正在使用Sphinx編寫一些筆記。我在筆記中使用Mathjax Math的擴展名。數學的默認大小比我想要的大一點。在Mathjax頁面上,我發現我可以通過將下面的腳本添加到HTML文件來更改該大小。在sphinx文檔中爲每個文件添加一個javascript腳本標籤,以便它可以工作

MathJax.Hub.Config({ 
    "HTML-CSS": {scale: 90} 
}); 

所以,我試圖通過增加在.rst文件中的以下內容:

.. raw:: html 

    <script type="text/javascript" > 
     MathJax.Hub.Config({ 
      "HTML-CSS": { 
       scale: 90 
      } 
     }); 
    </script> 

========== 
Objective 
========== 

To change math size \\(\\alpha \\). 

以上在特定.rst文件數學的偉大工程。但我想爲許多不同的第一個文件做這個,它們都是同一個獅身人面像文件的一部分。是否可以在沒有將上述腳本添加到每個.rst文件的情況下執行此操作?

感謝您閱讀本文,並希望能夠幫助您。

回答

15

這可以用一個模板來完成:

  1. 中創建一個斯芬克斯項目目錄名爲templates文件夾。

  2. 在conf.py,添加

    templates_path = ["templates"] 
    
  3. templates目錄中,創建一個包含以下內容稱爲layout.html文件:

    {% extends "!layout.html" %} 
    
    {%- block extrahead %} 
    <script type="text/javascript"> 
         MathJax.Hub.Config({ 
          "HTML-CSS": { 
           scale: 90 
          } 
         }); 
        </script>  
    {% endblock %} 
    

<script>元素將被納入在每個生成的HTML頁面的<head>中。

extrahead模板塊默認爲空。詳情請參閱Sphinx templating documentation

+0

非常感謝。這很好!特別感謝具體步驟。爲什麼在'{% - block extrahead}'行中有'-'。沒有短跑,它不起作用。我在鏈接中看到的代碼示例沒有這個'-'。 – Curious2learn 2012-02-28 03:04:57

+0

sphinx/themes/basic/layout.html中的默認'extrahead'塊有額外的連字符/破折號/減號(這是關於[空格控件](http://jinja.pocoo.org/docs/templates/#whitespace -控制))。但我無法真正解釋爲什麼它不適用於你沒有它... – mzjn 2012-02-28 16:42:25

+0

謝謝。我會研究這一點。總之,它與破折號一起工作得很好。再次感謝您的回覆。 – Curious2learn 2012-03-01 16:23:08

3

另一種方法:

使用script_files設置在覆蓋layout.html文件。

3

而第三種方法,不涉及模板:

呼叫add_javascriptsetup功能在您的獅身人面像項目的conf.py

# conf.py 

# ... other settings ... 

def setup(app): 
    # (create a setup() function if you don't already have one; 
    # or add to the existing setup() ...) 
    app.add_javascript("mathjax-config.js") 

創建文件 「mathjax-config.js」你的_static源代碼目錄。 (檢查conf.py html_static_path設置以驗證靜態目錄,或者根據需要定義一個。)Sphinx將在構建過程中將其複製到輸出目錄中。

還有一個用於css文件的add_stylesheet方法。他們都可以採取任何相對路徑到您的靜態源目錄,或完整的URL到外部資源。

+0

似乎需要設置擴展名,這是否正確? – NirIzr 2017-02-09 13:13:03

+1

不需要擴展:您可以在項目自己的conf.py中放置一個'setup()'函數。 (您的項目實際上被允許成爲自己的擴展。) – medmunds 2017-02-09 18:05:03

相關問題