mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-30 17:59:17 +08:00
LaTeX reader: parse short table caption.
See jgm/pandoc-types#103. This is not too useful yet, because writers don't do anything with the short caption.
This commit is contained in:
@@ -1171,7 +1171,7 @@ addImageCaption = walkM go
|
||||
st <- getState
|
||||
case sCaption st of
|
||||
Nothing -> return p
|
||||
Just figureCaption -> do
|
||||
Just (Caption _mbshort bs) -> do
|
||||
let mblabel = sLastLabel st
|
||||
let attr' = case mblabel of
|
||||
Just lab -> (lab, cls, kvs)
|
||||
@@ -1186,7 +1186,8 @@ addImageCaption = walkM go
|
||||
[Str (renderDottedNum num)] (sLabels st) }
|
||||
|
||||
return $ SimpleFigure attr'
|
||||
(maybe id removeLabel mblabel (B.toList figureCaption))
|
||||
(maybe id removeLabel mblabel
|
||||
(blocksToInlines bs))
|
||||
(src, tit)
|
||||
go x = return x
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ data LaTeXState = LaTeXState{ sOptions :: ReaderOptions
|
||||
, sLogMessages :: [LogMessage]
|
||||
, sIdentifiers :: Set.Set Text
|
||||
, sVerbatimMode :: Bool
|
||||
, sCaption :: Maybe Inlines
|
||||
, sCaption :: Maybe Caption
|
||||
, sInListItem :: Bool
|
||||
, sInTableCell :: Bool
|
||||
, sLastHeaderNum :: DottedNum
|
||||
@@ -1072,10 +1072,11 @@ label = do
|
||||
|
||||
setCaption :: PandocMonad m => LP m Inlines -> LP m ()
|
||||
setCaption inline = try $ do
|
||||
skipopts
|
||||
mbshort <- Just . toList <$> bracketed inline <|> pure Nothing
|
||||
ils <- tokWith inline
|
||||
optional $ try $ spaces *> label
|
||||
updateState $ \st -> st{ sCaption = Just ils }
|
||||
updateState $ \st -> st{ sCaption = Just $
|
||||
Caption mbshort [Plain $ toList ils] }
|
||||
|
||||
resetCaption :: PandocMonad m => LP m ()
|
||||
resetCaption = updateState $ \st -> st{ sCaption = Nothing
|
||||
|
||||
@@ -355,18 +355,18 @@ addTableCaption :: PandocMonad m => Blocks -> LP m Blocks
|
||||
addTableCaption = walkM go
|
||||
where go (Table attr c spec th tb tf) = do
|
||||
st <- getState
|
||||
let capt = fromMaybe c $ sCaption st
|
||||
let mblabel = sLastLabel st
|
||||
capt <- case (sCaption st, mblabel) of
|
||||
(Just ils, Nothing) -> return $ caption Nothing (plain ils)
|
||||
(Just ils, Just lab) -> do
|
||||
case mblabel of
|
||||
Nothing -> return ()
|
||||
Just lab -> do
|
||||
num <- getNextNumber sLastTableNum
|
||||
setState
|
||||
st{ sLastTableNum = num
|
||||
, sLabels = M.insert lab
|
||||
[Str (renderDottedNum num)]
|
||||
(sLabels st) }
|
||||
return $ caption Nothing (plain ils) -- add number??
|
||||
(Nothing, _) -> return c
|
||||
-- add num to caption?
|
||||
let attr' = case (attr, mblabel) of
|
||||
((_,classes,kvs), Just ident) ->
|
||||
(ident,classes,kvs)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
```
|
||||
% pandoc -f latex -t native
|
||||
\begin{table}
|
||||
\caption[short caption]{long caption}
|
||||
\begin{tabular}{ll}
|
||||
hi & hi \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
^D
|
||||
[ Table
|
||||
( "" , [] , [] )
|
||||
(Caption
|
||||
(Just [ Str "short" , Space , Str "caption" ])
|
||||
[ Plain [ Str "long" , Space , Str "caption" ] ])
|
||||
[ ( AlignLeft , ColWidthDefault )
|
||||
, ( AlignLeft , ColWidthDefault )
|
||||
]
|
||||
(TableHead ( "" , [] , [] ) [])
|
||||
[ TableBody
|
||||
( "" , [] , [] )
|
||||
(RowHeadColumns 0)
|
||||
[]
|
||||
[ Row
|
||||
( "" , [] , [] )
|
||||
[ Cell
|
||||
( "" , [] , [] )
|
||||
AlignDefault
|
||||
(RowSpan 1)
|
||||
(ColSpan 1)
|
||||
[ Plain [ Str "hi" ] ]
|
||||
, Cell
|
||||
( "" , [] , [] )
|
||||
AlignDefault
|
||||
(RowSpan 1)
|
||||
(ColSpan 1)
|
||||
[ Plain [ Str "hi" ] ]
|
||||
]
|
||||
]
|
||||
]
|
||||
(TableFoot ( "" , [] , [] ) [])
|
||||
]
|
||||
```
|
||||
Reference in New Issue
Block a user