包含jpg圖像,pdflatex中的原始碼編譯不會建立pdf

包含jpg圖像,pdflatex中的原始碼編譯不會建立pdf

我正在用 LaTeX 編寫一個關於程式設計專案的報告,並且需要插入一些圖像。我使用有限元素程式 Freefem++ 建立映像,並將結果保存在映像檔中。我嘗試過 png、jpeg、eps 和 ps,但想使用 jpg,但到目前為止它們都不起作用。我在互聯網上進行了搜索,看起來我的代碼應該可以工作,所以我不確定我錯過了什麼。

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

我嘗試過在資料夾 images 和與文件相同的資料夾中使用該文件,我嘗試過使用和不使用文件副檔名,使用和不使用and[pdftex]\DeclareGraphicsExtensionspdflatex,當我嘗試查看pdf 時,它說它不存在,並詢問我是否已編譯原始程式碼。如果我使用 進行編譯pdftex,它只會建立一個空白的首頁。我已經嘗試了我能想到的一切,我不知道我錯過了什麼。也許我需要在電腦上安裝一個軟體包?或只是程式碼中的一個愚蠢的錯誤?有人看到我的錯誤嗎?先致謝!

答案1

問題:顯然Freefem++創建了LaTeX 無法讀取的 、 等影像.jpg.png感謝上面的評論告訴我這是圖像的問題,我決定嘗試將其轉換為.jpeg(其他格式可能也可以,但我想要jpg)。為此,我從 Linux 終端機安裝了 ImageMagick 包,然後使用命令convert建立domain.jpeg

$ convert domain.JPG domain.jpeg

這使得圖像可用,之後只需對其進行格式化以使其看起來正確即可。

答案2

當我嘗試將 epub 轉換為 pdf 時,我偶然發現了 pandoc 的相同錯誤:

[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)$ 

這是一個解決方法。檢查是否可以產生 tex 檔:

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

將 epub 容器中包含的映像和其他媒體提取到路徑 DIR,必要時創建它,並使用選項 --extract-media= DIR 調整 [LaTeX] 文件中的圖像引用,使它們指向提取的檔案。選擇也包含 ePub 檔案的目前目錄。新增--extract-media=。這意味著在目前目錄中解壓,也就是​​ $HOME/Documents

[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)$ 

透過使用「convert」實用程式(來自 imagemagick 程式套件)建立新的 LaTeX 相容 JPEG 影像來廢除提取的 .jpg 映像

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

並將先前使用 pandoc 提取的 .jpg 映像替換為新建立的 .jpeg 映像:

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

可以在命令列上使用單一 for 迴圈來完成此操作:

[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)$ 

再次運行第一個命令行,但這次讓 LuaTeX 引擎在與先前提取 ePub 圖像的目錄相同的目錄中查找其 \includegraphics ( --data-dir=DIRECTORY 指定用戶資料目錄以搜尋 pandoc 資料檔。如果未指定此選項,則透過新增選項--data-dir= 使用預設的使用者資料目錄(在Unix 中為: $HOME/.pandoc )。 :

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

相關內容