LaTeX, Wikis, Docbook, e que mais?

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?

Produção de documentos

Algo que volta e meia procuro sem sucesso é um método diferente de produção de documentos escritos, de forma a que:

  • Mantenha um historial de versões facilmente comparáveis entre si – Usar um sistema de controlo de versões é a solução que me ocorre mais facilmente. Alguns sistemas (o subversion é um deles) portam-se aliás bastante bem com ficheiros binários (ie, poupam espaço guardando apenas as diferenças para a versão anterior), mas isso não permite necessariamente uma fácil comparação entre versões; para que as versões sejam facilmente comparáveis o formato deve ser de texto (pena eu não conseguir ler binário com a mesma fluência que leio texto ;)
  • Possa escrever o documento sem me preocupar com forma como será formatado – Os estilos do MSOffice e do OpenOffice não chegam. Separar verdadeiramente o conteúdo da apresentação quer dizer que, se assim o entender, devo conseguir desenhar várias apresentações para um mesmo documento e de alternar entre elas facilmente;
  • Existam boas ferramentas de edição – Neste ponto as ferramentas WYSIWYG são geralmente as mais integradas, mas por outro lado nada mais leve e simples que um editor de texto simples;
  • Seja fácil de incluir imagens – As ferramentas WYSIWYG são as mais confortáveis neste ponto;
  • Possibilite trabalho simultâneo e colaborativo sobre o mesmo documento – Embora não sinta a necessidade da “colaboração” ser em tempo real (como por exemplo no googledocs), é fácil que a edição conjunta de um documento se torne importante a partir do momento que exista mais que um autor. A publicação do documento na Web ao longo do processo de produção é também uma boa mais valia;
  • O resultado final seja agradável à vista, tendo em atenção a impressão e a Web – Entre as duas, a “impressão” é a verdadeira questão. Se o objectivo for a produção de documentos apenas para a Web parece-me que um bom editor de XHTML pode resolver a questão;
  • O formato de armazenamento não seja fechado – Mesmo dentro dos formatos abertos alguns são mais obscuros e/ou difíceis de manipular que outros, o que se torna importante do ponto de vista de preservação a longo prazo;
  • Seja barato – Aliás, de preferência gratuito ;)

Nos próximos dias ainda conto escrever mais alguma coisa sobre as alternativas que tenho considerado.