summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--tools/latex-package-dependencies.lua26
2 files changed, 30 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 0bb3e8d0b..cd546d4b8 100644
--- a/Makefile
+++ b/Makefile
@@ -113,6 +113,10 @@ changes_github: ## copy this release's changes in gfm
man: man/pandoc.1 man/pandoc-server.1 man/pandoc-lua.1 ## build man pages
.PHONY: man
+latex-package-dependencies: ## print packages used by default latex template
+ pandoc lua tools=latex-package-dependencies.lua
+.PHONY: latex-package-dependencies
+
coverage: ## code coverage information
cabal test \
--ghc-options='-fhpc $(GHCOPTS)' \
diff --git a/tools/latex-package-dependencies.lua b/tools/latex-package-dependencies.lua
new file mode 100644
index 000000000..aaa8689f8
--- /dev/null
+++ b/tools/latex-package-dependencies.lua
@@ -0,0 +1,26 @@
+-- Print latex packages needed by pandoc's default latex template.
+-- Usage: pandoc lua tools/latex-package-dependencies.lua
+
+local templ = pandoc.template.default("latex")
+
+local packages = {}
+
+templ:gsub("\\usepackage *%b[] *%{([^}]*)%}", function(capt)
+ capt:gsub("([^,]+)", function (pkg)
+ if not pkg:find("%$") then
+ packages[pkg] = true
+ end
+ end)
+end)
+
+templ:gsub("\\usepackage *%{([^}]*)%}", function(capt)
+ capt:gsub("([^,]+)", function (pkg)
+ if not pkg:find("%$") then
+ packages[pkg] = true
+ end
+ end)
+end)
+
+for pkg,_ in pairs(packages) do
+ print(pkg)
+end