While looking into the support for the Soft Hyphen the area of 
hyphenation combined with kerning is causing me trouble.

Aside 1: our fonts page claims we don't support kerning but I believe we 
do.

Aside 2: Our tests are based on setting the base14kerning flag. I don't 
think this flag is documented anywhere on the fop site. Can it be set 
in the config file?

I wrote a simple test under fop 0.93 and noticed that the ipd of text 
areas with the combination of kerning and hyphenation are not correctly 
calculated (at least I think so). With the Base 14 sans-serif font at 
20pt we get:

Word "vanda" alone on a line: ipd=53980
Word "vandavanda" alone on a line: ipd=107560 (53980+53980-400)
Word "vandavandavanda" alone on a line: ipd=161140 
(53980+53980+53980-400-400)
If we now take the word "vandavandavandavanda" and get it hyphenated 
after the 3rd "vanda" the line containing "vandavandavanda-" reports an 
ipd of 168800 which is incorrect. I think it should be 161140 + 6660 
(width of hyphen) = 167800.

Before I investigate this more can someone else check this and see if 
they get similar results.

I have attached the test case I have constructed.

Manuel



<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- $Id:$ -->
<testcase>
  <info>
    <p>
      This test checks some kerning plus hyphenation rules.
    </p>
  </info>
  <cfg>
    <base14kerning>true</base14kerning>
  </cfg>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:svg="http://www.w3.org/2000/svg"; language="en">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="normal" page-width="2.5in" page-height="10in" margin="5pt">
          <fo:region-body/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="normal" white-space-collapse="true">
        <fo:flow flow-name="xsl-region-body" font-size="10pt">
          <fo:block background-color="yellow" margin="0pt 0pt 3pt 0pt" font-size="20pt">
            vanda
          </fo:block>
          <fo:block background-color="yellow" margin="0pt 0pt 3pt 0pt" font-size="20pt">
            vandavanda
          </fo:block>
          <fo:block background-color="yellow" margin="0pt 0pt 3pt 0pt" font-size="20pt">
            vandavandavanda
          </fo:block>
          <fo:block background-color="yellow" margin="0pt 0pt 3pt 0pt" font-size="20pt" hyphenate="true">
            vandavandavandavandavandavandavanda
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
      <eval expected="53980" xpath="//flow/block[1]/lineArea[1]/text/@ipd"/>
      <eval expected="107560" xpath="//flow/block[2]/lineArea[1]/text/@ipd"/>
      <eval expected="161140" xpath="//flow/block[3]/lineArea[1]/text/@ipd"/>
      
      <eval expected="3" xpath="count(//flow/block[4]/lineArea)"/>
      <eval expected="167600" xpath="//flow/block[4]/lineArea[1]/text/@ipd"/>
      <eval expected="167600" xpath="//flow/block[4]/lineArea[2]/text/@ipd"/>
      <eval expected="53980" xpath="//flow/block[4]/lineArea[3]/text/@ipd"/>
      
  </checks>
</testcase>

Reply via email to