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?

3 Comentários a “LaTeX, Wikis, Docbook, e que mais?”

  1. Carlos Rodrigues @ 2007-03-01 23:21 diz:

    “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. :)

  2. Filipe Correia @ 2007-03-02 0:02 diz:

    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).

  3. Carlos Rodrigues @ 2007-03-02 14:23 diz:

    “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.