Kerning: τι είναι και πώς ρυθμίζεται το διάστημα μεταξύ γραμμάτων

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-24 Χρόνος ανάγνωσης: 9 λεπ

Kerning — είναι η επιλεκτική προσαρμογή του διαστήματος μεταξύ συγκεκριμένων ζευγών χαρακτήρων για την επίτευξη οπτικής ομοιομορφίας του κειμένου. Σε αντίθεση με το tracking, το οποίο αλλάζει ομοιόμορφα την απόσταση μεταξύ όλων των χαρακτήρων, το kerning λαμβάνει υπόψη το σχήμα κάθε ζεύγους γραμμάτων: A και V, T και o, W και a. Χωρίς kerning, οι συνδυασμοί με προεξέχοντα στοιχεία φαίνονται ανομοιόμορφοι — μεταξύ των γραμμάτων δημιουργούνται οπτικά κενά ή συμπίεση. Σύμφωνα με την τεκμηρίωση της Apple NSAttributedString, το kerning στο iOS ρυθμίζεται μέσω του χαρακτηριστικού .kern και υποστηρίζει τόσο θετικές όσο και αρνητικές τιμές.

Κύρια σημεία

  • Kerning — επιλεκτική αλλαγή του διαστήματος μεταξύ ζευγών χαρακτήρων για οπτική ομοιομορφία του κειμένου
  • Διαφέρει από το tracking: το kerning λειτουργεί με ζεύγη, το tracking — με ολόκληρο το κείμενο ομοιόμορφα
  • Στο iOS ρυθμίζεται μέσω NSAttributedString με το χαρακτηριστικό .kern στο UIKit
  • Στο Android υλοποιείται μέσω letterSpacing σε TextView ή SpannableString
  • Είναι κρίσιμο για επικεφαλίδες και μεγάλα μεγέθη γραμματοσειράς, όπου η ανομοιομορφία διαστημάτων είναι ορατή με γυμνό μάτι

Τι είναι το kerning στην τυπογραφία

Kerning — είναι η διαδικασία χειροκίνητης ή αυτόματης προσαρμογής της απόστασης μεταξύ συγκεκριμένων ζευγών χαρακτήρων για την εξάλειψη οπτικών τεχνουργημάτων. Το πρόβλημα προκύπτει επειδή κάθε γράμμα έχει μοναδική γεωμετρία: το A έχει κορυφή, το V — δεξιά κλίση, το T — φαρδιά εγκάρσια ράβδο. Όταν τέτοια γράμματα βρίσκονται το ένα δίπλα στο άλλο, η απόσταση μεταξύ των περιγραμμάτων τους φαίνεται ανομοιόμορφη, αν και το διάστημα μεταξύ χαρακτήρων (set width) είναι το ίδιο.

Οι πίνακες kerning της γραμματοσειράς περιέχουν ζεύγη χαρακτήρων με προκαθορισμένες τιμές προσαρμογής. Σε μια καλή γραμματοσειρά μπορεί να υπάρχουν από 300 έως 2000 ζεύγη kerning. Επαγγελματικές γραμματοσειρές — όπως η SF Pro από την Apple ή η Roboto από την Google — περιλαμβάνουν προσεκτικά επεξεργασμένους πίνακες kerning που καλύπτουν όλους τους πιθανούς συνδυασμούς γραμμάτων λατινικού και κυριλλικού αλφαβήτου. Σύμφωνα με τον Οδηγό Kerning του Fontshop, η ποιότητα των πινάκων kerning είναι ένα από τα κύρια σημάδια μιας επαγγελματικής γραμματοσειράς.

Οπτικό αποτέλεσμα του kerning είναι ιδιαίτερα αισθητό σε επικεφαλίδες, λογότυπα και κείμενο μεγάλων μεγεθών (από 24 pt). Σε μικρό κείμενο (12-14 pt) οι αποστάσεις μεταξύ γραμμάτων είναι μικρές και το kerning είναι λιγότερο αισθητό, αν και συνεχίζει να λειτουργεί. Τα προγράμματα περιήγησης ιστού και τα κινητά λειτουργικά συστήματα εφαρμόζουν ενσωματωμένο kerning από προεπιλογή, αλλά ο προγραμματιστής μπορεί να το απενεργοποιήσει ή να το προσαρμόσει σε συγκεκριμένο σχέδιο.

Kerning και tracking: βασικές διαφορές

Οι αρχάριοι προγραμματιστές συχνά μπερδεύουν το kerning και το tracking, αλλά αυτές είναι θεμελιωδώς διαφορετικές παράμετροι τυπογραφίας. Το kerning λειτουργεί σε επίπεδο ζευγών χαρακτήρων και προσαρμόζει την απόσταση μόνο μεταξύ συγκεκριμένων συνδυασμών όπου η γεωμετρία των γραμμάτων δημιουργεί οπτική ανισορροπία. Το tracking (letter-spacing) αλλάζει το διάστημα μεταξύ όλων των χαρακτήρων του επιλεγμένου τμήματος εξίσου — αυξάνοντάς το ή μειώνοντάς το ομοιόμορφα.

Πότε εφαρμόζεται το tracking: για βελτίωση της αναγνωσιμότητας μικρού κειμένου (θετικό tracking), για δημιουργία τονισμένων επικεφαλίδων (αρνητικό tracking), για styling κειμένου στο σχεδιασμό διεπαφών. Το tracking ορίζεται με αριθμητική τιμή και εφαρμόζεται σε κάθε χαρακτήρα, συμπεριλαμβανομένων των ήδη kerned ζευγών — οι διορθώσεις kerning διατηρούνται, αλλά προστίθεται μια γενική μετατόπιση από πάνω τους.

ΠαράμετροςKerningTracking
Πεδίο εφαρμογήςΜεμονωμένα ζεύγη χαρακτήρωνΟλόκληρο το τμήμα κειμένου
ΤιμήΑτομική για κάθε ζεύγοςΕνιαία για όλους τους χαρακτήρες
ΣκοπόςΟπτική ομοιομορφίαΡύθμιση πυκνότητας κειμένου
Χαρακτηριστικό iOS.kern σε NSAttributedStringletter-spacing σε CSS
ΟρατότηταΣε επικεφαλίδες από 24ptΣε όλα τα μεγέθη

Σημαντικός κανόνας: σε αρνητικό tracking (συμπίεση) παρακολουθείτε τα ζεύγη kerning — μπορεί να δημιουργήσουν ανεπιθύμητες επικαλύψεις γραμμάτων. Στο CSS, η ιδιότητα letter-spacing εφαρμόζεται πάνω από τον πίνακα kerning της γραμματοσειράς, και σε ισχυρή συμπίεση (letter-spacing: -1px) οι διορθώσεις kerning μπορεί να οδηγήσουν σε συγχώνευση χαρακτήρων.

Υλοποίηση kerning στο iOS μέσω NSAttributedString

Στο iOS, το kerning διαχειρίζεται μέσω του χαρακτηριστικού .kern σε NSAttributedString. Η τιμή του χαρακτηριστικού είναι Float, όπου ένας θετικός αριθμός αυξάνει το διάστημα, αρνητικός το μειώνει, και το 0 απενεργοποιεί το kerning. Η προεπιλεγμένη τιμή είναι nil, που σημαίνει χρήση του πίνακα kerning της γραμματοσειράς. Το κύριο API για εργασία με kerning είναι το NSMutableAttributedString με προσθήκη του χαρακτηριστικού σε ένα εύρος κειμένου.

swift
let text = "Kerning in mobile interfaces"
let attributedText = NSMutableAttributedString(
    string: text
)

// Ενεργοποίηση kerning (χρήση πίνακα γραμματοσειράς)
attributedText.addAttribute(
    .kern,
    value: 0.5,
    range: NSRange(
        location: 0,
        length: text.count
    )
)

// Εφαρμογή σε UILabel
label.attributedText = attributedText

Προεπιλεγμένη τιμή .kern = nil ενεργοποιεί το kerning από τον πίνακα της γραμματοσειράς. Εάν χρειάζεται να απενεργοποιήσετε πλήρως το kerning — ορίστε .kern = 0. Οι τιμές 0.0 και nil είναι διαφορετικές καταστάσεις: το nil χρησιμοποιεί τον πίνακα, το 0 εξαναγκάζει μηδενισμό όλων των ζευγών kerning. Σύμφωνα με τον Οδηγό Προγραμματισμού Κειμένου της Apple, η ρητή ορισμός 0 είναι χρήσιμη για μονοδιάστατο κείμενο ή περιπτώσεις όπου το kerning ενοχλεί — για παράδειγμα, σε κουμπιά σταθερού πλάτους.

SwiftUI παρέχει τον τροποποιητή .kerning() για Text. Σε αντίθεση με το UIKit, στο SwiftUI το kerning ορίζεται σε επίπεδο προβολής, όχι σε χαρακτηρισμένη συμβολοσειρά. Ο τροποποιητής δέχεται CGFloat και εφαρμόζεται σε ολόκληρο το κείμενο εντός του μπλοκ Text. Για μερικό kerning στο SwiftUI χρησιμοποιείται συνδυασμός του τελεστή + για Text και ξεχωριστών τροποποιητών.

swift
struct KerningView: View {
    var body: some View {
        Text("Επικεφαλίδα με kerning")
            .kerning(1.0)
            .font(.title)
    }
}

Απόδοση: Το NSAttributedString με χαρακτηριστικό kerning υπολογίζει εκ νέου τις θέσεις χαρακτήρων κατά την απόδοση. Για στατικό κείμενο αυτό συμβαίνει μία φορά. Για δυναμικό κείμενο (μεταβαλλόμενο κείμενο σε UICollectionView) — κάθε φορά κατά την αλλαγή. Η χρήση μεγάλου εύρους με kerning σε μακριές συμβολοσειρές (πάνω από 500 χαρακτήρες) μπορεί να μειώσει τα FPS κατά την κύλιση.

Ρύθμιση kerning στο Android μέσω letterSpacing

Στο Android, το kerning διαχειρίζεται μέσω της ιδιότητας letterSpacing σε TextView και XML διάταξη. Το χαρακτηριστικό είναι τύπου Float και λειτουργεί ως πολλαπλασιαστής του μεγέθους γραμματοσειράς σε em. Η τιμή 0 αντιστοιχεί στο προεπιλεγμένο kerning, θετική — αυξάνει το διάστημα, αρνητική — μειώνει. Το letterSpacing είναι διαθέσιμο από το API Level 21 (Android 5.0 Lollipop).

Υλοποίηση μέσω SpannableString επιτρέπει την εφαρμογή kerning σε ένα μέρος της συμβολοσειράς, όχι σε ολόκληρο το κείμενο. Χρησιμοποιείται η κλάση ScaleXSpan ή προσαρμοσμένο ReplacementSpan για ακριβή έλεγχο. Σύμφωνα με τον Οδηγό Προγραμματιστή Android, το ScaleXSpan κλιμακώνει τους χαρακτήρες σε πλάτος, προσομοιώνοντας την αλλαγή διαστήματος μεταξύ χαρακτήρων, αλλά δεν παρέχει άμεσο έλεγχο στα ζεύγη kerning.

groovy
// Σε διάταξη XML
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text with kerning"
    android:letterSpacing="0.05" />

// Προγραμματιστικά σε Kotlin
val textView = findViewById<TextView>(R.id.myTextView)
textView.letterSpacing = 0.05f

Περιορισμός: Το Android δεν υποστηρίζει άμεσα πίνακες kerning — το letterSpacing λειτουργεί ως tracking για όλους τους χαρακτήρες. Για kerning ζευγών στο Android χρησιμοποιούνται γραμματοσειρές με ενσωματωμένους πίνακες kerning (OpenType GPOS feature kern). Η υποστήριξη εξαρτάται από την έκδοση του λειτουργικού συστήματος και της μηχανής απόδοσης: σε Android 10+ χρησιμοποιείται Minikin με πλήρη υποστήριξη για λειτουργίες OpenType, σε παλαιότερες εκδόσεις — HarfBuzz με περιορισμούς. Σύσταση: ελέγξτε την εμφάνιση kerning σε συσκευές με Android κάτω από 8.0.

Kerning στην ανάπτυξη ιστού μέσω CSS

Στον ιστό, το kerning διαχειρίζεται μέσω της ιδιότητας CSS font-kerning, η οποία ενεργοποιεί ή απενεργοποιεί τους ενσωματωμένους πίνακες kerning της γραμματοσειράς. Τιμές: auto (το πρόγραμμα περιήγησης αποφασίζει), normal (kerning ενεργοποιημένο), none (kerning απενεργοποιημένο). Η ιδιότητα υποστηρίζεται από όλα τα σύγχρονα προγράμματα περιήγησης από το 2016. Σύμφωνα με το MDN Web Docs, το font-kerning εφαρμόζεται μόνο σε γραμματοσειρές OpenType με πίνακα kerning.

Ιδιότητα CSS letter-spacing — είναι το ανάλογο του tracking, αλλά χρησιμοποιείται και για εφέ που μοιάζουν με kerning. Σε αντίθεση με το font-kerning, το letter-spacing αλλάζει το διάστημα μεταξύ όλων των χαρακτήρων ομοιόμορφα, χωρίς να λαμβάνει υπόψη τα ζεύγη kerning. Κατά τη χρήση και των δύο ιδιοτήτων, το font-kerning εφαρμόζεται πρώτο, στη συνέχεια το letter-spacing προσθέτει μια ομοιόμορφη μετατόπιση από πάνω.

css
/* Enable kerning for headings */
h1 {
    font-kerning: normal;
    letter-spacing: 0.02em;
}

/* Disable kerning for monospace */
code, pre {
    font-kerning: none;
}

Βοηθητικό πρόγραμμα TypeScript για τον υπολογισμό του βέλτιστου letter-spacing λαμβάνοντας υπόψη το kerning μπορεί να αναλύσει τον πίνακα kerning της γραμματοσειράς μέσω Canvas API. Αλλά στην πράξη, οι προγραμματιστές ιστού βασίζονται στο font-kerning: normal — στις περισσότερες περιπτώσεις δίνει βέλτιστο αποτέλεσμα. Πρόσθετη ρύθμιση letter-spacing απαιτείται μόνο για σχεδιαστικές προφορές — για παράδειγμα, σε σελίδες προορισμού με μεγάλη τυπογραφία.

Πρακτικές συστάσεις για τη ρύθμιση του kerning

Το kerning είναι εργαλείο λεπτής ρύθμισης και η λανθασμένη εφαρμογή του υποβαθμίζει την αναγνωσιμότητα. Πρώτος κανόνας: μην αλλάζετε το kerning για το κύριο κείμενο (body text). Οι πίνακες kerning επαγγελματικών γραμματοσειρών ήδη περιέχουν βέλτιστες τιμές για μεγέθη 12-16pt. Η παρέμβαση στο kerning του κύριου κειμένου οδηγεί σε ανομοιομορφία και οπτικό θόρυβο.

Δεύτερος κανόνας: για επικεφαλίδες από 24pt χρησιμοποιήστε θετικό kerning (0.5-1.5 pt ανάλογα με τη γραμματοσειρά). Το μεγάλο κείμενο απαιτεί περισσότερο χώρο μεταξύ γραμμάτων για αναγνωσιμότητα. Οι γραμματοσειρές με χαμηλό x-height (π.χ. Didot) απαιτούν περισσότερο kerning από γραμματοσειρές με υψηλό x-height (π.χ. Helvetica). Δεδομένα δοκιμής: στην εφαρμογή iOS Apple Music, οι επικεφαλίδες χρησιμοποιούν kerning 0.8 pt.

Τρίτος κανόνας: ελέγχετε πάντα το kerning σε πραγματικές συμβολοσειρές, όχι σε δοκιμαστικό Lorem Ipsum. Διαφορετικοί συνδυασμοί χαρακτήρων δίνουν διαφορετικό οπτικό αποτέλεσμα. Δώστε ιδιαίτερη προσοχή σε ζεύγη με φωνήεντα και σύμφωνα με προεξέχοντα στοιχεία: AV, Te, To, Wa, LT. Σε αρνητικό kerning παρακολουθείτε τα ζεύγη fi, fl, fj — σε ορισμένες γραμματοσειρές μπορεί να συγχωνευτούν χωρίς δεσμό.

Πτυχή προσβασιμότητας: οι χρήστες με δυσλεξία διαβάζουν καλύτερα κείμενο με μικρό θετικό kerning (0.3-0.5 pt). Το iOS και το Android υποστηρίζουν ρυθμίσεις προσβασιμότητας που μπορούν να παρακάμψουν το kerning της εφαρμογής. Χρησιμοποιήστε UIFontDescriptor με Dynamic Type και λάβετε υπόψη το kerning στις ρυθμίσεις προσβασιμότητας μέσω UIAccessibility. Σημαντικό: μην αποκλείετε τις ρυθμίσεις συστήματος kerning — αυτό παραβιάζει την Οδηγία WCAG 2.2 1.4.12 για την προσαρμογή κειμένου.

Συχνές Ερωτήσεις

Πώς να απενεργοποιήσω το kerning στο iOS;

Ορίστε το χαρακτηριστικό .kern = 0 στο NSAttributedString. Η τιμή 0 εξαναγκάζει μηδενισμό όλων των ζευγών kerning, συμπεριλαμβανομένων των ενσωματωμένων πινάκων γραμματοσειράς. Για πλήρη απενεργοποίηση σε επίπεδο ολόκληρου του κειμένου, ορίστε .kern = 0 στις παραμέτρους UILabel μέσω attributedText.

Πώς διαφέρει το kerning από τη δεσμίδα (ligature);

Kerning αλλάζει την απόσταση μεταξύ χαρακτήρων, αφήνοντας τα σχήματά τους αμετάβλητα. Δεσμίδα (ligature) αντικαθιστά δύο ή περισσότερους χαρακτήρες με ένα γραφικό στοιχείο. Οι δεσμίδες συχνά εφαρμόζονται όπου το kerning δεν μπορεί να εξαλείψει την ανεπιθύμητη συγχώνευση — για παράδειγμα, το ζεύγος fi.

Υποστηρίζει το Android πίνακες kerning γραμματοσειρών;

Ναι, από Android 10 (API 29) χρησιμοποιείται η μηχανή απόδοσης Minikin με πλήρη υποστήριξη για OpenType GPOS feature kern. Σε παλαιότερες εκδόσεις, η υποστήριξη εξαρτάται από τον κατασκευαστή της συσκευής και την έκδοση HarfBuzz. Συνιστάται δοκιμή σε πολλές συσκευές.

Πώς να ελέγξω την ποιότητα του πίνακα kerning μιας γραμματοσειράς;

Χρησιμοποιήστε τη συμβολοσειρά AVOWaToLt — περιέχει προβληματικά ζεύγη kerning. Εάν τα οπτικά κενά είναι ορατά με γυμνό μάτι, ο πίνακας kerning της γραμματοσειράς είναι χαμηλής ποιότητας. Για επαγγελματικό έλεγχο, χρησιμοποιήστε τα εργαλεία FontForge ή Glyphs.

Επηρεάζει το kerning την απόδοση λιστών;

Ναι. Κατά τη δυναμική ενημέρωση NSAttributedString με kerning σε UICollectionView, ο εκ νέου υπολογισμός θέσεων χαρακτήρων μπορεί να μειώσει τα FPS κατά την κύλιση. Για μακριές λίστες, αποθηκεύστε στην κρυφή μνήμη τις χαρακτηρισμένες συμβολοσειρές ή χρησιμοποιήστε UILabel με προεπιλεγμένες ρυθμίσεις.

Σύνοψη

  • Kerning — επιλεκτική προσαρμογή διαστήματος μεταξύ ζευγών χαρακτήρων με βάση τη γεωμετρία τους
  • Διαφέρει από το tracking: το kerning λειτουργεί με ζεύγη, το tracking — ομοιόμορφα με όλους τους χαρακτήρες
  • Στο iOS υλοποιείται μέσω .kern σε NSAttributedString, nil — kerning από πίνακα, 0 — απενεργοποίηση
  • Στο Android διαχειρίζεται μέσω letterSpacing σε TextView (API 21+), αλλά το kerning ζευγών εξαρτάται από τον πίνακα γραμματοσειράς
  • Στον ιστό το kerning ενεργοποιείται μέσω font-kerning: normal, επιπλέον εφαρμόζεται letter-spacing
  • Δεν συνιστάται η αλλαγή kerning για κύριο κείμενο 12-16pt — οι επαγγελματικές γραμματοσειρές είναι ήδη βελτιστοποιημένες
  • Για προσβασιμότητα χρησιμοποιήστε θετικό kerning 0.3-0.5pt για χρήστες με δυσλεξία

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης