Thanks, John.
org-ref looks quite handy, although I would like to try and get basic functionality working without adding another package. Does it implement cross-references independently of reftex? Perhaps I need to abandon reftex, but this seems like it should be a trivial problem.
Commenting out the org-ref block, this setup seems to work in that I am able to insert citations with "M-x reftex-citation" after exporting to LaTeX. This suggests that (reftex-parse-all) is somewhat to blame. However, attempting to insert an equation reference with "M-x reftex-reference" still fails after exporting and works before the first export. I suspect TeX-master is indeed involved, as the backtrace suggests.
Returning to my original setup and commenting out the (reftex-parse-all) gives a similar result to your block; working citations, but cross-references that break after LaTeX export. One of the most baffling aspects is that killing and re-opening the buffer and re-starting Reftex does not eliminate the problem; I have to actually quit and re-open emacs.
Regards, Adam
-- Adam Jackson address@hiddenDoctoral student: Integrated PhD Sustainable Chemical Technologies University of Bath
If it is helpful, here is my setup in org-ref:
(require 'reftex) (defun org-mode-reftex-setup () "Setup `org-mode' and reftex for org-ref." (and (buffer-file-name) (file-exists-p (buffer-file-name)) (global-auto-revert-mode t)) (make-local-variable 'reftex-cite-format) (setq reftex-cite-format 'org))
;; define key for inserting citations (define-key org-mode-map (kbd org-ref-insert-cite-key) org-ref-insert-cite-function)
(add-hook 'org-mode-hook 'org-mode-reftex-setup)
(eval-after-load 'reftex-vars '(progn (add-to-list 'reftex-cite-format-builtin '(org "Org-mode citation" ((?\C-m . "cite:%l") ; default (?d . ",%l") ; for appending (?a . "autocite:%l") (?t . "citet:%l") (?T . "citet*:%l") (?p . "citep:%l") (?P . "citep*:%l") (?h . "citeauthor:%l") (?H . "citeauthor*:%l") (?y . "citeyear:%l") (?x . "citetext:%l") (?n . "nocite:%l") )))))
I think you might be seeing something like a TeX-master problem. Did you try this without revtex-parse-all?
Adam Jackson writes:
Hi,
I've been struggling with Reftex in org-mode. Initially things are fine, then after exporting the document to LaTeX and continuing to work with org-mode, using most of the reftex features (e.g. reftex-toc or trying to insert a reference) produces a "Wrong type argument: stringp, nil" error message.
The code in my init file to set up reftex:
;; Reftex (require 'reftex) (defun org-mode-reftex-setup () (load-library "reftex") (and (buffer-file-name) (file-exists-p (buffer-file-name)) ;enable auto-revert-mode to update reftex when bibtex file changes on disk (global-auto-revert-mode t) (reftex-parse-all) (define-key org-mode-map (kbd "C-c [") 'reftex-citation) ;add a custom reftex cite format to insert links ;; (reftex-set-cite-format "** [[papers:%l][%l]]: %t \n") ) )
(add-hook 'org-mode-hook 'org-mode-reftex-setup)
At the moment I still enter reftex-mode on demand with "M-x reftex-mode". Here is the backtrace for the error:
Debugger entered--Lisp error: (wrong-type-argument stringp nil) re-search-forward(nil 10001 t) tex-main-file() reftex-TeX-master-file() reftex-insert-docstruct(#<buffer paper.org> t "e" nil nil t nil nil ("SEC:lagrange_gibbs_proof" "s" "We define the molar Gibbs free energy in a molecular gas mixture as \\begin{align} \\h" "/my/path/to/the/paper.org" nil) "" nil) byte-code("\306 \307\216\310 \210 \311 \f\203
-- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu
|