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 SGMLa. 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./<,
to parser potraktuje, to jako koniec tagu.
Należy wtedy stosować tagi w pełnej postaci,
czyli np. <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 stronie 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 było zgodne z rzeczywistoś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 wszelkimi 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żę 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ż wspomniał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 zrobić znajdzesz poźniej.
Do wygenerowania pięciu głównych formatów (poza SGML oczywiście) należy wykonać kolejno polecenia:
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. Plikiem 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 wg. 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 ww. 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",
epackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
- "\\usepackage{babel}\n"
+ "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
@@ -39,9 +39,9 @@
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
- "\\usepackage\[latin1\]{inputenc}\n"
+ "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
- "\\usepackage{babel}\n"
+ "\\usepackage\[polish\]{babel}\n"
"\\usepackage{epsfig}\n"
"\\usepackage{[OPTS]}\n"
"\\def\\addbibtoc{\n"
@@ -56,9 +56,9 @@
"\\usepackage{linuxdoc-sgml}\n"
"\\usepackage{qwertz}\n"
"\\usepackage{url}\n"
- "\\usepackage\[latin1\]{inputenc}\n"
+ "\\usepackage\[latin2\]{inputenc}\n"
"\\usepackage{t1enc}\n"
- "\\usepackage{babel}\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 wg. poniższej instrukcji:
diff -Nu stara-wersja nowa-wersja > zmiany
zmiany wyślij do tłumacza