.png)
여러 줄로 된 항목 라벨을 만드는 방법은 무엇입니까?
예
\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}
의 코드는 \tshortstack
LaTeX 소스의 해당 코드에서 복사되었습니다. 너무 많은 코드를 복사하고 싶지 않다면 다음을 사용할 수도 있습니다 \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}