ConTeXt

Instalacja

  1. Odinstalować wszelkie inne instalcje TeXa, które instaluje Debian.

  2. Zainstalować TeX-Live.

  3. Rozpakować cont-tmf.zip w podkatalogu texmf.

  4. mktexlsr

  5. texexec --make

    To instaluje tylko podstawowy format, żeby mieć wersję spolonizowaną w mtexexec.pdf jest podane jak się generuje format. Tu jest trochę zmienione. nl jest potrzebne do prawidłowego składania modułów.

    texexec --make --language=pl --bodyfont=plr en nl

    This will generate a format file with an english user interface, while the main language is Polish (pl) and the default body font is the Polish alternative plr of the Computer Modern Roman (cmr). In addition, Czech and Slovak patterns are loaded. In a similar way you can generate a Czech version (cz and csr).

    Plik z polskimi znakami w tym wypadku w cp-1250 powinien zawierać

    %& --translate-file=cp1250pl

    lub

    % --translate=cp1250pl

    Zamiast zapisywać informację o kodowaniu w pliku można ją podać na linii komend:

    texexec --translate=il-2pl somefile

    I oczywiście domyślnie musi być włączony polski, a jeżeli nie jest to trzeba napisać

    \mainlanguage[pl]
    \language[pl]

    I jeszcze...

    
    \setupencoding[default=ec]
    \usetypescript [all][computer-modern][\defaultencoding]
    
    
    
  6. texexec --make --alone metafun

    Generuje Metafun. Hans w jednym z maili radził potem uruchomić mktexlsr.

Sieroty i wdowy w spisie treści

\setuplist[part][before={\page[bigpreference]}]

Zapobiega pozostawaniu tytułu sekcji na końcu strony.

Kolor

Drukarnie zdecydowanie wolą dostawać CMYK a nie RGB. Żeby wszystkie kolory zostały przekonwertowane do CMYKa wystarczy:

\setupcolors[rgb=no]

Wybrane Moduły

Dokumentacja w plikach PDF

  1. colo-ini.pdf - Używanie koloru.

  2. colo-pra.pdf - Własne definicje kolorów PRAGM-y.

  3. color-rgb.pdf - Definicje innych kolorów.

  4. cont-new.pdf - Nowe makra, prawie bez dokumentacji (14.04.2002).

  5. core-buf.pdf - Bufory i bloki, zero dokumentacji.

  6. core-con.pdf - Konwersja liczb, udokumentowana.

  7. core-dat.pdf - Obsługa baz adresowych!

  8. core-des.pdf - Opisy, zero opisu.

  9. core-fig.pdf - Dołączanie ilustracji.

  10. core-fil.pdf - Używanie plików.

  11. core-fld.pdf - Pola formularzy, bardzo skąpy opis.

  12. core-fnt.pdf - Uzywanie fontów.

  13. core-grd.pdf - Grid snapping (eksperymentalne), częściowo udokumentowane.

  14. core-hlp.pdf - Własny moduł do dołączania systemu pomocy do dokumentów interaktywnych (eksperymentalny), mało opisu ale ciekawe!

  15. core-int.pdf - Interakcja, prawie zero dokumentacji.

  16. core-itm.pdf - Grupy pozycji, czyli listy, bardzo skąpa dokumentacja.

  17. core-job.pdf - Kontrola zadań, bez dokumentacji.

  18. core-lst.pdf - Listy, nieudokumentowane.

  19. core-mar.pdf - Markings (?).

  20. core-mat.pdf - Działania matematyczne.

  21. core-nav.pdf - Nawigacja w dokumentach interaktywnych.

  22. core-new.pdf - Nowe (?).

  23. core-not.pdf - Przypisy.

  24. core-ntb.pdf - Tablice (naturalne [?!]).

  25. core-num.pdf - Numerowanie, bez komentarzy.

  26. core-obj.pdf - Obiekty.

  27. core-par.pdf - Sztuczki z paragrafami, bez komentarzy.

  28. core-pos.pdf - Pozycjonowanie.

  29. core-ref.pdf - Odnośniki, w dokumentach papierowych i interaktywnych.

  30. core-reg.pdf - Rejestry, nieudokumentowane.

  31. core-rul.pdf - Podkreślenia, ramki, tła itp.

  32. core-sec.pdf - Podział na sekcje.

  33. core-spa.pdf - Odstępy.

  34. core-syn.pdf - Synonimy i sortowanie, nieudokumentowane.

  35. core-sys.pdf - System, nieudokumentowany.

  36. core-tab.pdf - Tabele, oparciu o pakiet M. Wichury.

  37. core-tbl.pdf - Tabulacja (?), nieudokumentowana.

  38. core-uti.pdf - Obsługa plików, nieudokumentowana.

  39. core-var.pdf - Zmienne.

  40. core-ver.pdf - Verbatim.

  41. core-vis.pdf - Wizualizacja podstawowych TeXowych obiektów.

  42. enco-*.pdf - Różne pliki dotyczące kodów znaków stosowanych w Contex-cie, m.in. enco-pol.pdf, z dostępnymi polskimi kodowaniami.

  43. font-arb.tex - obsługa arabskiego i hebrajskiego (?).

  44. font-unk.pdf - Użycie fontów, nieznane wartości domyślne (?).

  45. java-ans.pdf - Analiza odpowiedzi.

  46. java-fld.tex - Java Script.

  47. java-ini.pdf - Inicjalizacja makr dla Java Scriptu.

  48. lang-sla.pdf - Obsługa języków słowiańskich (m.in. polskiego).

  49. m-chart.pdf - Wykresy (ekperymentalny).

  50. m-pstric.pdf - Używanie PSTRICKS.

  51. m-steps.pdf - Tabele kolorów.

  52. meta-clp.pdf - Obcinanie grafik.

  53. meta-fig.pdf - Osobne grafiki (zajmujące całą stronę).

  54. meta-ini.pdf, meta-pag.pdf - Inicjalizacja grafiki.

  55. meta-pre.pdf - Predefiniowane obiekty graficzne (chyba tylko siatka na razie).

  56. meta-txt.pdf - Przekształcenia tekstu przy użyciu Metaposta.

  57. page-bck.pdf - Tła.

  58. page-lay.pdf - Układ strony.

  59. page-lin.pdf - Numerowanie wierszy.

  60. page-lyr.pdf - Warstwy.

  61. page-mak.pdf - Makeup (osobna strona, taka jak strona tytułowa, albo kolofon).

  62. page-mar.pdf - Notatki na marginesie.

  63. page-mul.pdf - Układ w kilku kolumnach.

  64. page-sid.pdf - Makra OTR (ciekawe...).

  65. page-txt.pdf - Tajemnicze operacje z tekstem.

  66. pdfr-il2.tex - Wektor dla fontów Type 1 (iso-latin2).

  67. s-faq-00.pdf - Podstawowe makra do składania FAQ.

  68. s-faq-01.pdf - Interaktywna wersja FAQ.

  69. s-faq-02.pdf - Papierowa wersja FAQ.

  70. s-map-01.pdf - Styl do składania biuletynu NTG - MAPS.

  71. s-mod-*.pdf - Tworzenie dokumentacji.

  72. s-pre-*.pdf - Różne style prezentacji.

  73. spec-def.pdf - Różne definicje, m.in. dotyczące interakcji.

  74. spec-dpm.pdf - Dźwięk, video, uruchamianie programów!

  75. spec-fdf.pdf - FDF, przejścia, różne interaktywne komendy.

  76. spec-ini.pdf - Inicjalizacja specjalnych makr.

  77. spec-mis.pdf - Różne makra, interaktywne.

  78. spec-pdf.pdf - Dalsze makra dla interaktywnych PDF-ów.

  79. spec-ps.pdf - Makra PostScriptowe.

  80. spec-tpd.pdf - Specjalne makra dla PDFTeXa.

  81. spec-tr.pdf - Makra dla DVIPSa.

  82. supp-ali.pdf - Wyrównywanie, nieudokumentowane.

  83. supp-box.pdf - Pudełka.

  84. supp-eps.pdf - Makra dla EPS-ów.

  85. supp-fil.pdf - Pliki.

  86. supp-fun.pdf - Różne ciekawe sztuczki!

  87. supp-lan.pdf - Opcje językowe.

  88. supp-mis.pdf - c.d. makr językowych.

  89. supp-mpe.pdf, supp-mps.pdf - Makra dla METAPOSTa.

  90. supp-mrk.pdf - Liczniki, etykiety.

  91. supp-num.pdf - Cyfry.

  92. supp-pdf.pdf - Makra do PDF-ów.

  93. supp-vis.pdf - Wizualizacje.

  94. symb-ini.pdf - Różne symbole.

  95. symb-mvs.pdf - c.d. symboli, m.in. znaki Zodiaku.

  96. symb-nav.pdf - Symbole do nawigacji.

  97. syst-ext.pdf - Różne przydatne makra.

  98. syst-gen.pdf - Dalsze makra.

  99. type-*.pdf - Obsługa fontów.

  100. verb-*.pdf - Verbatim i pretty-printing dla Javy, Javascriptu, Eiffela, SQLa, Perla, XMLa, Pascala, Moduli i Metaposta.

  101. x-*.pdf - Moduły do przetwarzania XMLa.

Drukowanie dokumentacji modułów

texexec --modu --pdf somefile

Gotowy plik z dokumentacją znajduje się w tym samym katalogu, co plik źródłowy, niezależnie od tego, skąd była uruchomiona komenda.

Notatki z tworzenia prezentacji.

Bardzo dobrze zademnostrowane użycie komend do tworzenia prezentacji w pliku pre-mapx.pdf. Do stworzenia bibliografii został użyty plik z XML-u. Poza tym, niestety, tylko demonstarcja możliwości bez żadnych informacji.

Example 1. Pudełka

Przykład w podręczniku (4.19):

\framed[offset=\bodyfontsize]
{\setbox0=\vbox
{\hsize 16em\switchtobodyfont[ss]\getbuffer[water]}
\setbox2=\vbox to \ht0
{\vfill\externalfigure[vew1091a][width=5cm]\vfill}
\hskip1em\box2\hskip1em\box0\hskip1em}

Tekst jest wprowadzany przy pomocy komendy \getbuffer (to znaczy najpierw trzeba go zapisać do jakiegoś bufora, żeby później móc się do niego odwołać.


To wcale nie będzie potrzebne. Całkiem dobrze wygląda tekst sformatowany przez \figuretext.

Warstwy

Warstwy zamieniają niemal TeXa w Quarka. Przy ich pomocy można dowolny element strony (mam nadzieję) umieścić precyzyjnie. Poza tym można uzyskiwać dodatkowe efekty wynikające z nakładania się warstw na siebie.

Przede wszystkim należy zdfiniować warstwę:

\definelayer[warstwa1][option=test]

Opcja test powoduje wyświetlanie ramki i punktu zaczepienia.

Później trzeba dodać warstwę jako tło jakiegoś obiektu:

\setupbackgrounds[page][background=warstwa1]

Nastepnie trzeba umiescić warstwę na stronie:

\setlayer[warstwa1][x=3cm,y=5cm]{\externalfigure[suknia04b.jpg][height=4cm]
}

Można używać kilku warstw, które są jakby instancjami obiektu zdefiniowanego wcześniej (tu warstwa1). Po dodaniu poniższej komendy obrazek zostaje powtórzony w innym miejscu.

\setlayer[warstwa1][x=6cm,y=7cm]{\externalfigure[suknia04b.jpg][height=5cm]}

Do pewnego bałaganu może doprowadzić używanie wielu instancji różnych warstw, co jest możliwe jeśli się wpisze (w nawiasie klamrowym), więcej warstw w opcji background komendy \setupbackground. Do tego zamieszania mogą dołączyć się również overlays, ktore też można wpisywać jako tło.

Używanie stylu pre-original

Styl ten używa kilku kolorów, które łatwo można zmienić.

\setupcolors
[state=start]
\definecolor [BackgroundColor] [r=1, g=1, b=.7]
\definecolor [InteractionColor] [r=.1, g=.5, b=.8]
\definecolor [ContrastColor]    [r=.9, g=.5, b=.2]

Nie wiem dlaczego nie wprowadzono tu jeszcze koloru dla tła wewnątrz ramki. Jest on podany dalej w komendzie \setupbackgrounds[text][text].

\setupbackgrounds
[text][text]
[background=color,
backgroundcolor=white]

Biały można zmienić, zmieniając wartość backgroundcolor.

Jeszcze jeden przykład, foregroundcolor kontroluje kolor tekstu.

\starttext

\setupcolors[state=start]

\setupbackgrounds
  [page]
  [background=color,backgroundcolor=red,
   foregroundcolor=white]

\input tufte

\stoptext

Układ strony kontroluje komenda \setuplayout:

\setuplayout
  [topspace=12pt,
   header=0pt,
   footer=0pt,
   height=402pt, % 450 - 12 - 15 - 12 - 12 + 3 
   bottomdistance=15pt,
   bottom=12pt,
   backspace=12pt,
   margin=0pt,
   width=fit,
   edgedistance=12pt,
   rightedge=96pt]

Interactionbar, czyli ikony jak na odtwarzaczu, ma kilka parametrów, na przykład kolor ramki i jej grubość

\setupinteractionbar
  [framecolor=white,rulethickness=1pt,
   height=\bottomheight,strut=no]

Po prawej jest jeszcze bardzo sprytny wskaźnik aktualnej strony, który niestety też nazywa się InteractionBar. Żeby zmienić jego parametry trzeba na nowo go przedefiniować, czyli wkleić starą definicję z nowymi parametrami:

\def\InteractionBar%
  {\ifnum\nofsubpages>1
     \framed
       [framecolor=white,rulethickness=1pt,
        height=\bottomheight,strut=no]
       {\interactionbar[alternative=f,width=.5\makeupwidth,height=1ex]}
   \fi}

Slideshow

\setupinteractionscreen[option=max,delay=2]
\setupinteraction[state=start]
\setuppagetransitions[random]

Acrobat 5 ma jakieś problemy z przejściami, może bezpieczniej zrezygnować całkiem z \setuppagetransitions[random]. W Acrobacie 4 działają.

Dźwięk

W core-fig.tex:

defining sound tracks: \useexternalsoundtrack[label][file] associated actions: StartSound StopSound PauseSound ResumeSound Todo: like external figures, also search on path, although, they need to be present ar viewing time, so ...

E-mail Hansa Hagena:


\setupinteraction[state=start]

\starttext

\useexternalsoundtrack[dooropen][dooropen.wav]
\useexternalsoundtrack[doorslam][doorslam.wav]

% new : \setupexternalsoundtracks[option=repeat]

\setupinteraction[openpageaction=StartSound{dooropen}] test \page
\setupinteraction[openpageaction=StartSound{doorslam}] test \page

\stoptext


openpageaction działa też ze StartMovie, tylko że powoduje to działanie po przejściu do każdej kolejnej strony.To znaczy. chcąc użyć jakiejś akcji tylko na jednej stronie, trzeba przed następną wprowadzić nowy setup, co kłóci się ideą umieszczenia setupu na początku dokumentu.

Video

\externalfigure[5.avi][label=five,width=4cm,height=4cm,preview=yes]

\goto{zacznij ten film!}[StartMovie{five}]

Po kliknięciu na tekst zacznij ten film! zaczyna się odtwarzanie. Według podręcznika powinno wystarczyć kliknięcie na wyświetloną pierwszą klatkę, ale tak wcale nie jest (przynajmniej w Akrobacie 5 w windzie).

To też działa:


 \externalfigure[out.avi][label=tytul,width=10cm,height=7cm,preview=no]
 \setupinteraction[openpageaction=StartMovie{tytul}] test \page
 

Dodawanie nowych fontów

Wypróbowany przepis

texfont --ve=<vendor name np. bitstream> --co=<np. Baskerville> --ma --in --show --encoding=ec --virtual

Najbardziej przydatne opcje

  1. --fontroot=<ścieżka do katalogu w którym mają być zainstalowane fonty>

  2. --sourcepath=<katalog zawierający pliki pfb domyślnie bieżący>

Trzeba zaktualizować informację o mapowaniu, można to zrobić na cztery sposoby:

  1. zmodyfikować pdftex.cfg
  2. \pdfmapfile{nazwa_pliku_mapującego.map}
  3. \loadmapfile[nazwa_pliku_mapującego.map]
  4. updmap --enable Map dolly.map

    To jeszcze nie sprawdzone!

\autoloadmapfilestrue musi być odkomentowane w cont-sys.tex

W pliku źródłowym trzeba odwołać się do pliku typescript, który trzeba osobno utworzyć

Aby zobaczyć wszystkie dostępne opcje trzeba zrobić: texexec kod_font --mode=compact

Wszystkie Opcje texfont.pl

--fontroot=path : texmf font root (default: )
--sourcepath=path : when installing, copy from this path (default: .)
--sourcepath=auto : locate and use vendor/collection
--vendor=name : vendor name/directory
--collection=name : font collection
--encoding=name : encoding vector (default: texnansi)
--slant=s : slant glyphs in font by factor (0.0 - 1.5)
--extend=s : extend glyphs in font by factor (0.0 - 1.5)
--caps=s : capitalize lowercase chars by factor (0.5 - 1.0)
--noligs : remove ligatures
--install : copy files from source to font tree
--listing : list files on auto sourcepath
--remove : remove files on auto sourcepath
--makepath : when needed, create the paths
--test : use test paths for vendor/collection
--show : run tex on texfont.tex
--batch : process given batch file
--weight : multiple master weight
--width : multiple master width
--expert : also handle expert fonts

Komendy dotyczące fontów

  • \definebodyfont[..,.1.,..][.2.][..,..=..,..]
    .1. 5pt ... 12pt default
    .2. rm ss tt mm hw cg
    tf file
    bf file
    sl file
    it file
    bs file
    bi file
    sc file
    ex file
    mi file
    sy file
    ma file
    mb file
    mc file
  • \definebodyfontenvironment[...][..,..=..,..]
    ... 5pt ... 12pt default
    text dimension
    script dimension
    scriptscript dimension
    x dimension
    xx dimension
    small dimension
    big dimension
  • \definefont[.1.][.2.]
    .1. name
    .2. file
    \definerawfont[.1.][.2.][..,..=..,..]
    .1. name
    .2. file
    ..=.. see \setupinterlinespace
  • \setupbodyfont[..,...,..]
    ... name serif regular roman sans support sansserif mono type teletype handwritten calligraphic 5pt ... 12pt
  • \setupbodyfontenvironment[...][..,..=..,..]
    ... see \setupbodyfont
    ..=.. see \setupbodyfont
  • \showbodyfont[..,...,..]
    ... see \setupbodyfont
  • \showbodyfontenvironment[..,...,..]
    ... see \setupbodyfont
  • \switchtobodyfont[..,...,..]
    ... 5pt ... 12pt small big global
  • \switchtorawfont[...]
    ... name
  • \completelistofsynonyms
  • \setupsynonyms[...][..,..=..,..]
    ... name
    textstyle normal bold slanted boldslanted type cap small... command
    synonymstyle normal bold slanted boldslanted type cap small... command
    location left right top serried inmargin inleft inright
    width dimension
    state start stop
    criterium all used
    conversion yes no
    expansion yes command no
    command \command#1#2#3