aboutsummaryrefslogtreecommitdiff
path: root/latexfmt.hs
diff options
context:
space:
mode:
Diffstat (limited to 'latexfmt.hs')
-rw-r--r--latexfmt.hs9
1 files changed, 7 insertions, 2 deletions
diff --git a/latexfmt.hs b/latexfmt.hs
index 2d0dd74..3a31970 100644
--- a/latexfmt.hs
+++ b/latexfmt.hs
@@ -16,7 +16,7 @@ import Prelude hiding
takeWhile,
)
-data Tokens = Wrd {unwrd :: T.Text} | Cmd T.Text | BSq [Tokens] | BCr [Tokens] | NL | Cmt T.Text | Nobs | IMath T.Text | Math T.Text | Verbatim Bool T.Text
+data Tokens = Wrd {unwrd :: T.Text} | Lbrk | Cmd T.Text | BSq [Tokens] | BCr [Tokens] | NL | Cmt T.Text | Nobs | IMath T.Text | Math T.Text | Verbatim Bool T.Text
deriving (Show)
isCtrl x = not $ isAlpha x || isDigit x
@@ -71,13 +71,16 @@ toStr (IMath m) = do
print "\\("
print' m
print' "\\)"
+toStr Lbrk = do
+ print' "\\\\"
+ printnl'
-- Tokeniser
ws = inClass " \t\n"
pad = takeWhile ws
-token = nl <|> pad *> (nobs <|> verbatim <|> verbatimStar <|> math <|> cmd <|> bsq <|> bcr <|> cmt <|> wrd)
+token = nl <|> pad *> (nobs <|> lbrk <|> verbatim <|> verbatimStar <|> math <|> cmd <|> bsq <|> bcr <|> cmt <|> wrd)
nobs = string "~" *> pure Nobs
@@ -94,6 +97,8 @@ wrd = Wrd <$> takeWhile1 (notInClass " \t\n[]{}\\~")
cmt = Cmt <$> (takeWhile1 (== '%') *> takeWhile (/= '\n'))
+lbrk = Lbrk <$ string "\\\\"
+
math = oldmath <|> newmath <|> oldimath <|> newimath
oldmath = Math <$> (string "$$" *> takeWhile (/= '$')) <* string "$$"