Ms writer: wider indents for lists.

Previously some indents weren't wide enough, leading
the list item to start on a line after the marker.
This commit is contained in:
John MacFarlane 2017-04-06 12:45:23 +02:00
parent 12ae1df5bf
commit 6b0d3d1582
2 changed files with 102 additions and 101 deletions

View file

@ -347,7 +347,7 @@ blockToMs opts (BulletList items) = do
return (vcat contents)
blockToMs opts (OrderedList attribs items) = do
let markers = take (length items) $ orderedListMarkers attribs
let indent = 1 + (maximum $ map length markers)
let indent = 2 + (maximum $ map length markers)
contents <- mapM (\(num, item) -> orderedListItemToMs opts num indent item) $
zip markers items
setFirstPara
@ -365,15 +365,15 @@ bulletListItemToMs opts ((Para first):rest) =
bulletListItemToMs opts ((Plain first):rest) = do
first' <- blockToMs opts (Plain first)
rest' <- blockListToMs opts rest
let first'' = text ".IP \\[bu] 2" $$ first'
let first'' = text ".IP \\[bu] 3" $$ first'
let rest'' = if null rest
then empty
else text ".RS 2" $$ rest' $$ text ".RE"
else text ".RS 3" $$ rest' $$ text ".RE"
return (first'' $$ rest'')
bulletListItemToMs opts (first:rest) = do
first' <- blockToMs opts first
rest' <- blockListToMs opts rest
return $ text "\\[bu] .RS 2" $$ first' $$ rest' $$ text ".RE"
return $ text "\\[bu] .RS 3" $$ first' $$ rest' $$ text ".RE"
-- | Convert ordered list item (a list of blocks) to ms.
orderedListItemToMs :: PandocMonad m
@ -392,7 +392,8 @@ orderedListItemToMs opts num indent (first:rest) = do
let first'' = text (".IP \"" ++ num' ++ "\" " ++ show indent) $$ first'
let rest'' = if null rest
then empty
else text ".RS 4" $$ rest' $$ text ".RE"
else text ".RS " <> text (show indent) $$
rest' $$ text ".RE"
return $ first'' $$ rest''
-- | Convert definition list item (label, list of blocks) to ms.

View file

@ -162,9 +162,9 @@ sub\ status\ {
.fi
.LP
A list:
.IP "1." 3
.IP " 1." 4
item one
.IP "2." 3
.IP " 2." 4
item two
.LP
Nested block quotes:
@ -221,51 +221,51 @@ Unordered
.pdfhref M "unordered"
.LP
Asterisks tight:
.IP \[bu] 2
.IP \[bu] 3
asterisk 1
.IP \[bu] 2
.IP \[bu] 3
asterisk 2
.IP \[bu] 2
.IP \[bu] 3
asterisk 3
.LP
Asterisks loose:
.IP \[bu] 2
.IP \[bu] 3
asterisk 1
.IP \[bu] 2
.IP \[bu] 3
asterisk 2
.IP \[bu] 2
.IP \[bu] 3
asterisk 3
.LP
Pluses tight:
.IP \[bu] 2
.IP \[bu] 3
Plus 1
.IP \[bu] 2
.IP \[bu] 3
Plus 2
.IP \[bu] 2
.IP \[bu] 3
Plus 3
.LP
Pluses loose:
.IP \[bu] 2
.IP \[bu] 3
Plus 1
.IP \[bu] 2
.IP \[bu] 3
Plus 2
.IP \[bu] 2
.IP \[bu] 3
Plus 3
.LP
Minuses tight:
.IP \[bu] 2
.IP \[bu] 3
Minus 1
.IP \[bu] 2
.IP \[bu] 3
Minus 2
.IP \[bu] 2
.IP \[bu] 3
Minus 3
.LP
Minuses loose:
.IP \[bu] 2
.IP \[bu] 3
Minus 1
.IP \[bu] 2
.IP \[bu] 3
Minus 2
.IP \[bu] 2
.IP \[bu] 3
Minus 3
.SH 2
Ordered
@ -273,39 +273,39 @@ Ordered
.pdfhref M "ordered"
.LP
Tight:
.IP "1." 3
.IP " 1." 4
First
.IP "2." 3
.IP " 2." 4
Second
.IP "3." 3
.IP " 3." 4
Third
.LP
and:
.IP "1." 3
.IP " 1." 4
One
.IP "2." 3
.IP " 2." 4
Two
.IP "3." 3
.IP " 3." 4
Three
.LP
Loose using tabs:
.IP "1." 3
.IP " 1." 4
First
.IP "2." 3
.IP " 2." 4
Second
.IP "3." 3
.IP " 3." 4
Third
.LP
and using spaces:
.IP "1." 3
.IP " 1." 4
One
.IP "2." 3
.IP " 2." 4
Two
.IP "3." 3
.IP " 3." 4
Three
.LP
Multiple paragraphs:
.IP "1." 3
.IP " 1." 4
Item 1, graf one.
.RS 4
.PP
@ -313,116 +313,116 @@ Item 1.
graf two.
The quick brown fox jumped over the lazy dog's back.
.RE
.IP "2." 3
.IP " 2." 4
Item 2.
.IP "3." 3
.IP " 3." 4
Item 3.
.SH 2
Nested
.pdfhref O 2 "Nested"
.pdfhref M "nested"
.IP \[bu] 2
.IP \[bu] 3
Tab
.RS 2
.IP \[bu] 2
.RS 3
.IP \[bu] 3
Tab
.RS 2
.IP \[bu] 2
.RS 3
.IP \[bu] 3
Tab
.RE
.RE
.LP
Here's another:
.IP "1." 3
.IP " 1." 4
First
.IP "2." 3
.IP " 2." 4
Second:
.RS 4
.IP \[bu] 2
.IP \[bu] 3
Fee
.IP \[bu] 2
.IP \[bu] 3
Fie
.IP \[bu] 2
.IP \[bu] 3
Foe
.RE
.IP "3." 3
.IP " 3." 4
Third
.LP
Same thing but with paragraphs:
.IP "1." 3
.IP " 1." 4
First
.IP "2." 3
.IP " 2." 4
Second:
.RS 4
.IP \[bu] 2
.IP \[bu] 3
Fee
.IP \[bu] 2
.IP \[bu] 3
Fie
.IP \[bu] 2
.IP \[bu] 3
Foe
.RE
.IP "3." 3
.IP " 3." 4
Third
.SH 2
Tabs and spaces
.pdfhref O 2 "Tabs and spaces"
.pdfhref M "tabs-and-spaces"
.IP \[bu] 2
.IP \[bu] 3
this is a list item indented with tabs
.IP \[bu] 2
.IP \[bu] 3
this is a list item indented with spaces
.RS 2
.IP \[bu] 2
.RS 3
.IP \[bu] 3
this is an example list item indented with tabs
.IP \[bu] 2
.IP \[bu] 3
this is an example list item indented with spaces
.RE
.SH 2
Fancy list markers
.pdfhref O 2 "Fancy list markers"
.pdfhref M "fancy-list-markers"
.IP "(2)" 4
.IP " (2)" 5
begins with 2
.IP "(3)" 4
.IP " (3)" 5
and now 3
.RS 4
.RS 5
.LP
with a continuation
.IP "iv." 4
.IP " iv." 5
sublist with roman numerals, starting with 4
.IP " v." 4
.IP " v." 5
more items
.RS 4
.IP "(A)" 4
.RS 5
.IP " (A)" 5
a subsublist
.IP "(B)" 4
.IP " (B)" 5
a subsublist
.RE
.RE
.LP
Nesting:
.IP "A." 3
.IP " A." 4
Upper Alpha
.RS 4
.IP "I." 3
.IP " I." 4
Upper Roman.
.RS 4
.IP "(6)" 4
.IP " (6)" 5
Decimal start with 6
.RS 4
.IP "c)" 3
.RS 5
.IP " c)" 4
Lower alpha with paren
.RE
.RE
.RE
.LP
Autonumbering:
.IP "1." 3
.IP " 1." 4
Autonumber.
.IP "2." 3
.IP " 2." 4
More.
.RS 4
.IP "1." 3
.IP " 1." 4
Nested.
.RE
.LP
@ -545,9 +545,9 @@ computer
.IP "orange"
orange fruit
.RS
.IP "1." 3
.IP " 1." 4
sublist
.IP "2." 3
.IP " 2." 4
sublist
.RE
.SH 1
@ -680,35 +680,35 @@ Ellipses\&...and\&...and\&....
LaTeX
.pdfhref O 1 "LaTeX"
.pdfhref M "latex"
.IP \[bu] 2
.IP \[bu] 2
.IP \[bu] 3
.IP \[bu] 3
@2 + 2 = 4@
.IP \[bu] 2
.IP \[bu] 3
@x \[u2208] y@
.IP \[bu] 2
.IP \[bu] 3
@alpha \[u2227] omega@
.IP \[bu] 2
.IP \[bu] 3
@223@
.IP \[bu] 2
.IP \[bu] 3
@p@\-Tree
.IP \[bu] 2
.IP \[bu] 3
Here's some display math:
.EQ
d over {d x} f ( x ) = lim sub {h -> 0} {f ( x + h ) \[u2212] f ( x )} over h
.EN
.IP \[bu] 2
.IP \[bu] 3
Here's one that has a line break in it: @alpha + omega times x sup 2@.
.LP
These shouldn't be math:
.IP \[bu] 2
.IP \[bu] 3
To get the famous equation, write \f[C]$e\ =\ mc\[ha]2$\f[].
.IP \[bu] 2
.IP \[bu] 3
$22,000 is a \f[I]lot\f[] of money.
So is $34,000.
(It worked if \[lq]lot\[rq] is emphasized.)
.IP \[bu] 2
.IP \[bu] 3
Shoes ($20) and socks ($5).
.IP \[bu] 2
.IP \[bu] 3
Escaped \f[C]$\f[]: $73 \f[I]this should be emphasized\f[] 23$.
.LP
Here's a LaTeX table:
@ -719,15 +719,15 @@ Special Characters
.pdfhref M "special-characters"
.LP
Here is some unicode:
.IP \[bu] 2
.IP \[bu] 3
I hat: Î
.IP \[bu] 2
.IP \[bu] 3
o umlaut: ö
.IP \[bu] 2
.IP \[bu] 3
section: §
.IP \[bu] 2
.IP \[bu] 3
set membership: ∈
.IP \[bu] 2
.IP \[bu] 3
copyright: ©
.LP
AT&T has an ampersand in their name.
@ -920,14 +920,14 @@ With an ampersand: \c
.pdfhref W -D "http://example.com/?foo=1&bar=2" -A "\c" \
-- "http://example.com/?foo=1&bar=2"
\&
.IP \[bu] 2
.IP \[bu] 3
In a list?
.IP \[bu] 2
.IP \[bu] 3
\c
.pdfhref W -D "http://example.com/" -A "\c" \
-- "http://example.com/"
\&
.IP \[bu] 2
.IP \[bu] 3
It should.
.LP
An e\-mail address: \c
@ -1005,7 +1005,7 @@ Notes can go in quotes.\**
In quote.
.FE
.RE
.IP "1." 3
.IP " 1." 4
And in list items.\**
.FS
In list.