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 a.j.jackson@bath.ac.uk Doctoral student: Integrated PhD Sustainable Chemical Technologies University of Bath On 25 Mar 2015, at 13:29, John Kitchin wrote: > 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(# 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