Skip to content

Commit cf847b0

Browse files
committed
LaTeX reader: improve treatment of cref, Cref.
Associate with `\cref` and `\Cref` the reference-type `ref+label` and `ref+Label`. So far we don't do anything fancy with these. Also, associate with `\vref` `ref` instead of `ref+page`. See #7463.
1 parent 02b6483 commit cf847b0

File tree

4 files changed

+10
-10
lines changed

4 files changed

+10
-10
lines changed

src/Text/Pandoc/Readers/LaTeX.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ parseLaTeX = do
114114

115115
resolveRefs :: M.Map Text [Inline] -> Inline -> Inline
116116
resolveRefs labels x@(Link (ident,classes,kvs) _ _) =
117-
case (lookup "reference-type" kvs,
117+
case (T.takeWhile (/='+') <$> lookup "reference-type" kvs,
118118
lookup "reference" kvs) of
119-
(Just "ref", Just lab) ->
119+
(Just "ref", Just lab) -> -- TODO special treatment of ref+label
120120
case M.lookup lab labels of
121121
Just txt -> Link (ident,classes,kvs) txt ("#" <> lab, "")
122122
Nothing -> x

src/Text/Pandoc/Readers/LaTeX/Inline.hs

+4-4
Original file line numberDiff line numberDiff line change
@@ -337,11 +337,11 @@ refCommands :: PandocMonad m => M.Map Text (LP m Inlines)
337337
refCommands = M.fromList
338338
[ ("label", rawInlineOr "label" dolabel)
339339
, ("ref", rawInlineOr "ref" $ doref "ref")
340-
, ("cref", rawInlineOr "cref" $ doref "ref") -- from cleveref.sty
341-
, ("Cref", rawInlineOr "Cref" $ doref "ref") -- from cleveref.sty
342-
, ("vref", rawInlineOr "vref" $ doref "ref+page") -- from varioref.sty
340+
, ("cref", rawInlineOr "cref" $ doref "ref+label") -- from cleveref.sty
341+
, ("Cref", rawInlineOr "Cref" $ doref "ref+Label") -- from cleveref.sty
342+
, ("vref", rawInlineOr "vref" $ doref "ref") -- from varioref.sty
343343
, ("eqref", rawInlineOr "eqref" $ doref "eqref") -- from amsmath.sty
344-
, ("autoref", rawInlineOr "autoref" $ doref "autoref") -- from hyperref.sty
344+
, ("autoref", rawInlineOr "autoref" $ doref "ref+label") -- from hyperref.sty
345345
]
346346

347347
acronymCommands :: PandocMonad m => M.Map Text (LP m Inlines)

test/command/1608.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ These are all pretty interesting facts.
129129
, Link
130130
( ""
131131
, []
132-
, [ ( "reference-type" , "ref" )
132+
, [ ( "reference-type" , "ref+label" )
133133
, ( "reference" , "def:tri" )
134134
]
135135
)

test/command/refs.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Figure \cref{fig:1}
2828
, Link
2929
( ""
3030
, []
31-
, [ ( "reference-type" , "ref" )
31+
, [ ( "reference-type" , "ref+label" )
3232
, ( "reference" , "fig:1" )
3333
]
3434
)
@@ -48,7 +48,7 @@ Figure \vref{fig:1}
4848
, Link
4949
( ""
5050
, []
51-
, [ ( "reference-type" , "ref+page" )
51+
, [ ( "reference-type" , "ref" )
5252
, ( "reference" , "fig:1" )
5353
]
5454
)
@@ -66,7 +66,7 @@ Figure \vref{fig:1}
6666
[ Link
6767
( ""
6868
, []
69-
, [ ( "reference-type" , "autoref" )
69+
, [ ( "reference-type" , "ref+label" )
7070
, ( "reference" , "fig:flowchart" )
7171
]
7272
)

0 commit comments

Comments
 (0)