[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 

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

> 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.,


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

: <etc>
\FullStretch % catalyst ocp for stretching-not abstract

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.,


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

Professor Idris Samawi Hamid
Department of Philosophy
Colorado State University
Fort Collins, CO 80523