Включая изображение 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 и в той же папке, что и doc, я пробовал с расширением файла и без него, с и без [pdftex]и \DeclareGraphicsExtensionsи т. д. Он компилируется с pdflatexи не выдает ошибок, код выхода 1, затем, когда я пытаюсь просмотреть pdf, он говорит, что его не существует, и спрашивает, скомпилировал ли я исходный код. Если я компилирую с pdftex, он просто создает пустую первую страницу. Я пробовал все, что мог придумать, я не знаю, чего мне не хватает. Может быть, мне нужно установить пакет на свой компьютер? Или просто глупая ошибка в коде? Кто-нибудь видит мою ошибку? Заранее спасибо!

решение1

Проблема: по-видимому, Freefem++создает .jpg, .pngи т. д. изображения, которые не читаются LaTeX. Благодаря комментариям выше, сообщающим мне, что проблема была в изображении, я решил попробовать преобразовать его в .jpeg(другие форматы, вероятно, тоже сработали бы, но я хотел jpg). Для этого я установил пакет ImageMagick из терминала в Linux, затем использовал convertкоманду для создания domain.jpeg:

$ convert domain.JPG domain.jpeg

Это сделало изображение пригодным для использования, после чего оставалось только отформатировать его, чтобы оно выглядело правильно.

решение2

Я столкнулся с той же ошибкой в ​​pandoc при попытке конвертировать epub в pdf:

[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, создав его при необходимости, и настройте ссылки на изображения в документе [LaTeX] так, чтобы они указывали на извлеченные файлы, с помощью параметра --extract-media= DIR . Выберите текущий каталог, который также содержит файл 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)$ 

Удалите извлеченные изображения .jpg, создав новые изображения JPEG, совместимые с LaTeX, с помощью утилиты `convert' (из пакета программ imagemagick)

[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 ищет свой \includegraphics в том же каталоге, куда ранее были извлечены изображения ePub ( --data-dir=DIRECTORY Укажите каталог пользовательских данных для поиска файлов данных pandoc. Если этот параметр не указан, будет использоваться каталог пользовательских данных по умолчанию. В Unix это: $HOME/.pandoc ), добавив параметр --data-dir=. :

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

Связанный контент