Complex Text Layout Issues with examples from Myanmar

Slides:



Advertisements
Similar presentations
Worldwide typography (and how to apply JIS-X to Unicode) Michel Suignard Microsoft Corporation.
Advertisements

© 1998, Progress Software Corporation 1 Migration of a 4GL and Relational Database to Unicode Tex Texin International Product Manager.
Chapter 3 – Web Design Tables & Page Layout
Web Design with Cascading Style Sheet Lan Vu. Overview Introduction to CSS Designing CSS Using Visual Studio to create CSS Using template for web design.
Tutorial 8: Developing an Excel Application
The Web Warrior Guide to Web Design Technologies
MP IP Strategy Stateye-GUI Provided by Edotronik Munich, May 05, 2006.
1 ADVANCED MICROSOFT POWERPOINT Lesson 5 – Using Advanced Text Features Microsoft Office 2003: Advanced.
Tafseer Ahmed Department of Computer Science University of Karachi Urdu on Linux International Support.
Customizing Word Microsoft Office Word 2007 Illustrated Complete.
Chapter 13: Object-Oriented Programming
Module 3 Productivity Programs Common Features and Commands Microsoft Office 2007.
Word Lesson 16 Working with Macros Microsoft Office 2010 Advanced Cable / Morrison 1.
MS Access: Database Concepts Instructor: Vicki Weidler.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
PowerPoint Lesson 5 Editing and Formatting Slide Content Microsoft Office 2010 Advanced Cable / Morrison 1.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Advanced File Processing
Encoding and fonts Edward Garrett Software Developer, ELAR.
A Field Linguist’s Guide to Unicode Deborah Anderson Script Encoding Initiative (Universal Scripts Project) Dept. of Lings., UC-Berkeley LSA Panel: A Field.
B.Sc. Multimedia ComputingMedia Technologies Character Representation & Font Technology.
1 An ICU Library Supporting the Display of Complex Text Eric Mader Globalization Center of Competency, Cupertino, CA.
Using SAS® Information Map Studio
Database Applications – Microsoft Access Lesson 3 Creating and Modifying Forms and Reports Updated 09/13 35 slides in presentation.
Advanced File Processing. 2 Objectives Use the pipe operator to redirect the output of one command to another command Use the grep command to search for.
Key Applications Module Lesson 21 — Access Essentials
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
XP Chapter 2 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Building The Database Chapter 2 “It is only the farmer.
Customizing Aspen Templates TEC04 Elizabeth Lucchese.
Chapter Five Advanced File Processing. 2 Lesson A Selecting, Manipulating, and Formatting Information.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Search Overview Search Features: WSS and Office Search Architecture Content Sources and.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
1 herbert van de sompel CS 502 Computing Methods for Digital Libraries Cornell University – Computer Science Herbert Van de Sompel
Files Tutor: You will need ….
® Copyright 2008 Adobe Systems Incorporated. All rights reserved. ADOBE® ACCESSIBILITY PDF Accessibility – Best Practices for Authoring Pete DeVasto Greg.
Juanita Cano City of Sacramento Spring 2014 Geography 375.
Chapter 3 I Need a Tour Guide (Introduction to Visual Basic 2010) Clearly Visual Basic: Programming with Visual Basic nd Edition.
Writing System Implementation On-the-Fly Extensibility for the common man Sharon Correll, SIL International Copyright © 2001.
HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML.
Tips and Tricks for Using Microsoft Word Styles Mike Pope, Tableau Software.
The complex world of Quality Assurance on OpenOffice.org Thorsten Ziehm Manager Quality Assurance for Ooo/SO at Sun Microsystems.
Smart Fonts, Font features and ODF Tim Eves SIL International.
Chapter 3: I Need a Tour Guide (Introduction to Visual Basic 2012)
Computer Fundamentals
Development Environment
Working in the Forms Developer Environment
Tutorial 5: Working with Excel Tables, PivotTables, and PivotCharts
Microsoft Office Access 2010 Lab 2
CARA 3.10 Major New Features
Navitus Health Solutions Case Study CRMUG Fox Valley
Exploring Microsoft Access 97
System Design Ashima Wadhwa.
N100 Building a Simple Web Page
Cascading Style Sheets
1. Introduction to Visual Basic
Text.
Analyzing Data Using Formulas
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Guide To UNIX Using Linux Third Edition
Database Applications – Microsoft Access
Benchmark Series Microsoft Word 2016 Level 2
Working with Text and Cascading Style Sheets
Using Cascading Style Sheets (CSS)
The Basic Usage and The Event Handling in Glade.
Strategy Design Pattern
Chapter 2 Tables and Forms: Design, Properties, Views, and Wizards
Microsoft Access Validation Rules, Table Relationships And
5.00 Apply procedures to organize content by using Dreamweaver. (22%)
Key Applications Module Lesson 14 — Working with Tables
HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML
Presentation transcript:

Complex Text Layout Issues with examples from Myanmar Keith Stribley Graphite Font Integration / Myanmar Localisation

Overview Background of Complex Text Layout Requirements for Myanmar Languages Integration of Graphite Font support into OpenOffice Demo and examples Font Features Benefits and examples Language features Line breaking issues This presentation requires OpenOffice with Myanmar patches, Graphite Font support and Burmese fonts.

Complex Text Layout Many South East Asian Languages require Complex Text Layout features such as: Reordering of glyphs Context specific ligatures Context specific positioning These need to be implemented in a complex rendering engine such as: OpenType – already in OOo through Uniscribe/ICU SIL Graphite – in graphite01 CWS Apple Advanced Typography (AAT)

Complex Rendering Example for Burmese 1 to 1 Unicode to glyph mapping Unreadable without renderer Correct rendering Reordering Ligatures 103C 102F 1004 103A 1039 102D

Benefits of Graphite Fonts The reordering, ligature and positioning rules are all stored in the font The rendering engine does not need to be modified for each new CTL script Basic Line breaking rules stored in the font no need for source code modifications to application The rules are quick to write in the Graphite Description Language The Graphite library is cross-platform Consistent rendering across platforms

Limitations of OpenType for newly encoded scripts The Default OpenType features applied to all languages are limited e.g. no many to many substitutions – making reordering hard to implement For optimal performance the OpenType renderer has to be modified for each script this hasn’t been done for Myanmar yet (though some effort is under way for ICU and HarfBuzz) There are discrepancies between the feature implementations in Uniscribe/ICU/HarfBuzz e.g handling of marks

Demonstration of Graphite enabled OpenOffice Graphite has been integrated into the font rendering code in the VCL module In graphite01 CWS Doulos SIL ä̃́ɛ̃̈̀ɩ̂́ɔ̃̂ʉ̄̈ɠ̪̥̈ŋ̥n̥n̪̰ k͡p m͡i l͡w l͡i m͡w Ɛ̈ Ɔ̈ Padauk (Myanmar) ပိတောက်နဲ့ မြန်မာအက္ခရာရေ းနိုင်သည်။ မြို့ကြီးမှာကွ န်ပျူတာသုံးသူမ ျားသည်။ Pig Latin Font Pig Latin Demo Scheherazade (RTL) الإعلان العالمي لحقوق الإنسان

Font Features Features allow the user to modify the rendering of a font without changing to a different font Many people prefer a slightly different rendering of a character to the default They apply to a run of text in a similar way to bold/italic attributes Features provide many more options to the user than separate fonts Not practical to provide a separate font for every feature combination e.g. Doulos has 37 features: >237 possibilities, though not all will be useful.

Graphite Features in OpenOffice (preliminary) Implemented by appending to the font name Required no change to ODF format “:” separates font name from features “&” delimits features (“;” “,” already used as alternate font delimiters) Font name/feature setting Doulos SIL Doulos SIL:1039=1&1024=2 Rendering ⱤŊ 1039 Capital R-tail alternate Upper case Lower case 1024 Uppercase Eng alternates Large eng with descender Capital N with tail

Language Features Features are commonly used to customize a font’s appearance to the preferences of a specific language community Several features may be involved, so it is easier to just specify the language and the rendering engine will select the relevant features Language needs to be passed to VCL font code Font object language field wasn't being set Many minority languages in ISO639-3 don’t have a corresponding Microsoft Locale ID or are not currently selectable from the language menu

Language Feature Examples Vietnamese has diacritics off centre, unlike other languages: ềắểốậấ (Doulos SIL, no features applied) ềắểốậấ (Doulos SIL:1029=1/Doulos SIL:lang=vie/OOo language=Vietnamese) Some Burmese prefer ကြို to have a tall u ကြို Burmese prefers ကွဲ ပှ Karen prefers ကွဲ ပှ

Improving font feature support Features need to be added to ODF for Graphite, OpenType and AAT IDs are numeric or 4 char tags, values are numeric e.g. <style:text-properties ... style:font-features="1039=2 ulon=1" style:font-features-complex="hsln=2" style:font-features-asian="3=2"/> Need a proper GUI to set features in Character/Font dialog Graphite stores localized feature names in the font OpenType and AAT have registries maintained by Microsoft and Apple respectively

Line Breaking in Myanmar Burmese uses spaces for phrase breaks, not word breaks Users can use ZWSP, but it is hard to train users Automated approaches: Syllable based algorithm often sufficient, but breaks multisyllable words Padauk's Graphite rules have syllable based breaking Syllable based breaking can be added as a patch to ICU Dictionary based algorithm A combination of dictionary lookup and syllable parsing can be used to avoid breaks in mulitsyllable words e.g. by patching ICU Only as accurate as the data in the dictionary

Line breaking example using an ICU based dictionary မောင်မေ ာင်အလွန် ကြိုးစား သဖြင့်ကန ်ထရိုက်ထ ာဖြစ်သွာ းသည်။ Padauk မောင် မောင် အလွန် ကြိုး စားသဖ ြင့်က န်ထရိ ုက်ထာ ဖြစ်သ ွားသည ်။ Myanmar3 Need 3 Levels: Dictionary (word level) Uses syllables Can't handle rare or loan words Syllable To break long words Not handled by break iterator Font e.g. graphite (writer) Character Last resort

Summary of Outstanding Myanmar Layout issues Graphite Font support CWS needs to be integrated Font Features need: Support in ODF A proper user interface To be selectable by ISO 639-3 language Line Breaking Currently requires patching of ICU for Myanmar May require intermediate level between Word / Character breakiterator similar to hyphenation