ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Thomas A.Schmitz <thomas.schmitz@uni-bonn.de>
Subject: Re: finishing a module
Date: Mon, 24 Jan 2005 15:06:53 +0100	[thread overview]
Message-ID: <32D27C67-6E11-11D9-A125-000A95B9ADE2@uni-bonn.de> (raw)
In-Reply-To: <41F41618.90701@wxs.nl>

Thanks for your help and interest. OK, what I want to achieve is:  
setting up a collection of fonts for ancient (i.e. polytonic) Greek.  
These fonts need to be mixed into normal text, and there needs to be a  
simple way of switching to them. For the time being, I want to use the  
"babel"-encoding for writing Greek, so I need to make a couple of  
catcode changes (babel uses ~ and | for accents) [I guess if I can make  
this work, I will then try and see if I can cook something up  that  
will actually take unicode characters and transform them into something  
palatable for TeX, taking Adam's work as a model). I also need to  
create commands to access a couple of special symbols like koppa, sampi  
and braces for critical editions.

What I have: the fonts (there's 7 of them) in TeX-readable format (tfm  
+ pfb)
With the help of Giuseppe and several others, I have cooked up a macro  
that will switch to those fonts and do the catcode changes etc. Thus  
far, they had to be invoked with an \input for every single font.

Problems:
Depending on the Latin font used for the main document, the Greek font  
needs to be scaled or it will look ugly (too small, too big in  
comparison). Hence my attempt to use Context's "sa" construct.
I want to simplify things by writing a single module that will give  
access to all  the fonts by providing a unified way of choosing one of  
them.
My idea was having a module that would provide a new command  
\setupgreek that would take two arguments: Name of the font suitable  
for users, scaling factor.
E. g. \setupgreek[Oxonia][1.08] This module would then provide two  
commands for writing Greek, \localgreek{...} and \startgreek ...  
\stopgreek + commands for accessing the symbols.

Problems so far: my module defines the Greek font as a body font. As  
far as I can see, this will only work for predefined sizes [4pt,5pt  
etc.]. When a user sepcifies an unusual font size for his main document  
or when TeX calculates a weird size (e.g. in footnotes, Alan Bowens's  
problem last week), the font isn't defined anymore, and the macro for  
writing Greek doesn't work. \definefont doesn't appear to have this  
problem, but it works only if I give the name of the font "manually," I  
couldn't make it accept an internal macro (Taco was very helpful  
yesterday, but I couldn't make it work).

If anybody can spare five minutes, I append what I have got so far;  
maybe I'm overlooking something obvious. Sorry for the lengthy post and  
for taking your time!

Thanks everybody!

Thomas

%module t-greek providing method for Greek input in ConTeXt

\unprotect

\def\setupgreek#1[#2]{%
   \getparameters[GG][Scale=,Font=,#2]%Font,Scale
\xdef\MyScale{\GGScale}%
\processaction[\GGFont]
    [  Oxonia=>\gdef\MyFont{greeoxon },%this switches from the "logical"  
name of the font to the actual tfm
       Ibycus=>\gdef\MyFont{fibr },
     Bosporos=>\gdef\MyFont{Bosporos },
      Gentium=>\gdef\MyFont{gentiumgr },
       Kadmos=>\gdef\MyFont{kadmo },
      Leipzig=>\gdef\MyFont{grbl },
      Teubner=>\gdef\MyFont{Teubnerc }]%
}

\protect

%\definefont[Gf][kadmo ] %When given the name of the tfm in clear, this  
works

%\definefont[Gf][\MyFont]%This does not work, and I have no clue why

\definebodyfont[4pt,5pt,6pt,7pt,8pt,9pt,10pt,10.5pt,11pt,12pt,14pt,14.4p 
t,16pt,18pt,20pt,22pt][rm][Gf=\MyFont sa \MyScale] %This DOES work, and  
I can't see what's the fundamental difference to the preceding line.

\def\enablegreek{\language[greek]\catcode`~=\other\catcode`|=\other\catc 
ode`'=\other}%this was provided by Giuseppe

\def\startgreek{\par\begingroup\Gf\enablegreek}

\let\stopgreek\endgroup

\def\localgreek{\groupedcommand{\Gf\enablegreek}{}}

\define\sampi{{\Gf \char34}}%and this by Taco

\define\digamma{{\Gf \char35}}

\define\stigma{{\Gf \char36}}

\define\koppa{{\Gf \char37}}

\define\lunars{{\Gf \char1}}

\define\lunarS{{\Gf \char13}}

\define\brcl{{\Gf \char8}}

\define\brcr{{\Gf \char9}}

\define\hbrl{{\Gf \char123}}

\define\hbrr{{\Gf \char125}}

\define\crux{{\Gf \char43}}

On Jan 23, 2005, at 10:24 PM, h h extern wrote:

> Thomas A.Schmitz wrote:
>> I spent some (too much) time today improving my Greek module. For the  
>>  time being, two questions remain; I'm confident that they're not too  
>>  difficult for the experts; any help would be appreciated.
>
> what exactly do you want to achieve, if it's only some font following  
> the sizes and styyles ...
>
> \definefontsynonym [Funny]            [cmr10]
> \definefontsynonym [FunnyBold]        [cmbx10]
> \definefontsynonym [FunnyItalic]      [cmti10]
> % \definefontsynonym [FunnySlanted]     [...]
> % \definefontsynonym [FunnyBoldItalic]  [...]
> % \definefontsynonym [FunnyBoldSlanted] [...]
>
> \def\MyFunnyFont{\symbolicfont{Funny}}
>
> test {\MyFunnyFont test} test
> test {\it \MyFunnyFont test} test
> test {\bf \MyFunnyFont test} test
>
>
> -----------------------------------------------------------------
>                                           Hans Hagen | PRAGMA ADE
>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
>                                              | www.pragma-pod.nl
> -----------------------------------------------------------------
>
> _______________________________________________
> ntg-context mailing list
> ntg-context@ntg.nl
> http://www.ntg.nl/mailman/listinfo/ntg-context
>

  reply	other threads:[~2005-01-24 14:06 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-22 20:41 Thomas A.Schmitz
2005-01-23  9:33 ` Taco Hoekwater
2005-01-23 13:33   ` Thomas A.Schmitz
2005-01-23 14:06     ` Taco Hoekwater
2005-01-23 14:42       ` Thomas A.Schmitz
2005-01-23 15:22         ` Taco Hoekwater
2005-01-23 21:24 ` h h extern
2005-01-24 14:06   ` Thomas A.Schmitz [this message]
2005-01-24 17:50     ` Hans Hagen
2005-01-24 17:50     ` Hans Hagen
2005-01-24 18:20       ` Thomas A.Schmitz
2005-01-24 18:03     ` Hans Hagen
2005-01-24 18:47       ` Thomas A.Schmitz
2005-01-25 14:56         ` h h extern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32D27C67-6E11-11D9-A125-000A95B9ADE2@uni-bonn.de \
    --to=thomas.schmitz@uni-bonn.de \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).