Revista Do Linux
 
OUTRAS SEÇÕES
  Cartas
  Variedades
  Rádio Linux
  CD do Mês
  Coluna do Augusto
  Leitura
  Dicas e truques
  Opinião
 

Tutorial Magic Point

Simples, porém eficiente, o MagicPoint pode ser uma boa opção como software de apresentação para suas palestras

O MagicPoint é um programa para apresentações pouco conhecido mas extremamente poderoso. Quem está acostumado com programas como o StarImpress ou o KPresenter pode ficar um pouco decepcionado por não encontrar aqui uma interface gráfica amigável (o que quer que isto signifique) para preparar as suas apresentações.

Aí surgem algumas perguntas, como: “Se não tem uma interface gráfica como fazer o desenvolvimento da apresentação? Como garantir o posicionamento dos componentes da apresentação na tela? Enfim, como funciona este programa?”

Eu costumo dizer que o Magicpoint é o programa de apresentações que faz parte do “VI Office”. Isto não significa que você seja obrigado a usar o 'vi' para criar suas apresentações, mas apenas significa que o arquivo da apresentação é um arquivo texto simples. Não deixe que este fato o leve a pensar que a apresentação terá que conter apenas de textos, pois vários tipos diferentes de componentes gráficos podem ser usados.

Vou apresentar uma sugestão de organização dos diretórios e da estrutura das apresentações propriamente ditas, e desenvolver idéias que podem ajudar a criar efeitos que não vi serem muito explorados até agora.

Organização

Não é necessário haver alguma organização especial para os diretórios que vão conter as apresentações, mas para organizá-las e mantê-las um lugar centralizado eu criei a estrutura de diretórios apresentada na figura 1.

    $HOME -+— ..
           |
           +— mgp -+— comum-+—  imagens  +—
           |        |         |
           .        |         +—  fontes   +—
           .        |         |
           .        |         +—  comum.mgp
           .        |         |
           .        |         +—  playmgp
                    |
                    +— apr1 -+—  imagens  +—
                    |         |
                    |         +—  apr1.mgp
                    |
                    +— apr2 -+—  imagens  +—
                    .         |
                    .         +—  apr2.mgp
                    .

Figura 1:  Estrutura de diretórios sugerida.

O diretório mgp contém todos os ítens que utilizo em minhas apresentações criadas com o MagicPoint. Sob este diretório eu tenho vários subdiretórios: em comum são colocados todos os ítens que possam ser compartilhados entre as apresentações. Estes ítens podem ser configurações, imagens, fontes TrueType ou quaisquer outros que se tornem convenientes. Vou detalhar mais sobre isto adiante.

Os outros subdiretórios são os que contêm as apresentações propriamente ditas. Eu dou ao subdiretório os mesmos nomes usados para as apresentações. Por que? Porque desta forma eu não tenho que ficar inventando nomes e facilita o desenvolvimento de scripts para o disparo das apresentações. Um script de exemplo estará disponível no CD desta edição, juntamente com trechos de apresentações usados no artigo, no diretório doc/Magic point/. Este script chamado playmgp deve estar no PATH do usuário e pode ser invocado simplesmente como:

$ playmgp apres

Com isto ele salta para o diretório $HOME/mgp/apres e executa o comando :

$ mgp apres.mgp

Com isto eu posso criar ítens de menu ou ícones que apontem para a minha apresentação e que simplesmente executem o comando acima.

A estrutura de uma apresentação

Um arquivo de apresentação do MagicPoint tem duas seções bem diferenciadas. A primeira é um preâmbulo, uma parte introdutória onde se define uma série de padrões que serão usados para o desenvolvimento do conteúdo da apresentação. A segunda parte são as definições de imagens a serem apresentadas, especificadas uma a uma.

Todo comando para o MagicPoint começa na coluna 1 do texto e é indicado por um %. As linhas que começarem por %% são tratadas como comentários e são desprezadas pelo interpretador. Para conhecer os comandos disponíveis para as apresentações do MagicPoint veja os arquivos de documentação, particularmente o arquivo SYNTAX. Estes arquivos costumam estar no diretório /usr/share/doc/mgp-.

Como o arquivo da apresentação é um arquivo texto interpretado pelo MagicPoint, o padrão Unix/Linux da primeira linha apontar para o interpretador pode ser usado para tratar a apresentação como se fosse um script. Portanto se a primeira linha da apresentação for :

#!/usr/X11R6/bin/mgp [parâmetros]

E o arquivo tiver permissão de execução, a apresentaçào poderá ser invocada como um comando :

$ ./apres.mgp [parâmetros]

A marca [parâmetros] indica que podem ser colocados parâmetros de linha de comando para o interpretador MagicPoint em qualquer das duas posições e até mesmo em ambas.

Preâmbulo

O preâmbulo de uma apresentação pode estar no mesmo arquivo do corpo da apresentação ou em arquivo diferente. Se estiver em um arquivo diferente ele poderá ser facilmente compartilhado por diversas apresentações. Pode-se até criar preâmbulos diferentes para classes diferentes de apresentações. Uma vantagem de compartilhar o preâmbulo é que qualquer correção feita no arquivo compartilhado estará corrigindo todas as apresentações que o utilizam, sem necessidade de correções individuais.

Vamos dissecar alguns de seus componentes. O arquivo apresentado como exemplo está no CD, no diretório dos arquivos comuns com o nome comum.mgp. Ele está dividido em três partes: definição de fontes, definição de padrões de linhas e definição de padrões de indentação. É claro que este arquivo não pretende esgotar todas as possibilidades, mas já é um começo.

As fontes

As fontes para uso com o MagicPoint podem ser especificadas de várias maneiras. Aqui mostro três exemplos: no primeiro foram especificadas fontes TrueType presentes no sistema. Para não ter que especificar o diretório onde os arquivos com as fontes estão eu criei um arquivo .mgprc no meu diretório pessoal contendo apenas uma linha :

tfdir “/usr/X11R6/lib/X11/fonts/TTF/”

Desta forma eu só preciso especificar em qual arquivo está a fonte desejada. Mas como descobrir as características das fontes presentes no diretório acima? É simples, neste diretório há um arquivo texto chamado fonts.dir que contém a descrição das fontes de cada arquivo do diretório. As linhas deste arquivo são assim:

luxirr.ttf -b&h-Luxi Serif-medium-r-normal—0-0-0-0-p-0-iso8859-1
luxirb.ttf -b&h-Luxi Serif-bold-r-normal—0-0-0-0-p-0-iso8859-1
luxirbi.ttf -b&h-Luxi Serif-bold-i-normal—0-0-0-0-p-0-iso8859-1
luxirri.ttf -b&h-Luxi Serif-medium-i-normal—0-0-0-0-p-0-iso8859-1

Então o arquivo luxirr.ttf contém uma fonte da família Luxi Serif, de peso médio e caracteres retos (r=roman). O arquivo luxirb.ttf contém fontes da mesma família acima e também retos só que em negrito (b=bold). O arquivo luxirbi.ttf é semelhante ao anterior, só que os caracteres além de negrito são itálicos (i=italic).

Desta forma foram definidos alguns rótulos para as fontes de caracteres, de forma a simplificar a sua especificação no corpo da apresentação. Outra forma de especificar fontes TrueType é através do PATH completo para o arquivo. No site FTP do MagicPoint há um arquivo com fontes TrueType com caracteres latinos e orientais. O arquivo pode ser baixado da URL ftp.mew.org/pub/mgp/ttf.tar.gz

Neste arquivo existem três arquivos de fontes de caracteres latinos (standard.ttf, thick.ttf e typewriter.ttf) que eu coloquei no diretório ~mgp/comum/fonts. Para facilitar a possível movimentação dos arquivos de apresentação dentro da árvore de diretórios usei um PATH relativo na definição destes fontes:

%deffont “standard” tfont “../comum/fonts/standard.ttf”,charset “iso8859-1”
%deffont “thick” tfont “../comum/fonts/thick.ttf”, charset “iso8859-1”
%deffont “typewriter” tfont “../comum/fonts/thick.ttf”, charset “iso8859-1”

Por este motivo eu preciso estar no diretório da apresentação para iniciá-la, caso contrário estes caminhos relativos vão se perder. E por este motivo o script playmgp a que me referi anteriormente salta para o diretório da apresentação.

Uma terceira forma de definir fontes para apresentação é usar a especificação de fontes do próprio X Window. Estas fontes podem ser referenciadas usando a cadeia completa de especificação como :

-adobe-courier-medium-r-normal—0-0-0-0-m-0-iso8859-1

Ou através de uma forma abreviada onde são usadas a família (segundo campo na seqüência acima), o peso (terceiro campo) e a inclinação (quarto campo). Para a fonte acima a especificação ficaria :

courier-medium-r

Nos diretórios de fontes do X11 podem existir arquivos chamados fonts.alias, estes arquivos contêm apelidos para as fontes, por exemplo:

10x20 -misc-fixed-medium-r-normal—20-200-75-75-c-100-iso8859-1

Isto significa que podemos especificar a fonte 10x20 como um apelido da fonte bitmap acima. Neste arquivo estão definidas algumas fontes Type1, que têm qualidade próxima à das TrueType. Qualquer outra fonte disponível no X11 pode ser especificada no preâmbulo. Para ver as fontes disponíveis para o X11 use o comando xfontsel.

Padrão das linhas da apresentação

Seguindo a definição das fontes estão as definições dos padrões aplicáveis às lâminas a serem apresentadas. Cada lâmina é uma página que começa com o comando %page. A partir daí as linhas são numeradas de cima para baixo começando com 1. Toda a definição de padrão se aplica a partir da linha especificada, permanecendo válida até ser alterada ou até o fim da página. Como eu não uso a linha 1 das páginas para criar uma moldura em torno do texto, uso-a para especificar a cor de frente padrão, a cor de fundo e a imagem de fundo da apresentação. A especificação das dimensões da imagem de fundo faz com que ela seja sempre escalonada para a resolução do monitor.

Nas minhas apresentações eu reservo as linhas 2 e 3 para o título das lâminas. Estes títulos utilizam fontes de tamanho um pouco maior que o normal. O tamanho da fonte é especificado em termos de percentual do tamanho da área de desenho, o que mantém a proporção do texto em caso de redimensionamento da tela. O parâmetro prefix estabelece uma margem em relação à borda esquerda da tela. Esta margem pode ser especificada com uma seqüência de caracteres brancos entre aspas ou como uma percentagem da área de desenho.

Portanto segundo este preâmbulo os títulos usarão fontes de aproximadamente 5,5% do tamanho da tela e os textos do corpo usarão um fonte de tamanho aproximado de 3.3%.

Padrões de indentação

Toda a vez que uma linha começar com uma ou mais tabulações (um toque na tecla tab), terá um tratamento especial. O tratamento é especificado pelo comando %tab. Estas linhas serão indentadas pelo especificado no prefix e terão uma marca (Icon) conforme especificado. No caso deste preâmbulo as linhas iniciadas com uma tabulação terão uma bolinha (Bullet), com duas e três tabulações a linha terá um pequeno triângulo apontando para a direita.

Além das indentações com o caractere Tab podem-se usar indentações usando rótulos. Estas indentações funcionam exatamente da mesma forma que a anterior, exceto que as linhas têm que começar com &rótulo. Estes padrões são definidos para a estruturação de tabelas para a apresentação.

Uma apresentação de exemplo

Usando os padrões acima, vamos criar nossa primeira apresentação. O código também está em nosso CD, no diretório doc/MagicPoint/exemplo1/:

#!/usr/X11R6/bin/mgp
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%include “../comum/comum.mgp”
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%pagina 1
%page

Aqui vai o título

%%——————————————

O título está na linha 2.

A linha de comentário acima está marcando a separação entre o título e o corpo. Esta é uma linha grande e sem quebras para mostrar como o MagicPoint trabalha a sua formatação.

As linhas grandes podem ser terminadas pelo caractere “\” para continuarem na linha seguinte e mesmo assim serem tratadas pelo MagicPoint como uma única linha.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

O resultado desta página está mostrado na figura 1. Como se pode ver a apresentação nada mais é que um arquivo texto simples.

Mas não há como visualizar a apresentação enquanto está se fazendo o desenvolvimento, por exemplo para pequenos ajustes? Sim, o MagicPoint permite que você passe um parâmetro dizendo qual deve ser o tamanho da janela mostrada. O meu notebook trabalha com uma resolução de 800x600, e para visualizar a apresentação durante o desenvolvimento eu abro dois terminais, e enquanto edito o arquivo em um deles rodo a apresentação em outro. Veja um exemplo na figura 2.

Gráficos e imagens

Como todo bom software de apresentação, o MagicPoint tem a capacidade de apresentar gráficos e imagens nas lâminas. Os formatos de imagens suportados dependem de como o programa foi compilado, mas em geral ele suporta os formatos PNG, JPEG e GIF sem qualquer problema.

Existem várias formas de incluir uma imagem em uma apresentação, sendo a mais fácil delas é através do comando %newimage:

%newimage -xscrzoom 20 “../comum/images/linux-logo.jpg”

ou

%newimage -yscrzoom 20 “../comum/images/linux-logo.jpg”

Embora os dois comandos estabeleçam que a imagem deve ocupar 20% das dimensões da página, no primeiro caso o percentual é da dimensão horizontal, no segundo caso é amarrado pela dimensão vertical da página. A diferença pode ser vista na figura 3, produzida pela página 1 do arquivo exemplo2.mgp, em doc/MagicPoint/exemplo2/ em nosso CD:

Pode-se inserir gráfico como uma imagem ou um arquivo EPS. A vantagem do formato EPS é que ele é vetorial, o que dá um aspecto de transparência. Os gráficos vetoriais a seguir foram criados usando o programa Xfig. As imagens e fórmulas geradas pelo TeX/LaTeX ou pelo Groff terão uma qualidade muito melhor. Veja a figura 4, produzida pela página 2 do arquivo exemplo2.mgp em nosso CD.

Não seria mais interessante se pudéssemos colocar as imagens lado a lado, ocupando uma área maior da transparência? E isto é possível! Basta marcar uma altura de referência e voltar a ela quantas vezes quisermos. Veja a figura 5, gerada pela página 3 do arquivo exemplo2.mgp.

Melhorou, certo? Usei o comando %right para alinhar o segundo gráfico à direita da lâmina. Mas e se a gente conseguir um alinhamento melhor entre o título e o gráfico da direita? E se conseguíssemos afastar o gráfico da borda? Experimente a página quatro do arquivo exemplo2.mgp.

Neste caso, eu acrescentei um prefixo igual a 50% da largura da imagem antes do texto a seguir. Como imagens e textos são tratados igualmente pelo MagicPoint o segundo gráfico e seu título ficaram alinhados.

Animações

O MagicPoint suporta a importação de arquivos de animação no format MNG. Outra possibilidade é a inclusão de janelas de programas de animação usando os recursos disponíveis na linguagem do MagicPoint.

Mas uma forma de animação pode ser criada através do uso de páginas que incluem imagens que evoluem. Veja na figura 6 o resultado, e confira o código do exemplo no CD-ROM desta edição, em doc/MagicPoint/exemplo4/exemplo4.mgp.

Tabelas

Usando os padrões de tabulação definidos no preâmbulo podemos criar tabelas com textos posicionados com ou sem marcas. Podemos também misturar imagens e textos. Veja as figuras 9 e 10, e confira o código da apresentação nas páginas 1 e 2 do arquivo doc/MagicPoint/exemplo3/exemplo3.mgp.

Exportando suas apresentações

Como nem todos têm o MagicPoint à disposição, por exemplo, os usuários do Windows, é conveniente que tenhamos meios de converter a apresentação para outros formatos. A conversão mais fácil é para HTML. Para tanto cria-se um diretório que irá conter a apresentação e a seguir é só executar a apresentação passando a informação do PATH para o diretório :

$ mkdir HTML
$ mgp -D HTML apres.mgp

A apresentação avançará automaticamente enquanto as imagens vão sendo capturadas. Ao final o diretório HTML vai conter um conjunto de imagens e arquivos no formato HTML. Para começar a visualizar a apresentação bastará abrir o arquivo 'HTML/index.html' no navegador.

O problema do procedimento acima é que as imagens vão ter a resolução do seu monitor, o que pode tornar bastante desconfortável a visualização das páginas. Para resolver este problema pode-se especificar a resolução desejada para a apresentação, por exemplo :

$ mkdir HTML
$ mgp i-g 640x480 -D HTML apres.mgp

Com este comando as imagens vão ter uma resolução de 640x480, o que torna muito mais confortável a visualização, principalmente para quem usa resoluções mais baixas.

Mas e se quisermos imprimir a apresentação? Neste caso o Magicpoint traz um programa chamado mgp2ps que se encarrega de fazer a conversão para o formato PostScript. Consulte a página do manual (manpage) do programa para conhecer suas opções. Costumo usá-lo da seguinte forma:

$ mgp2ps -e iso-8859-1 -p A4 -x 25 -y 25 -f apres.ps apres.mgp

Nesta conversão o programa despreza a informação sobre a imagem de fundo, usando em seu lugar um fundo branco.

Figura 1
Figura 2
Figura 3
Figura 4
Figura 5
Figura 6
Figura 7
Figura 8
Figura 9
Figura 10


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux