<td align="center">
<a href="http://www.w3.org/TR/xsl/slice7.html#font-size">§7.8.4</a>
</td>
- <td class="yes">
- yes
- </td>
<td class="partial">
partial
</td>
+ <td class="yes">
+ yes
+ </td>
<td align="left">
<ul>
<li>
- [Trunk] TODO <absolute> font sizes
- </li>
- <li>
- [Trunk] TODO <relative> font sizes
+ [0.20.5] "smaller" and "larger" not implemented
</li>
</ul>
</td>
<td align="center">
<a href="http://www.w3.org/TR/xsl/slice7.html#font-style">§7.8.7</a>
</td>
- <td class="yes">
- yes
+ <td class="partial">
+ partial
</td>
<td class="yes">
yes
</td>
- <td align="center">
-
+ <td align="left">
+ <ul>
+ <li>
+ [0.20.5] "normal" is not supported
+ </li>
+ </ul>
</td>
</tr>
<tr>
<td align="center">
<a href="http://www.w3.org/TR/xsl/slice7.html#font-weight">§7.8.9</a>
</td>
- <td class="yes">
- yes
+ <td class="partial">
+ partial
</td>
- <td class="yes">
- yes
+ <td class="partial">
+ partial
</td>
- <td align="center">
-
+ <td align="left">
+ <ul>
+ <li>
+ [0.20.5] "normal", "bolder" and "lighter" are not supported
+ </li>
+ <li>
+ [Trunk] TODO <relative> font weights
+ </li>
+ </ul>
</td>
</tr>
<tr>
import org.apache.fop.fo.properties.CorrespondingPropertyMaker;
import org.apache.fop.fo.properties.DimensionPropertyMaker;
import org.apache.fop.fo.properties.EnumProperty;
+import org.apache.fop.fo.properties.FontSizePropertyMaker;
+import org.apache.fop.fo.properties.FontStretchPropertyMaker;
import org.apache.fop.fo.properties.GenericShorthandParser;
import org.apache.fop.fo.properties.IndentPropertyMaker;
import org.apache.fop.fo.properties.KeepProperty;
addPropertyMaker("font-selection-strategy", m);
// font-size
- m = new LengthProperty.Maker(PR_FONT_SIZE);
+ m = new FontSizePropertyMaker(PR_FONT_SIZE);
m.setInherited(true);
m.setDefault("12pt");
m.addKeyword("xx-small", "6.944pt");
m.addKeyword("large", "14.4pt");
m.addKeyword("x-large", "17.28pt");
m.addKeyword("xx-large", "20.736pt");
+ m.addEnum("larger", getEnumProperty(EN_LARGER, "LARGER"));
+ m.addEnum("smaller", getEnumProperty(EN_SMALLER, "SMALLER"));
m.setPercentBase(LengthBase.INH_FONTSIZE);
addPropertyMaker("font-size", m);
// font-stretch
- m = new EnumProperty.Maker(PR_FONT_STRETCH);
+ m = new FontStretchPropertyMaker(PR_FONT_STRETCH);
m.addEnum("normal", getEnumProperty(EN_NORMAL, "NORMAL"));
m.addEnum("wider", getEnumProperty(EN_WIDER, "WIDER"));
m.addEnum("narrower", getEnumProperty(EN_NARROWER, "NARROWER"));
--- /dev/null
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed 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: $ */
+
+package org.apache.fop.fo.properties;
+import org.apache.fop.fo.Constants;
+import org.apache.fop.fo.FObj;
+import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.expr.PropertyException;
+
+/**
+ * This subclass of LengthProperty.Maker handles the special treatment of
+ * relative font sizes described in 7.8.4.
+ */
+public class FontSizePropertyMaker
+ extends LengthProperty.Maker implements Constants {
+
+ /** The default normal font size in mpt */
+ private static final int FONT_SIZE_NORMAL = 12000;
+ /** The factor to be applied when stepping font sizes upwards */
+ private static final double FONT_SIZE_GROWTH_FACTOR = 1.2;
+
+ /**
+ * Create a length property which can handle relative font sizes
+ * @param propId the font size property id.
+ */
+ public FontSizePropertyMaker(int propId) {
+ super(propId);
+ }
+
+ /**
+ * @see PropertyMaker#convertProperty
+ * Implements the parts of 7.8.4 relevant to relative font sizes
+ */
+ public Property convertProperty(Property p,
+ PropertyList propertyList,
+ FObj fo) throws PropertyException {
+ if (p.getEnum() == EN_LARGER || p.getEnum() == EN_SMALLER) {
+ // get the corresponding property from parent
+ Property pp = propertyList.getFromParent(this.getPropId());
+ int baseFontSize = computeClosestAbsoluteFontSize(pp.getLength().getValue());
+ if (p.getEnum() == EN_LARGER) {
+ return new FixedLength((int)Math.round((baseFontSize * FONT_SIZE_GROWTH_FACTOR)));
+ } else {
+ return new FixedLength((int)Math.round((baseFontSize / FONT_SIZE_GROWTH_FACTOR)));
+ }
+ }
+ return super.convertProperty(p, propertyList, fo);
+ }
+
+ /**
+ * Calculates the nearest absolute font size to the given
+ * font size.
+ * @param baseFontSize the font size in mpt of the parent fo
+ * @return the closest absolute font size
+ */
+ private int computeClosestAbsoluteFontSize(int baseFontSize) {
+ double scale = FONT_SIZE_GROWTH_FACTOR;
+ int lastStepFontSize = FONT_SIZE_NORMAL;
+ if (baseFontSize < FONT_SIZE_NORMAL) {
+ // Need to shrink the font sizes = scale downwards
+ scale = 1 / FONT_SIZE_GROWTH_FACTOR;
+ }
+ // Calculate the inital next step font size
+ int nextStepFontSize = (int)Math.round(lastStepFontSize * scale);
+ while (scale < 1 && nextStepFontSize > baseFontSize
+ || scale > 1 && nextStepFontSize < baseFontSize) {
+ // baseFontSize is still bigger (if we grow) or smaller (if we shrink)
+ // than the last caculated step
+ lastStepFontSize = nextStepFontSize;
+ nextStepFontSize = (int)Math.round(lastStepFontSize * scale);
+ }
+ // baseFontSize is between last and next step font size
+ // Return the step value closer to the baseFontSize
+ if (Math.abs(lastStepFontSize - baseFontSize)
+ <= Math.abs(baseFontSize - nextStepFontSize)) {
+ return lastStepFontSize;
+ }
+ return nextStepFontSize;
+ }
+
+}
--- /dev/null
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed 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: $ */
+
+package org.apache.fop.fo.properties;
+import org.apache.fop.fo.Constants;
+import org.apache.fop.fo.FObj;
+import org.apache.fop.fo.PropertyList;
+import org.apache.fop.fo.expr.PropertyException;
+
+/**
+ * This subclass of EnumProperty.Maker handles the special treatment of
+ * relative font stretch values described in 7.8.5.
+ */
+public class FontStretchPropertyMaker
+ extends EnumProperty.Maker implements Constants {
+
+ /* Ordered list of absolute font stretch properties so we can easily find the next /
+ * previous one */
+ private Property[] orderedFontStretchValues = null;
+
+ /**
+ * Create an enum property which can handle relative font stretches
+ * @param propId the font size property id.
+ */
+ public FontStretchPropertyMaker(int propId) {
+ super(propId);
+ }
+
+ /**
+ * @see PropertyMaker#convertProperty
+ * Implements the parts of 7.8.5 relevant to relative font stretches
+ */
+ public Property convertProperty(Property p,
+ PropertyList propertyList,
+ FObj fo) throws PropertyException {
+ // if it is a relative font stretch value get current parent value and step
+ // up or down accordingly
+ if (p.getEnum() == EN_NARROWER) {
+ return computeNextAbsoluteFontStretch(propertyList.getFromParent(this.getPropId()), -1);
+ } else if (p.getEnum() == EN_WIDER) {
+ return computeNextAbsoluteFontStretch(propertyList.getFromParent(this.getPropId()), 1);
+ }
+ return super.convertProperty(p, propertyList, fo);
+ }
+
+ /**
+ * Calculates the nearest absolute font stretch property to the given
+ * font stretch
+ * @param baseProperty the font stretch property as set on the parent fo
+ * @param direction should be -1 to get the next narrower value or +1 for the next wider value
+ */
+ private Property computeNextAbsoluteFontStretch(Property baseProperty, int direction) {
+ // Create the table entries the first time around
+ // @todo is this thread safe, do we need to worry about this here?
+ if (orderedFontStretchValues == null) {
+ orderedFontStretchValues = new Property[] {
+ checkEnumValues("ultra-condensed"),
+ checkEnumValues("extra-condensed"),
+ checkEnumValues("condensed"),
+ checkEnumValues("semi-condensed"),
+ checkEnumValues("normal"),
+ checkEnumValues("semi-expanded"),
+ checkEnumValues("expanded"),
+ checkEnumValues("extra-expanded"),
+ checkEnumValues("ultra-expanded")
+ };
+ }
+ int baseValue = baseProperty.getEnum();
+ for (int i = 0; i < orderedFontStretchValues.length; i++) {
+ if (baseValue == orderedFontStretchValues[i].getEnum()) {
+ // increment/decrement the index and make sure its within the array bounds
+ i = Math.min(Math.max(0, i + direction), orderedFontStretchValues.length - 1);
+ return orderedFontStretchValues[i];
+ }
+ }
+ // return the normal value
+ return orderedFontStretchValues[4];
+ }
+
+}
external-graphic1.xml
external-graphic2.xml
-font-size-relative.xml
inline1.xml
keep-with-previous2.xml
keep-with-previous3.xml
<eval expected="16200" xpath="//flow/block[1]/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
<eval expected="19440" xpath="//flow/block[1]/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
<eval expected="23328" xpath="//flow/block[1]/block/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="24000" xpath="//flow/block[2]/lineArea/text/@font-size"/>
+ <eval expected="19920" xpath="//flow/block[2]/block/lineArea/text/@font-size"/>
+ <eval expected="16533" xpath="//flow/block[2]/block/block/lineArea/text/@font-size"/>
+ <eval expected="13722" xpath="//flow/block[2]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="11389" xpath="//flow/block[2]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="9452" xpath="//flow/block[2]/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="7845" xpath="//flow/block[2]/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="6511" xpath="//flow/block[2]/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="7813" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="9375" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="11250" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="13500" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="16200" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="19440" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="23328" xpath="//flow/block[2]/block/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="24000" xpath="//flow/block[3]/lineArea/text/@font-size"/>
+ <eval expected="19920" xpath="//flow/block[3]/block/lineArea/text/@font-size"/>
+ <eval expected="16533" xpath="//flow/block[3]/block/block/lineArea/text/@font-size"/>
+ <eval expected="13722" xpath="//flow/block[3]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="11389" xpath="//flow/block[3]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="9452" xpath="//flow/block[3]/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="7845" xpath="//flow/block[3]/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="6511" xpath="//flow/block[3]/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="7813" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="9375" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="11250" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="13500" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="16200" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="19440" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="23328" xpath="//flow/block[3]/block/block/block/block/block/block/block/block/block/block/block/block/block/block/lineArea/text/@font-size"/>
</checks>
</testcase>
<fo>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
<fo:layout-master-set>
- <fo:simple-page-master master-name="normal" page-width="210mm" page-height="297mm">
+ <fo:simple-page-master master-name="normal" page-width="210mm" page-height="500mm">
<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">
- <fo:block font-family="serif"> font-family="serif" font-size not specified
- <fo:block font-family="serif" font-size="smaller"> font-family="serif" font-size="smaller"
- <fo:block font-family="serif" font-size="smaller"> font-family="serif" font-size="smaller"
- <fo:block font-family="serif" font-size="smaller"> font-family="serif" font-size="smaller"
- <fo:block font-family="serif" font-size="smaller"> font-family="serif" font-size="smaller"
- <fo:block font-family="serif" font-size="smaller"> font-family="serif" font-size="smaller"
- </fo:block>
+ <fo:block font-size="36pt">font-size="36pt"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
- <fo:block font-family="serif"> font-family="serif" font-size not specified
- <fo:block font-family="serif" font-size="larger"> font-family="serif" font-size="larger"
- <fo:block font-family="serif" font-size="larger"> font-family="serif" font-size="larger"
- <fo:block font-family="serif" font-size="larger"> font-family="serif" font-size="larger"
- <fo:block font-family="serif" font-size="larger"> font-family="serif" font-size="larger"
- <fo:block font-family="serif" font-size="larger"> font-family="serif" font-size="larger"
- </fo:block>
+ <fo:block font-size="24pt">font-size="24pt"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
- <fo:block font-family="sans-serif"> font-family="sans-serif" font-size not specified
- <fo:block font-family="sans-serif" font-size="smaller"> font-family="sans-serif" font-size="smaller"
- <fo:block font-family="sans-serif" font-size="smaller"> font-family="sans-serif" font-size="smaller"
- <fo:block font-family="sans-serif" font-size="smaller"> font-family="sans-serif" font-size="smaller"
- <fo:block font-family="sans-serif" font-size="smaller"> font-family="sans-serif" font-size="smaller"
- <fo:block font-family="sans-serif" font-size="smaller"> font-family="sans-serif" font-size="smaller"
- </fo:block>
+ <fo:block font-size="12pt">font-size="12pt"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
- <fo:block font-family="sans-serif"> font-family="sans-serif" font-size not specified
- <fo:block font-family="sans-serif" font-size="larger"> font-family="sans-serif" font-size="larger"
- <fo:block font-family="sans-serif" font-size="larger"> font-family="sans-serif" font-size="larger"
- <fo:block font-family="sans-serif" font-size="larger"> font-family="sans-serif" font-size="larger"
- <fo:block font-family="sans-serif" font-size="larger"> font-family="sans-serif" font-size="larger"
- <fo:block font-family="sans-serif" font-size="larger"> font-family="sans-serif" font-size="larger"
- </fo:block>
+ <fo:block font-size="6pt">font-size="6pt"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
- <fo:block font-family="monospace"> font-family="monospace" font-size not specified
- <fo:block font-family="monospace" font-size="smaller"> font-family="monospace" font-size="smaller"
- <fo:block font-family="monospace" font-size="smaller"> font-family="monospace" font-size="smaller"
- <fo:block font-family="monospace" font-size="smaller"> font-family="monospace" font-size="smaller"
- <fo:block font-family="monospace" font-size="smaller"> font-family="monospace" font-size="smaller"
- <fo:block font-family="monospace" font-size="smaller"> font-family="monospace" font-size="smaller"
- </fo:block>
+ <fo:block font-size="6pt">font-size="6pt"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
- <fo:block font-family="monospace"> font-family="monospace" font-size not specified
- <fo:block font-family="monospace" font-size="larger"> font-family="monospace" font-size="larger"
- <fo:block font-family="monospace" font-size="larger"> font-family="monospace" font-size="larger"
- <fo:block font-family="monospace" font-size="larger"> font-family="monospace" font-size="larger"
- <fo:block font-family="monospace" font-size="larger"> font-family="monospace" font-size="larger"
- <fo:block font-family="monospace" font-size="larger"> font-family="monospace" font-size="larger"
- </fo:block>
+ <fo:block font-size="12pt">font-size="12pt"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
</fo:block>
</fo:block>
</fo:block>
</fo:block>
</fo:block>
+ <fo:block font-size="24pt">font-size="24pt"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ <fo:block font-size="36pt">font-size="36pt"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="larger">font-size="larger"
+ <fo:block font-size="smaller">font-size="smaller"
+ <fo:block font-size="smaller">font-size="smaller"
+ </fo:block>
+ </fo:block>
+ </fo:block>
+ </fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</fo>
<checks>
- <eval expected="12000" xpath="//flow/block[1]/lineArea/text/@font-size"/>
- <eval expected="9999" xpath="//flow/block[1]/block/lineArea/text/@font-size"/>
- <eval expected="8332" xpath="//flow/block[1]/block/block/lineArea/text/@font-size"/>
- <eval expected="6943" xpath="//flow/block[1]/block/block/block/lineArea/text/@font-size"/>
- <eval expected="5785" xpath="//flow/block[1]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="4820" xpath="//flow/block[1]/block/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="12000" xpath="//flow/block[2]/lineArea/text/@font-size"/>
- <eval expected="14400" xpath="//flow/block[2]/block/lineArea/text/@font-size"/>
+ <eval expected="36000" xpath="//flow/block[1]/lineArea/text/@font-size"/>
+ <eval expected="29860" xpath="//flow/block[1]/block/lineArea/text/@font-size"/>
+ <eval expected="24883" xpath="//flow/block[1]/block/block/lineArea/text/@font-size"/>
+ <eval expected="29860" xpath="//flow/block[1]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="35832" xpath="//flow/block[1]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="24000" xpath="//flow/block[2]/lineArea/text/@font-size"/>
+ <eval expected="20736" xpath="//flow/block[2]/block/lineArea/text/@font-size"/>
<eval expected="17280" xpath="//flow/block[2]/block/block/lineArea/text/@font-size"/>
<eval expected="20736" xpath="//flow/block[2]/block/block/block/lineArea/text/@font-size"/>
<eval expected="24883" xpath="//flow/block[2]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="29859" xpath="//flow/block[2]/block/block/block/block/block/lineArea/text/@font-size"/>
<eval expected="12000" xpath="//flow/block[3]/lineArea/text/@font-size"/>
- <eval expected="9999" xpath="//flow/block[3]/block/lineArea/text/@font-size"/>
- <eval expected="8332" xpath="//flow/block[3]/block/block/lineArea/text/@font-size"/>
- <eval expected="6943" xpath="//flow/block[3]/block/block/block/lineArea/text/@font-size"/>
- <eval expected="5785" xpath="//flow/block[3]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="4820" xpath="//flow/block[3]/block/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="12000" xpath="//flow/block[4]/lineArea/text/@font-size"/>
- <eval expected="14400" xpath="//flow/block[4]/block/lineArea/text/@font-size"/>
- <eval expected="17280" xpath="//flow/block[4]/block/block/lineArea/text/@font-size"/>
- <eval expected="20736" xpath="//flow/block[4]/block/block/block/lineArea/text/@font-size"/>
- <eval expected="24883" xpath="//flow/block[4]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="29859" xpath="//flow/block[4]/block/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="12000" xpath="//flow/block[5]/lineArea/text/@font-size"/>
- <eval expected="9999" xpath="//flow/block[5]/block/lineArea/text/@font-size"/>
- <eval expected="8332" xpath="//flow/block[5]/block/block/lineArea/text/@font-size"/>
- <eval expected="6943" xpath="//flow/block[5]/block/block/block/lineArea/text/@font-size"/>
- <eval expected="5785" xpath="//flow/block[5]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="4820" xpath="//flow/block[5]/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="10000" xpath="//flow/block[3]/block/lineArea/text/@font-size"/>
+ <eval expected="8333" xpath="//flow/block[3]/block/block/lineArea/text/@font-size"/>
+ <eval expected="10000" xpath="//flow/block[3]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="12000" xpath="//flow/block[3]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="6000" xpath="//flow/block[4]/lineArea/text/@font-size"/>
+ <eval expected="4823" xpath="//flow/block[4]/block/lineArea/text/@font-size"/>
+ <eval expected="4019" xpath="//flow/block[4]/block/block/lineArea/text/@font-size"/>
+ <eval expected="4823" xpath="//flow/block[4]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="5788" xpath="//flow/block[4]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="6000" xpath="//flow/block[5]/lineArea/text/@font-size"/>
+ <eval expected="6944" xpath="//flow/block[5]/block/lineArea/text/@font-size"/>
+ <eval expected="8333" xpath="//flow/block[5]/block/block/lineArea/text/@font-size"/>
+ <eval expected="6944" xpath="//flow/block[5]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="5787" xpath="//flow/block[5]/block/block/block/block/lineArea/text/@font-size"/>
<eval expected="12000" xpath="//flow/block[6]/lineArea/text/@font-size"/>
<eval expected="14400" xpath="//flow/block[6]/block/lineArea/text/@font-size"/>
<eval expected="17280" xpath="//flow/block[6]/block/block/lineArea/text/@font-size"/>
- <eval expected="20736" xpath="//flow/block[6]/block/block/block/lineArea/text/@font-size"/>
- <eval expected="24883" xpath="//flow/block[6]/block/block/block/block/lineArea/text/@font-size"/>
- <eval expected="29859" xpath="//flow/block[6]/block/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="14400" xpath="//flow/block[6]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="12000" xpath="//flow/block[6]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="24000" xpath="//flow/block[7]/lineArea/text/@font-size"/>
+ <eval expected="29860" xpath="//flow/block[7]/block/lineArea/text/@font-size"/>
+ <eval expected="35832" xpath="//flow/block[7]/block/block/lineArea/text/@font-size"/>
+ <eval expected="29860" xpath="//flow/block[7]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="24883" xpath="//flow/block[7]/block/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="36000" xpath="//flow/block[8]/lineArea/text/@font-size"/>
+ <eval expected="42998" xpath="//flow/block[8]/block/lineArea/text/@font-size"/>
+ <eval expected="51598" xpath="//flow/block[8]/block/block/lineArea/text/@font-size"/>
+ <eval expected="42998" xpath="//flow/block[8]/block/block/block/lineArea/text/@font-size"/>
+ <eval expected="35832" xpath="//flow/block[8]/block/block/block/block/lineArea/text/@font-size"/>
</checks>
</testcase>