간단한 질문: 이 코드를 복사했습니다.
\documentclass{article}
\usepackage{amsmath,amssymb,calc}
\def\horizlist#1#2#3{%
\setcounter{enumi}{0}%
#3%
\flushleft
\newlength\stringlength
\setlength\stringlength{#2}
\advance\stringlength by #1 \relax
\def\item{\hfil\egroup\penalty50 \hfill
\refstepcounter{enumi}%
\leavevmode\hbox to \stringlength \bgroup\space(\theenumi)\space}
\leavevmode\bgroup\hskip 0pt plus -1fill }
\def\endhorizlist{\hfil\egroup\endflushleft}
\begin{document}
\begin{enumerate}
\item blah
\begin{horizlist}{2cm}{\widthof{null}}{\renewcommand\theenumi{\alph{enumi}}}
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\end{horizlist}
\end{enumerate}
\end{document}
해야 할 일을 수행합니다. 유일한 문제는 마지막 항목이 왼쪽의 이전 항목과 인접하지 않고 오른쪽에 나타난다는 것입니다. 이 문제를 어떻게 해결할 수 있나요? 문제를 밝히려면 다음을 수행하십시오.
출력은 다음과 같습니다:
나는 이것을 원한다:
도움이 필요하세요?
답변1
현재 열을 추적해야 합니다. 환경 horizlist
을 tabular
. 이 방법으로 / \item
대신 사용할 수 있을 뿐만 아니라 원하는 대로 정렬을 지정할 수도 있습니다( env의 두 번째 인수).&
\\
horizlist
\documentclass{article}
\usepackage{calc}
\newcount\horizlistcount
\newenvironment{horizlist}[2]{%
\setcounter{enumi}{0}%
\renewcommand\theenumi{\alph{enumi}}%
\def\nextsep{}%
\global\horizlistcount=#1
\def\item{%
\nextsep
\refstepcounter{enumi}(\theenumi)
\ifnum\horizlistcount=0 \global\horizlistcount=#1 \fi
\global\advance\horizlistcount-1
\ifnum\horizlistcount=0 \def\nextsep{\\}\else\def\nextsep{&}\fi
}%
\begin{tabular}[t]{*{#1}{#2}}
}{%
\end{tabular}
}
\begin{document}
\begin{enumerate}
\item blah
\begin{horizlist}{4}{p{\widthof{null}+2cm}}
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\end{horizlist}
\end{enumerate}
\end{document}
(임베디드 테이블 앞에 새 줄을 입력하려면 \\
앞에 말하거나 정의에 포함시키세요.)
답변2
완전히 자동화되지는 않았지만 필요한 작업을 수행합니다. \noitem
"팬텀 아이템"을 삽입하는 명령을 소개합니다 . 자동화되지 않은 것은 얼마나 많은 것이 \noitems
있어야 하는지 미리 알 수 없다는 것입니다 .
\documentclass{article}
\usepackage{amsmath,amssymb,calc}
\def\horizlist#1#2#3{%
\setcounter{enumi}{0}%
#3%
\flushleft
\newlength\stringlength
\setlength\stringlength{#2}
\advance\stringlength by #1 \relax
\def\item{\hfil\egroup\penalty50 \hfill
\refstepcounter{enumi}%
\leavevmode\hbox to \stringlength \bgroup\space(\theenumi)\space}
\def\noitem{\hfil\egroup\penalty50 \hfill
\leavevmode\hbox to \stringlength \bgroup}
\leavevmode\bgroup\hskip 0pt plus -1fill }
\def\endhorizlist{\hfil\egroup\endflushleft}
\begin{document}
\begin{enumerate}
\item blah
\begin{horizlist}{2cm}{\widthof{null}}{\renewcommand\theenumi{\alph{enumi}}}
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\item null
\noitem\noitem
\end{horizlist}
\end{enumerate}
\end{document}