packages feed

texmath 0.12.8.10 → 0.12.8.11

raw patch · 6 files changed

+69/−24 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

changelog view
@@ -1,3 +1,9 @@+texmath (0.12.8.11)++  * TeX reader: Ignore `@{..}` and `!{..}` in array alignment specifiers (#241).++  * TeX reader: ignore `\color` instead of crashing (#225).+ texmath (0.12.8.10)    * TeX reader: allow `\lVert .. \vVert` to create an EDelimited (#238).
src/Text/TeXMath/Readers/MathML.hs view
@@ -52,7 +52,7 @@ import Data.List (transpose) import Control.Applicative ((<|>)) import qualified Data.Text as T-import Control.Monad (filterM, guard)+import Control.Monad (filterM, mzero) import Control.Monad.Reader (ReaderT, runReaderT, asks, local) import Data.Either (rights) @@ -449,14 +449,14 @@ -- Other  semantics :: Element -> MML Exp-semantics e = do-  guard (not $ null cs)-  first <- safeExpr (head cs)-  if isEmpty first-    then fromMaybe empty . getFirst . mconcat <$> mapM annotation (tail cs)-    else return first-  where-    cs = elChildren e+semantics e =+  case elChildren e of+    [] -> mzero+    (c:cs) -> do+      first <- safeExpr c+      if isEmpty first+        then fromMaybe empty . getFirst . mconcat <$> mapM annotation cs+        else return first  annotation :: Element -> MML (First Exp) annotation e = do@@ -509,7 +509,7 @@   align <- maybe a toAlignment <$> (findAttrQ "columnalign" e)   case name e of     "mtr" -> mapM (tableCell align) (elChildren e)-    "mlabeledtr" -> mapM (tableCell align) (tail $ elChildren e)+    "mlabeledtr" -> mapM (tableCell align) (drop 1 $ elChildren e)     _ -> throwError $ "Invalid Element: Only expecting mtr elements " <> err e  tableCell :: Alignment -> Element -> MML (Alignment, [Exp])
src/Text/TeXMath/Readers/OMML.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE PatternGuards #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE LambdaCase #-}  {- Copyright (C) 2014 Jesse Rosenthal <jrosenthal@jhu.edu>@@ -58,7 +59,9 @@ elemToOMML :: Element -> Maybe [Exp] elemToOMML element  | isElem "m" "oMathPara" element = do   let expList = mapMaybe elemToOMML (elChildren element)-  return $ map (\l -> if length l == 1 then (head l) else EGrouped l) expList+  return $ map (\case+                   [x] -> x+                   xs -> EGrouped xs) expList elemToOMML element  | isElem "m" "oMath" element =   Just $ concat $ mapMaybe elemToExps $ unwrapWTags $ elChildren element elemToOMML _ = Nothing@@ -238,11 +241,8 @@ elemToExps' element | isElem "m" "acc" element = do   let chr = filterChildName (hasElemName "m" "accPr") element >>=             filterChildName (hasElemName "m" "chr") >>=-            findAttrBy (hasElemName "m" "val") >>=-            Just . head-      chr' = case chr of-        Just c -> T.singleton c-        Nothing -> "\x302"       -- default to wide hat.+            findAttrBy (hasElemName "m" "val")+      chr' = maybe "\x302" T.pack chr  -- default to wide hat   baseExp <- filterChildName (hasElemName "m" "e") element >>=              elemToBase   return $ [EOver False baseExp (ESymbol Accent chr')]@@ -271,18 +271,17 @@                   (elChildren element)       inDelimExps = map (map Right) baseExps       dPr = filterChildName (hasElemName "m" "dPr") element+      headOrSpace [] = Just ' '+      headOrSpace (c:_) = Just c       begChr = dPr >>=                filterChildName (hasElemName "m" "begChr") >>=-               findAttrBy (hasElemName "m" "val") >>=-               (\c -> if null c then (Just ' ') else (Just $ head c))+               findAttrBy (hasElemName "m" "val") >>= headOrSpace       sepChr = dPr >>=                filterChildName (hasElemName "m" "sepChr") >>=-               findAttrBy (hasElemName "m" "val") >>=-               (\c -> if null c then (Just ' ') else (Just $ head c))+               findAttrBy (hasElemName "m" "val") >>= headOrSpace       endChr = dPr >>=                filterChildName (hasElemName "m" "endChr") >>=-               findAttrBy (hasElemName "m" "val") >>=-               (\c -> if null c then (Just ' ') else (Just $ head c))+               findAttrBy (hasElemName "m" "val") >>= headOrSpace       beg = maybe "(" T.singleton begChr       end = maybe ")" T.singleton endChr       sep = maybe "|" T.singleton sepChr
src/Text/TeXMath/Readers/TeX.hs view
@@ -202,6 +202,7 @@   choice     [ text c     , styled c+    , colored c     , root c     , xspace c     , mathop c@@ -452,8 +453,10 @@  arrayAlignments :: TP [Alignment] arrayAlignments = mconcat <$>-  braces (many (((:[]) . letterToAlignment <$> letter)+  braces (many (+                ((:[]) . letterToAlignment <$> letter)             <|> ([] <$ char '|')+            <|> ([] <$ ((char '@' <|> char '!') <* inbraces))             <|> (do char '*'                     num <- T.pack <$> braces (many1 digit)                     cols <- arrayAlignments@@ -673,6 +676,13 @@                        EGrouped xs -> f xs                        _           -> f [x]        Nothing  -> mzero++colored :: Text -> TP Exp+colored "\\color" = do+  _ <- inbraces -- skip the color+  -- in the future we might add color to the types or to the styles+  texSymbol <|> inbraces <|> texChar+colored _ = mzero  -- note: sqrt can be unary, \sqrt{2}, or binary, \sqrt[3]{2} root :: Text -> TP Exp
+ test/regression/241.test view
@@ -0,0 +1,30 @@+<<< tex+\begin{array}{l@{\qquad}l}+\text{Infection/colonization episode} & \text{Waning immunity episode}\\+b^{\prime}(t) = \mu_{0}b(t) - cy(t) & b(t) = 0 +\end{array}+>>> native+[ EArray+    [ AlignLeft , AlignLeft ]+    [ [ [ EText TextNormal "Infection/colonization episode" ]+      , [ EText TextNormal "Waning immunity episode" ]+      ]+    , [ [ ESuper (EIdentifier "b") (ESymbol Ord "\8242")+        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Rel "="+        , ESub (EIdentifier "\956") (ENumber "0")+        , EIdentifier "b"+        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Bin "\8722"+        , EIdentifier "c"+        , EIdentifier "y"+        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        ]+      , [ EIdentifier "b"+        , EDelimited "(" ")" [ Right (EIdentifier "t") ]+        , ESymbol Rel "="+        , ENumber "0"+        ]+      ]+    ]+]
texmath.cabal view
@@ -1,5 +1,5 @@ Name:                texmath-Version:             0.12.8.10+Version:             0.12.8.11 Cabal-Version:       >= 1.10 Build-type:          Simple Synopsis:            Conversion between math formats.