Есть ли способ заставить LaTeX размещать рисунки на одной странице в качестве ссылки на этот рисунок?
Я использую LaTeX и среду фигуры.
Я хорошо знаком с параметрами этой среды: [htbp], и я также в целом знаком со стратегиями, которые LaTeX использует по умолчанию, чтобы решить, куда поместить каждую фигуру. Например, разместив цифры вверху или внизу страницы.
Что меня интересует, так это то, есть ли пакет, макрос или некоторые команды, которые я могу дать, чтобы, если у меня был документ с одним столбцом, и у меня была в основном одна текстовая ссылка на рисунок, рисунок был бы более скорее всего будет размещена на этой же странице ссылки?
Например, представьте, что у меня есть длинный абзац, в середине которого есть \ref{FIG:X}. При визуализации часть абзаца появляется до разрыва страницы, а часть появляется после разрыва страницы. Я также могу поместить команду figure где-то до и после всего абзаца. Есть ли способ сделать так, чтобы он был размещен на той же странице, что и реальная ссылка?
9 ответов
Я не хочу звучать слишком негативно, но бывают случаи, когда то, что вы хотите, практически невозможно без большого количества "искусственной" настройки разрывов страниц.
Если выноска падает естественным образом в нижней части страницы, а рисунок попадает на следующую страницу, перемещение рисунка назад на одну страницу, вероятно, сместит выноску вперед.
Я бы порекомендовал (насколько это возможно, и в зависимости от точного размера рисунков):
- Поместите цифры с помощью [t] (или [h], если необходимо)
- Разместите фигуры как можно ближе к "правильному" месту (различается для [t] и [h])
- Включите рисунки из отдельных файлов с помощью \input, что значительно облегчит их перемещение при окончательной настройке
По моему опыту, это большое пожертвование недоступного времени (:-)
В ответ на комментарий Джона, я думаю, что это сложная проблема, потому что парни из LaTeX - не ругатели. Вы можете прочитать статью Фрэнка Миттельбаха.
Да, включите пакет float в начало документа и H (заглавная H) в качестве спецификатора рисунка:
\usepackage{float}
\begin{figure}[H]
.
.
.
\end{figure}
Вы всегда можете добавить "!" в ваши варианты поплавка. Таким образом, латекс очень старается разместить фигуру там, где вы хотите (я в основном использую [h! Tb]), растягивая обычные правила набора текста.
Я нашел другое решение:
Используйте пакет float. Таким образом, вы можете разместить фигуры там, где вы хотите их видеть.
Я решаю эту проблему, всегда используя [h]
Опция на поплавки (например, цифры), так что они (в основном) идут туда, где я их размещаю. Затем, когда я смотрю на окончательный вариант, я корректирую расположение поплавка, перемещая его в исходный текст LaTeX. Обычно это означает перемещение по абзацу, на который он ссылается. Иногда мне нужно добавить разрыв страницы в соответствующем месте.
Я обнаружил, что в LaTeX разумно размещать поплавки по умолчанию, но почти всегда необходимы ручные настройки, чтобы все было правильно. (И иногда невозможно, чтобы все было идеально, когда много поплавков и сносок.)
Руководство по memoir
класс имеет некоторую полезную информацию о том, как LaTeX размещает числа с плавающей точкой, и некоторые советы по работе с алгоритмом
Если вы хотите заставить это поведение на всех ваших фигурах, попробуйте
...
\usepackage{float}
\floatplacement{figure}{H}
...
Может быть, это поможет вам?
\begin{center}
\includegraphics[scale=0.5]{picture_name}
\end{center}
Я думаю, что лучше использовать графическую команду, когда ваши цифры убегают.
У меня есть несколько полезных комментариев. Потому что у меня была похожая проблема с расположением фигур. Я использовал пакет "wrapfig", который позволяет делать рисунки, обернутые текстом. Что-то вроде
...
\usepackage{wrapfig}
\usepackage{graphicx}
...
\begin{wrapfigure}{r}{53pt}
\includegraphics[width=53pt]{cone.pdf}
\end{wrapfigure}
В опциях {r}
значит поставить фигуру с правой стороны. {l}
можно использовать для левой стороны.
\setcounter{topnumber}{2}
\setcounter{bottomnumber}{2}
\setcounter{totalnumber}{4}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.85}
\renewcommand{\textfraction}{0.15}
\renewcommand{\floatpagefraction}{0.7}
Один из способов, который мне помог, это использовать \include{file_with_tex_figure_commands}
(не вход)