จากเบื้องหน้ายังมีเบื้องหลัง

Read it in Loop | Loopless

นับตั้งแต่ยุคสื่อสิ่งพิมพ์มาจนถึงแอปพลิเคชั่น อุปกรณ์ปลายทางที่รองรับต่อการอ่านที่เปลี่ยนไปตามยุคสมัย จากหน้าแผ่นกระดาษนำมาสู่หน้าจอมือถือหรือแท็บเล็ต ฟอนต์จึงต้องการการจัดการเฉพาะเพื่อรองรับการแสดงผลฟอนต์บนหน้าจอที่มีขนาดและความละเอียดแตกต่างกัน การจัดการดังกล่าวเรียกว่า “Hinting” หรือการกำหนดค่าให้คอมพิวเตอร์ประมวลผลบนหน้าจอเพื่อให้ใกล้เคียงกับแบบจริงของฟอนต์มากที่สุด ฟอนต์ที่ถูกจัดการแล้วก็จะสามารถทำหน้าที่ได้อย่างลื่นไหลยามต้องไปปรากฏบนสื่อต่างๆ และมีรูปร่างหน้าตาเป็นมาตรฐานเดียวกันในทุกอุปกรณ์

เพราะการเลือกฟอนต์ใช้งานไม่ได้จบแค่เฉพาะเรื่องหน้าตาของแบบ แต่ยังมีเรื่องการจัดการทางเทคนิคเพื่อการแสดงผลและความสอดคล้องกับแพลตฟอร์มต่างๆ ตลอดจนเทคโนโลยีรองรับที่เปลี่ยนแปลงอยู่ตลอดเวลารวมอยู่ในสมการด้วย

คำถามสำคัญคือ ถ้าหากการจัดการทั้งหมดที่ว่ามาไม่มีอยู่ในฟอนต์ที่เราเลือกใช้ จริงอยู่ว่าเราอาจใช้งานฟอนต์ได้ตามปกติ ตราบเท่าที่เราไม่มีความจำเป็นต้องใช้ฟอนต์นั้นบนสื่อออนไลน์ เป็นเพียงแค่การใช้งานแบบออฟไลน์ พิมพ์ข้อความต่างๆ โดยไม่ส่งต่อสู่ปลายทางผ่านอินเทอร์เน็ตหรือแสดงผลผ่านหน้าเว็บไซต์ใดๆ ทั้งสิ้น เราจะสามารถใช้งานได้ต่อเนื่องไปโดยไม่พบปัญหา แต่เมื่อใดที่ต้องออนไลน์เมื่อไหร่ “ฟอนต์ที่ไม่มีการจัดการเบื้องหลัง” ก็จะกลายเป็นปัญหาให้ปวดหัวอย่างแน่นอน จริงอยู่ที่ว่าถ้าต้องใช้งานจริงๆ แล้วเจอปัญหาอะไรเกิดขึ้น ก็เพียงแค่เปลี่ยนไปใช้ฟอนต์อื่น ฟังดูเหมือนไม่น่ามีอะไรยาก? แต่ก่อนจะผละไปกดเปลี่ยนฟอนต์ มาลองฟังเรื่องเล่าเหล่านี้ดูก่อน

ตัวเต้าหู้

หลายคนอาจเคยเจอเหตุการณ์นี้เวลาเข้าอ่านเว็บไซต์จากต่างประเทศที่เป็นภาษาอื่นๆ ที่ไม่ใช่ละติน หรือบางครั้งที่คัดลอกข้อมูลจากเว็บไซต์แล้ววางลงในโปรแกรมอื่น การแสดงผลของตัวอักษรนั้นกลายเป็นช่องสี่เหลี่ยมที่เราเรียกกันติดปากว่า “ตัวเต้าหู้” แท้จริงแล้วเกิดจากการที่คอมพิวเตอร์เรียกตัวหนังสือจาก “ที่อยู่” มาให้แสดงผลผิดตัว ลองนึกถึงรังผึ้งซึ่งเหมือนช่องใส่ตัวอักษรในไฟล์ ซึ่งตัวอักษรแต่ละตัวจะมีช่องของตัวเอง ถ้าเราใส่ผิดเวลาเรากดแป้นพิมพ์ คอมพิวเตอร์ก็จะเรียกตัวหนังสือมาให้เราผิดตัว หรือหากไม่มีตัวอักษรอยู่ในช่องนั้น

อย่างเช่นว่า หากเราต้องการใช้คำว่า café ตามรากศัพท์ที่เป็นภาษาฝรั่งเศส แต่ฟอนต์ที่เราใช้ ไม่มีตัว é (e acute) ตำแหน่งของมันก็จะปรากฏเป็นตัวเต้าหู้ขึ้นมาแทนที่ทันที บางคนก็แก้ปัญหาเฉพาะหน้าด้วยการไปเอา apostrophe มาใส่แทนซึ่งผิดที่ผิดตำแหน่ง ส่งผลให้ความหมายก็เปลี่ยนไป

ภาษาต่างดาว

%&*#_*+- แน่นอนว่าเราคงไม่ได้เจตนาจะสบถใส่หรือด่าทอใคร

หากแต่ฟอนต์ของเราเข้ารหัสคนละแบบกับของผู้รับ หรือถ้ากลับไปที่เรื่องรังผึ้ง ฟอนต์ของเราก็คงจะเป็นรังผึ้งคนละประเภทกัน มันจึงไม่สามารถส่งผ่านใจความได้เพราะคอมพิวเตอร์เรียกตัวหนังสือมาให้เราผิดตัว เมื่อข้อความไปถึง มันจึงกลายเป็น “ภาษาต่างดาว” อย่างที่เห็น

สระลอย (หรือบางทีก็จม)

คล้ายจะเป็นปัญหาใหญ่ที่ชวนให้กราฟิกดีไซเนอร์หงุดหงิดใจ ตลอดจนคนทำเนื้อหามานั่งพิสูจน์อักษรก็แก้ไขกันวุ่นวาย สระลอย แท้จริงเป็นการเรียกที่ผิด เพราะแต่ไหนแต่ไร “สระ” ก็ไม่เคยเคลื่อนไปจากตำแหน่ง หากแต่เป็น “วรรณยุกต์” ต่างหากที่ลอย  ปรากฏการณ์นี้มีสาเหตุมาจากการที่ตัวฟอนต์ไฟล์ไม่มีคำสั่ง OpenType ฝังมาด้วย หรือโปรแกรมที่ใช้งานไม่รองรับชุดคำสั่งที่ฝังมาในฟอนต์ไฟล์ เมื่อคำสั่งไม่ทำงาน วรรณยุกต์จึงกระเด็นขึ้นไปอยู่สูงกว่าชั้นที่ัมันควรอยู่ นับเป็นกลุ่มปัญหาที่พบบ่อยในอดีตและยังคงพบได้อยู่บ้างในปัจจุบัน แต่ในส่วนของ “วรรณยุกต์จม” จะเป็นปัญหาที่มากับระบบใหม่ชื่อว่า mark ที่มาแทนที่ระบบเดิม ซึ่งแท้จริงแล้วปัญหาไม่ได้เกิดจากตัวฟอนต์ หากแต่มาจากการที่ผู้ใช้ยังไม่ได้เข้าไปตั้งค่าในตัวโปรแกรมที่ใช้งานฟอนต์ หรือเลือกใช้ฟอนต์ไม่ตรงกับที่ตัวโปรแกรมรองรับ

ส่วนสูงของเราไม่เท่ากัน

ทั้งๆ ที่เป็นฟอนต์ในขนาดเดียวกันแท้ๆ แต่ส่วนสูงของภาษาไทยกับภาษาอังกฤษต่างกันมากเสียเหลือเกิน ปัญหานี้พบได้บ่อยครั้งโดยเฉพาะเมื่อมีความจำเป็นต้องใช้ตัวอักษรภาษาไทย ร่วมกับตัวอักษรภาษาอังกฤษจากคนละฟอนต์กัน ซึ่งหลายครั้งที่ผู้ใช้งานต้องคอยปาดประโยคไปมาเพื่อเปลี่ยนขนาดตัวอักษรระหว่างภาษาไทยกับภาษาอังกฤษ ให้มีขนาดที่พอดีกัน ถ้าหากเป็นเอกสารไม่กี่หน้าก็อาจใช้เวลาไม่มากนัก แต่ถ้าหากเป็นบทความหรือหนังสือหนาเป็นเล่มนั้น แทบไม่อยากนึกกันเลยว่าต้องใช้เวลามากขนาดไหน ปัญหาเรื่องส่วนสูงที่ไม่เท่ากันนี้เกิดจากอะไร? คำตอบคือ เพราะภาษาไทยเป็นภาษาที่มีการประกอบคำซับซ้อน (Complex script) มีวรรณยุกต์ 2 ชั้น และมีสระล่าง 2 ชั้นเช่นกัน ซึ่งในช่วงสิบกว่าปีที่ผ่านมา ข้อจำกัดของตัวโปรแกรมยุคนั้นเองก็ยังไม่รองรับการจัดการตรงนี้ ทำให้โดยมากแล้วผู้ที่ต้องทำหน้าที่แก้ปัญหาหน้างานดังกล่าวเลือกที่จะใช้วิธีลดขนาดของตัวอักษรให้เล็กลงทั้งชุด เพื่อให้วรรณยุกต์ชั้น 2 และสระชั้นล่าง ยังอยู่ในพื้นที่ตัวพิมพ์ (Bounding box) เพราะหากปล่อยให้ตัวอักษรเกินพื้นที่ตัวพิมพ์ออกไปจะทำให้ไม่สามารถแสดงผลส่วนที่เกินพื้นที่ตัวพิมพ์ออกไปได้นั่นเอง ต่อมาพบว่าการแก้ไขปัญหาแบบนั้นนำความยุ่งยากมาให้ภายหลัง เมื่อมีความจำเป็นต้องใช้ตัวอักษรร่วมกันมากกว่า 1 แบบขึ้นไปอย่างที่กล่าวมาแล้วข้างต้น นี่ยังไม่นับรวมถึงการที่ปัจจุบันมีการใช้งานร่วมกันมากกว่า 2 ภาษาในหน้าเดียวกัน ปัจจุบันโปรแกรมหลายอย่างสามารถตั้งค่าที่ทำให้แสดงผลได้ปกติแล้ว จึงทำให้สามารถทำตัวไทยให้สูงขึ้นมาใกล้เคียงกับตัวละตินได้มากกว่าเมื่อก่อน ทำให้ในแง่การใช้งานควบคู่กับฟอนต์ต่างประเทศต่างก็จะทำให้ใช้งานได้สะดวกกว่า ซึ่งเป็นปัญหาที่เกิดและจบไปพร้อมกับเทคโนโลยีที่จำกัดในช่วงแรกด้วยการไปลดสเกลฟอนต์จากขนาดปกติ

ฟอนต์แสดงผลช้า 

คำกล่าวที่ว่า มาช้ายังดีกว่าไม่มา คงไม่ใช่คำปลอบใจที่น่าอภิรมย์เท่าใดนักสำหรับเรื่องนี้ ลองคิดเล่นๆ ว่าถ้าเราเป็นผู้ใช้งานที่ต้องเข้าไปยังหน้าเว็บไซต์หนึ่ง แต่ต้องมาเสียเวลารอโหลดตัวหนังสือนานหลายวินาที ซึ่งอาจกลายเป็นช่วงชี้ชะตาให้เราไม่กลับไปยังเว็บนั้นอีกและหันไปเข้าเว็บคู่แข่งแทนเลยก็เป็นได้ แต่เดี๋ยวก่อน อย่าเพิ่งโยนความผิดทั้งหมดให้ฟอนต์ เพราะในความเป็นจริงต้นเหตุของฟอนต์ดาวน์โหลดช้าอาจไม่ได้เกิดจากตัวฟอนต์เอง แต่เป็นปัจจัยอื่นๆ ที่แวดล้อมฟอนต์อยู่ อาทิ อินเตอร์เนตที่ใช้ไม่แรง เซิร์ฟเวอร์ไม่รองรับ หรือแม้แต่ตัวหน้าเว็บเองที่อุดมไปด้วยไฟล์ภาพขนาดมหึมาจำนวนมาก โดยความรับผิดชอบในส่วนของไฟล์ฟอนต์นั้น อันดับแรกออาจมาจากการฝังไฟล์ฟอนต์ที่มีขนาดใหญ่มากๆ ไว้กับเซิร์ฟเวอร์ซึ่งก็มักจะเป็นไฟล์ฟอนต์รุ่นเก่า จากตรงนี้พอจำเป็นต้องใช้หลายน้ำหนักก็ต้องฝังหลายไฟล์ ความช้าก็ย่อมเกิดขึ้นอย่างหลีกเลี่ยงไม่ได้ อย่างไรก็ตามทางแก้อาจหมายถึงการเลือกซื้อฟอนต์ที่ได้มาตรฐานมาใช้งาน เพราะเทคโนโลยีที่มากับไฟล์ทำให้สามารถทำให้ไฟล์มีขนาดได้เล็กกว่า หรือหากไม่มีความจำเป็นต้องฝังไฟล์ไว้กับตัวเว็บ การสตรีมมิ่งจากเว็บโฮสต์ที่เชื่อถือได้โดยตรงมาที่ไซต์เลย ก็น่าจะช่วยอุดรอยรั่วให้ปัญหานี้พอจะทุเลาลงไปได้บ้าง

 

โดยสรุปแล้ว ที่มาของปัญหาต่างๆ เกิดมาจาก 2 ส่วนหลักๆ อย่างใดอย่างหนึ่งหรือประกอบกัน คือ

  • การเลือกใช้ฟอนต์ไฟล์ผิดประเภท

เราต้องเข้าใจก่อนว่า ฟอนต์ไฟล์ไม่ได้มีเพียงนามสกุลเดียว แต่ละสกุลมีเงื่อนไขและข้อจำกัดแตกต่างกัน ซึ่งหมายถึงการรองรับการใช้งานบนหน้าที่ความรับผิดชอบที่แตกต่างกันด้วย อาทิ สกุลไฟล์ .otf และ .ttf เหมาะสำหรับการใช้งานในสิ่งพิมพ์ หากแต่ฟอนต์สกุล .woff หรือ .woff2 เหมาะสำหรับการใช้งานบนเว็บไซต์ เป็นต้น ดังนั้นหากมีการเลือกใช้ฟอนต์ไฟล์ไม่สอดคล้องกับแพลทฟอร์มที่ใช้งาน ก็ย่อมจะทำให้เกิดปัญหา ด้วยเหตุนี้ การมีข้อมูลที่ถูกต้องเกี่ยวกับไฟล์ฟอนต์แต่ละประเภทและลักษณะการใช้งาน จึงน่าจะเป็นทางออกของเรื่องนี้ได้

  • ฟอนต์ไฟล์ไม่สอดรับกับเทคโนโลยีปัจจุบัน

ฟอนต์จัดเป็นซอฟต์แวร์ชนิดที่ต้องมีการเปิดเพื่อแสดงผลผ่านโปรแกรมหรือซอฟต์แวร์ชนิดอื่นๆ แต่การเกิดขึ้นที่ไม่พร้อมกันของฟอนต์และโปรแกรมอาจส่งผลให้เกิดปัญหาดังกล่าวได้  เปรียบได้กับการที่เราไม่สามารถนำแผ่นเสียงบรรจุลงได้พอดีกับช่องใส่ซีดีในคอมพิวเตอร์ด้วยเหตุที่อุปกรณ์ทั้งสองยึดโยงอยู่กับเทคโนโลยีที่แตกต่างกัน เช่นเดียวกับเรื่องของเทคโนโลยีของฟอนต์ไฟล์และโปรแกรม กรณีนี้สามารถแก้ไขได้ที่ตัวฟอนต์ไฟล์ โดยการพัฒนาและออกแบบฟอนต์ไฟล์ให้มีเทคโนโลยีที่พร้อมรองรับกับการใช้งานในอนาคต ดังเช่นที่มีจัดการฟอนต์ไฟล์ด้วยเทคโนโลยีระบบ Mark แทนระบบ ligature ที่มาแต่เดิม

  • การตั้งค่าเฉพาะในโปรแกรม

ฟอนต์ในระบบ Mark เป็นระบบที่ถูกใช้อย่างแพร่หลายในฟอนต์ของกลุ่มภาษา Complex Scripts เป็นเทคโนโลยีที่เป็นมาตรฐานของปัจจุบัน การตั้งค่าภายโปรแกรมอย่างถูกวิธีจะทำให้แบบตัวอักษรแสดงผลได้อย่างถูกต้องและครบถ้วนสมบูรณ์

—————

วิธีการตั้งค่าการใช้งานฟอนต์กับโปรแกรมต่างๆ ของ Adobe

Illustrator

  1. เปิดโปรแกรม Illustrator และเปิดที่เมนูด้านบน เลือก Edit > Preferences > Type (หรือกด Ctrl + K)
  2. ในช่อง Language Options เลือก Show Indic Options
  3. Select ข้อความที่ต้องการ
  4. มายังหน้าต่าง Paragraph แล้วกดที่มุมขวาบน
  5. จะเห็นว่าเดิมถูกเลือกเป็น Adobe Every-line Composer
  6. ให้เลือกเป็น Middle Eastern & South Asian Every-line Composer แทน

InDesign

  1. Select ข้อความที่ต้องการ
  2. มายังหน้าต่าง Paragraph แล้วกดที่มุมขวาบน
  3. จะเห็นว่าเดิมมีการตั้งค่าที่ถูกเลือกไว้ ให้เลือกเป็น Adobe World-Ready Single-line Composer แทน

Photoshop

  1. เปิดที่เมนูด้านบน เลือก Edit > Preferences > Type
  2. เลือกที่ Middle Eastern and South Asian แล้วทำการปิดและเปิดโปรแกรมใหม่