들여쓰기되지 않은 레이블과 들여쓰기된 항목이 있는 목록 정의

들여쓰기되지 않은 레이블과 들여쓰기된 항목이 있는 목록 정의

나는 오늘 밤 다음과 같은 간단한 목록을 정의하려고 자리에 앉았습니다.

1:23
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.

따라서 요구 사항이 매우 간단하다는 것을 알 수 있습니다. 항목 라벨은 전혀 들여쓰기되어서는 안 되며 정확하게 왼쪽 여백에서 시작되어야 합니다. 그 뒤에는 줄 바꿈이 와야 합니다. 줄 바꿈 뒤에는 항목 본문이 옵니다. 이는 전체 단락과 다음 모든 단락을 같은 양만큼 들여쓰기해야 합니다. 그러나 들여쓰기로 시작하는 단락이 있어서는 안 되며, 모든 단락은 빈 줄에서 시작되어야 합니다. 예제에서는 들여쓰기가 공백 두 개이지만 쿼드가 좋을 것 같습니다.

문제가 발생할 수 있으므로 내 문서는 전체적으로 위의 단락 스타일을 따르며 단락 사이에 빈 줄이 있고 초기 들여쓰기가 없습니다. 둘째, 항목 라벨의 형식을 타자기 텍스트로 지정하고 싶습니다.

그래서 분명히 list환경이 필요하다고 생각했습니다.

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}

\begin{document}

\begin{list}{}{}
  \item[1:23]
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.
\end{list}

\end{document}

그러나 레이블의 실제 들여쓰기가 자체적으로 정의되지 않은 것 같기 때문에 두 번째 인수로 무엇을 입력할지 고민하는 데 완전히 당황했습니다. 대신에 \leftmargin항목 라벨이 내가 조정하는 방법을 해독할 수 없는 다른 관련 매개변수에 따라 분류되어 정의됩니다.

추가 설명을 주시면 감사하겠습니다.

답변1

하다목록을 원해요.

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper,showframe} % showframe just for the example
\usepackage[parfill]{parskip}

\newenvironment{points}
 {\begin{list}{}{\leftmargin=1em\labelwidth=\leftmargin\labelsep=0pt}%
  \newcommand{\point}[1]{\item[##1]\mbox{}\\*\ignorespaces}}
 {\end{list}}

\begin{document}

\begin{points}

\point{1:23}
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.

\point{22:333}
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

\end{points}

\end{document}

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

답변2

이것은 당신이 원하는 것에 상당히 가까운 것 같습니다 :

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[a4paper,margin=1.8cm]{geometry}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{showframe}

\newlist{simple}{description}{1}
\setlist[simple]{leftmargin=4mm,   % indentation of paragraphs
                 font=\texttt,     % typewritter text for labels
                 style=nextline,   % start new line for "wide" labels
                 labelindent=0pt,  % the remaining settings make the
                 itemindent=-1.5mm,% width of the labels, with a small hack
                                   % to drag the label back to the margin
                 listparindent=0pt,
                 labelwidth=0pt,
}

\begin{document}

   \begin{simple}
     \item[1:23]\lipsum[1-2]
     \item[1:24]\lipsum[1-2]
   \end{simple}

\end{document}

나는 사용했다쇼프레임여백이 어디에 있는지 표시합니다. itemindent=-1.5mm어떤 이유로 라벨을 여백으로 다시 가져오는 데 필요한 작은 해킹을 사용하는 것에 유의하세요 .

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

답변3

결국 list환경 사용을 포기하고 대신 상자를 사용하여 새 명령을 정의했습니다. 이것은 나에게 효과적이지만 해킹 된 느낌입니다.

\newlength{\currentparskip}
\setlength{\currentparskip}{\parskip}
\newcommand{\point}[2]{\texttt{#1} \\
  \makebox[1em]{}\begin{minipage}[t]{\dimexpr\textwidth-1em}%
    \setlength{\parskip}{\currentparskip}%
    #2%
  \end{minipage}%
}

아무것도 하지 않는 것 같아서 minipage필요하기 전에 1em 너비의 상자를 사용하는 것을 발견했습니다 .\hfill

그래도 작업을 수행하는 것 같습니다.

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{showframe}

\newlength{\currentparskip}
\setlength{\currentparskip}{\parskip}
\newcommand{\point}[2]{\texttt{#1} \\
  \makebox[1em]{}\begin{minipage}[t]{\dimexpr\textwidth-1em}%
    \setlength{\parskip}{\currentparskip}%
    #2%
  \end{minipage}%
}

\begin{document}

\point{1:23}{%
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.
}

\point{1:24}{%
  Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
  commodo ligula eget dolor. Aenean massa. Cum sociis natoque
  penatibus et magnis dis parturient montes, nascetur ridiculus
  mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis,
  sem.

  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.
}

\end{document}

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

알아두세요.

Overfull \hbox (30.0pt too wide) in paragraph at lines 29--30

경고.

관련 정보