[NTG-context] Overriding / redefining / disabling standard commands

Rik Kabel context at rik.users.panix.com
Tue Jun 26 04:44:18 CEST 2018


On 6/25/2018 22:00, Alan Braslau wrote:
> On Mon, 25 Jun 2018 20:50:51 -0400
> Rik Kabel <context at rik.users.panix.com> wrote:
>
>> On 6/25/2018 20:11, Alan Braslau wrote:
>>> On Mon, 25 Jun 2018 19:11:30 -0400
>>> Rik <rik at panix.com> wrote:
>>>
>>>> On 6/25/2018 17:52, Wolfgang Schuster wrote:
>>>>> \startmode[ebook]
>>>>> \setupbackend[export=yes]
>>>>> \stopmode
>>>>>
>>>>> \starttext
>>>>>
>>>>> \index{Knuth}\input knuth
>>>>>
>>>>> \index{Ward}\input ward
>>>>>
>>>>> \index{Zapf}\input zapf
>>>>>
>>>>> \startnotmode[*export]
>>>>> \completeregister[index]
>>>>> \stopnotmode
>>>>>
>>>>> \stoptext
>>>> Unfortunately, this does not suppress generation of index
>>>> references in the exported output. Here is a snippet of the
>>>> -div.html file generated by the example you provided:
>>>>
>>>>       <div class="registerlocation index" href="#aut-1"
>>>>       onclick="location.href='#aut-1'"><!--empty--></div>Thus,
>>>> I came to the conclusion that the designer of a new system must not
>>>>       only be the implementer and first large--scale user; the
>>>> designer should also write the first user manual.
>>>>
>>>> and a snip of the output with the default css:
>>>>
>>>> Thus the request for a (simple) mechanism to redefine or disable
>>>> standard commands. There are commands other than \index that might
>>>> also benefit from similar treatment.
>>>>
>>> \def\MyIndex#1{\index{#1}}
>>>
>>> is one route.
>>>
>>> Another might be
>>>
>>> \let\index\gobbleoneargument
>>>
>>> (use at your risk)
>>>
>>> Alan
>>>
>> This would work if \index took one argument, but it takes as well an
>> optional argument preceding the required argument, and so these fail.
>>
>> The best solution would seem to be one which does not require
>> knowledge of the number of required and optional arguments, but that
>> might be a stretch.
>>
>> That is why I asked for help.
> \setupregister[index][referencing=off]
>
> Besides, if you use \index, why object to index reference tags in the
> export?
>
> Alan

Alan (and list),

This option still leaves the registerlocation entries in the html file, 
and so accomplishes nothing that Wolfgang's suggestion did. Being 
implemented in the environment file, it does have the advantage of not 
requiring changes to the content source file.

As to why I object to index reference tags in the export: There are a 
few constructs beyond indexes that I wish to exclude in export output -- 
indices are one and the problem is easily demonstrated. Referencetags 
themselves are not a significant problem -- a little css will hide them. 
I have not explored the other constructs yet (among them margin notes 
and cross-references) but was hoping for a generic solution, or at least 
an easily adapted per command solution.

There are a few options I can see. In order of least to most preferred, 
I can maintain separate sources; I can invoke a filter in my makefile to 
preprocess the source, removing \index commands (or margin notes, or 
...); I can redefine \index (or margin notes, or ...) to be no-ops.

As much as possible I would like to use the same content source files 
for different output formats with some unique environment files. Filters 
are an added step and fragile, depending on correctly identifying the 
target constructs. So, I have been looking at redefinition.

I thought that the ability to override a command like \index might be 
generally useful, and so brought it up to the list when I could not find 
a way to do it.

-- 
Rik




More information about the ntg-context mailing list