summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hang/hang.tex
blob: 35d878763090bd51495943e1880577eb89d33fdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
\documentclass[a4paper]{ltxdoc}
\usepackage{hang}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{latin}
\newenvironment{hangingexample}{\medskip\setlength{\hangingleftmargin}{1em}}{\medskip}
\newenvironment{labeledexample}{\medskip\setlength{\labeledleftmargin}{1em}}{\medskip}
\newcommand{\lipsum}{\textlatin{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.}}
\setlength{\parindent}{1em}
\setlength{\leftmargini}{\parindent}
\frenchspacing
\sloppy

\begin{document}
\title{\textsf{hang} -- environments for hanging \\
paragraphs and list items}
\author{Andreas Nolda}
\date{2017/02/18 (v.\,2.1)}
\maketitle

\noindent The \textsf{hang} package provides environments for hanging paragraphs
and list items. In addition, it defines environments for labeled paragraphs and
list items.

\section{Hanging paragraphs and list items}

A \emph{hanging} paragraph or list item is a text block where all lines but the
first one are indented by some \meta{length}:

\begin{hangingexample}
\begin{hangingpar}
\lipsum
\end{hangingpar}
\end{hangingexample}

\DescribeMacro{\hangingindent} In the following environments, the indentation
\meta{length} defaults to |1em|. It is controlled by the |\hangingindent|
length, which can be changed as follows: \begin{quote}
|\setlength{\hangingindent}{|\meta{length}|}|
\end{quote}

\DescribeMacro{\hangingleftmargin} The left margin of the whole hanging
paragraph or list item equals the |\hangingleftmargin| length, which defaults to
zero. In the above example, it is set to |1em| with |\setlength|.

\subsection{Hanging paragraphs}

\DescribeMacro{hangingpar} The |hangingpar| environment sets \emph{single}
hanging paragraphs:
\begin{quote}
|\begin{hangingpar}| \\
\meta{text} \\
|\end{hangingpar}|
\end{quote}

\subsection{Hanging list items}

\DescribeMacro{hanginglist} The |hanginglist| environment sets one or more
hanging list items:
\begin{quote}
|\begin{hanginglist}| \\
|\item |\meta{text} \\
\vdots \\
|\end{hanginglist}|
\end{quote}

\pagebreak
\DescribeMacro{compacthang} The |compacthang| environment sets one or more
hanging list items without vertical space:
\begin{quote}
|\begin{compacthang}| \\
|\item |\meta{text} \\
\vdots \\
|\end{compacthang}|
\end{quote}

\section{Labeled paragraphs and list items}

A \emph{labeled} paragraph or list item consist of a \meta{label} and a text
block, which is indented by some \meta{length}:

\begin{labeledexample}
\begin{labeledpar}{\meta{label}}{\meta{label}}
\lipsum
\end{labeledpar}
\end{labeledexample}

The following environments set the indentation \meta{length} to the width of
their \meta{widest\textunderscore label} argument.

\DescribeMacro{\labeledleftmargin} The left margin of the whole labeled
paragraph or list item (including the \meta{label}) equals the
|\labeledleftmargin| length, which defaults to zero, too. In the above example,
it is again set to |1em|.

\subsection{Labeled paragraphs}

\DescribeMacro{labeledpar} The |labeledpar| environment sets \emph{single}
labeled paragraphs:
\begin{quote}
|\begin{labeledpar}{|\meta{widest\textunderscore label}|}{|\meta{label}|}| \\
\meta{text} \\
|\end{labeledpar}|
\end{quote}

\subsection{Labeled list items}

\DescribeMacro{labeledlist} The |labeledlist| environment sets one or more
labeled list items:
\begin{quote}
|\begin{labeledlist}{|\meta{widest\textunderscore label}|}| \\
|\item[|\meta{label}|]|\meta{text} \\
\vdots \\
|\end{labeledlist}|
\end{quote}

\DescribeMacro{compactlabel} The |compactlabel| environment sets one or more
labeled list items without vertical space:
\begin{quote}
|\begin{compactlabel}{|\meta{widest\textunderscore label}|}| \\
|\item[|\meta{label}|]|\meta{text} \\
\vdots \\
|\end{compactlabel}|
\end{quote}

\end{document}