# Re: [NTG-context] need defaults for \definehighlight

On 2/7/2015 2:07 AM, Idris Samawi Hamid ادريس سماوي حامد wrote:

Dear gang,

Thinking of present and future documents (maximum flexibility in
converting from format to format), I'm moving from the standard {\em
text} to something like \definehighlight[emph][style=italic]. Here's the
question:

Does ConTeXt contain some default highlights that need not be defined by
the user? It seems that some of the basic ones should have presets. This
helps with at least two things:

1. Document portability (independent of a given style or env file);
2. Editor setups.

As an example of the latter: If I select text in Notepad++ I can do

Right-Click -> ConTeXt Typography -> Emphasize

where Emphasize is defined as {\em }

Right now, whenever I release an update to the N++ editor package (now
years overdue, I know) any user can depend upon this right-click
feature. But if I define

\definehighlight[emph][style=italic]

and set up the editor to implement it; then there is no guarantee that
other users will use the same definition.

As issues of conversion from one format to another become ever more
urgent and common, it makes more sense to use tagged and exportable
versions of the common typographical functions and to standardize a few.
So my suggestion is that we develop a set of default or "official"
highlights for commonly used cases, with a list made available somewhere
such as the wiki. Perhaps redefine some existing 1-parameter typography
commands (\emph, \bold, \scap, etc.) as highlights. Some of these should
be kept short (such as \emph, \bold) given their very frequent use.



Well, if you talk about automatic injection of commands 'short' is irrelevant and also likely to clash.


Anyway, the problem with predefined highlights is that we won't overload existing commands by default, so redefining is not an option in the core.

An option is to provide a set like:

\unprotect

\definehighlight[\v!italic    ][\c!command=\v!no,\c!style=\v!italic]
\definehighlight[\v!bold      ][\c!command=\v!no,\c!style=\v!bold]
\definehighlight[\v!bolditalic][\c!command=\v!no,\c!style=\v!bolditalic]
\definehighlight[\v!mono]      [\c!command=\v!no,\c!style=\v!mono]
\definehighlight[\v!monobold]  [\c!command=\v!no,\c!style=\v!monobold]

\definehighlight[important]    [\c!command=\v!no,\c!style=\v!bold]
\definehighlight[unimportant]  [\c!command=\v!no,\c!color=darkgray]

\definehighlight[warning] [\c!command=\v!no,\c!style=\v!bold,\c!color=darkblue] \definehighlight[error] [\c!command=\v!no,\c!style=\v!bold,\c!color=darkred]

\protect

\starttext

\highlight[italic]     {italic}
\highlight[bolditalic] {bolditalic}
\highlight[bold]       {bold}
\highlight[mono]       {mono}
\highlight[monobold]   {monobold}
\highlight[important]  {important}
\highlight[unimportant]{unimportant}
\highlight[warning]    {warning}
\highlight[error]      {error}

\stoptext


Keep in mind that coding in terms of 'emph' is rather useless with respect to highlights. Highlights relate to structure (while \it doesn't) so you need tags like 'important' and so.


Also, by defining highlights with the command = no option will provide a bit more protection.

But we need to agree on some kind of reasonable set first.

Hans

-----------------------------------------------------------------
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
___________________________________________________________________________________