Пользовательское выравнивание деталей

Пользовательское выравнивание деталей

Я намерен объединить среду 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}  

Массив не учитывает опцию t

решение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}

Удалите последний Лорем, чтобы увидеть, как предмет сломается вместе с ним.

Источник: мой старый ответздесь

Выход:

введите описание изображения здесь

Связанный контент