From 91a40ccaffce74728d109c726985f67773b0617e Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Thu, 13 Jan 2011 12:23:36 +0100 Subject: =?UTF-8?q?adapted=20ConTeXt=20escaping=20--=20waiting=20for=20?= =?UTF-8?q?=E2=80=98=5F=E2=80=99=20to=20generally=20get=20letter=20catcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/hybridtest.tex | 8 ++++---- mod/tex/context/third/rst/rst_context.lua | 13 ++++++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/doc/hybridtest.tex b/doc/hybridtest.tex index ba3bed5..6b74a8a 100644 --- a/doc/hybridtest.tex +++ b/doc/hybridtest.tex @@ -21,10 +21,10 @@ there are some :bold:`drawbacks` to expect when mixing markups: directives and hyperlink targets that have already been specified somewhere above the current section will *stay* accessible in later passages until you redefine them. Also, certain letters -need to be thoroughly escaped in order to make it through to the -*reST*-parser, e.g. *\\\{* (), and you’ll have to be -inventive to make a backslash (*\\letterbackslash*) pass through -the parser. +need to be thoroughly escaped in order for them to make it +through to the *reST*-parser, e.g. *\\\{* (), and +you’ll have to be inventive to make a backslash +(*\\letterbackslash*) pass through the parser. } diff --git a/mod/tex/context/third/rst/rst_context.lua b/mod/tex/context/third/rst/rst_context.lua index a18086b..5ed7812 100644 --- a/mod/tex/context/third/rst/rst_context.lua +++ b/mod/tex/context/third/rst/rst_context.lua @@ -331,10 +331,17 @@ function rst_context.substitution_reference (str, underscores) return sub .. [[{\\RSTsubstitution]] .. str:gsub("%s", "") .. "}" end +-- see catc-sym.tex +local escape_me = { + ["&"] = [[\letterampersand ]], + ["#"] = [[\letterhash ]], + ["^"] = [[\letterhat ]], + ["_"] = [[\letterunderscore ]], +} + function rst_context.escape (str) - str = str:gsub("\\(.)", "%1") - str = str:gsub("&", "\\letterampersand") - return str + str = str:gsub("\\(.)", "%1") -- literalize escaped sequences + return str:gsub("[&#^_]", escape_me) -- escape chars with special meaning end function rst_context.joinindented (tab) -- cgit v1.2.3