From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Automatically escaping single spaces
Date: Tue, 19 Mar 2013 17:05:48 +0100 [thread overview]
Message-ID: <874ng7l6hv.fsf@pank.iue.private> (raw)
In-Reply-To: 0C7B7610-34DF-47E5-970C-6CBBF3DDC8EF@gmail.com
Ivan Andrus <darthandrus@gmail.com> writes:
> Oops, forgot to reply to the list.
>
> On Mar 18, 2013, at 9:59 PM, Aaron Ecay <aaronecay@gmail.com> wrote:
>
>> Hi Suvayu,
>>
>> I’ve had on my list of rainy day ideas for a while writing a function
>> for org-export-filter-plain-text-functions that would implement
>> something like this. It should be as simple as doing a text replace,
>> either on “. [^ ]” sequences in general or only spaces after a given
>> list of abbreviations. The advantage of the second approach is that it
>> could catch the case where “e.g.” is at the end of a line in the org
>> document. (You’d also have to remove the newline: translate “e.g.\nfoo”
>> into “e.g.\ foo”). Another advantage to pre-specifying is that you might
>> want a non-breaking space in “Fig.~1” but a breakable space in “e.g.\ foo”;
>> so you could keep two lists.
>
> FWIW, You shouldn't have to worry about newlines. If Emacs is setup
> properly they should never appear except at sentence boundaries. Which
> is to say, autofill and fill-paragraph know not to break lines in the
> middle of a sentence after punctuation. If the user adds a newline
> manually you can assume they meant it to be a new sentence. IIRC the
> variable at play is `sentence-end-double-space'.
I use something like this:
#+BEGIN_SRC emacs-lisp
(defun rasmus/latex-filter-double-space (text backend info)
"Tries to export \"S1. S2\" as \"S1.~S2\",
while letting \"S1. S2\" be exported without tilde"
(when (memq backend '(beamer latex))
(replace-regexp-in-string "\\(\\. \\)\\{1\\}\\([^ ]\\)" ".~\\2" text)))
(add-to-list 'org-export-filter-final-output-functions
'rasmus/latex-filter-double-space)
#+END_SRC
The list approach sounds better, I guess. . . Indeed it does not
catch end of line stuff.
Here's a test case
#+BEGIN_SRC org
#+NAME:ref
#+BEGIN_SRC emacs-lisp
(replace-regexp "\\(\\. \\)\\{1\\}\\([^ ]\\)" ".~\\2")
#+END_SRC
* Test
fig. 1 isn't here. Here is double space. Fig.
2 does not work
fig. [[ref]] is also works
#+END_SRC
which translate to
#+BEGIN_SRC latex
\section[Test]{Test}
\label{sec-1}
fig.~1 isn't here. Here is double space. Fig.
2 does not work
fig.~\ref{ref} is also works
#+END_SRC
–Rasmus
--
Hvor meget poesi tror De kommer ud af et glas isvand?
prev parent reply other threads:[~2013-03-19 16:06 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-18 13:40 Automatically escaping single spaces Suvayu Ali
2013-03-18 16:31 ` Marcin Borkowski
2013-03-19 3:59 ` Aaron Ecay
2013-03-19 15:20 ` Ivan Andrus
2013-03-19 16:05 ` Rasmus [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874ng7l6hv.fsf@pank.iue.private \
--to=rasmus@gmx.us \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).