emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] New LaTeX exporter, link to \ref


From: Sebastien Vauban
Subject: Re: [O] New LaTeX exporter, link to \ref
Date: Sun, 16 Sep 2012 22:42:19 +0200
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2 (windows-nt)

Hi Thomas,

Thomas S. Dye wrote:
>> I use the following instead (_ character stands for the non-breaking
>> space):
>>
>> #+begin_src emacs-lisp
>> (defun ngz-latex-filter-nobreaks (text backend info)
>>   "Ensure \"_\" are properly handled in Beamer/LaTeX export."
>>   (when (memq backend '(e-beamer e-latex))
>>     (replace-regexp-in-string "_" "~" text)))
>> (add-to-list 'org-export-filter-plain-text-functions
>>              'ngz-latex-filter-nobreaks)
>> #+end_src
>
> Thanks very much for the filter, which makes for an aesthetically
> pleasing org buffer.  I changed the underscore to a non-breaking
> space character in the call to replace-regexp-in-string and now get
> tildes in my LaTeX export.

I use this:

#+begin_src emacs-lisp
  ;; replace space by nobreak-space where it fits well
  (defun my/replace-space-before-colon ()
    "Replace space by nobreak-space in front of a colon."
    (interactive)
    (cond ((eq (char-before) ?\ ) ;; normal space
           (backward-delete-char 1)
           (cond ((equal mode-name "PDFLaTeX")
                  (insert "~:"))
                 ((equal mode-name "Org")
                  (if (and (fboundp 'org-in-src-block-p)
                           (org-in-src-block-p))
                      (insert " :")
                    (insert " :")))
                 ;; FIXME Don't put a nobreak space when specifying Org
                 ;; Babel properties (such as :exports both)
                 (t
                  (insert " :")))) ;; non-breaking space
          ;; remove nobreak-space if two colons are put one after the
          ;; other (for terms and definitions in Org)
          ((and (eq (char-before) ?\:)
                (eq (char-before (- (point) 1)) ?\ ))
           (backward-delete-char 2)
           (insert " ::")) ;; normal space

          (t
           (insert ":"))
          ))

  ;; French typography
  (defun my/nobreak-keys ()
    "If any, replace space in front of colons, question marks, exclamation
  marks, etc. to avoid line break problems."
    (interactive)
    (local-set-key ":" 'my/replace-space-before-colon))

  (add-hook 'text-mode-hook 'my/nobreak-keys)
  (add-hook 'message-mode-hook 'my/nobreak-keys)
#+end_src

in order to have real nbsp as well in my Org buffer. They aren't translated
neither to HTML nor to LaTeX (they're simply copied across), allowing for
consistent view in all the buffers (source + outputs).

Best regards,
  Seb

-- 
Sebastien Vauban




reply via email to

[Prev in Thread] Current Thread [Next in Thread]