emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] How to represent Emacs keystrokes in Org?


From: Sebastien Vauban
Subject: Re: [O] How to represent Emacs keystrokes in Org?
Date: Fri, 20 Mar 2015 10:04:20 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (windows-nt)

Marcin Borkowski wrote:
> Hi there,
>
> it seems that reviving old threads is my new hobby;-).
>
> On 2014-11-29, at 22:58, Marcin Borkowski <address@hidden> wrote:
>
>> On 2014-11-29, at 22:53, Marcin Borkowski wrote:
>>
>>> On 2014-11-24, at 19:38, Rasmus wrote:
>>>
>>>> Marcin Borkowski <address@hidden> writes:
>>>>
>>>>> Hello,
>>>>>
>>>>> I'm writing (in Org) a text on Emacs usage.  How to
>>>>> correctly/canonically represent keystrokes, like "C-x RET f"?
>>>>> Currently, I use =C-x RET f=; are there any alternatives?
>>>>
>>>> That's what I'd do.  Or ~C-x RET f~.  You could also use a macro, if you
>>>> want it to me be more semantic (I hope I use this word correctly).
>
> This might seem a good idea, but how do I do it?  (See below for
> a concrete problem statement.)
>
>>> Houston, we've got a problem.  What about =M-,=?  Somehow it seems not
>>> to be interpreted in the right way: it does not get fontified correctly,
>>> nor does export in the right way.  What can I do about it?  I found
>>> about org-emphasis-regexp-components, is it the only way?  Also, how do
>>> I reload Org without restarting Emacs?  (I am an Emacs geek and I try to
>>> beat my record of emacs-uptime, you know. ;-) )
>>
>> Wow, I got an idea, and it worked.  Here's an excerpt from `C-u C-x ='
>> at my solution;-):
>>
>>              position: 11859 of 16051 (74%), column: 253
>>             character: ‍ (displayed as ‍) (codepoint 8205, #o20015, #x200d)
>>     preferred charset: unicode (Unicode (ISO10646))
>> code point in charset: 0x200D
>>                syntax: .     which means: punctuation
>>              to input: type "C-x 8 RET HEX-CODEPOINT" or "C-x 8 RET NAME"
>>           buffer code: #xE2 #x80 #x8D
>>             file code: #xE2 #x80 #x8D (encoded by coding system utf-8-unix)
>>               display: by this font (glyph code)
>>     xft:-unknown-Phetsarath 
>> OT-normal-normal-normal-*-17-*-*-*-*-0-iso10646-1 (#x120)
>>
>> Character code properties: customize what to show
>>   name: ZERO WIDTH JOINER
>>
>> A bit ugly trick, but works.  What are the opinions?
>
> After a while I have to say that my opinion is strongly negative: this
> breaks LaTeX export.  (LaTeX doesn’t like some unicode characters, it
> turns out.)  Also, this was really an ugly hack...
>
> So, here is my problem: how to represent a key like M-, or
> e.g. a sequence \, (important in regexps) as “code” or “verbatim stuff”
> in org-mode?  Neither =\,= nor ~\,~ work, of course.  Also, I’d like
> this to be backend-agnostic, so \texttt{M-,} doesn’t really work.

I'm thinking at something like this (partially untested):

--8<---------------cut here---------------start------------->8---
#+LATEX_HEADER: \usepackage{menukeys}
#+LATEX_HEADER: \let\ORIkeys\keys
#+LATEX_HEADER: \renewcommand{\keys}[1]{\ORIkeys{\texttt{#1}}}
#+LATEX_HEADER: \newcommand{\repeatedkeys}[1]{\keys{\textcolor{gray}{#1}}}

#+MACRO: kbd \keys{$1}
--8<---------------cut here---------------end--------------->8---

Of course, the macro would have to be improved to work at least (in my
case) in both HTML and LaTeX, by using the @@latex:...@@ construct.

> What is the rationale behind forbidding the comma as the “border”
> character in org-emphasis-regexp-components?  Should I change this
> variable in my setup or is there a more general way to convince Org that
> I really want verbatim/code snippets like =\,=?

I share your point about a better `org-emphasis-regexp-components' by
default, which would work in 99.9% of the cases.

Best regards,
  Seb

-- 
Sebastien Vauban




reply via email to

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