Unternehmensberatung Dieckmann

Home Report excerpts References DIHYPH -
hyphenation
Detailed program descriptions Price List
Languages
InDesign PlugIns Contact

 DIHYPH

 hyphenation

 Silbentrennung

DITECT

spelling-check 

Rechtschreibprüfung 

































































































































































































































































































































































































































DIHYPH Installation Description




Before you start installing the DIHYPH programs in/on your system,
please (!) proceed as follows:



- Never use "hynr" variable outside DIHYPH-programs !


- Read description "DIHYPH Interfacing and Installation".


- Read file DHTESTX.HLP or DIHYPH.HLP


- Upper-/lowercase file name writing is different on some systems !


- Define pathname of your choice for all DIHYPH runtime files
(DHEXnn.*, DHDFLT.CFG, DHCOnn, DHTAnn) in file array "dhpath[]".
Default pathname is \DIHYPH\ . All default values may be defined during runtime
by the user and TT-program (see: DHDFLT.*).
(TT = text/typesetting) (nn = language-no., see below !).

For DIHYPH-DH40 please first read file DH40READ.ME !


- Create "pathname" directory as defined, into which all runtime files
should be stored.


= printf - statements in C-sources are never active ( ! ) except for testing.


= C-source statements commented with "!!!!!"
may possibly have to be adapted to your system.
Function "coreleft( )" may be replaced by value 40000 !

On UNIX systems :
- end-of-line codes hex. '0D0A' have to be changed to hex. '0A'.
- end-of-file code has to be deleted.
- change following DHCFUNCT.C-expressions:

      sys\types.h       to      sys/types.h
      sys\stat.h        to      sys/stat.h
      nendchar = 2;     to      nendchar = 1;


- Compile all DIHYPH files.c on your system.


- Link compiled files.obj as shown in files DHTEST*.LNK and DMEXCAT.LNK.


- Create exception dictionaries by following command (nn = language-no.):

     DMEXCAT  nn  h  [b]  [EF]
              |   |   u    |
              |   |   8    |
              |   |   |    |_  Special exception file name (without extension)
              |   |   |
              |   |   |______  b = Byte-Code file.txt [default]
              |   |   |______  u = Unicode   file.ucd
              |   |   |______  8 = UTF-8     file.uc8
              |   |
              |   |__________  h = DIHYPH exception file 'DHEXnn.TXT'
              |   |__________  t = DITECT exception file 'DTEXnn.TXT'
              |
              |______________  Language-No. 01 - 99  


- Start testprogram as follows:
    DHTESTX   nn  <DHnn.TXT        or:

    DHTESTUC  nn  <DHnn.TXT    (for UNICODE   only !)

    DHTST8UC  nn  <DHnn.TXT    (for UTF8-Code only !)
(nn = language-No. 01 - 99) and compare your results with file DHnn.RES .
Results should be identical - otherwise you have a problem !


- Adapt your TT-program to automatically:
set DIHYPH default values as defined by the user
set DIHYPH calling-parameters
evaluate DIHYPH return-parameters.


- Do not strip out special characters
except TT-commands, because DIHYPH has long experience with handling
those characters. Otherwise, many good hyphenation points may not be found !
(see file: DHINT.RES !).


= Adapt program DHTCMD.C when words to be hyphenated contain
TT-commands. Most TT-commands may be skipped/ignored for hyphen-
ation except flying accent commands etc. !


- Replace program names DHTEST* in linkfile DHTEST*.LNK with your
TT-program names.
Now your program should be working with DIHYPH hyphenation(s).


= DHSORTD-module used in DHEXCAT contains the following sorting sequence:

    Longer words precede shorter words of same wordbase:    speciality
                                                    and:    special
    Colon ( . ) and comma ( , ) are highest codes:          textword
    ( .  is higher than every vowel)                        textw.rd
    ( ,  is higher than every consonant)                    text,ord

= these steps must only be observed if necessary (e.g. special coding)


Text-/typesetting system calls hyphenations as follows:
    rc = DHYPH (line, nn);
    if (rc == -1)   ...               /* Table "dhco??" or "dhta??" */
                                      /* missing or wrong !         */


After successful installation only following files are needed:

    dhco??      -files  ( Code tables       )
    dhta??      -files  ( Prog-tables       )
    dhex??.txt  -files  ( Exception-words   )
    dhex??.cat  -files  ( Except.catalogues )
    dhdflt.cfg  -file   ( Default setting   )
These files have to be stored in dictionary defined in array "dhpath"
(see: "dhdef.c") and they are read into RAM after their first call to DIHYPH.

Once installed every hyphenation quality improvement and/or every new
language added to the system is only a couple of disk files (s. above).
Compiling and linking of programs is no longer necessary.


The following C-library-functions are used in module DHCFUNCT.C :
C-Compiler Function:  Purpose: Function call:
 
malloc
coreleft
free
allocate memroy
get all remaining RAM (40000)
free previously allocated memory
DHMALL
free free all memory allocations DHFREEAL
open open file DHOPEN
fopen fopen file DHFOPEN
close
fclose
close file
fclose file
DHCLOSE
close
fclose
close / fclose all open files DHCLOSAL
rename rename file (old-new) DHRENAME
remove remove file DHDELET
tell see file size DHFSIZE
rewind
lseek
reset to start of file
set file pointer
DHSETF
fgetc
read
fgetc file
read file
DHREAD
fprintf
write
print to file
write file
DHWRITE


Program linkage

 Program File Meaning
 
DHTEST
DHTESTRD
Testmainline to be replaced by typesetting sources.
Dummy, as functions are not needed here.
DHDFLT Reset default values using config.file 'DHDFLT.CFG'.
DHEXCFH
DHEXCFS
DHCUPP
or:
DHEXSD

With exception-dictionary-program.


Without exception-dictionary-program.
DHCONTR
DHQUAL
DHDEF
DHINT
DHTCMD
DHSPARM
DHSUBR
DHCVOW
DHCCON
DHTLUP
DHTABI
DHNXLT
DHBUST
DHVEMI
DHFUG
DHENDR
DHCFUNCT
DHRCOF
DHRTAF
DHTADF
DHFRAM
DHNN
Language-independent modules:
DHGELOG
DHGEVOS
DHGEVOP
DHGEVOL
DHGECOL


needed for languages:
01, 02, 11, 14, 15, 16, 22, 25, 26, 33, 40, 43
DHLOG
DHVOS
DHVOL
DHCOL
DHLASP
needed for all other languages:
DHSLLOGD
or:
DHSLLOG
Dummy version of DHSLLOG (normal case)

Needed for languages 28 und 37 only

**)
For DIHYPH and DITECT together in one program, replace DHFRAM and
DTFRAM by DMFRAM, DHEXCFS and DTEXCFS by DMEXCFS and link
test program DMTEST (see: DMTEST.LNK) !



When different users are working with DIHYPH simultaneously e.g. in network,
configuration file "dhdflt.cfg" is on the server and so all values defined in
this file are automatically valid for everyone.
User-dependent values such as 'usef', 'csch', 'ftmp', 'minwl' and 'mexsw' should
be set as user-defined, via calling system, then these values must be erased from
the "dhdflt.cfg" file, otherwise these definitions would overwrite those set by
the calling-system !



Speed improvement


Frequent changes between languages:
Every time DIHYPH changes to another language or switches to and from DITECT,
the new program opens and reads some files into RAM, which will result in a
decrease in program speed.

To avoid this DIHYPH automatically tries to permanently hold all tables in RAM,
if sufficient free RAM is available.
To do this, program values 'tabspac', 'excspac' and 'exdspac' have to be set
correctly in the configuration file "dhdflt.cfg" as basic default values (DH00)
in order to be valid for all languages; but 'tabspac' and 'excspac' may, instead,
also be defined as language dependent (DHnn).
The first method needs more RAM as it allocates the same RAM size to every
language.
Using the second method, the values may be defined as tailor-made for every
language.
If there is insufficient RAM available, a message is written into the "dmessage"
error-file, and the last language tables are always overlaid by the new ones.

If DIHYPH and DITECT are linked together in one program-system, use
sources DMEXCFS and DMFRAM instead of DHEXCFS, DTEXCFS, DHFRAM
and DTFRAM (see link-file "DMTEST.LNK"), and set the variable 'hynr' to zero
(hynr = 0;) before switching from DITECT to DIHYPH (but only then) !

If files of more than one program are to be held permanently in RAM, all sources
must be compiled with the large compiler model !



Error messages

may only occur in case of incorrect installation !
They are stored into file "dmessage":


DHFOPEN: No free file index found ! Abort.
It is only possible to open a maximum of 15 files simultaneously.

"progname" -Error( 0): Can't open file : "filename"
Prog.module "progname" can't open file "filename".

"progname" -Error( 1): Insufficient memory allocation.
Progname= "dhrcof": Variable 'codspac' definition too small.
Progname = "dhrtaf ": Variable 'tabspac' definition too small.
Progname = "dhexcfh": Variable 'excspac' definition too small,
program continues without exceptions.

"progname" -Error( 2): 'tabspac' definition too small.
Set 'tabspac' to correct value !

"progname" -Error( 3): 'exdspac' definition too small.
Set 'exdspac' to correct value !

Checksum error in file: dhta.. !
Program module "dhrtaf" or "dhrtafal" has detected a checksum error when
reading binary file "dhta.." (.. =hyphenation-no.).
Make sure that this binary file remains unchanged during file-transfer or
READ-function. If you are sure that file "dhta.." is okay, but the error still
occurs, simply switch off this error-print command in source-code

DMFRAM-Error: Insufficient RAM to hold tables permanently.
There is insufficient space to load all the DIHYPH program tables into RAM.
The last language is always overlaid !