Hi, I try to understand what the filter system is for and why the transcoders itself doesn't suffice. So I take an example and want to see how the filters are used in real exporter. I look at ox-latex.el and try to make sense of the filters 1. There are only two filters are used: :filters-alist '((:filter-options . org-latex-math-block-options-filter) (:filter-parse-tree . org-latex-math-block-tree-filter)) The purpose of org-latex-math-block-options-filter seems to be converting whatever in the property list of :author, :date, :title to strings of latex commands(please correct me if I am wrong). But what is the purpose of org-latex-math-block-tree-filter? The org-latex--wrap-latex-math-block is quite sophisticate and I don't get what it's doing. ----------------------------------------------------- (defun org-latex-math-block-options-filter (info backend) (dolist (prop '(:author :date :title) info) (plist-put info prop (org-latex--wrap-latex-math-block (plist-get info prop) info)))) ---------------------------------------------------- (defun org-latex-math-block-tree-filter (tree backend info) (org-latex--wrap-latex-math-block tree info)) ---------------------------------------------------- 2. For the filters of the form :filter-TYPE, there is also a transcoder for processing the same TYPE. For example, for bold, there are :filter-bold, but bold is also processed in the transcoder specified in the transcoder alist when the backend is defined(by org-export-define-backend). When shall we use a transcode and when shall we use a filter? Thank you. Shiyuan