Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | adamowicz | afera | alsamixer | amazon | amber | amman | anniversary | antypis | apache | api | applebaum | arm | armenia | astronomy | asus | atom.xml | awk | aws | bachotek | bakłażan | balcerowicz | balta | banan | bash | batumi | berlin | białowieża | białystok | bibtex | bieszczady | birzeit | biznes | blogger | blogging | blosxom | bme280 | bono | borne-sulinowo | breugel | bt747 | budapeszt | budyniowo | budyń | bursztyn | campagnolo | canon | cedewu | chaos | chello | chiller | chillerpl | chown | christophe dominici | chujowetaśmy | ciasto | cmentarz | contour | coronavirus | covi19 | covid | covid19 | cron | css | csv | cukinia | curl | cycling | d54250wykh | darkages | dbi | debian | dejavu | dhcp | dht22 | dia | docbook | dom | dp1500 | ds18b20 | duda | dulkiewicz | dulkiewiczowa | dyndns | dynia | ebay | economy | ecowitt | ekonomia | elka | elm | emacs | emacs23 | english | ep | erasmus | erasmusplus | ess | eu | eurostat | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc29 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | folau | fontforge | fontspec | fonty | food | fop | forms | foto | france | francja | fripp | froggit | fuczki | fuji | fuse | gammu | garden | garmin | gas | gawk | gazwyb | gdańsk | gdynia | gender | geo | geocoding | georgia | gft | ggplot | ghost | git | github | gmail | gmaps | gnokii | gnus | google | google apps script | googlecl | googleearth | googlemaps | gotowanie | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | gus | gw1000 | haldaemon | handbrake | helsinki | hhi | historia | history | hitler | holocaust | holokaust | hp1000se | hpmini | humour | iblue747 | ical | iiyama | ikea | imagemagick | imap | inkscape | inne | internet | j10i2 | javascript | jhead | jifna | jordania | k800i | kajak | kamera | karob | kibbeh | kleinertest | kml | kmobiletools | knuth | kociewie kołem | kod | kolibki | komorowski | konwersja | krutynia | krynki | kuchnia | kurski | kłamstwo | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | lgbt-folly | liban | liberation | linksys | linux | lisp | lisrel | litwa | lizbona | logika | ltr | lubowla | lwp | lwów | m2wś | malta | mapquest | mapsource | maradona | marchew | marimekko | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mevo | mex | mh17 | michalak | michlmayr | microsoft | monitor | mp4box | mplayer | ms | msc | mssql | msw | mswindows | mtkbabel | museum | muzyka | mymaps | mysql | mz | nafisa | nanopi | natbib | navin | neapol | nekrolog | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nmea | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | ocr | odessa | okular | olympus | ooffice | ooxml | opera | osm | otf | otftotfm | other | ov5647 | overclocking | ozbekiston | padwa | palestyna | panoramio | paryż | pdf | pdfpages | pdftex | pdftk | pedophilia | perl | photo | photography | pi | picasa | picasaweb | pim | pine | pis | pit | pizero | plain | plotly | pls | plugin | po | podcast | podlasie | podróże | pogoda | politics | polityka | polsat | portugalia | postęp | powerpoint | połtawa | prelink | problem | propaganda | pseudointeligencja | pstoedit | putin | python | pywws | r | r1984 | radio | random | raspberry | raspberry pi | raspberrypi | raspbian | refugees | relaxng | ridley | router | rower | rowery | roztocze | rpi | rsync | rtf | ruby | rugby | rumunia | russia | rwc | rwc2007 | rwc2011 | rwc2019 | ryga | rzym | salerno | samba | sds011 | selenium | sem | senah | sernik | sheevaplug | sienkiewicz | signature | sikorski | sks | skype | skytraq | smoleńsk | sqlite | srtm | sshfs | ssl | staszek wawrykiewicz | statistcs | statistics | stats | statystyka | stix | stretch | supraśl | suwałki | svg | svn | swanetia | swornegacie | szwajcaria | słowacja | tallin | tbilisi | terrorism | tesseract | tex | texgyre | texlive | thunderbird | tomato | totalnaopozycja | tourism | tramp | trang | transylwania | truetype | trzaskowski | ttf | turcja | turkey | turystyka | tusk | tv | tv5monde | tweepy | twitter | tykocin | typetools | ubuntu | uchodźcy | udev | ue | ukraina | umap | unix | upc | updmap | ups | utf8 | uzbekistan | varia | video | vienna | virb edit | virbedit | vostro | wammu | wdc | wdfs | weather | weathercloud | webcam | webdav | webscrapping | weewx | wenecja | wh2080 | wiedeń | wikicommons | wilno | win10 | windows | windows8 | wine | wioślarstwo | wojna | word | wordpress | wrt54gl | ws1080 | wtyczka | wunderground | ww2 | www | wybory | wybory2015 | włochy | węgry | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zaatar | zakopane | zakupy | zawodzie | zdf | zdrowie | zeropi | zgarden | zgony | zprojekt | łeba | łotwa | świdnica | żywność
Archiwum
06/2023 | 02/2023 | 01/2023 | 11/2022 | 10/2022 | 09/2022 | 07/2022 | 06/2022 | 04/2022 | 03/2022 | 02/2022 | 12/2021 | 09/2021 | 03/2021 | 01/2021 | 12/2020 | 11/2020 | 10/2020 | 09/2020 | 08/2020 | 07/2020 | 04/2020 | 03/2020 | 02/2020 | 01/2020 | 12/2019 | 11/2019 | 10/2019 | 09/2019 | 08/2019 | 07/2019 | 06/2019 | 04/2019 | 02/2019 | 01/2019 | 12/2018 | 11/2018 | 10/2018 | 09/2018 | 08/2018 | 07/2018 | 05/2018 | 04/2018 | 03/2018 | 02/2018 | 01/2018 | 11/2017 | 10/2017 | 09/2017 | 08/2017 | 07/2017 | 06/2017 | 05/2017 | 04/2017 | 03/2017 | 02/2017 | 01/2017 | 12/2016 | 11/2016 | 10/2016 | 09/2016 | 08/2016 | 06/2016 | 05/2016 | 04/2016 | 02/2016 | 12/2015 | 11/2015 | 09/2015 | 07/2015 | 06/2015 | 05/2015 | 02/2015 | 01/2015 | 12/2014 | 09/2014 | 07/2014 | 06/2014 | 04/2014 | 02/2014 | 01/2014 | 12/2013 | 11/2013 | 10/2013 | 09/2013 | 08/2013 | 07/2013 | 05/2013 | 04/2013 | 03/2013 | 02/2013 | 01/2013 | 12/2012 | 11/2012 | 10/2012 | 09/2012 | 08/2012 | 07/2012 | 05/2012 | 03/2012 | 02/2012 | 01/2012 | 12/2011 | 11/2011 | 10/2011 | 09/2011 | 08/2011 | 07/2011 | 06/2011 | 05/2011 | 04/2011 | 03/2011 | 02/2011 | 01/2011 | 12/2010 | 11/2010 | 10/2010 | 09/2010 | 08/2010 | 07/2010 | 06/2010 | 05/2010 | 04/2010 | 03/2010 | 02/2010 | 01/2010 | 12/2009 | 11/2009 | 10/2009 | 09/2009 | 08/2009 | 07/2009 | 06/2009 | 05/2009 | 04/2009 | 03/2009 | 02/2009 | 01/2009 | 12/2008 | 11/2008 | 10/2008 | 09/2008 | 08/2008 | 07/2008 | 06/2008 | 05/2008 | 04/2008 | 03/2008 | 02/2008 | 01/2008 | 12/2007 | 11/2007 | 10/2007 | 09/2007 | 08/2007 | 07/2007 |
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
Krój Chiller

Plakat studentka do koncertu małżonki zrobiła wykorzystując do tego font pn Chiller. Font typu pisanka, wyróżnia się oryginalnym kształtem `I', do pobrania z fontzone.net (legalności nie badałem). Font nie ma polskich znaków co skutkowało m.in że w literze `ł' na przecięciu `l' oraz dostawionej kreski ukośnej się zrobiło czarno (być może da się zrobić w PhotoShopie `ł' lepiej, bo tak jak zostało zrobione, to ewidentnie wygląda, że jak dwa razy machniesz na brązowo, to masz bardziej brązowo niż jak machniesz raz). No a inne diakrytki a zwłaszcza `ą' czy `ę', to już w ogóle słabo... chociaż ogonek w zestawie gotowy jest.

No więc dorobiłem polskie diakrytyki (bo to pisanka to się odważyłem), a nawet kilkadziesiąt innych diakrytyków oraz cyfry nautyczne (bo je lubię używać). Polskie i litewskie są zrobione szczególnie starannie w tym sensie że nie nakładałem krzywych, tylko usunąłem nachodzące na siebie obszary, tworząc jedną obwiednię.

Wszystko to za pomocą fontforge. Super program muszę przyznać. ChillerPL jest tutaj.

url | Fri, 16/03/2018 08:31 | tagi: , ,
Xetex: nowa wersja TeXa

Dopisane 1 listopada 2010: Ten wpis jest myląco-przestarzały. Aktualne informacje na temat XeTeXa są w dokumencie: Używanie XeTeXa w systemie Linux (dystrybucja TEXLive). Przykładowe pliki są natomiast tutaj.

Xetex to nowy wariant TeXa. Cytując wpis z Wikipedii, który przed chwilą sam utworzyłem:-) Umożliwia korzystanie ze standardu Unicode oraz fontów komputerowych we współczesnych formatach, takich jak OpenType oraz AAT. Twórcą XeTeXa jest Jonathan Kew. Wstępne wersje XeTeXa były dostępne tylko na platformie Mac OS X. Wersje programu na platformę Linux i Windows pojawiły się w 2006 r. Ponieważ tak było, to traktowałem XeTeXa z rezerwą--ot jakiś wariant TeXa na Maca. Wprawdzie dostępny w Linuksie, ale pewnie z wieloma ograniczeniami. Absolutnie niesłusznie. Jest to już w tej chwili program production stable, w 99% kompatybilny z klasycznym TeXem.

[Xetex+Emacs]
[Xetex+Emacs]
[Xetex + Emacs]

Dalej cytując Wikipedię: XeTeX jest dołączany do współczesnych dystrybucji TeXa, takich jak: TeXLive, MikTeX (od wersji 2.7), MacTeX. Ja mam TeXLive 2007. Potrafi wykorzystać fonty dostępne w systemie TeX oraz te dostępne w systemie. Polecenie xetex plik.tex jest równoważne uruchomieniu plain TeXa, co m.in. oznacza skład fontami CM. Czegoś takiego jak xemex zaś nie ma. Najpierw chciałem wypróbować jak działa xetex z jakimś egzotycznym fontem systemowy, np. takim jak Cyklop, dostępne w formacie OpenType. Żeby to sprawdzić musiałem najpierw doczytać jak instalować fonty w Linuksie.

Fonty są standardowo umieszczone w katalogu /usr/share/fonts. To mi nie za bardzo pasowało. Jak zmieniam system, to jest kłopot, które fonty są natywne, tj. zainstalowane z archiwów .rpm, a które nie. Wolałbym Cyklopa umieścić w /usr/local/share/fonts. Plikiem konfigurującym fonty systemowe jest /etc/fonts/fonts.conf, ale modyfikacje należy wpisywać w /etc/fonts/local.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/local.conf file for local customizations -->
<fontconfig>
<!-- Font directory list -->
        <dir>/usr/local/share/fonts</dir>
</fontconfig>

Teraz zrobiłem restart a następnie (jako root):

mkdir /usr/local/share/fonts
cd  /usr/local/share/fonts 
mkfontscale && mkfontdir # na wszelki wypadek, być może niepotrzebne
fc-cache

Teraz wpisanie fc-list | grep Cyk, powoduje wypisanie na ekran:

Cyklop:style=Italic
Cyklop:style=Regular

Teraz już z górki. Zredagowałem w Emacsie następujący plik:

%% -*- coding: utf-8 -*-
\font\titrm="Cyklop" at 15pt
\font\titit="Cyklop/I" at 12pt
\font\rm="Iwona" at 12pt
\rm
\parindent0pt
\obeylines
\nopagenumbers
%% http://galaxy.uci.agh.edu.pl/~szymon/raven.shtml
\leftline{\titrm Kruk}
\leftline{\titit {(tł. Stanisław Barańczak)}}
\medskip

W głuchą północ, w snów tumanie, gdy znużyło mnie dumanie
Nad księgami zapomnianej magii, znanej w dawnych dniach,
Chyląc głowę nad foliałem, niespodzianie usłyszałem
Chrobot, jakby ktoś nieśmiałym palcem skrobał znak na drzwiach.
,,Gość'', mruknąłem, ,,tym sygnałem daje znać, że stanie w drzwiach:
Skąd ten zimny pot i strach?''

\bye

Zwracam uwagę na sposób deklarowania fontów. Cyklop to nazwa fontu a nie pliku. Xetex nie potrzebuje plików .tfm dlatego możliwa jest taka deklaracja. Do tego zapis Cyklop/I oznacza kursywę. Podobnie /B to odmiana gruba a /BI to gruba kursywa. Bardziej finezyjne odmiany (cienkie, wąskie itp...) trzeba deklarować tradycyjnie (podając nazwę pliku). Nazwa może zawierać odstępy--po to są cudzysłowy.

Kompiluję plik wydając polecenie:

xetex test-cyklop.tex

Na dysku powstaje plik PDF zwierający co trzeba. Plik źródłowy jest tutaj.

OK, teraz co dalej? W szczególności jak jest z: przenoszeniem wyrazów w języku polskim, dołączaniem rysunków, matematyką, ładnymi plikami PDF z odsyłaczami itp.? Okazuje się, że to wszystko jest wystarczy przełączyć się na LaTeXa. Oto test nr 2:

%% -*- coding: utf-8 -*-
\documentclass[a4paper]{article}
\usepackage[EU1]{fontenc} %% \usepackage[T1]{fontenc}
%\usepackage{lmodern}
% Support for Iwona, cf. http://pinkaccordions.homelinux.org/staff/tp/prog/tex/misc/
\usepackage{iwona}
\usepackage{polski} %% wzorce przenoszenia itp...
\begin{document}

\begin{flushleft}
\begin{bf}
KRUK (\emph{The Raven\/})\\
E. A. Poe
\end{bf} \end{flushleft}

\begin{verse}
Raz w północnej, głuchej dobie, gdym znużony siedział sobie\\
Nad księgami dawnej wiedzy, którą wieków pokrył kurz -- \\
%% ...itd...

Pakiet lmodern udostępnia kroje Latin Modern i wszystko działa, jak w klasycznym LaTeXu. Pakiet fontenc deklaruje nowe kodowanie EU1. Można go używać ale można też pozostać przy klasycznym T1. Kodowanie EU1 jest niezbędne do składania tesktów w każdym innym języku za wyjątkiem angielskiego (innymi słowy ASCII działa, wszystko inne, raczej nie) Powyższy przykład działa out-of-the-box w TL2007. Pliki są tutaj.

Kolejny test dotyczył cyrylicy i rysunków. Tekst rosyjski wkleiłem po prostu z google translate, więc może być lekko bez sensu:

%% -*- coding: utf-8 -*-
\documentclass[a4paper]{article}
\usepackage[xetex]{graphicx}
\usepackage[EU1]{fontenc} %% \usepackage[T1]{fontenc}
\usepackage{tgtermes} %% \usepackage{lmodern}
%\usepackage{tgheros}
%\renewcommand{\sfdefault}{qhv} %% tgheros.sty sets qhv as main body font
%\usepackage{tgcursor}% tgcursor.sty sets qcr as main body font. Why?
%\renewcommand{\ttdefault}{qcr}
%\usepackage{url,sfheaders}
%\usepackage[russian,english]{babel}
%
\bibliographystyle{plain}
\flushbottom
\raggedright
%
\title{\textsf{Examining OSS success: information technology 
  acceptance by FireFox users}}
\author{*** No author ***}
%
\begin{document}
\maketitle
\section{Introduction}

%%
Open source software (OSS) is currently one of the most debated
phenomena in both academia and the software industry....

 %% ... itd ...

No więc powyższe daje następujące wyniki: fonty LM nie zawierają cyrylicy więc układ T1+LM nie działa. Termes ma cyrylicę ale T1+Termes powoduje błąd:

Output file removed.
Output written on ff-4-isd06-test.pdf (1 page).

Faktycznie nie ma pliku ff-4-isd06-test.pdf. Poprawnie działa Termes z kodowaniem EU1. Nie ma w TL2007 odpowiednich plików dla kodowania EU1 dla fontów TeX-Gyre (podobnie nie ma dla Iwony), ale jest to dość proste do zrobienia . Wynikowy plik PDF jest tutaj. Plik źródłowy jest zaś tutaj. Kompletny przykład zawiera też rysunki. Xetex radzi sobie doskonale i obsługuje formaty: PNG/JPG + PDF, czyli z grubsza to samo co pdfTeX.

Uwaga: przykład zawiera zaprocentowane polecenia przełączające śródtytuły na sans-serif a font o stałej szerokości na Cursor (z zestawu fontów TeX-Gyre). Żeby to wszystko działało, to trzeba uaktualnić fonty TeX-Gyre ponieważ w TL2007 jest zainstalowana wstępna, niekompletna wersja. W przykładzie używa się też kodowania EU1. Pliki niezbędne do wykorzystywania tego kodowania z fontami TeX-Gyre są tutaj.

Ostatni przykład to matematyka składana krojem alternatywnym (Times, Palatino). Do tego służą pakiety txfonts/pxfonts (standardowo instalowane w nowych dystrybucjach LaTeXa):

%% -*- coding: utf-8 -*-
\documentclass[a4paper]{article}
\usepackage[xetex]{graphicx}
\usepackage{txfonts}
\usepackage[EU1]{fontenc}
\usepackage{tgtermes}
\usepackage{hyperref}
\usepackage{polski}
%
\title{*** No title given ***}
\author{*** No author given ***}
\begin{document}
\maketitle
\section{Analiza statystyczna zmiennych makroekonomicznych}
...

Ważna jest kolejność, najpierw \usepackage{txfonts}. Inaczej XeTeX podstawia inne fonty zamiast Times. Skład na pierwszy rzut oka wygląda OK. Pliki tradycyjnie są tutaj.

No i tyle o XeTeX. W jednym zdaniu: działa jak pdfTeX tyle, że z plikami w UTF8.

Aby wygodniej posługiwać się Unicode doinstalowałem do Emacsa pakiet xmlunicode Normana Walsha (należy pobrać xmlunicode.el oraz unichars.el). Instalacja polegała na skopiowaniu ww. plików do ~/.emacs-local (tam trzymam lokalne rozszerzenia i pakiety). Następnie należy określić wartość zmiennej unicode-character-list-file w pliku xmlunicode.el. Żeby było łatwiej dopisałem też w ~/.emacs:

(define-key global-map (kbd "C-c u") 'unicode-character-insert-char )
(autoload 'unicode-character-insert "xmlunicode" "Unicode support for XML" t)
(autoload 'unicode-character-insert-char "xmlunicode" "Unicode support for XML" t)
(autoload 'unicode-character-menu-insert "xmlunicode" "Unicode support for XML" t)

Teraz naciskając C-c u mogę wstawić dowolny znak Unicode z minibufora (z uzupełnianiem (completion) oczywiście). Natomiast funkcję unicode-character-menu-insert, pozwalającą na wybór znaku przez wskazanie myszą, dopisałem do menu. Funkcja unicode-character-menu-insert obsługuje rzecz jasna tylko znikomą część znaków Unicode -- te najczęściej używane. Menu zawierające wszystkie znaki raczej byłoby niewygodne w użyciu. BTW, to co wyświetlane jest w menu jest zdefiniowane w zmiennej unicode-character-menu-alist. Od razu dopisałem dwa znaki: #x201E (polski cudzysłów otwierający) i #x2026 (wielokropek).

Na koniec przydatny link do opis zestawu znaków Unicode.

Dopisane 9 marca 2008: Zamiast fontenc można korzystać z pakietu fontspec (jest zainstalowany w TL2007). Pakiet ten jest alternatywą dla klasycznego mechanizmu wyboru fontów w LaTeXu znanego jako NFSS. Wadą NFSS było to, że wymagał kłopotliwych dla tzw. przeciętnego użytkownika zabiegów na etapie instalowania fontu. Jeżeli zamiast fontenc używamy fonspec, to wtedy preambuła dokumentu wygląda następująco:

%% -*- coding: utf-8 -*-
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{Iwona}
%\setsansfont{TeX Gyre Heros} % odmiana bezszerfowa
%\setmonofont{TeX Gyre Cursor} % odmiana `monospace'
\usepackage{polski} %% wzorce przenoszenia itp...
  %%%  ... itd ...
\begin{document}
 %% ... itd ...

Jak widać do włączenia fontu używana jest jego nazwa a nie nazwa pliku z fontem. Z dokumentacji pakietu wynika, że aby powyższe zadziałało font musi być zainstalowany w systemie -- umieszczenie odpowiednich plików w systemie TeX nie wystarczy. Jest wszakże możliwość takiego skonfigurowania pakietu fontspec żeby działał z fontami zainstalowanymi w texmf. W tym celu należy dodać opcjonalny argument ExternalLocation, tj. na przykład:

\fontspec[ExternalLocation]{texgyrecursor-regular}

Pakiet fonspec czasami nie działa z pakietami fontowymi z tradycyjnego LaTeXa. W szczególności nie działał (przynajmniej u mnie) w połączeniu z fontami matematycznymi z pakietów txfonts/pxfonts.

Dopisane 19 marca 2008: Za listą GUST-l: A jak wygenerować format XeMeX? albo innymi słowy plain-format dla XeTeXa z polskimi wzorcami przenoszenia wyrazów? (to ja się zapytałem:-).

Odpowiedź jest następująca (Piotr Strzelczyk): niestety to jeszcze nie jest oczywiste. Zwłaszcza, że rozwój formatów XeTeXa poszedł zdecydowanie w stronę LaTeXa. Trzeba znaleźć wersję pliku XeTeX.ini opierającą się na eTeXu. (W archiwum na stronie twórcy, jest chyba zła wersja, za to na TeXlive jest dobra.) Ma być sygnowana:

% xetex.ini
% jonathan kew
% public domain
% updated: 15 Sept 2006

Następnie [należy] sprawdzić jakie języki są włączone w language.def (nie mylić z language.dat) i dołączyć język polski (pamiętając, że należy używać plików ,,unikodujących'' definicje przeniesień -- wraperów -- np. xu-plhyph.tex):

\addlanguage {polish}{xu-plhyph}{}{2}{2}

No i później już normalnie -- generujemy format. I możemy pisać po polsku, włączając język poleceniem \uselanguage{polish} (po szczegóły odsyłam do dokumentacji e-TeXa).

Janusz Nowacki dopisał zaś: Można też \uselanguage{polish} ustawić już w language.def i będzie to prawie XeMeX (format z domyślnym polskim dzieleniem [wyrazów]).

Dopisane 26 marca 2008: Oprócz TeXGyre można spróbować używać XeTeXa z fontami Minion/Myriad rozpowszechnianymi razem z programem AcrobatReader firmy Adobe. Są jeszcze do wypróbowania fonty Asana Math (autor: Apostolos Syropoulos). Problem z Asana Math jest wszakże taki, że autor udostępnił tylko goły font, nie bardzo wiem jak się dobrać do poszczegółnych znaków w foncie.

url | Fri, 07/03/2008 13:02 | tagi: , , , , , ,
Próbowanie fontów STIX

Fonty STIX, o których wspomniałem jakiś czas temu są dostępne w beta wersji ze strony www.stixfonts.org/. Oglądając je w programie fontforge nie zauważyłem jakiś oczywistych uchybień. Jedyne co wydaje się na moje niefachowe oko podejrzane, to kropka nad ,,z'' w znaku zdotaccent. Jest ona wprawdzie tej samej wielkości jak kropka w znakach ,,i'' oraz ,,j'' (w wielu fontach jest mniejsza, co jest oczywistym błędem) ale jest umieszczona niżej.

Przy okazji oglądania fontów STIX przypomiałem sobie, jak zainstalować w systemie TeX font OTF/TTF. Pliki tfm wygenerowałem korzystając z programu otftotfm z pakietu typetools.

otftotfm -a -e qx.enc STIXGeneral.otf STIXGeneral--qx

Uwaga: uprzednio skopiowałem do bieżącego katalogu plik qx.enc. W TeXlive 2005, którego używam, wszystkie mapy fontowe, fonty .tfm, .vf, itp., zostaną przez program otftotfm wygenerowane i zainstalowane w ~./texlive2005/. Jeżeli nie poda się opcji -a, to pliki zostaną wygenerowane w katalogu bieżącym (STIXGeneral.pfb, STIXGeneral--qx.vf, STIXGeneral--qx.tfm oraz STIXGeneral--qx--base.tfm), a na ekranie pojawił się m.in. wiersz:

STIXGeneral--qx--base STIXGeneral
"AutoEnc_fsfrb4jn74upot7m4ihm5xftge \ ReEncodeFont" &[a_fsfrb4.enc
&STIXGeneral.pfb

Do stworzenia pliku .fd niezbędnego dla LaTeXa przygotowałem prosty skrypt. (Do tego zadania można też skorzystać z otfinst.) Wywołanie skryptu fd_gen.pl jest następujące:

perl fd_gen.pl -encoding qx -family STIX -regular STIXGeneral \
  -italic STIXGeneralItalic -bold STIXGeneralBol \
  -boldit STIXGeneralBolIta > qxstix.fd

Uwaga na nazwy pliku .fd. Powinny się składać wyłącznie z małych liter. Po wykonaniu powyższego pliku powinien zawierać:

% Plik qxstix.fd wygenerowany
\DeclareFontFamily{QX}{STIX}{}
\DeclareFontShape{QX}{STIX}{m}{n}{ &-> STIXGeneral--qx }{}
\DeclareFontShape{QX}{STIX}{m}{it}{ &-> STIXGeneralItalic--qx }{}
\DeclareFontShape{QX}{STIX}{b}{n}{ &-> STIXGeneralBol--qx }{}
\DeclareFontShape{QX}{STIX}{b}{it}{ &-> STIXGeneralBolIta--qx }{}
\DeclareFontShape{QX}{STIX}{bx}{n}{ &-> ssub * STIX/b/n }{}
\DeclareFontShape{QX}{STIX}{bx}{it}{&-> ssub * STIX/b/it }{}

Plik testowy test.tex zawiera zaś:

%&-translate-file=il2-pl
\documentclass{article}
\usepackage[QX]{fontenc}
\renewcommand{\rmdefault}{STIX}
\renewcommand{\familydefault}{\rmdefault}
\fontfamily{\familydefault}
\begin{document}

To jest \textbf{żółw \textit{pod źdźbłem}} śnięty

To jest żółw \textit{pod źdźbłem} śnięty
\end{document}

teraz:

pdftex test 

Dokument powinien być złożony fontami STIX

A przy okazji Liberation fonts udostępniony przez RedHata, o którym się dowiedziałem niedawno to zupełny scrap niewart zainteresowania. Brak jest hintów a polskie ogonki dodane bez usunięcia zachodzących na siebie fragmentów obwiedni.

url | Fri, 02/11/2007 16:20 | tagi: , , , , ,
TrueType core fonts a dołączanie fontów

Dziś zostałem zapytany czy można dołączyć do dokumentu PDF font Times New Roman ze zbioru TrueType core fonts for the Web. Na zdrowy tzw. chłopski rozum, wydaje się, że tak ale z kolei w przypadku firmy MS może być różnie więc niekoniecznie może to być możliwe (zgodne z licencją).

Sprawdziłem licencję i można. Oczywiście jeżeli dokument zawiera podzbiór znaków (emedded subset) ale to akurat jest normalne/zwyczajowe ograniczenie. Na ten temat traktuje też [11] [8].

url | Tue, 16/10/2007 12:43 | tagi: , , ,
Ładniejszy Emacs, uzupełnienie

W nawiązaniu do tekstu nt. Emacsa, kol. Wanted podpowiedział, że oprócz Bitstream Vera, który faktycznie nie ma za dużo diakrytyków, jest klon tego fontu z dużą liczbą znaków pn. DejaVu (DejaVu fonts). Spróbowałem to zainstalować wpisując yum install dejavu-fonts, ale się nie udało:

Error: dejavu-fonts conflicts with fontconfig >= 2.3.0

Hmm, dziwne. Żeby czegoś nie popsuć wolałem działać ostrożnie. Rozpakowałem archiwum .rpm:

rpm2cpio dejavu-fonts-2.18-1.rf.noarch.rpm | cpio -idv

W środku nie było nic nazwyczajnego. Pliki ttf + dokumentacja. Pliki .ttf umieściłem ręcznie w /usr/share/fonts/dejavu/. Na wszelki wypadek uruchomiłem w tym katalogu mkfontdirmkfontscale. Uruchomiłem Emacsa w następujący sposób:

/usr/local/emacs23/bin/emacs-23.0.0 --font "DejaVuSansMono-14" --multibyte

Wygląda, że działa. Przy okazji i zupełnie przypadkowo wygooglałem informację nt. projektu fontów STIX. Z tego co wyczytałem ma to być podobna do Times New Roman rodzina bogatych w diakrytyki fontów. Na dniach mają być gotowe i upublicznione. Zobaczymy, być może będzie to coś ciekawego.

url | Tue, 28/08/2007 20:52 | tagi: , , , , ,
Ładniejszy Emacs

Kierując się wskazówkami ze strony www.emacswiki.org skompilowałem Emacsa 23, wersja alfa. Ten Emacs umie wreszcie korzystać z dobrej jakości fontów TrueType dzięki wsparciu Xft. Zatem:

cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs
./configure --with-gtk --enable-font-backend --with-xft --prefix=/usr/local/emacs23
make
mkdir /usr/local/emacs23 
chown tomek:tomek /usr/local/emacs23

Na wszelki wypadek dociągnąłem jeszcze yum install giflib-devel, bo ./configure zgłosił błąd (po co mi gify?). Oczywiście nie chcę zmieniać starego emacsa na wersję alfa, stąd pomysł zainstalowania wszystkiego w katalogu /usr/local/emacs23. Będę miał dwa The one true editor -- prawdziwie skumulowana potęga.

Teraz uruchamiam:

emacs --font "Bitstream Vera Sans Mono-10"

Krój Vera fajnie wygląda, ale polskich ogonków nie ma, i nawet nie jest to wina Emacsa tylko po prostu nie ma ich w foncie (Bitstream Vera Fonts).

Spróbowałem zatem z innym ustawieniem, i po dłuższym kombinowaniu czemu zamiast polskich znaków widzę coś zupełnie innego udało się:

## emacs-23 zdaje sie działać:
/usr/local/emacs23/bin/emacs-23.0.0 --font "Monospace-13" --multibyte

Na etapie rozruchu dodałem jeszcze --debug-init, dzięki czemu szybko ustaliłem co się gryzie ze starego .emacs i innych plików startowych z nowym Emacsem. Nie było tego dużo: hscroll-global-mode, pakiety session, trampjde. Zamiast session w dystrybucji Emacsa jest desktop.el; tramp.el też jest już w dystrybucji -- konflikt dotyczył starej wersji. Dodałem zatem kilka warunków w stylu:

(if (< emacs-major-version 22)
(progn (require 'session)
  (add-hook 'after-init-hook 'session-initialize))
(progn (desktop-save-mode 1)
  ;; Customization follows below
  (setq history-length 250)
  (add-to-list 'desktop-globals-to-save 'file-name-history)) )

Emacs faktycznie używa fontu TrueType. Można to sprawdzić, np. za pomocą sposobu podanego w CSE HUJI Emacs Fonts HOWTO:

(frame-parameter nil 'font)

Wpisujemy powyższe do dowolnego bufora, ustawiamy kursor za zamykającym nawiasem a następnie C-x C-e. W minibuforze pojawi się:

"-b&h-luxi mono-medium-r-normal--15-*-*-*-*-*-fontset-startup"

Wygląda zatem, że to luxi mono Charlesa Bigelowa i Krisa Holmesa.

Jakość (czytelność) tekstu jest faktycznie znacząco lepsza, ale z wyświetlaniem poszczególnych znaków (na pierwszy rzut oka) jest różnie: niektóre znaczki jakby trochę są krzywe:-). Może to kwestia fontu? Sprawa wymaga dalszego zbadania. Poniżej dwa przykładowe ekrany (jak się kliknie to będą większe):

Emacs Emacs

url | Tue, 21/08/2007 01:12 | tagi: , , , ,