Comment inclure des fichiers image dans des fichiers Sphinx + Latex Pdf

Aug 17 2020

J'utilise l'outil de documentation Sphinx avec LaTeX pour générer des fichiers pdf.

En essayant d'inclure des images dans le fichier pdf, j'obtiens l'erreur suivante lors de la compilation:

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

Voici quelques variables d'environnement clés:

A. Dans mon conf.py , j'ai défini le chemin absolu comme suit :sys.path.insert(0, os.path.abspath('..'))

B. Voici l'arborescence des répertoires:

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. Pour inclure l'image, j'utilise ce qui suit.

.. image:: /_static/img_file.*

D. J'ai inclus graphix dans le conf.py préambule .

Pourquoi ai-je cette erreur? Quelle est la source de tant de citations "" "dans le message d'erreur?

Éditer

À l'ouverture du *.texfichier dans l' éditeur Tex, voici ce que montre le fragment de code de la section d'insertion d'image:

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

En utilisant le Quick Build, l'éditeur renvoie une erreur comme ci-dessous:

! Erreur package pdftex.def: Fichier `" "" {img_file} ". Jpg 'introuvable: ...

Cependant, lorsque les accolades du nom du fichier image {{img_file}.jpg}sont supprimées et remplacées par (ligne marquée ***):

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

le document se compile avec succès et l'image peut être vue dans le fichier pdf.

Si le .texfichier est enregistré, le fichier pdf dans le dossier _build / latex / affiche l'image.

Alors pourquoi les crochets supplémentaires sont-ils insérés à make latexpdfpartir du terminal?

Réponses

Matt Aug 21 2020 at 07:15

Ne placez pas vos images sous _static. C'est un dossier à usage spécial, pas pour les images. Par exemple, créez modules/execute/img/, déplacez l'image là-bas et .. image:: img/my-image.png.