Come includere file immagine nei file Pdf Sphinx + Latex

Aug 17 2020

Sto usando lo strumento di documentazione Sphinx insieme a LaTeX per generare file pdf.

Durante il tentativo di includere immagini nel file pdf, durante la compilazione viene visualizzato il seguente errore:

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

Queste sono alcune variabili di ambiente chiave:

R. Nella mia conf.py , ho definito il percorso assoluto come:sys.path.insert(0, os.path.abspath('..'))

B. Questo è l'albero delle directory:

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. Per includere l'immagine sto usando quanto segue.

.. image:: /_static/img_file.*

D. Ho incluso graphix nel conf.py preambolo .

Perché ricevo questo errore? Qual è l'origine di così tante virgolette "" "nel messaggio di errore?

modificare

All'apertura del *.texfile nell'editor Tex , questo è ciò che mostra il frammento di codice dalla sezione di inserimento dell'immagine:

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

Usando il Quick Build, l'editor genera l'errore come sotto:

! Pacchetto pdftex.def Errore: File "" "" {img_file} ". Jpg 'non trovato: ...

Tuttavia, quando le parentesi graffe dal nome del file di immagine {{img_file}.jpg}vengono rimosse e modificate in (riga contrassegnata con ***):

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

il documento viene compilato correttamente e l'immagine può essere visualizzata nel file pdf.

Se il .texfile viene salvato, il file pdf nella cartella _build / latex / mostra l'immagine.

Allora perché le parentesi extra vengono inserite durante make latexpdfdal terminale?

Risposte

Matt Aug 21 2020 at 07:15

Non posizionare le tue immagini sotto _static. È una cartella speciale, non per le immagini. Ad esempio modules/execute/img/, crea , sposta l'immagine lì e .. image:: img/my-image.png.