Tôi đang viết một số mã toán học bằng Python và sử dụng Sphinx để tạo tài liệu. Tôi biết rằng Nhân sư có thể xử lý mã LaTeX trong tài liệu Python; xem http://sphinx.pocoo.org/latest/ext/math.html#module-sphinx.ext.mathbase. Làm thế nào tôi có thể tạo macro LaTeX, chẳng hạn như \newcommand{\cG}{\mathcal{G}}
, để sử dụng trong tài liệu Python?Tạo macro toán LaTeX trong Sphinx
Trả lời
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'
#####################################################
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}}"
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.
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óimathconf.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
và\bold{#1}
, điều cuối cùng này chấp nhận một đối số.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ó là 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.
- 1. Giới hạn đánh dấu Sphinx LaTeX
- 2. Cách tạo tài liệu PDF bằng Sphinx trong Windows
- 3. Sans-serif toán với latex trong matplotlib
- 4. cách thay thế macro latex bằng định nghĩa của chúng (sử dụng latex)
- 5. Cách tạo chỉ thị tùy chỉnh trong Sphinx
- 6. Cách tạo trường chữ ký trong LaTeX
- 7. Tạo mã trong giao diện LaTeX * đẹp *
- 8. iOS tạo macro
- 9. Excel & VBA: Bỏ qua công thức tính toán trong Macro
- 10. Tạo tên tệp bao gồm trong macro
- 11. Tạo bộ vấn đề với câu trả lời trong Latex
- 12. Toán tử trong việc xác định chiều rộng hình trong LaTeX
- 13. Macro DocBook?
- 14. Toctree điều kiện trong Sphinx
- 15. Làm cách nào để tạo biểu tượng toán học laTex của riêng bạn?
- 16. Đối số tùy chọn trong macro macro
- 17. C/C++ #define Macro bên trong macro?
- 18. LaTeX chế độ toán học và mbox chế độ
- 19. Macro sản xuất macro trong C?
- 20. Lưới hình ảnh trong reStructuredText/Sphinx
- 21. Làm cách nào để hiển thị dấu mũ (^) trong chế độ toán học trong LaTeX?
- 22. Cách tạo dòng thời gian với LaTeX?
- 23. Bao gồm docstring trong Tài liệu Sphinx
- 24. macro asciidoc
- 25. Tạo LaTeX từ đầu vào Maxima
- 26. Tạo pdf-latex với tập lệnh python
- 27. 'Tóm tắt' trong Latex
- 28. Làm thế nào để tạo macro NSString?
- 29. Định dạng điểm nổi Sphinx
- 30. Macro để tạo danh sách được đánh số trong vim?
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