pandoc-cl/format-link.lua

52 lines
1.3 KiB
Lua

if FORMAT:match 'latex' then
function Link (elem)
local abbrev = ''
if elem.c[3][1]:sub(2, 4) == 'fig' then
abbrev = 'fig.'
end
if elem.c[3][1]:sub(2, 4) == 'sec' then
abbrev = 'section'
end
if elem.c[1][2][1] == 'uri' then
return elem
else
if elem.c[2][1] ~= nil then
if elem.c[2][1].text == 'x' then
return {
pandoc.Str(abbrev),
pandoc.RawInline('latex', '~\\nameref{'),
pandoc.RawInline('latex', elem.c[3][1]:sub(2)),
pandoc.RawInline('latex', '}'),
pandoc.Str(', page'),
pandoc.RawInline('latex', '~\\pageref{'),
pandoc.RawInline('latex', elem.c[3][1]:sub(2)),
pandoc.RawInline('latex', '}')
}
end
return {
elem,
pandoc.Str(' ('),
pandoc.Str(abbrev),
pandoc.RawInline('latex', '~\\ref{'),
pandoc.RawInline('latex', elem.c[3][1]:sub(2)),
pandoc.RawInline('latex', '}'),
pandoc.Str(', page'),
pandoc.RawInline('latex', '~\\pageref{'),
pandoc.RawInline('latex', elem.c[3][1]:sub(2)),
pandoc.RawInline('latex', '}'),
pandoc.Str(')'),
}
end
end
end
end