환경 multline
에서는 첫 번째 줄을 왼쪽에, 마지막 줄을 오른쪽에 정렬하고, 그 사이의 모든 줄은 단순히 중앙에 정렬됩니다. 예를 들어 모든 줄이 텍스트 너비의 절반보다 약간 더 넓은 경우 결과가 만족스럽지 않은 경우가 있습니다.
내가 찾고 있는 것은 아래 그림과 같이 더 "계단처럼" 보이게 만드는 도구이지만 \hspace{...}
각 줄에 수동으로 선택한 항목을 추가하지 않는 것입니다.
줄이 너무 넓은 경우 등 모든 종류의 예외가 있다는 것을 알고 있으며 솔루션이 항상 완벽한 출력을 생성할 것이라고 기대하지는 않지만 "일반적인" 경우에 작동하는 것이 있어야 합니다. 어떤 아이디어가 있나요?
답변1
\setline[<align>]{<portion>}{<stuff>}
아래 정의된 것과 같은 것을 사용하여 "수동으로" 분산시키는 매크로의 각 행을 설정할 수 있습니다 .
\documentclass{article}
\usepackage{lipsum}
\newcommand{\setline}[3][c]{\hspace*{#2\linewidth}\makebox[0pt][#1]{#3}}
\newenvironment{spreadlines}
{\par
\setlength{\parindent}{0pt}%
\obeylines}
{\par}
\begin{document}
\lipsum[1]
\begin{spreadlines}
\setline[l]{0} {The first line is aligned to the left.}
\setline {.25}{The second line is (not) centred.}
\setline {.5} {And so is the third one.}
\setline {.75}{As well as the fourth --- not centred!}
\setline[r]{1} {The last line is aligned to the right.}
\end{spreadlines}
\lipsum[2]
\end{document}
필요한 경우 자동으로 값을 결정하는 것이 가능할 수 있습니다 {<portion>}
.
답변2
패키지는 다음과 같은 계단을 쉽게 얻을 수 있는 mathtools
옵션을 제공합니다 .
\shoveleft[<ofset>]{<part of equation>}
multline
mathtools 매뉴얼(17 페이지)의 예를 기반으로 한 코드:
\documentclass[11pt, border=1mm,
preview]{standalone}
\usepackage{mathtools}
\begin{document}
\[
\begin{multlined}
\framebox[.65\columnwidth]{First line} \\
\shoveleft[1cm]{\framebox[.5\columnwidth]{Second line} } \\
\shoveleft[2cm]{\framebox[.5\columnwidth]{Second line} } \\
\shoveleft[3cm]{\framebox[.5\columnwidth]{Second line} } \\
\framebox[.65\columnwidth]{Last line}
\end{multlined}
\]
\end{document}