From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastien Vauban Subject: Re: How to represent Emacs keystrokes in Org? Date: Fri, 20 Mar 2015 10:04:20 +0100 Message-ID: <86twxg3uqz.fsf@example.com> References: <87vbm4fvce.fsf@wmi.amu.edu.pl> <87tx1o8mwj.fsf@gmx.us> <87bnnpisgq.fsf@wmi.amu.edu.pl> <87a939is9j.fsf@wmi.amu.edu.pl> <87sid01wwh.fsf@wmi.amu.edu.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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 Marcin Borkowski wrote: > Hi there, > > it seems that reviving old threads is my new hobby;-). > > On 2014-11-29, at 22:58, Marcin Borkowski wrote: > >> On 2014-11-29, at 22:53, Marcin Borkowski wrote: >> >>> On 2014-11-24, at 19:38, Rasmus wrote: >>> >>>> Marcin Borkowski 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