* Making an index in latex export --- surprisingly difficult @ 2011-04-26 21:09 Robert Goldman 2011-04-26 21:26 ` Suvayu Ali 2011-04-26 21:52 ` Nick Dokos 0 siblings, 2 replies; 13+ messages in thread From: Robert Goldman @ 2011-04-26 21:09 UTC (permalink / raw) To: Org Mode I was trying to make an index in latex export and found that it was very difficult to make it work. I wonder if this could be simplified. Here's what I had to do: 1. put \makeindex and \usepackage{makeidx} in latex export header [no big deal] 2. put in \index commands (I don't /believe/ #+INDEX works, but I could be wrong) 3. Put a \printindex in the end. [again, no big deal] 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...] 5. The REAL big deal: edit my texmf.cf file to break the security protection of openout_any=p. By default, makeindex will refuse to open 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? Cheers, r ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:09 Making an index in latex export --- surprisingly difficult Robert Goldman @ 2011-04-26 21:26 ` Suvayu Ali 2011-04-26 21:44 ` Robert Goldman 2011-04-26 21:52 ` Nick Dokos 1 sibling, 1 reply; 13+ messages in thread From: Suvayu Ali @ 2011-04-26 21:26 UTC (permalink / raw) To: emacs-orgmode; +Cc: rpgoldman On Tue, 26 Apr 2011 16:09:22 -0500 Robert Goldman <rpgoldman@sift.info> wrote: > The REAL big deal: edit my texmf.cf file to break the security > protection of openout_any=p. By default, makeindex will refuse to > open 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 did and no clean solution has been found yet. http://thread.gmane.org/gmane.emacs.orgmode/38247/focus=38562 HTH -- Suvayu Open source is the future. It sets us free. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:26 ` Suvayu Ali @ 2011-04-26 21:44 ` Robert Goldman 2011-04-28 9:28 ` Eric S Fraga 0 siblings, 1 reply; 13+ messages in thread From: Robert Goldman @ 2011-04-26 21:44 UTC (permalink / raw) To: Suvayu Ali; +Cc: emacs-orgmode On 4/26/11 Apr 26 -4:26 PM, Suvayu Ali wrote: > On Tue, 26 Apr 2011 16:09:22 -0500 > Robert Goldman <rpgoldman@sift.info> wrote: > >> The REAL big deal: edit my texmf.cf file to break the security >> protection of openout_any=p. By default, makeindex will refuse to >> open 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 did and no clean solution has been found yet. > http://thread.gmane.org/gmane.emacs.orgmode/38247/focus=38562 > > HTH > I looked at that thread and unfortunately it petered out (partly because it went off into a different direction to solve an easier problem with conflicting style files). The last message from Eric Fraga states: > Oh well, there goes that theory. The web link you gave yesterday would seem to indicate that the problem is present if you invoke the bibtex command from another directory and this does not appear to be the case here. Very strange. It's not actually invoking the bibtex command from another directory, AFAICT, but invoking the bibtex command on an argument that is an /absolute/ pathname. This is now forbidden for makeindex and bibtex (I don't know if it's permitted for pdflatex or not, but I suspect it is, since the pdflatex part of the export process is working --- pdflatex may not honor openout_any=p). I don't see why, per the discussion in the texlive distribution notes, it should matter that you change the TEXMF pathname environment variable, since makeindex isn't doing any metafonting! I also don't see any obvious way for programs like org-mode to adapt to this except possibly by explicitly changing their working directory to be the working directory of the org files and then using relative pathnames instead of absolute ones. And I would like to say right now that I don't have the FOGGIEST idea what that would mean on Windows, which seems to think about working directories somewhat differently! Best, r ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:44 ` Robert Goldman @ 2011-04-28 9:28 ` Eric S Fraga 2011-04-28 11:04 ` Robert Goldman 0 siblings, 1 reply; 13+ messages in thread From: Eric S Fraga @ 2011-04-28 9:28 UTC (permalink / raw) To: rpgoldman; +Cc: emacs-orgmode Robert Goldman <rpgoldman@sift.info> writes: [...] > I looked at that thread and unfortunately it petered out (partly because > it went off into a different direction to solve an easier problem with > conflicting style files). > > The last message from Eric Fraga states: > >> Oh well, there goes that theory. The web link you gave yesterday >> would seem to indicate that the problem is present if you invoke the >> bibtex command from another directory and this does not appear to be >> the case here. Very strange. > > It's not actually invoking the bibtex command from another directory, > AFAICT, but invoking the bibtex command on an argument that is an > /absolute/ pathname. This is now forbidden for makeindex and bibtex (I > don't know if it's permitted for pdflatex or not, but I suspect it is, > since the pdflatex part of the export process is working --- pdflatex > may not honor openout_any=p). If the file is indeed in the /current/ directory, then a simple fix may be to use %b for the file argument to makeindex? I have no problems with bibtex using ,---- | org-latex-to-pdf-process is a variable defined in `org-latex.el'. | Its value is ("pdflatex %f" "bibtex %b" "pdflatex %f" "pdflatex %f") `---- Note the use of %b instead of %o or %f. I've never used makeindex so cannot be sure this would work. -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.5 (release_7.5.209.g1a687) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-28 9:28 ` Eric S Fraga @ 2011-04-28 11:04 ` Robert Goldman 2011-04-28 11:52 ` Eric S Fraga 0 siblings, 1 reply; 13+ messages in thread From: Robert Goldman @ 2011-04-28 11:04 UTC (permalink / raw) To: emacs-orgmode, e.fraga On 4/28/11 Apr 28 -4:28 AM, Eric S Fraga wrote: > Robert Goldman <rpgoldman@sift.info> writes: > > [...] > >> I looked at that thread and unfortunately it petered out (partly because >> it went off into a different direction to solve an easier problem with >> conflicting style files). >> >> The last message from Eric Fraga states: >> >>> Oh well, there goes that theory. The web link you gave yesterday >>> would seem to indicate that the problem is present if you invoke the >>> bibtex command from another directory and this does not appear to be >>> the case here. Very strange. >> >> It's not actually invoking the bibtex command from another directory, >> AFAICT, but invoking the bibtex command on an argument that is an >> /absolute/ pathname. This is now forbidden for makeindex and bibtex (I >> don't know if it's permitted for pdflatex or not, but I suspect it is, >> since the pdflatex part of the export process is working --- pdflatex >> may not honor openout_any=p). > > If the file is indeed in the /current/ directory, then a simple fix may > be to use %b for the file argument to makeindex? I have no problems > with bibtex using > > ,---- > | org-latex-to-pdf-process is a variable defined in `org-latex.el'. > | Its value is ("pdflatex %f" "bibtex %b" "pdflatex %f" "pdflatex %f") > `---- > > Note the use of %b instead of %o or %f. I've never used makeindex so > cannot be sure this would work. > No, actually this does not work, since the expansion of %b is still an absolute pathname, rather than a relative pathname. The only difference is that the file extension is removed. Here's a snippet from my *trace-output* buffer when I trace the shell-command function: command="makeindex -o /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.ind /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.idx" The entry from my org-latex-to-pdf-process is: "makeindex -o %b.ind %b.idx" So using the basename is orthogonal to the underlying problem, which is that absolute pathnames are always used. When I restore the openout_any = p setting, I see: rpg% makeindex -o /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.ind /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.idx makeindex: Not writing to /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.ind (openout_any = p). Can't create output index file /Users/rpg/obtw/obtw-trunk/memos/plan-representation/manual.ind. Note that this isn't something one needs any org-mode testing to verify --- you can just figure out what %b will expand to, and test interactively with the shell using makeindex or bibtex, if you have a recent texlive, with the paranoid settings. The only "solution" I know (aside from disabling the texmf.cnf security setting) would be to have org ensure that its CWD is the document directory when running these programs and use relative pathnames. I don't know that this solution is compatible with correct use of EXPORT_FILE_NAME, however.... This seems like a very crippling security setting -- it would break many plausible uses of the tex suite when they are run under program control (I could easily imagine scenarios with make that would result in the use of absolute pathnames, too); I'm surprised it was made. Best, r ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-28 11:04 ` Robert Goldman @ 2011-04-28 11:52 ` Eric S Fraga 0 siblings, 0 replies; 13+ messages in thread From: Eric S Fraga @ 2011-04-28 11:52 UTC (permalink / raw) To: rpgoldman; +Cc: emacs-orgmode Robert Goldman <rpgoldman@sift.info> writes: [...] >> If the file is indeed in the /current/ directory, then a simple fix may >> be to use %b for the file argument to makeindex? I have no problems >> with bibtex using >> >> ,---- >> | org-latex-to-pdf-process is a variable defined in `org-latex.el'. >> | Its value is ("pdflatex %f" "bibtex %b" "pdflatex %f" "pdflatex %f") >> `---- >> >> Note the use of %b instead of %o or %f. I've never used makeindex so >> cannot be sure this would work. >> > > No, actually this does not work, since the expansion of %b is still an > absolute pathname, rather than a relative pathname. The only difference > is that the file extension is removed. Here's a snippet from my > *trace-output* buffer when I trace the shell-command function: Okay, you are correct! I have sometimes used the following shell script in lieu of the sequence of commands: --8<---------------cut here---------------start------------->8--- #!/bin/sh -f # first argument should be base latex file name but may be absolute F=$1 B=$(basename $F) echo 'Original file: ' $F echo 'Base file: ' $B echo 'Invoked in dir: ' $PWD echo '--------------------------------- running pdflatex first ---------------------------------------------------' pdflatex $F echo '--------------------------------- running bibtex next -------------------------------------------------------' bibtex $B echo '--------------------------------- running pdflatex again (and again) ----------------------------------------' pdflatex $F pdflatex $F --8<---------------cut here---------------end--------------->8--- which is =/home/ucecesf/s/bin/org2pdf.sh= (for me). I then define #+begin_src emacs-lisp (setq org-latex-to-pdf-process '("/home/ucecesf/s/bin/org2pdf.sh %b")) #+end_src You could add a line of the form: makeindex -o ${B}.ind ${B}.idx to this script, probably before the bibtex line? Of course, this doesn't some any of the other problems, as you note below: [...] > The only "solution" I know (aside from disabling the texmf.cnf security > setting) would be to have org ensure that its CWD is the document > directory when running these programs and use relative pathnames. I > don't know that this solution is compatible with correct use of > EXPORT_FILE_NAME, however.... Yes, the same applies to my simple script above: it assumes that the current directory *is* the one in which the files are. > This seems like a very crippling security setting -- it would break many > plausible uses of the tex suite when they are run under program control > (I could easily imagine scenarios with make that would result in the use > of absolute pathnames, too); I'm surprised it was made. It does seem like a silly restriction. -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.5 (release_7.5.209.g1a687) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:09 Making an index in latex export --- surprisingly difficult Robert Goldman 2011-04-26 21:26 ` Suvayu Ali @ 2011-04-26 21:52 ` Nick Dokos 2011-04-26 21:58 ` Robert Goldman 1 sibling, 1 reply; 13+ messages in thread From: Nick Dokos @ 2011-04-26 21:52 UTC (permalink / raw) To: rpgoldman; +Cc: nicholas.dokos, Org Mode Robert Goldman <rpgoldman@sift.info> wrote: > I was trying to make an index in latex export and found that it was very > difficult to make it work. I wonder if this could be simplified. > Here's what I had to do: > > 1. put \makeindex and \usepackage{makeidx} in latex export header [no > big deal] > 2. put in \index commands (I don't /believe/ #+INDEX works, but I could > be wrong) > 3. Put a \printindex in the end. [again, no big deal] > 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. > 5. The REAL big deal: edit my texmf.cf file to break the security > protection of openout_any=p. By default, makeindex will refuse to open > 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. Nick ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:52 ` Nick Dokos @ 2011-04-26 21:58 ` Robert Goldman 2011-04-26 23:14 ` Nick Dokos 2011-04-27 6:35 ` Nick Dokos 0 siblings, 2 replies; 13+ messages in thread From: Robert Goldman @ 2011-04-26 21:58 UTC (permalink / raw) To: nicholas.dokos; +Cc: Org Mode On 4/26/11 Apr 26 -4:52 PM, Nick Dokos wrote: > Robert Goldman <rpgoldman@sift.info> wrote: > >> I was trying to make an index in latex export and found that it was very >> difficult to make it work. I wonder if this could be simplified. >> Here's what I had to do: >> .... >> 2. put in \index commands (I don't /believe/ #+INDEX works, but I could >> be wrong) Am I right about #+INDEX not being translated in the latex back end (it seems not to work, but it's hard to verify a negative)? If so, would this be hard to fix? If it wouldn't, seems like that would be A Good Thing. .... >> 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. > >> 5. The REAL big deal: edit my texmf.cf file to break the security >> protection of openout_any=p. By default, makeindex will refuse to open >> 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. > > Nick > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:58 ` Robert Goldman @ 2011-04-26 23:14 ` Nick Dokos 2011-04-27 1:32 ` Robert Goldman 2011-04-27 6:35 ` Nick Dokos 1 sibling, 1 reply; 13+ messages in thread From: Nick Dokos @ 2011-04-26 23:14 UTC (permalink / raw) To: rpgoldman; +Cc: nicholas.dokos, Org Mode Robert Goldman <rpgoldman@sift.info> wrote: > >> 2. put in \index commands (I don't /believe/ #+INDEX works, but I could > >> be wrong) > > Am I right about #+INDEX not being translated in the latex back end (it > seems not to work, but it's hard to verify a negative)? > Seems to be a publishing thingie only. Adding a publishing project --8<---------------cut here---------------start------------->8--- ... ("foo" :base-directory "~/src/org/latex/index/" :publishing-directory "~/src/org/latex/index" :publishing-function org-publish-org-to-latex :makeindex t ) ... --8<---------------cut here---------------end--------------->8--- to org-publish-project-alist and publishing the following org file --8<---------------cut here---------------start------------->8--- #+INDEX: foo * this is a test of foo --8<---------------cut here---------------end--------------->8--- generates \index{foo} in the TeX file. Nick > If so, would this be hard to fix? If it wouldn't, seems like that would > be A Good Thing. > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 23:14 ` Nick Dokos @ 2011-04-27 1:32 ` Robert Goldman 0 siblings, 0 replies; 13+ messages in thread From: Robert Goldman @ 2011-04-27 1:32 UTC (permalink / raw) To: nicholas.dokos; +Cc: Org Mode On 4/26/11 Apr 26 -6:14 PM, Nick Dokos wrote: > Robert Goldman <rpgoldman@sift.info> wrote: > >>>> 2. put in \index commands (I don't /believe/ #+INDEX works, but I could >>>> be wrong) >> >> Am I right about #+INDEX not being translated in the latex back end (it >> seems not to work, but it's hard to verify a negative)? >> > > Seems to be a publishing thingie only. ...snip... Working on a patch to org-latex that will translate #+INDEX: So far it's a little more difficult than I'd hoped. If we have that, then adding something to automagically invoke the right latex fu to accumulate and print the index should be relatively trivial. Even adding a new export method should be ok (modulo fixing the general bibtex + makeindex privs issue). R ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-26 21:58 ` Robert Goldman 2011-04-26 23:14 ` Nick Dokos @ 2011-04-27 6:35 ` Nick Dokos 2011-04-27 7:38 ` Thomas S. Dye 2011-05-09 6:08 ` Tom Dye 1 sibling, 2 replies; 13+ messages in thread From: Nick Dokos @ 2011-04-27 6:35 UTC (permalink / raw) To: rpgoldman; +Cc: nicholas.dokos, Org Mode Robert Goldman <rpgoldman@sift.info> 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 ;-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-27 6:35 ` Nick Dokos @ 2011-04-27 7:38 ` Thomas S. Dye 2011-05-09 6:08 ` Tom Dye 1 sibling, 0 replies; 13+ messages in thread From: Thomas S. Dye @ 2011-04-27 7:38 UTC (permalink / raw) To: nicholas.dokos; +Cc: Org Mode, rpgoldman Aloha Nick, Brilliant. Thanks! Tom On Apr 26, 2011, at 8:35 PM, Nick Dokos wrote: > Robert Goldman <rpgoldman@sift.info> 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 ;-) > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Making an index in latex export --- surprisingly difficult 2011-04-27 6:35 ` Nick Dokos 2011-04-27 7:38 ` Thomas S. Dye @ 2011-05-09 6:08 ` Tom Dye 1 sibling, 0 replies; 13+ messages in thread From: Tom Dye @ 2011-05-09 6:08 UTC (permalink / raw) To: emacs-orgmode On 2011-04-26 20:35:06 -1000, Nick Dokos <nicholas.dokos@hp.com> said: > Robert Goldman <rpgoldman@sift.info> 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 ;-) Aloha all, I've found it convenient to add paths to system-wide bibliographic databases to BIBINPUTS in .profile, as Nick suggests, and then use a sh source code block for project-specific databases, like this for a project in /org/tsdye/: #+source: bibinputs #+begin_src sh BIBINPUTS=/org/tsdye/:$BIBINPUTS export BIBINPUTS #+end_src If I remember to execute this before I start editing, then I can add references to my work from either the system-wide or project-specific databases and LaTeX export produces an error-free pdf file full of references. Tom -- Tom Dye T. S. Dye & Colleagues, Archaeologists, Inc. Honolulu, Hawai`i ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-05-09 6:25 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-04-26 21:09 Making an index in latex export --- surprisingly difficult Robert Goldman 2011-04-26 21:26 ` Suvayu Ali 2011-04-26 21:44 ` Robert Goldman 2011-04-28 9:28 ` Eric S Fraga 2011-04-28 11:04 ` Robert Goldman 2011-04-28 11:52 ` Eric S Fraga 2011-04-26 21:52 ` Nick Dokos 2011-04-26 21:58 ` Robert Goldman 2011-04-26 23:14 ` Nick Dokos 2011-04-27 1:32 ` Robert Goldman 2011-04-27 6:35 ` Nick Dokos 2011-04-27 7:38 ` Thomas S. Dye 2011-05-09 6:08 ` Tom Dye
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).