2012-02-25 20 views
13

Tôi đang sử dụng Nhân sư để viết một số ghi chú. Tôi đang sử dụng phần mở rộng Mathjax cho Toán trong các ghi chú. Kích thước mặc định của toán học lớn hơn một chút so với tôi muốn. Trên trang Mathjax tôi thấy rằng tôi có thể thay đổi kích thước đó bằng cách thêm tập lệnh sau vào tệp HTML.Thêm thẻ javascript script vào một số vị trí để nó hoạt động cho mọi tệp trong tài liệu nhân sư

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

Vì vậy, tôi đã cố gắng bằng cách thêm những điều sau đây trong một file .rst:

.. raw:: html 

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

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

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

Trên đây hoạt động tuyệt vời cho môn toán ở chỗ .rst tập tin cụ thể. Nhưng tôi muốn làm điều này cho nhiều tệp .rst khác nhau, tất cả đều là một phần của cùng một tài liệu nhân sư. Có thể thực hiện điều này mà không cần thêm tập lệnh trên vào mỗi tệp .rst không?

Cảm ơn bạn đã đọc điều này và sẽ đánh giá cao nếu bạn có thể trợ giúp.

Trả lời

15

này có thể được thực hiện với một mẫu:

  1. Tạo một thư mục có tên templates trong thư mục dự án Sphinx.

  2. Trong conf.py, thêm

    templates_path = ["templates"] 
    
  3. Trong thư mục templates, tạo ra một tập tin gọi là layout.html với các nội dung sau:

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

Yếu tố <script> sẽ được bao gồm trong <head> của mọi trang HTML được tạo.

Khối mẫu extrahead bị trống theo mặc định. Xem chi tiết Sphinx templating documentation.

+0

Cảm ơn rất nhiều. Điều này làm việc tuyệt vời! Cảm ơn đặc biệt cho các bước chi tiết. Tại sao có một '-' trong dòng' {% - block extrahead} '. Không có dấu gạch ngang, nó không hoạt động. Các ví dụ mã tôi đã thấy trong liên kết không có '-' này. – Curious2learn

+0

Khối 'extrahead' mặc định trong sphinx/themes/basic/layout.html có thêm dấu gạch nối/dấu gạch ngang/dấu trừ (đó là khoảng [khoảng trắng kiểm soát] (http://jinja.pocoo.org/docs/templates/#whitespace -điều khiển)). Nhưng tôi không thể giải thích lý do tại sao nó không hoạt động cho bạn mà không có nó ... – mzjn

+0

Cảm ơn. Tôi sẽ nhìn vào đó. Nhưng dù sao, nó hoạt động rất tốt với dấu gạch ngang. Cảm ơn một lần nữa vì đã trả lời. – Curious2learn

3

Một phương pháp:

Sử dụng script_files thiết lập trong ghi đè layout.html tập tin của bạn.

3

Và một cách tiếp cận thứ ba, mà không liên quan đến mẫu:

Gọi add_javascript trong setup chức năng trong dự án Sphinx của bạn 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") 

Tạo file "mathjax-config.js" trong thư mục nguồn _static của bạn. (Kiểm tra cài đặt conf.py html_static_path để xác minh các thư mục tĩnh, hoặc xác định một thư mục nếu cần.) Sphinx sẽ sao chép nó vào thư mục đầu ra trong khi xây dựng.

Ngoài ra còn có phương thức add_stylesheet cho tệp css. Và cả hai người trong số họ có thể lấy một trong hai đường dẫn tương đối đến các thư mục nguồn tĩnh của bạn hoặc các url đầy đủ đến các tài nguyên bên ngoài.

+0

Có vẻ như điều này đòi hỏi phải thiết lập một phần mở rộng, đúng không? – NirIzr

+1

Không yêu cầu mở rộng: bạn có thể đặt một hàm 'setup()' trong conf.py của riêng dự án của bạn. (Dự án của bạn được cho phép là phần mở rộng của chính nó.) – medmunds

Các vấn đề liên quan