emacs-orgmode
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]