[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] inter-word space in org -> latex
From: |
Rasmus |
Subject: |
Re: [O] inter-word space in org -> latex |
Date: |
Tue, 22 Sep 2015 22:59:58 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Marcin Borkowski <address@hidden> writes:
> ;; Convert single spaces after periods etc. to "\ " when exporting to LaTeX
>
> (defun my-latex-filter-nonfrenchspacing (text backend info)
> "Convert single spaces after dots to \"\ \"."
> (when (and (org-export-derived-backend-p backend 'latex)
> sentence-end-double-space)
> (replace-regexp-in-string
> (concat "\\(" sentence-end-base "\\)"
> "[ \u00a0]\\([^ \t\u00a0\n]\\)")
> "\\1\\\\ \\2" text)))
>
> (add-to-list 'org-export-filter-plain-text-functions
> 'my-latex-filter-nonfrenchspacing)
>
> It is a bit simplistic (after all, I wrote it just now in 15 minutes),
> but it seems to work fine. It makes a few assumptions, though. One of
> them is that you don't mess with sentence-end-base too much: I assumed
> that there are no non-shy groups there. (By default there are not, and
> I don't see any reason for them to be there, but what do I know.) Also,
> I assume that for the period to /not/ end the sentence, it should be
> followed by one space and something non-spacey.
Here'a an alternative implementation with other limitation, e.g. only
looking at [A-Z] for capitals:
http://permalink.gmane.org/gmane.emacs.orgmode/101176
> Also, note that while Emacs' way of differentiating between
> a sentence-ending period and a non-sentence-ending period are fairly
> simple, (La)TeX's rules are a bit more complicated (look up "space
> factor" in The TeXbook). For instance, LaTeX assumes that a period
> after a capital letter /never/ ends the sentence, and you have to use \@
> before such period to change that. The algorithm TeX uses is really
> clever, and can be (ab)used in funny ways to do funny stuff in
> low-level, hackish TeX ways (been there, done that - for instance, when
> I once reimplemented the theorem-like environments, I used space factor
> to make sure that if a theorem begins with an enumeration, it looks
> fine. The "standard" LaTeX implementation of theorem-like environments
> is kind of crazy, even if it works in typical cases. Try typesetting
> a theorem with a long optional argument in a narrow column and see what
> happens, for instance.).
But isn't a lot of the cruft from TeX "fixed" in LaTeX. E.g. I believe
the correct space is automatically used after emphasis.
> TL;DR: just use \frenchspacing. Everyone will be happier.
Or not.
--
The Kids call him Billy the Saint