emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Making an index in latex export --- surprisingly difficult


From: Thomas S. Dye
Subject: Re: [O] Making an index in latex export --- surprisingly difficult
Date: Tue, 26 Apr 2011 21:38:21 -1000

Aloha Nick,

Brilliant.  Thanks!

Tom

On Apr 26, 2011, at 8:35 PM, Nick Dokos wrote:

Robert Goldman <address@hidden> wrote:

4.  Modify the org-latex-to-pdf-process to

("pdflatex -interaction nonstopmode -output-directory %o %f" "makeindex -o %b.ind %b.idx" "pdflatex -interaction nonstopmode -output- directory
%o %f" "pdflatex -interaction nonstopmode -output-directory %o %f")

[This was /somewhat/ of a big deal. Suggest we add support for indexing
as a built-in option, like bibtex...]


Maybe you can try the texi2dvi option (I think it runs makeindex), but
texi2dvi did have a bug that has caused problems here in the past:
that's the reason it's not the default setting for
org-latex-to-pdf-process. If you run into the bug but still want to try
texi2dvi anyway, see

 http://lists.gnu.org/archive/html/bug-texinfo/2010-03/msg00032.html

for the fix Karl Berry applied to the development sources.

Once one has makeindex hacked in there (oh, and you've broken the
security!), it works fine, thanks.

an absolute pathname. But org-mode will only pass absolute pathnames to makeindex (AFAICT). Question: it seems like bibtex should suffer from
this same restriction.  Has anyone had that problem with it?


I haven't had the problem, primarily because I haven't used bibtex
through org yet :-) But bibtex should exhibit the same problem: the
bibtex change predated the makeindex one. Maybe bibtex is only called with a relative path (if that's the case, then the same method should cure makeindex as well). BTW, ".." is not allowed in the relative path:
you can only use subdirectories of the current directory.


Here's a step-by-step that uses texi2dvi[fn:1]:

o Download a bibliography file:

 cd /home/nick/lib/bibtex
 wget -nd http://ftp.math.utah.edu/pub//tex/bib/linux.html
 mv linux.html linux.bib

o Set the BIBINPUTS environment variable in .profile (or similar):

 BIBINPUTS=/home/nick/lib/bibtex:$BIBINPUTS
 export BIBINPUTS

o Set org-latex-to-pdf-process in .emacs (or similar):

 (setq org-latex-to-pdf-process '("texi2dvi --pdf --tidy --batch %f"))

The --tidy keeps all the intermediate files tucked away in a subdirectory. You can use --clean instead if you want automatic cleanup of intermediate
 files.

That's all for one-time setup. There is no problem with bibtex/ makeindex security because all the output files end up in a subdirectory and (I guess)
texi2dvi uses relative pathnames.

Here's an org file with an index and a bibliography that is properly exported
to PDF with the above setup:

--8<---------------cut here---------------start------------->8---
#+LATEX_HEADER: \usepackage{makeidx}
#+LATEX_HEADER: \makeindex

#+LaTeX: \bibliographystyle{plain}

* this

#+LaTeX: \index{foo}
is a test of foo \cite{Torvalds:1999:LE}

#+LaTeX: \bibliography{linux}
#+LaTeX: \printindex
--8<---------------cut here---------------end--------------->8---

Nick

Footnotes:

[fn:1] My egrep does not choke on the suspect [A-z] pattern that
texi2dvi uses, so I don't need Karl Berry's patch - if your egrep does
choke, the patch just changes the pattern to [A-Za-z] which although not
exactly the same, since it omits a few punctuation chars that come
between Z and a in ASCII[fn:2], is good enough.

[fn:2] The pattern tries to recognize legal drive names on DOS/ Windoze,
and these characters are *legal drive names*!! We have Novell to thank
for that though, not M$. OTOH, if you are on Windoze and have a drive
named `[', watch out ;-)





reply via email to

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