From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastien Vauban Subject: Re: utf8x and org-mode 8 (Sebastien Vauban) Date: Tue, 26 Aug 2014 11:05:44 +0200 Message-ID: <86zjermxhz.fsf@somewhere.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: 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-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Daniel Szmulewicz wrote: > Sebastien Vauban wrote: >> AFAICT, when using the `utf8' option to `inputenc' (and not `utf8x' >> which should be avoided, as it uses `ucs' which is no longer >> maintained), we have 2 solutions to support the UTF-8 non-breaking >> space: >>=20 >> - Convert it in Org mode, when exporting (via a filter) >>=20 >> #+begin_src emacs-lisp >> ;; filter for non-breaking spaces >> (defun leuven--latex-filter-nbsp (text backend info) >> "Convert non-breaking spaces when exporting to LaTeX/Beamer." >> (when (memq backend '(latex beamer)) >> (replace-regexp-in-string "?" "~" text))) >>=20 >> (add-to-list 'org-export-filter-plain-text-functions >> 'leuven--latex-filter-nbsp) >> #+end_src >>=20 >> - or Convert it in LaTeX: >>=20 >> #+begin_src emacs-lisp :tangle no >> ;; convert `nbsp' to its LaTeX equivalent >> (add-to-list 'org-latex-packages-alist >> (concat "\\ifdefined\\DeclareUnicodeCharacter{" >> "\\DeclareUnicodeCharacter{00A0}{~}" >> "}\\fi") t) >> #+end_src >>=20 >> I think that the first one is "better", though its problem is that, >> being done by a filter (hence, on the user-side), sharing an Org file is >> not easy anymore (without sharing the filter to be added to the >> personal .emacs file). > > Awesome. Thank you, Sebastien. > > I prefer the second solution, because it allows me to account for > different kinds of spaces: espace fine, espace ins=C3=A9cable, espace > moyenne, etc. > > Just for curiosity: I=E2=80=99m not sure what to make of the regexp. The = =E2=80=98?=E2=80=99 > is normally a postfix operator used in conjunction with other > characters, isn=E2=80=99t it? As it is, it seems to target question marks > instead of blank spaces. What am I missing? It seems to be a character encoding problem: it was supposed to be a real "nbsp" char (00A0, IIRC). It's clearly NOT intended to be a "?". I don't know how this got badly converted in these posts. Best regards, Seb --=20 Sebastien Vauban