unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Marcin Borkowski <mbork@mbork.pl>
To: Emanuel Berg <moasen@zoho.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: How to translate LaTeX into UTF-8 in Elisp?
Date: Mon, 03 Jul 2017 19:36:40 +0200	[thread overview]
Message-ID: <87tw2t1kyf.fsf@jane> (raw)
In-Reply-To: <861spxx1h4.fsf@zoho.com>


On 2017-07-03, at 12:24, Emanuel Berg <moasen@zoho.com> wrote:

> Marcin Borkowski wrote:
>
>> It is still a hack, since it relies on the
>> Unicode names being correct.
>
> If it relied on the names being *in*correct,
> that would make it a hack in the
> negative sense.

OK, so here is a proof of concept:

--8<---------------cut here---------------start------------->8---
(defvar TeX-to-Unicode-accents-alist
  '((?` . "grave")
    (?' . "acute")
    (?^ . "circumflex")
    (?\" . "diaeresis")
    (?H . "double acute")
    (?~ . "tilde")
    (?c . "with cedilla")
    (?k . "ogonek")
    (?= . "macron")
    (?. . "with dot above")
    (?u . "with breve")
    (?v . "with caron"))
  "A mapping from TeX control characters to accent names used in
Unicode.")

(defun combine-letter-diacritical-mark (letter mark)
  "Return a Unicode string of LETTER combined with MARK.
MARK can be any character that can be used in TeX accenting
commands."
  (let* ((letter (if (stringp letter)
                     (string-to-char letter)
                   letter))
         (uppercase (= letter
                       (upcase letter))))
    (cdr (assoc-string
          (format "LATIN %s LETTER %c %s"
                  (if uppercase "CAPITAL" "SMALL")
                  letter
                  (cdr (assoc mark TeX-to-Unicode-accents-alist)))
          ucs-names
          t))))
--8<---------------cut here---------------end--------------->8---

As you can see from the mess in `TeX-to-Unicode-accents-alist', this
_is_ a hack.  Still, it seems to work more or less fine.

Best,

-- 
Marcin Borkowski



  reply	other threads:[~2017-07-03 17:36 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-08 17:04 How to translate LaTeX into UTF-8 in Elisp? Marcin Borkowski
2016-12-08 18:21 ` Carlos Konstanski
2016-12-08 19:13   ` Marcin Borkowski
2016-12-08 22:12 ` Stefan Monnier
2017-01-27 11:48   ` Marcin Borkowski
2017-01-28  8:15 ` Kendall Shaw
2017-07-03  4:56 ` Marcin Borkowski
2017-07-03  5:43   ` Emanuel Berg
2017-07-03  9:16     ` Marcin Borkowski
2017-07-03  9:31       ` tomas
2017-07-04  5:55         ` Marcin Borkowski
2017-07-03 10:24       ` Emanuel Berg
2017-07-03 17:36         ` Marcin Borkowski [this message]
2017-07-03 20:01           ` Emanuel Berg
2017-07-04 10:23           ` Héctor Lahoz
2017-07-03  8:37   ` Teemu Likonen
2017-07-04  5:57     ` Marcin Borkowski
2017-07-04  7:13       ` Udyant Wig
2017-07-04  9:27         ` Thien-Thi Nguyen
2017-07-04 20:37           ` Emanuel Berg
2017-07-05  7:05           ` Udyant Wig
2017-07-05 16:06             ` Emanuel Berg
2017-07-13 17:45             ` Thien-Thi Nguyen
2017-07-14  1:48               ` Udyant Wig
2017-07-04 11:18   ` Joost Kremers

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.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tw2t1kyf.fsf@jane \
    --to=mbork@mbork.pl \
    --cc=help-gnu-emacs@gnu.org \
    --cc=moasen@zoho.com \
    /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.
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).