aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs15
-rw-r--r--test/command/3587.md36
2 files changed, 50 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 57d2803ba..7252a2da7 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -666,7 +666,7 @@ dosiunitx = do
skipopts
value <- tok
valueprefix <- option "" $ bracketed tok
- unit <- tok
+ unit <- inlineCommand' <|> tok
let emptyOr160 "" = ""
emptyOr160 _ = "\160"
return . mconcat $ [valueprefix,
@@ -675,6 +675,12 @@ dosiunitx = do
emptyOr160 unit,
unit]
+-- siunitx's \square command
+dosquare :: PandocMonad m => LP m Inlines
+dosquare = do
+ unit <- inlineCommand' <|> tok
+ return . mconcat $ [unit, "\178"]
+
lit :: String -> LP m Inlines
lit = pure . str
@@ -1468,6 +1474,13 @@ inlineCommands = M.union inlineLanguageCommands $ M.fromList
, ("acsp", doAcronymPlural "abbrv")
-- siuntix
, ("SI", dosiunitx)
+ -- units of siuntix
+ , ("celsius", lit "°C")
+ , ("degreeCelsius", lit "°C")
+ , ("gram", lit "g")
+ , ("meter", lit "m")
+ , ("milli", lit "m")
+ , ("square", dosquare)
-- hyphenat
, ("bshyp", lit "\\\173")
, ("fshyp", lit "/\173")
diff --git a/test/command/3587.md b/test/command/3587.md
index addb6c582..414593b39 100644
--- a/test/command/3587.md
+++ b/test/command/3587.md
@@ -19,3 +19,39 @@
^D
[Para [Str "{}\160{}\160{}"]]
```
+
+```
+% pandoc -f latex -t native
+\SI{30}{\milli\meter}
+^D
+[Para [Str "30\160mm"]]
+```
+
+```
+% pandoc -f latex -t native
+\SI{6}{\gram}
+^D
+[Para [Str "6\160g"]]
+```
+
+```
+% pandoc -f latex -t native
+\SI{25}{\square\meter}
+^D
+[Para [Str "25\160m\178"]]
+```
+
+```
+% pandoc -f latex -t native
+\SI{18.2}{\degreeCelsius}
+^D
+[Para [Str "18.2\160\176C"]]
+```
+
+```
+% pandoc -f latex -t native
+\SI{18.2}{\celsius}
+^D
+[Para [Str "18.2\160\176C"]]
+```
+