From: [EMAIL PROTECTED]
Subject: Re: Bullet points in japanese
Date: January 16, 2008 20:19:25 GMT+01:00
To: [EMAIL PROTECTED]
Just noticed that I originally replied to Akagi off-list, but I think
the info might be useful to other users as well, so...
On Jan 16, 2008, at 11:23, Akagi Kobayashi wrote:
Hi Akagi
Indeed your reply helps.
We build in English and in Japanese. The bullet point appears
correctly for
English; in Japanese it leaves a blank, not #.
We don't have Symbol font installed in layout/fonts; only Arial,
IPAGothic,
etc.
So, in English, is the bullet point using the Arial font (as
specified in
the gentext en.xml file as •)?
Can you give a little more context?
AFAICT, I see two possible scenarios:
a) the stylesheet determines only the codepoint to use for list-
bullets based on 'en.xml' or 'ja.xml'
Japanese -> ●
English -> •
b) the stylesheet determines both font-family and codepoint based on
those two files
If the choice of font-family is determined in the stylesheet, then it
becomes possible to have both languages render correctly, even with
FOP's current limitation.
If I changed Symbol to IPAGothic - like below - is there a risk of
skewing
up the English output?
Possibly. I don't have the IPAGothic font to test with, but if it
does not contain a glyph for both codepoints, then you risk
So, maybe what you have below needs to be supplemented with an
xsl:choose, that creates a font-family attribute with the right
value. I'm not sure how your stylesheet can reference the language
property, but let's say that's represented by '@xml:lang', then:
<!-- Fallback font used for Unicode symbols such as right arrow -->
<xsl:param name="symbol.font.family"
select="'IPAGothic,Symbol,ZapfDingbats,LucidaUnicode'" />
This will make sure that all templates that use this parameter, will
use that font-family list.
Only, as mentioned, FOP would eventually only use the 'IPAGothic' font.
Maybe you would need something like:
<xsl:param name="symbol.font.family">
<xsl:choose>
<xsl:when test="starts-with(@xml:lang, 'en')">'Arial'</xsl:when>
<xsl:when test="starts-with(@xml:lang, 'ja')">'IPAGothic'</
xsl:when>
...
</xsl:choose>
</xsl:param>
<xsl:template match="[EMAIL PROTECTED] = 'symbolfont']">
<fo:inline font-family="IPAGothic">
<xsl:call-template name="inline.charseq" />
</fo:inline>
</xsl:template>
This template is unrelated to the above parameter. It would force all
<symbol role="symbolfont"> nodes in the source document to use the
IPAGothic font, so depending on the context, it could be safer/
cleaner to make it use that xsl:param.
<xsl:template match="[EMAIL PROTECTED]'symbolfont']">
<fo:inline font-family="{$symbol.font.family}">
<xsl:call-template name="inline.charseq" />
</fo:inline>
</xsl:template>
!!! Be careful if the parameter is global, and the fo:inline could be
in a different language. In that case, it may become necessary to
redo the xsl:choose locally in the template to obtain the correct
effect.
HTH!
Andreas
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]