annProg / PanBook

Pandoc LaTeX,Epub模板,用于生成书籍,幻灯片(beamer),简历,论文等(cv, thesis, ebook,beamer)
BSD 3-Clause "New" or "Revised" License
263 stars 28 forks source link

交叉引用问题 #8

Closed annProg closed 5 years ago

annProg commented 5 years ago

考虑使用 pandoc-crossref,但是pandoc-crossref依赖 metadata 变量 header-includespandoc命令行指定-H/--include-in-header时会覆盖metadata变量。

annProg commented 5 years ago

可能的解决方案:

参考 https://pandoc.org/lua-filters.html , Default metadata file,将 -H参数用lua-filter加入metadata变量header-includes

-- read metadata file into string
local metafile = io.open('metadata-file.yaml', 'r')
local content = metafile:read("*a")
metafile:close()
-- get metadata
local default_meta = pandoc.read(content, "markdown").meta

return {
  {
    Meta = function(meta)
      -- use default metadata field if it hasn't been defined yet.
      for k, v in pairs(default_meta) do
        if meta[k] == nil then
          meta[k] = v
        end
      end
      return meta
    end,
  }