여러 줄로 된 목록 항목(항목 라벨 내부의 `\newline` ?)

여러 줄로 된 목록 항목(항목 라벨 내부의 `\newline` ?)

여러 줄로 된 항목 라벨을 만드는 방법은 무엇입니까?

\documentclass[a4paper,10pt]{article}
\usepackage{lipsum}
\begin{document}
\begin{itemize}
\item[Great Item] \lipsum[1]
\end{itemize}
\end{document}

나는하고 싶다

\item[Great \newline Item] \lipsum[1]

하지만 나는 일하지 않습니다.

예상 결과 - 항목 레이블과 항목 내용의 첫 번째 줄이 정렬되었습니다.

Great   Lorem ipsum dolor sit amet,
Item    consectetuer adipiscing elit.
        Ut purus elit, ver...

더 구체적으로 말하면 다음 mydesc에서 제공되는 환경을 사용합니다.https://tex.stackexchange.com/a/23569/7128. 함께 만들어 보고 싶습니다. 위의 예는 지나치게 단순화되었습니다. 자세한 내용은 다음과 같습니다.

\documentclass[a4paper,10pt]{article}
\usepackage{lipsum}
% mydesc thanks for https://tex.stackexchange.com/a/23569/7128
\newenvironment{mydesc}[1]
  {\list{}{\renewcommand\makelabel[1]{\it##1\hfil}%
     \settowidth\labelwidth{\makelabel{\it#1}}%
     \setlength\leftmargin{\dimexpr\labelwidth+\labelsep\relax}}}
  {\endlist}
\begin{document}
\begin{mydesc}{LongestItem}
\item[Great Item] \lipsum[1]
\end{mydesc}
\end{document}

답변1

LaTeX는 이런 종류의 명령을 제공하므로 \shortstack솔루션은 다음과 같습니다.

\item[\smash{\shortstack[l]{Great\\Item}}] \lipsum[1]

불행하게도 \shortstack기본적으로 하단 정렬이므로 "상단" 변형을 해킹해야 합니다.

\makeatletter
\gdef\tshortstack{\@ifnextchar[\@tshortstack{\@tshortstack[c]}}
\gdef\@tshortstack[#1]{%
  \leavevmode
  \vtop\bgroup
    \baselineskip-\p@\lineskip 3\p@
    \let\mb@l\hss\let\mb@r\hss
    \expandafter\let\csname mb@#1\endcsname\relax
    \let\\\@stackcr
    \@ishortstack}
\makeatother
\begin{document}
\begin{itemize}
\item[\smash{\tshortstack[l]{Great\\Item}}] \lipsum[1]
\end{itemize}

여기에 이미지 설명을 입력하세요

의 코드는 \tshortstackLaTeX 소스의 해당 코드에서 복사되었습니다. 너무 많은 코드를 복사하고 싶지 않다면 다음을 사용할 수도 있습니다 \patchcmd.

\documentclass[a4paper,10pt]{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\makeatletter
\gdef\tshortstack{\@ifnextchar[\@tshortstack{\@tshortstack[c]}}
\let\@tshortstack\@shortstack
\patchcmd\@tshortstack\vbox\vtop{}{}
\makeatother
\begin{document}
\begin{itemize}
\item[\smash{\tshortstack[l]{Great\\Item}}] \lipsum[1]
\end{itemize}
\end{document}

관련 정보