I've had difficulties creating a consistent publishing environment, specifically for latex. I was curious how others did their workflow, or any recommendations the group may have. My latex documents are only of minor complexity, including images and the occasional multiple column area, a header and footer. I'm not a Latex expert, but I know enough to tweak my documents to match my expectations. I have tried using the customizable article types (org-export-latex-classes) to provide consistent pre-document latex header segments. Unfortunately I found I need to customize those frequently. Recently I have started using an article type of "none", which is an empty definition. Then I have manually specified each line in a #+LATEX_HEADER line at the beginning of the file. This works great for a single document, but then multiple documents begin to diverge. Then I have to go find the latest document I've created to use as a template, a non-optimal situation. One technique I have used successfully is to use a Makefile to cause my org documents to be compiled to latex, calling out to emacs and then pdflatex (twice for proper TOC) from there. ---------------------------------------------------------------------- .PHONY: all clean #OBJS := $(patsubst %.org, %.pdf, $(wildcard *.org)) OBJS := Target.pdf CRAP := $(patsubst %.org, %.pdf, $(wildcard *.org)) CRAP += $(patsubst %.org, %.aux, $(wildcard *.org)) CRAP += $(patsubst %.org, %.log, $(wildcard *.org)) CRAP += $(patsubst %.org, %.out, $(wildcard *.org)) CRAP += $(patsubst %.org, %.toc, $(wildcard *.org)) all: clean $(OBJS) clean: rm -f $(CRAP) $(OBJS) %.tex: %.org /usr/bin/emacs -nw \ --eval '(setq enable-local-variables :all)' \ $< \ -f org-export-as-latex \ -f save-buffers-kill-emacs %.pdf: %.tex pdflatex $< pdflatex $< ---------------------------------------------------------------------- This is great, but pops up an emacs session. If I run emacs in --batch mode, it won't load my init file and so loses some of my export customizations... So, what are other folks using? Any comments or suggestions? Thanks. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
[This doesn't seem to have made it out to the list for some reason,
so trying again.]
Russell Adams <RLAdams@AdamsInfoServ.Com> wrote:
> ...
> This is great, but pops up an emacs session. If I run emacs in --batch
> mode, it won't load my init file and so loses some of my export
> customizations...
>
You can load your init file explicitly:
emacs --batch --load <init-file> ...
Nick
On Thu, Nov 18, 2010 at 10:51:49PM -0500, Nick Dokos wrote: > [This doesn't seem to have made it out to the list for some reason, > so trying again.] > > Russell Adams <RLAdams@AdamsInfoServ.Com> wrote: > > > ... > > This is great, but pops up an emacs session. If I run emacs in --batch > > mode, it won't load my init file and so loses some of my export > > customizations... > > > > You can load your init file explicitly: > > emacs --batch --load <init-file> ... Certainly! And yet, should I be depending on my init file while trying to provide a consistent environment across documents? That's the crux of the matter. Put everything into init files and use it for everything when it seems to need customization, or make a document completely selfcontained and somehow sync settings across docs? That's why I was asking how other folks accomplish similar tasks. Thanks. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
On 11/18/2010 8:10 PM, Russell Adams wrote:
> On Thu, Nov 18, 2010 at 10:51:49PM -0500, Nick Dokos wrote:
>> [This doesn't seem to have made it out to the list for some reason,
>> so trying again.]
>>
>> Russell Adams<RLAdams@AdamsInfoServ.Com> wrote:
>>
>>> ...
>>> This is great, but pops up an emacs session. If I run emacs in --batch
>>> mode, it won't load my init file and so loses some of my export
>>> customizations...
>>>
>>
>> You can load your init file explicitly:
>>
>> emacs --batch --load<init-file> ...
>
> Certainly! And yet, should I be depending on my init file while trying
> to provide a consistent environment across documents? That's the crux
> of the matter.
>
> Put everything into init files and use it for everything when it seems
> to need customization, or make a document completely selfcontained and
> somehow sync settings across docs?
>
> That's why I was asking how other folks accomplish similar tasks.
>
> Thanks.
>
Russell,
I do something similar. I use SCons instead of make but the idea is
the same. I have extracted all my org-specific functionality into
a separate .el file that I load on normal startup as a part of my
overall _emacs loading. When doing batch processing I have a
cut-down version of my _emacs file which sets up only the paths,
loads my org-specific .el file and also loads my custom.el file.
The command I use is:
<emacs> -batch -l <org_el> -eval
"(progn (find-file \"<project_org_file>\") (org-export-as-latex 4))"
where the items in <> provide the relevant paths to the indicated
files. This guarantees I have the same org-mode setup interactively
as well as in batch mode so there are no surprises on generation.
Of course, SCons already knows how to build pdf files from latex so
it is trivial from there to do the remaining generation...
Mark