• No results found

Teckensnitt för antikens litteratur

N/A
N/A
Protected

Academic year: 2021

Share "Teckensnitt för antikens litteratur"

Copied!
17
0
0

Loading.... (view fulltext now)

Full text

(1)

Examensarbete

Teckensnitt för antikens litteratur

Rikard Skotnicki 2011-05-23

(2)

Abstrakt

Arbetet handlar om svårigheterna med att publicera antikens litteratur, som ofta kräver teckensnitt som saknas i de flesta datorer. Detta leder i värsta fall till att man får oläslig text.

Målet är att undersöka hur man tar reda på vilka teckensnitt som finns på en användares dator, och hur man kan lösa de problem som uppstår när ett teckensnitt saknas.

Syftet är att kunna anpassa användarens möjligheter att välja teckensnitt till de teckensnitt som finns installerade på datorn.

Resultatet visar att metoden som används för att undersöka vilka teckensnitt som finns hos användaren är väl fungerande och valmöjligheterna kan anpassas därefter.

Abstract

This work is about the difficulties in publishing ancient literature, which often

requires fonts that are missing in most computers. In worst case, this results in getting unreadable text.

The goal is to investigate how to find out which fonts are available on a user's computer, and how to solve the problems that arise when a font is missing.

The purpose is to be able to adjust the possibilities to choose fonts to what fonts are installed on the computer.

The result shows that the method used to find fonts in the user's computer is working well and the options can be adjusted accordingly.

(3)

Förord

Uppdraget har uppkommit ur mitt eget intresse för litteratur på sanskrit, samt då jag har sett hur konstigt det kan se ut på datorer som saknar de teckensnitt som används.

(4)

Innehållsförteckning

1.Bakgrund ... 5

1.Introduktion till problemområdet ... 5

2.Tidigare forskning ... 6

3.Avgränsningar ... 7

2.Metod ... 8

1. Javascript ... 8

2. Inkapslade teckensnitt ... 8

3. Bildfil ... 9

4. Metoddiskussion ... 9

3.Genomförande ... 10

1. Javascript ... 10

2. Inkapslade teckensnitt ... 11

3. Bildfil ... 11

4.Resultat ... 12

1. Javascript ... 12

2. Inkapslade teckensnitt ... 13

3. Bildfil ... 13

4. Sammanfattning ... 13

5.Slutsats ... 15

6.Källförteckning ... 17

(5)

1. Bakgrund

1. Introduktion till problemområdet

När litteratur, som ursprungligen är skriven på äldre och utdöda språk, ska återges på webben stöter man på problem, som beror på att dessa utdöda språk oftast skrivs med speciella tecken, som saknas i de teckensnitt som i allmänhet finns installerade i de flesta datorer. I några fall kan man använda existerande teckensnitt, men i många fall måste speciella teckensnitt användas. När det gäller sanskrit kan man till viss del använda befintliga tecken i Unicode, men dessa tecken är huvudsakligen avsedda för moderna indiska språk, som använder sig av devanagari-alfabetet, och ett flertal sammansatta konsonanttecken saknas där1. Därför väljer man ofta att använda speciella teckensnitt, som är framtagna specifikt för sanskrit.

Följande bild(figur 1) visar exemplet med stavelsen ”dya”. Till vänster ser man hur man på bästa sätt löser detta med de tecken som finns till hands i Unicode, genom att skriva tecknet för ”d” följt av tecknet för ”ya”. Detta är visserligen fullt läsbart och begripligt, men man föredrar ändå ofta det sammansatta tecken, som man ser till höger, och som fås fram i det speciellt framtagna teckensnittet ”xdvng”. Man bör komma ihåg att sanskritlitteratur traditionellt har skrivits för hand, och att man då uteslutande har använt sammansatta tecken.

Figur 1. Stavelsen ”dya” skriven i Unicode till vänster och i Xdvng till höger.

Då får man en situation, där man använder särskilda teckensnitt, som måste installeras av användaren, och när denna text presenteras på en dator, som saknar 1 http://salrc.uchicago.edu/resources/fonts/available/sanskrit/ [2011-11-09]

(6)

det aktuella teckensnittet, ser texten inte alls ut som den ska. Detta illustreras av följande bilder från två skärmdumpar(figur 2), varav den översta är tagen från en dator som har teckensnittet ”xdvng” installerat, medan den understa är tagen från en dator som saknar detta. Givetvis vill man se till att användaren, som saknar det aktuella teckensnittet, även slipper se den understa texten.

Figur 2. Sanskrittext med och utan xdvng installerat.

Målet med arbetet är att ta fram en metod att på bästa sätt låta användaren själv bestämma hur en text skall visas, utifrån de möjligheter som finns på användarens webbläsare. Detta görs genom att olika metoder jämförs med varandra, både serverbaserade och klientbaserade.

2. Tidigare forskning

Det finns några befintliga sidor med litteratur på sanskrit på

http://sanskritdocuments.org och http://www.gitasupersite.iitk.ac.in. Båda sidorna har dock allvarliga brister. Den förstnämnda består av ett antal statiska sidor, varav vissa innehåller vad som måste betecknas som slarvfel, vilket påvisar att någon har suttit och skrivit in texten manuellt, vilket är ett mödosamt arbete. Den sistnämnda erbjuder visserligen läsaren valmöjligheter, men dessa valmöjligheter anpassas inte efter vad som finns på läsarens dator. Dessutom saknas valmöjlighet för att helt enkelt se originaltexten translitererad till latinsk skrift.

6

(7)

(Transliterering betyder att man skriver en text med ett annat alfabet än textens språk vanligen skrivs med.)

3. Avgränsningar

Arbetet inriktas på att presentera texter som ursprungligen är skrivna på sanskrit, med översättningar till svenska och engelska. Detta medför att arbetet begränsas till att omfatta devanagari-alfabetet, som är det alfabet som vanligtvis används för sanskrit-texter, och det latinska alfabet, som engelska och svenska, med flera språk, vanligtvis skrivs på. Transliterering sker då också till det latinska alfabetet. Man får dock ta hänsyn till att det finns olika standarder för transliterering, beroende på att det latinska alfabetet saknar flera bokstäver som finns i devanagari-alfabetet.

(8)

2. Metod

För att kunna låta användaren välja hur en text ska visas, utifrån de teckensnitt som finns installerade, kommer olika metoder att utarbetas för att sedan jämföras med varandra.

En testapplikation kommer att utvecklas, och tester kommer att genomföras på webbläsarna Firefox 3.5.6, Opera 10.10, Safari 5.1 och Internet Explorer 8.0 där xdvng finns och på webbläsarna Firefox 3.6.8, Opera 10.61, Safari 4.0.3 och Internet Explorer 8.0 där xdvng inte finns.

1. Javascript

I den första metoden använder man sig av javascript för att utröna om användaren har ett visst teckensnitt installerat eller inte. (I detta fallet heter teckensnittet xdvng) Det finns ingen funktion för att direkt se om ett teckensnitt är installerat, så man måste använda sig av en indirekt metod. Denna metod bygger på vad som beskrivits av Lalit Patel.[1] Metoden är då att man skapar en osynlig text i ett standardteckensnitt, och mäter offsetwidth och offsetheight. Därefter ändrar man teckensnittet, och om offsetwidth och offsetheight ändras kan man dra slutsatsen att det aktuella teckensnittet finns installerat på datorn. Om dessa värden däremot inte ändras kan man dra slutsatsen att teckensnittet inte finns installerat.

2. Inkapslade teckensnitt

En annan metod, som använder inkapslade teckensnitt, beskrivs på en av Microsofts sidor.[2] Metoden går ut på att ett ovanligt teckensnitt skickas med webbsidan från servern så att webbläsaren kan återge texten på det sätt som önskas.

Detta skulle kunna vara ett smidigt sätt att lösa problemet med teckensnitt som saknas. I denna metod, som används av Internet Explorer, måste teckensnittet finnas i eot-formatet.(embedded open type). En annan liknande metod[3] kan använda teckensnitt i de vanligare formaten truetype(.ttf) och opentype(.otf). Denna teknik är i stort sett identisk med den ovanstående, men fungerar på de andra stora webbläsarna. Dock kan stödet för detta saknas i äldre versioner av webbläsare.

Ett problem är således att Internet Explorer kräver teckensnitt i ett annat format än

8

(9)

de andra stora webbläsarna.

Eftersom metoden för inkapslade teckensnitt skiljer sig något beroende på vilken webbläsare man använder måste man som programmerare anpassa sidan efter vilken webbläsare som används. Det är förvisso inte så svårt, men ett större problem är att teckensnittet ”xdvng” inte verkar finnas i eot-formatet. Detta gör att en annan lösning måste hittas, åtminstone för Internet Explorer.

3. Bildfil

Ytterligare en metod testades, som producerar en bildfil av texten. Denna metod kan användas av ala webbläsare. Dels testades en bildfil i jpeg-format, och dels testades en bildfil i png-format.

4. Metoddiskussion

Tre metoder har undersökts, varav de två första ligger hos klienten och den tredje hos servern.

Den tredje metoden är endast lämplig i kombination med den första, på så sätt att om, och endast om, den första metoden kommer fram till att teckensnittet saknas i den lokala datorn, presenteras en valmöjlighet som bygger på bildfiler istället för den valmöjlighet, som helt enkelt använder det ovanliga teckensnittet som vanlig text. Detta eftersom det är onödigt att producera bildfiler om texten kan återges på ett mer normalt sätt, och hela anledningen till att använda sig av bildfiler borde vara att det inte finns någon annan lämplig metod.

Originaltexten ska också visas upp på ett lämpligt sätt, beroende på vad användaren har valt. Metoden här är helt enkelt att läsa in originaltexten från databasen, och göra om den enligt användarens val. Om användaren väljer en output som är baserad på latinska bokstäver är det bara att omvandla texten tecken för tecken, men om användaren väljer en output som är baserad på devanagari-alfabetet är det nödvändigt att omvandla texten stavelse för stavelse.

Ord-för-ord-översättningen visas då man för muspekaren över originaltexten.

Denna ord-för-ord-översättning finns också i databasen, och i originaltexten har vissa specialtecken lagts till för att varje ord ska hamna rätt.

(10)

3. Genomförande

1. Javascript

Till att börja med söktes för den första metoden ett sätt att undersöka vilka

teckensnitt som finns hos en användare. Idén var att använda en lämplig javascript- funktion för detta. Det visade sig emellertid att det inte fanns någon direkt metod för detta. Man tvingades då använda en indirekt metod, och detta visade sig innebära vissa svårigheter.

När man mätte offsetwidth och offsetheight och jämförde värdena med varandra stötte man på ett oväntat problem, nämligen att dessa värden i vissa fall kunde ändras även om teckensnittet inte fanns på datorn. I det aktuella fallet, då endast teckensnittet xdvng testades, var dessa ändringar emellertid små i förhållande till den skillnad som uppstår om teckensnittet verkligen finns hos användaren. Det kan emellertid vara så att ett annat teckensnitt skulle kunna förorsaka mindre ändringar, vilket skulle kunna försvåra genomförandet av denna metod.

Metoden har testats med följande webbläsare: Internet Explorer, Firefox, Opera och Safari. Metoden har testats på min egen dator, som har teckensnittet xdvng, och på datorer i LNU:s virtuella klassrum, som saknar detta.

Nedanstående bild(figur 3) visar den javascript-kod som används för att ta bort valmöjligheten 'xdvng' för de användare som saknar teckensnittet. Den option-tag som ger denna möjlighet har id 'x1'.

Figur 3. Javascript-kod som används i den första metoden.

10

(11)

2. Inkapslade teckensnitt

För den andra metoden utvecklades en prototyp, där raden

@font-face{font-family:xdvng;src:url(xdvng.ttf)} lades till i den interna stilmallen.

Metoden har testas på samma webbläsare och datorer som den första metoden.

3. Bildfil

För den tredje metoden skrevs en php-fil med följande kod(figur 4):

Figur 4. Php-kod som används i den tredje metoden.

Denna kod skapar en png-bildfil av en hel sanskritvers. Som tidigare nämnts skapades i testfallet en png-fil med storleken 2,1 kB.

(12)

4. Resultat

1. Javascript

Ett problem som upptäcktes var att ibland kan webbläsaren ändrar offsetwidth även om teckensnittet inte finns installerat. Därför justerades metoden till att enbart undersöka om offsetheight ändras. Efter denna justering upptäcktes också att webbläsaren även kan ändra offsetheight under vissa förutsättningar, exempelvis när användaren zoomar in texten. Dessa ändringar är emellertid små i förhållande till skillnaden som man får om det aktuella teckensnittet i arbetet(xdvng) finns installerat. Lösningen blev då att jämföra offsetheight med ett värde mellan det ursprungliga värdet och värdet efter förändring med teckensnitt installerat. Denna lösning har hittills verkat fungera utan felaktigheter.

Med denna justering blev resultatet för den första metoden enligt förhoppningarna:

på de datorer som inte har teckensnittet xdvng installeras får användaren endast 3 valmöjligheter istället för de 4, som då inkluderar xdvng. Detta illustreras av nedanstående bilder från skärmdumpar(figur 5), där den översta är från en dator som har xdvng, och den understa är från en dator som saknar detta teckensnitt.

Figur 5. Skärmdumpar från datorer där xdvng finns repektive saknas.

12

(13)

2. Inkapslade teckensnitt

Resultaten för den andra metoden blev också enligt förhoppningarna: när Firefox, Opera eller Safari används visas i prototypen texten korrekt, även när teckensnittet xdvng måste skickas med sidan då teckensnitet saknas. Dock uppstår en något besvärande situation i Firefox, då det tar en viss tid innan teckensnittet verkligen kommer till mottagarens webbläsare, och under denna visserligen korta tid hinner användaren se texten på det sätt som visas i den understa illlustrationen i figur 2, och detta kan anses vara ett skönhetsproblem.

Den andra metoden fungerar inte för Internet Explorer, eftersom det aktuella teckensnittet 'xdvng' inte verkar finnas i eot-formatet.

3. Bildfil

Dels testades en bildfil i jpeg-format, och dels testades en bildfil i png-format. För en sanskritvers i det vanligaste versmåttet skapades i det förstnämnda fallet en jpeg- bild med storleken 6,2 kB, och i det andra fallet skapades en png-bild med

storleken 2,1 kB. Den sistnämnda blev för övrigt utseendemässigt bättre, då den förra blev onödigt plottrig, eftersom jpeg-formatet egentligen lämpar sig bäst för fotografier och inte bilder av den typ som är intressant i detta sammanhang. Detta betyder att för ett medelstort kapitel i en sanskrittext, vilket kan innehålla 40-50 verser, skapas då bilder på sammanlagt ungefär 100 kB, vilket inte borde vara något stort problem för de flesta användare.

Eftersom texten då i själva verket är en bild och inte en text kan textfunktioner inte anändas. Detta betyder exempelvis att man inte kan göra sökningar på vissa sanskritord när man använder bildfil. Det blir även komplicerat att få till ord-för- ord-översättningarna då muspekaren befinner sig över texten. Eftersom en bildfil har en konstant bredd blir det även svårt att anpassa bredden till storleken på webbläsarens fönster.

4. Sammanfattning

Sammanfattningsvis får sägas att i det aktuella fallet, när det gäller teckensnittet

(14)

'xdvng' fungerar den första metoden för alla webbläsare, under förutsättning att javascript inte är avstängd. Den andra metoden fungerar utan anmärkning för Safari och Opera, med viss skönhetsanmärking för Firefox, och inte alls för Internet Explorer.

För andra teckensnitt kan det emellertid vara så att variationerna i offsetHeight är så små att den första metoden blir osäker att använda. Andra teckensnitt kan dessutom finnas i ett format som gör att Internet Explorer kan använda den andra metoden.

Den tredje metoden fungerar för samtliga webbläsare, under förutsättning att man inte har blockerat webbläsaren från att visa bilder.

14

(15)

5. Slutsats

Det förefaller som att den första metoden, som utröner om en användare har ett visst teckensnitt installerat eller inte, fungerar bra i de fall som jag har testat, åtminstone för teckensnittet xdvng. Den andra metoden har emellertid en fördel, åtminstone i de webbläsare där den fungerar, i att den låter en användare se texten i ett teckensnitt som inte är installerat i den egna datorn. Det bästa verkar därför vara att man, som programmerare, börjar med att ta reda på vilken webbläsare

användaren har. Om Internet Explorer används bör den första metoden användas, medan den andra metoden bör användas om Opera eller Safari används. Vilken metod som bör användas om Firefox används beror på om man anser att ovan nämnda skönhetsproblem är tillräckligt stort för att motivera den första metoden för denna webbläsare. Detta skönhetsproblem gör att man kan föredra den första metoden för Firefox, eftersom hela idén är att undvika det som Firefox visar under en kort tid med den andra metoden. Den första metoden kan alltså anses vara lämplig för Internet explorer och Firefox, medan den andra metoden lämpar sig för Opera och Safari.

Om den första metoden visar att användaren inte har det aktuella teckensnittet blir förstås nästa fråga om man ska använda den tredje metoden eller helt enkelt bara låta användaren klara sig utan den valmöjligheten. Den huvudsakliga

problemställningen var ju att om man inte hade teckensnittet 'xdvng' installerat så såg man en konstig text där man skulle se sanskrittext med devanagari-skrift.

Eftersom huvudsyftet med detta arbete var att få bort denna konstiga text kan den tredje metoden betraktas som en bonus, som visserligen visar sig vara smidigare än befarat, men ändå knappast är värd besväret för vanliga verser. Däremot skulle den kunna användas vid exempelvis rubriker eller dylikt.

Man kan tänka sig att ett liknande resonemang borde kunna appliceras på andra teckensnitt, och på så sätt borde man kunna skapa liknande lösningar för andra texter på andra antika språk som kräver speciella teckensnitt. Detta förutsätter emellertid, i den första metoden, att användandet av teckensnittet ändrar offsetwidth eller offsetheight så pass mycket att man kan skilja ut riktiga

förändringar från de falska förändringar som ändå kan inträffa trots att teckensnittet saknas.

Man måste ändå tänka på att en del användare har kvar äldre webbläsare, som

(16)

kanske inte kan använda sig av inkapslade teckensnitt. Därför bör man inte bara undersöka vilken webbläsare användaren har, utan även vilken version av webbläsaren.

Det måste påpekas att testmiljön har varit mycket begränsad. Den har inskränkt sig till ett fåtal datorer, även om testerna har skett med flera webbläsare.

16

(17)

6. Källförteckning

1. Lalit Patel, tillgänglig: http://www.lalit.org/lab/javascript-css-font-detect [2011- 05-16]

2. Microcoft Corporation, tillgänglig:

http://www.microsoft.com/typography/web/embedding/default.aspx [2011-05-20]

3. flera författare, tillgänglig:

http://www.css3.info/preview/web-fonts-with-font-face/ [2011-06-03]

4. flera författare, tillgänglig:

http://sanskritdocuments.org [2011-06-13]

5. flera författare, tillgänglig:

http://www.gitasupersite.iitk.ac.in [2011-06-13]

References

Related documents

Ännu mer än andra barn behöver barnet med läs- och skrivsvårigheter få känna självförtroende och självtillit. I skolan måste hans förmåga inom andra ämnen lyftas

Innan du är helt färdig så ska du läsa igenom din text och fundera på om det är något i innehållet eller språket som du kan göra ännu bättre.. Använd frågor här och ta

Från analysen av resultaten framkom sju kategorier: ute efter effekter, påverkade av marknadsföringen, könsskillnader, utsatta elever dricker mer, leder till problem i

Följande rubriker beskriver den struktur som innefattas i lärarguiden: Lgr11 ur det centrala innehållet som beskriver vilket centralt innehåll som behandlas i uppslaget och kapitlet,

I resultatet påvisas täta interaktioner mellan personal och patient och samtidigt som teknik och omvårdnad är nödvändiga element i vårdandet av intensivvårdspatienter kan

genreanalys och därför intresserar jag mig inte bara för Svenska Hollywoodfruar utan alla andra program i fru-genren, en genre som dock domineras av Real Housewives serierna..

Med utgångspunkt från svaren hos pedagogerna och eleverna, har fått vi fram att dessa förutsättningar är att eleverna ska känna lust att läsa, samspelet mellan eleverna

Det skulle förstås ändå vara givande att undersöka i andra länder för att bekräfta och säkerställa detta antagande på andra platser, inte minst för att ytterligare garantera