2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Вставка графиков в 2 столбца
Сообщение18.01.2019, 18:55 
Аватара пользователя


17/03/17
683
Львів
Здравствуйте.
Хочу вставить графики одинакового размера с подписью к каждому графику отдельно так, чтобы на одной странице было 2 столбца и 3 строки (т.е. по 6 графиков на страницу, (для графиков хочу выделить отдельные страницы без текста)). Я сделал так, что просто дублирую 3 раза такой блок

Используется синтаксис LaTeX
\begin{figure}[p]
\begin{minipage}[p]{0.45\linewidth}
\center{\includegraphics[width=1\linewidth]{1.pdf}}
\caption{...}
\end{minipage}
\hfill
\begin{minipage}[p]{0.45\linewidth}
\center{\includegraphics[width=1\linewidth]{2.pdf}}
\caption{...}
\end{minipage}
\end{figure}
 

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

Изображение

а хочется чтобы было вот так

Изображение

Может какой-то самый простой блок команд есть чтобы картинки можно было как елементы матрицы вставлять?

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение18.01.2019, 20:25 
Заслуженный участник
Аватара пользователя


31/01/14
11056
Hogtown
Не занимайтесь фигней и используйте пакет subfig

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение18.01.2019, 22:04 
Аватара пользователя


17/03/17
683
Львів
Red_Herring, нашел пример с subfig, попробовал так

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[14pt]{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage[left=10mm, top=20mm, right=10mm, bottom=20mm]{geometry}

\begin{document}

\begin{figure}
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\end{figure}

\end{document}
 

и получил вот так

Изображение

Проблемы:
1) Нужно убрать вертикальный отступ сверху.
2) Нужно сделать одинаковые отступы слева и справа (если добавить \centering, то если графиков нечетное число, то последний будет посередине, чего не нужно).
3) Нужно уменьшить горизонтальный отступ между графиками.
4) Нужно сделать описание для каждого графика отдельно, но использование \caption для каждого графика отдельно выдает ошибку. Если же писать описание в квадратных скобках, то будут латинские буквы a, b, c,..., как их убрать непонятно.
5) Если есть много графиков, то получается

Изображение

Подскажите, пожалуйста, что можно сделать?

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение18.01.2019, 22:35 
Заслуженный участник
Аватара пользователя


31/01/14
11056
Hogtown
Естественно. Сколько картинок? У вас там 3..

Я обычно

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\begin{figure}[h]
\centering
\subfloat[]{%
\includegraphics{buka}}
\quad
\centering
\subfloat[]{%
\includegraphics{kaka}}

\subfloat[]{%
\includegraphics{buka2}}
\quad
\centering
\subfloat[]{%
\includegraphics{kaka2}}

\subfloat[]{%
\includegraphics{buka3}}
\quad
\centering
\subfloat[]{%
\includegraphics{kaka3}}
\end{figure}


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

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение18.01.2019, 23:08 
Аватара пользователя


17/03/17
683
Львів
Red_Herring, у меня 15 картинок. Попробовал сделать как в примере, но проблемы остались.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 00:02 
Заслуженный участник
Аватара пользователя


31/01/14
11056
Hogtown
misha.physics
Ну я бы ставил по 3 картинки в ряд.

Не знаю вашего documentclass и окружения трудно что-либо сказать. Про вертикальные расстояния ничего сказать невозможно, т.к. каково отношение высоты и ширины картинок вы не написали. Еще одна возможная проблема: картинки могут содержать верхние/нижние/правые/левые поля (margins), которые вы не видите, но LaTeX их не игнорирует. Если это так, их надо "обрезать".

Наконец, у вас очень много картинок, и обычно LaTeX такого "не любит", чтобы много картинок на страницу. Возможно у вас больше чем одна страница, или картинки начинаются не на самом верху страницы, и затем их надо продолжить на следующую страницу.

Все это делается, но надо самому пытаться, потому что некоторые проблемы очень конкретные.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 00:12 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Ещё есть команда \raggedbottom, чтобы высоты страниц не выравнивались.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 00:18 
Аватара пользователя


17/03/17
683
Львів
Red_Herring, мой documentclass можете посмотреть здесь (я выше приводил полный комплируемый код)

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[14pt]{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage[left=10mm, top=20mm, right=10mm, bottom=20mm]{geometry}

\begin{document}

\begin{figure}
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.55\columnwidth]{name.pdf}}
\end{figure}

\end{document}
 

Вот какой результат (страницу) я получаю

Изображение

-- 18 янв 2019, 23:19 --

Хорошо, пусть будет по 3 картинки в ряд, так даже лучше.

-- 18 янв 2019, 23:21 --

Просто графиков много и я решил их размещать не среди текста, а в конце, на отдельных страницах, что-то вроде дополнения (как таблицы, диаграммы и т. д. делают).

-- 18 янв 2019, 23:23 --

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

-- 18 янв 2019, 23:25 --

Someone,
Someone в сообщении #1369828 писал(а):
Ещё есть команда \raggedbottom, чтобы высоты страниц не выравнивались.

Спасибо, а где эту команду следует поместить?

-- 18 янв 2019, 23:58 --

Да, действительно, похоже большие горизонтальные отступы между графиками связаны с самими графиками :-)

Изображение

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 01:05 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
misha.physics в сообщении #1369832 писал(а):
Спасибо, а где эту команду следует поместить?
В преамбуле.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 21:18 
Аватара пользователя


17/03/17
683
Львів
Someone, я добавил команду \raggedbottom в преамбулу, но изменений не заметил. В общем, експериментальным путем я уже почти сделал так, как хотел, но осталась одна задача. Нужно прымкнуть рисунки к верхней стороне страницы, а TeX центрирует их вертикально посередине.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 21:25 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
misha.physics в сообщении #1370024 писал(а):
я добавил команду \raggedbottom в преамбулу, но изменений не заметил.
Возможно, я ошибся с местом. А сразу после \begin{document} не пробовали?

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 21:41 
Аватара пользователя


17/03/17
683
Львів
Someone, да, пробовал, без изменений.

-- 19 янв 2019, 20:59 --

Я поискал, есть же команда \begin{figure}[pt], которая, по идее, должна взять то, что находится между \begin{figure}[pt] и \end{figure}, выделить для этого новую страницу и поместить вверх этой страницы. Но нет же. Не работает.
Зато, если написать \begin{figure}[h], то получается

Изображение

но если поместить ещё три графики (все с той же командой \begin{figure}[h]), то получается

Изображение

Ну вот как это может не бесить. Видно же что вертикальный отступ от верхнего краю страницы разный. А я только добавил ещё 3 графика и все. Или я слишком многого хочу :) Или что...

-- 19 янв 2019, 21:05 --

И если между \begin{figure} и \end{figure} будет слишком много рисунков, то получается

Изображение

т.е. TeX не может выделить новую страницу для рисунков, которые не поместились целиком. Приходится снова писать \begin{figure}...\end{figure}, чтобы получилась новая страница.

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение19.01.2019, 22:25 
Заслуженный участник
Аватара пользователя


31/01/14
11056
Hogtown
Все правильно. С floats надо осторожно

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение20.01.2019, 02:42 
Аватара пользователя


17/03/17
683
Львів
Red_Herring, попробовал так

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\documentclass[14pt]{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage[left=10mm, top=20mm, right=10mm, bottom=20mm]{geometry}

\begin{document}

\begin{figure}[h]
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\end{figure}
\begin{figure}[h]
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\qquad
\subfloat[]{\includegraphics[width=0.3\columnwidth]{name.pdf}}
\end{figure}

\end{document}
 

Получается так

(Оффтоп)

Изображение

Нужно на второй странице переместить графики вверх, причем я хочу чтобы отступ от верхнего края был такой же, как на первой странице. Ещё проблема, когда для того чтобы создать новую страницу я пишу снова \begin{figure}[h], то латинские буквы сначала пробегают значения $a,b,c,...$ (оно и понятно). Можете что-то подсказать, пожалуйста?

 Профиль  
                  
 
 Re: Вставка графиков в 2 столбца
Сообщение20.01.2019, 02:58 
Заслуженный участник
Аватара пользователя


31/01/14
11056
Hogtown
Когда продолжаете фигуру на новой странице, сразу после
Используется синтаксис LaTeX
\begin{figure}

вставьте
Используется синтаксис LaTeX
\ContinuedFloat

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group