
Сегодня вечером я сел и попытался составить простой список, который выглядит примерно так:
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}%
}
Я обнаружил, что использование блока шириной 1 см раньше minipage
необходимого, так как \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
предупреждения.