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.
Więcej informacji o tym pakiecie 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:
Część zasobów HOWTO/JTZ jest w formacie linuxdoc, część w docbook -- format jest zawsze zdeklarowany w pierwszej linii dokumentu. Zasada jest taka, że tłumaczymy dokument w takim formacie, w jakim jest oryginał. Więcej informacji nt. pracy z obywdoma formatami znajdziesz poniżej.
Wg LDP dane nt. tłumacza w dokumentach o formacie DOCBOOK podawać należy w nagłówkach w sposób następujący:
<othercredit role= 'translator'> <firstname>Imię</firstname> <surname>Nazwisko</surname> <affiliation> <address> <email>adres.email@tłumacza.pl</email> </address> </affiliation> <contrib>Wersja polska: 6.66, 22 września 2004</contrib> </othercredit>
Więcej informacji nt. pisania w docbook i konwertowania tych dokumentów na inne formaty znajdziesz pod adresem http://www.tldp.org/LDP/LDP-Author-Guide/.
Dane nt. tłumacza w dokumentach o formacie LINUXDOC podawać należy w nagłówkach w sposób następujący:
<title>Tytuł <author>Autor: Imię Nazwisko <htmlurl url="mailto:autor@adres" name="autor@adres"><newline> v0.75, 1 Sierpnia 1996<newline> <-- wersja i data oryginału <bf>Wersja polska: Imię Nazwisko tłumacza <htmlurl url="mailto:tłumacz@adres" name="tłumacz@adres"></bf><newline> v1.3, 28 Marca 1997 <-- wersja i data tłumaczenia
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.
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 nazwa.pl 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.
*** /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"
}
};
--- sgml-tools.org/dist/sgmltool/latex2e/mapping 2001-06-25 08:59:08.000000000 +0200
+++ sgml-tools/dist/sgmltool/latex2e/mapping 2003-11-13 02:15:23.000000000 +0100
@@ -8,9 +8,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"
@@ -23,9 +23,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"
@@ -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.