[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Example of Make file for Org Mode LaTeX to pdf
From: |
Myles English |
Subject: |
Re: [O] Example of Make file for Org Mode LaTeX to pdf |
Date: |
Sun, 06 Mar 2016 13:26:50 +0000 |
User-agent: |
mu4e 0.9.15; emacs 24.5.1 |
Hello Bob,
Robert Love writes:
> Does anyone have a make file example that has emacs load an .org file,
> process it into LaTeX and export as PDF, all from the command line
> without the user doing anything more than type ‘make’? All examples
> appreciated.
Fraid I don't have a makefile but I do have a CMakeLists.txt that CMake
uses to generate a makefile. This method uses a CMake module called
UseLATEX.cmake to generate the PDF. I haven't used it for a couple of
years so it might be a bit outdated.
The CMakeLists.txt also contains an example of how to generate all the R
graphics for the document.
If it looks a bit over complicated for your requirements perhaps just
looking at the line that contains "COMMAND emacs" would be useful for
you.
Hopefully someone else will show a nice, simple, self-contained example.
Myles
#+BEGIN_SRC sh :tangle CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(thesis NONE)
include(/usr/share/cmake-2.8/Modules/UseLATEX.cmake)
# Set R executable
set(R_COMPILE "/usr/bin/Rscript")
# Set the location of data files
##set(DATA_DIR data)
# Set the location of the directory for image files
set(IMAGE_DIR graphicsauto)
# Get a list of R files
file(GLOB_RECURSE R_FILES "R/*.R")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/R DESTINATION
${CMAKE_CURRENT_BINARY_DIR})
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR})
foreach(file ${R_FILES})
message("processing ${file}")
get_filename_component(basename "${file}" NAME_WE)
# Command to run R
if(R_COMPILE)
message("Adding ...........
${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R")
add_custom_command(
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R
#
${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${DATA_DIR}
COMMAND
${R_COMPILE}
ARGS
${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R
${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
)
message("Running ${R_COMPILE}
${CMAKE_CURRENT_BINARY_DIR}/R/${basename}.R
${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps")
endif(R_COMPILE)
# Make a list of all R files (for ADD_LATEX_DOCUMENT depend)
set(ALL_R_FILES ${ALL_R_FILES}
${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_DIR}/${basename}.eps
)
endforeach(file)
# ------- export mainThesis.org -----------------------
latex_get_output_path(OUTPUT_DIR)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/mainThesis.org DESTINATION
${OUTPUT_DIR}/ )
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/thesis.el DESTINATION
${OUTPUT_DIR}/ )
add_custom_target( orgfile ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.org )
add_custom_target( elfile ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/thesis.el )
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.tex
COMMAND emacs -Q --batch --eval \"(progn
(add-to-list 'load-path
(expand-file-name
\\"~/.emacs.d/plugins/org-mode/lisp/\\"))
(add-to-list 'load-path
(expand-file-name
\\"~/.emacs.d/plugins/org-mode/contrib/lisp/\\" t))
(require 'org)
(require 'ox)
(require 'org-exp)
(require 'org-inlinetask)
(require 'ob-plantuml)
(setq org-plantuml-jar-path
\\"/home/myles/Downloads/plantuml.jar\\")
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(sh . t)
(plantuml . t)))
(setq org-confirm-babel-evaluate nil)
(setq org-latex-listings 'minted)
(setq org-latex-with-hyperref nil)
(add-to-list 'org-latex-packages-alist '(\\"\\"
\\"minted\\"))
(add-to-list 'org-latex-classes
'(\\"mynewthesis\\" \\"\\\\\\documentclass[11pt]{mythesis}\\"
(\\"\\\\\\chapter{%s}\\" . \\"\\\\\\chapter*{%s}\\")
(\\"\\\\\\section{%s}\\" . \\"\\\\\\section*{%s}\\")
(\\"\\\\\\subsection{%s}\\" . \\"\\\\\\subsection*{%s}\\")
(\\"\\\\\\subsubsection{%s}\\" . \\"\\\\\\subsubsection*{%s}\\")
(\\"\\\\\\paragraph{%s}\\" . \\"\\\\\\paragraph*{%s}\\")))
(setq org-export-with-todo-keywords nil)
(load-library \\"/home/myles/lib/lisp/my-export.el\\")
(add-to-list 'org-export-before-parsing-hook
'my-export-delete-headlines-tagged-noheading)
(add-to-list 'org-export-filter-link-functions
'my-autoref-filter-link-func)
(load-file \\"thesis.el\\")
(find-file \\"${CMAKE_CURRENT_BINARY_DIR}/mainThesis.org\\")
(org-latex-export-to-latex))\"
DEPENDS orgfile elfile
COMMENT "Exporting orgmode file to LaTeX using emacs")
add_custom_target( mainfile ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mainThesis.tex )
# ------ end mainThesis.org ---------------------------
# add_custom_command(
# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/master.tex
# COMMAND echo "\\\\input{mainThesis.tex}" >
${CMAKE_CURRENT_BINARY_DIR}/master.tex
# DEPENDS orgfile
# COMMENT "Writing file master.tex")
# add_custom_target( masterfile ALL
# DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/master.tex )
add_latex_document(master.tex
BIBFILES texlib/mybiblatex.bib
INPUTS biber.conf
phd_papers.bib
tex/title.tex
tex/titleBasic.tex
tex/abstract.tex
tex/sharedMemory_sec.tex
texlib/mystyle.sty
tex/linked_nodes_test.tex
IMAGE_DIRS ${IMAGE_DIR} ../graphics/thirdParty
../graphics/VE
DEPENDS ${ALL_R_FILES}
DEFAULT_PDF
USE_NOMENCL)
#+END_SRC