Friday, 4 August 2017

Ttfautohint ไบนารี ตัวเลือก


ttfautohint บริจาคตอนนี้ 28 พฤศจิกายน 2012 เวลานี้ฉันมีประเด็นสองประเด็นที่จะพูดถึง: เวอร์ชัน 0.94 จะหมดลง จะเพิ่มสองตัวเลือกใหม่เพื่อควบคุมมิติข้อมูลในแนวตั้งของร่ายมนตร์นัยเพื่อหลีกเลี่ยงการตัดใน Windows ในกรณีที่ค่า usWinAscent และ usWinDescent จากแบบอักษร lsquoOS2rsquo ตารางไม่สามารถปรับได้ (ด้วยเหตุผลใดก็ตาม) ตามปกติดูที่นี่สำหรับข้อมูลเพิ่มเติม ในช่วงสิบสองเดือนที่ผ่านมามีการพัฒนา ttfautohint เป็นจำนวนมาก อย่างไรก็ตามยังคงมีรายการปรับปรุงจำนวนมากที่ฉันต้องการใช้เพื่อให้เครื่องมือนี้มีความอเนกประสงค์และมีประโยชน์มากขึ้น เพื่อให้เกิดเหตุการณ์นี้ขึ้นฉันจะเริ่มต้นการระดมทุนใหม่ และฉันขอให้คุณสนับสนุนทางการเงิน 10 ตุลาคม 2012 ในด้านการทำงานจะนำตัวเลือกใหม่เพื่อแสดงให้เห็นร่ายมนตร์คอมโพสิตแตกต่างกันอย่างมากลดขนาด bytecode ของคำแนะนำที่สร้างขึ้น รอการรายงานว่าตัวเลือกนี้ใช้ได้กับฟอนต์มากที่สุดหรือไม่ถ้าเป็นจริงฉันจะกำหนดค่าเริ่มต้น ดังนั้นโปรดทดสอบรายการของการเปลี่ยนแปลงอื่น ๆ สามารถพบได้ที่นี่ เหนือสิ่งอื่นใดเวอร์ชัน GUI ของ ttfautohint มีรูปแบบใหม่ (ตามคำแนะนำจาก Frederik Berlaen) 7 สิงหาคม 2012 Ive พบข้อผิดพลาดที่น่าอับอายมากใน bytecode ที่ผลิตโดย ttfautohint ก่อให้เกิดการปัดเศษไม่ดี ผู้ใช้ทุกคนควรอัปเกรดเป็นเวอร์ชัน 0.92 12 กรกฎาคม 2012 เวอร์ชัน 0.91 ออกมาส่วนใหญ่จะให้การสนับสนุน GDI ClearType ดีขึ้น สำหรับรายละเอียดอื่น ๆ โปรดไปที่หน้านี้เพื่อดูข้อมูลเพิ่มเติม 7 มิถุนายน 2012 หลังจากหายไปนานเนื่องจากเหตุผลส่วนตัวตามด้วยการทำงานอย่างเข้มข้นในเอกสาร Im ยินดีที่จะปล่อยเวอร์ชัน 0.9 ขณะที่ฉันสามารถลดไบต์ที่สร้างได้อย่างมาก แต่ GDI ยังแก้ไขปัญหาได้ไม่ดี แต่น่าเสียดายที่ได้รับการแก้ไขในการเผยแพร่ที่กำลังจะมีขึ้น สำหรับรายละเอียดอื่น ๆ โปรดไปที่หน้านี้เพื่อดูข้อมูลเพิ่มเติม 6 เมษายน 2555 ขอบคุณการบริจาคอย่างมากจาก Extensis WebINK แคมเปญ pledgie ของฉันได้บรรลุเป้าหมาย ความรุ่งโรจน์ให้กับทุกท่านที่ได้บริจาคและสนับสนุนฉันในไม่กี่สัปดาห์ Ill จะออกใหม่ในขณะนี้ด้วยแบบอักษรขนาดเล็กออกเนื่องจากลดขนาดของ bytecode สร้างและมีการสนับสนุนที่ดีขึ้นสำหรับ GDI ClearType 30th March 2012 หน้านี้ใช้ตัวอักษร Roboto เพื่อแสดงผล Karsten Luumlcke ได้จัดเตรียมไบนารีแบบคงที่ของบรรทัดคำสั่ง ttfautohint สำหรับ OS X แล้ววันที่ 21 มีนาคม 2012 มีเวอร์ชั่น 0.8 ข่าวประชาสัมพันธ์ฉบับนี้นำการปรับปรุงเล็กน้อยต่างๆดูที่หน้านี้เพื่อดูข้อมูลเพิ่มเติม เพื่อเป็นการกระตุ้นความกระหายของคุณ: นี่คือภาพรวมของ GUI :-) 5 กุมภาพันธ์ 2012 เวอร์ชัน 0.7 มีอยู่แล้ว ndash เรามี GUI กรอบ Qt ถูกใช้เพื่อจัดเตรียมอินเทอร์เฟซสำหรับทุกแพลตฟอร์มที่ได้รับการสนับสนุน ด้านล่างคุณจะพบลิงค์สำหรับดาวน์โหลด Windows binaries ถ้าคุณต้องการมีการสนับสนุนการติดตั้งที่ดีกว่า (รวมถึงแพคเกจสำหรับ Mac) โปรดบริจาคเวอร์ชัน 2 มกราคม 2012 เวอร์ชัน 0.6.1 รุ่นนี้ควรแก้ไขปัญหาเกี่ยวกับรุ่น 0.6 นอกจากนี้ยังมีการเปิดใช้งานโหมด dropout 25 ธันวาคม 2011 คริสต์มาสของฉันนำเสนอแก่คุณ: เวอร์ชัน 0.6 ขอขอบคุณทุกท่านที่ยังคงบริจาครุ่นนี้ช่วยปรับปรุงการจัดการของร่ายมนตร์คอมโพสิต นอกจากนี้ยังดำเนินการตัวเลือก - p เพื่อ pre-hint แบบอักษรที่มีคำแนะนำเดิมก่อนที่จะประมวลผล 19 พฤศจิกายน 2011 Karsten Luumlcke ให้ไบนารีคงที่สำหรับ OS X ndash ไม่จำเป็นต้องติดตั้ง FreeType มันถูกสร้างขึ้นภายใต้ 10.5.8 รุ่น แต่ควรใช้กับรุ่น 10.7 ด้วย 9 พฤศจิกายน 2554 Google Web Fonts มีส่วนเพิ่มอีก 3,000 ครั้งตอนนี้ฉันหวังว่าจะมีเป้าหมายสองในสามของฉันฉันหวังว่านักพัฒนาแบบอักษรองค์กรอื่น ๆ โดยเฉพาะอย่างยิ่งผู้ที่มีแคตตาล็อกตัวอักษรขนาดใหญ่ซึ่งจะได้รับประโยชน์อย่างมากจากงานนี้จะพิจารณาการมีส่วนร่วมของ พันเหรียญ ฉันเพิ่งเปิดตัวรุ่น 0.5 รวมทั้งไบนารีของ Windows คุณสามารถอ่านแผนงานโครงการได้ที่นี่ 18 ตุลาคม 2554 ในเดือนกันยายนเราได้ระดมทุนมากกว่า 2,000 รายจากสาธารณะ 7,000 รายจาก Google และ FontLab พร้อมกับสำเนาของ FontLab 5 และได้รับจาก Microsoft ข้อกำหนดเกี่ยวกับรูปแบบไฟล์ภาพ TrueType ซึ่งจะช่วยให้นักออกแบบสามารถปรับแต่งผลลัพธ์ของ Ttfautohints ได้โดยใช้ VTT ถ้าฉันบรรลุเป้าหมาย 30,000 เป้าหมายเงินที่เก็บรวบรวมไว้จนถึงตอนนี้ช่วยให้ฉันสามารถทำงานกับ ttfautohint ได้อย่างต่อเนื่องในอีก 3 เดือนข้างหน้า สองประเด็นหลักที่ฉันจะจัดการคือการแก้ไข bytecode เพื่อให้ทำงานได้อย่างน่าเชื่อถือกับเครื่องยนต์ TrueType แอปเปิ้ล (Ive เริ่มต้นแล้วกับที่และฉันคาดว่าจะให้รุ่นใหม่ในประมาณสองสัปดาห์) การเขียน GUI สำหรับการควบคุมได้ง่ายขึ้นในกรณีที่คุณ มีความประสงค์พิเศษตอนนี้เวลาที่เหมาะสมที่จะบอกฉันโปรดดูในไฟล์สิ่งที่ต้องทำและตรวจสอบว่าแนวคิดของคุณได้รับการคุ้มครองแล้วบทนำ Werner Lemberg ช่วยให้นักออกแบบเว็บแบบสามารถสร้างแบบอักษรบนเว็บที่ดูดีบน Windows ได้โดยใช้ ttfautohint การแนะนำแบบอักษร TrueType อาจเป็นขั้นตอนที่ช้าและมีราคาแพงและแบบอักษรจำนวนมากไม่มีคำแนะนำที่ดีเพราะทั้งหมดจะถูกแปลงเป็น TrueType จากรูปแบบตัวอักษรอื่น ttfautohint แก้ปัญหานี้โดยการสร้างระบบ AutoHinting ของ FreeType นำเสนอการแสดงผลแบบ FreeType ที่ยอดเยี่ยมสำหรับแพลตฟอร์มที่ไม่ใช้ FreeType แต่จำเป็นต้องมีคำแนะนำสำหรับข้อความที่ดูดีเช่น Microsoft Windows ในวันนี้สภาพแวดล้อมการแสดงผลของ Windows แบบอักษร ttfautohint ดูดีที่สุดเมื่อใช้งาน DirectWrite ClearType นี่คือค่าดีฟอลต์สำหรับ Windows 7 ผลการค้นหาภาพที่ดีจะเห็นได้ในเวอร์ชันล่าสุดของ MacOS X และ GNulinux ที่ใช้ FreeType สำหรับการแสดงผล ขณะนี้กำลังทำงานเพื่อปรับปรุงคุณภาพของการแสดงผล Windows เก่ากว่านี้ ส่วนหลักของโครงการคือไลบรารีโค้ดซึ่งอธิบายไว้ในรายละเอียดในไฟล์ซอร์สโค้ด srcttfautohint. h มีโปรแกรมอรรถประโยชน์ที่มีอินเทอร์เฟซทั้งบรรทัดคำสั่งและ GUI ซึ่งพร้อมใช้งานในปัจจุบัน เป้าหมายของโครงการคือการสร้าง passsquo lsquofirst ของ hinting ที่นักพัฒนาแบบอักษรสามารถปรับแต่งต่อไปเพื่อคุณภาพที่ดีที่สุด ภาพเคลื่อนไหวด้านบนแสดงให้เห็นว่าคำแนะนำที่สร้างขึ้นโดย ttfautohint จะนำมาประยุกต์ใช้กับสัญลักษณ์ประจำตัวของ Liberation Serif แบบปกติที่ 19 พิกเซลต่อ em โดยใช้ FontType TrueType เป็นตัวบัก byTecode (คุณสามารถดูภาพโดยตรงเพื่อดูในขนาดที่เป็นต้นฉบับ) โครงการเริ่มต้นขึ้นในปี 2010 เมื่อ Dave Crossland เสนอแนวคิดของโครงการ Werner สามารถเริ่มต้นการพัฒนาได้ด้วยการสนับสนุนทางการเงินจากทีม Google Web Fonts เวอร์เนอร์กำลังทำงานเต็มเวลาในโครงการขณะที่กำลังแสวงหาการสนับสนุนทางการเงินจากชุมชนการพิมพ์อักษรที่กว้างขึ้นเพื่อดำเนินการต่องานนี้ การแนะนำแบบอักษร TrueType เป็นกระบวนการที่ใช้เวลานานและมีราคาแพงสำหรับนักออกแบบประเภท การผลิตคำแนะนำที่มีคุณภาพสูงสำหรับ glyphs ส่วนใหญ่ในแบบอักษรและช่วยให้พวกเขาสามารถปรับแต่งผลการค้นหาด้วยมือจะทำให้ชีวิตของนักออกแบบทุกประเภทเรียบง่ายขึ้น โปรแกรมเล็ก ๆ นี้ถูกตั้งค่าเพื่อปรับปรุงคุณภาพของการพิมพ์เว็บไฟล์สิ่งที่ต้องทำในที่เก็บซอร์สโค้ดให้รายการสิ่งต่างๆมากมายซึ่งจะได้รับการจัดการในลักษณะนี้หรืออีกวิธีหนึ่ง นี่คือรายการสั้น ๆ เกี่ยวกับรายการสำคัญ: เพิ่มวิธีปรับแต่งผลลัพธ์ให้ดีขึ้นกว่าการควบคุมโซนสีน้ำเงินและรายละเอียดอื่น ๆ ของกระบวนการคำพูดตามธรรมชาติหลังจากที่ GUI อยู่ในสถานที่ เพิ่ม OpenType Full Feature สนับสนุน ndash ปัจจุบัน glyphs ทั้งหมดที่ไม่สามารถระบุโดยตรงกับโค้ดอักขระในตาราง lsquocmaprsquo ได้รับการจัดการโดยใช้กลไก fallback เท่านั้น เพิ่มการสนับสนุนระบบการเขียนของโลกตั้งแต่ระบบ FreeHyping ของ FreeTypes สนับสนุนระบบการเขียนภาษาอาหรับและ CJK (จีน, เกาหลี, ญี่ปุ่น) ttfautohint สามารถทำได้เช่นกัน (จนถึงขณะนี้เป้าหมายหลักคือทำให้ ttfautohint ทำงานได้ดีกับสคริปต์ latin) เพิ่ม hooks สำหรับเครื่องมืออื่น ๆ เพื่อให้สามารถทำงานร่วมกับโปรแกรมแก้ไขแบบอักษรต่างๆได้อย่างราบรื่น ปล่อยการกระทำในภาษาคำสั่ง hinting ระดับสูงออกจากที่ใช้ในเครื่องมืออื่น ๆ เช่น Visual TrueType (VTT) หรือ FontLab แทนที่จะปล่อยเฉพาะไบต์ระดับต่ำสุดที่สุดท้าย นี้จะช่วยให้นักออกแบบสามารถปรับแต่งผลด้วยมือ ndash จำเป็นสำหรับร่ายมนตร์หากินที่ต้องตัดสินใจอย่างชาญฉลาดโดยมนุษย์ทำให้ห้องสมุดสามารถติดตั้งได้ ตัวอย่างภาพ Vernon Adams ได้ทำการทดสอบอย่างกว้างขวางเกี่ยวกับ ttfautohint และมีเอกสารนี้ในรายละเอียดมากกว่าที่บล็อกของเขา Typography ใหม่ ในขณะที่ทำเช่นนี้เขาได้สร้างชุดทดสอบขนาดใหญ่ (ZIP) ไว้ มีคำอธิบายภาพอยู่ด้านล่างนี้: Ubuntu Regular, Windows DirectWrite ClearType: Ubuntu แบบปกติ, GDI ClearType ภาพนี้แสดงการกรองสีที่ก้าวร้าวอย่างชัดเจน ด้วย ttfautohint โครงร่างโค้ง extrema ไม่สอดคล้องกับเส้นขอบพิกเซลจะไม่ได้รับการจัดการที่ดีให้บางขนาดรูปลักษณ์เหมือนบิตแมป: Vera ปกติ, Windows DirectWrite ClearType: Droid Serif ปกติ, Windows DirectWrite ClearType: สุดท้ายนี่สองไฟล์แบบอักษรของ Ubuntu ปกติเพื่อให้คุณ สามารถเปรียบเทียบผลการทับศัพท์ได้ด้วยตัวเอง: โปรดทราบว่า Ubuntu-TTFautohint-R. ttf ได้รับการสร้างขึ้นด้วยเวอร์ชัน ttfautohint เวอร์ชัน 0.5 และได้รับการแก้ไขด้วยตนเอง (โดยใช้ ttx) เพื่อเปลี่ยนชื่อแบบอักษรเพื่อให้สามารถใช้เวอร์ชันเดิมได้ และเวอร์ชันที่ประมวลผลด้วย ttfautohint แบบขนาน แมตต์วิบบ์ได้ทดสอบแบบอักษร VAG Rounded ที่เขานำเสนอผลการค้นหาในบล็อกของเขา วิธีการทำงานรายละเอียดของ autohinter ภายใน FreeType สามารถพบได้ที่นี่ ถึงแม้ว่าเว็บเพจเหล่านี้จำเป็นต้องมีการอัปเดต แต่หลักการพื้นฐานของกระบวนการเปลี่ยนรูปแบบอัตโนมัติจะเปลี่ยนไป มีข้อยกเว้นประการหนึ่งคือตัวเลือก autohinter จะไม่ให้คำแนะนำที่ดีสำหรับการแรสเตอร์แบบขาวดำ แต่คาดว่าจะมีการต่อต้านการเรียกรหัสด้วย 256 ระดับสีเทาซึ่งเป็นมาตรฐานสำหรับ Windows 98 เอกสารทางวิชาการที่ตีพิมพ์ในการดำเนินการ EuroTeX 2003 ซึ่งมีชื่อว่า Real-Time Grid Fitting of Typographic Outlines ให้ข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับระบบการทำงานภายในของระบบการทำงานอัตโนมัติ ในการเชื่อมโยงข้างต้นจะมีขั้นตอนการดำเนินการ autohinting หนึ่งส่วนอยู่: ขั้นตอนต่างๆที่ดำเนินการโดย autohinter (เรียกว่าการกระทำ) สามารถอธิบายได้ว่าเป็นการดำเนินการระดับสูงเช่น ldquoaligning ขอบที่กำหนดให้กับเขตสีน้ำเงินที่ระบุ rdquo หรือ ldquolinking นี้ edge ไปยังอีกอันหนึ่งภายในระยะทางที่กำหนด rdquo ห้องสมุด ttfautohint จะเชื่อมต่อกับการทำงานเหล่านี้และเปลี่ยนเป็นกิจวัตรประจำ bytecode คล้ายกับคำแนะนำ TrueType ส่วนใหญ่การดำเนินการ autohint จะขึ้นอยู่กับความละเอียดของอุปกรณ์ ดังนั้น ttfautohint เดินผ่านช่วงของค่า ppem (8 ถึง 1000 ppem โดยค่าเริ่มต้น) และเก็บรวบรวมการกระทำเป็นชุด ร่าง glyph ทั่วไปต้องมีชุดตั้งแต่สามถึงสี่ชุด (ครอบคลุมทั้งช่วง) แต่บางครั้งก็เกินกว่าสิบเท่า เจตนา ttfautohint จะเพิ่มคำแนะนำเฉพาะตามแกน y เท่านั้น การวิจัย Anti-Grain อธิบายเหตุผลบางอย่างที่อยู่เบื้องหลังการตัดสินใจนี้ ในขณะที่บทความค่อนข้างเก่าแนวคิดดังกล่าวยังคงมีผลอยู่ ไลบรารี ttfautohint ประกอบด้วยสำเนาโมดูล FreeTypes lsquoautofitrsquo ฟอร์แมตใหม่และใช้คำนำหน้าฟังก์ชันอื่น ๆ และมีส่วนขยายเล็กน้อยสำหรับ hooks เป็นคำพูดนัย ดังนั้นจึงได้รับสิทธิการให้ลิขสิทธิ์แบบเดียวกับ FreeType ซึ่งคุณสามารถเลือกได้ระหว่าง GNU Public License (GPL) เวอร์ชัน 2 และ FreeType License (FTL) Werner Lemberg (wlgnu. org) เป็น Technical Lead และทำโปรแกรมทั้งหมด เขาเป็นนักดนตรีคลาสสิกระดับมืออาชีพและอาศัยอยู่ในกรุงเวียนนาประเทศออสเตรีย Dave Crossland (daveunderstandingfonts) เป็นผู้จัดการโครงการและเขียนและกำกับภาพวิดีโอโปรโมตที่ด้านบนสุดของหน้านี้ เขาเป็นนักออกแบบมืออาชีพและอาศัยอยู่ในกรุงลอนดอนประเทศอังกฤษ แอนดี้เอลลิส (hellofadeinfadeout. co. uk) ได้ออกแบบและผลิตวิดีโอโปรโมต เขาเป็นนักออกแบบกราฟิกมืออาชีพและอาศัยอยู่ในกรุงลอนดอนประเทศอังกฤษ รุ่นปัจจุบัน: 0.94 (29th พฤศจิกายน 2012) Apple ttfautohint 0.94 (ขณะนี้บรรทัดคำสั่งเพียงขอบคุณ Karsten Luumlcke สำหรับการสร้าง ndash นี้ได้รับการรวบรวมภายใต้ OS X 10.5.8 แต่ควรใช้กับรุ่นใหม่ด้วย) รหัสแหล่งที่มาและเอกสารชุดล่าสุดของ ttfautohint รวมทั้งเอกสารใน HTML, PDF และรูปแบบข้อความสามารถดาวน์โหลดได้จาก Savannah หรือจาก SourceForge เอกสารยังพร้อมใช้งานออนไลน์ การพัฒนาทั้งหมดจะเกิดขึ้นภายในพื้นที่เก็บข้อมูล git สาธารณะโปรดดูที่หน้าแรก repository repo. or. cz เพื่อดูรายละเอียด หมายเหตุ: ข้อกำหนดเบื้องต้นสำหรับการรวบรวมไลบรารีคือ FreeType เวอร์ชัน 2.4.5 หรือใหม่กว่าเพื่อดูหน้าดาวน์โหลด FreeTypes สำหรับข้อมูลเพิ่มเติม รวบรวม ttfautohint สำหรับ Mac OS X รวมถึง GUI แม้ว่าลิงก์นี้จะใช้เวอร์ชัน ttfautohint เวอร์ชัน 0.92 มันทำงานได้เหมือนกันกับรุ่นล่าสุดยัง: เพียงแค่แทนที่ lsquo0.92rsquo กับหมายเลขเวอร์ชันปัจจุบัน. ttfautohint เวอร์ชัน 0.93 ttfautohint เป็นไลบรารีที่เขียนด้วย C ซึ่งใช้ตัวอักษร TrueType เป็นอินพุตลบคำสั่ง bytecode ของมัน (ถ้ามี) และส่งกลับ แบบอักษรใหม่ที่มีการใช้สัญลักษณ์ทั้งหมดที่ระบุโดยใช้โมดูล AutoHinting FreeTypes ความคิดคือการให้คุณภาพที่ยอดเยี่ยมของ autohinter บนแพลตฟอร์มที่ไม่ใช้ FreeType ไลบรารีมีฟังก์ชัน API แบบเดี่ยว TTFautohint ซึ่งอธิบายไว้ด้านล่างนี้ พร้อมกับไลบรารีมีโปรแกรมหน้า 2 แบบคือ ttfautohint และ ttfautohintGUI เป็นบรรทัดคำสั่งและแอ็พพลิเคชันที่มี Graphics User Interface (GUI) ตามลำดับ คำแนะนำแบบอักษร (หรือที่เรียกว่าการสอน) คือการใช้คำแนะนำทางคณิตศาสตร์เพื่อปรับการแสดงผลแบบอักษรเค้าร่างเพื่อให้สอดคล้องกับตารางแบบแรสเตอร์ ที่ความละเอียดของหน้าจอต่ำคำใบ้เป็นสิ่งสำคัญสำหรับการสร้างข้อความที่ชัดเจนและชัดเจน มันสามารถมาพร้อมกับการขจัดรอยยิ้มและ (ในผลึกเหลว) แสดงผล subpixel เพื่อความชัดเจนเพิ่มเติม เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดอาจารย์ผู้สอนแบบอักษรควรปฏิบัติตามหลักเกณฑ์ต่อไปนี้: ในขนาดที่เล็กไม่ควรเพิ่มความเป็นไปได้ในการขยายความแตกต่างเล็ก ๆ น้อย ๆ ในการออกแบบลายเส้นของร่ายมนตร์เดิม ที่มีขนาดใหญ่ความละเอียดอ่อนของการออกแบบที่เป็นต้นฉบับควรเกิดขึ้น โดยทั่วไปมีสามวิธีที่เป็นไปได้ในการแสดงสัญลักษณ์ แบบอักษรมีคำแนะนำ (ในความรู้สึกเดิมของคำนี้) เพื่อเป็นแนวทางใน rasterizer บอกว่ารูปทรงของร่ายมนตร์ต้องได้รับการพิจารณาเป็นพิเศษ ตรรกะที่พูดเป็นนัยเป็นส่วนหนึ่งในแบบอักษรและบางส่วนใน rasterizer เครื่องขัดผิวที่มีความซับซ้อนมากขึ้นสามารถให้ผลลัพธ์การแสดงผลได้ดีขึ้น นี่เป็นวิธีที่คำแนะนำแบบอักษร Type 1 และ CFF ใช้งานได้ แบบอักษรมีคำแนะนำที่แน่นอน (เรียกว่า bytecode) เกี่ยวกับวิธีย้ายจุดของโครงร่างขึ้นอยู่กับความละเอียดของอุปกรณ์เอาต์พุตและซึ่งบิดเบือนรูปร่าง (เค้าร่าง) โดยเจตนาเพื่อให้ได้ผลลัพธ์ที่ดี ตรรกะที่เป็นนัยในแบบอักษรเหมาะเจาะ rasterizers ทั้งหมดเพียงขั้นตอนคำแนะนำเหล่านี้เพื่อให้ได้ผลเดียวกันบนแพลตฟอร์มทั้งหมด นี่เป็นวิธีที่ TrueType ทำงาน แบบอักษรได้รับการสะกดโดยอัตโนมัติ (ในขณะดำเนินการ) ตรรกะที่พูดเป็นนัยจะสมบูรณ์ใน rasterizer ไม่มีคำแนะนำในแบบอักษรที่ใช้หรือจำเป็นต้องใช้แทนราสเตอร์จะสแกนและวิเคราะห์ร่ายมนตร์เพื่อใช้การแก้ไขด้วยตัวเอง นี่เป็นวิธีที่ FreeTypes auto-hinter ทำงานด้านล่างเพื่อดูข้อมูลเพิ่มเติม แม้ว่าจะง่ายที่จะระบุคำแนะนำ PostScript (ไม่ว่าจะด้วยตนเองหรือโดยตัวนับอัตโนมัติซึ่งทำงานที่เวลาในการสร้างแบบอักษร) การสร้างคำแนะนำ TrueType เป็นเรื่องยากมาก มีอย่างน้อยสองเหตุผล: คำแนะนำของ TrueType เป็นภาษาเขียนโปรแกรมทำงานอยู่ในระดับที่ต่ำมาก พวกเขาจะเทียบเคียงกับรหัส assembler จึงขาดแนวคิดระดับสูงทั้งหมดเพื่อให้การเขียนโปรแกรมสบายขึ้น ต่อไปนี้เป็นตัวอย่างว่าโค้ดดังกล่าวมีลักษณะเป็นอย่างไร: อุปสรรคสำคัญประการหนึ่งคือความจริงที่ว่านักออกแบบแบบอักษรมักจะใช้โปรแกรมเมอร์ ใช้เวลานานในการแนะนำร่ายมนตร์ด้วยตนเอง ระบุว่าจำนวนผู้เชี่ยวชาญสำหรับคำจำกัดความของ TrueType มีข้อ จำกัด มากนัยว่าชุดอักขระขนาดใหญ่สำหรับแบบอักษรหรือแบบอักษรอาจมีราคาแพงมาก ไลบรารี ttfautohint นำเสนอการแสดงผลแบบ FreeType ที่ยอดเยี่ยมสำหรับแพลตฟอร์มที่ไม่ใช้ FreeType แต่ต้องใช้คำแนะนำว่าข้อความจะดูดีเช่น Microsoft Windows พูดประมาณจะแปลงการวิเคราะห์ glyph โดย FreeTypes auto-hinting module ไปเป็น TrueType bytecode ภายในอัลกอริทึม auto-hinters มีลักษณะคล้ายกับ PostScript hinting methods ดังนั้นจึงรวมเอาสามวิธีที่กล่าวมาก่อนหน้านี้ อินเทอร์เฟซที่เรียบง่ายของส่วนหน้า (ทั้งในบรรทัดคำสั่งและ GUI) ช่วยให้สามารถใช้ตัวอักษรทั้งตัวได้อย่างรวดเร็วด้วยการคลิกเมาส์เพียงไม่กี่ครั้งหรือคำสั่งเดียวที่พร้อมท์ ด้วยเหตุนี้คุณจึงได้รับผลการแสดงผลที่ดีขึ้นด้วยเว็บเบราเซอร์เช่น สำหรับสภาพแวดล้อมการแสดงผลของ Windows ทุกวันนี้ฟอนต์ที่ประมวลผลด้วย ttfautohint ดูดีที่สุดเมื่อเปิดใช้งาน ClearType นี่คือค่าเริ่มต้นสำหรับ Windows 7 ผลภาพที่ดีจะเห็นได้ในรุ่นล่าสุดของ MacOS X และ GNulinux ที่ใช้ FreeType สำหรับการแสดงผล เป้าหมายของโครงการนี้คือการสร้างบทแรกที่บอกเป็นนัย ๆ ว่านักพัฒนาแบบอักษรสามารถปรับแต่งเพื่อให้ได้คุณภาพสูงสุด บนแพลตฟอร์มที่สนับสนุนทั้งหมด (GNULinux, Windows และ Mac OS X) GUI มีลักษณะค่อนข้างคล้ายกันเครื่องมือที่ใช้คือ Qt ซึ่งจะใช้แพลตฟอร์มเครื่องมือพื้นเมือง ttfautohintGUI บน GNULinux ที่รัน KDE ทั้ง GUI และคอนโซลเวอร์ชันมีคุณสมบัติเหมือนกันซึ่งจะกล่าวถึงในหมวดย่อยถัดไป คำเตือน: ttfautohint ไม่สามารถประมวลผลแบบอักษรเป็นครั้งที่สองได้เสมอ ถ้าแบบอักษรมีร่ายมนตร์คอมโพสิตและไม่ได้ใช้ตัวเลือก - c การประมวลผลใหม่ด้วย ttfautohint จะล้มเหลว ด้วยเหตุนี้ขอแนะนำอย่างยิ่งให้ลบแบบอักษรต้นฉบับที่ไม่ได้รับการยกเว้นเพื่อให้คุณสามารถเรียกใช้ ttfautohint ได้ตลอดเวลา ไบนารี TTY, ttfautohint ทำงานเหมือนตัวกรอง Unix นี่คืออ่านข้อมูลจากอินพุตมาตรฐานหากไม่มีชื่อไฟล์อินพุตและจะส่งเอาต์พุตไปยังเอาท์พุทมาตรฐานถ้าไม่มีระบุชื่อไฟล์เอาต์พุต สายทั่วไปมีลักษณะดังนี้ เพื่อจุดประสงค์ในการสาธิตนี่คือการใช้ท่อและการเปลี่ยนเส้นทาง โปรดสังเกตว่าล่ามบรรทัดคำสั่งเริ่มต้นของ Windowss cmd. exe ไม่สนับสนุนท่อด้วยไฟล์ไบนารี แต่น่าเสียดาย ttfautohintGUI ไม่ส่งผลใด ๆ ไปยังคอนโซล แต่จะยอมรับตัวเลือกบรรทัดคำสั่งเดียวกับ ttfautohint การตั้งค่าเริ่มต้นสำหรับ GUI ตัวเลือกแบบยาวจะได้รับเครื่องหมายขีดกลางหนึ่งหรือสองขีดและมีเครื่องหมายและไม่มีเครื่องหมายเท่ากับระหว่างตัวเลือกและอาร์กิวเมนต์ ซึ่งหมายความว่ารูปแบบต่อไปนี้สามารถยอมรับได้: - foo bar - ฟูบาร์ - บาร์ และ - ฟูบาร์ ด้านล่างชื่อส่วนหมายถึงป้ายคำสั่งใน GUI จากนั้นจะมีชื่อของตัวเลือกบรรทัดคำสั่งที่ยาวและสั้นตามด้วยคำอธิบาย ความเป็นมาและรายละเอียดทางเทคนิคเกี่ยวกับความหมายของตัวเลือกต่างๆจะได้รับในภายหลัง ดูคำแนะนำและคำอธิบายเพื่อดูคำแนะนำ ค่า PPEM ต่ำสุด (เป็นพิกเซล) ที่ชุดคำใบ้จะสร้างขึ้น ค่าเริ่มต้นสำหรับ n คือ 8 ค่า PPEM สูงสุด (เป็นพิกเซล) ที่ชุดคำใบ้จะถูกสร้างขึ้น ค่าดีฟอลต์สำหรับ n คือ 50 - latin-fallback - f ตั้งสคริปต์ fallback เป็นละตินนี่คือใช้โมดูลละตินคำอัตโนมัติแทนไม่ใช่สำหรับ glyphs ทั้งหมดที่ไม่สามารถกำหนดให้กับสคริปต์ได้ ดูรายละเอียดเพิ่มเติมด้านล่าง. ขีด จำกัด การสะกดจิตคือค่า PPEM (เป็นพิกเซล) ซึ่งคำแนะนำจะถูกปิด (โดยใช้คำสั่ง bytecode INSTCTRL) ไม่มีผลต่อขนาดไฟล์ ค่าดีฟอลต์สำหรับ n คือ 200 ซึ่งหมายความว่าตัวอักษรไม่ได้รับการสะกดว่าค่า PPEM มีขนาดใหญ่กว่า 200 โปรดสังเกตว่าคำแนะนำในช่วง hinting-range-max ถึงขีด จำกัด การสะกดคำจะใช้การกำหนดค่านัยสำคัญสำหรับคำแนะนำ - ช่วง - สูงสุด หากต้องการละเว้นขีด จำกัด ให้ใช้ --hinting-limit0 (หรือเลือกช่อง No Hinting Limit ใน GUI) เนื่องจากนี่จะทำให้เกิดการล้นของคณิตศาสตร์ภายในใน rasterizer สำหรับค่าพิกเซลขนาดใหญ่ (ประมาณ 1500 เท่า) ขอแนะนำให้ใช้ไม่ได้ยกเว้นเพื่อการทดสอบ โดยปกติ ttfautohint จะหมุนความสูง x ไปยังพิกเซลพิกเซลโดยที่การปัดเศษขึ้นเล็กน้อย หากตั้งค่าสถานะนี้ค่าในช่วง 6 PPEM ถึง n PPEM จะถูกปัดเศษขึ้นมากขึ้น ค่าเริ่มต้นสำหรับ n คือ 14 ใช้ค่าสถานะนี้เพื่อเพิ่มความถูกต้องของขนาดเล็กถ้าจำเป็นคุณอาจได้รับผลการแสดงผลแปลก ๆ สำหรับ glyphs เช่น a หรือ e ขึ้นอยู่กับการออกแบบแบบอักษร เมื่อต้องการปิดคุณลักษณะนี้ให้ใช้ --increase-x-height0 (หรือเลือกช่อง No x Height increase ใน GUI) ภาพต่อไปนี้ใช้ฟอนต์ Mertz Bold อีกครั้ง ที่หลุม 17 บิตไม่มีตัวเลือก - x และ - w quotot ช่องโหว่ใน glyph e จะมีสีเทามากในภาพรวม FontForge และการแสดงผล GDI ClearType (ซึ่งเป็นค่าดีฟอลต์ใน Windows เวอร์ชันเก่า) จะเต็มไปด้วยสีดำเพราะใช้การแสดงผลแบบ BW ตามแนวแกน y โหมด AutoTint อัตโนมัติแบบ FreeTypes (ซึ่งสอดคล้องกับขั้นตอนของความกว้างของลำต้นแบบเรียบของ ttfautohints) จะจัดเส้นแนวนอนให้เป็นค่าที่ไม่ใช่จำนวนเต็ม (แต่ยังคงไม่ต่อเนื่อง) เพื่อหลีกเลี่ยงการบิดเบือนรูปร่าง glyph ขนาดใหญ่ เช่นเดียวกันเวลานี้มีตัวเลือก - x 17 (และ - w quotquot) --pre-พูดเป็นนัย - p pre-hinting หมายความว่า font bytext เดิมใช้กับ glyph ทั้งหมดก่อนที่จะถูกแทนที่ด้วย bytecode ที่สร้างโดย ttfautohint ซึ่งจะทำให้รู้สึกได้เฉพาะเมื่อตัวอักษรของคุณมีคำแนะนำบางอย่างอยู่แล้วซึ่งจะปรับเปลี่ยนรูปร่างแม้ในขนาด EM (ปกติคือ 2048px) ตัวอย่างเช่นแบบอักษร CJK บางแบบจำเป็นต้องใช้นี้เนื่องจาก bytecode ใช้เพื่อปรับขนาดและเปลี่ยน subglyphs สำหรับแบบอักษรส่วนใหญ่ แต่ไม่ได้เป็นเช่นนี้ ระบุส่วนประกอบ glyph แยกต่างหากแทนการใช้คำว่า hatching composite glyphs โดยรวม การใช้ค่าสถานะนี้จะลดขนาด bytecode ลงอย่างมากมาย แต่อาจส่งผลให้ผลลัพธ์แย่ลง ใน GUI จะคล้ายกัน: หากคุณยกเลิกการทำเครื่องหมาย Process With Components ส่วนประกอบของ glyph จะถูกแยกเป็นส่วน ๆ หากแบบอักษรมีร่ายมนตร์คอมโพสิตและร่ายมนตร์เหล่านั้นถูกสะกดโดยรวม ttfautohint ไม่สามารถประมวลผลข้อมูลของตัวเองได้ใหม่ --สัญลักษณ์. - s ใช้ค่าดีฟอลต์สำหรับความกว้างของลำต้นมาตรฐานและความสูงแทนการหาได้จากตัวอักษรละติน o ใช้ตัวเลือกนี้ (โดยปกติจะใช้ร่วมกับ option - latin-fallback) เพื่อแสดงสัญลักษณ์หรือแบบอักษร dingbat หรือ glyphs ทางคณิตศาสตร์ตัวอย่างเช่นไม่มีตัวอักษร o ซึ่งอาจส่งผลให้มีนัยยะแย่ในขนาดเล็ก --no-ข้อมูล - n อย่าเพิ่มเวอร์ชัน ttfautohint และข้อมูลบรรทัดคำสั่งไปเป็นสตริงเวอร์ชันหรือสตริง (มีชื่อ ID 5) ในตารางชื่อแบบอักษร ใน GUI จะคล้ายกัน: ถ้าคุณยกเลิกการเลือกกล่องข้อมูล Add ttfautohint ข้อมูลจะไม่ถูกเพิ่มลงในตารางชื่อ ยกเว้นเพื่อการทดสอบและการพัฒนาขอแนะนำอย่างยิ่งให้เลือกใช้ตัวเลือกนี้ - สตริงความกว้างลำต้น ttfautohint มีสองขั้นตอนที่แตกต่างกันเพื่อจัดการกับความกว้างลำต้นและตำแหน่งของลำต้น: ราบรื่นและแข็งแรง ก่อนใช้ค่าที่ไม่ต่อเนื่องซึ่งเพิ่มความคมชัดของลำต้นเล็กน้อยโดยไม่มีการบิดเบือนภาพร่างในขณะที่ส่วนหลังจะยึดความกว้างของลำต้นและตำแหน่งต้นกำเนิดเป็นค่าพิกเซลจำนวนเต็มให้มากที่สุดเท่าที่จะเป็นไปได้ส่งผลให้รูปลักษณ์ที่คมชัดขึ้นมีค่าใช้จ่ายในการบิดเบือนมากขึ้น สองขั้นตอนนี้จะถูกแมปไปยังสามเป้าหมายที่เป็นไปได้: render grayscale โดยมีหรือไม่มีการเพิ่มประสิทธิภาพสำหรับตำแหน่ง subpixel (เช่น Mac OS X) การแสดงผล GDI ClearType: รุ่น rasterizer ที่ส่งกลับโดยคำสั่ง bytecode GETINFO อยู่ในช่วง 36 lt version (เช่น Windows XP) การแสดงผล DirectWrite ClearType: รุ่น rasterizer ที่ส่งกลับโดยคำสั่ง bytecode GETINFO คือ gt 38, ClearType ถูกเปิดใช้งานและมีการเปิดใช้งานตำแหน่งย่อยพิกเซล (เช่น Internet Explorer 9 ที่ทำงานบน Windows 7 ) GDI ClearType ใช้โหมดที่คล้ายกับการแสดงผล BW ตามแนวตั้งในขณะที่ DW ClearType ใช้การแสดงผลในโทนสีเทา นอกจากนี้เฉพาะ DW ClearType ให้ตำแหน่ง subpixel ตามแกน x สำหรับสิ่งที่คุ้มค่าของมัน rasterizers รุ่น 36 และรุ่น 38 ใน Microsoft Windows เป็นสองเครื่องมือการแสดงผลที่แตกต่างกันอย่างสิ้นเชิง ตัวเลือกบรรทัดคำสั่งคาดว่าสตริงจะมีได้สูงสุดสามตัวอักษรโดยมีค่า g ที่เป็นไปได้สำหรับ grayscale, G สำหรับ GDI ClearType และ D สำหรับ DW ClearType หากพบจดหมายในสตริง ใช้ความกว้างของลำต้นที่แข็งแรงสำหรับเป้าหมายการแสดงผลที่สอดคล้องกัน ค่าดีฟอลต์คือ G ซึ่งหมายความว่ามีการเปิดใช้งานการจัดการความกว้างของก้านที่แข็งแรงสำหรับ GDI ClearType เท่านั้น หากต้องการใช้การจัดการความกว้างของลำต้นแบบเรียบสำหรับเป้าหมายการแสดงผลทั้งสามรายการให้ใช้สตริงที่ว่างเปล่าเป็นอาร์กิวเมนต์โดยปกติจะใช้ connoted กับ quotquot ใน GUI เพียงแค่ตั้งค่ากล่องกาเครื่องหมายที่สอดคล้องกันเพื่อเลือกความกว้างของความกว้างของลำต้นสำหรับเป้าหมายการแสดงผลที่ระบุ ภาพขนาดย่อของ FontForge ต่อไปนี้ใช้แบบอักษร Mertz Bold (ยังคงอยู่ภายใต้การพัฒนา) จาก Vernon Adams ส่วนด้านซ้ายแสดง glyph g ไม่ จำกัด ที่ 26px ส่วนด้านขวาพร้อมคำแนะนำโดยใช้อัลกอริทึมของ stem stem เรียบ เดียวกัน แต่คราวนี้ใช้ขั้นตอนวิธีที่แข็งแกร่ง โปรดทราบว่าลำต้นเรียงตัวอย่างไรกับเส้นตารางพิกเซล แบบอักษรที่มีบิต 1 ตั้งอยู่ในฟิลด์ fsType ของตาราง OS2 จะถูกปฏิเสธ หากคุณได้รับอนุญาตจากแบบอักษรเจ้าของกฎหมายเพื่อปรับเปลี่ยนแบบอักษรให้ระบุตัวเลือกบรรทัดคำสั่งนี้ หากไม่ได้ตั้งค่าตัวเลือกนี้ ttfautohintGUI จะแสดงการสนทนาเพื่อจัดการกับแบบอักษรดังกล่าวหากจำเป็น ในคอนโซลให้พิมพ์เอกสารสั้น ๆ เกี่ยวกับเอาต์พุตมาตรฐานและออก ไม่ทำงานกับ ttfautohintGUI บน MS Windows บนคอนโซลให้พิมพ์ข้อมูลเกี่ยวกับเวอร์ชันมาตรฐานเอาต์พุตและออก ไม่ทำงานกับ ttfautohintGUI บน MS Windows พิมพ์ข้อมูลการแก้ไขข้อบกพร่องเกี่ยวกับข้อผิดพลาดมาตรฐานขณะประมวลผลแบบอักษร (คุณควรเปลี่ยนเส้นทางไปยังไฟล์) ไม่ทำงานกับ ttfautohintGUI บน MS Windows การจัดวางตารางเวลาแบบเรียลไทม์ของโครงร่างประเภทเป็นเอกสารทางวิชาการที่อธิบายเกี่ยวกับ FreeTypes auto-hinter ในรายละเอียดบางอย่าง เกี่ยวกับโครงสร้างข้อมูลที่อธิบายมันเล็กน้อยออกจากวันที่ แต่อัลกอริทึมตัวเองยังไม่ได้เปลี่ยน ส่วนย่อยถัดไปสองสามส่วนใหญ่ขึ้นอยู่กับบทความนี้แนะนำแนวคิดที่สำคัญบางอย่าง โปรดทราบว่า ttfautohint จะพูดตามทิศทางแนวตั้งเท่านั้น (นี่คือการปรับพิกัด y) ร่ายมนตร์ประกอบด้วยเส้นหนึ่งหรือมากกว่า (เป็นเส้นโค้งปิด) ตัวอย่างเช่น glyph O ประกอบด้วยรูปทรงสองรูปแบบในขณะที่ glyph I มีเพียงตัวเดียว ตัวอักษร O มีรูปทรงสองรูปด้านในและด้านนอกตัวอักษร I มีเพียงเส้นขอบด้านนอกเท่านั้น กลุ่มคือชุดของจุดติดต่อกันของเส้น (รวมถึงจุดควบคุม Bzier) ที่เรียงตามแนวแกนตามแกนพิกัด serif จุดควบคุมและจุดควบคุมแสดงด้วยสี่เหลี่ยมและแวดวงตามลำดับ บรรทัดด้านล่าง DE เรียงตามแนวแกนตามแนวนอนโดยประมาณดังนั้นจึงแบ่งเป็น 7 ส่วน ร่วมกับสองส่วนแนวนอนอื่น ๆ , BC และ FG พวกเขาสร้างสองขอบ (BCFG, DE) ขอบตรงกับค่าพิกัดเดี่ยวในมิติข้อมูลหลักที่เก็บรวบรวมกลุ่มหนึ่งหรือหลายส่วน (อนุญาตให้ใช้เกณฑ์ขนาดเล็ก) ในขณะที่กำลังหาส่วนที่ทำบนโครงร่างที่ไม่มีการแก้ไขการค้นหาขอบจะถูกผูกไว้กับความละเอียดของอุปกรณ์ ดูตัวอย่างด้านล่าง การวิเคราะห์เพื่อหาส่วนและขอบเฉพาะของสคริปต์ ตัวนับอัตโนมัติจะวิเคราะห์แบบอักษรในสองขั้นตอน นี้มีผลต่อการยักยอกของ glyphs ทั้งหมดพยายามที่จะให้พวกเขามีลักษณะเหมือนกัน คำนวณความกว้างของลำต้นมาตรฐานและความสูงของแบบอักษร ค่าจะถูกนำมาจากสัญลักษณ์ตัวอักษร o คำนวณโซนสีน้ำเงินดูด้านล่าง ถ้าความกว้างของลำต้นและความสูงของ glyphs เดียวแตกต่างกันไปตามค่าที่มากหรือถ้า ttfautohint ไม่สามารถค้นหาโซนสีน้ำเงินที่เหมาะสมคำใบ้จะกลายเป็นสิ่งที่น่าสงสารมากจนนำไปสู่การบิดเบือนรูปร่างที่รุนแรง นี่คือการดำเนินการต่อ glyph ค้นหากลุ่มและขอบ เชื่อมโยงขอบเพื่อหาลำต้นและ serifs กระดาษดังกล่าวให้รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ว่าเป็นลำต้นหรือ serif และวิธีการทำงานของอัลกอริทึม สองโซนสีฟ้าที่เกี่ยวข้องกับ glyph a. พิกัดจุดแนวตั้งของร่ายมนตร์ทั้งหมดภายในโซนเหล่านี้จะเรียงตามแนวเดียวกัน เค้าร่างของตัวอักษรบางตัวจะใช้เพื่อกำหนดโซนสีน้ำเงิน แนวคิดนี้เหมือนกับแบบอักษร Type 1: จุดด่างทั้งหมดที่อยู่ในแนวนอนบางพื้นที่จะเรียงตามแนวตั้ง ที่นี่ตารางที่แสดงตัวอักษรที่ใช้โดยโมดูลละตินค่าเป็นรหัสยากในรหัสที่มา ใช้คำแนะนำเพราะ cvtlissubglyph 0 รายละเอียดทางเทคนิคบางอย่าง (ซึ่งคุณอาจข้ามไป): ดัชนีจุดวาบทั้งหมดได้รับการปรับตั้งแต่แต่ละ. ttfautohint subglyph จะเปลี่ยนดัชนีทั้งหมดต่อไปนี้เป็นลำดับ ต้องทำทั้ง bytecode และ subformat ของ OpenTypes GPOS anchor tables ขณะนี้วิธีการทำงานดีบนแพลตฟอร์มทดสอบทั้งหมดมีข้อเสียเปรียบเพียงอย่างเดียวคือการแสดงผลโดยตรงของ. ttfautohint subglyph (นี่คือการแสดงผลเป็นแบบอักษรแบบสแตนด์อโลน) ปิดใช้งานคำแนะนำที่เหมาะสมของ glyphs ทั้งหมดในแบบอักษรภายใต้สถานการณ์ปกตินี้ไม่เคยเกิดขึ้น เพราะ. ttfautohint ไม่มีรายการในตารางแบบอักษร cmap (อย่างไรก็ตามโปรแกรมทดสอบและสาธิตบางอย่างเช่นโปรแกรม FreeTypes ftview หรือโปรแกรมดู glyph อื่น ๆ ที่สามารถเลี่ยงผ่านตาราง cmap อาจได้รับผลกระทบ) ttfautohint จะตรวจสอบว่าควรใช้โมดูลนัยยะอัตโนมัติเพื่อใช้เป็นตัวบ่งชี้สัญลักษณ์ตัวใดตัวหนึ่ง เมื่อต้องการทำเช่นนี้จะตรวจสอบรหัสอักขระ Unicode แบบร่ายมนตร์ว่าเป็นของสคริปต์ที่ระบุหรือไม่ ขณะนี้มีการใช้โมดูล AutoHinting แบบ FreeTypes latin เพียงอย่างเดียว แต่คาดว่าจะมีขึ้น นี่เป็นรายการ hardcoded ของช่วงตัวอักษรที่ hinted โดยโมดูลละตินนี้ คุณสามารถดูได้นอกจากนี้ยังรวมถึงสคริปต์ที่ไม่ใช่ภาษาละติน (ในความหมาย Unicode) ซึ่งมีคุณสมบัติการพิมพ์ที่คล้ายกัน ส่วนเสริมอักษรย่อที่ใส่ไว้ถ้าตัวอักษรสัญลักษณ์ร่ายมนตร์ไม่อยู่ในช่วงของสคริปต์จะไม่เป็นไปตามที่ระบุไว้ (หรือไม่ได้รับการแนะนำโดยโมดูลหลอกลวงอัตโนมัติซึ่งโดยนัยนั้นไม่มีอะไร) ซึ่งสามารถเปลี่ยนแปลงได้โดยระบุสคริปต์ fallback ที่มี option - latin-fallback มีการวางแผนที่จะขยาย ttfautohint เพื่อให้ได้รับตารางวิเคราะห์ OpenType GSUB การแม็ปรหัสตัวอักษรกับดัชนี glyph ทั้งหมดซึ่งสามารถเข้าถึงได้โดยการเปิดหรือปิดคุณสมบัติต่างๆของ OpenType ttfautohint สัมผัสเกือบทุกตาราง SFNT ภายในแบบอักษร TrueType หรือ OpenType โปรดทราบว่าได้รับการสนับสนุนเฉพาะแบบอักษร OpenType ที่มีเค้าร่างแบบ TrueType เท่านั้น แบบอักษร OpenType ที่มีตาราง CFF (ซึ่งมีเค้าร่าง PostScript) ทำงานตามปกติ glyf หนึ่ง glyph ได้รับการเพิ่ม (กล่าวคือ glyph. ttfautohint) คอมโพสิตทั้งหมดได้รับองค์ประกอบเพิ่มเติมทั้งหมดคำแนะนำในตารางจะถูกแทนที่ด้วยใหม่ CVT เป็นการเตรียมการ และ fpgm ตารางเหล่านี้ได้รับการแทนที่ด้วยข้อมูลที่จำเป็นสำหรับไบต์คำแนะนำใหม่ อ้าปากค้าง ตั้งค่าให้ใช้การแสดงผลระดับสีเทาเสมอกับการใส่คำแนะนำแบบมาตรฐานและการปรับเส้นตารางแบบสมมาตรและการปรับสมมาตรให้เป็นแนวนอนในแนวนอน subpixel (ClearType) DSIG ถ้ามีอยู่จะได้รับการแทนที่ด้วยเวอร์ชันหลอกลวง ttfautohint cant ดิจิทัลลงนามแบบอักษรที่คุณต้องทำหลังจากนั้น ชื่อ. รายการเวอร์ชันถูกแก้ไขเพื่อเพิ่มข้อมูลเกี่ยวกับพารามิเตอร์ที่ใช้สำหรับการโทร ttfautohint สามารถควบคุมได้ด้วยตัวเลือก --no-info GPOS hmtx Loca หัว. maxp เสา ปรับปรุงเพื่อให้พอดีกับ glyph. ttfautohint เพิ่มเติม subglyphs เพิ่มเติมในคอมโพสิตและ bytecode hinting ใหม่ LTSH hdmx ตั้งแต่ ttfautohint ไม่ได้ทำอะไร hinting แนวนอนตารางเหล่านี้จะฟุ่มเฟือยและจึงลบ. VDMX นำออกเนื่องจากขึ้นอยู่กับโควต้าเดิมที่ ttfautohint ลบออก โปรแกรมแก้ไขแบบอักษรอาจแก้ไขข้อมูลที่จำเป็นใหม่ในภายหลัง ส่วนนี้จะอธิบายถึงฟังก์ชันเดี่ยวของไลบรารี ttfautohint TTFautohint ร่วมกับฟังก์ชันการเรียกกลับของ TAProgressFunc และ TAInfoFunc ข้อมูลทั้งหมดได้รับการสกัดจากไฟล์ส่วนหัว ttfautOHint. h โดยตรง ค่าดีฟอลต์บางค่า ฟังก์ชันเรียกกลับเพื่อให้ได้ข้อมูลความคืบหน้า curridx ให้ดัชนี glyph ที่กำลังประมวลผลอยู่ในปัจจุบันหากเป็นค่าลบซึ่งเกิดข้อผิดพลาดขึ้น numglyphs holds the total number of glyphs in the font (this value cant be larger than 65535). currsfnt gives the current subfont within a TrueType Collection (TTC), and numsfnts the total number of subfonts. If the return value is non-zero, TTFautohint aborts with TAErrCanceled. Use this for a Cancel button or similar features in interactive use. progressdata is a void pointer to user supplied data. A callback function to manipulate strings in the name table. platformid . encodingid . languageid . and nameid are the identifiers of a name table entry pointed to by str with a length pointed to by strlen (in bytes the string has no trailing NULL byte). Please refer to the OpenType specification for a detailed description of the various parameters, in particular which encoding is used for a given platform and encoding ID. The string str is allocated with malloc the application should reallocate the data if necessary, ensuring that the string length doesnt exceed 0xFFFF. infodata is a void pointer to user supplied data. If an error occurs, return a non-zero value and dont modify str and strlen (such errors are handled as non-fatal). Read a TrueType font, remove existing bytecode (in the SFNT tables prep. fpgm. cvt. and glyf ), and write a new TrueType font with new bytecode based on the autohinting of the FreeType library. It expects a format string options and a variable number of arguments, depending on the fields in options . The fields are comma separated whitespace within the format string is not significant, a trailing comma is ignored. Fields are parsed from left to right if a field occurs multiple times, the last fields argument wins. The same is true for fields which are mutually exclusive. Depending on the field, zero or one argument is expected. Note that fields marked as not implemented yet are subject to change. A pointer of type FILE to the data stream of the input font, opened for binary reading. Mutually exclusive with in-buffer . A pointer of type const char to a buffer which contains the input font. Needs in-buffer-len. Mutually exclusive with in-file . A value of type sizet. giving the length of the input buffer. Needs in-buffer . A pointer of type FILE to the data stream of the output font, opened for binary writing. Mutually exclusive with out-buffer . A pointer of type char to a buffer which contains the output font. Needs out-buffer-len. Mutually exclusive with out-file. Deallocate the memory with free . A pointer of type sizet to a value giving the length of the output buffer. Needs out-buffer . A pointer of type TAProgressFunc. specifying a callback function for progress reports. This function gets called after a single glyph has been processed. If this field is not set or set to NULL, no progress callback function is used. A pointer of type void to user data which is passed to the progress callback function. A pointer of type unsigned char to a string (in UTF-8 encoding) which verbally describes the error code. You must not change the returned value. An integer (which must be larger than or equal to 2) giving the lowest PPEM value used for autohinting. If this field is not set, it defaults to TAHINTINGRANGEMIN . An integer (which must be larger than or equal to the value of hinting-range-min ) giving the highest PPEM value used for autohinting. If this field is not set, it defaults to TAHINTINGRANGEMAX . An integer (which must be larger than or equal to the value of hinting-range-max ) which gives the largest PPEM value at which hinting is applied. For larger values, hinting is switched off. If this field is not set, it defaults to TAHINTINGLIMIT. If it is set to 0, no hinting limit is added to the bytecode. An integer (1 for on and 0 for off, which is the default) which specifies whether horizontal stems should be snapped and positioned to integer pixel values for normal grayscale rendering. An integer (1 for on, which is the default, and 0 for off) which specifies whether horizontal stems should be snapped and positioned to integer pixel values for GDI ClearType rendering, this is, the rasterizer version (as returned by the GETINFO bytecode instruction) is in the range 36 lt version lt 38 and ClearType is enabled. An integer (1 for on and 0 for off, which is the default) which specifies whether horizontal stems should be snapped and positioned to integer pixel values for DW ClearType rendering, this is, the rasterizer version (as returned by the GETINFO bytecode instruction) is gt 38, ClearType is enabled, and subpixel positioning is enabled also. An integer. For PPEM values in the range 6 lt PPEM lt increase-x-height. round up the fonts x height much more often than normally. If it is set to 0, this feature is switched off. If this field is not set, it defaults to TAINCREASEXHEIGHT. Use this flag to improve the legibility of small font sizes if necessary. If this integer is set to 1 (which is the default), ttfautohint handles composite glyphs as a whole. This implies adding a special glyph to the font, as documented here. Setting it to 0, the components of composite glyphs are hinted separately. While separate hinting of subglyphs makes the resulting bytecode much smaller, it might deliver worse results. However, this depends on the processed font and must be checked by inspection. An integer (1 for on and 0 for off, which is the default) to specify whether native TrueType hinting shall be applied to all glyphs before passing them to the (internal) autohinter. The used resolution is the em-size in font units for most fonts this is 2048ppem. Use this if the hints move or scale subglyphs independently of the output resolution. A pointer of type TAInfoFunc. specifying a callback function for manipulating the name table. This function gets called for each name table entry. If not set or set to NULL, the table data stays unmodified. A pointer of type void to user data which is passed to the info callback function. A pointer of type const char to a null-terminated string which gives a list of comma separated PPEM values or value ranges at which no x-height snapping shall be applied. A value range has the form value1 - value2 . meaning value1 lt PPEM lt value2 . Whitespace is not significant a trailing comma is ignored. If the supplied argument is NULL, no x-height snapping takes place at all. By default, there are no snapping exceptions. Not implemented yet. If the font has set bit 1 in the fsType field of the OS2 table, the ttfautohint library refuses to process the font since a permission to do that is required from the fonts legal owner. In case you have such a permission you might set the integer argument to value 1 to make ttfautohint handle the font. The default value is 0. An integer which specifies the default script for glyphs not in the latin range. If set to 1, the latin script is used (other scripts are not supported yet). By default, no script is used (value 0 this disables autohinting for such glyphs). Set this integer to 1 if you want to process a font which lacks the characters of a supported script, for example, a symbol font. ttfautohint then uses default values for the standard stem width and height instead of deriving these values from a scripts key character (for the latin script, it is character o). The default value is 0. If this integer is set to 1, lots of debugging information is print to stderr. The default value is 0. Obviously, it is necessary to have an input and an output data stream. All other options are optional. hinting-range-min and hinting-range-max specify the range for which the autohinter generates optimized hinting code. If a PPEM value is smaller than the value of hinting-range-min. hinting still takes place but the configuration created for hinting-range-min is used. The analogous action is taken for hinting-range-max. only limited by the value given with hinting-limit. The fonts gasp table is set up to always use grayscale rendering with grid-fitting for standard hinting, and symmetric grid-fitting and symmetric smoothing for horizontal subpixel hinting (ClearType). ttfautohint cant process a font a second time (well, it can, if the font doesnt contain composite glyphs). Just think of ttfautohint as being a compiler, a tool which also cant process its created output again. Please read the files INSTALL and INSTALL. git (part of the source code bundle) for instructions how to compile the ttfautohint library together with its front-ends. Market opportunities Index binary options are an up-and-coming favourite among traders worldwide. Nasdaq, SampP500, Dow Jones และ FTSE100 เป็นตัวอย่างที่ดีของดัชนีที่สะท้อนถึงกำลังเศรษฐกิจของเศรษฐกิจของตนที่ผู้ค้าสามารถลงทุนได้โดยทั่วไปดัชนีจะประกอบไปด้วย .. การซื้อขายหลักทรัพย์ในตลาดหลักทรัพย์เป็นหลักในการเก็งกำไรเกี่ยวกับการขึ้นหรือลงในหุ้นของ บริษัท ในระยะเวลาที่กำหนดไว้ล่วงหน้า BinaryBook มีสินค้าหลากหลายเช่น Barclays, Volkswagen, BMW, Allianz SE, Microsoft และอีกมากมาย Stock trading usually gives.. Commodities Commodities trading comprise of transacting in raw or primary materials. The commodity market can reap high return on investments and market fluctuations are more than profitable to traders. Trading commodities with BinaryBook is easy and simple. สกุลเงินใด ๆ การซื้อขายสกุลเงินเป็นวิธีการทำธุรกรรมในอุตสาหกรรมตัวเลือกไบนารีซึ่งสามารถสร้างรายได้ขั้นสูงสำหรับทั้งผู้ค้ามืออาชีพและผู้ค้ามือใหม่ Trading currencies within the binary options boundary is today an accessible luxury to traders worldwide. สกุลเงิน .. เทรดดิ้งมือถือต้องการความช่วยเหลือ

No comments:

Post a Comment