Ik zag deze vraag op het typografische sitevoorstel en het irriteerde me dat ik dat niet deed “Ik weet het antwoord niet. Ik” had “glyph” en “character” altijd als onderling verwisselbaar behandeld.
Na het lezen van een uitleg over de Unicode Character Encoding Model-pagina , mijn begrip is ongeveer dit:
- Tekens worden gedefinieerd door hun betekenis in taal, glyphs, door hun uiterlijk . Dus de ligatuur voor het esthetisch combineren van
fi
is één glyph, maar twee karakters.
Dus mijn overtuiging is (corrigeer me als ik ” m fout) dat het praktische verschil zou zijn:
- Tekstparsers die niet geïnteresseerd zijn in de esthetiek van tekst, zullen glyphs als hun respectievelijke karakters lezen. Dus:
- Als u tekst met glyphs zou kopiëren en plakken in een platte-teksteditor, zouden de glyphs worden geconverteerd naar hun respectieve tekens (een
fi
ligatuurglyph zouf
eni
worden ) - Elk goed gemaakt geautomatiseerd systeem gebaseerd op het parseren van tekst (bijv. crawlers van zoekmachines, schermlezers, spellingcontrole) interpreteert de glyphs als hun respectievelijke karakters.
- Eén karakter kan er veel hebben glyphs of glyph-sets. Ik wil zeggen dat één glyph maar één teken kan hebben, maar dit klopt duidelijk niet, want er is een voorbeeld in het gekoppelde artikel van 3 glyphs en glyph-sets die lijken te corresponderen met een karakter en een set karakters. Ik begrijp niet helemaal hoe dit zou kunnen werken: dat betekent zeker dat er inconsistentie of dubbelzinnigheid zal zijn in de manier waarop die tekens worden geïnterpreteerd, variërend per interpretator? (Of verschilt het per taal of per lettertype?)
- Hoewel glyph-browsers (bijv. Die in Illustrator) de volledige glyph-set van een lettertype bevatten, bevatten character maps (bijv. De Windows character map) alleen karakters, geen glyphs die uit meerdere karakters bestaan, zoals ligaturen (iets dat ik nog niet eerder had opgemerkt)
- Als u tekst met glyphs zou kopiëren en plakken in een platte-teksteditor, zouden de glyphs worden geconverteerd naar hun respectieve tekens (een
Ik heb het gevoel dat ik “er bijna ben, maar ik heb ergens duidelijk iets verkeerd begrepen: niet alleen het ding” Eén glyph meerdere karakters “, maar ook, kopieer- en plakgedrag met ligaturen is niet helemaal wat ik had verwacht:
- Kopieer de ligatuur
fi
van Illustrator naar dit invoervak: plakt alsfi
(twee tekens) zoals verwacht . - Plak de HTML-code ervoor () – wordt weergegeven als de ligatuur wanneer deze zich niet in een codeblok bevindt (fi – die in dit lettertype niet veel op een ligatuur lijkt, maar u zult see is er een als je er maar de helft van probeert te selecteren), en de code in een codeblok (
fi
), zoals verwacht. - Kopiëren en plakken de gerenderde niet-codeblok-ligatuur terug in het invoervak: plakt als het ligatuurteken en wordt weergegeven als de ligatuur, ongeacht of het in een codeblok staat of niet (fi en
fi
). Evenzo woorden die het bevatten: fi t mis fi ts (fit misfits
) plakt als past niet goed (fit misfits
). Misschien hangt het ervan af of de plaats waar het wordt geplakt de gebruikte codering begrijpt?
In hoeverre is mijn begrip hiervan verkeerd? Kan iemand me gelijk geven: een duidelijke definitie van het verschil tussen glyphs en karakters (als de mijne fout is of verbeterd kan worden), en geef duidelijkere / nauwkeurigere voorbeelden dan de mijne van wat dat in de praktijk betekent?
Reacties
- Het wordt veel gecompliceerder als je scripts zoals arabisch hebt waarin je karakters combineert.
- @MartinSchr ö der +1 Klinkt als de openingszin van een uitstekend antwoord … 🙂
Antwoord
Glyphs hebben betrekking op hoe tekst wordt weergegeven, karakters op hoe deze wordt geïnterpreteerd. Als u & plakt, geeft de brontoepassing meestal de keuze uit verschillende formaten. Platte tekst zal de figuur ontleden in f en i, HTML-formaat kan het vertalen naar de tekenentiteit die je hebt geciteerd of het ook ontleden in f en i.
In het algemeen is de relatie tussen karakters en glyphs n: m. In Indische talen verdelen sommige tekens zich in twee symbolen die op verschillende plaatsen van het woord worden geplaatst. In het Latijn zou de weergave van é het dichtst bij die situatie staan als twee tekens (e en ´).In het Arabisch heeft elk teken verschillende tekens, afhankelijk van de positie binnen een woord: begin, midden, eind of geïsoleerd.
De vertaling van tekens naar glyphs is specifiek voor elke toepassing en de typografische kenmerken die deze ondersteunt. Voor Latijnse tekst was deze vertaling eenvoudig, maar OpenType-lettertypen introduceerden extra functies zoals ligaturen, sierletters, alternatieve vormen, kleine hoofdletters enz.
Om praktische redenen houdt u zich alleen bezig met glyphs wanneer u implementeert hoe een toepassing geeft tekst weer, of wanneer u een lettertype ontwerpt, of wanneer u een OpenType-functie wilt toepassen die sommige glyphs door andere vervangt (bijv. ligaturen). Anders zijn Unicode-codepunten je vriend.
Reacties
- Hallo user322483, welkom bij GDSE en bedankt voor je antwoord. Als je vragen hebt, ga dan naar het Helpcentrum of stuur een bericht naar een van ons Chat met grafisch ontwerp zodra uw reputatie voldoende is (20). Blijf bijdragen en geniet van de site!
- U schrijft ” In het Arabisch heeft elk teken verschillende tekens, afhankelijk van de positie binnen een woord: begin, midden, eind of geïsoleerd . ” < — Zou het niet ‘ zijn als het verschillende karakters zijn. Engels heeft A en a, maar in computerpraat zijn A en a verschillende karakters. elke glyph is toegewezen aan een andere code. Hebreeuws heeft chaf en laatste chaf (de letter chaf aan het einde van een woord, ziet er anders uit) en i ‘ m zeker dat het ‘ s aangeduid als een ander karakter in computergebruik.
Antwoord
Ik denk niet dat uw begrip onjuist is u ” we zien alleen systemen die de gebruiker proberen te helpen door te plakken wat hij denkt dat ze willen. Aangezien sommige ligaturen (“fi”, “fl”) vrij algemeen zijn buiten de typesetting-systemen, herkent de software dat de gebruiker die glyph waarschijnlijk “niet heeft ingevoerd, maar heeft een andere app hun getypte karakters getransformeerd.
In het kort : Character verwijst naar een taaleenheid. Glyph verwijst naar een ontworpen instantie van die eenheid, of het nu gaat om hoofdletters, kleine letters, kleine letters, historische of stilistische varianten.
Opmerkingen
- Bij computers zijn A en a verschillende tekens. ASCII heeft 128 tekens en het term-teken daar bevat A en een als afzonderlijke tekens.
- Ingenieurs gebruiken veel woorden die niet ‘ komt niet overeen met precedenten in andere bedrijfstakken. De jouwe is een goed voorbeeld.
- die de term ” character ” en ” glyph ” f eerste? grafisch ontwerpers of computeringenieurs? i ‘ d dacht dat de computers vóór het grafische ontwerp kwamen. Maar er kan een grafische industrie zijn die voorafging aan grafisch ontwerp en betwistbaar voorafging aan computers op een bepaalde manier of aan moderne computers. Ik denk dat de mensen die het beste zouden kunnen antwoorden voor wat nu grafisch ontwerp is, de grafische industrie zijn, maar er is ‘ geen uitwisseling tussen de grafische industrie. Maar het ‘ zou interessant zijn om te weten wie van wie heeft geleend en op welke manier de term karakter is.
- Typografie kwam lang eerder software engineering. Plaats hier een bericht als u het onderzoek uitvoert en de oorsprong vindt. Ik vermoed dat het ergens in de 17e eeuw zal zijn. Mogelijk al bij de eerste typografen halverwege de 16e.
Antwoord
Er zijn hier een paar antwoorden die goede informatie geven over glyphs versus karakters, maar ze pakken de bron van je verwarring met betrekking tot kopiëren en plakken niet echt aan.
Allereerst is je begrip fundamenteel correct:
Tekens worden gedefinieerd door hun betekenis in taal, glyphs, door hun uiterlijk . Dus de ligatuur voor het esthetisch combineren fi is één glyph, maar twee karakters.
Het is de moeite waard te benadrukken dat de lijst met karakters wordt gedefinieerd door de Unicode standaard, die is gepubliceerd door het Unicode Consortium, vanwege het feit dat zij de autoriteit zijn voor het coderen van tekst in een machineleesbaar formaat. De bovenstaande definitie is in wezen de primaire richtlijn die de leden van het Unicode Consortium gebruiken om te bepalen of sommige toevoegen ion naar Unicode is een teken en daarom waardig om op te nemen, of een glyph en moet worden afgehandeld door fontrenderers.
Ik noem dit omdat de verwarring die je hierboven hebt ervaren, was te wijten aan het feit dat er verschillende ligatuur tekens (niet glyphs ) in Unicode.U+FB01
is bijvoorbeeld het teken voor de fi ligatuur: http://unicode.org/charts/PDF/UFB00.pdf
Het hebben van ligatuur-tekens in Unicode is niet echt in de geest van de bovenstaande definitie voor wat voor soort dingen in de Unicode-standaard als tekens moeten worden opgenomen, aangezien ligaturen niet echt een betekenis hebben die onafhankelijk is van de compositie van twee andere karakters. De Unicode-mensen zijn zich hier natuurlijk van bewust, en de Unicode FAQ over ligaturen geeft dit ook toe:
De bestaande ligaturen bestaan in wezen voor compatibiliteit en round-tripping met niet-Unicode-tekensets. Het gebruik ervan wordt ontmoedigd.
Het bestaan van dit teken is uiteindelijk de bron van uw verwarring.
In correct geïmplementeerde software, kopiëren tekst moet altijd de tekens kopiëren die zijn opgegeven, niet de glyphs , en dat is precies wat er aan de hand is in uw drie voorbeelden.
1) In het eerste voorbeeld typt u f
en i
in Illustrator, waardoor een enkele ligatuur glyph . Toen u die weergegeven glyph selecteerde en kopieerde, kopieerde Illustrator correct de f
(U+0066
) en i
(U+0069
) tekens op uw klembord.
2) In het tweede voorbeeld hebt u de HTML-code voor het ligatuur -teken (fi
) in het invoervak getypt, en heeft correct de ligatuur glyph gekregen die het ligatuur teken vertegenwoordigt (. Aangezien het onderliggende teken eigenlijk het obscure en relatief zinloze ligatuur-teken is dat ik hierboven noemde, selecteert u die glyph kopieert een enkel teken U+FB01
.
3) In het derde voorbeeld “kopieer je het gerenderde ligatuur teken U+FB01
die werd weergegeven in deel 2, die altijd als dat teken wordt geplakt. Uw grootste verwarring lijkt te zijn met betrekking tot het verschil tussen HTML-entiteitscodes en tekens, met name met betrekking tot hoe ze worden weergegeven binnen en buiten codeblokken.
De HTML-entiteitscode fi
is een reeks van 8 verschillende tekens. De HTML-renderer van uw webbrowser vervangt deze 8 tekens U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023
met het enkele Unicode-teken U+FB01
, dat het vervolgens op de juiste manier weergeeft. De <code>
-tag in HTML schakelt dit gedrag echter uit en laat die 8 tekens zoals ze zijn.
Wanneer u gerenderde HTML kopieert, kopieert u de weergegeven tekens (die verschillen van de weergegeven glyphs ). Dus wanneer u uw gerenderde HTML-entiteit kopieert, wordt het enkele U+FB01
-teken naar uw klembord gekopieerd.
Wanneer u het fi
U+FB01
teken terug in de HTML, er hoeft geen vervanging plaats te vinden, wat betekent dat het teken wordt weergegeven als een ligatuur, ongeacht of het binnen een <code>
block.
Antwoord
Tekens zijn wat opgeslagen in tekstbestanden, verwerkt door applicaties, en bewogen, terwijl glyphs hun visuele representatie zijn.
Om een duidelijk beeld te krijgen, laten we eens kijken wat er gebeurt als een toepassing probeert een reeks tekst op het scherm weer te geven (op een enigszins vereenvoudigde manier):
- De toepassing las eerst de tekstreeks, dat het de reeks tekens is die op de schijf of in het geheugen is opgeslagen.
- Het zou het vervolgens naar een tekstlay-out-engine sturen, onder andere andere eigenschappen zoals het gewenste lettertype, teksttaal enzovoort:
- T De engine voor tekstopmaak opent in feite het lettertypebestand, vraagt het naar de glyph (s) die overeenkomen met elk teken en voert een aantal glyphsubstitutie uit (zoals het vervangen van de glyph door
f
eni
met de ligatuur-glyphfi
) en positionering (zoals tekenspatiëring). - Aan het einde heeft de layout-engine een reeks glyphs, hun posities ten opzichte van elkaar, en een afbeelding tussen invoertekens en de uitvoerglyphs. Het teken voor de glyph-toewijzing is zo dat het weet dat de eerste twee tekens in het woord
file
overeenkomen met twee van de eerste glyph (defi
ligatuur ), het 3e teken tot het 2e teken en het 4e teken tot het 3e teken.
- T De engine voor tekstopmaak opent in feite het lettertypebestand, vraagt het naar de glyph (s) die overeenkomen met elk teken en voert een aantal glyphsubstitutie uit (zoals het vervangen van de glyph door
- Een bibliotheek voor het renderen van afbeeldingen wordt vervolgens gebruikt om die tekens op het scherm te tekenen met vormen uit het lettertype.
- Wanneer de gebruiker “glyphs” op het scherm selecteert, raadpleegt de toepassing de glyph voor teksttoewijzing die door de layout-engine wordt geleverd om te zien welk deel van de invoertekst overeenkomt met wat de de gebruiker selecteert en verzendt die tekst naar het klembord wanneer de gebruiker deze kopieert.
- Hetzelfde gebeurt wanneer de gebruiker de cursor in het midden van de tekst plaatst en begint te typen, de mapping bepaalt waar in de invoertekst de nieuwe tekens moeten worden ingevoegd, en de bijgewerkte tekst wordt naar de layout-engine gestuurd proces en opnieuw getekend enzovoort.