[Fontconfig] Configuration file for Persian fonts

Behdad Esfahbod behdad at cs.toronto.edu
Wed Nov 30 20:52:58 PST 2005


On Wed, 2 Nov 2005, Patrick Lam wrote:

> Hi Behdad,
>
> I noticed that this config file seems to have fallen into the bit
> bucket.  It seems to me that putting it in conf.d seems to be the right
> thing; would you like me to commit it there?  Or do you want to finish
> it up?

Hi Pat,

I'm attaching a revised version of the config file for Persian
fonts from Sharif FarsiWeb, Inc. (http://farsiweb.inf/)  Yes,
putting them into conf.d sounds very good.  Are you going to turn
them on by default (preceded by digits)?

BTW, fc-cat ~/.fonts.cache-2 generates no output here.  The file
is there and seems to be filled.

> pat

Thanks,

--behdad
http://behdad.org/

"Commandment Three says Do Not Kill, Amendment Two says Blood Will Spill"
	-- Dan Bern, "New American Language"
-------------- next part --------------
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
  fonts-persian.conf
  To configure Persian fonts from The FarsiWeb Project.

  Copyright (C) 2005  Sharif FarsiWeb, Inc. <license at farsiweb.info>

  Permission to use, copy, modify, distribute, and sell this software and its
  documentation for any purpose is hereby granted without fee, provided that
  the above copyright notice appear in all copies and that both that
  copyright notice and this permission notice appear in supporting
  documentation, and that the name of Sharif FarsiWeb, Inc. not be used in
  advertising or publicity pertaining to distribution of the software without
  specific, written prior permission.  Sharif FarsiWeb, Inc. makes no
  representations about the suitability of this software for any purpose.  It
  is provided "as is" without express or implied warranty.

  SHARIF FARSIWEB, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  PERFORMANCE OF THIS SOFTWARE.

  ChangeLog:
    2005-04-03  Behdad Esfahbod:  Initial revision.
    2005-10-09  Behdad Esfahbod:  Turned off back-slant and Tahoma sections.
    2005-11-30  Behdad Esfahbod:  Set Titr susbtitution size to 24 points.

  Todo:
    Add generic font "fantasy".  Add some fonts into that category.
    Maybe add a "cursive" generic font.
  -->
<fontconfig>


<!--
  We don't want weak bindings.  So got to use the syntactical expansion
  of alias tag to do binding=same :(.  Please support that in alias.
  -->


<!-- Deprecated fonts are discouraged -->

	<!-- Nesf[2] is officially deprecated and has problematic tables -->
	<match>
		<test name="family">
			<string>Nesf</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Nesf2</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Nesf2</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Persian_sansserif_default</string>
		</edit>
	</match>

	<!-- Tahoma looks awful (TURNED-OFF) -->
	<!--match>
		<test name="family">
			<string>Tahoma</string>
		</test>
		<edit name="family" mode="prepend" binding="same">
			<string>Persian_sansserif_default</string>
		</edit>
	</match-->

<!-- Name changes and spelling variant aliases -->

	<!-- Changed due to trademark problems -->
	<match>
		<test name="family">
			<string>Nazanin</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Nazli</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Lotus</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Lotoos</string>
		</edit>
	</match>

	<!-- Changed due to transcription orthography -->
	<match>
		<test name="family">
			<string>Yaqut</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Yaghoot</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Yagut</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Yaghoot</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Yaghut</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Yaghoot</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Traffic</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Terafik</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Ferdowsi</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Ferdosi</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Fantezy</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Fantezi</string>
		</edit>
	</match>


<!-- Classify fonts. -->

	<!-- Persian_title class -->
	<match>
		<test name="family">
			<string>Jadid</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_title</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Titr</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_title</string>
		</edit>
	</match>

	<!-- Persian_fantasy class -->
	<match>
		<test name="family">
			<string>Kamran</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Homa</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Persian_fantasy</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Homa</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Kamran</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Persian_fantasy</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Fantezi</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_fantasy</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Tabassom</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_fantasy</string>
		</edit>
	</match>

	<!-- Persian_square class -->
	<match>
		<test name="family">
			<string>Arshia</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Nasim</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Elham</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Farnaz</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Farnaz</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Elham</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
	</match>
	<match>
		<test name="family">
			<string>Sina</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
	</match>

<!-- Font ordering per class -->

	<!-- Persian_title class -->
	<match>
		<test name="family">
			<string>Persian_title</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_serif</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Jadid</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Titr</string>
		</edit>
	</match>

	<!-- Persian_fantasy class -->
	<match>
		<test name="family">
			<string>Persian_fantasy</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_square</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Tabassom</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Fantezi</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Kamran</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Homa</string>
		</edit>
	</match>

	<!-- Persian_square class -->
	<match>
		<test name="family">
			<string>Persian_square</string>
		</test>
		<edit name="family" mode="append" binding="same">
			<string>Persian_serif</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Sina</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Nasim</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Farnaz</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Elham</string>
		</edit>
		<edit name="family" mode="append" binding="same">
			<string>Arshia</string>
		</edit>
	</match>

<!-- Register the fonts that we actually do have -->

	<match target="font">
		<test name="family">
			<string>Elham</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Homa</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
		<edit name="embolden">
			<bool>true</bool>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Koodak</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
		<edit name="embolden">
			<bool>true</bool>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Nazli</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Roya</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Terafik</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
	</match>

	<match target="font">
		<test name="family">
			<string>Titr</string>
		</test>
		<edit name="foundry">
			<string>farsiweb</string>
		</edit>
	</match>


<!-- Our fonts should oblique to the other side (TURNED-OFF) -->

	<match target="font">
		<test name="foundry">
			<!--string>farsiweb</string-->
			<string>TURNED-OFF</string>
		</test>
		<test name="foundry">
			<string>farsiweb</string>
		</test>
		<!-- check to see if the font is roman -->
		<test name="slant">
			<const>roman</const>
		</test>
		<!-- check to see if the pattern requested non-roman -->
		<test target="pattern" name="slant" compare="not_eq">
			<const>roman</const>
		</test>
		<!-- multiply the matrix to slant the font -->
		<edit name="matrix" mode="assign">
			<times>
				<name>matrix</name>
				<matrix><double>1</double><double>-0.2</double>
					<double>0</double><double>1</double>
				</matrix>
			</times>
		</edit>
		<!-- pretend the font is oblique now -->
		<edit name="slant" mode="assign">
			<const>oblique</const>
		</edit>
	</match>


<!--
  We can't hint our fonts well, so turn off hinting.
  Moreover, the bitmaps we have designed (well, they
  have designed), suck, so disable them too.
  -->

	<match target="font">
		<test name="foundry">
			<string>farsiweb</string>
		</test>
		<edit name="autohint">
			<bool>false</bool>
		</edit>
		<edit name="hinting">
			<bool>false</bool>
		</edit>
 		<edit name="rh_prefer_bitmaps">
 			<bool>false</bool>
 		</edit>
	</match>


<!-- Alias our fonts to common families -->

	<!-- Persian serif fonts -->
	<alias>
		<family>serif</family>
		<accept>
			<family>Nazli</family>
			<family>Lotoos</family>
			<family>Mitra</family>
			<family>Ferdosi</family>
			<family>Badr</family>
			<family>Zar</family>
		</accept>
	</alias>

	<!-- Persian sans-serif fonts -->
	<alias>
		<family>sans-serif</family>
		<accept>
			<family>Roya</family>
			<family>Koodak</family>
			<family>Terafik</family>
		</accept>
	</alias>

	<!-- Persian monospace fonts -->
	<alias>
		<family>monospace</family>
		<accept>
			<!-- Not really monospace -->
			<family>Terafik</family>
		</accept>
	</alias>


<!-- Use Titr in titles -->

	<!-- Both serif... -->
	<match>
		<test name="family">
			<string>serif</string>
		</test>
		<test name="weight" compare="more_eq">
			<int>200</int>
		</test>
		<test name="size" compare="more_eq">
			<double>24</double>
		</test>
		<edit name="family" mode="prepend">
			<string>Titr</string>
		</edit>
	</match>

	<!-- and sans-serif. -->
	<match>
		<test name="family">
			<string>sans-serif</string>
		</test>
		<test name="weight" compare="more_eq">
			<int>200</int>
		</test>
		<test name="size" compare="more_eq">
			<double>24</double>
		</test>
		<edit name="family" mode="prepend">
			<string>Titr</string>
		</edit>
	</match>

	<!-- and more. -->
	<match>
		<test name="family">
			<string>Persian_sansserif_default</string>
		</test>
		<test name="weight" compare="more_eq">
			<int>200</int>
		</test>
		<test name="size" compare="more_eq">
			<double>24</double>
		</test>
		<edit name="family" mode="prepend" binding="same">
			<string>Titr</string>
		</edit>
	</match>


<!-- Default substituted for deprecated sans-serif fonts -->

	<match>
		<test name="family">
			<string>Persian_sansserif_default</string>
		</test>
		<edit name="family" mode="assign" binding="same">
			<string>Roya</string>
		</edit>
	</match>

</fontconfig>


More information about the Fontconfig mailing list