| <?xml version="1.0" encoding="UTF-8"?> |
| <!--======================================================================--> |
| <!--= Copyright 2000 World Wide Web Consortium, (Massachusetts =--> |
| <!--= Institute of Technology, Institut National de Recherche en =--> |
| <!--= Informatique et en Automatique, Keio University). All Rights =--> |
| <!--= Reserved. See http://www.w3.org/Consortium/Legal/. =--> |
| <!--======================================================================--> |
| <!-- =====================================================================--> |
| <!-- --> |
| <!-- font-hkern-01-t.svg --> |
| <!-- --> |
| <!-- Test handling of hkern elements in SVG Fonts --> |
| <!-- Author : Vincent Hardy, 06-Jan-2004 --><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> |
| |
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="tiny" id="svg-root" width="100%" height="100%" viewBox="0 0 480 360"> |
| <SVGTestCase xmlns:testcase="http://www.w3.org/2000/02/svg/testsuite/description/" xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" owner="VH" reviewer="CN" desc="Test handling of hkern elements in SVG Fonts" status="accepted" version="$Revision: 1.9 $" testname="$RCSfile: fonts-kern-01-t.svg,v $"> |
| <OperatorScript> |
| <Paragraph> |
| This test validates handling of the hkern element. |
| </Paragraph> |
| <Paragraph> |
| In all instances, a text element matching a font with hkern |
| is displayed along with reference markers showing the expected |
| glyph positioning. |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontA' cell shows the string "12" with "fontA" for which there |
| in a kerning pair defined with u1="1" and u2="2". |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontB' cell shows the string "12" with "fontB" for which there |
| in a kerning pair defined with g1="gl_1" and g2="gl_2", |
| where "gl_1" has unicode="1" and "gl_2" has unicode="2". |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontC' cell shows the string "1234" with "fontC" were the same kerning pair |
| uses u1/u2 to match "12" and g1/g2 to match "34". |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontD' cell shows the string "1234" with "fontD" were the same kerning pair |
| uses u1/u2 to match "12" and "34" (u1/u2 are lists of character vales). |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontE' cell shows the string "1234" with "fontE" were the same kerning pair |
| uses g1/g2 to match "12" and "34" (g1/g2 are lists of names). |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontF' cell shows the string "1234" with "fontF" were the same kerning pair |
| uses u1/u2 to match "12" and "34" (u1/u2 are unicode ranges). |
| </Paragraph> |
| |
| <Paragraph> |
| The 'fontG' cell shows the string "12" with "fontG" were for which there |
| is a kerning pair with u1 matching "1" and g2 matching "gl_2". |
| </Paragraph> |
| |
| |
| </OperatorScript> |
| </SVGTestCase> |
| <g id="test-body-content"> |
| <defs> |
| <g id="marker"> |
| <!-- <rect x="0" y="-10" width="10" height="10" /> --> |
| <line y2="-12" stroke="red" stroke-width="1"/> |
| <line x2="12" stroke="red" stroke-width="1"/> |
| <rect x="-2" y="-2" width="4" height="4" fill="red"/> |
| </g> |
| |
| <g id="sampleBkg"> |
| <rect width="200" height="20" fill="#eeeeee"/> |
| <rect y="20" width="200" height="30" fill="#cccccc"/> |
| <rect width="200" height="50" fill="none" stroke="black"/> |
| </g> |
| |
| </defs> |
| |
| <text x="240" y="30" font-size="20" text-anchor="middle"><hkern></text> |
| <g id="legend" transform="translate(30, 60)"> |
| <g> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font A</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15" font-size="12">u1="1" u2="2"</text> |
| <g transform="translate(5, 45) scale(2)" font-size="10"> |
| <!-- Advance for '1': 0 --> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| |
| <!-- Advance for '2' : '1'.advance + kerning --> |
| <!-- : ((250 - (-1000))/1000)*10 --> |
| <!-- : 12.5 --> |
| <use xlink:href="#marker" x="12.5" fill="#8888ff"/> |
| <text font-family="fontA" font-size="10">12</text> |
| </g> |
| </g> |
| |
| <g transform="translate(0, 55)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font B</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">g1="gl_1" g2="gl_2"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| <use xlink:href="#marker" x="22.5" fill="#8888ff"/> |
| <text font-family="fontB" font-size="10">12</text> |
| </g> |
| </g> |
| |
| <g transform="translate(0, 110)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font C</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">u1="1" u2="2" g1="gl_3" g2="gl_4"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| <!-- ((1.adv + '12'.k)/unitsPerEm)*fontSize --> |
| <use xlink:href="#marker" x="17.5" fill="#8888ff"/> |
| <use xlink:href="#marker" x="32.5" fill="#8888ff"/> |
| <!-- ((3.adv + '34'.k)/unitsPerEm)*fontSize --> |
| <use xlink:href="#marker" x="55" fill="#8888ff"/> |
| <text font-family="fontC" font-size="10">1234</text> |
| </g> |
| </g> |
| |
| <g transform="translate(0, 165)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font D</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">u1="1,3" u2="2,4"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| <use xlink:href="#marker" x="17.5" fill="#8888ff"/> |
| <use xlink:href="#marker" x="32.5" fill="#8888ff"/> |
| <use xlink:href="#marker" x="55" fill="#8888ff"/> |
| <text font-family="fontD" font-size="10">1234</text> |
| </g> |
| </g> |
| |
| <g transform="translate(240, 0)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font E</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">g1="gl_1,gl_3" g2="gl_2,gl_4"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| <use xlink:href="#marker" x="17.5" fill="#8888ff"/> |
| <use xlink:href="#marker" x="32.5" fill="#8888ff"/> |
| <use xlink:href="#marker" x="55" fill="#8888ff"/> |
| <text font-family="fontE" font-size="10">1234</text> |
| </g> |
| </g> |
| |
| <g transform="translate(240, 55)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font F</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">u1="U+003?" u2="U+0031-34"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| <!-- '2' --> |
| <use xlink:href="#marker" x="17.5" fill="#8888ff"/> |
| <!-- '3' --> |
| <use xlink:href="#marker" x="47.5" fill="#8888ff"/> |
| <!-- '4' --> |
| <use xlink:href="#marker" x="70" fill="#8888ff"/> |
| <text font-family="fontF" font-size="10">1234</text> |
| </g> |
| </g> |
| |
| <g transform="translate(240, 110)"> |
| <g> |
| <rect x="-20" width="20" height="50" fill="none" stroke="black"/> |
| <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font G</text> |
| </g> |
| <use xlink:href="#sampleBkg"/> |
| <text x="5" y="15">u1="1" g2="gl_2"</text> |
| <g transform="translate(5, 45) scale(2)"> |
| <!-- Advance for '1': 0 --> |
| <use xlink:href="#marker" fill="#8888ff"/> |
| |
| <!-- Advance for '2' : '1'.advance + kerning --> |
| <!-- : ((250 - (-1000))/1000)*10 --> |
| <!-- : 12.5 --> |
| <use xlink:href="#marker" x="12.5" fill="#8888ff"/> |
| <text font-family="fontG" font-size="10">12</text> |
| </g> |
| </g> |
| </g> |
| |
| <g id="testContent" transform="translate(320, 100)" font-size="10"> |
| |
| |
| |
| |
| </g> |
| </g> |
| |
| <defs> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontG" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <hkern u1="1" g2="gl_2" k="-1000"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontF" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/> |
| <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/> |
| <!-- u1 covers '0' to '9' and ':' ';' '<' '=' '>' '?' --> |
| <!-- u2 covers '1' '2' '3' and '4' --> |
| <!-- So, this is a match for '12', '23' and '34' --> |
| <hkern u1="U+003?" u2="U+0031-0034" k="-1500"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontE" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/> |
| <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/> |
| <hkern g1="gl_1,gl_3" g2="gl_2,gl_4" k="-1500"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontD" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/> |
| <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/> |
| <hkern u1="1,3" u2="2,4" k="-1500"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontC" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/> |
| <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/> |
| |
| <hkern u1="1" u2="2" g1="gl_3" g2="gl_4" k="-1500"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontB" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <hkern g1="gl_1" g2="gl_2" k="-2000"/> |
| </font> |
| |
| <font horiz-adv-x="224"> |
| <font-face font-family="fontA" units-per-em="1000" ascent="917" descent="-250"/> |
| <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/> |
| <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/> |
| <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/> |
| <hkern u1="1" u2="2" k="-1000"/> |
| </font> |
| |
| </defs> |
| |
| <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text> |
| <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/> |
| |
| </svg> |