Re: [O] org-ref breaks org-repair-export-blocks

2016-05-11 Thread John Kitchin
What seems to be happening is those blocks are no longer special block, but
instead an export-block. If you change special-block to export block, then
it works for me with org-ref loaded.

I don't know why (or even how) org-ref would be changing that though.


On Wed, May 11, 2016 at 12:26 PM, Julien Cubizolles 
wrote:

> #+BEGIN_SRC elisp
> (require 'package)
> (setq package-archives '(("ELPA" . "http://tromey.com/elpa/;)
>  ("melpa" . "http://melpa.milkbox.net/packages/;)
>  ("gnu" . "http://elpa.gnu.org/packages/;)
>  ("org" . "http://orgmode.org/elpa/;)
>  ("marmalade" . "
> http://marmalade-repo.org/packages/;)
>  ))
> (package-initialize)
> (require 'org-ref)
> (defun org-repair-export-blocks ()
>   "Repair export blocks and INCLUDE keywords in current buffer."
>   (interactive)
>   (when (eq major-mode 'org-mode)
> (let ((case-fold-search t)
>   (back-end-re (regexp-opt
> '("HTML" "ASCII" "LATEX" "ODT" "MARKDOWN" "MD"
> "ORG"
>   "MAN" "BEAMER" "TEXINFO" "GROFF" "KOMA-LETTER")
> t)))
>   (org-with-wide-buffer
>(goto-char (point-min))
>(let ((block-re (concat "^[ \t]*#\\+BEGIN_" back-end-re)))
>  (save-excursion
>(while (re-search-forward block-re nil t)
>  (let ((element (save-match-data (org-element-at-point
>(when (eq (org-element-type element) 'special-block)
>  (save-excursion
>(goto-char (org-element-property :end element))
>(save-match-data (search-backward "_"))
>(forward-char)
>(insert "EXPORT")
>(delete-region (point) (line-end-position)))
>  (replace-match "EXPORT \\1" nil nil nil 1))
>(let ((include-re
>   (format "^[ \t]*#\\+INCLUDE: .*?%s[ \t]*$" back-end-re)))
>  (while (re-search-forward include-re nil t)
>(let ((element (save-match-data (org-element-at-point
>  (when (and (eq (org-element-type element) 'keyword)
> (string= (org-element-property :key element)
>  "INCLUDE"))
>(replace-match "EXPORT \\1" nil nil nil 1)
> #+END_SRC
>
> #+RESULTS:
> : org-repair-export-blocks
>
> #+BEGIN_LATEX
> \begin{equation*}
> P_{ext} = P_0
> \end{equation*}
> #+END_LATEX
>



John

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


[O] org-ref breaks org-repair-export-blocks

2016-05-11 Thread Julien Cubizolles
Consider the following

--8<---cut here---start->8---
#+BEGIN_SRC elisp
(require 'package)
(setq package-archives '(("ELPA" . "http://tromey.com/elpa/;)
 ("melpa" . "http://melpa.milkbox.net/packages/;)
 ("gnu" . "http://elpa.gnu.org/packages/;)
 ("org" . "http://orgmode.org/elpa/;)
 ("marmalade" . "http://marmalade-repo.org/packages/;)
 ))
(package-initialize)
(require 'org-ref)
(defun org-repair-export-blocks ()
  "Repair export blocks and INCLUDE keywords in current buffer."
  (interactive)
  (when (eq major-mode 'org-mode)
(let ((case-fold-search t)
  (back-end-re (regexp-opt
'("HTML" "ASCII" "LATEX" "ODT" "MARKDOWN" "MD" "ORG"
  "MAN" "BEAMER" "TEXINFO" "GROFF" "KOMA-LETTER")
t)))
  (org-with-wide-buffer
   (goto-char (point-min))
   (let ((block-re (concat "^[ \t]*#\\+BEGIN_" back-end-re)))
 (save-excursion
   (while (re-search-forward block-re nil t)
 (let ((element (save-match-data (org-element-at-point
   (when (eq (org-element-type element) 'special-block)
 (save-excursion
   (goto-char (org-element-property :end element))
   (save-match-data (search-backward "_"))
   (forward-char)
   (insert "EXPORT")
   (delete-region (point) (line-end-position)))
 (replace-match "EXPORT \\1" nil nil nil 1))
   (let ((include-re
  (format "^[ \t]*#\\+INCLUDE: .*?%s[ \t]*$" back-end-re)))
 (while (re-search-forward include-re nil t)
   (let ((element (save-match-data (org-element-at-point
 (when (and (eq (org-element-type element) 'keyword)
(string= (org-element-property :key element) 
 "INCLUDE"))
   (replace-match "EXPORT \\1" nil nil nil 1)
#+END_SRC

#+RESULTS:
: org-repair-export-blocks

#+BEGIN_LATEX
\begin{equation*}
P_{ext} = P_0
\end{equation*}
#+END_LATEX
--8<---cut here---end--->8---

After evaluating the elisp source block, org-repair-export-blocks
doesn't repair the LATEX block. However, (require 'org-ref) is commented
out, org-repair-export-blocks does its job.

Julien.