我正在用 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]
等\DeclareGraphicsExtensions
。pdflatex
,當我嘗試查看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)$