Вы находитесь на странице: 1из 27

Вниз ↓

Записки дебианщика
В этом блоге публикуются заметки и решения, найденные в процессе раб
в дистрибутиве Debian GNU/Linux.

Главная Оглавление Скачать Новости Экипаж Лунодром

Дек.
Иллюстрации и рисунки в LaTeX
15
virens ЛаТеХ
Select Language

Этот пост является частью большой статьи


"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика".

Здесь приводятся базовые идеи и примеры, которые вам нужно освоить


для вставки изображений и рисунков в LaTeX. Мы рассмотрим вставку
нескольких рисунков в ряд и оформление групп рисунков, для чего
будем пользоваться окружением minipage. Для набора дипломов по
техническим специальностям приведённых сведений должно хватить.

Подготовка
Для начала работы с изображениями нужно подключить пакет graphicx,
который обеспечивает их вставку в текст документа. Есть много
драйверов для работы с изображениями, но мы будем использовать dvips
- это позволит нам потом сравнительно легко и довольно просто
конвертировать диплом из LaTeX в Word или OpenOffice через формат
RTF, используя открытую программу latex2rtf. Для этого ваши рисунки
нужно конвертировать в EPS, что делается программой convert из пакета
imagemagick или утилитой sam2p. И imagemagick, и sam2p есть в
стандартных репозиториях Debian и ставятся на раз.

Как вставить в LaTeX-документ изображение?


Наверх
Рисунок в технической статье или отчёте - это не просто картинка, а ещё

и подпись к нему, и возможность поставить на рисунок ссылку. Для этогоВниз ↓
сначала в преамбуле документа (это те самые магические заклинания,
которые до \begin{document} ) нужно вставить следующее:

\usepackage[dvips]{graphicx}
\graphicspath{{noiseimages/}}

Рисунки лучше хранить в отдельных каталогах, идеально - для каждой


главы диплома свой каталог. Следует перечислить все каталоги с
рисунками, чтобы ЛаТеХ смог их найти. Делается это так:

\graphicspath{{images-overview/}{images-deconv/}{images-
linearization/}{images-noiseincoding/}{images-linearization
/imagemotion/}{images-opticalcoding/}}

В ЛаТеХе вы только упоминаете рисунок - ставите на него


относительную ссылку при помощи команды
\includegraphics[width=1\linewidth]{image}

Как уже говорилось, если ваш рисунок в формате PNG/TIF/JPG или ещё
каком-нибудь, нужно сначала перевести его в EPS при помощи
программы convert из пакета imagemagick или утилитой sam2p.
Например, чтобы конвертировать файл в EPS программой convert, нужно
дать команду:
convert image.jpg image.eps

После этого копируем полученный eps-файл в каталог, указанный в


\graphicspath{{noiseimages/}}, в данном случае подкаталог noiseimages,
который находится в каталоге с нашим tex-файлом.

Помимо вставки картинки, нам нужна к нему подпись и возможность


сослаться. В общем, мы можем:

1. определить место рисунка в тексте - разрешить алгоритмам ТеХа


принять решение исходя из заполненности страницы \begin{figure}[h]
"хотелось бы картинку здесь", настойчиво просить разместить после
текста \begin{figure}[h!] "очень хочу картинку здесь", и ударить
кулаком по столу - картинку тут и точка \begin{figure}[H] "ХОЧУ
Наверх
картинку здесь и баста", а с прибавлением буквы p мы заставляем

поместить ЛаТеХ картинку отдельно на страницу так:Вниз ↓
\begin{figure}[pH].

2. задать размер изображения в относительных единицах - долях от


ширины строки или текста

3. вставить подпись под рисунком \caption{Зависимость сигнала от шума


для данных.}

4. вставить ссылку на рисунок \label{ris:image}

А теперь всё сразу:

\begin{figure}[h]
\center{\includegraphics[width=1\linewidth]{image}}
\caption{Зависимость сигнала от шума для данных.}
\label{ris:image}
\end{figure}

Результат в документе:

Всё просто и понятно в этом примере: мы разместили рисунок, который


находится в файле image, в тексте - оставляем выбор размещения за
ТеХом. Размер его будет во всю строку, подпись - "Рис.N:Зависимость
сигнала от шума для данных.", где N - номер рисунка, который будет
вставлен позже, во время сборки документа. Расширение у документа не
указывается: если вы используете драйвер dvips, то это обязательно
postscipt. Наверх

Теперь надо ссылаться на рисунок так: как показано наВниз ↓
Рис.~\ref{ris:image} - так вы всегда сошлётесь на правильный рисунок.
Только нужно следить, чтобы имена рисунков не повторялись. Главное -
делать название рисунков осмысленными и понятными вам, а не просто
ris1, ris2... Естественно, что LaTeX - это язык программирования, так что
все советы по грамотному написанию программ уместны и здесь.
Маленькая хитрость: команду \caption{} нужно использовать
обязательно перед \label{}, иначе в документе ссылка будет не на
рисунок, а на текущую subsection.

Полезно запомнить, что ЛаТеХ рассматривает рисунок как одну большую


букву. Поэтому в некоторых сложных случаях полезно применять грубую
силу, т.е. например можно сделать интервал от подписи командой
\vspace{1cm} - не очень изящно, зато действенно.

Два рисунка в строчку


Немного усложним пример - вставим два рисунка в строку, с единой
подписью под каждым. Можно вставить ещё один \includegraphics, но под
рисунками должны быть подписи а) и б) и нужно, чтобы они были по
центру. Для этого есть замечательное окружение \begin{minipage} ..
\end{minipage}. То есть резервируем место под рисунок, и вставляем его
во фрейм. Вот так:

\begin{figure}[h]
\begin{minipage}[h]{0.49\linewidth}
\center{\includegraphics[width=0.5\linewidth]{image} \\ а)}
\end{minipage}
\hfill
\begin{minipage}[h]{0.49\linewidth}
\center{\includegraphics[width=0.5\linewidth]{image} \\ б)}
\end{minipage}
\caption{Зависимость сигнала от шума для данных.}
\label{ris:image1}
\end{figure}

Здесь ширина рисунка указана 1\linewidth то есть во всю строку, но


строка теперь ширины 0.49\linewidth так что рисунок будет во весь
фрейм размера в половину строки. Кроме того, после каждого рисункаНаверх

идётразрыв строки и буква, обозначающая рисунок. Нужно помнить, чтоВниз ↓
ссылка и подпись под рисунками одна.

Результат, как всегда, логичен и приятен:

Команда \hfill позволяет раздвинуть рисунки к краям страницы, как бы


заполняя между ними пространство пустотой. Из приведённых примеров
должно быть понятно, как вставлять несколько рисунков в строку,
теперь немного усложним задачу и попробуем вставить два рисунка в
строчку и два в столбец.

Два рисунка в строчку и два в столбец


Следующий уровень - вставляем рисунки не только в строчку, но и по
столбцам. Идея таже, только после заполнения строчек вставляем
команду \vfill которая растолкнёт рисунки по строкам. Всё остальное
остаётся в силе: используем окружение minipage и грамотно выставляем
ширину этих самых minipage так, чтобы оставался небольшой зазор: для
двух картинок 0.48, для трёх 0.31 и так далее. Собственно, код:

\begin{figure}[H]
\begin{minipage}[h]{0.47\linewidth}
\center{\includegraphics[width=1\linewidth]{image}} a) \\
\end{minipage}
\hfill
\begin{minipage}[h]{0.47\linewidth}
\center{\includegraphics[width=1\linewidth]{image}} \\b)
\end{minipage}
\vfill
\begin{minipage}[h]{0.47\linewidth}
\center{\includegraphics[width=1\linewidth]{image}} c) \\
\end{minipage}
\hfill
\begin{minipage}[h]{0.47\linewidth}
\center{\includegraphics[width=1\linewidth]{image}} d) \\
Наверх
\end{minipage}

\caption{Correlation signal peaks: a) numerical experiment, b) Вниз ↓
registered correlation signals, c) intensity distribution of correlation
signals in numerical experiment, d) correlation signals intensity
distribution for DCRAW processed data.}
\label{ris:experimentalcorrelationsignals}
\end{figure}

Результат:

То есть теперь мы не падаем в обморок от просьбы вставить 12 рисунков


по 3 в ряд. Все идеи те же самые, хотя едва ли в дипломе вам придётся
столкнуться с большим количеством хитро расположенных рисунков.

Два рисунка с разными подписями


Это важный частный случай, так как довольно часто сделать одну
подпись для двух рисунков или длинно, или сложно, и поэтому лучше
выделить их в два отдельных рисунка, но в ряд. Мы не будем
привлекать для этого отдельные сущности, а воспользуемся старым-
добрым minipage. Надеюсь, благодарный читатель ещё помнит, что
ЛаТеХ - он как рельса, прост и бесхитростен, и делает то, что вы ему
прикажете, как бы костыляво это не выглядело:

Наверх

Вниз ↓

Для этого случая код следующий:

\begin{figure}[h]
\begin{center}
\begin{minipage}[h]{0.4\linewidth}
\includegraphics[width=1\linewidth]{image}
\caption{Исходное изображение.} %% подпись к рисунку
\label{ris:experimoriginal} %% метка рисунка для ссылки на него
\end{minipage}
\hfill
\begin{minipage}[h]{0.4\linewidth}
\includegraphics[width=1\linewidth]{image}
\caption{Закодированное изображение.}
\label{ris:experimcoded}
\end{minipage}
\end{center}
\end{figure}

Как видно, всё достаточно легко и просто. Не забываем проставлять


нужные размеры minipage и рисунков, периодически посматривая на
результат в kdvi и корректируя код по ходу дела.

Три рисунка с индивидуальными ссылками


Вариация на тему предыдущего случая, но через subfigure. При этом
можно ссылаться на под-рисунки отдельными ссылками, например "см.
Рис~\ref{fig:actuatorscouplingSheme_decoupledcase} будет отображено
как "Рис 2(а)". Добавляем в преамбулу:

\usepackage{subfigure}

и далее вставляем этот код:

\begin{figure}[ht!]
\vspace{-4ex} \centering \subfigure[]{
\includegraphics[width=0.25\linewidth] Наверх
{actuatorscouplingSheme_decoupledcase.eps} ↑
\label{fig:actuatorscouplingSheme_decoupledcase} } Вниз ↓
\hspace{4ex}
\subfigure[]{
\includegraphics[width=0.25\linewidth]
{actuatorscouplingSheme_nearestcoupledcase.eps}
\label{fig:actuatorscouplingSheme_nearestcoupledcase} }
\hspace{4ex}
\subfigure[]{ \includegraphics[width=0.24\linewidth]
{actuatorscouplingSheme_nearestcoupled_and_diag_case.eps}
\label{fig:actuatorscouplingSheme_nearestcoupled_and_diag_case} }
\caption{Coupling cases for the DM models:
\subref{fig:actuatorscouplingSheme_decoupledcase} decoupled case;
\subref{fig:actuatorscouplingSheme_nearestcoupledcase} coupling between
the closest neighbours;
\subref{fig:actuatorscouplingSheme_nearestcoupled_and_diag_case}
coupling between the closest neighbour and diagonally adjacent actuators.}
\label{fig:threeDMcases}
\end{figure}

В итоге мы получим вот что:

Так что теперь в тексте можем ссылаться отдельно на рисунок 2а, 2b или
2c с помощью команды \ref{}. На самом деле, subfigures умеют намного
больше.

Три рисунка разной высоты


Иногда случается такая партизанская засада, как разномасштабные
рисунки, которые под один размер подгонять нехорошо по смыслу, и
нужно сделать так, чтобы подписи к ним были в одну строчку. Иначе
получается некрасиво: буквы под рисунками в разных положениях. Я не
претендую на истину в последней инстанции, но вот выход, который я
нашёл для себя: Наверх

\begin{figure}[H] Вниз ↓
\begin{minipage}[h]{0.32\linewidth}
\center{\includegraphics[width=0.8\linewidth]{image}}
\end{minipage}
\hfill
\begin{minipage}[h]{0.32\linewidth}
\center{\includegraphics[width=0.4\linewidth]{image}}
\end{minipage}
\hfill
\begin{minipage}[h]{0.32\linewidth}
\center{\includegraphics[width=0.9\linewidth]{image}}
\end{minipage}
\begin{minipage}[h]{1\linewidth}
\begin{tabular}{p{0.32\linewidth}p{0.32\linewidth}p{0.32\linewidth}}
\centering а) & \centering б) & \centering в) \\
\end{tabular}
\end{minipage}
\vspace*{-1cm}
\caption{Процесс кодирования: а) оригинальное изображение, б) ФРТ
киноформа, в) закодированное изображение.}
\label{ris:correlationsignals}
\end{figure}

Как это выглядит в документе:

Здесь игра в том, что после всех окружений minipage, в которых


вставлены картинки, идёт отдельная minipage. В ней - таблица, ширина
колонок которой точно такая же, как и ширина minipage для картинок.
Вот, собственно, код:

\begin{minipage}[h]{1\linewidth}
\begin{tabular}{p{0.32\linewidth}p{0.32\linewidth}p{0.32\linewidth}}
\centering а) & \centering б) & \centering в) \\
\end{tabular}
\end{minipage}
Наверх
Я немного забегаю вперёд и использую таблицы, которые будут↑
описываться в другом разделе, но думаю, что человек с высшимВниз ↓
образованием без труда переведёт слово tabular.

Рисунок с обтеканием текста в LaTeX


В дипломах такие фокусы не приветствуются, но если очень нужно -
делается сравнительно просто пакетом расширения wrapfig. Для это
подключаем этот пакет в преамбуле \usepackage{wrapfig}.

После этого у нас появляется замечательная возможность


продемонстрировать свою невероятную оформительскую крутизну,
используя окружение \begin{wrapfigure}...\end{wrapfigure}, когда нужно
сделать обтекание рисунка:

\begin{wrapfigure}[16]{r}{0.5\linewidth}
\vspace{-5ex}
\includegraphics[width=\linewidth]{image}
\caption{Some caption}
\label{fig:somelabel}
\end{wrapfigure}

Подсвеченные параметры означают:


[16] - определяет высоту рисунка в число строк текста и позволяет
отбить дополнительное место для рисунков.

{r} - положение картинки на странице, можно слева {l} или справа


{r}.
{0.5\linewidth} - ширина картинки в относительных единицах от
ширины линии.

Тонкий момент: на самом деле, параметр положения рисунка на странице


можно писать с маленькой буквы (слева {l} или справа {r}), но это
заставляет ЛаТеХ поместить изображение именно там, где вы прикажете.
Если же ставить большие буквы (слева {L} или справа {R}), то это даст
больше свободы ЛаТеХу.

Ещё тонкость в том, что автоматика может сделать слишком много (или
мало) места в верхней или нижней части обтекаемого рисунка. Вот тут
нам поможет дополнительный аргумент [lineheight], который в данном
примере задан как [16]. Он-то определяет высоту рисунка в строках
текста. Другой возможностью является добавление или удаленияНаверх
промежутков с помощью команды \vspace и данном примере↑
\vspace{-5ex} ЛаТеХу приказывается сместить картинку немногоВниз ↓
вверх, чтобы выиграть место для текста.

Сквозная нумерация рисунков в LaTeX


Часто требуется, чтобы номер рисунка содержал в себе номер главы
(вроде Рис. 1.1). Чтобы была сделана нумерация по главам, достаточно
изменить счётчик рисунков в преамбуле документа вот так:
\renewcommand{\thefigure}{\thechapter.\arabic{figure}}

Обратите внимание на красную точку - она должна присутствовать.


Можно изменить способ, которым формируются счётчики, с помощью
следующих команд:

\arabic{page} 4

\roman{page} iv

\Roman{page} IV

\alph{page} d

\Alph{page} D

Больше узнать о счётчиках можно тут.

Выводы
Вставка изображений в ЛаТеХ - дело очень простое, и оно сэкономит вам
много нервных клеток для более важных дел. Важно то, что со временем
эти конструкции у вас войдут в привычку, и однажды написанный код
начнёт кочевать из работы в работу.

Нравится

47 комментариев: |высказаться!| RSS-лента дискуссии.|


Roman комментирует...
15 дек. 2008 г., 17:10:00

Кроме minipage для объединения нескольких рисунков в один можноНаверх



пользоваться пакетом subfig. Тогда удобно ссылаться на части рисунка. Вниз ↓

Анонимно комментирует...
15 дек. 2008 г., 17:42:00

Михаил, было бы интересно, если бы вы написали статью про ваш опыт


общения с редакциями журналов, которые требуют присылать статьи
только "в Ворде".

Анонимно комментирует...
15 дек. 2008 г., 17:49:00

Совсем не нужно всё в eps преобразовывать.

virens комментирует...
15 дек. 2008 г., 18:47:00

2 Me комментирует...
Кроме minipage для объединения нескольких рисунков в один
можно пользоваться пакетом subfig
Не стоит плодить сущности без крайней необходимости. Minipage
справляется со своей работой, и делает этого хорошо. Ссылаться на
рисунки внутри так же легко, как обычно.

2 Анонимный комментирует...
Михаил, было бы интересно, если бы вы написали статью про ваш
опыт общения с редакциями журналов, которые требуют
присылать статьи только "в Ворде".
Отрицательный опыт общения: кроме вытрепленных нервов и знакомства
с редакциями а-ля-Клуб-кому-за-60, приходится править оформление
статьи под ИХ ворд. Обычно я конвертирую latex2rtf и с каменным лицом
выдаю им со словами "ваш кривой ворд, ничего не знаю". В "Наукоёмких
технологиях", куда меня заставили писать, это прокатило.

2 Анонимный комментирует...
Совсем не нужно всё в eps преобразовывать.
Мне это нужно для: 1. просмотра в dvi, 2. конвертации в RTF и далее в
DOC.

Слушаю ваши предложения по конвертации в DOC латеховского


документа без картинок в EPS. Желательно с примером. Я без иронии -
предлагайте. Включу в текст статьи. Сразу.

Анонимно комментирует... Наверх


16 дек. 2008 г., 04:04:00 ↑
Для рисунков с вложенной нумерацией все же лучше использовать пакетВниз ↓
subfig, тогда ссылки будут иметь вид 1(а), и к номерам не надо вручную
дописывать буквы.

Кроме того, не раскрыта тема рисования схем и графиков


непосредственно в LaTeX (прежде всего, пакеты pstricks и pgf). Будет ли
это предметом отдельной статьи?

mkevac комментирует...
17 дек. 2008 г., 00:09:00

Насколько хороши статьи, насколько воняют они своими "поставьте


ссылку на оригинал".

Анонимно комментирует...
17 дек. 2008 г., 03:40:00

mkevac комментирует...
ну если так сильно воняют то не читай :-). Уважай труд других людей.

Михай а у Вас был опыт печати латевского документа в типографии, если


я им принесу в латексе диплом они мне его распечатаю или даже
открыть не смогут?

Анонимно комментирует...
19 дек. 2008 г., 04:23:00

Михаил, а как сделать рамку вокруг рисунка и подписи к нему? Как


делать рамку вокруг определенного куска текса (код программы).

Анонимно комментирует...
19 дек. 2008 г., 22:21:00

2 Maverick

кажется, так:

\framebox[ширина][расположение]{содержимое}

Расположение текста внутри бокса:


* c -- по центру (default)
* l -- слева
* r -- справа
* s -- выравнивание по обоим краям (текст
дложен содержать
Наверх
растяжимые пробелы, чтобы данный вариант сработал)

Вниз ↓
Миша.

Анонимно комментирует...
21 дек. 2008 г., 10:21:00

Михаил, почитал ваши посты, великолепно написано, спасибо за


материал.

Мысль пришла:
У вас везде стоит одна фраза копирайтная:
"Этот материал написал Михаил Конник aka virens и опубликовал на
своём блоге Записки дебианщика."

Имхо, ее легко вычистить sed`ом и подобными инструментами. Надо


разнообразить:

"Материал сей Конник "virens" Михаил выложил на блоге сем -


Дебианщика Скрижали."

"Virens aka, Конник Михаил написал труд сей, в "Записках дебианщика"


выложил он в блоге."

"Труд Конник сей написал, Михаил, Virens аки, в "Записках", выложил


он, "Дебианщика", блоге том"...

и т.д. ;)))

Анонимно комментирует...
28 янв. 2009 г., 05:52:00

У меня почему-то вместо рисунка пустая рамка. Такая ситуация в Debian


Etch и в Ubuntu 8.04 - всё та же пустая рамка вместо рисунка. Что
делать? Мне ведь надо скоро сдавать. Если у LaTeX'а такие серъёзные
проблемы со вставкой рисунков, то от него придётся отказаться в пользу
OpenOffice.org, там хоть проблем с рисунками нету.

Анонимно комментирует...
19 мар. 2009 г., 01:33:00

Спасибо за статью. Все, конечно, хорошо, но как поменять вывод


\caption{Название рисунка}?
Латех выводит по умолчанию следующую конструкцию:
Наверх

Рис. Х: Название рисунка Вниз ↓

- ни один нормоконтроллер не пропустит такой диплом или другой


технический документ.
Сейчас по ГОСТ название рисунка должно быть приведено слудующим
образом:

Рисунок Х - Название рисунка

То же с таблицами, только надпись должна быть вверху таблицы.


Было бы неплохо это отразить.
Что-то похожее по этому вопросу нашел здесь
http://samolisov.blogspot.com/2008/06/latex_12.html , но у меня пока не
работает. :( Ищу решение...

Анонимно комментирует...
12 апр. 2009 г., 20:11:00

\addto\captionsrussian{
\def\figurename{Рисунок}
}

У меня-то больше всего гемора было с созданием этих самых eps.


Большая часть рисунков была изначально в visio.

Пробовал сначала в Visio 2002 -> eps. Результата жуть как корявый.

Пробовал Visio->svg svg->Inskape->eps


Результат лучше, однако есть проблемы (стрелки на линиях,
многострочные надписи).

В итоге остановился на виртульном принетере. Результат отличный,


однако надо очень внимательно следить за размером бумаги и
масштабировать под него картинку.

Анонимно комментирует...
30 апр. 2009 г., 05:08:00

также можно создавать eps в Dia, всегда так делаю

Unknown комментирует...
3 июн. 2009 г., 17:36:00

Наверх
Спасибо, Михаил, очень хорошая статья!

Маша комментирует... Вниз ↓
5 июн. 2009 г., 16:48:00

Помогите! В YAp картинки eps показываются как надо, а при печати они
маленькие и в углу страницы. В чем проблема?

Unknown комментирует...
22 июн. 2009 г., 09:57:00

Использую сочетание Ubuntu->Kile, если делать как всё написано, но в


конечном pdf-е boundingbox отрисовывается, однако картинки не
отображаются. В условиях цейтнота потратил массу драгоценного
времени, но всё-таки нашёл, на форуме убунты что:

\usepackage[dvips]{graphicx}
надо заменить на
Code:
\usepackage{graphicx}

is enough. graphics will be loaded by graphicx. Don't set driver options like
dvips and pdftex if it's not really necessary, it should be automatically
detected.

В результате всё заработало.

Анонимно комментирует...
19 нояб. 2009 г., 20:44:00

Спасибо большое за статью!

При применении рецептов возникла одна проблема. В подписях к


рисункам необходимо использовать математику (типа $\lambda 6439
\AA$), но компилятор выдаёт ошибку ! Argument of \Hy@tempa has an
extra }.

может что-то ещё надо дописать/довключить? гугление дало пару


страничек на английском, где присоветовали воспользоваться \protect, но
я чайник и не очень понимаю, как это сделать.

Буду очень благодарна за любую помощь =)

Алина
Наверх
Unknown комментирует...

3 дек. 2009 г., 22:08:00 Вниз ↓

Спасибо очень просто и наглядно описано, сам пищу жиплом, часто


читаю эти заметки.

Анонимно комментирует...
24 янв. 2010 г., 23:23:00

"...После этого копируем полученный eps-файл в каталог..."


Подскажите, пожалуйста, какова последовательность действий. Я хотел
бы вставить рисунок. Рисунок был в gif я его конвертировал с помощью
программы VectorMagic в eps. эта картинка у меня на рабочем столе,
теперь я не знаю как её вставить. Вот на этом я остановился:
\documentclass[a4paper,12pt,oneside]{scrartcl}
\usepackage[english,russian]{babel}
\usepackage[dvips]{graphicx}
\graphicspath{{noiseimages/}}

что дальше нужно сделать?


Заранее благодарен.

Unknown комментирует...
14 июн. 2010 г., 06:54:00

Использую сочетание Ubuntu->Kile, если делать как всё


написано, но в конечном pdf-е boundingbox отрисовывается,
однако картинки не отображаются.

А тут всё проще надо просто в преамбулу документа там где писали
\usepackage[dvips]{graphicx} добавить всего pdftex и получим
\usepackage[dvips,pdftex]{graphicx}
и будет Вам счастье. Только изображения должны быть в формате любом
из png, pdf, jpg, mps, tif.
Так как автор в начале статью указал, что будет рассматриваться
драйвер dvips из пакета graphicx, потому и не было описание драйвера
pdftex, который умеет вставлять рисунки в документы pdf.
Дополнительно можно почитать Включение рисунков в LATEX2(автор
Сюткин)

Unknown комментирует...
14 июн. 2010 г., 07:01:00

"...После этого копируем полученный eps-файл в каталог..."


Наверх
\documentclass[a4paper,12pt,oneside]{scrartcl}

\usepackage[english,russian]{babel} Вниз ↓
\usepackage[dvips]{graphicx}
\graphicspath{{noiseimages/}}
что дальше нужно сделать?
Заранее благодарен.
Указать путь к рисунку это строка
\graphicspath{{noiseimages/}} где в фигурных скобках а unix стиле надо
указать путь к рисунку.
Например если рисунок на рабочем столе:
С:/Document and Settings/admin/Рабочий стол/
а потом как в статье описано.
но лучше рисунок положить там где у Вас документ Latex.

Анонимно комментирует...
27 июн. 2010 г., 06:38:00

Подскажите, плз, с помощью какой приблуды можно в ЛаТеХе вставлять


картинки фоновым изображением. Очень нужно. Наверное, это звучит
жутким извращением, но нужно. Вот для плаката (постера) формата А0,
к примеру. Ведь Ворд и ХТМЛ позволяют вставлять фоновое
изображение... Наверное и ЛаТеХе есть такая возможность?

Анонимно комментирует...
1 нояб. 2010 г., 22:16:00

Добрый день!
У вас замечательное руководство, но вот я столкнулся с такой
проблемой:
Вставляя рисунки в статью, я размещал сначала метку, а потом рисунок.
Выглядело это примерно так:
\begin{figure}
\label{fig:figure1}
\includegraphics[width=1\linewidth]{fig1}
\vskip-6mm
\caption{Подпись к рисунку 1}
\end{figure}

Но получилось, что при такой расстановке LaTeX отображает совершенно


неправильные номера рисунков в ссылках (\ref{fig:figure1}). Дело в том,
что читая вашу статью, я нигде не встречал акцента на том, что
положение метки внутри блока рисунка может как-то повлиять
правильность нумерации. Поэтому очень долго возился и не мог понять,
Наверх
в чём ошибка.

Почитав разные страницы в интернете по этому поводу попал, наконецВниз ↓
на Wikibooks, где пишут, что метку обязательно располагать после
"\caption"

\begin{figure}
\includegraphics[width=0.5\textwidth]{gull}
\caption{Close-up of a gull}
\label{fig:gull}
\end{figure}

или даже внутри "\caption"

\caption{Close-up of a gull\label{gull}}

Я расставил метки, как они рекомендуют, и вся нумерация выстроилась


верно.
Не знаю, влияет ли положение метки в соответствующем блоке на
правильность нумерации для формул и таблиц, но мне кажется, было бы
неплохо в этой статье обратить внимание читателя где-нибудь на этот
момент.

Спасибо.

Anton комментирует...
7 дек. 2010 г., 23:50:00

Здравствуйте.
Насколько я понимаю, ЕПС - это векторные изображения, которые
получается достаточно корявыми, когда конвертируются из сложых
картинок растровых джипегов.
Поэтому вопрос: есть ли возможность напрямую по-человечески
вставлять картинки в формате jpg(или bmp)?

Анонимно комментирует...
24 янв. 2011 г., 05:28:00

Вы правы, на тот вектор, что imagemagick делает из растра, луч не


смотреть. Возможность, конечно же, есть: не нужно для пакета graphicx
указывать никаких опций.

Насчёт EPS: во всём виноват pdflatex, он плохо дружит с eps. Можно


сконвертировать EPS в PDF утилитой epspdf из пакета texlive-pictures.
Наверх
Владимир комментирует... ↑
21 мар. 2011 г., 01:38:00 Вниз ↓

Друзья, подскажите, пожалуйста. никак разобраться не могу (чайник в


ЛаТеХе).
Такой код:

\begin{figure}[h]
\center{\includegraphics[width=1\linewidth]{lalal}}
\caption{график}
\end{figure}

Тех это все компилирует, но в пдф файле, на месте, где должен быть
рисунок, "Белый квадрат на белом фоне", а под ним подпись, дальше
текст нормальный. Причем рисунок нормально распознается ГСВью и
сохранен в формате .епс

Подскажите, в чем тут дело?

Заранее Благодарен!

Анонимно комментирует...
28 мар. 2011 г., 21:09:00

Подскажите, пожалуйста, как можно обвести рамкой уже сделанный в


паскале рисунок графика функции, нанести подписи осей координат и
подписать деления на осях координат. Заранее благодарна. Екатерина.

Анонимно комментирует...
4 июн. 2011 г., 23:41:00

СПАСИБО ОГРОМНОЕ) Нигде не мог найти работающее обтекание)

Анонимно комментирует...
21 окт. 2011 г., 00:15:00

Спасибо.
При посике ответов на вопросы ваша статья оказалась самой удачной.

Анонимно комментирует...
31 мар. 2012 г., 11:50:00

хорошая статья! подскажите пожалуйста как можно уйти от грубой силы


\vspace{1cm}
в формулах изменил. остались рисунки с подписями. задача - нужно
Наверх
чтобы была пустая строка до рисунка, между рисунком и подписью, и

после подписи. теоретически нашел, что подпись можно отрегулировать Вниз ↓
\abovecaptionskip=2cm
\belowcaptionskip=2cm
но пока не заработало.

virens комментирует...
3 июн. 2012 г., 21:59:00

Автор здесь.

Пост обновил, убрал лирику, добавил про subfigure и wrapfigure.

Quickern
Ну и вопросики тут в комментариях задают. Товарищи, будьте
добры, посмотрите в Львовском

Жёлтая карточка: если бы во Львовском было всё так просто, поста бы


не было. Там дофига того, что вообще никому не нужно. Комментарий
снесён.

@mkevac комментирует...
Насколько хороши статьи, насколько воняют они своими
"поставьте ссылку на оригинал".

Меня достали идиоты, которые копипастят статьи и пишут под ними:


"автор - вася пупкин". Но ссылки на оригинал убрал.

Да, ещё добавил про subfigures.

iv_vl комментирует...
4 июн. 2012 г., 02:13:00

Методы создания рисунков у тебя… для диссертации, не меньше; для


статей так поступать нельзя, ибо там «чем проще, тем лучше». LaTeX —
это не MS Word, а умная и очень гибкая программа вёрстки, а ты рубишь
с плеча, не даёшь LaTeX'у проявить себя. Везде только [h] и даже [H] —
чтобы уж прибить, так прибить. Вначале осваиваются простые средства,
философия LaTeX, а ты пишешь так, как будто без minipage ничего не
получится, а от подобного увлечения minipage новичку — только вред.

Скромно умолчал, что помимо позиций [h], [h!], [H] и [pH] есть ещё и
другие. Там же указано, что для [H] нужет дополнительно пакет float.
Наверх
Рисунок внутри wrapfig может не только обтекаться справа/слева, там

ещё какие-то хитрые опции. Вниз ↓

С кучей hspace и vspace, мне кажется, ты перемудрил, почему просто не


использовать такие возможности includegraphics как trim? Ещё и
окружение tabular зачем-то задействовал, хочешь задавить новичков
силой интеллекта? Мне видится это лишним, ведь в minipage можно
указать не только ширину, но и высоту. Загляни сюда — обнаружишь
много полезного про окружения. Подписи в виде «ris:foo» немного режут
глаз, общепризнанным считается «fig:foo». Отдельное спасибо за
subfigure и то, что метку label на рисунок можно ставить после caption, я
всё время помещал только внутрь: \caption{\label{fig:foo}}.

За изменившуюся раскраску кода можно поблагодарить


безмозглых идиотов из команды разработчиков KDE, убравших из
Kwrite эту возможность.
virens, сколько можно, Kwrite создан не для работы, а для красоты же!
Другие редакторы работают с большими документы, от которых Kwrite
уходит в себя. У тебя же есть vim, вот как раз поле для демонстрации
его преимуществ, чтобы всякие имаксеры сильно не задавались.

Serzh_M комментирует...
17 окт. 2012 г., 09:24:00

Подскажите, в чем может быть проблема. При вставке ссылки на рисунок


(\ref{бла-бла-бла}) вместо ссылки появляются два "??". Положение
\label менял внутри блока - без толку. Документы набираю большие и
неудобно вспоминать, где и какой рисунок по номеру идет.

virens комментирует...
28 окт. 2012 г., 12:32:00

@iv_vl

LaTeX - это не MS Word, а умная и очень гибкая программа


вёрстки
Для набора диплома не нужна вся гибкость и мощь, и эта серия постов
направлена именно на это. Я уже писал в комментах выше.

За дополнительные ссылки спасибо.

virens, сколько можно, Kwrite создан не для работы, а для


красоты же!
Наверх
iv_vl, если я не пользуюсь Емаксом, как ты, это не означает, что я враг

народа. У меня свои привычки и я не вижу смысла их менять. Вниз ↓

Kate/Kwrite созданы для работы с текстом - посмотри, пожалуйста, в


Help-About. Там предельно ясно обозначено назначение этих программ. И
я их использую именно по их прямому назначению - правлю в них текст.

Разработчики КДЕ - идиоты, потому что они не делают то, что они
должны. Разработчик должен создавать новые фичи и фиксить старые
баги, а не заниматься хернёй вроде переписывания всего на QT4,
попутно вышвыривая в окно половину функций КДЕшных программ.

И не надо говорить, что "это опенсорс, детка, и тебе никто ничего не


должен". Не можешь\не хочешь - не делай. Во всяком случае, не надо
портить то, что хорошо работало, и нет, не надо переизобретать
текстовый редактор.

В тему поста. Пост, на самом деле, перестаёт мне нравится - его надо
распилить на два, но у меня нет на это времени. Ты прав, что я начал
добавлять слишком навороченные трюки. Надо писать новый пост и
выносить это туда. На новогодних праздниках попробую это сделать.

@Serzh_M комментирует...
При вставке ссылки на рисунок (\ref{бла-бла-бла}) вместо
ссылки появляются два "??".
Это значит буквально то, что метка в \label{blah} и то, на что вы
ссылаетесь \ref{блабла} не совпадают. Это бывает, если вы используете
метки на других языках (вместо английской C в метке может быть
русская), или используете неправильные символы (типа процентов, или
пробелов).

Скорее всего, вы поставили ссылку типа \label{blah }, а ссылаетесь на


\ref{blah} <- пробела перед последней скобкой нет.

Serzh_M комментирует...
29 окт. 2012 г., 00:10:00

Спасибо за совет, проблема решилась установкой миктеха с нуля вкупе с


техстудио, ссылки только на английском были, и все заработало. Тут
другая проблема накатилась, в полностью написанной лекции весь
русский текст заменился на "?".
Наверх
Анонимно комментирует...

16 янв. 2013 г., 05:38:00 Вниз ↓

Как убрать разрыв между картинкой и текстом?

Unknown комментирует...
8 мар. 2013 г., 01:43:00

Здравствуйте. Не получается вставить 3 картинки в горизонтальный ряд


с разными подписями. Необходимо чтобы у первых двух картинок была
общая подпись, а у оставшейся третьей, отдельная подпись.

Анонимно комментирует...
12 мая 2013 г., 20:34:00

>Естественно, что LaTeX - это язык программирования, так что все


советы по грамотному написанию программ уместны и здесь.

Это не язык программирования, это язык разметки!


Банально, но по глазам резануло.

И спасибо за статьи!

Анонимно комментирует...
1 окт. 2013 г., 06:47:00

Самая большая проблема - обтекание рисунков текстом. wrapfigure


нормально работает если рисунков... ну... несколько. Если рисунков
всего штук 20 и на каждой странице по паре-тройке то... все начинает
расползаться ужасным образом. Диплом или диссер не требует
обтекания, а автореферат и книжки - требуют. А тут наступает большой
и пушистый упс, что ставит крест на идее использования Латеха для
книжек.
---
Второе - пусть два рисунка рядом, но подпись к одному занимает две
строчки, а к другому три. Выравнивание идет по рисунку ВМЕСТЕ текстом
- т.е. рисунки смещаются по вертикали, что неправильно.
Как быть? Как жить?

Katerina комментирует...
28 окт. 2013 г., 08:57:00

Спасибо!!!

Катерина комментирует...
2 мая 2014 г., 17:27:00 Наверх

Здравствуйте! Спасибо за замечательное руководство. Столкнулась сВниз ↓
такой же проблемой, как и Владимир постов 10 назад, но решения не
увидела. Я конвертировала файл в eps ( а потом на всякий случай и
обратно, чтобы убедиться, что правильная конвертация), подключила
библиотеку \usepackage[dvips]{graphicx}, далее использую набор
команд, указанные в самом начале статьи для вставки одного рисунка,
только на месте image my_im.eps или просто my_im (пробовала и так и
так), а также как в Львовском, а также без дополнительных опций после
includegrafics перед названием изображения. Результат один и тот же -
при конвертации в pdf на месте изображения пустое место. Что же
делать? Буду очень благодарна за совет!

Анонимно комментирует...
9 дек. 2014 г., 22:18:00

очень полезная статья, спасибо

Анонимно комментирует...
15 дек. 2014 г., 06:14:00

Здравствуйте. Пытаясь вставить рисунок в техе получается постое место.


Я его перевела в eps-формат и проверила GSView рисунок есть, а при
вставке в текст что-то непонятное. Мой код следующий
\begin{figure}[bh]
\noindent\centering{
\includegraphics[width=120mm]{pic1.eps}
}
\caption{ Геометрия спая: $0<r\le r_1$ - стекло и $r_1<r\le r_2$ -
металл, пример спая сжатия с металлом}
\label{pic1}
\end{figure}
Рисунка нет, а вот подпись есть. Что недо делать?

Анонимно комментирует...
8 янв. 2015 г., 02:00:00

Уберите расширение рисунка, напишите


\includegraphics[width=120mm]{pic1}

Анонимно комментирует...
10 сент. 2015 г., 04:39:00

Добрый вечер. У меня та же проблема - рисунок при конвертации tex в


pdf отсутствует. Проверял свои рисунки в esp, пытался включить из
Наверх
библиотеки TeX - результат отрицательный. Ссылка корректная, место

под рисунок резервируется в соответствии с параметрами. В чем можетВниз ↓
быть еще загвоздка? И еще один вопрос - не центрируется подпись к
рисунку. Спасибо.

Анонимно комментирует...
11 сент. 2015 г., 06:08:00

В добавление к предыдущему. Оказалось, что при обработке в MikTex-


Texworks рисунки отсутствуют, а LaTex выдает все нормально. По поводу
центрирования подписи к рисунку. Эта ситуация возникла при длинной
подписи и пришлось воспользоваться \newline. В этом случае \centering
не распространяется на подпись. В принципе ситуация не тупиковая -
проблемы разрешимы. Спасибо за прекрасное руководство.

Отправка комментария

Введите комментарий...

Подпись комментария: Аккаунт Google

Опубликовать Предварительный просмотр

Подписаться на RSS-ленту комментариев к этому посту.

Следующее Предыдущее
Главная страница

Материалы сайта «Записки дебианщика» написаны virens’ом и доступны на условиях лицензии Creative Commo
Alike 3.0 Unported License. Вы можете копировать, распространять, показывать эту работу, и создавать производн
условиях:
1) обязательной ссылки на автора (virens, http://mydebianblog.blogspot.com/);
Наверхобязательн
2) распространении любых производных работ на условиях этой же лицензии (ссылка на эту лицензию
Пожалуйста соблюдайте условия лицензии Creative Commons Attribution-Noncommercial-Share ↑Alike 3.0 Unported
Конник aka virens. Вниз ↓

Наверх

Вам также может понравиться