Cómo incluir archivos de imagen en archivos Sphinx + Latex PDF

Aug 17 2020

Estoy usando la herramienta de documentación Sphinx junto con LaTeX para generar archivos pdf.

Al intentar incluir imágenes en el archivo pdf, aparece el siguiente error durante la compilación:

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}
                                                  }
? 

Estas son algunas variables de entorno clave:

A. En mi conf.py , he definido la ruta absoluta como:sys.path.insert(0, os.path.abspath('..'))

B. Este es el árbol de directorios:

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. Para incluir la imagen estoy usando lo siguiente.

.. image:: /_static/img_file.*

D. He incluido Graphix en el conf.py preámbulo .

¿Por qué recibo este error? ¿Cuál es el origen de tantas "" "citas en el mensaje de error?

Editar

Al abrir el *.texarchivo en el editor Tex , esto es lo que muestra el fragmento de código de la sección de inserción de imágenes:

\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}} % ***

Al usar Quick Build, el editor arroja un error como en:

! Paquete pdftex.def Error: Archivo `" "" {img_file} ". Jpg 'no encontrado: ...

Sin embargo, cuando {{img_file}.jpg}se eliminan los corchetes del nombre del archivo de imagen y se cambia a (línea marcada con ***):

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

el documento se compila correctamente y la imagen se puede ver en el archivo pdf.

Si el .texarchivo está guardado, el archivo pdf en la carpeta _build / latex / muestra la imagen.

Entonces, ¿por qué se insertan los soportes adicionales make latexpdfdesde el terminal?

Respuestas

Matt Aug 21 2020 at 07:15

No coloques tus imágenes debajo _static. Es una carpeta de propósito especial, no para imágenes. Por ejemplo modules/execute/img/, crear , mover la imagen allí y .. image:: img/my-image.png.