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.jack...@bath.ac.uk
Doctoral student: Integrated PhD Sustainable Chemical Technologies
University of Bath

On 25 Mar 2015, at 13:29, John Kitchin <jkitc...@andrew.cmu.edu> 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(#<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

Reply via email to