Makefile 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. # References to main files
  2. TEX_FILE_MASTER = tex_templates/manuscript.tex
  3. TEX_FILE_SI = tex_templates/manuscript-si.tex
  4. TEX_FILE_PANDOC = tex_templates/manuscript-pd.tex
  5. ARTICLE_FILE = manuscript.md
  6. TEX_META_FILE = tex_templates/metadata.tex
  7. PANDOC_META_FILE = tex_templates/metadata-pd.yaml
  8. # Programs used
  9. TEX_ENGINE = xelatex
  10. TEX = latexmk -$(TEX_ENGINE) -interaction=nonstopmode -file-line-error -pdf
  11. PYTHON = python3
  12. # Paths to templates
  13. CUSTOM_REFERENCE_PATH = tex_templates
  14. TEMPLATE_FILE_HTML = html_templates/template.html
  15. TEMPLATE_STYLE_HTML = html_templates/template.css
  16. DOCX_REFERENCE_FILE = docx_templates/template.docx
  17. TEMPLATE_FILE_LATEX = tex_templates/manuscript-pd.tex
  18. CLASS_FILE_LATEX = tex_templates/pi-article
  19. PANDOC_SCHOLAR_PATH = assets/pandoc-scholar
  20. # Options for pandoc-scholar
  21. PANDOC_READER_OPTIONS = --data-dir=assets
  22. PANDOC_READER_OPTIONS += --defaults=assets/base
  23. PANDOC_LATEX_OPTIONS = --pdf-engine=$(TEX_ENGINE)
  24. PANDOC_LATEX_OPTIONS += --variable=documentclass:$(CLASS_FILE_LATEX)
  25. PANDOC_LATEX_OPTIONS += --natbib
  26. PANDOC_LATEX_OPTIONS += --citeproc
  27. # PANDOC_HTML_OPTIONS = --toc --self-contained
  28. PANDOC_HTML_OPTIONS = --toc
  29. PANDOC_EPUB_OPTIONS = --toc
  30. # Filter for converting chemical formulas
  31. PANDOC_DOCX_OPTIONS := --lua-filter=./assets/pd-chem-filter.lua $(PANDOC_WRITER_OPTIONS)
  32. OUTFILE_PREFIX = index
  33. DEFAULT_EXTENSIONS ?= html doc
  34. include $(PANDOC_SCHOLAR_PATH)/Makefile
  35. # Must be prepended to the options, as has to come before citeproc
  36. # PANDOC_WRITER_OPTIONS := --filter=pandoc-xnos $(PANDOC_WRITER_OPTIONS)
  37. PANDOC_WRITER_OPTIONS := --filter=pandoc-crossref $(PANDOC_WRITER_OPTIONS)
  38. PANDOC_WRITER_OPTIONS += --lua-filter=./assets/pd-image-filter.lua
  39. PANDOC_WRITER_OPTIONS += --csl=$(CUSTOM_REFERENCE_PATH)/ieee.csl
  40. # Building with latexmk
  41. .PHONY: build
  42. build: $(TEX_FILE_SI) $(TEX_FILE_MASTER)
  43. $(TEX) $(TEX_FILE_SI)
  44. $(TEX) $(TEX_FILE_MASTER)
  45. # Converting all svgs to png using inkscape
  46. SVGS = $(wildcard figs/*.svg)
  47. .PHONY: svg2fig
  48. svg2fig: $(SVGS)
  49. $(PYTHON) ./scripts/inkscape-convert.py $(SVGS)
  50. # Making a pandoc markdown file
  51. .PHONY: tex2md
  52. tex2md:
  53. $(PYTHON) ./assets/pd-meta.py --tex $(TEX_META_FILE) --yaml $(PANDOC_META_FILE)
  54. pandoc -s $(TEX_FILE_PANDOC) -o $(ARTICLE_FILE) \
  55. --from latex --to markdown+smart+grid_tables \
  56. --metadata-file $(PANDOC_META_FILE) \
  57. --lua-filter=./assets/pd-image-filter.lua \
  58. --lua-filter=./assets/pd-chem-filter.lua \
  59. --lua-filter=./assets/pd-ref-filter.lua \
  60. --default-image-extension=".png" \
  61. --verbose --columns=100 \
  62. --citeproc
  63. # Making a diff of the manuscript with latexdiff
  64. .PHONY: diff
  65. diff:
  66. git latexdiff HEAD -- --main $(TEX_FILE_MASTER) \
  67. --no-view --latexmk --ignore-makefile \
  68. --packages=amsmath,hyperref,siunitx,cleveref,mhchem \
  69. --exclude-safecmd=pubSI -o manuscript-diff.pdf --verbose
  70. # Custom make commands for pandoc-scholar
  71. tex: $(addprefix $(OUTFILE_PREFIX).,latex)
  72. pdf: $(addprefix $(OUTFILE_PREFIX).,pdf)
  73. docx: $(addprefix $(OUTFILE_PREFIX).,docx)
  74. html: $(addprefix $(OUTFILE_PREFIX).,html)
  75. epub: $(addprefix $(OUTFILE_PREFIX).,epub)
  76. # Submission scripts
  77. .PHONY: submit-condense
  78. submit-condense:
  79. $(PYTHON) ./assets/submit-condense.py
  80. .PHONY: submit-zip
  81. submit-zip:
  82. $(PYTHON) ./assets/submit-zip.py
  83. .PHONY: submit-clean
  84. submit-clean:
  85. $(PYTHON) ./assets/submit-clean.py --dir ./condensed