OK, the setting of font-family in the 'root.properties' attribute-set explains it. In fo/param.xsl, there is this:

<xsl:attribute-set name="root.properties">
 <xsl:attribute name="font-family">
   <xsl:value-of select="$body.fontset"/>
 </xsl:attribute>
 ...

So you were not overriding the value of 'body.fontset', but just its usage in 'root.properties'. When you removed that from your customization, you got the value of 'body.fontset', which includes the symbol fonts. You don't need to remove the entire 'root.properties' attribute-set from your customization, just the 'font-family' member.

Regarding Arial Unicode MS, I also learned it was not a free download any more, and so I'm going to update that information in the next edition of my book.

Bob Stayton
Sagehill Enterprises
[email protected]


----- Original Message ----- From: "Ron Catterall" <[email protected]> To: "Bob Stayton" <[email protected]>; "docbook-apps" <[email protected]>
Sent: Monday, June 07, 2010 8:06 AM
Subject: Re: [docbook-apps] Font problem - need 2 font files in Docbook


Thanks Bob.  I looked at the fo output and found

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";
font-family="Cardo" font-size="11pt"
    text-align="justify" line-height="1.3"
font-selection-strategy="character-by-character"
    line-height-shift-adjustment="disregard-shifts"
writing-mode="lr-tb" language="en">

So the 'body.fontset' parameter must have been over-ridden.

>> In my Docbook customization file I have:
>>
>> <xsl:param name="body.font.family" select="'Cardo'" />
>> <xsl:param name="body.font.size" select="'11pt'" />
>> <xsl:param name="title.font.family" select="'Cardo'" />
>> <xsl:param name="footnote.font.size" select="'90%'" />
>> <xsl:param name="footnote.font.family" select="'Cardo'" />
>> <xsl:param name="alignment" select="'justify'" />

I have tried adding
<xsl:param name="symbol.font.family" select="'Symbol,Cardo'"/>
and got the attached error message (Oxygen 11.2)

Finally I found that I had elsewhere in my customization file:

<xsl:attribute-set name="root.properties">
  <xsl:attribute name="font-family">Cardo</xsl:attribute>
  <xsl:attribute name="font-size">11pt</xsl:attribute>
  <xsl:attribute name="text-align">justify</xsl:attribute>
</xsl:attribute-set>

and when I removed this all was well, all symbols showed up correctly..
I don't see how this could interact, but apparently it did.

Thanks anyway Bob

Ron


A trivial point,
> http://www.sagehill.net/docbookxsl/SpecialChars.html#fontFamilyList
includes
"the Arial Unicode MS font can be downloaded for free."
but:
On 2005-04-11, Ascender Corporation announced it had entered an
agreement with Microsoft which enables Ascender to distribute Microsoft
fonts, including the Windows Core Fonts, the Microsoft Web Fonts and the
many multilingual fonts currently supplied by Microsoft. Called Arial
Unicode, it is sold for approximately $99 per 5 users.
The font is also apparently licensed to Apple, who announced on October
16, 2007 that Mac OS X v10.5 ("Leopard"), would be bundled with Arial
Unicode.
Unfortunately I'm still on 10.4.11
Also I've been unable to find 'yogh' in the Ascender Arial fontset.

Bob Stayton wrote:
This is not a restriction of DocBook.  Normally the font-family property
in XSL-FO output is populated with a comma-separated list of fonts, not
a single font.  The 'body.fontset' internal parameter is used for body
text, and it is set in fo/pagesetup.xsl by combining the
body.font.family value and the symbol.font.family value, as described here:

http://www.sagehill.net/docbookxsl/SpecialChars.html#fontFamilyList

So this should already be working for you.  Can you take a peek inside
your FO output and see what the value of the font-family property on
fo:root looks like?  It should include your body font and symbol font in
the list.  If you are overriding the 'body.fontset' parameter, then you
may not get a list.

When XEP looks for a character, if it can't find one in the body font,
it should then look in the next font in the list.  That is, if
font-selection-strategy="character-by-character" is also set (it is by
default, in the 'root.properties' attribute set in param.xsl).

Bob Stayton
Sagehill Enterprises
[email protected]


----- Original Message ----- From: "Ron Catterall" <[email protected]>
To: "docbook-apps" <[email protected]>
Sent: Saturday, June 05, 2010 8:00 AM
Subject: [docbook-apps] Font problem - need 2 font files in Docbook


Am I missing something or is this a real restriction in Docbook

In text body I have two symbols which (as far as I can see) never
occur in the same font file - specifically the old english yogh
(&#x021D;) and the logical symbol implies (&#x21D2; ISOtech suggests
using this for 'implies').  (Gentium say that eventually they will
both be included, but  not yet.)

Using XEP 4.18, in my xep.xml file I have:

      <font-family name="Symbol">
        <font><font-data afm="Symbol.afm"/></font>
      </font-family>

which contains 'implies' (&#x21D2;) and is built in to Acrobat and

      <font-group xml:base="file:/Library/Fonts/" label="TrueType"
embed="true">
      <font-family name="Cardo">
        <font><font-data ttf="Cardo98s.ttf"/></font>
      </font-family>

which I embed in the PDF output and which contains 'yogh' (&#x021D;)

In my Docbook customization file I have:

<xsl:param name="body.font.family" select="'Cardo'" />
<xsl:param name="body.font.size" select="'11pt'" />
<xsl:param name="title.font.family" select="'Cardo'" />
<xsl:param name="footnote.font.size" select="'90%'" />
<xsl:param name="footnote.font.family" select="'Cardo'" />
<xsl:param name="alignment" select="'justify'" />

in the PDF output 'yogh' appears correctly, but 'implies' does not.

If I reset body.font.family to the Docbook default (eliminating the
above customization) I get the 'implies' (&#x21D2;) correctly, but
lose the 'yogh' (&#x021D;)

I have entities defined and know that the entity file is accessed.

<!ENTITY  yogh "&#x021D;">    <!--   lower case yogh -->
<!ENTITY  rArr "&#x21D2;">    <!-- rightwards double arrow -->

I cannot see any way in Docbook to change the body.font.family for a
single body character, or to specify a secondary body.font.family to
be used if a character is not found in the first one.


--
Ron Catterall Ph.D. D.Sc.
[email protected]
http://catterall.net





--
Ron Catterall Ph.D. D.Sc.
[email protected]
http://catterall.net



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to