
중첩된 항목화를 수행할 때 매우 긴 목록이 있고 목록의 아래쪽 항목이 여전히 이전 항목 내에 중첩되어 있다는 점을 분명히 하고 싶습니다.
이러한 이유로 나는 대시로 들여쓰기를 하고 싶습니다.
---내가 밥이라면,
--------- 만약 토요일이라면,
--------------- Sally와 함께 일한다면,
--------------------------- 우리 둘 다 정장을 입어요.
--------------- 테니스가 TV에 나온다면,
-------------- 저는 세레나 윌리엄스를 응원합니다.
현재 코드 샘플:
\usepackage{enumitem}
\begin{itemize}
\item If I am Bob,
\begin{itemize}[leftmargin=*,labelindent= 1cm]
\item If it is Saturday
\begin{itemize}[leftmargin=*,labelindent= 2cm]
\item If I work with Sally
\begin{itemize}[leftmargin=*,labelindent= 3cm]
\item We both wear suits.
\end{itemize}
\item If tennis is on TV,
\begin{itemize}[leftmargin=*,labelindent= 3cm]
\item I root for Serena Williams.
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
들여쓰기 공간을 대시로 채우도록 라텍스에 어떻게 지시합니까?
답변1
자신만의 길이로 여백을 추적하고 적절한 선을 그리는 데 사용할 수 있습니다. 귀하의 의견에 따라 대시가 아닌 규칙을 원하고 표준이 itemize
변경되지 않기를 원합니다. 따라서 ditemize
특정 스타일에 대한 새 목록(예: )을 도입하는 것이 좋습니다 .
\documentclass{article}
\usepackage{enumitem}
\newlength{\myindent}
\setlength{\myindent}{0pt}
\newlist{ditemize}{itemize}{4}
\setlist[ditemize]{before={\setlength{\myindent}{\dimexpr\myindent+\leftmargin}},
label=\mbox{\hss\rule[.5ex]{\dimexpr\myindent-\labelsep}{.4pt}}}
\setlist[ditemize,2]{labelindent=1cm}
\setlist[ditemize,3]{labelindent=2cm}
\setlist[ditemize,4]{labelindent=3cm}
\begin{document}
\noindent
Some text that is not indented to show the left margin.
\begin{ditemize}
\item If I am Bob,
\begin{ditemize}
\item If it is Saturday
\begin{ditemize}
\item If I work with Sally
\begin{ditemize}
\item We both wear suits.
\end{ditemize}
\item If tennis is on TV,
\begin{ditemize}
\item I root for Serena Williams.
\end{ditemize}
\end{ditemize}
\end{ditemize}
\end{ditemize}
\end{document}
코드는 다음과 같이 작동합니다. \myindent
현재 들여쓰기를 저장할 새 변수를 도입합니다 . 각 의 시작 부분에서 코드를 ditemize
사용하여 before=
현재 여백을 에 추가합니다 \myindent
. 메커니즘은 before
이것이 목록에 로컬인 그룹 내에서 수행된다는 것을 의미하므로 하위 목록이 완료되면 이전 값을 복구합니다. 이제 레이블을 적절한 길이의 규칙으로 설정하되 너비가 0이고 왼쪽으로 튀어나오는 상자에 설정합니다.
줄 대신 대시를 원했다면 위 dashrule
의 내용을 거의 대체할 수 있는 패키지를 사용하는 것이 좋습니다 \rule
. 그런 다음 레이블 사양을 다음과 같이 작성할 수 있습니다.
label=\mbox{\hss\hdashrule[.5ex]{\dimexpr\myindent-\labelsep}{.4pt}{3pt}}
발급 후 \usepackage{dashrule}
. 이를 통해 labelsep=.1em
다음이 생성됩니다.