From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leu Zhe Subject: Re: To interrupt org-latex-pdf-process to regexp-replace some string of the .tex intermediate file and continue to export Date: Sat, 26 Apr 2014 00:23:11 +0900 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a113a9b8295439604f7df8df1 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43216) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wdhyk-0005Ux-Ng for emacs-orgmode@gnu.org; Fri, 25 Apr 2014 11:23:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wdhyj-0004Jy-6m for emacs-orgmode@gnu.org; Fri, 25 Apr 2014 11:23:54 -0400 Received: from mail-qc0-x22e.google.com ([2607:f8b0:400d:c01::22e]:54415) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wdhyi-0004Jg-VD for emacs-orgmode@gnu.org; Fri, 25 Apr 2014 11:23:53 -0400 Received: by mail-qc0-f174.google.com with SMTP id c9so4180916qcz.33 for ; Fri, 25 Apr 2014 08:23:52 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: John Kitchin Cc: "emacs-orgmode@gnu.org" --001a113a9b8295439604f7df8df1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Dear John=EF=BC=8C Thanks very much for your help. I have tried your code but nothing happened. However, I think it is close to my remand. I have some questions about your code: 1. When should this command be called? Don't I need to call it before the org-latex-pdf-process? 2. I use xelatex to render my .tex files. Because xelatex can not recognize the boundingbox of both .png and .pdf, so I need to generate .ebb for them in seperate folders, which are PNG and PDF folders respectively. so i think you did not mention them? I am studying elisp now, but your code is really difficult for me, so can you help me dig in? Best regard! On Fri, Apr 25, 2014 at 10:54 PM, John Kitchin wro= te: > This is how I do what I think you are describing. I just take off the > extension, and let (pdf)latex pick the extension it wants. > > (defun ox-manuscript-remove-image-extensions () > "Removes .png extensions from \includegraphics directives in an exporte= d latex file. > > > > > Run this from an org-buffer after you have exported it to a LaTeX file" > (interactive) > (let* ((org-file (file-name-nondirectory (buffer-file-name))) > (tex-file (replace-regexp-in-string "org$" "tex" org-file)) > (tex-contents (with-temp-buffer (insert-file-contents tex-file) = (buffer-string)))) > > > > (message tex-file) > (with-temp-file tex-file (insert (replace-regexp-in-string > > > > (concat "\\(\\includegraphics" > "\\(\[?[^\].*\]?\\)?\\)" = ;; match optional [stuff] > > > > "{\\([^}].*\\)\.\\(png\\)}"= ) > "\\1{\\3}" tex-contents))))) > > > > > > John > > ----------------------------------- > John Kitchin > Associate Professor > Doherty Hall A207F > Department of Chemical Engineering > Carnegie Mellon University > Pittsburgh, PA 15213 > 412-268-7803 > http://kitchingroup.cheme.cmu.edu > > > > On Thu, Apr 24, 2014 at 8:46 AM, Leu Zhe wrote: > >> I am using org-mode to write some article now. Org-mode is really a >> great tool to outline a article with great table and image support. >> >> Org-mode can display inline .png image but not .pdf file. Because now >> org-mode can not control the width or height of shown inline image, so i >> use matplotlib to produce low dpi .png image in PNG folder for inline >> display and higher dpi pdf image in PDF folder for finally article expor= t. >> >> In .org file, the image link is like [[file:PNG\*.png]] and >> \includegraphics{PNG\*.png}in the produced .tex file. Then emacs will >> use org-latex-pdf-process to render it to pdf file. What I want is that >> before or in org-latex-pdf-process, a regexp replace function is added >> to replace the \includegraphics{PDF\*.pdf}, and then produce the final >> pdf file. >> >> Can anyone give a hand? >> > > --001a113a9b8295439604f7df8df1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Dear John=EF=BC=8C

Thanks very much for= your help.

I have tried your code but nothing hap= pened. However, I think it is close to my remand.=C2=A0

I have some questions about your code:

1. When should this command be called? =C2=A0Don't = I need to call it before the org-latex-pdf-process?

2. I use xelatex to render my .tex files. Because xelatex can not recogni= ze the boundingbox of both .png and .pdf,=C2=A0
=C2=A0 =C2=A0so I need to generate .ebb for them in seperate folders, = which are PNG and PDF folders respectively. so i think=C2=A0
=C2= =A0 you did not mention them?

I am studying elisp = now, but your code is really difficult for me, so can you help me dig in?= =C2=A0

Best regard!
=C2=A0



On Fri, Apr 25, 2014 at 10:54 PM, John Kitchin <jkitchin@andrew.cmu.= edu> wrote:
This is how I do what I think you are describing. I just t= ake off the extension, and let (pdf)latex pick the extension it wants.
<= div>
(defun ox-manuscript-remove-image-extension= s ()
=C2=A0=C2=A0"Removes .png ext= ensions from \includegraphics directives in an exported latex file.<= /div>

Run this from an org-buffer after you have export= ed it to a LaTeX file"
=C2=A0=C2=A0(interactive)
=C2=A0=C2=A0(let* ((org-f= ile (file-name-nondirectory (= buffer-file-name)))
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0(tex-file (replace-regexp-in-string "org$" "tex" org-file))
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0(tex-contents (with-temp-buffer (= insert-file-contents tex-file) (buffer-string))))
=C2=A0=C2=A0=C2=A0=C2=A0(message tex-f= ile)
=C2=A0=C2=A0=C2=A0=C2=A0(with-temp-file tex-file (insert<= /span> (replace-regexp-in-string
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0(concat "\\(\\includegraphics= "
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= "\\(\[?[^\].*\]?\\)?\\)" ;; match option= al [stuff]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"{\\([^= }].*\\)\.\\(png\\)}")
=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0"\\1= {\\3}" tex-contents)))))


Joh= n

-----------------------------------
John Kitchin
Associate P= rofessor
Doherty Hall A207F
Department of Chemical Engineering
Car= negie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu

<= /div>


On Thu, Apr 24, 2014 at 8:46 AM, Leu Zhe= <lzhes43@gmail.com> wrote:

I am using org-mode to write some article now. Org-mode is really a great t= ool to outline a article with great table and image support.

Org-mode can display inline .png image but not .pdf file. Because now org-m= ode can not control the width or height of shown inline image, so i use mat= plotlib to produce low dpi .png image in PNG folder for inline display and = higher dpi pdf image in PDF folder for finally article export.

In .org file, the image link is like=C2=A0[[file:PNG\*.pn= g]]=C2=A0and=C2=A0\includegraphics{PNG\*.png}in the produced .tex file. Then emacs will use=C2=A0org= -latex-pdf-process=C2=A0to render it to pdf file. What I want is tha= t before or in=C2=A0org-latex-pdf-process, a regex= p replace function is added to replace the=C2=A0\includeg= raphics{PDF\*.pdf}, and then produce the final pdf file.

Can anyone give a hand?



--001a113a9b8295439604f7df8df1--