Wcześniej już zostało wspomniane, że piszemy w formacie SGML. Format ten bardzo przypomina HTML więc jeśli znasz ten ostatni, to nie powinien on ci nastręczać większych trudności. Do konwersji z formatu SGML na inne formaty służy pakiet sgml-tools.
Wielu z was chce się przyłączyć, ale pisze do mnie, że nie zna SGML-a. No i piszę do każdego litanię wszystkich zasad itp. Żeby tego nie robić postanowiłem zamieścić kilka porad jak z niego korzystać.
/usr/doc/sgmltools-xxx.<bf>tekst</bf>. Piszę to, bo można też stosować
skrótową formę: <bf/tekst/.To naprawdę nie jest trudne.
Więcej informacji o pakiecie sgml-tools można znależć na projektu SGMLTools
Pakiet sgml-tools wywodzi się od dawnego pakietu linuxdoc-sgml. Zmianę nazwy pakietu argumentuje się tym, że poprzednia nazwa wiązała pakiet z Linuxem, co nie bylo zgodne z rzezcywistością. Można go było używać również pod kontrolą innych systemów operacyjnych.
Aktualnie projekt ten jest chwilowo zawieszony, więc z wszelikimi problemami musimy rodzić sobie sami. Aktualne wersje tego pakietu są dwie:
Ponieważ jesteśmy zainteresowani DTD linuxdoc to używamy wersji 1.0.9. Co prawda nie każe używać ci dokładnie tej wersji, ale nie jestem w stanie ci powiedzieć, czy wersja, którą używasz można łatwo przekonać do obsługi polskich tłumaczeń.
Jak już wspomiałem do konwersji z formatu SGML służy pakiet programów sgml-tools. Programy z tego pakietu, których będziesz używał to najprawdopodobniej:
Aby wygenerować poprawne JTZ-ty musisz prawdopodobnie zmodyfikować kilka plików z pakietu sgml-tools. Informacje jak to zrobic znajdzesz poźniej.
Do wygenerowania pięciu głównuch formatów (poza SGML oczywiście) należy wykonać kolejno komendy:
sgml2html -s 0 -l pl nazwa.pl.sgml sgml2txt -f -c latin nazwa.pl.sgml sgml2latex -o ps -p a4 nazwa.pl.sgml sgml2latex -o dvi -p a4 nazwa.pl.sgml sgml2latex -o tex -p a4 nazwa.pl.sgml
W powyższym przykładzie zmienna systemowa PLIK oznacza nazwę dokumentu poddawanego konwersji. Jeżeli często przeprowadzasz konwersję do wszystkich formatów polecam napisanie sobie podobnego skryptu.
#!/bin/sh sgml2html -s 0 $1.pl.sgml sgml2txt -f -l pl -c latin $1.pl.sgml sgml2latex -o ps -p a4 $1.pl.sgml sgml2latex -o dvi -p a4 $1.pl.sgml sgml2latex -o tex -p a4 $1.pl.sgml
Aby dokonać konwersji należy wywołać powyższy skrypt z parametrem bedącym nazwą dokumentu SGML (z pominięciem rozszerzeń .pl.sgml)
Oczywiście możesz również eksperymentować z innymi opcjami, ale ten zestaw opcji wydaje się być najwłaściwszy. Opcje te oznaczają:
Instrukcja ta dotyczy wersji 1.0.9-2 pakietu sgml-tools. Informacja ta nie oznacza, że w innych wersjach należy postąpić inaczej Sposób postępowania na pewno nie zmienił się od wersji 1.0.7. Sposób postępowania dla starszych wersji pakietu sgml-tools czy też dla pakietu linuxdoc-sgml (poprzednika pakietu sgml-tools) opisany jest w sekcji historycznej.
Chcemy uzyskiwać poprawne dokumenty w formatach:
Spis Treści
Aby poradzić sobie z powyższymi problemami musimy zmodyfikować dwa pliki.
Pierwszy z nich odpowiada za odnośniki w wersjach HTML dokumentów. Jest to plik
/usr/lib/sgml-tools/SGMLTools/Lang.pmW pliku tym musimy dodać definicję języka polskiego, oraz odpowiednie napisy dla tej definicji.
Drugi z plików jest plikiem odpowiadającym za znaczniki w generowanym pliku w formacie LaTeX. Plikem tym jest
/usr/lib/sgml-tools/dist/linuxdoc/latex2e/mappingw pliku tym modyfikujemy informację o nagłówku dokumentu LaTeX tworzonego podczas konwersji. Musimy zdefiniować użycie znaków w/g standardu Latin2 oraz języka polskiego.
Aby było łatwiej dokonać te zmiany przygotowałem odpowiedni patch do automatycznego dokonania potrzebnych zmian. Patch ten jest dostępny w sieci ftp://ftp.jtz.org.pl/tools.
Ponieważ niektórzy mogą mieć problem ze ściągnięciem w/w pliku jego zawartość zamieszczam też poniżej:
*** /usr/lib/sgml-tools/SGMLTools/org/Lang.pm Mon Mar 22 05:29:00 1999
--- /usr/lib/sgml-tools/SGMLTools/Lang.pm Tue May 18 22:44:50 1999
***************
*** 60,65 ****
--- 60,66 ----
pt portuges portuguese
ca catalŕ catalan
it italiano italian
+ pl polski polish
ro română romanian
);
***************
*** 164,169 ****
--- 165,171 ----
"pt" => "Página anterior",
"ca" => "Pŕgina anterior",
"it" => "Indietro",
+ "pl" => "Poprzednia",
"ro" => "Înapoi"
},
"Next" => {
***************
*** 177,182 ****
--- 179,185 ----
"pt" => "Página seguinte",
"ca" => "Pŕgina següent",
"it" => "Avanti",
+ "pl" => "Następna",
"ro" => "Înainte"
},
"Contents" => {
***************
*** 190,195 ****
--- 193,199 ----
"pt" => "Índice",
"ca" => "Índex",
"it" => "Indice",
+ "pl" => "Spis treści",
"ro" => "Cuprins"
},
"Table of Contents" => {
***************
*** 203,208 ****
--- 207,213 ----
"pt" => "Índice geral",
"ca" => "Índex general",
"it" => "Indice Generale",
+ "pl" => "Spis treści",
"ro" => "Cuprins"
}
};
*** /usr/lib/sgml-tools/dist/sgmltool/latex2e/org/mapping Mon Mar 22 05:29:00 1999
--- /usr/lib/sgml-tools/dist/sgmltool/latex2e/mapping Tue May 18 22:46:28 1999
***************
*** 8,16 ****
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin1\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
--- 8,16 ----
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
***************
*** 23,31 ****
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin1\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
--- 23,31 ----
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
***************
*** 39,47 ****
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin1\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
--- 39,47 ----
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
***************
*** 56,64 ****
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin1\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\title#1{\n"
--- 56,64 ----
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
! "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
! "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\title#1{\n"
Aby wykorzystać ten plik należy wykonać komendę:
patch -p0 < sgml-tools.patch
To jest wszystko co musisz zrobić. Powtórzę jeszcze raz: jedyne operacje jakie musisz wykonać, aby spolonizować sgml-tools 1.09 to:
Jeżeli ktoś jest zainteresowany co dokładnie zostało i dlaczego zmienione to zapraszam do sekcji Technikalia - historia.
Po pierwsze wszelkie poprawki trzeba nanosić w formacie SGML.
Jeśli znalazłeś literówki, to po prostu popraw je i wyślij poprawioną wersję do tłumacza. Upewnij się przedtem czy masz najnowszą wersję, bo może błędy, które poprawiasz są już poprawione w nowszej wersji.
Jeśli chcesz ingerować w treść dokumentu, to postępuj w/g poniższej instrukcji:
diff -Nu stara-wersja nowa-wersja > zmiany
zmiany wyślij do tłumacza