sphinx: включая файл .tex через raw::latex

Я хочу включить латексный документ в sphinx. Сборка sphinx html не включает файл латекса, связанный с использованием директивы .. raw:: latex. У меня есть

это моя структура каталога

docs/
    source/
        importlatex.rst
        index.rst

    build/
    tex/
       texfile.tex

index.rst похоже

Welcome to documentation!
=========================

Contents:

.. toctree::
   :maxdepth: 2

   icnludelatex
   and-other-stuff

icnludelatex.rst выглядит так:

Include Latex
=============

.. raw:: latex
    :file: ../tex/texfile.tex

эта ссылка содержит пример включения html

.. raw:: html
    :file: inclusion.html

почему это происходит?


person muon    schedule 12.07.2017    source источник
comment
Sphinx не вызвал никаких ошибок для этого включения. он создает страницу с заголовком (у меня это в отдельном .rst с заголовком)   -  person muon    schedule 13.07.2017
comment
tex/ находится за пределами каталога source/, поэтому либо переместите его внутрь, либо добавьте в каталог conf.py в качестве дополнительного пути для исходных файлов.   -  person Steve Piercy    schedule 14.07.2017
comment
Предложите создать MCVE и отправить его в общедоступный репозиторий, чтобы я мог воспроизвести проблему.   -  person Steve Piercy    schedule 14.07.2017


Ответы (1)


Когда вы используете директиву raw, блок интерпретируется только связанным с ним писателем. Например, .. raw:: latex работает, если вы создаете LaTeX, но он невидим для HTML.

Вам нужен синтаксический анализатор для LaTeX, но при быстром поиске я нахожу только синтаксические анализаторы для уценки (recommonmark) и блокнот Jupyter (nbsphinx).

Возможно, быстрое и грязное решение состоит в том, чтобы преобразовать ваш латексный документ в сначала с помощью pandoc (вы можете потерять некоторый форматированный текст).

pandoc -s texfile.tex -o texfile.rst

а затем используйте директиву include в файле icnludelatex.rst.

.. include:: texfile.rst
person cosmoscalibur    schedule 26.07.2017
comment
спасибо, я делал это раньше, но pandoc путает уравнения, таблицы и т. д., поэтому я надеялся, что прямой импорт латекса будет менее хлопотным - person muon; 26.07.2017
comment
@muon, возможно, вы можете сначала преобразовать в html (используя hevea, latexml или pdf2htmlex), а затем использовать include html. - person cosmoscalibur; 27.07.2017