PSI2594 - Projeto de Formatura II :     LabTex - Interface entre LaTeX e LabView                  Relat´rio Final.        ...
Sum´rio   a1 Objetivos                                                                                                    ...
6 Objetivos                 587 Conclus˜o Parcial         a                  588 O Futuro do projeto       599 Anexos     ...
1    ObjetivosDesenvolver ferramenta de interface para LabVIEW que permitir´ tornar execut´veis ex-                       ...
3    JustificativasExiste a necessidade de investigar o conhecimento documentado do mesmo modo que existea necessidade de d...
4     O Processador LabTEXNeste t´pico abordaremos o contexto no qual se enquadra o projeto a ser desenvolvido do       op...
O sistema pode ser dividido em quatro n´     ıveis: no primeiro, caracteres s˜o lidos do ar-                              ...
editores de texto servem ao prop´sito, v´rias pessoas preferem utilizar editores desenvolvidos                            ...
Figura 1: Figura proveniente do arquivo exemplo01.jpg gerado da compila¸˜o do c´digo da                                   ...
4.1.6   Apanhado Geral da Estrutura LaTeX.Em resumo, o centro de processamento do L TEX´ a linguagem de programa¸˜o chamad...
4.1.7   Classes e Pacotes L TEX                          AL TEXem sua versao atual, faz distin¸˜o entre as macros que defin...
Existe a possibilidade de se usar pacotes espec´ ıficos para a finalidade de redefini¸˜o de                                  ...
que o leigo instru´ ´ capaz de desenvolver e de modo geral preservar, documentar e publicar                  ıdo econhecim...
classe amsart e disponibiliza fontes para centenas de operadores bin´rios, rela¸˜es bin´rias,                             ...
e multidimensoes no LabTeX por exemplo. Nomes de operadores existentes s˜o representados                                  ...
V´rios comandos foram adicionados ao conjunto fundamental para extender as capaci-      adades gr´ficas do L TEXe suas capa...
Figura 5: Uma espiral plotada pelo TikZ cujas coordenadas foram calculadas pelo GnuPlot.Manual de Tantau [25] No LabTex, o...
4.4     Estruturas LabVIEW4.4.1    Instrumenta¸˜o virtual                    caUso de software customizavel e m´dulos de h...
servir como uma interface programada. A abordagem gr´fica tamb´m permite que n˜o pro-                                      ...
Outro benef´  ıcio do LabVIEW sobre outros ambientes de desenvolvimento ´ o extensivo   esuporte para acessar hardwares de...
elecimentos de ensino para fins de aprendizagem. Existe tamb´m uma ativa comunidade de                                     ...
5     Materiais e M´todos                   eNesta se¸˜o apresentamos a metodologia de execu¸˜o do projeto e quest˜es quan...
vari´veis, c´lculos aritm´ticos, entre outras, como pr´-classificado na Planilha de Mapeamento    a       a            e   ...
5.2   Desenvolvimento: Objetos e ComponentesClasses Labview suportam a orienta¸ao a objeto, o que ser´ demasiado util na i...
5.2.1   Aplica¸˜o Principal              caA partir desta subse¸˜o e nas demais, passamos a descrever a engenharia do sist...
5.2.2   Busca (retrieve) e Sele¸˜o (fetch)                               caAo entrar no la¸o principal de processamento o ...
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX
Próximos SlideShares
Carregando em…5
×

PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX

2.465 visualizações

Publicada em

PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
2.465
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

PSI2594 - Projeto de Formatura - Escola Politecnica da Usp - LabTeX : Interface entre LabView e LaTeX

  1. 1. PSI2594 - Projeto de Formatura II : LabTex - Interface entre LaTeX e LabView Relat´rio Final. oAluno: Fernando J. Capeletto Neto (No USP 2370518) (fc@usp.br) Orientador: Jo˜o Eduardo Kogler Jr. (kogler@lsi.usp.br) a 30 de novembro de 2009
  2. 2. Sum´rio a1 Objetivos 42 Introdu¸˜o ca 43 Justificativas 54 O Processador LabTEX 6 4.1 Estruturas L TEX . . . . . . . . . . . . . . . . . . . . . A . . . . . . . . . . . . . 6 4.1.1 Formata¸˜o (Typesetting) . . . . . . . . . . . . ca . . . . . . . . . . . . . 6 4.1.2 TEX Typesetting system . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.3 Linguagens de Macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1.4 L TEX . . . . . . . . . . . . . . . . . . . . . . . A . . . . . . . . . . . . . 7 4.1.5 Sistema de Formata¸˜o L TEX . . . . . . . . . . ca A . . . . . . . . . . . . . 8 4.1.6 Apanhado Geral da Estrutura LaTeX. . . . . . . . . . . . . . . . . . . 10 4.1.7 Classes e Pacotes L TEX . . . . . . . . . . . . . A . . . . . . . . . . . . . 11 4.1.8 Ajustando comandos existentes . . . . . . . . . . . . . . . . . . . . . . 11 4.1.9 Analise de Viabilidade TEXe L TEX . . . . . . . A . . . . . . . . . . . . . 12 4.2 AMS-L TEX . . . . . . . . . . . . . . . . . . . . . . . . A . . . . . . . . . . . . . 13 4.2.1 Classes de opera¸˜o dos s´ ca ımbolos matem´ticos a . . . . . . . . . . . . . 14 4.3 Gr´ficos LabTeX: Recursos pesquisados . . . . . . . . a . . . . . . . . . . . . . 15 4.3.1 Pacotes adotados: PGF/TikZ e xcolor . . . . . . . . . . . . . . . . . . 15 4.4 Estruturas LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4.1 Instrumenta¸˜o virtual . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 18 4.4.2 LabVIEW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.4.3 Programa¸˜o em Fluxo de Dados . . . . . . . . ca . . . . . . . . . . . . . 18 4.4.4 Programa¸˜o Gr´fica . . . . . . . . . . . . . . . ca a . . . . . . . . . . . . . 18 4.4.5 Analise de Viabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Materiais e M´todos e 22 5.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.1.1 Metodologia das Tags e C´digos de Opera¸˜o . o ca . . . . . . . . . . . . . 22 5.1.2 Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2 Desenvolvimento: Objetos e Componentes . . . . . . . . . . . . . . . . . . . . 24 5.2.1 Aplica¸˜o Principal . . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 25 5.2.2 Busca (retrieve) e Sele¸˜o (fetch) . . . . . . . . ca . . . . . . . . . . . . . 26 5.2.3 Preparo e Execu¸˜o das Tags . . . . . . . . . . ca . . . . . . . . . . . . . 27 5.2.4 Preparo e Execu¸˜o das Express˜es Aritm´ticas ca o e . . . . . . . . . . . . . 29 5.2.5 Blocos de Apoio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.2.6 Gera¸˜o dos resultados . . . . . . . . . . . . . . ca . . . . . . . . . . . . . 32 5.3 Recursos Auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.4 Testes e Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.4.1 original.tex : C´digo Tex . . . . . . . . . . . . o . . . . . . . . . . . . . 34 5.4.2 original.pdf : Visualiza¸˜o . . . . . . . . . . . . ca . . . . . . . . . . . . . 38 5.4.3 resultado.tex : C´digo Tex . . . . . . . . . . . o . . . . . . . . . . . . . 42 5.4.4 resultado.pdf : Visualiza¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . 49 2
  3. 3. 6 Objetivos 587 Conclus˜o Parcial a 588 O Futuro do projeto 599 Anexos 61 3
  4. 4. 1 ObjetivosDesenvolver ferramenta de interface para LabVIEW que permitir´ tornar execut´veis ex- a apress˜es selecionadas e inicializadas dentro de um texto em L TEX, renderizando resultados e o Agr´ficos gerados pelo LabVIEW dentro do documento L TEX, visando a cria¸˜o de arquivos a A cat´cnicos ativos. e2 Introdu¸˜o caAs atividades nos campos da ciˆncia e tecnologia se estabelecem e renovam-se por meio da epesquisa de novos m´todos e conceitos. Em conseq¨ˆncia disto h´ tamb´m a necessidade de e ue a edocumentar e divulgar os resultados e os avan¸os.c O projeto busca criar ponte facilitadora a essas atividades no campo da engenharia edas ciˆncias. O objetivo ´ fazer a ponte tecnol´gica entre duas estruturas largamente uti- e e olizadas em cada um desses campos, que por suas caracter´ ısticas, oferecem caminho l´gico da odocumenta¸˜o cient´ ca ıfica ao experimento e dele novamente ` documenta¸˜o. a ca Ser´ desenvolvido portanto um processador l´xico para L TEX, implementado em instru- a e Amento virtual de LabVIEW, com recursos e metodologias que ser˜o descritos a seguir e com aauxilio da cria¸˜o de um pacote de biblioteca L TE ca A Xcom a defini¸˜o das tags que transmitir˜o ca aas instru¸˜es adequadas ao funcionamento do processador. co L TEXtem sido a via mais universalmente aceita e utilizada para a documenta¸˜o cient´ A ca ıficanas ultimas trˆs d´cadas enquanto que no ˆmbito da experimenta¸˜o cient´ ´ e e a ca ıfica, controle eteste industriais, o LabVIEW tem sido amplamente utilizado h´ 22 anos e seu uso continua acrescendo. Se por um lado o L TEX´ ferramenta ub´ A e ıqua e de f´cil uso para se expressar o pensa- amento cient´ ıfico, o LabVIEW mostra-se de modo complementar como uma ferramenta queidealmente facilita a transforma¸˜o desse pensamento criativo em aplica¸˜es reais. ca co Por meio dessa interface de softwares uniremos processamento ao L TEX(ferramenta de Adocumenta¸˜o) e documenta¸˜o ao LabVIEW, ferramenta de processamento.No decorrer ca cadeste trabalho ser˜o descritas as caracter´ a ısticas de ambas as estruturas, como s˜o orientadas ae tipadas de modo que permitem essa componentiza¸˜o, destacando seus aspectos comple- camentares e definindo as estrat´gias e planos de trabalho para a execu¸˜o do projeto em e caPSI2594, como ser´ feita essa ponte tecnol´gica, necessidades que motivam este projeto, a oaspectos inovadores e vantagens na escolha dessas estruturas (L TEXe LabView) como seus Acomponentes. 4
  5. 5. 3 JustificativasExiste a necessidade de investigar o conhecimento documentado do mesmo modo que existea necessidade de documentar o conhecimento adquirido, este projeto atua nessa m˜o de via adupla. Existem no mercado ferramentas de software que se prop˜e a realizar em parte, o objetivo odesse projeto, no tocante ao processamento de simula¸˜es.Uma referencia ´ o Mathcad - co eEnginering Calculation Software da Mathsoft, um software propriet´rio e que ´ um h´ a e ıbridode documenta¸˜o t´cnica com c´lculo num´rico e simb´lico que permite explorar problemas, ca e a e oformular id´ias, analizar dados, modelar e verificar cen´rios, determinar solu¸˜es; bem como e a cotamb´m documentar, apresentar e comunicar resultados. Existem desvantagens no uso do eMathcad e entre elas est´ a dificuldade de integra¸˜o com dispositivos de hardware, o fato de a cater seu funcionamento sustentado em macros, o que faz com que o software seja interpretadoe n˜o compilado, gerando problemas com execu¸˜o em tempo real. Existem outros softwares a cacomo o Maple da Maplesoft ou o Mathematica da Wolfram, por´m s˜o mais limitados tamb´m e a efogem da possibilidade de intera¸˜o com opera¸˜es em tempo real. ca co O projeto oferece uma alternativa que se baseia em c´digo aberto na interface de docu- omenta¸˜o (TEX) e embora use um software propriet´rio na interface de processamento (Lab- ca aVIEW) ´ ferramenta que tem sido das melhores e mais difundidas plataformas de desen- evolvimento de aplica¸˜es cient´ co ıficas e tecnol´gicas e ´ existente na escola. S˜o plataformas o e asuficientemente difundidas para que um trabalho nessas justifique utiliza¸˜o no escopo desse caprojeto, embora haja conhecimento da existˆncia de outras ferramentas e que no caso de uma eimplementa¸˜o comercial este seja um t´pico a ser explorado. ca o Em disciplinas da gradua¸˜o os alunos da Escola Polit´cnica tem utilizado o LabVIEW ca enos experimentos de laborat´rios e em pesquisas, em projetos de aplica¸˜o nas aulas e em o caprojetos de formatura, desenvolvidos no curso de engenharia el´trica, entre eles onde esse eprojeto agrega. De maneira geral, o LabVIEW est´ dispon´a ıvel para utiliza¸˜o em todo o cacampus da Universidade de S˜o Paulo (Campus Capital) por meio de parceria da Universidade acom o servi¸o de rela¸˜es acadˆmicas da National Instruments (NI). c co e Este projeto justifica-se na necessidade de avan¸o nos processos documentacionais rela- ccionados ` instrumenta¸˜o virtual e que auxiliem sua reprodu¸˜o com maior facilidade e a ca caeficiˆncia. E supre necessidades quando oferece a alternativa de maneira colaborativa e in- etegrada aos padr˜es das comunidades difundidas. o Um car´ter inovador identificado ´ a gera¸˜o de documentos ativos por meio da cria¸˜o de a e ca caum arquivo t´cnico que pode ser dito ’vivo’ porque possui existˆncia ativa dentro do escopo e edas vari´veis simuladas ou adquiridas em tempo de execu¸˜o. a ca 5
  6. 6. 4 O Processador LabTEXNeste t´pico abordaremos o contexto no qual se enquadra o projeto a ser desenvolvido do oponto de vista t´cnico/cient´ e ıfico, descrevendo as caracter´ ıstitcas principais dos elementos queo envolvem, ou seja, os objetos constituintes, tanto em estrutura como em componentes.4.1 Estruturas L TEX A4.1.1 Formata¸˜o (Typesetting) caA formata¸˜o envolve a apresenta¸˜o do material textual em forma gr´fica em papel ou algum ca ca aoutro meio de comunica¸˜o. Antes do advento da publica¸˜o por meio de desktops, tipografia ca cade material impresso foi produzida por compositores de trabalhos manuais, e mais tarde porm´quinas. a O princ´ ıpio geral da tipografia independente do contexto permanece sendo a composi¸˜o cade glifos em linhas para formar organismo: assunto, t´ ıtulos, legendas e outros peda¸os de ctexto que comp˜em uma imagem de p´gina, e imprimir ou transferir a imagem da p´gina o a apara o papel ou outras m´ ıdias. Durante a ´poca da impress˜o tipogr´fica, tipos m´veis foram compostos ` m˜o para e a a o a acada p´gina. Caracteres de metal eram compostos em palavras e linhas de texto e fortemente aligadas entre si para criar a imagem de uma p´gina denominada ’forma’, com todas as faces adas letras possuindo o mesmo tamanho para formar uma superf´ do mesmo tipo. A forma ıcieera montada em uma prensa com tinta e a impress˜o feita em papel. a Com a evolu¸˜o dos tipos de tipografia acompanhando a era digital , a disponibilidade de cacria¸˜o de fontes por meio de procedimentos mais simples e baratos ou gratuitos, abriu um cafosso entre designers profissionais e amadores. Com o advento do PostScript, complementadopelo formato de arquivo PDF, providenciou-se um m´todo universal de verifica¸˜o de desenhos e cae esquemas e leg´ na maioria dos computadores e sistemas operacionais. ıvel O sistema TEX[11], desenvolvido por Donald E. Knuth, no final dos anos 70, ´ outro eamplo e poderoso sistema de tipografia automatizada que estabeleceu padr˜es elevados, es- opecialmente para tipografia de matem´tica. Sobre ele abordamos na seq¨ˆncia. a ue4.1.2 TEX Typesetting systemComandos TEXnormalmente come¸am com uma barra invertida (’’) e s˜o agrupados com c achaves. Entretanto, quase todas as propriedades sint´ticas do TEXpodem ser modificadas ainstantˆneamente o que torna suas entradas complexas para analizar por qualquer sistema a an˜o ser por ele pr´prio. a o TEX´ uma linguagem baseada em macros e s´ e ımbolos: v´rios comandos, incluindo defini¸˜es a code usu´rio, s˜o expandidas instantˆneamente at´ que se encontrem apenas s´ a a a e ımbolos inex-pans´ıveis remanescentes enquanto s˜o executados. a A expans˜o pr´pria ´ praticamente livre de efeitos colaterais, a recurs˜o de macros n˜o a o e a aonera em mem´ria e construtores do tipo if/else est˜o dispon´ o a ıveis. Isso torna TEXuma lin-guagem de Turing mesmo no n´ ıvel expandido. (Turing ´ uma linguagem de programa¸˜o e cabaseada em Pascal desenvolvida em 1982 por Ric Holt e James Cordy, depois da Universi- a `dade de Toronto, Canad´. E uma linguagem descendente de Euclides, Pascal e SP/k e secaracteriza por uma sintaxe limpa e semˆntica precisa independente de m´quina.) a a 6
  7. 7. O sistema pode ser dividido em quatro n´ ıveis: no primeiro, caracteres s˜o lidos do ar- aquivo de entrada e recebem a atribui¸˜o de um c´digo de categoria (chamado de ’catcode’). ca oCombina¸˜es da barra invertida (’’ - qualquer caracter da categoria zero) seguido por letras co(caracteres da categoria 11) ou um unico outro caracter, s˜o substitu´ ´ a ıdos por um marcadorcontrolador de seq¨ˆncia. ue Nesse contexto, essa etapa ´ como an´lise l´xica, no pr´ximo est´gio, seq¨ˆncias de con- e a e o a uetrole expans´ ıveis (como as condicionais e macros definidas) s˜o substitu´ a ıdas por seus textosde substitui¸˜o. A entrada do terceiro est´gio ´ ent˜o uma seq¨ˆncia de caracteres (incluindo ca a e a ueaqueles com significado especial) e seq¨ˆncias de controle inexpans´ ue ıveis (tipicamente sinal-iza¸˜es e comandos visuais). Aqui caracteres s˜o montados dentro de um par´grafo. O co a aquarto est´gio insere as listas de linhas verticais e outros materiais dentro das p´ginas. a a O sistema TEXpossui conhecimento preciso dos tamanhos de todos os caracteres e s´ ımbolose usando essa informa¸˜o, processa o arranjo ´timo de letras por linha e de linhas por p´gina. ca o aIsso ent˜o produz um arquivo DVI (”Device Independent - Independente do Dispositivo) acontendo a localiza¸˜o final de todos os caracteres. Esse arquivo dvi pode ser impresso cadiretamente fornecido um driver de impress˜o apropriado, ou pode ser convertitdo para outros aformatos. Nos tempos atuais ´ geralmente usado o PDFTex que processa a gera¸˜o do DVI e capara PDF em conjunto.4.1.3 Linguagens de MacroTEXoferece uma linguagem de macro n˜o usual, a defini¸˜o de uma macro n˜o apenas in- a ca aclui uma lista de comandos mas tamb´m a sintaxe de chamada. Macros s˜o integradas em e alarga escala com a linguagem interpretada em tempo de compila¸˜o o que tamb´m guia o ca eprocessamento. O nivel da opera¸˜o da macro TEX´ l´xico, mas ´ constru´ sobre suas facilidades que ca e e e ıdofazem uso da interpreta¸˜o sint´tica.A linguagem macro em TEXfoi utilizada com sucesso ca apara extender TEXpor exemplo para L TEX. A4.1.4 L TEX AL TEX´ mais amplamente utilizada por matem´ticos, cientistas, engenheiros, fil´sofos, estu- A e a odantes acadˆmicos e no mundo comercial e outros segmentos. ´ utilizado devido sua alta e equalidade de formata¸˜o atingida pelo TEX. O sistema de formata¸˜o oferece ferramentas ca caprogram´veis de publica¸˜o em desktops e facilidades extendidas para automa¸˜o da maio- a ca caria dos aspectos de formata¸˜o e publica¸˜o em desktops, incluindo numera¸˜o e referˆncia ca ca ca ecruzada, tabelas e figuras, layout de p´ginas e bibliografias. a L TEXfoi criado com a inten¸˜o de oferecer uma linguagem de alto n´ A ca ıvel que acessasseo poderio do TEX. L TEA Xessencialmente compreende uma cole¸˜o de macros em T Xe um ca Eprograma para processar documentos L TEX. Foi originalmente escrito no inicio dos anos 80 Apor Leslie Lamport [14] na SRI International, e se tornou o m´todo dominante para o uso do eTEX, poucas pessoas relativamente escrevem em TEXpuro ainda. A vers˜o corrente ´ chamada a eL TEX 2ε . A O termo L TEXrefere-se apenas a linguagem na qual os documentos s˜o escritos e n˜o A a aao editor usado para escrever estes documentos. Para criar um documento em L TEX, um Aarquivo do tipo .tex precisa ser criado usando algum tipo de editor de texto. Enquanto v´rios a 7
  8. 8. editores de texto servem ao prop´sito, v´rias pessoas preferem utilizar editores desenvolvidos o aespecificamente para trabalhar com L TE A X. Distribu´ sob os termos da licen¸a ’L TEXProject Public License’ (LPPL), L TEX´ soft- ıdo c A A eware livre, detalharemos a quest˜o da licensa na An´lise de Viabilidade. a a4.1.5 Sistema de Formata¸˜o L TEX ca AL TEX´ baseado na id´ia de que autores devem estar aptos a focar no conte´do que est˜o A e e u aescrevendo sem serem distra´ ıdos pela sua apresenta¸˜o visual. Ao preparar um documento caL TEX, o autor especifica a estrutura l´gica utilizando conceitos familiares como ’cap´ A o ıtulo’,’se¸˜o’, ’tabela’, ’figura’, etc; e deixa que o sistema L TEXpreocupe-se a respeito da apre- ca Asenta¸˜o dessas estruturas. ca Isso encoraja portanto a separa¸˜o de layout do conte´do enquanto permite ajustes de ca uformata¸˜o quando necess´rio. ´ similar ao mecanismo de estilos permitidos em v´rios pro- ca a e acessadores de texto, definidos globalmente para um documento inteiro, similar ao mecanismodo CSS usado pelo HTML. O exemplo abaixo mostra a entrada L TEXe a correspondente sa´ A ıda:documentclass[12pt]{article}usepackage{amsmath}title{LaTeX}date{}begin{document}maketitle LaTeX{} is a document preparation system for the TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing, tables and figures, page layout, bibliographies, and much more. LaTeX{} was originally written in 1984 by Leslie Lamport and has become the dominant method for using TeX; few people write in plain TeX{} anymore. The current version is LaTeXe. % This is a comment, it is not shown in the final output. % The following shows a little of the typesetting power of LaTeX begin{align} E&=mc^2 m&=frac{m_0}{sqrt{1-frac{v^2}{c^2}}} end{align}end{document} 8
  9. 9. Figura 1: Figura proveniente do arquivo exemplo01.jpg gerado da compila¸˜o do c´digo da ca op´gina anterior a 9
  10. 10. 4.1.6 Apanhado Geral da Estrutura LaTeX.Em resumo, o centro de processamento do L TEX´ a linguagem de programa¸˜o chamada A e caTEXque provˆ v´rias instru¸˜es de formata¸˜es. Em conjunto com o TEXvem um conjunto e a co code fontes denominadas ’Computer Modern (CM). As CM fontes e a linguagem TeX formama base de um sistema TEXt´ ıpico. TEX´ expans´ e ıvel, ou seja, comandos adicionais podem ser definidos em termos de outrosmais b´sicos. Uma das melhores conhecidas expans˜es do TEX´ o L TEXque introduz a id´ia a o e A ede unidade l´gica. o O layout visual no L TEX´ determinado pela classe do documento. Expans˜es do L TEXs˜o A e o A adenominadas pacotes, nas se¸˜es a seguir abordamos os elementos de um documento L TE co A X,sua estrutura e componentiza¸˜o passando ao contexto espec´ ca ıfico dos pacotes AMS - LaTeX(amssymb e amsmath), apropriados para a representa¸˜o tipogr´fica matem´tica e cient´ ca a a ıficaem geral. Ao final do cap´ ıtulo s˜o apresentadas agumas primeiras estruturas num apanhado adas mais representativas da biblioteca. A componentiza¸˜o resumida dos elementos da estrutura L TEX´ ilustrada na figura abaixo. ca A eEssa figura sugere que, em ordem para trabalhar com um documento L TEX, ´ necess´rio A e aprimeiro instalar o TEXe as fontes ’Computer Modern’, ent˜o instalar o L TEXe finalmente a Aespecificar a classe de documento e os pacotes necess´rios. aFigura 2: Esquema da estrututra de rela¸˜o entre o TeX e o LaTeX. O TeX ´ a funda¸˜o ca e casobre a qual v´rios pacotes utilit´rios - extens˜es do LaTeX - s˜o constru´ a a o a ıdos. 10
  11. 11. 4.1.7 Classes e Pacotes L TEX AL TEXem sua versao atual, faz distin¸˜o entre as macros que definem o layout de um docu- A camento, e as macros que extendem as funcionalidades para fornecer o que o autor realmentequer. A id´ia ´ que um documento de classe L TEXdiz sobre qual a natureza do documento, e e Aenquanto os pacotes do documento carregam comandos que refinam sobre a especifica¸˜o caglobal. No disco, os arquivos s´ aparecem diferentes em virtude da extens˜o - arquivos de classes o as˜o do tipo *. cls enquanto arquivos de pacotes s˜o do tipo *.sty. Desse modo, encontramos o a aarquivo classe padr˜o para artigo no disco com o nome de ’article.cls’, enquanto que o pacote afootmisc (que refina as defini¸˜es de notas de rodap´ dos artigos) ´ representado no disco por co e eum arquivo chamado footmisc.sty O usu´rio define a classe do seu documento com o comando documentclass(normalmente ao primeiro comando em um documento), e carrega pacotes com o comando usepackage.Umdocumento pode ter v´rios comandos usepackage, mas pode ter apenas um documentclass. aExistem vers˜es da interface de programa¸˜o de ambos os comandos, j´ que uma classe pode o ca aescolher carregar outra classe para aperfei¸oar as suas capacidades, e ambas as classes e cpacotes podem optar por carregar outros pacotes.4.1.8 Ajustando comandos existentesNo caso geral, colocar uma sobredefini¸˜o no meio de um comando existente ´ dif´ ca e ıcil. Noentanto, para adicionar algum c´digo no in´ o ıcio ou no fim de um comando existente, ´ con- eceitualmente muito f´cil. Para definir uma vers˜o de um comando que faz alguma pequena a aextens˜o da sua defini¸˜o original podemos escrever: a ca renewcommand{splat}{mumblesplat} Entretanto, isso n˜o dever´ funcionar: uma chamada a splat executaria mumble , e a aa chamada que redefine splat novamente; Isso ´ um loop infinitamente recursivo, que ir´ e arapidamente exaurir a mem´ria do TEX. Felizmente, o comando TEXlet nos permite ter oum ’instantˆneo’ do estado atual de um comando, podemos, ent˜o, usa-lo na sua redefini¸˜o. a a caEnt˜o: a letOldSmoothsmooth e renewcommand{smooth}{mumbleOldSmooth} possuem os mesmos efeitos da corre¸˜o necess´ria, de forma segura. Adicionando coisas ca ano fim de um comando funciona de modo similar. Se smooth tem argumentos, eles devemser passado por referˆncia: e renewcommand{smooth}[2]{mumbleOldSmooth{#1}{#2}}. O caso geral pode ser alcan¸ado de duas maneiras. Em primeiro lugar, pode-se usar o ccomando LaTeX CheckCommand; este compara um comando existente com a defini¸˜o que cavocˆ der a ele, e emite um aviso se dois n˜o s˜o iguais. Sua utiliza¸˜o ´, portanto: e a a ca e CheckCommand{complex}{<original-definition>} renewcommand{complex}{<new-definition>}. Esta t´cnica ´, obviamente, um pouco trabalhosa, mas se o comando original vem de uma e efonte que ´ pass´ e ıvel de mudan¸a em ˆmbito do contexto, ele ao menos avisa que seu patch c aest´ em perigo de funcionar equivocadamente. a 11
  12. 12. Existe a possibilidade de se usar pacotes espec´ ıficos para a finalidade de redefini¸˜o de cacomandos: O pacote patchcmd restringe o conjunto de comandos que vocˆ pode ajustar; O pacote ted e[19] ´ um ’editor de lista de tokens’ e provˆ um comando Substituteo qual ajusta o conte´do e e ude uma macro, colocando o resultado em uma lista de tokens ou opcionalmente usando oresultado para (re)definir a macro. O pacote pode ser usado tamb´m como ferramenta de edebugging. O pacote etoolbox [16] provˆ o comando patchcmdo qual realizar´ uma ’substitui¸˜o e a cade string’ na defini¸˜o de uma macro. O pacote tamb´m prove commandos que adicionam ca epr´-defini¸˜es (pretocmd) ou p´s-defini¸˜es (apptocmd)a uma defini¸˜o de um comando. e co o co ca Nesse est´gio do trabalho abordamos superficialmente alguns dos comandos e pacotes que ajulgamos que ser˜o uteis ao desenvolvimento das tags do LabTeX devido suas funcionalidades a ´que permitem flexibiliza¸˜o sobre a sintaxe das macros L TEXe oferecem suporte ao ensaio ca Adas tags escolhidas como marcadores para o LabTeX, inclusive com possibilidade de debug-ging. S˜o recursos que auxiliam a metodologia e no decorrer do desenvolvimento do projeto aem PSI2594, quando forem utilizados, cada pacote ser´ apresentado e mencionado em seu acontexto de uso.4.1.9 Analise de Viabilidade TEXe L TEX ANesta se¸˜o analizaremos quest˜es que envolvem os componentes e suas caracter´ ca o ısticas queviabilizam o projeto, como integra¸˜o, aceitabilidade, estabilidade, escalabilidade. ca TEXfoi desenvolvido com dois objetivos principais em mente: permittir que qualquerpessoa produzisse livros de alta qualidade usando quantidade de esfor¸o razo´vel e prover c aum sistema que pudesse gerar exatamente o mesmo resultado em todos os computadores,agora e no futuro. Tex possui excelentes capacidades de formata¸˜o e trabalha com f´rmulas ca omatem´ticas t˜o bem como texto. a a Um grande atrativo da linguagem TeX ´ que seu arquivo c´digo ´ puro texto, algumas e o evezes denominado um arquivo ’ASCII’. Portanto, artigos contendo mesmo as mais complicadasexpress˜es matem´ticas podem ser leg´ o a ıveis transmitidas eletronicamente, para colegas, co-autores, journals, editores e publicadores. TEX´ independente da plataforma, admite desenvolvimento em um Macintosh por exem- eplo e seu co-autor pode fazer melhorias no mesmo arquivo usando um computador pessoalcompat´ ıvel com IBM; o publicador do journal pode usar um DEC minicomputador, essadiferen¸a de hardware n˜o muda em nada o processo. c a L TE e A X´ muito mas f´cil para trabalhar do que T X, existe grande n´ mero de ferramentas a E useguras constru´ ıdas internamente e um enorme conjunto de mensagens de erro. L TEXdiminui o t´dio na escritura¸˜o de tarefas. Considere um artigo completo com A e cateoremas e equa¸˜es numeradas e apropriadamente referenciadas cruzadamente. Ao fim da coleitura algumas mudan¸as precisam ser feitas, por exemplo, a se¸˜o 4 precisa ser colocada c caap´s a se¸˜o 7 e um novo teorema precisa ser inserido em algum lugar no meio.Esses tipos o cade modifica¸˜es no processamento documentacional convencional pode causar transtornos coenquanto que com L TEXisso se torna simples pois automaticamente refaz todas as numera¸˜es A coe referencias cruzadas. L TEX´ uma linguagem universal e estabelecida, acompanhada por comunidades cient´ A e ıficasque desde os fins dos anos 60 pesquisavam alternativas que pudessem oferecer recursos ao a ´desejo de express˜o. E acess´ ıvel, possui protocolo aberto e poucas tecnicalidades de modo 12
  13. 13. que o leigo instru´ ´ capaz de desenvolver e de modo geral preservar, documentar e publicar ıdo econhecimento. Em diversos campos t´cnicos em particular a ciˆncia da computa¸˜o, matem´tica e f´ e e ca a ısicas,L TE A Xtem se tornado padr˜o. V´rios milhares de livros tem sido publicados usando L T X, a a A Eincluindo livros publicados pela Addison-Wesley, Cambridge University Press, Elsevier, Ox-ford University Press and Springer.Diversos journals nesses campos s˜o produzidos usando aTeX or LaTeX, permitindo que autores possam submeter seus trabalhos manuscritos direta-mente em TeX, o que ´ inclusive eletronicamente mais leve quanto a transmiss˜o eletrˆnica e e a oarmazenamento em base de dados. A estabilidade do TEXtamb´m merece ser ressaltada, desde a vers˜o 3, TEXusa um id- e aiosincrasso sistema de numera¸˜o de vers˜o onde atualiza¸˜es s˜o indicadas pela adi¸˜o de ca a co a caum d´ ıgito extra ao final do decimal, de modo que a vers˜o do n´mero assintoticamente se a uaproxime de ’pi’. Isso ´ uma reflex˜o do fato que TeX ´ atualmente muito est´vel e apenas e a e am´ınimas atualiza¸˜es s˜o antecipadas. A vers˜o atutal do TEX´ 3.1415926; que foi atualizada co a a epela ultima vez em Mar¸o de 2008. ´ c O criador do TEX, Donald Knuth, mantevem um registro muito detalhado dos bugs cor-rigidos e mudan¸as efetuadas desde 1982. A lista atualizada em 2008 cont´m 427 registros. c eKnuth ofereceu premios em dinheiro `s pessoas que encontrassem e reportassem um bug no aTeX. O premio por bug come¸ou com U$ 2.56 (um ’dolar hexadecimal’) e dobrava todo ano cat´ que seu valor foi congelado para o valor atual de U$ 327.68. Knuth entretanto, perdeu erelativamente pouco dinheiro com isso pois muitos poucos bugs foram anunciados. Quanto ` Licen¸a L TEX´ tipicamente distribu´ com texto puro, isso ´ distribu´ sob a c A e ıdo e ıdouma licen¸a de software livre, a ’LaTeX Project Public Licen¸a (LPPL). A LPPL n˜o ´ c c a ecompat´ ıvel com a GNU - Licen¸a P´blica Geral, pois a primeira requer que os arquivos c umodificados sejam claramente diferenciados um do outro (normalmente mudando o nome doarquivo). Para refor¸ar essa regra, qualquer implementa¸˜o no sistema precisa passar por c cabateria de testes antes de ser liberada para ser chamada TEX. Quanto ao software para codifica¸˜o, L TEX´ dispon´ ca A e ıvel na maioria dos sistemas opera-cionais incluindo Unix, Linux e BSDs, Windows, Mac OSx, RISC OS e AmigaOS. Outro aspecto que fortalece a viabilidade e a escolha do L TEXcomo componente ´ a or- A eganiza¸˜o das comunidades ao redor dessas tecnologias. Entidades da comunidade TEXfazem caparte do TEXUsers Group o qual publica o ’TUGboat’ e ’The PracTeX Journal’ abrangendoum vasto leque de temas relevantes para a tipografia digital TEX. O ’The DeutschsprachigeAnwendervereinigung TEX’ ´ um grande grupo de usu´rios na Alemanha. O ’TEXUsers Group’ e afoi fundado em 1980 para fins educacionais e cient´ıficos, possibilita uma organiza¸˜o para aque- cales que possuem algum interesse em tipografia e design de fontes, e s˜o usu´rios do sistema a atipogr´fico TEX. a4.2 AMS-L TEX AO pacote amsmath ´ um pacote L TEXque oferece diversos acess´rios para melhorar a estrutura e A oda informa¸˜o e impress˜o de documentos que contˆm f´rmulas matem´ticas. AMS-L TEX´ ca a e o a A euma cole¸˜o de classes de documento e pacotes em L TE ca A Xelaborados pela American Mathe-matical Society (AMS) e que provˆ solu¸˜es e recursos para diversos fins de documenta¸˜o e co cacient´ ıfica em diversos segmentos. Entre os acess´rios matem´ticos h´ uma grande variedade de ferramentas tipogr´ficas. o a a aAMS-L TEXprove diversas classes incluindo a classe de documentos para artigos da AMS, a A 13
  14. 14. classe amsart e disponibiliza fontes para centenas de operadores bin´rios, rela¸˜es bin´rias, a co arelacionamentos negativos bin´rios, s´ a ımbolos negritos, setas, setas extens´ ıveis, e assim pordiante, disponibilizados pelo AMS-L TEXe que tamb´m disponibiliza alfabetos matem´ticos A e aadicionais como Blackboard negrito, Euler Fraktur, Euler Script, e matem´tico negrito it´lico. a a O pacote amsmath ´ distribuido em conjunto com alguns pequenos pacotes auxiliares, eoutro pacote que sera util no escopo do projeto pois dar´ liberdade para a cria¸˜o de funcional- ´ a caidades do LabTeX ser´ o pacote amsopn que provˆ DeclareMathOperator para defini¸˜o de a e canovos ’nomes de operadores’ como sin e lim . O pacote amsmath provˆ uma s´rie de outras estruturas de equa¸˜o al´m das fornecidas e e ca eno L TEXb´sico. O conjunto adicional inclui: equation , equation* , align , align*, gather, A agather*, flalign, flalign*, multline, multline*, alignat, alignat* e split. [6]4.2.1 Classes de opera¸˜o dos s´ ca ımbolos matem´ticos aOs simbolos de uma f´rmula matem´tica s˜o classificados em diferentes categorias que cor- o a arespondem mais ou menos ` parte da fala ou elemento l´xico que cada s´ a e ımbolo teria se af´rmula estivesse expressas em palavras,(por exemplo: nomes, conjun¸˜es e verbos dispostos o conuma declara¸˜o, s´ que trata-se de ’declara¸˜o matem´tica’) Certos modos de espa¸amentos ca o ca a ce posicionamentos s˜o tradicionalmente utilizados para as diferentes classes de s´ a ımbolos paraaumentar a legibilidade das f´rmulas. o Figura 3: Correspondˆncia das categorias de simbolos e seus c´digos de opera¸˜o.[6] e o ca A distin¸˜o entre a classe 0 e uma adicional classe 7 ´ unicamente com os aspectos de ca esele¸˜o de fonte e n˜o se aplica aqui. Simbolos da classe bin´ria s˜o automatitcamente ca a a afor¸ados ` classe 0 (sem espa¸os) se eles n˜o possu´ c a c a ırem um operando ` esquerda. N´meros a uar´bicos (0-9) s˜o classe 0, assim como as letras gregas, outros s´ a a ımbolos alfab´ticos e diversos es´ ımbolos acess´rios simples tamb´m s˜o da classe 0 (ordin´ria) o que significa que eles n˜o o e a a atˆm qualquer base de espa¸amento. Lexicamente correspondem a nomes e pronomes no e c’discurso’,sob o ponto de vista dessa met´fora. a Simbolos de operadores binarios s˜o classe 2 (conjun¸˜es), simbolos relacionais s˜o classe a co a3(verbos). Operadores cumulativos (de tamanho vari´vel) s˜o da classe 1. S´ a a ımbolos depontua¸˜o s˜o da classe 6, pares delimitadores s˜o classe 4 (os s´ ca a a ımbolos de abertura) e classe5 (os s´ımbolos de fechamento). Os acentos ser˜o uteis para especificadores de arrays, vetores a ´ 14
  15. 15. e multidimensoes no LabTeX por exemplo. Nomes de operadores existentes s˜o representados apor abrevia¸˜es. Existem muitos s´ co ımbolos adicionais dispon´ ıveis para uso no LaTeX. Existeuma lista de s´ımbolos detalhada em [18]. Observa-se portanto uma rela¸˜o entre a classe dos comandos AMS-L TEXe a natureza ca Adesses comandos quanto a sua fun¸˜o, espa¸amento e necessidade de parˆmetros construtores, ca c ao que ser´ explorado na constru¸˜o dos ’m´todos-subVIs’ de ’sele¸˜o de opera¸˜o’ (opcode a ca e ca ca’fetch’), ou seja, os sub instrumentos virtuais do LabTeX capaz de identificar o tipo docomando/opera¸˜o matem´tica para posterior prepara¸˜o (parse) e execu¸˜o, conforme ´ ca a ca ca eapresentado durante a metodologia. 5.1.14.3 Gr´ficos LabTeX: Recursos pesquisados aL TEXnasceu em 1984 com um ambiente nativo de desenho que permitiu desenhar linhas, Avetores, c´ ırculos e ’ovais’ com algumas limita¸˜es; fontes especiais foram utilizadas para de- cosenhar todos os objetos gr´ficos. Esta foi uma grande limita¸˜o, porque no surgimento do a caL TEXtodas as fontes utiliz´veis comportavam apenas 128 glifos; Isso aconteceu com as fontes A ade texto, bem como com as fontes especiais para desenho em L TEX. Com isso s´ haviam A oduas espessuras dispon´ ıveis.[4] A primeira extens˜o gr´fica dispon´ a a ıvel no mercado foi PiCTEX[29]. Foi concebido paratrabalhar com TEXpuro, em uma fase inicial da hist´ria do TEX. Ap´s L TEXser disponi- o o Abilizado, algumas macros foram criadas para permitir que L TEXimportasse as macros do APiCTEXe pudesse utiliz´-las com quase toda eficiencia. Nesses tempos, TEXe L TEXeram ex- a Aecutados em mainframes e PCs estavam na sua infˆncia, o sistema TEXj´ estava dispon´ a a ıvelpara os pequenos PCs, mas as limita¸˜es de mem´ria eram t˜o fortes que era normal obter a co o amensagem de excesso de mem´ria e processamento abortado. o Em 1986 Sunil Podar publicou seu pacote de extens˜o gr´fica chamado epic [20], para o a aambiente gr´fico LaTeX convencional; em 1988 Conrad Kwok publicou o seu refor¸o eepic a c[13]. Ambos foram concebidos de forma a aliviar as fortes limita¸˜es do ambiente gr´fico co apadr˜o do LaTeX, nomeadamente a limita¸˜o das encostas de linha e dos vectores e a gama a calimitada de raios de circulo. Ambos os programas foram concebidos para utiliza¸˜o no ˆmbito ca ado ’velho’ LaTeX, hoje conhecido como LaTeX 209, em contraste com o ’novo’ LATEX2#(que n˜o ´ mais t˜o novo uma vez que posui mais de uma d´cada de existˆncia). a e a e e Outro pacote gr´fico muito poderoso que necessita da utiliza¸˜o de um software externo a caatualmente para renderizar objetos gr´ficos ´ XY-pic, [21]. Este pacote ´ projetado para a e e A X, T Xpuro, e A S-T X.trabalhar com L TE E M E Leslie Lamport, em sua segunda edi¸˜o do manual LaTeX [15], fixou a sintaxe de um canovo ambiente de desenho extendido, (pict2e e seu pacote de extens˜o curve2e [3] extens˜es) a oonde a maioria se n˜o todas as limita¸˜es da implementa¸˜o padr˜o puderam ser superados: a co ca ailimitadas encostas das linhas e vetores, qualquer raio de c´ ırculo, linhas de espessura arbitr´ria atamb´m para linhas curvas, etc. e4.3.1 Pacotes adotados: PGF/TikZ e xcolorA sigla PGF significa ’Formato Gr´fico Port´vel’; o pacote PGF [25], implementa ou re- a aimplementa todos os comandos do ambiente padr˜o de desenho L TEX, de modo a criar um a Aconjunto coerente de comandos capazes de fazer a maioria das opera¸˜es gr´ficas no L TEXe co a Ano pdfLATEX. 15
  16. 16. V´rios comandos foram adicionados ao conjunto fundamental para extender as capaci- adades gr´ficas do L TEXe suas capacidades s˜o ampliadas mais uma vez por meio do pacote a A axcolor que por sua vez, amplia as possibilidades de manipula¸˜o de cores oferecido pelo pacote capadr˜o. a Esse pacote automaticamente examina os arquivos de configura¸˜o padr˜es e insere nos ca oarquivos de sa´ o comando special adequado ao driver de sa´ ıda ıda. O novo pacote PGF, vers˜o 1.10, contem um novo pacote e seu novo ambiente gr´fico que a a´ chamado TikZ; acrˆnimo que significa ’TikZ ist kein Zeichenprogramm’ (TikZ n˜o ´ ume o a eprograma de desenho). PGF e seu novo pacote tikz possuem in´meras interfaces de desenho uque podem produzir quase qualquer coisa. O manual explica em detalhes o que n˜o pode aser feito com a interface de PostScript e explica que o formato PGF e o programa foramespecificamente desenvolvidos para serem utilizados com pdfLATEX, onde possui seu melhorfuncionamento. Figura 4: Um exemplo retirado do Manual de Tantau [25] Tantau diz que TikZ possui a inten¸˜o de oferecer ao usu´rio uma interface uniforme e ca asimplificada que permita a composi¸˜o de desenhos com o m´ ca ınimo poss´ de estardalha¸o; ıvel cem seu manual ele escreveu uma pequena introdu¸˜o ensinando como produzir demonstra¸˜es ca cocomo a figura produzida acima. O c´digo n˜o ´ transcrito neste trabalho pois pode ser o a eencontrado por qualquer um pelo manual [25], e que dever´ ser aproveitado intensamente apara o desenvolvimento e implementa¸˜es dos m´todos-SubVIs de gera¸˜o de c´digo gr´fico, co e ca o adevido ` multiplicidade de desenho e comandos dispon´ a ıveis para qualquer eventual situa¸˜o. ca PGF/TikZ possui extensa documenta¸˜o. Para a vers˜o 2.0 o manual possui 560 p´ginas. ca a aComo nota-se na figura, o programa permite gr´ficos em preto e branco ou coloridos, e o atexto usa as mesmas fontes que as padr˜es no documento PDF pois TikZ ´ completamente o eintegrado com (pdf)LaTeX. O pacote PGF contem numeras bibliotecas de commandos adicionais; Existe grande var-iedade de tipos de setas, variedades de panos de fundo, oferece diagramas de relacionamentode entidades, diagramas para mapas mentais, op¸˜es de escolha para padr˜es de panos de co ofundo para desenhos t´cnicos, desenhos de redes de Petri e mais. e 16
  17. 17. Figura 5: Uma espiral plotada pelo TikZ cujas coordenadas foram calculadas pelo GnuPlot.Manual de Tantau [25] No LabTex, o LabVIEW ser´ o responsavel pela obten¸˜o de coorde- a canadas. O pacote manipula o desenho de gr´ficos que podem ser definidos como uma serie de dois aou trˆs pares ou tripletes coordenados para fazer desenhos 3D. Uma novidade ´ a possibilidade e ede crar desenhos ’inline’ simples sem precisar abrir um ambiente. A sintaxe TikZ ´ simples; esuas instru¸˜es iniciam com um comando, continuam com op¸˜es e coordenadas e terminam co cocom um ponto-e-virgula. Certamente o ambiente b´sico padr˜o LaTeX para desenhos sofre em compara¸˜o de a a caperformance com o pacote PGF, mesmo se o ambiente padr˜o for evolu´ com os pacotes a ıdopic2e e curve2e, essas ferramentas simples podem ser utilizadas para aprender apenas poucoscommandos.TikZ possui largo conjunto de funcionalidades mas possui tambem uma curva deaprendizado mais ´ ıngreme. Nesta se¸˜o, pesquisamos o hist´rico e peculiariedades de algumas solu¸˜es existentes para ca o cogera¸˜o de desenhos, gr´ficos e diagramas com L TEXe nesta etapa do trabalho por compara¸˜o ca a A cadas estruturas e disponibilidade de recursos, escolheu-se pautar o desenvolvimento das tagsgr´ficas LabTeX sobre os prot´tipos do pacote PGF/TikZ por acreditar que ele prove desenhos a ot´cnicos cuja estrutura n˜o foram encontradas em outras interfaces, durante a compara¸˜o e a cados resultados desses diversos pacotes. No decorrer dos artefatos de PSI2594 ser˜o escolhidas ae apresentadas as estruturas dispon´ ıveis para ativa¸˜o do LabTeX, por meio espec´ ca ıfico doSubVI-m´todo de concatena¸˜o de gr´ficos, conforme ´ apresentado durante a metodologia e ca a eem 5.2. 17
  18. 18. 4.4 Estruturas LabVIEW4.4.1 Instrumenta¸˜o virtual caUso de software customizavel e m´dulos de hardware de medidas para criar sistemas de omedi¸˜o definidos pelo usu´rio, chamados de ’instrumentos virtuais’. ca a Tradicionalmente sistemas de instrumenta¸˜o de hardware s˜o constitu´ ca a ıdos por compo-nentes de hardware pr´-definidos como os mult´ e ımetros digitais e oscilosc´pios que s˜o com- o apletamente espec´ıficos quanto a natureza do estimulo, an´lise, fun¸˜o ou medi¸˜o. Devido `s a ca ca asuas fun¸˜es dedicadas de hardware, esses sistemas s˜o mais limitados em versatilidade do co aque sistemas de instrumenta¸˜o virtual ca A diferen¸a prim´ria entre instrumenta¸˜o via hardware e instrumenta¸˜o virtual ´ que c a ca ca es˜o utilizados componentes de software para substituir uma grande quantidade de hardware. aO software permite que complexos e custosos sistemas em hardware sejam substitu´ ıdos pordispositivos computacionais j´ existentes, por exemplo conversores anal´gico-digitais podem a oatuar como hardware complementar de um oscilosc´pio virtual. o4.4.2 LabVIEWLabVIEW (abrevia¸˜o para Laboratory V irtual I nstrumentation E ngineering W orkbench) ´ ca euma plataforma e ambiente de desenvolvimento para uma linguagem de programa¸˜o visual cada National Instruments. A linguagem gr´fica ´ denominada ’G’. Originalmente lan¸ada pela a e cApple Macintosh em 1986, LabVIEW ´ comumene utilizado para aquisi¸˜o de dados, controle e cade instrumentos e automa¸˜o industrial numa variedade de plataformas incluindo Microsoft caWindows, UNIX, Linux e Mac OS. A ultima vers˜o do LabView ´ a 8.6.1 lan¸ada em fevereiro a e cde 2009.4.4.3 Programa¸˜o em Fluxo de Dados caA linguagem de programa¸˜o utilizada no LabVIEW, tamb´m referenciada como ’G’, ´ uma ca e elinguagem de programa¸˜o de fluxo de dados. A execu¸˜o ´ determinada pela estrutura ca ca ede um diagrama em bloco gr´fico (o c´digo fonte em LabVIEW) sobre o qual o progra- a omador conecta diferentes n´s de fun¸˜es por meio de conectores desenhados. Esses conectores o copropagam vari´veis e qualquer n´ pode executar t˜o logo todas as entradas de dados tornem- a o ase dispon´ ıveis. Desde que isso pode ser o caso de m´ltiplos n´s simultˆneos, a linguagem G ´ u o a einerentemente capaz de execu¸˜o paralela. Multi-processamento e hardware multi-threading ca´ automaticamente explorado pelo escalador de tarefas (built-in scheduler) o qual multiplexaem´ltiplas threads do sistema operacional sobre os n´s prontos para execu¸˜o. u o ca4.4.4 Programa¸˜o Gr´fica ca aLabVIEW enla¸a a cria¸˜o de interfaces de usu´rio (denominada painel frontal) ao redor do c ca aciclo de desenvolvimento.Programas e Subrotinas em LabVIEW s˜o denominadas ’instrumen- atos virtuais’ (Vis). Cada VI possui trˆs componentes: um diagrama em blocos, um painel efrontal e um painel de conectores. O ultimo ´ usado para representar o VI dentro do diagrama eem blocos de outro, chamando VIs. Controles e indicadores no painei frontal permitem que um operador insira dados ou ex-traia dados de um instrumento virtual em execu¸˜o. Entretanto, o painel frontal tambem pode ca 18
  19. 19. servir como uma interface programada. A abordagem gr´fica tamb´m permite que n˜o pro- a e agramadores possam construir programas simplesmente arrastando e soltando representa¸˜es covirtuais de equipamento laboratorial com o qual eles j´ est˜o familiarizados. a a O ambiente de programa¸˜o do LabVIEW, que inclui exemplos e documenta¸˜o, torna ca casimples a cria¸˜o de pequenas aplica¸˜es. Esse ´ um beneficio por um lado mas existe ca co etamb´m um certo perigo ao subestimar o conhecimento necess´rio para a boa qualidade e ada programa¸˜o ’G’. Para algoritmos complexos ou c´digos de alta escala, ´ imporatnte que o ca o eprogramador possua um extenso conhecimento de sintaxes especiais de LabVIEW e a topolo-gia do gerenciamento de mem´ria. o LabView ´ utilizado tamb´m para comunica¸˜o com hardware como aquisi¸˜o de dados, e e ca caaquisi¸˜o visual e dispositivos de controle de movimento, e dispositivos GPIB, PXI, VXI, RS- ca232 e RS-484. LabVIEW tambem possui ferramentas construidas para conectar sua aplica¸˜o caa` Web usando o LabVIEW Web Server e padr˜es de softtware como TCP/IP, redes e ActiveX. oComo isso ´ poss´ e ıvel a cria¸˜o de aplica¸˜es distribu´ ca co ıdas, as quais comunicam-se por umesquema cliente/servidor, e portanto facilitam a implementa¸˜o de c´digo paralelo inerente ca oao c´digo em linguagem ’G’. o Usando LabVIEW pode-se criar, testar e medir, aquisi¸˜o de dados, instrumentos de cacontrole, analise de medidas e aplica¸˜es de gera¸˜o de relat´rios,entre outras aplica¸˜es. co ca o co4.4.5 Analise de ViabilidadeNesta se¸˜o estudamos as viabilidades do LabVIEW suas caracter´ ca ısticas de orienta¸˜o a caobjeto, programa¸˜o multithreading, licen¸as, portabilidade, escalabilidade, e outros aspectos ca crelacionados. LabVIEW foi desenvolvido pela National Instruments h´ mais de 20 anos e est´ presente a aem diversos cen´rios, desde automa¸˜o industrial, aplica¸˜es biom´dicas, de sistemas em a ca co ecampo a sistemas embarcados, a grandes laborat´rios e empreendimentos. Seu fˆlego inicial o osurgiu entre os profissionais da ´rea de biol´gicas que buscavam uma maneira de descrever a osuas necessidades com programa¸˜o r´pida e facil e resultados imediatos em tempo real, ca ainstrumenta¸ao. c O LabVIEW busca o caminho da conversao de ideias em realidade mas n˜o no paradigma ada documenta¸˜o (como os que desenvolveram e desenvolvem as estruturas em LaTeX) e sim cano aspecto da representa¸˜o de suas necessidades instrumentais. Desse modo novamente esses cadois componentes apresentam-se caminhando em paralelo no progresso cient´ ıfico e na medidaque as necessidades de um lado s˜o supridas pelas viabilidades do outro componente do par, aest´ criado um caminho para a implementa¸˜o do projeto. a ca Quanto a Programa¸˜o Modular e a natureza expansivel, novamente os dois componentes capossuem similaridade quanto a encapsula¸˜o em pacotes, no caso do LabVIEW, seu poder careside na natureza hier´rquica do VI. Depois de criar um VI, ele pode ser utilizado no bloco adiagrama de outro VI. N˜o h´ limite no n´mero de camadas na hierarquia.O uso de pro- a a ugrama¸˜o modular ajuda a gerir as altera¸˜es e depurar o diagrama em blocos rapidamente. ca coUm subVI corresponde a uma subrotina em texto baseado em linguagens de programa¸˜o, cana forma de um bloco interno a outro VI. O painel frontal inclui controles e indicadores com aparˆncia familiar, o diagrama em eblocos inclui conex˜es, ´ o ıcones do painel frontal, fun¸˜es, possivelmente subVIs e outros objetos codo LabView tamb´m familiares e ´ possivel simplificar o diagrama em blocos de um VI pela e econvers˜o de se¸˜es do diagrama em subVIs. a co 19
  20. 20. Outro benef´ ıcio do LabVIEW sobre outros ambientes de desenvolvimento ´ o extensivo esuporte para acessar hardwares de instrumenta¸˜o. Drivers e layers de abstra¸˜o para di- ca caversos titpos de instrumentos e vias s˜o inclu´ a ıdas ou est˜o dispon´ a ıveis para inclus˜o. Estes aapresentam-se com conectores gr´ficos. Os layers de abstra¸˜o oferecem interfaces padr˜es de a ca osoftware para comunica¸˜o com dispositivos de hardware. ca Em termos de performance, LabVIEW inclui um compilador que produz c´digo nativo opara a CPU. O c´digo gr´fico ´ traduzido para linguagem de m´quina pela interpreta¸˜o da o a e a casintaxe e pela compila¸˜o. A sintaxe LabVIEW ´ estritamente executada durante o processo ca ede edi¸˜o e compila¸˜o para a linguagem de m´quina quando ´ requisitada a execu¸˜o ou ca ca a e cadurante o salvamento. Neste caso, o execut´vel e o c´digo fonte s˜o mesclados em um unico a o a ´arquivo. O execut´vel funciona com a ajuda do script de tempo de execu¸˜o do LabVIEW a caque contem alguns c´digos pr´-compilados para desenvolver tarefas comuns que s˜o definidas o e apela Linguagem ’G’. O script em tempo de execu¸˜o reduz o tempo de compila¸˜o e tamb´m ca ca eprovˆ interface consistente para v´rios sistemas operacionais, sistemas gr´ficos, hardware, e a acomponentes, etc. O ambiente em tempo de execu¸˜o torna o c´digo port´vel atrav´s de ca o a eplataformas. Outro ponto a ser destacado e que auxilia a viabilidade do projeto ´ a escalabilidade das eestruturas e a capacidade de encapsulamento, tanto do LaTeX por meio dos seus pacotes,como no LabVIEW, por meio da sua estrutura de orientado a objeto do c´digo LabVIEW, oque permite reutiliza¸˜o de c´digo sem modifica¸˜es : t˜o logo os tipos de dados e sa´ ca o co a ıdassejam consistentes, dois subVIs s˜o intercambi´veis. a a Outro ponto em comum em ambas as estruturas ´ a Portabilidade tecnol´gica. L TEXe e o ALabVIEW s˜o port´veis para quase todos os sistemas operacionais, guardam entre si ainda a auma peculiariedade, do mesmo modo que as vers˜es atuais de LabVIEW possuem parte de oseu c´digo desenvolvido em sua pr´pria linguagem LabVIEW, o TEXtamb´m possui com- o o eponente de seu c´digo produzido diretamente em TEX. Isso ocorre pois o c´digo fonte do o oprograma atual TeX ´ escrito em ’WEB’, uma mistura de documenta¸˜o escrita em TeX com e casubinstru¸˜es em Pascal o que garante a portabilidade. co Como no Latex, novamente a estrutura ´ suportada por v´rias bibliotecas com um enorme e an´mero de fun¸˜es para aquisi¸˜o de dados, gera¸˜o de sinais, matem´tica, estat´ u co ca ca a ıstica, condi-cionamento de sinais, analise, etc, elementos s˜o disponibilizados em pacotes LabVIEW junto acom numerosas interfaces gr´ficas. O n´mero de blocos matem´ticos avan¸ados para fun¸˜es a u a c cocomo integra¸˜o, filtros e outras capacidades especializadas normalmente associadas com cacaptura de dados de sensores em hardware ´ imensa. OpenG, conhecido como LAVA Code eRepository (LAVAcr), oferece reposit´rio para uma larga faixa de aplica¸˜es e bibliotecas o coLabVIEW. Em adi¸˜o, LabVIEW inclui um programa componente baseado em texto chamado Math- caScript com funcionalidades adicionais para processamento de sinais, analise e matem´tica. aMathScript pode ser integrado com programa¸˜o gr´fica usando n´s de script e usa sintaxe ca a ogeralmente compaivel com MATLAB. O Sistema de Desenvolvimento Profissional do LabVIEW permite a cria¸˜o de execut´veis ca a’stand-alone’ execut´veis e bibliotecas compartilhadas, como DLL, pois LabVIEW ´ um com- a epilador real de 32-bits e o programa execut´vel resultante pode ser distribu´ um ilimitado a ıdon´mero de vezes. u O script em tempo de execu¸˜o e suas bibliotecas podem ser providenciados livremente cajunto com o execut´vel.a Existe uma edi¸˜o do LabVIEW para Estudantes com baixo custo destinadas a estab- ca 20
  21. 21. elecimentos de ensino para fins de aprendizagem. Existe tamb´m uma ativa comunidade de eusu´rios LabVIEW que comunicam atrav´s de v´rios grupos de e-mail e Internet f´runs. a e a o 21
  22. 22. 5 Materiais e M´todos eNesta se¸˜o apresentamos a metodologia de execu¸˜o do projeto e quest˜es quanto ` infra- ca ca o aestrutura, os materiais e os meios necess´rios para sua implementa¸˜o e as abordagens para a caassimila¸˜o das tecnologias. Na sequˆncia estabelecemos o plano de trabalho para o projeto, e ca eapresentamos os componentes desenvolvidos, o cronograma definitivo e os resultados obtidosfrente aos testes efetuados.5.1 MetodologiaO primeiro passo foi o ensaio de documentos ativos que servissem de modelos para aplica¸˜o cados teste de conceito. Para cada documento, foram ensaiadas express˜es que precisariam ser omapeadas e processadas, acompanhadas das especifica¸˜es dos valores ou conjuntos de valores code seus parˆmetros e vari´veis. a a As express˜es ativas (calculadas numericamente ou processadas graficamente) devem ser oidentificadas no corpo do documento, bem como as especifica¸˜es de seus valores, atrav´s de co emarcadores (TAGS) que possam ser interpretados pelo processador LaTeX e sejam identi-fic´veis pelo LabVIEW. a Inicialmente o texto escrito em LaTeX contendo esses itens marcados ´ lido pelo LabVIEW, eque se vale dos TAGS como guias para filtrar as express˜es e valores de interesse, gerando opara cada express˜o uma referˆncia de posi¸˜o no texto (Anexo 05 9). a e ca A seguir, um parser, implementado dentro do LabVIEW como sub-vi do mesmo, interpretaas express˜es filtradas e prepara uma tabela de execu¸˜o (Anexo 06 9) . Esta tabela cont´m em o ca ecada linha os resultados fornecidos pelo parser para cada express˜o identificada no documento, aacompanhada de um vetor de valores a serem aplicados ` mesma. Em seguida, essa tabela a´ lida iterativamente e as entradas s˜o calculadas uma a uma, montando-se uma tabela dee asa´ que cont´m os resultados postos em correspondˆncia com as referˆncias de posi¸˜o de ıda e e e cacada express˜o no texto (Anexos 07 9). a Finalmente, a tabela de resultados ´ desmembrada e casada com o texto, gerando-se um enovo documento LaTeX contendo os resultados (Anexo 17 9). O novo documento ´ ent˜o e aprocessado pelo LaTeX, gerando-se a sua renderiza¸˜o gr´fica (Anexo 19 9). ca a Seguindo este roteiro foram criados de forma modular sub-instrumentos virtuais em Lab-VIEW relacionados `s opera¸˜es que comp˜em essa tabela de instru¸˜es e associados a cada a co o coum desses blocos l´gicos. o Foi ent˜o desenvolvida a aplica¸ao principal em instrumento virtual (.vi) (Anexo 01.d 9) a c˜que, dado o arquivo/roteiro de entrada em padr˜o l´tex,ou via entrada por linha de comando, e a acom o diagrama em blocos correspondente (Anexo 01 9) para o processamento do documento,torna autom´tico o roteiro proposto de acordo com os dados de entradas inseridos. a Esse instrumento virtual possui um Painel de Controle (Anexo 01.c 9), chamado de in-terface do usu´rio onde o usu´rio carrega o documento ao mesmo tempo em que processa a aos c´lculos num´ricos e gera os gr´ficos associados, gerando ao fim do processo um relat´rio a e a ocompleto do documento.5.1.1 Metodologia das Tags e C´digos de Opera¸˜o o caNa integra¸˜o dessas tecnologias, parte consider´vel do trabalho ser´ na defini¸˜o dos coman- ca a a cados e macros da biblioteca LabTeX, esses comandos devem ser compreendidos pelos instru-mentos virtuais (subVIs) sob o aspecto de instru¸˜es l´gicas (como cria¸˜o e atribui¸˜o de co o ca ca 22
  23. 23. vari´veis, c´lculos aritm´ticos, entre outras, como pr´-classificado na Planilha de Mapeamento a a e ede M´todos-SubVIs a seguir, mas devem ser ignorados pela gera¸˜o de layout na compila¸˜o e ca cado documento .tex correspondente. A estrat´gia para isso ´ a utiliza¸ao de redefini¸˜o de comandos e macros 4.1.8,e a defini¸˜o e e c˜ ca cade novos, que se utilizem das defini¸˜es de layout dos comandos atuais mas que possam coextendˆ-los de modo a serem reconhecidos como ativos pelo LabVIEW. e5.1.2 Cronograma Figura 6: Cronograma Efetuado 23
  24. 24. 5.2 Desenvolvimento: Objetos e ComponentesClasses Labview suportam a orienta¸ao a objeto, o que ser´ demasiado util na implementa¸˜o c˜ a ´ cacomponentizada deste projeto com subVIs espec´ ıficos para cada uma das etapas do proces-sador LabTeX.Esses subVIs-m´todos compartilhar˜o o acesso ao mesmo objeto definido pela e aclasse documento ativo (’activeDocument’) que define as propriedades necess´rias ao ob- ajeto ’documento ativo’ para a identifica¸˜o das instru¸˜es, tipos de operadores, parˆmetros, ca co avari´veis, constantes , posi¸˜es e todo vetor de informa¸˜es que precisar ser compartilhado a co coe manipulado pelos subVIs do projeto, que neste escopo da orienta¸˜o a objeto, assumem o capapel de m´todos e apenas por meio deles ser´ poss´ manipular os dados da classe privada. e a ıvel O objeto documentoativo (Anexo 21 9) tem sua classe definida pelas propriedades quedefinem o objeto. Essas propriedades s˜o compartilhadas por cada bloco componente do aprocessamento desde a etapa de captura das tags (Anexo 05 9) onde s˜o utilizadas as pro- apriedades startIndexTag, endIndexTag (para as coordenadas das tags) e activeTag para opr´prio teor da instru¸˜o, passando pela etapa de fetch (Anexo 06 9), na qual essas Tags s˜o o ca aprocessadas e realimentam os parˆmetros argId (contador), argC (nome do argumento), argV a(valor do argumento), argT (tipo da tag) e argDim (quantidade de tags ativas presentes nodocumento). Na sequencia o bloco de execu¸˜o (Anexo 07 9) compartilha do objeto processando os caargumentos e colocando os resultados das express˜es em resultTag (array de resultados) e opor fim o bloco de substitui¸˜o (Anexo 17 9), acessa novamente a classe para substituir nas caposi¸˜es de startIndexTag e endIndexTag o conte´do do vetor resultTag realizado na etapa co uanterior. O resultado geral do documento ´ salvo na propriedade resultLatex que ´ acessado pelo e ebloco de renderiza¸˜o (Anexo 19 9) e de exibi¸˜o do texto na aplica¸˜o principal (Anexo 18 ca ca ca9). Todos os blocos desenvolvidos no projeto s˜o apresentados a seguir, sua listagem completa aest´ disponibilizada no Anexo 20 9 bem como a listagem de suas dependencias, blocos nativos adisponibilizados nas bibliotecas b´sicas do LabVIEW (Anexo 20.b 9 a 24
  25. 25. 5.2.1 Aplica¸˜o Principal caA partir desta subse¸˜o e nas demais, passamos a descrever a engenharia do sistema por cameio da explica¸˜o do fluxo dos blocos e de suas funcionalidades e modos de opera¸˜o, que ca cacorresponde ao desenvolvimento componentizado proposto. O instrumento virtual Main.vi (Anexo 01 9) corresponde ` aplica¸˜o principal, na parte a casuperior a ´rea para digita¸˜o dos comandos e os bot˜es para sele¸˜o de arquivo e p´gina. a ca o ca aAbaixo o resultado renderizado e mais abaixo o resultado.tex completo em cinza (Anexo 01.d9). No diagrama em blocos da aplica¸˜o principal (Anexo 01 9) est˜o envolvidos os diversos ca aSubVIs correlacionados que s˜o descritos de acordo com sua apari¸˜o no contexto dessa a cadescri¸˜o funcional. Na se¸˜o de 9 est˜o os diagramas dos blocos componentes, bem como ca ca aPainel Frontal da Aplica¸˜o e de alguns subcomponentes, guiando essa descri¸˜o funcional. ca ca O primeiro la¸o (` esquerda) da aplica¸˜o ´ respons´vel pelo controle da interface e envio c a ca e ade comandos, sele¸˜o de entrada (’Arquivo’ ou ’Linha de comando’), e troca de p´ginas. O ca aprograma executa enquanto o usu´rio n˜o apertar ’Stop’ e, ao clicar em Carregar, o usu´rio a a adispara o processo de execu¸˜o do documento ativo. ca Para trocar de p´gina o usuario deve selecionar seu n´mero e clicar no bot˜o carregar a u acorrespondente (Anexo 01.c 9). O bloco subsequente processa as alternativas e, entre eles,est´ o subVI ’getInput’ (Anexo 02 9), que recebe os caminhos dos arquivos de cabe¸alhos e a cincludes .tex do sistema e o caminho do arquivo de entrada selecionado pelo usu´rio, bem acomo o texto digitado na linha de comando, e os encaminha para escolha de entrada de acordocom a op¸˜o escolhida no bot˜o [T:File / F: CommandLine], ou seja, posi¸˜o Verdadeiro para ca a caentrada em arquivo, e posi¸˜o Falso para entrada por texto em linha de comando. ca Quando o respons´vel por sair do la¸o de controle for o bot˜o ’P´gina’, a subrotina do a c a aAnexo 01.b (9) ´ executada, nela o subVI ’ChangePag’(Anexo 03 9) carrega o resultado epreviamente processado em outra p´gina. O conhecimento sobre o n´mero de p´ginas ocorre a u ano momento do processamento do LaTeX na etapa de renderiza¸˜o (Anexo 19 9) quando o caaplicativo auxiliar Ghostscript 5.3 ´ chamado pelo sistema. e Quando o bot˜o ’P´gina’ ´ selecionado com um n´mero de p´gina igual ao atual, nada a a e u a ´acontece. E possivel tamb´m iniciar novo processamento e iniciar a visualiza¸˜o pela p´gina e ca ana qual se est´ ou na qual se deseja. Quando LTChangePag.vi ´ acionado, recebe o valor a enum´rico da p´gina selecionada e efetua a troca da imagem pelo arquivo que fora gerado e adurante a compila¸˜o. O formato adotado ´ o JPEG e zoom de 50%. ca e Caso o ato de sair do la¸o de controle da aplica¸˜o principal tenha sido ocasionado pelo c cabot˜o ’Carregar’, este levar´ o sinal Verdadeiro para o macro-bloco seguinte que ´ a sequencia a a eb´sica de processamento propriamente dita. a 25
  26. 26. 5.2.2 Busca (retrieve) e Sele¸˜o (fetch) caAo entrar no la¸o principal de processamento o primeiro passo ´ o subVI ’LTreadInput’(Anexo c e04 9) que recebe o caminho do diretorio de entrada e salva o documento ativo a ser processadona pasta da trabalho, de modo que todo ensaio no sistema gera c´digo fonte de documenta¸˜o o ca.tex de entrada e n˜o apenas de sa€

×