Optische groottes voor lettertypes in LuaLaTeX
Gepubliceerd op
Laatst bijgewerkt op
Optische groottes zijn een manier waarop een letterfamilie alternatieve lettervormen kan voorzien, zodat het lettertype tot zijn recht komt in elke lettergrootte. In dit stuk gaan we na wat optische groottes zijn en dan bekijken we hoe ze te gebruiken in LuaLaTeX.
Lettertypes in de letterfamilie en de varianten
Lettertypes zijn een bepaalde verschijningsvorm van een letterfamilie. Zo bevat een letterfamilie verschillende lettertypes, bijvoorbeeld voor de dikte, de stijl en de vorm. Veel letterfamilies bevatten bijvoorbeeld lettertypes voor klein kapitaal of cursief. Als uw browser geconfigureerd is om een goed ontworpen lettertype te gebruiken, zal u zien dat de letters van het kleinkapitaal of het cursief verschillen van de normale tekst.
Kleinkapitaal
We bekijken nu een lettertypevariant in meer detail: het kleinkapitaal. Zoals al vermeld, kleinkapitaal bestaat niet gewoon uit kleinere letters. Zo zal een letter in kleinkapitaal dezelfde lijndikte als een normale letter hebben, terwijl ze slechts even hoog is als een gewone letter (de x-hoogte van een normale letter, wat dus de hoogte van de letter x is). Dus, kleinkapitaal is kleiner, maar enkel in de hoogte: de dikte of vetheid van de letter is hetzelfde.
Hieronder zijn twee voorbeelden. Het eerste voorbeeld gebruikt middels de juiste CSS echt kleinkapitaal, terwijl het tweede voorbeeld kleinere kapitalen gebruikt. Opnieuw, uw browser moet een goed ontworpen lettertype gebruiken: als de letters er niet anders uitzien moet u het standaardlettertype van uw browser aanpassen.
Echt | Vals |
---|---|
Hello, world. | HELLO, WORLD. |
Omdat de groottes voor het vals kleinkapitaal specifiek voor elk lettertype zijn, is hier een afbeelding van hoe dit er uit ziet met Source Serif:
Optische groottes
Hetzelfde principe bestaat ook voor andere aspecten van de letterfamilie: de vetheid, de stijl, maar ook de lettergrootte. In dit stuk focussen we op de lettergroottes (ook wel optische groottes genoemd), omdat deze minder vaak gebruikt lijken te worden.
Voor verschillende groottes van een lettertype zijn er verschillende varianten om de leesbaarheid te verhogen. Kleinere tekst heeft vaak iets meer ruimte tussen de letters, terwijl grotere tekst bijvoorbeeld minder vet is.
Meer informatie kan gevonden worden op het internet, zoals What is optical sizing and how can it help your brand? (Engels) van Monotype en Inside the fonts: optical sizes (Engels) van Type Network.
Bij het gebruik van een lettertype zijn deze varianten vaak beschikbaar als een apart lettertype in uw lettertypebeheer, met namen als „X Caption” or „X Display”. Helaas is er geen standaard voor wanneer welk lettertype gebruikt moeten worden. Dit zijn bijvoorbeeld de groottes die Adobe hanteert:
Naam | Te gebruiken bij |
---|---|
Caption (bijschrift) | 6 - 8 pt |
Regular (Normaal) | 9 - 13 pt |
Subhead (onderkoppen) | 14 - 24 pt |
Display (koppen) | 25 - 72 pt |
Andere letteruitgeverijen of -families hebben ook groottes zoals Small text (kleine tekst), Body text (broodtekst) of Poster.
OpenType Font Variations (variabele lettertypes)
Het aantal lettertypebestanden (en dus lettertypes in uw lettertypebeheer) wordt snel groot. Ter illustratie: het lettertype Source Serif bevat vier groottes (bijschrijft, kleine tekst, onderkoppen en koppen), twee stijlen (romain en cursief) en zes diktes (extra licht, licht, normaal of regulier, demi-vet, vet en zwart of extra vet). Elke dikte is beschikbaar in elke stijl, en elke combinatie bestaat ook in elke grootte. Dus komt dat op 4 * 2 * 6 = 48 „verschillende” lettertypes.
De oplossing is een relatief recent toevoeging aan OpenType: OpenType Font Variations. Dit laat toe om in één lettertype meerdere varianten aan te bieden, zoals de dikte, de stijl en de optische groottes. Geïnteresseerde kunnen zich verdiepen in de OpenType Specification.
Kort samengevat: het lettertype kan een as definiëren en het lettertype aanpassen naargelang de positie op de as. Een voor de hand liggend voorbeeld is de vetheid: in plaats van zes diktes te maken, wordt er een as voor de vetheid toegevoegd.
Gebruik in LuaLaTeX
In LuaLaTeX is het gebruiken van lettertypes gemakkelijk door het pakket fontspec
:
\usepackage{fontspec}
\setmainfont{Source Serif 4}
In een ideale wereld zou ik hopen dat dit volstaat: bij het gebruik van een variabel lettertype zou het gewoon moeten werken.
Helaas is dat niet de wereld waarin we leven. Ondersteuning voor variabele lettertypes lijkt er in bepaalde mate wel te zijn, maar het lijkt nog niet optimaal, zie hier en hier. Ik kreeg het in elk geval niet werkende.
Gelukkig is er een alternatief: alles manueel instellen. Dat klinkt als veel werk, en terwijl het meer werk is dan dat ik zou hopen, valt het mee:
\usepackage{fontspec}
\setmainfont{Source Serif 4}[
Renderer = OpenType,
SizeFeatures = {%
{Size={-9},Font=* Caption},
{Size={9-13},Font=*},
{Size={14-24},Font=* Subhead},
{Size={24-},Font=* Display}
},
ItalicFont = * Italic,
BoldFont = * Semibold,
BoldItalicFont = * Semibold Italic,
]
Controleren of fontspec werkt
De vraag is nu: werkt dit? We kunnen beginnen met controleren dat de selectie van de groottes werkt. Dit is gemakkelijk: we kiezen een ander lettertype voor kleinere groottes en controleren het resultaat.
Bijvoorbeeld met dit bestand:
Dit resulteert in het volgende:
De eerste zin (Sentence one) is duidelijk in een schreefloos lettertype, waarvan wij weten dat het om Noto Sans gaat.
Controleren of het lettertype werkt
Vervolgens controleren we of ons lettertype wel degelijk ondersteunt wat we willen doen. Hier kiezen we twee keer hetzelfde lettertype: eens met variabele groottes en eens zonder.
Dit resulteert in:
De eerste zin is een pak lichter dan de tweede zin, zelfs al kozen we twee keer dezelfde vetheid. Dit is zoals we verwachten: de grotere varianten van Source Serif zijn minder vet. We zien ook dat niet enkel de vetheid verschilt: de breedte van de eerste zin is ook minder dan in de tweede zin.
Op deze manier kunnen we dus zien dat deze methode werkt, en hebben we een manier om te bekijken hoe de groottes van het lettertype verschillen.