OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Font problem - need 2 font files in Docbook


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
bobs@sagehill.net


----- Original Message ----- 
From: "Ron Catterall" <ron@catterall.net>
To: "Bob Stayton" <bobs@sagehill.net>; "docbook-apps" 
<docbook-apps@lists.oasis-open.org>
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
>> bobs@sagehill.net
>>
>>
>> ----- Original Message ----- From: "Ron Catterall" <ron@catterall.net>
>> To: "docbook-apps" <docbook-apps@lists.oasis-open.org>
>> 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.
>>> ron@catterall.net
>>> http://catterall.net
>>>
>>
>>
>>
>
> -- 
> Ron Catterall Ph.D. D.Sc.
> ron@catterall.net
> http://catterall.net
> 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]