
Я намерен объединить среду itemize со средой minipage, чтобы предотвратить появление абзацев на отдельных страницах, но в результате выравнивание маркера и текста меняется с
к
Для ясности: я ищу способ объединить мини-страницу и перечисление/перечисление, как в коде ниже, чтобы получить тот же интервал между маркером и текстом, что и в первом примере.
\documentclass{article}
\begin{document}
\begin{itemize}
\item
\begin{minipage}{\textwidth}
Lorem\\
Ipsum
\end{minipage}
\end{itemize}
\end{document}
EDIT: опция [t]
для minipage была предложена и в целом работает, но не полностью совместима с другими средами. При сопряжении ее со средой массива следующим образом, маркер сбрасывается в центральное положение.
\documentclass{article}
\begin{document}
\begin{itemize}
\item
\begin{minipage}[t]{\textwidth}
$\begin{array}{rcl}
x &=& y\\
y &=& x\\
2x &\neq& 5y
\end{array}$
\end{minipage}
\end{itemize}
\end{document}
решение1
Использование опции [t]
for minipage
решает эту проблему:
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{lipsum}
\usepackage{enumerate}
\begin{document}
\begin{itemize}
\item
\begin{minipage}[t]{\linewidth} % Thanks to Bernard
\lipsum[1]
\lipsum[2]
\end{minipage}
\end{itemize}
\lipsum[3]
\end{document}
Примечание:Он \usepackage[showframe]{geometry}
предназначен только для отображения полей, вы можете удалить его в реальном документе.
Редактировать:
Что касается конфликта:
Причина конфликтов заключается в том, что вся array
среда рассматривается как элемент, как буква в строке, а это значит, что array
среда будет «центрирована» по первой строке.
Быстрый и сложный способ решения этой проблемы:
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{itemize}
\item
\begin{minipage}[t]{\linewidth}
\raisebox{-\baselineskip}{$\begin{array}{rcl}
x &=& y\\
y &=& x\\
2x &\neq& 5y
\end{array}$}
\end{minipage}
\end{itemize}
\end{document}
Стандартное решение для array
: Мы [t]
снова используем (спасибо koleygr):
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{itemize}
\item
\begin{minipage}[t]{\linewidth}
$\begin{array}[t]{rcl}
x &=& y\\
y &=& x\\
2x &\neq& 5y
\end{array}$
\end{minipage}
\end{itemize}
\end{document}
решение2
Я бы сделал следующее:
\documentclass{article}
\usepackage{lipsum}
\newsavebox{\mybottombox} % Box to save the text of the command
\newlength{\mybottomlength} % The length of our text inside the command
\newlength{\availafter} % The available length left on the page after placing our text
% Optional argument is the minimum length after the nobottom text for not pagebreak. Change it to your needs
\newcommand{\mnobreak}[2][0pt]{\savebox{\mybottombox}{\vbox{#2}}\setlength{\mybottomlength}{\ht\mybottombox}%
\setlength{\availafter}{\dimexpr\textheight-\mybottomlength-\pagetotal\relax}\ifdim\availafter<#1%
\pagebreak\noindent\usebox{\mybottombox}%
\else%
\noindent\usebox{\mybottombox}%
\fi%
}%
\begin{document}
\lipsum[1-4]
To clarify, I'm looking for a way to combine minipage and itemize/enumerate like the code below to get the same spacing between the bullet and text as in the first example. To clarify, I'm looking for a way to combine minipage and itemize/enumerate like the code below to get the same spacing between the bullet and text as in the first example.
\begin{itemize}
\item \mnobreak{Lorem\\Lipsum\\Lorem\\Lipsum\\Lorem}
\end{itemize}
\end{document}
Удалите последний Лорем, чтобы увидеть, как предмет сломается вместе с ним.
Источник: мой старый ответздесь
Выход: