LINUX.ORG.RU

Разместить много мелких картинок в виде правильной сетки

 ,


0

2

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

Попробовал сделать как-то так:

\documentclass{article}
\usepackage{pgffor}

\begin{document}

\foreach \row in {0, 1, ..., 9} {%
    \foreach \col in {0, 1, ..., 9} {%
        % вместо \vrule будут картинки
        \vrule height 10pt width 10pt%
        \hskip 1pt%
    }%
    \vskip 1pt%
}
\end{document}

Но выходит какая-то фигня с вертикальными пробелами. Вот результат в масштабе 400%. По горизонтали там 1 пункт, как и надо, а по вертикали сильно больше.

Откуда оно берётся? Куда смотреть, как сделать одинаковое расстояние по горизонтали и вертикали? Кнутом уже упоролся, пока не помогло.



Последнее исправление: HeipaVai1o (всего исправлений: 1)

Ответ на: комментарий от Eddy_Em

Приходится часто подстраивать количество столбцов, строк, количество самих картинок, масштаб картинок. Уже задрало каждый раз запускать montage, потом компилять, потом снова montage, потом снова компилять. Куда удобнее прямо в документе поменять параметры.

Тормоза примерно одинаковые, что одну огромную картинку в PDF вставить, что 100 маленьких.

HeipaVai1o
() автор топика
Ответ на: комментарий от hope13

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

HeipaVai1o
() автор топика

Между строками TeX всегда вставляет клей. Если его надо подавить, то используется \nointerlineskip по месту. В твоем случае работает следующее:

\documentclass{article}
\usepackage{pgffor}
\begin{document}
\foreach \row in {0, 1, ..., 9} {%
    \foreach \col in {0, 1, ..., 9} {%
        % вместо \vrule будут картинки
        \vrule height 10pt width 10pt%
        \hskip 1pt%
    }%
    \vskip 1pt%
    \nointerlineskip
}
\end{document}

TeopeTuK ★★★★★
()
Ответ на: комментарий от HeipaVai1o

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

TeopeTuK ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.