@@ -26,12 +26,13 @@ where
26
26
27
27
import Text.XML.Light
28
28
import Text.TeXMath.Types
29
- import Text.TeXMath.Shared (isUppercaseGreek )
29
+ import Text.TeXMath.Shared (isUppercaseGreek , isRLSequence )
30
30
import Data.Generics (everywhere , mkT )
31
31
import Data.Char (isSymbol , isPunctuation )
32
32
import Data.Either (lefts , isLeft , rights )
33
33
import qualified Data.Text as T
34
34
import Data.List.Split (splitWhen )
35
+ import Data.List (intercalate )
35
36
36
37
-- | Transforms an expression tree to an OMML XML Tree
37
38
writeOMML :: DisplayType -> [Exp ] -> Element
@@ -84,12 +85,17 @@ maximum' [] = 0
84
85
maximum' xs = maximum xs
85
86
86
87
makeArray :: [Element ] -> [Alignment ] -> [ArrayLine ] -> Element
88
+ makeArray props as rs
89
+ | isRLSequence as = mnode " eqArr" $ map toE rs
90
+ where toE r = mnode " e" (intercalate ampersand
91
+ (map (concatMap (showExp props)) r))
92
+ ampersand = [mnode " r" [ mnode " t" (" &" :: String ) ]]
87
93
makeArray props as rs = mnode " m" $ mProps : map toMr rs
88
94
where mProps = mnode " mPr"
89
95
[ mnodeA " baseJc" " center" ()
90
96
, mnodeA " plcHide" " on" ()
91
97
, mnode " mcs" $ map toMc as' ]
92
- as' = take (maximum' $ map length rs) $ as ++ cycle [ AlignCenter ]
98
+ as' = take (maximum' $ map length rs) $ as ++ repeat AlignCenter
93
99
toMr r = mnode " mr" $ map (mnode " e" . concatMap (showExp props)) r
94
100
toMc a = mnode " mc" $ mnode " mcPr"
95
101
[ mnodeA " mcJc" (toAlign a) ()
0 commit comments