diff options
Diffstat (limited to 'biblio/citation-style-language/citeproc-output.lua')
-rw-r--r-- | biblio/citation-style-language/citeproc-output.lua | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/biblio/citation-style-language/citeproc-output.lua b/biblio/citation-style-language/citeproc-output.lua index 6aca4533da..97cc53fc4a 100644 --- a/biblio/citation-style-language/citeproc-output.lua +++ b/biblio/citation-style-language/citeproc-output.lua @@ -1191,7 +1191,7 @@ local LatexWriter = Markup:new() LatexWriter.markups = { ["bibstart"] = function (engine) - return string.format("\\begin{thebibliography}{%s}\n\n", engine.registry.longest_label) + return string.format("\\begin{thebibliography}{%s}\n", engine.registry.longest_label) end, ["bibend"] = "\\end{thebibliography}", ["@font-style/normal"] = "{\\normalshape %s}", @@ -1209,15 +1209,17 @@ LatexWriter.markups = { ["@vertical-align/baseline"] = false, ["@cite/entry"] = false, ["@bibliography/entry"] = function (str, context) - if not string.match(str, "\\bibitem") then + if string.match(str, "\\bibitem") then + str = str .. "\n" + else str = "\\bibitem{".. context.id .. "}\n" .. str .. "\n" end return str end, - ["@display/block"] = false, - ["@display/left-margin"] = '\n <div class="csl-left-margin">%s</div>', - ["@display/right-inline"] = '<div class="csl-right-inline">%s</div>\n ', - ["@display/indent"] = '<div class="csl-indent">%s</div>\n ', + -- ["@display/block"] = false, + -- ["@display/left-margin"] = '\n <div class="csl-left-margin">%s</div>', + -- ["@display/right-inline"] = '<div class="csl-right-inline">%s</div>', + -- ["@display/indent"] = '<div class="csl-indent">%s</div>\n ', } function LatexWriter:write_escaped(str, context) @@ -1256,25 +1258,27 @@ function LatexWriter:write_formatted(inline, context) end function LatexWriter:write_display(inline, context) - local plainter_text_writer = output_module.PlainTextWriter:new() - local str = plainter_text_writer:write_inline(inline) - local len = utf8.len(str) - if len > context.engine.registry.maxoffset then - context.engine.registry.maxoffset = len - context.engine.registry.longest_label = str + if inline.div == "left-margin" then + local plainter_text_writer = output_module.PlainTextWriter:new() + local str = plainter_text_writer:write_inline(inline) + local len = utf8.len(str) + if len > context.engine.registry.maxoffset then + context.engine.registry.maxoffset = len + context.engine.registry.longest_label = str + end end local res = self:write_children(inline, context) - if inline.display == "left-margin" then + if inline.div == "left-margin" then if string.match(res, "%]") then res = "{" .. res .. "}" end res = string.format("\\bibitem[%s]{%s}\n", res, context.id) - elseif inline.display == "right-inline" then + elseif inline.div == "right-inline" then return res - elseif inline.display == "block" then + elseif inline.div == "block" then return "" end return res @@ -1341,12 +1345,14 @@ function HtmlWriter:write_formatted(inline, context) end function HtmlWriter:write_display(inline, context) - local plainter_text_writer = output_module.PlainTextWriter:new() - local str = plainter_text_writer:write_inline(inline) - local len = utf8.len(str) - if len > context.engine.registry.maxoffset then - context.engine.registry.maxoffset = len - context.engine.registry.longest_label = str + if inline.div == "left-margin" then + local plainter_text_writer = output_module.PlainTextWriter:new() + local str = plainter_text_writer:write_inline(inline) + local len = utf8.len(str) + if len > context.engine.registry.maxoffset then + context.engine.registry.maxoffset = len + context.engine.registry.longest_label = str + end end if #inline.inlines == 0 then |