Uygulama : DocBook ile PDF yaratma Home Map Index Search News Archives Links About LF
[Top
bar]
[Bottom bar]
Bu makalenin: Castellano  Deutsch  English  Français  Nederlands  Russian  Turkce  
[Photo of the Author]
by Egon Willighagen

Yazar hakkında:

1999 yılında Hollanda LF takımına katıldı ve bu yılın baslarında 2. editör oldu. Nijmegen Üniversitesinde Kimya Bilimleri bölümünde öğrenci.Baskebol oynamayı ve yürüyüş yapmayı seviyor.

İcerik:

DocBook ile PDF dokümanlari yapmak


Çeviri: Serkan Bursalı


( Çeviri tam anlamıyla bitmemiştir. Türkçe sözcük hataları bulunmaktadır. Çeviri en en kısa sürede bu hatalarından arındırılarak güncelleştirilecektir.)

[Illustration]

Özet :

Bu yazi Pdf dokümanlari gelistirmek için DocBook'un nasil kullanilacagini anlatmaktadir ve DocBook makalelerini ve araçlarini degistirip Pdf dokümanlarina çevirmek için ihtiyaciniz olan araçlari kapsayacaktir. Burada sadece ihtiyaciniz olan yazilim araçlarini isimlendirdiginden ve onlari nasil kuracaginizi anlatmadigindan, bu makale deneyimli Linux kullanicilari için tasarlanmistir.

Yazinin ilk bölümünde docbook dokümanlarinin biçimi üzerine yogunlasilacaktir. DocBook dokümanlari tanitildigi zaman , bunlari Acrobat ile görüntülenebilen pdf biçimine çevirebilmek için gerekli olan araçlari açiklamaya çalisacagim.



 

DocBook nedir?

DocBook [1] dokümanlari göstermek/belirtmek için gelistirilen bir SGML uygulamasidir ; HTML 'in web dokümanlarini belirtmesi gibi. HTML 'den farkli olarak, DocBook dokümanin düzeni hakkinda bilgi vermez. Bu nedenle DocBook dokümaninin görüntülenmeden önce baska bir biçime çevrilmesi gerekir. Baska biçimlere çevirme belirli bir modeli DocBook dokümanina uygulama ile yapilir


 
Sekil 1: Conversion from DocBook to PDF with a stylesheet

Sonlara dogru bu dönüsümü yapmak için hangi modelleri kullanmak zorunda oldugunuz ve modele hangi araçlarin uygulanacagi açiklanacaktir. Önce, dokümanlarin nasil bir araya getirilecegini görecegiz.

 

Yazi Yazmak

DocBook iki çesit dokümani belirtebilir : yazilar ve kitaplar. Prensipte ikisi de ayni oldugundan , yazi gösterimini örnek olarak gösterecegim. Basit bir yazi dokümani göstermeden önce DocBook ile ilgili birkaç temel prensip

DocBook bir SGML uygulamasidir; HTML gibi. Fakat DocBook'un XML biçim de vardir. XML tipi daha kurallara baglidir fakat okunmadi daha kolaydir. Bu nedenle ögrenmesi daha kolaydir. XML'in kendisi SGML uygulamasi oldugundan tüm SGML araçlari kullanilabilir. SGML ile XML arasindaki temel farklar sunlardir:

  • XML elemanlari her zaman kapatilmak zorundadir.
  • XML elemanlari yuvalanmalidir ?
Bunun anlami <BR>'yi HTML'de kullanamazsiniz; <BR></BR> 'yi kullanmak zorundasiniz. Ikincinin anlami ise; <B><A HREF="some_url">click here</B></A> yazamazsiniz ;elemanlari uygun sekilde yuvalayarak <B><A HREF="some_url">click here</A></B>.

Önemli formaliteleri gördükten sonra DocBook'ta yazi yazmaya baslayabiliriz.

    <?xml version="1.0"?>
    <article>
      <title>Writing DocBook articles</title>
      <artheader>
        <abstract>
          This article describes how you can use DocBook to develop
          PDF documents and will cover tools you need to edit DocBook
          articles and tools to translate them to PDF documents.
        </abstract>
        <author>
          <firstname>Egon</firstname>
          <surname>Willighagen</surname>
        </author>
        <date></date>
      </artheader>
    </article>

Bu zor degil. Basligi , ne zaman yazildigi ve yazarin adi olan kisa bir yazi ile baslayalim.

Bir sonraki adim, yaziya bölüm elemanlarini kullanarak bölümler eklemektir.

    <?xml version="1.0"?>
    <article>
      <title>Writing DocBook articles</title>
      <artheader>
        ... the articles header ...
      </artheader>
  
      <section>
        <title>Introduction</title>
      </section>

      ... other sections ...

    </article>

Su anda yaziya giris bölümü ekledik. Eklenebilecek bölüm elemanlari sonuçlar, yorumlar veya baska bölümler olabilir.

 

Yazi veya baska bilgilerin eklenmesi

Bütün yazilar para elemanlari içerirler; HTML' in p elemani gibi:

    <section>
      <title>Introduction</title>
      <para>
        DocBook is an SGML application 
        developed to markup documents, just like HTML marks up webdocuments.
      </para>
    </section>

Fakat yazinin yaninda baska elemanlar da mümkündür. Bu bölümün geri kalaninda örnekler, listeler, resimler ,vb ... yaziya nasil eklenecegi gösterilmektedir.

Örneklerin Eklenmesi

Örnekler örnek elemanlarinin kullanimi ile eklenebilir ; asagida verilen örnek programda oldugu gibi :

    <example>
      <title>Perl program that converts an XML document into a HTML
    page.</title>
      <programlisting>
        #!/usr/bin/perl -w
        use diagnostics;
        use strict;
        use XML::XSLT;
    
        my $XSLTparser = XML::XSLT->new();
        $XSLTparser->open_project ("file.xml",
    "stylesheet.xsl", "FILE", "FILE");
        $XSLTparser->process_project;
        $XSLTparser->print_result();    
      </programlisting>
    </example>
    
Fakat örnekler yazi,resim ve baska bilgiler de içerebilirler.

Listeler Ekleme

HTML' de oldugu gibi DocBook da liste içermektedir. Listeler madde seklinde yazilmis liste elemanlari ile tanimlanirlar ve bir ya da daha fazla liste elemani içerebilirler.

    <itemizedlist>
      <listitem>
        <para>an item</para>
      </listitem>
      <listitem>
        <para>another item</para>
      </listitem>
      <listitem>
        <para>and again an item</para>
      </listitem>
    </itemizedlist>
    
Burada para elemani yaziyi da içerebilir. Yazi her zaman bu elemani birlikte içermek zorundadir.

Listeler siralanabilirler. Bu durumda sirali liste elemanlari madde seklinde yazilmis liste elemanlari yerine kullanilabilir. Numara parametresi eklenerek sayilarin tipi de belirlenebilir (e.g. <orderedlist numeration="Arabic">)

Resim Eklemek

Görüntüler de yaziya eklenebilir:

    <mediaobject>
    <imageobject>
    <imagedata fileref="some_picture.gif"
    format="gif"/>
    </imageobject>
    <textobject>
      <para>
        If you were not using
    <productname>Lynx</productname>
        you could now see a picture.
      </para>
    </textobject>
    </mediaobject>
    
Resmin yaninda yazi da verilebilir. Gerçekte film de eklenebilirdi. DocBook dokümanini Pdf dokümanina çeviren model prosesörü , en iyi araci seçecektir. Bu büyük bir olasilikla resim olacaktir.

Ayrica lynx kelimesinin isaretleyici oldugu da not edilmelidir. Bu düzenin bilgiden ayrildigi ; görünüsün spesifik oldugu bir isaretleme dilidir. Bu makale; Lynx'in, Lynx isminin ürünü oldugunu anlatir. Bu model sayfasi daha sonra ürün adini özel bir görünümle gösterilemsi gerektiğini tarif eder; örnegin italik takip eden bölümde kelimeler için bazi ek isaretleyiciler görecegiz.

Belirtme Sözcükleri

Resim örneginde gösterildigi gibi , kelimelerin kendileri belirtece sahip olabilir. Asagidaki tabloda bazi isaret edici elemanlar verilmistir:

    Eleman Tanimi
    abbrev Kisaltmayi bir periyot takip eder.
    Örnek:
    <para><abbrev>e.g.</abbrev> means for example.</para>
    acronym Esanlamli
    Örnek:
    <para><acronym>DSM</acronym> (chemical company) means "De StaatsMijnen" (=The State Mines).</para>
    email Elektronik Posta Adresi
    Örnek:
    <para>My email is <email>egon.w@linuxfocus.org</email></para>
    keyword Bir makalenin anahtar kelimesi
    Örnek:
    <para>In my humble opinion <keyword>chemistry</keyword> is very important.</para>
Diger elemanlar kaynaklarda listelenmistir [2].

DocBook elemanları ile ilgili kısa bir girişten sonra , şimdi sıra Pdf dokümanı yapmaya geldi.

 

Dokümanin PDF Biçimine Çevrilmesi

Elimizdeki DocBook dokümanini birçok biçime çevirebiliriz. Pdf'in yaninda, dokümani Word Perfect, Word, Star Writer ya da diger yazim programlari ile okunabilecek bir internet sitesine, Postscript dokümanina, Tex dosyasina veya RTF'a (Rich Text Format) çevirebiliriz. Ama bu makalede yalnizca Pdf biçimine çevirmekle ilgilenecegiz.

DocBook Vi ya da Nedit gibi herhangi bir editörle yazilabilir. Daha da iyisi Emacs'tir: Norman Walsh DocBook için bazi kullanisli yöntemler ekleyen ana bir model yazmistir, [3] eleman isimlerini tamamlamak veya template elemanlari eklemek gibi
Kendi test yazinizi yapmak disinda , bu yazida verilen örnekleri içeren benim versiyonumu da indirebilirsiniz.

Bu makalenin basinda açiklandigi gibi, DocBook 'u Pdf biçimine çevirmek için bizim hem bir modele hem de bu modeli kullanan araçlara ihtiyacimiz var. Bu model DocBook makalesini tabii ki direkt olarak Pdf biçimine çevirmez. Arada bir Tex adimi vardir. Kullandigimiz model Norman Walsh'un [4] DSSSL'de yazilmis DocBook Modelidir

Modeli kullanabilmek için DSSSL modeline çevirmemiz bunun için de DSSSL prosesorüne sahip olmamiz gerekir. Bu prosesor Jade'dir [5] Ve James Clark tarafindan gelistirilmistir (bu araci desteklemeyi birakmistir). Bunun yerine OpenJade[6] konmustur.

    Modüler Model Sayfasi, Jade ve JadeTex (asagida) paketleri(like RedHat, Suse, Corel en Debian)! kullanan tüm dagiticilar için elde edilebilirdir.Öncelikle yükleme programinizi , CD veya dagitici web sayfasini kontrol edin

Benim Debian sistemim Walsh'ün Modüler Model Sayfasında Pdf'e dönüşüm, /usr/lib/sgml/stylesheets/dsssl/docbook/nwalsh/print/ içine Jade için "-d" parametresi ile yüklenmistir. "-t" seçeneği Jade'e Tex'i arka planda kullanmasını söyler

    egonw@localhost> ls -al
    total 3
    -rw-r--r--    1 egonw    egonw        2887 Apr  8 22:06 docbook_article.xml
    egonw@localhost> jade -t tex -d
    /usr/lib/sgml/stylesheets/dsssl/docbook/nwalsh/print/docbook.dsl
    docbook_article.xml
    egonw@localhost> ls -al
    total 21
    -rw-r--r--    1 egonw    egonw        2887 Apr  8 22:06 docbook_article.xml
    -rw-r--r--    1 egonw    egonw       17701 Apr  8 22:29 docbook_article.tex
    
Gördügünüz gibi Jade Tex dosyalari olusturur. Bu Tex dosyasi daha sonra JadeTex paketinde bulunan pdfjadetex araci ile PDF dosyasina çevrilir [7]:
    egonw@localhost> ls -al
    total 21
    -rw-r--r--    1 egonw    egonw        2887 Apr  8 22:06 docbook_article.xml
    -rw-r--r--    1 egonw    egonw       17701 Apr  8 22:29 docbook_article.tex
    egonw@localhost> pdfjadetex docbook_article.tex
    
bu güzel bir docbook_article.pdf olusturur. Her sayfanin basina yazi başligi eklemek gibi bir çok düzenleme yapilabilir ve program listelemek için farkli fontlar kullanilabilir. DocBook ile çalismaya basladigim zaman Hangi kombinasyonlara sahip oldugumu anlamakla zaman harcadim. Bu yazi sadece tek bir kombinasyonu gösteriyor

 

Dikkat edilecek noktalar

DocBookXML dili çok kapsamlidir.Bu baska formatlara çevrilebilir anlamina gelir.Bu yazi sadece çok kisa bir giris yapmistir.Bu yazi için ; sorular yazisma sayfasina postalanabilir.Daha fazla bilgi için [8] ve [9] referanslara gidilebilir. Son referans tamamen docbook ile yazilmistir.

Bu yazida yer almayan Fakat DocBook ile mümkün olan ileri konular :

  • bibliografik bilgiler için kapsamli anlatimlar
  • baska bölümlere link yapmak.
Belki gelecekteki bir yazinin konusu olur.

 

Referanslar

1.  DocBook website
2.  Quick Reference: DocBook Elements
3.  Emacs major mode for DocBook
4.  The Modular DocBook Stylesheets
5.  Jade
6.  OpenJade
7.  JadeTeX
8.  Norman Walsh's DocBook site
9.  DocBook: The Definate Guide on SGML variant

 

Bu yazı hakkında görüş bildirmek için

Her yazi geri dönüsümlü konusma sayfasina sahiptir. Bu sayfada kendi yorumlarinizi yazabilir veya diger okuyucularin yorumlarini okuyabilirsiniz:
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Egon Willighagen
LinuxFocus.org 2000

Click here to report a fault or send a comment to Linuxfocus

2000-07-20, generated by lfparser version 1.7