summaryrefslogtreecommitdiff
path: root/macros/luatex/latex/scikgtex/scikgtex.lua
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex/latex/scikgtex/scikgtex.lua')
-rw-r--r--macros/luatex/latex/scikgtex/scikgtex.lua44
1 files changed, 29 insertions, 15 deletions
diff --git a/macros/luatex/latex/scikgtex/scikgtex.lua b/macros/luatex/latex/scikgtex/scikgtex.lua
index 94bd0c1f40..8703d66666 100644
--- a/macros/luatex/latex/scikgtex/scikgtex.lua
+++ b/macros/luatex/latex/scikgtex/scikgtex.lua
@@ -21,8 +21,7 @@ XMP.lines = {}
XMP.namespaces = {}
XMP.property_ns = {}
XMP.XMP_TOP = [[<x:xmpmeta xmlns:x="adobe:ns:meta/">]]
-XMP.XMP_BOTTOM = [[</rdf:RDF>
-</x:xmpmeta>]]
+XMP.XMP_BOTTOM = [[</x:xmpmeta>]]
XMP.PACKET_END = [[<?xpacket end="r"?>]]
local UUID = {}
@@ -379,11 +378,15 @@ function SciKGTeX:warn_unused_command()
end
end
-function SciKGTeX:print_entity(uri, label)
- if label ~= "" then
- tex.print(string.format('\\href{%s}{%s}',uri , label))
- else
+function SciKGTeX:print_entity(uri, label, hyperrefloaded)
+ if label ~= "" and hyperrefloaded then
+ tex.print(string.format('\\href{%s}{%s}', uri , label))
+ elseif label ~= "" then
+ tex.print(label)
+ elseif hyperrefloaded then
tex.print(string.format('\\url{%s}',uri))
+ else
+ tex.print(uri)
end
end
@@ -595,7 +598,13 @@ function XMP:generate_xmp_string(lb_char)
end
for i, cb_id in pairs(sorted_contributions) do
contribution = self.paper.contributions[cb_id]
- self:add_line(' <orkg:hasResearchContribution>')
+ if i==1 then
+ if #sorted_contributions > 1 then
+ self:add_line(' <orkg:hasResearchContribution rdf:parseType="Collection">')
+ else
+ self:add_line(' <orkg:hasResearchContribution>')
+ end
+ end
self:add_line(
' <orkg:ResearchContribution rdf:about="https://www.orkg.org/orkg/paper/%s">',
self.paper.id .. "/" ..contribution.id
@@ -611,10 +620,13 @@ function XMP:generate_xmp_string(lb_char)
)
end
self:add_line(' </orkg:ResearchContribution>')
- self:add_line(' </orkg:hasResearchContribution>')
+ if i == #sorted_contributions then
+ self:add_line(' </orkg:hasResearchContribution>')
+ end
end
self:add_line(' </rdf:Description>')
end
+ self:add_line('</rdf:RDF>')
self:add_line(self.XMP_BOTTOM)
self:add_line(self.PACKET_END)
@@ -622,11 +634,11 @@ function XMP:generate_xmp_string(lb_char)
end
-function XMP:attach_metadata_pdfstream()
+function XMP:attach_metadata_pdfstream(metadata_type)
local xmp_string = self:generate_xmp_string()
local new_pdf = pdf.obj {
type = 'stream',
- attr = '/Type/Metadata /Subtype/XML',
+ attr = '/Type /'..metadata_type..' /Subtype /XML',
immediate = true,
compresslevel = 0,
string = xmp_string,
@@ -654,12 +666,14 @@ end, 'at_end')
-- Writing metadata packets
luatexbase.add_to_callback('finish_pdffile', function()
if XMP.paper then
- local metadata_obj = XMP:attach_metadata_pdfstream()
+ if CONFORM_TO_PDFA then
+ catalog_key='SciKGMetadata'
+ else
+ catalog_key='Metadata'
+ end
+ local metadata_obj = XMP:attach_metadata_pdfstream(catalog_key)
local catalog = pdf.getcatalog() or ''
- pdf.setcatalog(catalog..string.format('/Metadata %s 0 R', metadata_obj))
- --if SciKGTeX.PRODUCE_XMP_FILE then
- -- XMP:dump_metadata()
- --end
+ pdf.setcatalog(catalog..string.format('/%s %s 0 R', catalog_key, metadata_obj))
end
end, 'finish')