Beim Einfügen eines JPG-Bildes wird durch die Quellcodekompilierung in PDFlatex kein PDF erstellt.

Beim Einfügen eines JPG-Bildes wird durch die Quellcodekompilierung in PDFlatex kein PDF erstellt.

Ich schreibe einen Bericht über ein Programmierprojekt in LaTeX und muss einige Bilder einfügen. Ich habe Bilder mit dem Finite-Elemente-Programm Freefem++ erstellt und die Ergebnisse in Bilddateien gespeichert. Ich habe es mit PNG, JPEG, EPS und PS versucht, würde aber gerne JPG verwenden, und bisher funktioniert keines davon. Ich habe das ganze Internet durchsucht, und es scheint, als ob mein Code funktionieren sollte, also bin ich mir nicht sicher, was mir fehlt.

\documentclass[a4paper,11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage[pdftex]{graphicx}
%\graphicspath{{images/}}
 \DeclareGraphicsExtensions{.pdf,.jpeg,.png,.jpg}   

\usepackage[english]{babel}
\begin{document}

\section*{Introduction}
\addcontentsline{toc}{section}{Introduction}


The domain considered will be

\begin{figure}
\begin{center}
\includegraphics{domain.jpg}
\end{center}
\end{figure}

\end{document}

Ich habe es mit der Datei in einem Ordner „images“ und im selben Ordner wie das Dokument versucht, ich habe es mit und ohne die Dateierweiterung versucht, mit und ohne [pdftex]und \DeclareGraphicsExtensionsusw. Es kompiliert mit pdflatexund gibt keine Fehler aus, Exitcode 1, dann, wenn ich versuche, das PDF anzuzeigen, heißt es, es existiere nicht, und fragt, ob ich den Quellcode kompiliert habe. Wenn ich mit kompiliere pdftex, wird nur eine leere erste Seite erstellt. Ich habe alles versucht, was mir einfällt, ich weiß nicht, was mir fehlt. Vielleicht ein Paket, das ich auf meinem Computer installieren muss? Oder nur ein dummer Fehler im Code? Sieht jemand meinen Fehler? Vielen Dank im Voraus!

Antwort1

Das Problem: Freefem++Erstellt anscheinend Bilder mit den .jpgBuchstaben , .png, usw., die von LaTeX nicht gelesen werden können. Dank der Kommentare oben, die mir sagten, dass es ein Problem mit dem Bild war, beschloss ich, es in zu konvertieren .jpeg(andere Formate hätten wahrscheinlich auch funktioniert, aber ich wollte jpg). Dazu installierte ich das ImageMagick-Paket vom Terminal in Linux aus und verwendete dann den convertBefehl zum Erstellen von domain.jpeg:

$ convert domain.JPG domain.jpeg

Dadurch wurde das Bild nutzbar, danach musste es nur noch formatiert werden, damit es richtig aussieht.

Antwort2

Beim Versuch, EPUB in PDF zu konvertieren, bin ich mit Pandoc auf denselben Fehler gestoßen:

[macfarlane@boulder]:(~/Documents)$ pandoc -s -t latex --toc --chapters \
    --latex-engine=lualatex $BOOK.epub -o $BOOK.pdf
!LuaTeX error (file /tmp/tex2pdf.23440/3f21bef8dd2877aad72f5cddbf00284ca88fa0e7
.jpg): reading JPEG image failed (no marker found)
 ==> Fatal error occurred, no output PDF file produced!

pandoc: Error producing PDF
[macfarlane@boulder]:(~/Documents)$ 

Hier ist ein Workaround. Überprüfen Sie, ob eine Tex-Datei erstellt werden kann:

[macfarlane@boulder]:(~/Documents)$ pandoc \
    -s -t latex \
    --toc --chapters \
    --latex-engine=lualatex $BOOK.epub -o $BOOK.tex
[macfarlane@boulder]:(~/Documents)$ 

Extrahieren Sie Bilder und andere Medien, die im ePub-Container enthalten sind, in den Pfad DIR, erstellen Sie ihn bei Bedarf und passen Sie die Bildreferenzen im [LaTeX]-Dokument so an, dass sie auf die extrahierten Dateien verweisen, mit der Option --extract-media= DIR . Wählen Sie das aktuelle Verzeichnis aus, in dem sich auch die ePub-Datei befindet. Fügen Sie --extract-media=. hinzu, was bedeutet, dass im aktuellen Verzeichnis extrahiert wird, das auch $HOME/Documents ist.

[macfarlane@boulder]:(~)$ cd Documents
[macfarlane@boulder]:(~/Documents)$ pandoc \
    -s -t latex \
    --toc --chapters \
    --latex-engine=lualatex \
    --extract-media=. $BOOK.epub -o $BOOK.tex
pandoc: extracting ./images/9781501144158.jpg
pandoc: extracting ./images/com-01.jpg
pandoc: extracting ./images/f0003-01.jpg
pandoc: extracting ./images/f0005-01.jpg
[ ----- extract-media logging shortened ---- ]
pandoc: extracting ./images/f0177-01.jpg
pandoc: extracting ./images/f0187-01.jpg
pandoc: extracting ./images/logo.jpg
pandoc: extracting ./images/logo1.jpg
pandoc: extracting ./images/title.jpg
[macfarlane@boulder]:(~/Documents)$ 

Heben Sie die extrahierten JPG-Bilder auf, indem Sie mit dem Dienstprogramm „convert“ (aus der ImageMagick-Programmsuite) neue, LaTeX-kompatible JPEG-Bilder erstellen.

[macfarlane@boulder]:(~/Documents)$ cd images
[macfarlane@boulder]:(~/Documents/images)$ convert logo1.jpg logo1.jpeg 

und ersetzen Sie die zuvor mit Pandoc extrahierten .jpg-Bilder durch die neu erstellten .jpeg-Bilder:

[macfarlane@boulder]:(~/Documents/images)$ mv logo1.jpeg logo1.jpg 

Dies kann mit einer einzelnen For-Schleife in der Befehlszeile erreicht werden:

[macfarlane@boulder]:(~/Documents)$ 
[macfarlane@boulder]:(~/Documents)$ cd images/
[macfarlane@boulder]:(~/Documents/images)$ for i in *.jpg; do convert $i `echo $i | sed 's/jpg/jpeg/'`; done
[macfarlane@boulder]:(~/Documents/images)$ rm -f *.jpg
[macfarlane@boulder]:(~/Documents/images)$ for i in *.jpeg; do mv $i `echo $i | sed 's/jpeg/jpg/'`; done 
[macfarlane@boulder]:(~/Documents/images)$ cd ..
[macfarlane@boulder]:(~/Documents)$ 

Führen Sie die erste Befehlszeile erneut aus, aber lassen Sie die LuaTeX-Engine dieses Mal nach ihren \includegraphics im selben Verzeichnis suchen, in dem die ePub-Bilder zuvor extrahiert wurden ( --data-dir=DIRECTORY Geben Sie das Benutzerdatenverzeichnis an, in dem nach Pandoc-Datendateien gesucht werden soll. Wenn diese Option nicht angegeben ist, wird das Standardbenutzerdatenverzeichnis verwendet. Dies ist unter Unix: $HOME/.pandoc ), indem Sie die Option --data-dir=. hinzufügen:

[macfarlane@boulder]:(~/Documents)$ pandoc \
    -s -t latex \
    --toc --chapters \
    --latex-engine=lualatex \
    --data-dir=. $BOOK.epub -o $BOOK.pdf
[macfarlane@boulder]:(~/Documents)$ 

verwandte Informationen