@@ -1031,6 +1031,14 @@ sectionHeader classes ident level lst = do
10311031 braces txtNoNotes
10321032 else empty
10331033
1034+mapAlignment :: Text -> Text
1035+mapAlignment a = case a of
1036+ "top" -> "T"
1037+ "top-baseline" -> "t"
1038+ "bottom" -> "b"
1039+ "center" -> "c"
1040+ _ -> a
1041+
10341042wrapDiv :: PandocMonad m => Attr -> Doc Text -> LW m (Doc Text)
10351043wrapDiv (_,classes,kvs) t = do
10361044 beamer <- gets stBeamer
@@ -1038,14 +1046,25 @@ wrapDiv (_,classes,kvs) t = do
10381046 lang <- toLang $ lookup "lang" kvs
10391047 let wrapColumns = if beamer && "columns" `elem` classes
10401048 then \contents ->
1041− inCmd "begin" "columns" <> brackets "T"
1042− $$ contents
1043− $$ inCmd "end" "columns"
1049+ let valign = maybe "T" mapAlignment (lookup "align" kvs)
1050+ totalwidth = maybe [] (\x -> ["totalwidth=" <> x])
1051+ (lookup "totalwidth" kvs)
1052+ onlytextwidth = filter ((==) "onlytextwidth") classes
1053+ options = text $ T.unpack $ T.intercalate "," $
1054+ valign : totalwidth ++ onlytextwidth
1055+ in inCmd "begin" "columns" <> brackets options
1056+ $$ contents
1057+ $$ inCmd "end" "columns"
10441058 else id
10451059 wrapColumn = if beamer && "column" `elem` classes
10461060 then \contents ->
1047− let w = maybe "0.48" fromPct (lookup "width" kvs)
1048− in inCmd "begin" "column" <>
1061+ let valign =
1062+ maybe ""
1063+ (brackets . text . T.unpack . mapAlignment)
1064+ (lookup "align" kvs)
1065+ w = maybe "0.48" fromPct (lookup "width" kvs)
1066+ in inCmd "begin" "column" <>
1067+ valign <>
10491068 braces (literal w <> "\\textwidth")
10501069 $$ contents
10511070 $$ inCmd "end" "column"