math_block.lua 619 B

12345678910111213141516171819202122232425
  1. function Para(el)
  2. local content = {}
  3. local in_display_math = false
  4. for _, item in pairs(el.content) do
  5. if item.t == 'Str'and item.text == "$$" then
  6. in_display_math = not in_display_math
  7. else
  8. if in_display_math then
  9. if item.t == 'RawInline' and item.format == 'tex' then
  10. local n = pandoc.Math('DisplayMath', '\n' .. item.text .. '\n')
  11. table.insert(content, n)
  12. elseif (item.t ~= 'SoftBreak') then
  13. table.insert(content, item)
  14. end
  15. else
  16. table.insert(content, item)
  17. end
  18. end
  19. end
  20. el.content = content
  21. return el
  22. end