Definindo uma lista com rótulo sem recuo e item recuado

Definindo uma lista com rótulo sem recuo e item recuado

Sentei-me esta noite para tentar definir uma lista simples parecida com esta:

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.

Então você pode ver que os requisitos são bastante simples. O rótulo do item não deve ser recuado, mas deve começar precisamente na margem esquerda. Deve ser seguido por uma quebra de linha. Após a quebra de linha vem o corpo do item. Este deverá ser recuado - isto é, todo o parágrafo - e todos os parágrafos seguintes na mesma proporção. No entanto, não deve haver parágrafo inicial com recuo, todos os parágrafos devem começar em uma linha em branco. No exemplo, o recuo é de dois espaços, mas acho que um quad serviria bem.

Como possíveis complicações, meu documento como um todo segue o estilo de parágrafo acima, com uma linha em branco entre os parágrafos e sem recuo inicial. Em segundo lugar, gostaria de formatar o rótulo do item em texto de máquina de escrever.

Então, claramente, pensei, preciso de um listambiente.

\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}

Mas fiquei totalmente confuso ao tentar descobrir o que colocar como segundo argumento, porque o recuo real do rótulo não parece estar definido. Em vez disso, o \leftmarginé definido, com o rótulo do item desviado em relação a ele por outros parâmetros relevantes que não consegui decifrar como ajustar.

Qualquer explicação adicional seria muito apreciada.

Responder1

Vocêfazerquero uma lista.

\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}

insira a descrição da imagem aqui

Responder2

Isso parece estar bem próximo do que você deseja:

\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}

Eu tenho usadoquadro de exibiçãopara mostrar onde estão as margens. Observe o pequeno hack itemindent=-1.5mmque, por algum motivo, é necessário para colocar o rótulo de volta na margem.

insira a descrição da imagem aqui

Responder3

No final desisti de usar um listambiente e, em vez disso, defini um novo comando usando caixas. Isso funciona para mim, mas parece hackeado.

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

Achei usar uma caixa de 1em de largura antes do minipagenecessário, pois \hfillnão parecia fazer nada.

Parece funcionar, no entanto:

\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}

insira a descrição da imagem aqui

Veja bem, eu entendo

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

avisos.

informação relacionada