Как включить файлы изображений в файлы Sphinx + Latex Pdf

Я использую инструмент документации Sphinx вместе с LaTeX для создания файлов PDF.

При попытке включить изображения в файл pdf во время компиляции возникает следующая ошибка:

LaTeX Warning: File `{img_file}.jpg' not found on input line 920.


! Package pdftex.def Error: File `"""{img_file}".jpg' not found: using dra
ft setting.

See the pdftex.def package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.920 ...phinxincludegraphics{{img_file}.jpg}
                                                  }
? 

Вот некоторые ключевые переменные среды:

A. В моем conf.py я определил абсолютный путь как:sys.path.insert(0, os.path.abspath('..'))

Б. Это дерево каталогов:

docs/           # (Sphinx) Documentation folder 
    _build/
    _static/
        css/
        images/
           abc.jpg
        img_file.jpg          <= This image file is in the root ("_static") directory
    _templates/
    conf.py
    index.rst
    modules/                  <= Folder containing my source (.rst) files
        execute/
            file_with_image.rst           <= I am trying to put the image in this source file
            some_other_file.rst

C. Для включения изображения я использую следующее.

.. image:: /_static/img_file.*

D. Я включил graphix вconf.py преамбула.

Почему я получаю эту ошибку? Что является источником стольких """цитат в сообщении об ошибке?

редактировать

При открытии *.texфайл в редакторе Tex, вот что показывает фрагмент кода из раздела вставки изображений:

\subsection{Add Image}
\label{\detokenize{modules/aud_execution/add_image_with_image_directive:add-image}}\label{\detokenize{modules/aud_execution/add_image_with_image_directive::doc}}
\sphinxstylestrong{Adding an image}

Example of image usage using “image” directive:

\noindent{\hspace*{\fill}\sphinxincludegraphics{{img_file}.jpg}} % ***

С использованием Quick Build, редактор выдает ошибку, как показано ниже:

! Пакет pdftex.def Ошибка: файл `"""{img_file}". Jpg'не найден: ...

Однако, когда фигурные скобки в имени файла изображения, {{img_file}.jpg} удалены и заменены на (строка с пометкой ***):

\noindent{\hspace*{\fill}\sphinxincludegraphics{img_file.jpg}} % ***

документ успешно компилируется, и изображение можно увидеть в файле pdf.

Если .texфайл будет сохранен, файл pdf в папке _build/latex/ показывает изображение.

Итак, почему дополнительные скобки вставляются во время make latexpdf с терминала?

1 ответ

Не размещайте изображения под _static. Это папка специального назначения, а не для изображений. Например, создатьmodules/execute/img/, переместите изображение туда и .. image:: img/my-image.png.

Другие вопросы по тегам