Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ttfm.sh(1)		    General Commands Manual		    ttfm.sh(1)

NAME
       ttfm.sh - TrueType Font Manager

SYNOPSIS
       ttfm.sh command [ module	] [ font1 font2	...  ]

DESCRIPTION
       TTFM  (TrueType	Font  Manager) consists	of a TrueType font parser, and
       several modules that help managing TrueType fonts in  various  applica-
       tions.	Users can then use ttfm.sh (which will call those modules), to
       execute simple commands like font adding, removing, list, and so	on.

       command can be one of the followings:

       --add
	   Add fonts.  The command  accepts  multiple  fonts  specied  by  the
	   font's filename.

       --initm
	   Initial selected modules. (Deprecated)

       --list
	   List	installed fonts.  No font arguments are	needed.

       --modules
	   List	all avaiable modules.  No font arguments are needed.

       --remove
	   Remove installed fonts.  Accepts multiple fonts.

       --setdefault
	   Set	the  following	font as	the default font(Ming).	 Only one font
	   argument is allowed.

       --setdefault_kai
	   Set the following font as default font(Kai).	 Only one  font	 argu-
	   ment	is allowed.

AVAIABLE MODULES
       Currently these modules are available:

       abiword
	   For	AbiWord	 0.7.12	 and  above.   It  depends  on modules of both
	   XFree86 and Ghostscript.

       chitex
	   For ChiTeX, a TeX/LaTeX environment that can	handle both  BIG5  and
	   GB encodings.  Broken in FreeBSD.

       ghostscript6
	   For Aladdin Ghostscript 6.50.  It can manage	TrueType fonts and CID
	   fonts(limited functionalities).  Ghostscript	must be	patched	to use
	   TrueType fonts. See the following for more details.

       ttf2pk
	   Generate  pk	 (packed raster) and tfm (TeX font metrics) files from
	   TrueType fonts.  These files	can then be used in the	CJK LaTeX  en-
	   vironment.  Broken under FreeBSD.

       xfreetype
	   For XFree86's freetype backend, which is Xfsft in 3.x, and freetype
	   module in 4.x.

       xttfm-tcl
	   For XFree86 3.3.x X-TrueType	server.	 Written in TCL.

       xttfm
	   For	XFree86	 X-TrueType  server,  both 3.3.x or 4.x.  Bourne shell
	   script.

EXAMPLES
       ttfm.sh --modules
	   List	all available modules in system.

       ttfm.sh --add xttfm <path>/*.[TtTtCcFf]
	   Install all TrueType	fonts in <path>, using xttfm module.

       ttfm.sh --setdefault xttfm <path>/good_ming.ttf
	   Set <path>/good_ming.ttf as xttfm module's default font(Ming).

       ttfm.sh --setdefault_kai	xttfm <path>/good_kai.ttf
	   Set <path>/good_kai.ttf as xttfm module's default font(Kai).

       ttfm.sh --list xttfm
	   List	all fonts installed by xttfm.ttfm module.

       ttfm.sh --remove	xttfm.ttfm bkai00mp.ttf
	   Remove bkai00mp.ttf(from the	above list), installed by xttfm.ttfm.

       ttfm.sh --add ghostscript6 /somewhere/bsmi00lp.ttf
	   Install /somewhere/bsmi00lp.ttf in Ghostscript, using  ghostscript6
	   module.

       ttfm.sh --remove	ghostscript6 bsmi00lp.ttf
	   Remove bsmi00lp.ttf,	using ghostscript6 module.

       ttfm.sh --remove	ghostscript6 ArphicMingB5-Regular
	   Remove  ArphicMingB5-Regular(which  is  equivalent  to bsmi00lp.ttf
	   above, obtained from	"ttfm.sh --list	ghostscript6"),	 using	ghost-
	   script6 module.

       ttfm.sh --add abiword /WIN98/FONTS/MINGLIU.TTC
	   Install  Windows  98's  MINGLIU.TTC	high quality font for AbiWord.
	   This	has the	chain effect that MINGLIU.TTC will be  also  installed
	   by  xttfm  and  ghostscript6	modules, since a fully CJK functioning
	   AbiWord needs both XFree86 and Ghostscript support.	See  the  fol-
	   lowing for additional details.

       ttfm.sh --setdefault abiword /WIN98/FONTS/MINGLIU.TTC
	   Set MINGLIU.TTC as AbiWord's	default	font(Ming).  This also has the
	   chain  effect that MINGLIU.TTC will be also set as xttfm and	ghost-
	   script6 modules' default fonts(Ming).  See the following for	 addi-
	   tional details.

       ttfm.sh --add <path>/*.ttf
	   Install  <path>/*.ttf,  using  every	 module.  However, usages like
	   "--add *.ttf" and "--remove *.ttf" are reserved only	 for  backward
	   compatibility.   Since  the	dependency between modules will	become
	   more	complex, whether "--add	*.ttf" has chain effects  totally  de-
	   pends  on  individual  applications.	  It's strongly	suggested that
	   users specify which module to invoke	explicitly, rather than	 doing
	   a global installation/removal.

HOW TO WRITE A TTFM MODULE
       It's  straightforward  to make a	new TTFM module.  A TTFM module	can be
       in any format, ie. it could be a	shell or Perl or Python	 script,  a  C
       program,	or even	an Assembly if you like.  Any program is a TTFM	module
       as long as it accepts the following arguments:

	      --add [font ...]
	      --list
	      --remove [font ...]
	      --setdefault [font]
	      --setdefault_kai [font]

       The  meanings  should  be clear by their	names, and the above "DESCRIP-
       TION" section.  The ttfm.sh will	call a TTFM  module  in	 only  one  of
       these forms.

       Note  that there's no font format involved in this requirement, meaning
       that a TTFM module can have nothing to do with TrueType	at  all.   For
       example,	 an  independent  VFGhostscript's bdf manager can be used as a
       TTFM module, once it accepts the	above arguments(maybe as it own	 argu-
       ments' subset).

       If  a  TTFM  module tries to get	information from a TrueType font, then
       ttfinfo(1) should be used.  Although it lacks some  advanced  features,
       like CJK	entries, it's far better than most programs.

SEE ALSO
       AbiWord's CJK support:
	   http://www.hj.webprovider.com/develope/index.html, and
	   http://www.abisource.com/mailinglists/abiword-dev/00/Octo-
	   ber/0398.html

       Adobe Technical Notes:
	   http://partners.adobe.com/asn/developer/technotes.html.
	   This	 page contains many excellent technical	notes, specifications,
	   supplements,	and errata for Adobe's font technology.

       ChiTeX
	   http://www.math.ncu.edu.tw/yih/

       cwTeX
	   http://ceiba.cc.ntu.edu.tw/tmwu/index.htm

       Ghostscript 6's TrueType	patch:
	   http://www.aihara.co.jp/~taiji/tops/

       VFlib:
	   http://TypeHack.aial.hiroshima-u.ac.jp/VFlib/

       X-TrueType(For XFree86 3.3.x):
	   http://X-TT.dsl.gr.jp

       Xatm(For	CID fonts used in X 3.3.x):
	   http://www.netlab.is.tsukuba.ac.jp/~yokota/izumi/Xatm/xatm_e.html

       XFree86 4.x:
	   See xc/programs/Xserver/hw/xfree86/doc/README.fonts.
	   It contains comprehensive instructions on how to  install  TrueType
	   fonts  for  X-TT  & X-FreeType backend, and CID fonts under XFree86
	   4.x.

TODO
       About modules(in	the order of precedence):

       vfghostscript55.ttfm
	   For VFlib + Ghostscript 5.5.

       Fix chitex.ttfm and ttf2pk.ttfm under FreeBSD.
	   It means making a FreeBSD port of ChiTeX,  and  modifying  existing
	   CJK	port.	It's also possible that	ChiTeX,	CJK, cwTeX can all co-
	   exist.

       cwtex.ttfm
	   For cwTeX, a	BIG5 TeX/LaTeX system of ultra-high quality.

       xcid.ttfm
	   Handling CID	fonts under XFree86, which is Xatm in 3.3.x,  built-in
	   in 4.x.

       Clearer relationship between modules
	   With	 more  and more	modules, dependencies between modules will be-
	   come	a problem.  For	example,  which	 actions  have	chain  effects
	   (like AbiWord) should be clarified.

       About ttfinfo(also in the order of precedence):

       Use FreeType 2.
	   It supports more font types like OpenType or	CID.

       Support CJK font	entries
	   Although  TrueType  fonts can have CJK fontname entries, like in MS
	   Windows, TTFM cannot	use this feature currently.  Since many	 indi-
	   vidual  CJK	TrueType  fonts	have bogus English vendor and face en-
	   tries(like -misc-unknown- in	XLFD), users can  be  easily  confused
	   with	which font to use, if proper CJK font names are	not given.

       GUI interface
	   It's	 simple	to write a X client to have basic functions, since all
	   the dirty work are done by ttfm.sh or modules.  However,  it	 would
	   not	be trivial to manage CJK fonts simultaneously in a single ses-
	   sion.

       Support CID
	   When	TTFM supports FreeType 2, support for CID fonts	would be triv-
	   ial.	 However, all CID fonts	available now as free are released  by
	   Adobe, so this functionality	probably won't be widely tested.

       L10N font face names
	   Currently,  TTFM  sets both Ming and	Kai regardless the encoding of
	   TrueType fonts.  But	usually	each country has  its  own  face  name
	   convention,	eg.  "Ming"  in	 Taiwan,  "Song" in China, "Mincho" in
	   Japan, and "Munhwa" in Korea.  TTFM's "--setdefault"	and  "--setde-
	   fault_kai" should be	localized to suite users' needs.

NOTES
       TODOs or	BUGs that are not related to TTFM.

       BIG5-encoded TrueType fonts
	   Many	 applications  can only	handle modern Unicode-encoded TrueType
	   fonts, eg.  XFree86 (both 3.x and 4.x) has  problems	 with  certain
	   types  of  BIG5 TTFs, and Alladdin Ghostscript 6 can't read them at
	   all.	 Sometimes the problem may be just a wrong  encoding  ID,  and
	   others are due to the lack of BIG5 tables.

	   The	same may happen	to other legacy	fonts, but the author has only
	   BIG5	TTFs at	hand.  If users	encounter  the	same  problem,	either
	   switch to newer TTFs, or contact the	author would be	fine.

       CJK XLFD	fields
	   XLFD	 (X Logical Font Description) is the standard X	Window uses to
	   identify	  fonts,       eg.	  -adobe-courier-medium-r-nor-
	   mal--12-120-75-75-m-70-iso8859-1.   The  standard  says  that  each
	   field allows	ISO 8859-1 characters(except the '-' character,	 which
	   is used as field separater),	so it's	possible to use	CJK characters
	   in  the  face  field, just like in MS Windows.  But it seems	that X
	   protocol converts byte orders, maybe	using the htonl() family, when
	   handling fonts.  It will be a great challenge to modify X libraries
	   to support multibyte	XLFD.

AUTHORS
       Yuan-Chung Cheng	<platin@linux.org.tw>
	   Main	program, ttf2pk.ttfm, and xttfm-tcl.ttfm.

       Chih-Wei	Huang <cwhuang@linux.org.tw>
	   ttfm.sh, chitex.ttfm, ttf2pk.ttfm, and xttfm-tcl.ttfm.   CLE	 main-
	   tainer.

       Jing-Tang Keith Jang <keith@FreeBSD.org>
	   abiword.ttfm,  ghostscript6.ttfm,  xfreetype.ttfm,  and xttfm.ttfm.
	   FreeBSD maintainer.

								    ttfm.sh(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ttfm.sh&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help