[Top][All Lists]

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

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

From: Nick Dokos
Subject: Re: [O] Making an index in latex export --- surprisingly difficult
Date: Wed, 27 Apr 2011 02:35:06 -0400

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):

  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

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---



[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]