1Mar2007
Author: Filipe Correia
Tags: django, documentos, eDe, googledocs, latex, mediawiki, microsoft-office, ODF, OOXML, openoffice, subversion, wiki, XML, XSL-FO, XSLT
No outro artigo que escrevi sobre formas de produzir documentos já houve quem desse alguns palpites interessantes, mas vou tentar resumir melhor as possibilidades que tenho considerado.
- Latex – Principais pontos fracos são a curva de aprendizagem (é fácil aprender o básico, mas perco tipicamente demasiado quando preciso de fazer algo de novo) e a sintaxe pouco amigável (sobretudo quando se usam tabelas ou se incluem imagens). Contudo, a qualidade de apresentação do resultado final é a melhor que conheço.
- Docbook – É XML e, por consequência , algo verboso. No entanto, consegue-se estruturar um documento de forma muito clara. As ferramentas de edição e processamento de docbook é que nem sempre funcionam de forma tão integrada quanto gostaria. Para windows o sistema mais integrado que conheço é o eDE (que faz uso de umas folhas de estilo XSLT que transformam Docbook em XSL-FO e do processador de XSL-FO da Apache).
- Wiki – Ao contrário da opinião de muita gente não acho a sintaxe do wiki tão amigável quanto isso, mas a verdade é que cumpre a sua função e mantém um certo grau de simplicidade. Por outro lado, as ferramentas que apoiam a edição são geralmente bem fraquinhas; mesmo repartindo por várias páginas os vários capítulos de um documento, as coisas começam a ficar difíceis de gerir quando existe conteúdo consideravelmente extenso em cada uma dessas páginas (convém gravar frequentemente, e cada gravação começa a demorar cada vez mais tempo à medida que aumenta a quantidade de texto a enviar para o servidor Web). Não é também, à partida, das abordagens mais orientadas a documentos impressos.
- ODF – Tanto quanto sei não é possível separar conteúdo de apresentação de forma clara. Neste momento a única implementação digna desse nome é o OpenOffice.
- OOXML – Além das desvantagens do ODF, é caro, considerando que para o usar é necessário contentarmo-nos com o MSOffice.
- GoogleDocs – Excelente para trabalho colaborativo mas tem na minha opinião umas quantas outras limitações.
Já vi, com base nestas opções, também uma solução híbrida entre um wiki e o docbook :) Um meu amigo criou um script python que exporta para docbook um conjunto de páginas de um mediawiki, para posterior geração de um PDF com o eDE. Aproveitam-se vantagens das duas abordagens e o resultado final é bastante decente. Mantêm-se no entanto as desvantagens de usar os limitado editores dos wikis.
Uma outra solução, que me parece promissora, é a que estão a usar no DjangoBook (um livro livre sobre o projecto django). Estão a usar um sistema (desenvolvido pelos próprios mentores do projecto) com umas funcionalidades engraçadas, nomeadamente, permite à comunidade comentar o livro que estão a escrever com a granularidade de parágrafos. A ideia é posteriormente exportar os conteúdos para um qualquer formato mais orientado à impressão. O código deste projecto não está disponível, mas encontrei entretanto um outro projecto paralelo, que é praticamente uma cópia do anterior. Ainda lhe devo dar uma vista de olhos com mais atenção, mas parece-me apesar de tudo algo aquém do que queria, sobretudo porque não vejo forma de versionar o documento e as limitações do editor que encontro num wiki mantêm-se também aqui.
Além destas, haverá mais alguma opção digna de nota?
Carlos Rodrigues
March 1st, 2007 at 23:21
“Principais pontos fracos são a curva de aprendizagem (é fácil aprender o básico, mas perco tipicamente demasiado quando preciso de fazer algo de novo) e a sintaxe pouco amigável (sobretudo quando se usam tabelas ou se incluem imagens).”
A curva de aprendizagem não é muito pronunciada, no entanto demora algum tempo até nos habituarmos ao estilo LaTeX de fazer as coisas. Durante algum tempo a tendência é lutar contra a ferramenta para que esta produza o output que queremos, uma batalha que está destinada a ser perdida.
O truque para fazer bom uso do LaTeX é esquecer completamente a apresentação do documento. O TeX dispôe de algoritmos muito poderosos e tentar forçá-lo a fazer o que queremos é deitar fora todo esse poder.
É como trabalhar com um tipógrafo profissional. Ele faz todo o trabalho de layout do texto e gráficos enquanto nós tratamos de lhe fornecer as peças necessárias (texto, tabelas e imagens). No fim, perante as provas, quando muito podemos sugerir uns títulos mais assim, ou uns rodapés mais assado, mas deixando sempre a escolha final ao critério de quem sabe.
Agora, as tabelas realmente são o ponto fraco do LaTeX, mas existem algumas ferramentas para ajudar nesse aspecto, como plugins para o Excel e afins. Para além de que sempre podemos gerar as tabelas grandes a partir dos dados crús com um pouco de Python ou Perl. :)
Filipe Correia
March 2nd, 2007 at 0:02
Durante algum tempo a tendência é lutar contra a ferramenta para que esta produza o output que queremos, uma batalha que está destinada a ser perdida.
Pois, sei ao que te referes, e concordo perfeitamente quanto a se dever ignorar por completo a apresentação enquanto se produz os conteúdos. No entanto, se quiser posteriormente ter uma apresentação diferente do que obtenho com os “documentclass” normais, é mais complicado do que devia precisar de ser.
É como trabalhar com um tipógrafo profissional. Ele faz todo o trabalho de layout do texto e gráficos enquanto nós tratamos de lhe fornecer as peças necessárias (texto, tabelas e imagens). No fim, perante as provas, quando muito podemos sugerir uns títulos mais assim, ou uns rodapés mais assado, mas deixando sempre a escolha final ao critério de quem sabe..
E até aprecio o trabalho deste tipógrafo em particular, mas tenho-o achado pouco receptivo às pequenas sugestões que lhe tenho dados aqui e ali :D
Agora, as tabelas realmente são o ponto fraco do LaTeX, mas existem algumas ferramentas para ajudar nesse aspecto, como plugins para o Excel e afins. Para além de que sempre podemos gerar as tabelas grandes a partir dos dados crús com um pouco de Python ou Perl. :)
As estratégias que tenho usado são aproximadamente essas, mas parecem-me sempre algo insatisfatórias (ie, preciso de andar a sincronizar os conteúdos no documento se alterar os dados originais ou, se gerar as tabelas automaticamente, sempre fico com mais a dependência do script que escrever).
Carlos Rodrigues
March 2nd, 2007 at 14:23
“No entanto, se quiser posteriormente ter uma apresentação diferente do que obtenho com os “documentclass” normais, é mais complicado do que devia precisar de ser.”
Pois, mas é mesmo assim. O LaTeX destina-se a produzir documentos com boa apresentação, mas todos muito parecidos uns com os outros.
Eu normalmente apenas modifico as margens do documento, a dimensão da indentação e do espaço entre parágrafos, e a numeração e indentação das notas de rodapé. Mudar o tipo de letra também não é complicado, mas eu raramente o faço.
Agora, em contextos mais avançados é sempre possível escrever novas classes de documentos. Não estou a ver um utilizador normal a fazer tal coisa, mas as publicações científicas (por exemplo) normalmente têm o seu próprio estilo que aplicam aos documentos provenientes dos autores. Alguns destes estilos são bastante complexos e geram documentos bastante distantes do estilo default.
Mas não estou a tentar argumentar que o LaTeX é bom para tudo. Em muitas situações um editor WYSIWYG é mesmo a ferramenta mais indicada, mas quando queremos apresentação profissional sem esforço, controlo de revisões, possibilidade de gerar conteúdo automaticamente no momento da produção do PDF, e não temos medo de linguagens de markup, então o LaTeX é mesmo bom.