В reStructuredText на Sphinx 2.x я хочу поместить содержимое, которое изменяется в зависимости от формата вывода.
В любой исходный документ, например, index.rst, добавьте следующие строки:
.. role:: pdf(raw)
:format: pdf
.. role:: latex(raw)
:format: latex
.. role:: html(raw)
:format: html
.. |foo| replace::
:pdf:`PDF!`
:latex:`LaTeX!`
:html:`HTML!`
I am |foo|
Я ожидаю, что он показывает "Я HTML!" , если формат вывода - HTML, "Я - LaTeX!" , если это LaTeX (даже после преобразования продукта в PDF с помощью pdflatex) и «Я PDF!» , если это PDF.
Я создаю HTML версию, используя make html
, и вижу только «Я HTML!» в веб-браузере, как и ожидалось:
Установить rst2pdf
. Поместите следующие строки в conf.py
:
extensions = [
'rst2pdf.pdfbuilder'
]
pdf_documents = [(
'index',
u'testRst2Pdf',
u'Test Title',
u'Sarah Author')]
Создайте версию PDF с обновлением
sphinx-build -b pdf ./source/ ./build/
. Ниже приведен вывод. Нет ошибки. Я запустил это, используя WSL 1 (Ubuntu 18.04).
Running Sphinx v2.4.3
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [pdf]: targets for 1 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
processing testRst2Pdf...
index
resolving references...
done
writing testRst2Pdf...
done
build succeeded.
Я вижу "Я PDF! LaTeX! HTML!" , который включает в себя все три элемента.
Есть ли способ получить "Я PDF!" или "Я LaTeX!" в файле PDF?
Примечание.