José Carlos Ramalho

Pode fazer download do programa FLEX aqui: ppp.fl.

Indice Remissivo

Introdução

PPP - Composição e Instalação

PPP - Invocação

PPP - Ptext PreProcessor

Comandos latex/html

Exemplos

Acentos e Cedilhas

Cabeçalhos e Preâmbulos de um Documento

Texto Formatado

Texto não formatado

Listas

Items

Descritivas

Numeradas

Macros pré-definidas

Comentários

Links

Grafismos (só em HTML)

Tabelas (de momento só para HTML)


Introdução

Como é sabido por quem tenha já praticado a escrita de textos em latex e html, não é fácil, por exemplo, a acentuação e a cedilhação.

Apesar dos muitos conversores existentes no mercado, a conversão de textos latex para html e vice-versa não é tão fácil como às vezes seria de desejar.

Actualmente muitos utilizadores latex tentam disponibilizar na Internet através do serviço WWW os seus documentos e lutam com o processo de conversão de modo a tornar a versão final html o mais próxima possível da versão latex e, não menos importante, o mais eficiente possível para o utilizador final (a eficiência traduz-se em tempos de espera de carregamento de páginas o que está relacionado com a sua organização e natureza).

Neste contexto surgiu a ideia de criar uma linguagem um pouco mais abstracta que o latex ou o html, que não é nem pretende ser um substituto de nenhum dos dois mas sim uma plataforma intermédia entre os dois a partir da qual seja fácil e trivial converter em latex ou html.

A linguagem proposta neste documento não cobre nem de perto as facilidades e potencialidades quer do latex quer do html, cobre apenas um subconjunto que se pensou ser o utilizado em cerca de 75% dos documentos (foi criado um mecanismo que permite a introdução de texto na linguagem destino: latex ou html).

Em resumo os objectivos deste preprocessador são facilitar:


PPP - Composição e Instalação

A versão actual do PPP está desenvolvida em flex, estando prevista uma futura versão em Perl. A ferramenta é assim constituída pelos ficheiros:
ppp.fl
código fonte da ferramenta.
makefile
a makefile que cria o executável na plataforma corrente (tem que ter o flex instalado).

Para instalar a ferramenta basta copiar os 2 ficheiros para a directoria apropriada e mandar executar a makefile. Isso fará com que um executável de nome ppp seja criado nessa directoria.


PPP - Invocação

Inicialmente o PPP permitia várias opções de invocação, mas à medida que foi evoluindo, algumas dessas opções incompatibilizaram-se com alguns dos procedimentos da ferramenta, de modo que a invocação aconselhada será:
para gerar LaTeX
ppp -l fich.pre fich.tex
para gerar HTML
ppp -h fich.pre fich.html


PPP - Ptext PreProcessor

Nas secções seguintes descreve-se de maneira sucinta o funcionamento e as facilidades inseridas na ferramenta criada.

Comandos latex/html

Como já foi referido o utilizador pode em qualquer altura introduzir comandos nativos em latex/html (ao fazê-lo não está a tirar partido da ferramenta, mas para as facilidades não cobertas pelo PPP é a única solução).

Devido à característica multi-língua da ferramenta os comandos escritos numa das linguagens nativas têm que ser protegidos, e só aparecerão no documento da linguagem a que pertencem. Por exemplo, se num documento quisermos introduzir texto latex puro, podemos fazê-lo em modo protegido latex mas, esse texto só aparecerá na conversão do texto para latex.

Como temos duas linguagens alvo possíveis temos dois modos protegidos:

latex
\latex ... texto latex ... \endlatex .
html
\html ... texto html ... \endhtml .

Exemplos

latex
               \latex
                 \maketitle
               \endlatex
         
html
               \html
                 <IMG ALIGN=TOP SRC="exemplo.gif">
               \endhtml
        

Acentos e Cedilhas

Este foi um dos aspectos que mais motivou a presente ferramenta. A sintaxe definida é a seguinte:

Cabeçalhos e Preâmbulos de um Documento

Título e Autor do Documento:

Pano de Fundo (só em HTML):

Aqui o [imagem] refere o "pathname" da imagem fundo (normalmente um GIF pequeno), que irá ser colocada como "BACKGROUND" da página HTML gerada.

Índices:

Os índices são gerados no ponto do documento onde este comando aparece e contendo informação desse ponto em diante. É assim possivel, ter indices que abrangem apenas parte do documento. Neste momento, só é possivel criar um índice por documento.

Secções e Subsecções:

Os "=" devem aparecer no início das linhas respectivas dando origem automáticamente à numeração. Deste modo, os títulos não devem incluir outra numeração. Por exemplo:

Texto Formatado

Qualquer pedaço de texto pode ser formatado em itálico bold ou simplesmente realçado. A seguir apresentam-se exemplos de cada um dos casos:
itálico
coloca-se no texto o seguinte comando envolvente "\bf{texto}".
bold
coloca-se no texto o seguinte comando envolvente "\it{texto}".
realçado
coloca-se no texto o seguinte comando envolvente "\emph{texto}".

Texto não formatado

Uma das necessidade de um formatador de texto é, em certas partes, não formatar, copiando simplesmente para a saída o texto entrado sem quaisquer modificações. Isso pode ser realizado envolvendo o texto a "proteger" entre os comandos "\noprep" e "\prep" ou "\begin{verbatim\}" "\end{verbatim\}", se o texto fôr composto por várias linhas, mas se o texto que a gente quer proteger da acção do PPP fôr uma parte de uma linha pode-se e deve-se usar a macro "\sic" (ver à frente em macros). Em termos de protecção o par "\noprep" e "prep" é o mais poderoso pois vai converter todos os caracteres em código ASCII puro (o melhor ainda é experimentar e ver o código gerado).

Listas

Neste momento, o PPP suporta três tipos de listas, que podem ser misturados e aninhados consoante a vontade do utilizador: listas de items, descritivas e numeradas.

Items

Utilizaremos uma descrição por items para descrever este comando:

Descritivas

Utilizaremos uma lista descritiva para descrever este comando:
(a)
Iniciado por ":" no final de uma linha.
(b)
Cada Item começado por "." como primeiro caracter não branco da linha e seguido por uma palavra ou mais palavras entre "[" "]".
(c)
Terminada por um caracter #.

Numeradas

Utilizaremos uma lista numerada para descrever este comando:
  1. Iniciado por ":" no final de uma linha.
  2. Cada Item começado por "." como primeiro caracter não branco da linha e seguido por um digito.
  3. Terminada por um caracter #.

Macros pré-definidas

Lista das macros definidas:

Comentários

É frequentemente util introduzir notas de comentários no texto de modo que não apareçam no texto final. Estes comentários podem ser introduzidos entre "%" na primeira coluna e .

Links

Neste momento, só são pré-processados os links "normais", isto é, aqueles compostos por um URL e o texto que lhe fica associado:
Sintaxe
\link{URL,texto}.
Exemplo
\link{http://www.di.uminho.pt/~jcr,este 'e um link para a minha p'agina}, que dá: este é um link para a minha página.

Grafismos (só em HTML)

Imagens
\image{path para a imagem}
Linha Horizontal
\linha - coloca uma linha horizontal a preto; este comando deve aparecer no início da linha.

Tabelas (de momento só para HTML)

Sintaxe:
Comando Descrição
\table inicia uma tabela com 1 linha e com "border".
\tablen inicia uma tabela com 1 linha e sem "border".
## termina a linha corrente e inicia uma nova linha.
#x#texto Cria uma nova coluna com cabeçalho texto. O parâmetro x pode tomar os seguintes valores: l (encosta à esquerda), r (encosta à direita), c (centra).
&x&texto Preenche a coluna corrente da linha corrente com o texto.
\endtable Termina a tabela.


- generated by PPP in
Fri Mar 9 18:57:12 WET 2001