2012-03-15 11 views

Trả lời

3

Aha, tôi tìm thấy một giải pháp mà làm việc với các phần mở rộng pngmath Sphinx . Đó là mẹo mà Sage (phần mềm toán học nguồn mở) sử dụng; cảm hứng từ http://www.sagemath.org/doc/reference/sage/misc/latex_macros.html.

Để thêm macro cao su của riêng bạn để một tài liệu Sphinx:

1) Thực hiện một tập tin, nói 'latex_macros.sty', có chứa các macro của bạn (mỗi dòng một), và đặt nó trong, nói, cùng thư mục như tệp tin Sphinx conf.py của bạn;

2) Thêm đoạn mã sau vào tập tin conf.py Sphinx của bạn:

# Additional stuff for the LaTeX preamble. 
latex_elements['preamble'] = '\usepackage{amsmath}\n\usepackage{amssymb}\n' 

##################################################### 
# add LaTeX macros 

f = file('latex_macros.sty') 

try: 
    pngmath_latex_preamble # check whether this is already defined 
except NameError: 
    pngmath_latex_preamble = "" 

for macro in f: 
    # used when building latex and pdf versions 
    latex_elements['preamble'] += macro + '\n' 
    # used when building html version 
    pngmath_latex_preamble += macro + '\n' 

##################################################### 
1

Nếu bạn đang sử dụng phần mở rộng pngmath, bạn có thể đặt rằng trong lời mở đầu bằng cách chèn này vào kịch bản conf.py:

pngmath_latex_preamble = r"\newcommand{\cG}{\mathcal{G}}" 
5

Nếu bạn đang sử dụng MathJax, đây là một giải pháp khả thi. Tôi vẫn đang tìm kiếm một giải pháp tốt hơn, nhưng nó có thể giúp đỡ nếu bạn cần một bản hack nhanh.

  1. Tạo một tập tin trong thư mục quy định tại tùy chọn html_static_path cấu hình (thường _static), nói mathconf.js. Điều này sẽ chứa cấu hình JS cho MathJax. Ví dụ (từ MathJax documentation):

    MathJax.Hub.Config({ 
        TeX: { 
        Macros: { 
         RR: '{\\bf R}', 
         bold: ['{\\bf #1}', 1] 
        } 
        } 
    }); 
    

    Bạn có thể thêm các lệnh theo cú pháp trên. Nội dung được hiển thị xác định các macro \RR\bold{#1}, điều cuối cùng này chấp nhận một đối số.

  2. Thêm một tệp layout.html tại thư mục _templates. Ý tưởng là mở rộng chủ đề hiện tại, vì vậy nó tìm kiếm tệp cấu hình MathJax trước đó. Như vậy, nội dung là:

    {% extends "!layout.html" %} 
    {% set script_files = script_files + ["_static/mathconf.js"] %} 
    

    Lưu ý rằng trong trường hợp này nó thư mục _static, bởi vì trong trường hợp này nó đề cập đến nơi để tìm kiếm sau xây dựng. Nhân sư sẽ di chuyển tệp từ html_static_path sang thư mục _static trong thư mục xây dựng.

+0

Không hoạt động cho tôi (sphinx = 1.3.1) có lẽ vì tôi không thể đặt đúng loại tập lệnh thành '' (xem http://docs.mathjax.org/en/latest/configuration.html#using-in-line-configuration-options). – user511