Questions and Answers

  1. General stuff
    1. "Questions and answers"? - you mean a Faq?
    2. You use a language, reminding on English a little bit. What's it?
    3. Is it free software?
    4. Can I complain for errors?
  2. What to find here
    1. What can I find here?
    2. Do you plan to provide other material?
    3. What would you want your fonts should be for?
    4. And what can they really be used for?
    5. Some other work should be invested in the fonts obviously ...
    6. And what will you really do?
  3. Why this script, why these sign lists?
    1. Why did you prepare fonts for the Indus script?
    2. Why did you start with the sign list, given by I. Mahadevan?
    3. Which other sign lists should be equipped with a font?
  4. Why do you use these tools?
    1. Why do you use Metafont?
    2. Why do you use TeX?
  5. Give examples, please ...
    1. Show me every sign (and some texts) ...
    2. But I want to see the text with another font variant!
    3. Show me sign tables ...
  6. Show me the sources, i.e. ...
    1. ... the Metafont sources
    2. ... the example text
    3. ... the scripts
  7. How to get the fonts?
    1. I only want to get a look on the signs or some texts ...
    2. Can I load ready-made fonts?
    3. How to generate a font?
    4. I want to generate a font, you didn't prepare for...
  8. Some hints on the fonts ...
    1. Explain font parameters: width, height, centered ...
    2. I get three fonts instead of one ...
    3. 'Preliminary signs' - what's that?
  9. How to use it?
    1. Which other tools do I need?
    2. Where should I place the fonts?
    3. Fonts are produced automatically as needed, right?
    4. How to write a text, using one of the fonts?
    5. How to display such a text?
  10. Implementation comments
    1. It's a mess. You never heard of typography?
    2. You don't like comments?
    3. You have implemented one sign list only. Why preparing for 26?
    4. For 5 signs there are variants implemented too. Why?
    5. Very naive discussions are introducing this variant handling ...
    6. You have implemented the ASCII signs too. Why?
    7. A lot of your functions work for your use only, not in general ...
    8. Is there something, which could be used elsewhere?
  11. Other questions
    1. When can we inspect your proposal on deciphering?
    2. I have another question: ...?

  1. General stuff
    1. "Questions and answers"? - you mean a Faq?
    2. Yes, in principle. But that would be an overstatement yet.


    3. You use a language, reminding on English a little bit. What's it?
    4. You will wonder - it should be English!
      I apologize any sin against a good English. Please mail me on any error or on bad style, especially if it results in reducing the comprehensibility.


    5. Is it free software?
    6. There is free software only on this site now.
      That shall be retained, as far as possible.
      (In case, I'm allowed to include third party software, which is not free, I will mark it.)

      To be more explicit: You are allowed to use, copy, modify, and distribute this software and its documentation for any purpose. Neither a written or verbal agreement, nor a fee is required to do that.


    7. Can I complain for errors?
    8. I'm interested in any notice on errors or bad spots. But I'm unable to guarantee anything, including to remove errors.

      To be more explicit: I'm not liable for direct, or indirect damages arising out of the use of any software on this site.

      I disclaim any warranties for the software on this site. It is provided on a "as is" basis. I'm not obliged for maintenance, support, and enhancements.


  2. What to find here
    1. What can I find here?
    2. Some parts of one thing only - version 0.5 of a fonts family for the Indus script:


      Only one sign list has been implemented yet - that of I. Mahadevan.


    3. Do you plan to provide other material?
    4. If I get permission, I will provide the readings of I. Mahadevan too (and some other - mostly documentation - material).
      In any case, a script to produce a concordance from given text readings will come soon.

      Later on, fonts to implement the K. Koskenniemi / A. Parpola fonts will be provided.


    5. What would you want your fonts should be for?
    6. The wishful dream is a font family, allowing:


    7. And what can they really be used for?
    8. Only one sign list can be used yet.
      The fonts can be used in a TeX environment only.
      The flexibility of text handling is very low - you need to write a TeX input text to use the fonts.

      The first restriction will be removed soon, but the prospect on the others is not known yet.


    9. Some other work should be invested in the fonts obviously ...
    10. Yes.
      Any restriction from the preceding answer should be removed (or lowered at least).
      The given order seems to be the order of urgency.
      Some work to advance the typographic level of the fonts would be nice too, but there is little chance, that there will be much done in this respect.


    11. And what will you really do?
    12. At first, fonts for the said sign lists will be produced.
      After that, I will seek for a way, to transfer the fonts into a format, usable in a non-TeX environment. (May be, MetaPost, Metafog, or TeXTrace will help.)


  3. Why this script, why these sign lists?
    1. Why did you prepare fonts for the Indus script?
    2. I could not find such a font in the Web. But it's difficult, to work on a script without a font.


    3. Why did you start with the sign list, given by I. Mahadevan?
    4. When I started, the list, given by I. Mahadevan in his beautiful "The Indus script" was the most actual, I was aware of, for which readings of the known Indus script texts were public available.


    5. Which other sign lists should be equipped with a font?
    6. The K. Koskenniemi / A. Parpola sign list from 1979/1982 is necessary, to be able to work with their readings too.
      The sign list from A. Parpola "Deciphering the Indus script" should be provided too, because it seems to be the best sign list existing nowadays (autumn 2001).


  4. Why do you use these tools?
    1. Why do you use Metafont?
    2. As a programmer, I need a programming language to be happy with.
      (And its a pleasure, to work with Metafont! [Yes, mostly.])
      There are objective reasons too: Metafont allows to produce a family of fonts, varying in a lot of parameters.
      (I made only restricted use of that yet.)


    3. Why do you use TeX?
    4. I don't know a way, to avoid that. May be, I missed the point for TeX yet.


  5. Give examples, please ...
    1. Show me every sign (and some texts) ...
    2. Only one example text - with one line for every sign, containing a full found 'text', as 'read' 1977 by I. Mahadevan, has been prepared.
      And that has been done for one font variant only: a 15pt variable width font, with signs of two heights and uncentered glyphs. (But the representation is biased, because the texts are not given as continuous sign sequences, but all in a great invisible table - every sign fills one cell of the table. That has been done, to get both vertical alignment and minimal line width.)

      You can inspect it in

      The dvi format is TeX's output format - you need TeX or another special tool (as dviwin) to inspect it.
      The pdf format file resulted from the dvi-file by conversion with dvipdfm.


    3. But I want to see the text with another font variant!
    4. For that you need to get that font variant first (see below for some possibilities). The scripts in one of the scripts-xxx directories of example building scripts can be used then (directly or adapted) to see the text example, as it looks with the font variant wanted.

      If you are gone the way from get a font by generate it, you already have loaded and unzipped the scripts needed here (and the TeX example source too).
      The steps to do here are analogous to the steps described there.


    5. Show me sign tables ...
    6. After you got a font, you can use the macro testfont.tex, which is part of any TeX implementation, to get sign tables (and make other tests) for the three partial fonts, constituting the font. (Why three, not one? see below.)
      So by executing

      and answering the prompts by the partial font name (including its last letter), followed by the command "\table", a sign table will be produced as file testfont.dvi.


  6. Show me the sources, i.e. ...
    1. ... the Metafont sources
    2. The way to generate a font, described below, includes to load the zipped Metafont sources (and some scripts).

      But to inspect them immediately:

      The 3 Metafont sources are

      (Metafont will be called with a temporary source file, build by a 'generate' script.)


    3. ... the example text
    4. Only one example text - with one line for every sign, containing a full found 'text', as 'read' 1977 by I. Mahadevan, has been prepared: signline.tex.


    5. ... the scripts
    6. From font building scripts, resp. example building scripts you can navigate to the scripts.

      (Not every browser allows this navigation. In case of problems, you need to load and unzip sources and scripts to see the scripts. But they are of little interest anyway.)


  7. How to get the fonts?
    1. I only want to get a look on the signs or some texts ...
    2. There is no need then to load or generate fonts: Look at signs and texts - this pdf-file lists one text (in the reading of I.Mahadevan, "The Indus script", 1977) for every sign. It uses a 15 pt font.
      (The dvi file, as produced by TeX, has been converted into a pdf-file with the program dvipdfm. A dramatic loss in quality, I observed earlier in this process, seems to have vanished in using Adobe Acrobat Reader 4.0 to show the pdf-file.)


    3. Can I load ready-made fonts?
    4. I don't recommend that (because you need TeX anyway yet, and a TeX implementation encompasses one of Metafont), but it's possible:

      Load either the full set of (zipped) prepared fonts:

      all fonts prepared (~2 Mb)
      or load them individually (from 64 kb to 155 kb each):

      f02l8i15 variable width (not centered), two heights
      f41l8i10 f41l8i12 f41l8i14 variable width, one height
      f42l8i10 f42l8i12 f42l8i14 variable width, two heights
      f51l8i10 f51l8i12 f51l8i14 fixed width, one height
      f52l8i10 f52l8i12 f52l8i14 fixed width, two heights
      f11l8i10 f11l8i12 f11l8i14 fixed width (not centered), one height
      f12l8i10 f12l8i12 f12l8i14 fixed width (not centered), two heights

      The last number in the font names (10, 12, 14) is the font size.
      For more information on the (provisional!) font naming read font name structure.
      On the meaning of the font parameters, see below.

      After loading you need to unzip the tfm- resp. pk-files into one of the tfm- resp. pk-directories of your TeX implementation - see below.


    5. How to generate a font?
    6. For Microsoft windows and for unix environments some scripts have been prepared to support font generation.
      !! Sorry, I could not really check the unix variant !!

      The following steps will generate a new font (a working TeX implementation is assumed):

      1. Get the needed files by loading and unzipping sources and scripts.
      2. Decide on the font wanted('fff' named in the following) - see choose a font from the family.
      3. Enter one of the directories (in directory files/fonts/ of the unzipped sources) - dependent on your system and preference -:
        • 'scripts-win': if you use any variant of a Microsoft windows system (but see next points);
        • 'scripts-unix': if you use any variant of unix, including Linux;
        • 'scripts-winunix': if you work on a Microsoft windows system, having a primitive unix simulation too, which you prefer to use.
      4. Get a renamed copy of generate-example[.bat], its only line is a call of generate[.bat].
      5. Change the parameters in this file:
        • Replace the fontname "f02l8i15" by the name fff, choosen above at step 2.
        • The 2nd parameter becomes the mode-parameter of the Metafont program, in most cases don't change the value "localfont".
        • The 3rd parameter becomes the mag[nify]-parameter of the Metafont program, in most cases don't change the value "1".
      6. Execute this file. It will create three partial fonts (named by fff, appended with letter 'a', resp. 'b', 'c')
        • for the first 255 signs of I. Mahadevan's sign list,
        • for signs number 256 and above of this sign list,
        • for ASCII signs and preliminary signs,
        by feeding Metafont with a temporary starter file in each step.
      7. The 3 partial fonts, constituting together one font, are now ready to use.
        Six files (fffa.tfm, fffb.tfm, fffc.tfm and fffa.nnnpk, fffb.nnnpk, fffc.nnnpk) represent them. ('nnn' means a number, for example 600, depending on the mode-parameter choosen.) They are located in two directories, fixed at generation of your TeX-system. (See font directories.)

      (But if you only want some (or one) font variants to experiment with, to execute file generate-all[.bat] (or generate-example[.bat]) after steps 1 and 3 would be enough.)


    7. I want to generate a font, you didn't prepare for...
    8. Try to get it by modifying the source files (or scripts) from the preceding question (1st point).
      There is some hope, that you can do that successfully in some limited range, without to study Metafont.
      Contact me, if you fail, or if your problem seems to be a general interest one.


  8. Some hints on the fonts ...
    1. Explain font parameters: width, height, centered ...
    2. Only the variable width fonts are useable for continuous text.
      Fixed width fonts seem to be (and, maybe, they are) badly designed for a script with glyphs of very different width as the Indus script. Nevertheless they are provided here: they could help to show texts in a form, which enables the eye to detect vertical structures, similarities between texts, some lines apart.

      (In a fixed width font every sign gets the same width. [It is not hard, to set it by source text modification: Modify the sign_width setting ('if odd'-line) in file indusfont-parameter.mf.]
      In a variable width font the sign widths are different - they are determined by the 'natural' width of the glyphs, may be restricted to a maximal width. [To change this, modify the dx_list settings in file indusfont-param-ext.mf.])

      Some of the Indus signs are build from others by adding a kind of 'roof' above it, formally similar to the relation 'A' - 'Â' in European languages.
      So the most natural font would have two heights, one for roofed and one for unroofed signs. But sometimes it's better, to avoid excessive heights, - so fonts, which shrink roofed signs to the normal height have their use too.

      Every normal font has 'centered' signs, i.e. the glyphs are horizontally centered in their space (may be not mathematically centered, but optically).
      For the same reason, given above for fixed width fonts, we can build 'uncentered' fonts here: not the whole glyph, but that glyph part only, which seems to be the main part, is centered.
      For example, in using such an uncentered font, if two lines follow another, one containing a sign, showing a man, the other a sign, showing a man with a weapon in one hand, where both signs are holding the same position in their lines, then man and man part are aligned vertically.

      These three parameters and the font size are represented in the font name scheme, we use here.


    3. I get three fonts instead of one ...
    4. The implemented sign list has 419 signs. But Metafont can only produce fonts with no more than 256 signs. (There is a possibility for more signs, but the characteristics of the Indus script make it unusable.)
      So we need to split the font into two partial fonts at least. But then, to split into three instead of two doesn't complicate the work anymore - and it allows, to produce 'preliminary signs' and/or ASCII signs too.

      It would be nice, to hide this splitting from the user by reuniting the partial fonts. I tried to use the tools in TeX systems, intended to perform this task, - virtual fonts and Omega - but I failed to find a full and working tool set.
      Anyway the complication, springing out from this font splitting, isn't high. The need for the short macro set, starting with "\def \i#1#2#3{" in the example text, seems to be the full load, burden on to the user.

      (Nevertheless, I hope for better solutions in the future.)


    5. 'Preliminary signs' - what's that?
    6. For now and some time only one sign list has been implemented. What about working with texts, represented by another sign list?
      We can handle them in a restricted way, if we use signs from the implemented sign list, which are similar to the signs in the other list, and fill the gaps with 'preliminary signs', which give the sign names essentially.
      The sign with number 123 from A.Parpola's list could be represented for example by the string "a123", put inside of a rectangle.

      Even when all sign lists proposed have been implemented, there may be a purpose for 'preliminary signs', for example as placeholder of new signs.
      The text, such a sign is composed from, can use any ASCII sign, not letters and digits only.


  9. How to use it?
    1. Which other tools do I need?
    2. An implementation of TeX, including Metafont, is needed. To find such implementations look at the main tex site www.tug.org or on regional versions - some of them are listed in TeX.


    3. Where should I place the fonts?
    4. I'm not aware of a general answer - it's dependent from your TeX implementation and installation.

      At first you need to find out the (or: a good) home for fonts in your TeX environment.
      May be, you take it from the value, assigned to VARTEXFONTS in file texmf.cnf, anywhere in your system's TeX part.
      Or you search for directories, named ljfour, and take the initial part of the path found, up to 'fonts', as the fonts home wanted.
      (If you get more than one such path, take one of them, which seems to be free for extensions.)

      With - say - xxx/fonts as fonts home, I recommend to choose

      as the directories, to put tfm-, resp. pk-files into.

      "ljfour" is the 'mode', it should be replaced by the real 'mode', if it's not ljfour. ('mode' is a Metafont notion here, representing the output device. Don't change "ljfour", if you don't know this notion. [Or choose "modeless" instead, if you are in doubt.])
      "public" stands for the supplier of the font.
      "indus1" is my tentative recommendation for the 'typeface'. (May be, other fonts are coming ...)

      Another way: find it out by experiment: Generating a font, the TeX/Metafont implementation will normally place the generated tfm- and pk-files into subdirectories of your TeX environment. Take them.

      Last possibility: search your system for .tfm-files (and 888pk-files, with 888 representing any number). Take these directories or - better - analogous directories.

      (Fortunately, in any TeX system, not outdated totally, to choose an arbitrary directory below of xxx/fonts/tfm resp. xxx/fonts/pk should work. Nevertheless a good choose helps to maintain your system.)

      ((Sorry, the source text and script structure, I'm using here, doesn't fit well into the TeX systems, as structured nowadays. May be, a better solution will be found.))


    5. Fonts are produced automatically as needed, right?
    6. No, sorry. For some (may be bad) reasons, especially that there are no ready-made source texts, but temporarily produced ones only, you need to produce a font manually before use - see above.


    7. How to write a text, using one of the fonts?
    8. You need to write a TeX text.
      Eventually file signline.tex could be used as an example. In this text \i123 denotes the sign 123 (I. Mahadevan's numbering), \I123 denotes the same sign, in case it's a questionable reading.


    9. How to display such a text?
    10. TeX produces a dvi-file from the tex-file. There will be a tool to display such a file in the TeX environment too, for example dviwin.

      If you need to display the text in an environment, not containing TeX, you need to convert the dvi-file into another format. I used dvipdfm to do that, resulting in a pdf-file, which could be displayed with Adobe Acrobat Reader.


  10. Implementation comments
    1. It's a mess. You never heard of typography?
    2. You are right. It's of low typographical quality. But the task has been (and will be for some time) to get a font, we can work with. So beautiful fonts need to wait. Sorry.


    3. You don't like comments?
    4. No, I like comments. But I don't like commenting.
      Yes, the programming style could be better in some respects - commenting seems to be the most important.
      The extensive use of Metafont's macro facility to define own 'keywords' could be rightly criticized too.
      The use of this facility to replace very a lot of functions by expanded versions however is an act of self-defence against the second hardest lack of Metafont: the non-existence of a free transformable build-in notion for 'figures' from more than one path.
      (The hardest lack is the enforcement to export pixel oriented pictures.)


    5. You have implemented one sign list only. Why preparing for 26?
    6. Great progress in deciphering the Indus script could be made by an ingenious idea, by chance (as a new found bilingue) - or by systematic work, starting from the work, done already by a lot of scholars. To do that, existing readings have to be collected. For good reason, these readings use different sign lists, so some of them should be implemented. May be, in search for a deciphering or the 'ultimate' sign list, a simple way to experiment with different sign lists can be helpful too.
      All these sign lists share a lot of signs, others are similar. So it seems to be good, to produce them all from one source text only.


    7. For 5 signs there are variants implemented too. Why?
    8. Many signs occur in sign variants, differing in aspects, which could be essential. So in the long term it's not enough to display a sign by one glyph only, there is some need to display variants too. To write the source text in a way, allowing to implement sign variants too, I choosed to implement (as a test) some variants for five of the signs.


    9. Very naive discussions are introducing this variant handling ...
    10. Yes. Take them as first private thoughts of a newcomer, unknown to the matter.


    11. You have implemented the ASCII signs too. Why?
    12. Digits and small letters were intended to be used as constituents of preliminary signs: So sign 123 of, say, A.Parpola's sign list could be represented as 'a123' as long as this sign lacks its pictorial representation. But then I could not stop me, to implement all ASCII signs.


    13. A lot of your functions work for your use only, not in general.
    14. Right. The functions are written to do some special work, not as general tools. Nevertheless I hope most (nearly all?) functions will meet greater requirements too.


    15. Is there something, which could be used elsewhere?
    16. I found it very useful, to avoid the subtraction notation

      b - a
      and to use a vector like form as
      a -+ b
      instead: leaving a, going to b.


  11. Other questions
    1. When can we inspect your proposal on deciphering?
    2. Probably never. I'm not working on this theme.


    3. I have another question: ...?
    4. If you have questions, recommendations, etc., please mail me.
      (To answer immediately, I'm unable to promise. Sorry.)


e-mail
http://www.barataria.de
last change: 20. Sep. 2002