[Aleph] feature request :-))

Idris Samawi Hamid aleph@ntg.nl
Fri, 02 Jul 2004 12:29:07 -0600

Hi Giuseppe, Javier, and all,

On Fri, 2 Jul 2004 16:53:02 +0200, Javier Bezos <jbezos@wanadoo.es> wrote:

> Anyway, a higher
> level interface should be left to the format (LaTeX, ConTeXt,
> etc).

Whether the interface is done in Plain, ConTeXt, or LaTeX I still need to
be able to make the abstraction. Once I do that then I can hook that
abstract layer into ConTeXt or LaTeX for use by end-users. In other words,
creating a higher level interface for ConTeXt or LaTeX is EXACTLY what I'm
attempting:-)

On Fri, 2 Jul 2004 02:07:52 +0200, Giuseppe Bilotta <gip.bilotta@iol.it>
wrote:

> Concerning your worries about OCP lists and the need to
> "refresh" them with every font, I must say I'm not sure I
> understand.

I'll try 2 explain again;-) Example: In Arabic we sometimes stretch words
and sometimes not. Stretching may be activated within an ocplist. If I
want to switch to stretching I have to call another ocplist. But each
ocplist contains information irrelevant to stretching (transcription,
orthography, diacritics, etc). I want to create an abstraction layer such
when I switch to stretching all the other parameters in the new ocplist
(say, \Stretching) stay the same. When in stretch mode I want to switch to
no vocalization, \Novocalization should create a new ocplist that keeps
all PREVIOUSLY activated ocps the same EXCEPT for those ocps that pertain
to vocalization. Otherwise I have to create one static no-vocalization
ocplist for the stretch option, and another static no-vocalization ocplist
for the no-stretch option. If I can define ocplist-segments (which may
contain more than one \addbeforeocplist line) then I make absract ocplists
for each typographical job (one 4 transcription, 4 orthography, 4
diacritics, etc.) Suppose I change an abstract definition (e.g.,

\def\Vocalization{\ArFullVocalization}

where \ArFullVocalization calls an ocplist-segment that creates full
vocalization. Suppose also that in the definition of e.g., \Stretching we
have e.g.,

\ocplist\Stretching=
\Transcription
\Vocalization
: <etc>
\FullStretch % catalyst ocp for stretching-not abstract
:<etc>
\nullocplist

then when I ask for stretching I need not define every vocalizion option
in separate ocplists; rather, \Stretching will pick up the vocalization
option that is previously defined by whatever \Vocalization happens to
mean at the moment \Stretching is invoked. If I redefine later in the
document, e.g.,

\def\Vocalization{\ArNoVocalization}

then \Stretching will pick up that vocalization option without the need to
write a new static ocplist.

About fonts: each font needs its own final ocplist segment since each font
may be mapped differently. But I should be be able to change fonts without
affecting the other ocplist parameters and vice versa.

> Maximum flexibility is therefore provided by splitting your
> OCPs into task-specific ones (I assume you already have this)
> and add/remove them (or change them) dynamically as needed
> without having to regenerate it each time. For example, you
> could

> Or am I missing something?

I already tried the second approach (splitting my OCPs into task-specific
ones) and it apparently does not work. For example, if I create an ocplist
for transcription and follow it by an ocplist for orthography, followed by
one for contextual analysis, followed by one for font specification; then
I concatenate these into one string of ocplists (using a macro
definition), the result will NOT be the same as if I created a single
equivalent ocplist. A second ocplist does not carry on from the
transformations made by the first ocplist; rather it reads the tex file
from scratch. Actually it must work that way, otherwise using multiple
ocplists could create chaos. So I need a way to create an abstraction
layer manipulating the stacking of ocp's within a list.

I will look over Giuseppe's workaround and suggestions and report back.
And once I get the basic system working I'll seek the help of people like
Javier, Hans, and Giuseppe to improve/polish up the interface for ConTeXt
and LaTeX.

Much thnx and all the best
Idris

--
Professor Idris Samawi Hamid
Department of Philosophy