Zadani:
-- Latex2HTML --
Cilem je napsat program, ktery umozni transformaci LaTeX souboru do HTML.
Program by mel byt schopen transformovat vybranou skupinu prikazu do HTML tagu. Zbytek prikazu by mel ignorovat.
Latex soubor (resp. program) je textovy soubor obsahujici ruzne formatovaci prikazy.
Prikazy maji formu:
azev_prikazu
azev_prikazu{povinny_parametr}
nazev prikazu je libovolna sekvence [a-zA-Z0-9]
parametr je text, ktery muze obsahovat dalsi Latex prikazy (!)
Poznamka pro znale TeXu: neni treba se zabyvat prostredimi a jejich vnorovanim!
============================= Transformacni pravidla:
Komentare:
% libovolny text
znak '%' uvozuje komentar, text az do konce radky je ignorovan
Dokument
\begin{document}
zacatek textu dokumentu
vystup je <body>
\end{document}
konec textu dokument
vystup je </body>
Poznamka: vsechen text uvozeny mezi \begin{document},\end{document} bude ve vyslednem HTML ulozen jako obsah tagu <body>...</body>
Volitelne prikazy
ewcommand{
azev_prikazu}{definice prikazu}
nadefinuje novy Latex prikaz bez parametru (tj. volani bude
azev_prikazu)definice prikazu muze obsahovat libovolne prikazy definovane nize (definice
ewcommand se ale nesmi vnorovat do sebe)
ewcommand{
azev_prikazu}[n]{definice prikazu}
nadefinuje novy Latex prikaz s 'n' parametry
volani takoveho prikazu bude:
azev_prikazu{hodnota_param_1}{hodnota_param_2}..{hodnota_param_n}
v definici prikazu se na parametry odkazuje pres # (napr. #1 - je odkaz na 1. parametr prikazu)
ewcommand{\PREC}[2]{\textbf{#1}:"\emph{#2}"}, volani prikazu \PREC{TODO}{dodelat zadani testu}
Import dokumentu
\input{file.tex}
naimportuje do aktualne zpracovaneho textu soubor 'file.tex' a ten zpracuje
Struktura dokumentu
\section{nazev}
prikazy pro formatovani sekce
'nazev' je prosty text => neobsahuje zadne dalsi prikazy
vystup je '<h2>X nazev</h2>', kde X je poradi sekce ve zdrojaku
\subsection{nazev}
prikaz pro formatovani podsekce
'nazev' je prosty text => neobsahuje zadne dalsi prikazy
vystup je '<h3>X. Y nazev</h3>', kde X je poradi sekce, kde je podsekce definovana, Y je poradi podsekce
\subsubsection{nazev}
prikaz pro formatovani podpodsekce
'nazev' je prosty text => neobsahuje zadne dalsi prikazy
vystup je '<h4>X. Y. Z nazev</h4>', kde X je poradi sekce, kde je podpodsekce definovana, Y je poradi podsekce, Z. je poradi podpodsekce
Poznamka: je nutne si udrzovat pocitadla pro ruzne druhy sekci a spravne je menit!
Formatovaci prikazy
\
nasilny zlom radku
vystup je <br />
\title{text}
nadefinuje nadpis clanku
nic nesazi
text muze obsahovat formatovaci prikazy
\maketitle
vysazi 'text' definovany pomoci \title{text}
vystup je <h1>text</h1>
doplni do hlavicky vystupniho dokumentu tag <title>text</title>
\emph{text}
\textit{text}
vysazi 'text' italikou
pozor 'text' muze obsahovat dalsi Latex prikaz \textbf
vystup <i>text</i>
\textbf{text}
vysazi 'text' tucne
pozor 'text' muze obsahovat dalsi Latex prikazy \textit, \emph
vystup <b>text</b>
odstavce textu
po prikazu \begin{...},\section,\subsection,\subsubsection zacina odstavec textu
odstavec textu konci \end{..}, \section, \subsection, \subsubsection
odstavce textu jsou oddeleny prazdnou radkou
vystup je <p>blok textu odstavce</p>
viz input.tex
Vse ostatni by vas program mel ignorovat.
Tj. na vstupu je prikaz \texttt{neco} tak vystupem bude prazdny retezec.
==================================
Vstup:
- vstupni latex soubor
Vystup:
- HTML soubor vznikly transformaci vstupniho tex-souboru podle zadanych pravidel. Hlavicka HTML souboru najdete v souboru output_empty.html.
Pouziti programu:
latex2html [-f <latex-file>] [-o <html-file>]
-f : specifikuje vstupni latex soubor. Pokud neni zadan, bere se standardni vstup.
-o : specifikuje vystupni html soubor. Pokud neni zadan, vypisuje se na standardni vystup.
Ukazkovy vstup/vystup:
viz prilozene soubory