열거 환경에서 둘 이상의 값을 가진 항목

열거 환경에서 둘 이상의 값을 가진 항목

다음과 같은 목록을 조판해야 합니다.

  1. 항목 1

  2. 항목 2

  3. 항목 3

4-6. 이전과 동일

  1. 다른 것

description현재 환경을 다음과 같이 사용하여 조판했습니다 .

\documentclass{article}
\begin{document}
   \begin{description}
      \item[1.] item 1
      \item[2.] item 2
      \item[3.] item 3
      \item[4-6.] The same as previous ones
      \item[7.] Something else
   \end{description}
\end{document}

그러나 이것이 enumerate번호 매기기 자체를 수행하는 다른 방법을 사용하여 가능한지 궁금합니다. 를 사용하여 이 목록을 만들 수 있습니까 enumerate?

즉, 원하는 출력을 얻기 위해 이와 같은 작업을 수행할 수 있습니까?

\documentclass{article}
\begin{document}
   \begin{enumerate}
      \item item 1
      \item item 2
      \item item 3
      \item[4-6.] The same as previous ones
      \item Something else
   \end{enumerate}
\end{document}

또는 \item[len=3] The same as previous oneswhere by 와 같은 것을 사용하는 경우에도 len현재 항목 이후의 열거 항목 수를 의미합니다.

답변1

원하는 것을 달성하기 위해 내가 아는 유일한 방법은 enumi카운터를 늘리는 것입니다.

MWE:

\documentclass{article}
\begin{document}
   \begin{enumerate}
      \item item 1
      \item item 2
      \item item 3
      \item[4--6.] The same as previous ones\addtocounter{enumi}{3}
      \item Something else
   \end{enumerate}
\end{document} 

산출:

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

답변2

\@enumctr기호 1과 유사한 버전이지만 현재 카운터로 확장되므로 모든 레벨을 변경할 필요가 없습니다 .

인수는 \itemx통합할 항목 수입니다.

\documentclass{article}
\usepackage{etoolbox}

\makeatletter
\newcounter{shakiba@temp}
\newcommand\itemx[1]{%
  \letcs\shakiba@save{the\@enumctr}
  \stepcounter{\@enumctr}%
  \protected@edef\shakiba@label{\csuse{the\@enumctr}--}
  \addtocounter{\@enumctr}{-1}%
  \addtocounter{\@enumctr}{#1}%
  \protected@edef\shakiba@label{\shakiba@label\csuse{the\@enumctr}}%
  \addtocounter{\@enumctr}{-1}
  \cslet{the\@enumctr}\shakiba@label
  \item
  \cslet{the\@enumctr}\shakiba@save
}
\makeatother

\begin{document}

\begin{enumerate}
\item item 1
\item item 2
  \begin{enumerate}
  \item subitem 2:1
  \itemx{5}\label{X} subitem 2:2-6
  \item subitem 2:7
  \end{enumerate}
\item item 3
\itemx{3}\label{Y} The same as previous ones
\item Something else
\end{enumerate}

References: \ref{X} and \ref{Y}

\end{document}

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

답변3

매우 잔인한 방법이지만 직접 카운터를 계산할 필요는 없습니다.

\documentclass{article}

\def\itemx#1{
    \let\oldtheenumi\theenumi
    \let\oldtheenumii\theenumii
    \let\oldtheenumiii\theenumiii
    \let\oldtheenumiv\theenumiv
    \def\theenumi{\oldtheenumi-\addtocounter{enumi}{#1}\oldtheenumi}
    \def\theenumii{\oldtheenumii-\addtocounter{enumii}{#1}\oldtheenumii}
    \def\theenumiii{\oldtheenumiii-\addtocounter{enumiii}{#1}\oldtheenumiii}
    \def\theenumiv{\oldtheenumiv-\addtocounter{enumiv}{#1}\oldtheenumiv}
    \item
    \let\theenumi\oldtheenumi
    \let\theenumii\oldtheenumii
    \let\theenumiii\oldtheenumiii
    \let\theenumiv\oldtheenumiv
}

\begin{document}
    \begin{enumerate}
        \item item 1
        \item item 2
        \begin{enumerate}
            \item subitem 2:1
            \itemx5 subitem 2:2-6
            \item subitem 2:7
        \end{enumerate}
        \item item 3
        \itemx3 The same as previous ones
        \item Something else
    \end{enumerate}
\end{document}

관련 정보