git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: use Link instead of Span for `\ref`.
db715caJohn MacFarlane
src/Text/Pandoc/Readers/LaTeX.hs+6−5
@@ -111,13 +111,12 @@ parseLaTeX = do
111 return $ Pandoc meta bs'
111 return $ Pandoc meta bs'
112
112
113resolveRefs :: M.Map String [Inline] -> Inline -> Inline
113resolveRefs :: M.Map String [Inline] -> Inline -> Inline
114−resolveRefs labels x@(Span (ident,classes,kvs) _) =
114+resolveRefs labels x@(Link (ident,classes,kvs) _ _) =
115 case (lookup "reference-type" kvs,
115 case (lookup "reference-type" kvs,
116 lookup "reference" kvs) of
116 lookup "reference" kvs) of
117 (Just "ref", Just lab) ->
117 (Just "ref", Just lab) ->
118 case M.lookup lab labels of
118 case M.lookup lab labels of
119− Just txt -> Span (ident,classes,kvs)
119+ Just txt -> Link (ident,classes,kvs) txt ('#':lab, "")
120− [Link nullAttr txt ('#':lab, "")]
121 Nothing -> x
120 Nothing -> x
122 _ -> x
121 _ -> x
123resolveRefs _ x = x
122resolveRefs _ x = x
@@ -1538,9 +1537,11 @@ doref :: PandocMonad m => String -> LP m Inlines
1538doref cls = do
1537doref cls = do
1539 v <- braced
1538 v <- braced
1540 let refstr = toksToString v
1539 let refstr = toksToString v
1541− return $ spanWith ("",[],[ ("reference-type", cls)
1540+ return $ linkWith ("",[],[ ("reference-type", cls)
1542 , ("reference", refstr)])
1541 , ("reference", refstr)])
1542+ ('#':refstr)
1543+ ""
1543− $ inBrackets $ str refstr
1544+ (inBrackets $ str refstr)
1544
1545
1545lookupListDefault :: (Show k, Ord k) => v -> [k] -> M.Map k v -> v
1546lookupListDefault :: (Show k, Ord k) => v -> [k] -> M.Map k v -> v
1546lookupListDefault d = (fromMaybe d .) . lookupList
1547lookupListDefault d = (fromMaybe d .) . lookupList
test/command/refs.md+6−6
@@ -2,21 +2,21 @@
2% pandoc -f latex -t native
2% pandoc -f latex -t native
3Figure \ref{fig:1}
3Figure \ref{fig:1}
4^D
4^D
5−[Para [Str "Figure",Space,Span ("",[],[("reference-type","ref"),("reference","fig:1")]) [Str "[fig:1]"]]]
5+[Para [Str "Figure",Space,Link ("",[],[("reference-type","ref"),("reference","fig:1")]) [Str "[fig:1]"] ("#fig:1","")]]
6```
6```
7
7
8```
8```
9% pandoc -f latex -t native
9% pandoc -f latex -t native
10Figure \cref{fig:1}
10Figure \cref{fig:1}
11^D
11^D
12−[Para [Str "Figure",Space,Span ("",[],[("reference-type","ref"),("reference","fig:1")]) [Str "[fig:1]"]]]
12+[Para [Str "Figure",Space,Link ("",[],[("reference-type","ref"),("reference","fig:1")]) [Str "[fig:1]"] ("#fig:1","")]]
13```
13```
14
14
15```
15```
16% pandoc -f latex -t native
16% pandoc -f latex -t native
17Figure \vref{fig:1}
17Figure \vref{fig:1}
18^D
18^D
19−[Para [Str "Figure",Space,Span ("",[],[("reference-type","ref+page"),("reference","fig:1")]) [Str "[fig:1]"]]]
19+[Para [Str "Figure",Space,Link ("",[],[("reference-type","ref+page"),("reference","fig:1")]) [Str "[fig:1]"] ("#fig:1","")]]
20```
20```
21
21
22```
22```
@@ -28,7 +28,7 @@ Accuracy~\eqref{eq:Accuracy} is the proportion, measuring true results among all
28 Accuracy = \frac{t_p + t_n}{t_p + f_p + f_n + t_n}
28 Accuracy = \frac{t_p + t_n}{t_p + f_p + f_n + t_n}
29\end{equation}
29\end{equation}
30^D
30^D
31−[Para [Str "Accuracy\160",Span ("",[],[("reference-type","eqref"),("reference","eq:Accuracy")]) [Str "[eq:Accuracy]"],Space,Str "is",Space,Str "the",Space,Str "proportion,",Space,Str "measuring",Space,Str "true",Space,Str "results",Space,Str "among",Space,Str "all",Space,Str "results."]
31+[Para [Str "Accuracy\160",Link ("",[],[("reference-type","eqref"),("reference","eq:Accuracy")]) [Str "[eq:Accuracy]"] ("#eq:Accuracy",""),Space,Str "is",Space,Str "the",Space,Str "proportion,",Space,Str "measuring",Space,Str "true",Space,Str "results",Space,Str "among",Space,Str "all",Space,Str "results."]
32,Para [Math DisplayMath "\\label{eq:Accuracy}\n Accuracy = \\frac{t_p + t_n}{t_p + f_p + f_n + t_n}"]]
32,Para [Math DisplayMath "\\label{eq:Accuracy}\n Accuracy = \\frac{t_p + t_n}{t_p + f_p + f_n + t_n}"]]
33```
33```
34
34
@@ -43,12 +43,12 @@ Accuracy~\eqref{eq:Accuracy} is the proportion, measuring true results among all
43Figure \ref{fig:Logo} illustrated the SVG logo
43Figure \ref{fig:Logo} illustrated the SVG logo
44^D
44^D
45[Para [Image ("",[],[]) [Str "Logo",Span ("",[],[("label","fig:Logo")]) []] ("command/SVG_logo.svg","fig:")]
45[Para [Image ("",[],[]) [Str "Logo",Span ("",[],[("label","fig:Logo")]) []] ("command/SVG_logo.svg","fig:")]
46−,Para [Str "Figure",Space,Span ("",[],[("reference-type","ref"),("reference","fig:Logo")]) [Str "[fig:Logo]"],Space,Str "illustrated",Space,Str "the",Space,Str "SVG",Space,Str "logo"]]
46+,Para [Str "Figure",Space,Link ("",[],[("reference-type","ref"),("reference","fig:Logo")]) [Str "[fig:Logo]"] ("#fig:Logo",""),Space,Str "illustrated",Space,Str "the",Space,Str "SVG",Space,Str "logo"]]
47```
47```
48
48
49```
49```
50% pandoc -f latex -t native
50% pandoc -f latex -t native
51\label{section} Section \ref{section}
51\label{section} Section \ref{section}
52^D
52^D
53−[Para [Span ("",[],[("label","section")]) [Str "[section]"],Space,Str "Section",Space,Span ("",[],[("reference-type","ref"),("reference","section")]) [Str "[section]"]]]
53+[Para [Span ("",[],[("label","section")]) [Str "[section]"],Space,Str "Section",Space,Link ("",[],[("reference-type","ref"),("reference","section")]) [Str "[section]"] ("#section","")]]
54```
54```