1. Informações Gerais
  2. HTML
  3. TeX
  4. Miscelânia

1. Informações Gerais

Voltar para o topo

1.1. O que é txt2tags?

O txt2tags é um gerador de documentos. Ele recebe um arquivo de texto com marcações mínimas como **negrito** e //itálico//, e gera documentos nos seguintes formatos:

Voltar para o topo

1.2. Onde obter o txt2tags?

O txt2tags pode ser encontrado em (http://txt2tags.sourceforge.net/pt/v2.html) nos seguintes formatos:

Voltar para o topo

1.3. Onde posso encontrar suporte do txt2tags?

Assine a lista de discursão (http://br.groups.yahoo.com/group/txt2tags-br/). Lá estão os maiores especialistas em txt2tags do país sempre dispostos para esclarecer suas dúvidas.

Voltar para o topo

1.4. Encontrei um BUG no txt2tags o que eu faço?

Mande um email para a lista (http://br.groups.yahoo.com/group/txt2tags-br/) reportando o problema. Informe o que você fez e o que você obteve.

Se o problema for referente a apresentação em HTML ou XHTML, informe qual o browser que está sendo utilizado, sua versão e sobre qual sistema operacional está sendo executado.

Voltar para o topo

1.5. Onde encontro os manuais de txt2tags?

Junto com a instalação do txt2tags e no site do txt2tags [http://txt2tags.sourceforge.net/pt/]. São 5 documentos:

Conhecendo o txt2tags
Uma breve apresentação do txt2tags.

Características
Outra breve apresentação.

Página de Manual
A página manual do txt2tags.

REGRAS
A especificação de txt2tags, são as regras sintáticas da linguagem.

Guia do Usuário
Manual completo descrevendo todas as funcionalidades, características, opções de linha de comando, configuração, etc.

2. HTML

Voltar para o topo

2.1. Como criar tags <BR>, <DIV>?

Usando %!postproc.

%!postproc(html): '{(.*)}' '<\1>'

"""<ESPACO>{div class="blah"}

... blah ...  ... blah ...  ... blah ...  ... blah ...  ... blah ... {br}
... blah ...  ... blah ...  ... blah ...  ... blah ...  ... blah ... {br}
... blah ...  ... blah ...  ... blah ...  ... blah ...  ... blah ... {br}
... blah ... 

"""<ESPACO>{/div}

Voltar para o topo

2.2. Como colocar quebras de linha nas células de uma tabela?

O parse para a construção das tabelas é feito linha a linha, logo para colocar uma quebra linha em determinada célula vai ter que usar uma regra %!postproc para criar um <BR>.

%!postproc(html): '{(.*)}' '<\1>'

|| blah | bleh | blih | bloh | bluh
 | b    | c    | d    | e    | f
 | b    | c    | d    | e    | f
 | b    | c    | linha muito longa ... {br} muito longa ... {br} ... muito longa mesmo ... | e    | f
 | b    | c    | d    | e    | f

Note que essa dica é muito boa para HTML mas em Latex ela faz um estrago enorme.

Voltar para o topo

2.3. Como colocar uma figura em um link centralizada na página?

Quando a figura possui um link não é possível centraliza-la. Isso é um conhecido BUG que por enquanto está sem solução. A solução em forma de xunxo é colocar dentro de uma tabela centralizada e sem borda:

     | [[imagem.png] http://www.abc.com]

Voltar para o topo

2.4. Como centralizar um texto qualquer na pagina?

Use uma citação (BLOCKQUOTE) e centralize na folha de estilos.

Voltar para o topo

2.5. Como especificar âncoras?

Isso só é possível na versão 2.0, e para isso basta declarar a âncora entre colchetes após algum título.

== Minha seção==[Blah]

e para referenciar:

[seção blah #Blah]

Voltar para o topo

2.6. Existe FOOTER?

Não, mas pode se obter um usando o %!include no final do documento.

%!include: rodape.t2t

Voltar para o topo

2.7. Como colocar uma imagem remota?

Mais uma vez use as regras %!postproc.

%!postproc   IMAGEM.PNG   http://www.abc.com/imagem

   ...

veja a imagem: [IMAGEM.PNG]

Voltar para o topo

2.8. Existe colspan e rowspan?

Não, isso deve ser incorporado no futuro. Hoje existe o reST que possui uma sintaxe mais poderosa para criação de tabelas. Pode usar ele para gerar as tabelas em arquivos separados e em seguida incluir esses arquivos nos arquivos do txt2tags com %!include.

%!include: ''tabela.html''

Voltar para o topo

2.9. Como colocar texto no atributo 'alt' das imagens?

Usando as regras %!postproc:

%!postproc(html): '("beach.jpg.*?alt=")'  '\1 a really nice beach'
%!postproc(html): '("city.jpg.*?alt=")'   '\1 this is my city'

Olá, esta é uma foto da minha cidade: [city.jpg]
E essa é de uma praia próxima: [beach.jpg]

3. TeX

Voltar para o topo

3.1. Como usar a classes book em vez de article para o output?

Isso só poder ser feito colocando:

%!postproc(tex): {article} {book}

Voltar para o topo

3.2. Como configurar lingua no TEX (babel)?

Usando uma regra %!postproc:

%!postproc(tex): {babel} [portuges]{babel}

para funcionar corretamente o %!style deve ser configurado para babel:

%!style(tex): babel

ou com uma regra de postproc mais agressiva:

%!postproc(tex): '(\\usepackage{amsfonts,graphicx,url})' '\1\n\\usepackage[brazil]{babel}'

Voltar para o topo

3.3. Como começar capítulo no topo da página?

Existem duas formas de fazer isso:

  1. Usando uma regra %!postproc para colocar um \clearpage antes do \section.

    %!postproc(tex): '\\section' '\clearpage\section'
    

  2. Mudando a classe para book, \section para \chapter e assim por diate. Usando %!postproc é claro.

    %!postproc(tex): '{article}'       '{book}'
    %!postproc(tex): '\\section'       '\chapter'
    %!postproc(tex): '\\subsection'    '\section'
    %!postproc(tex): '\\subsubsection' '\subsection'
    

    Note que os primeiros termos são expressões regulares e que as \ devem ser escapadas \\.
Voltar para o topo

3.4. Como colocar equações matemáticas?

A primeira idéia que vem a mente é usar o marcador ''raw'' para colocar equações matemáticas no texto da seguinte forma:

""" $teste^\omega$

este deveria gerar $teste^\omega$, mas a target é ''tex'' gera:

\$teste\^{}$\backslash$omega\$

O ''raw'' serve para proteger o texto para não ser confundido com marcações do txt2tags, tipo colocar um **foo** literal, sem ser negrito. Esse texto passa pelo parsing normal de escapes, por isso a saída ficou com o \backslash no TeX.

Para obter o resultado desejado deve-se usar a marca de ''pass-thru'', que manda o texto direto para a saída, sem processamento nenhum. Isso deve ser feito com:

%! include(tex): ''equacao.tex''

ou seja, a equação deve ser colocada num arquivo separado, e incluída com aspóstrofos ao redor do nome do arquivo. Caso não queira manter as equações em um arquivo separado use as regras de postproc:

%!postproc: @math-1@  <your-fisrt-formula>
%!postproc: @math-2@  <the-second-one>

Voltar para o topo

3.5. Como colocar notas de rodapé?

Usando as regras %!postproc:

%!postproc(tex): 'footnote#' '\footnote{'
%!postproc(tex): '#' '}'

O texto de uma nota de rodapé deve vir inserido no local onde a marca deve aparecer.

Código-fonte
Aqui está uma prova footnote#Bem feia, é verdade# de que é possível
usar o txt2tags para tarefas que exijam notas de rodapé.

Código gerado
Aqui está uma prova \footnote{Bem feia, é verdade} de que é possível
usar o txt2tags para tarefas que exijam notas de rodapé.

4. Miscelânia

Voltar para o topo

4.1. Como gerar PDF a partir de um .t2t?

Existem duas formas de fazer isso:

  1. Convertendo o .t2t para .tex e usando pdflatex.

    txt2tags -t tex arquivo.t2t
    pdflatex arquivo.tex
    

  2. Convertendo o .t2t para .html e usando htmldoc.

    http://www.easysw.com/htmldoc/software.php

  3. Convertendo o .t2t para .html e usando o MS Word ou OpenOffice.

    Tanto o OpenOffice quanto o MS Word abrem HTML aí é só salvar como .doc, .sxw ou .pdf(o OpenOffice salva PDF).
Voltar para o topo

4.2. Como usar o txt2tags em um programa Python

O txt2tags é feito em Python e é também um módulo nessa linguagem. Para usar o txt2tags em programas Python basta importar o módulo, veja o código abaixo:

import txt2tags

texto = """Oi, tudo bem?

Primeiro **uma** linha,
depois a //outra//.

Tchau."""

texto = texto.split('\n')   # deve ser uma lista

config = txt2tags.ConfigMaster()._get_defaults()
config['target'] = 'html'   # formato de saida: HTML

result, toc = txt2tags.convert(texto, config)
print '\n'.join(result)     # result eh uma lista

Voltar para o topo

4.3. Como fazer compilação condicional com txt2tags?

Com o txt2tags é possível gerar diferentes documentos partindo de um mesmo .t2t com o uso de %!preproc. Imagine que você precisa gerar um apostila que servirá tanto a alunos quanto a professores. Entretanto algumas partes do documento deverão existir somente para os professores e vice-versa. Para isso crie as seguintes regras:

%
% Mostra areas dos professores
%!preproc: '^%prof% '   ''
%
% Mostra areas dos alunos
%!preproc: '^%aluno% '  ''
%

e ao longo do texto:

%aluno% frase que só vai ter na apostila do aluno
%aluno% frase que só vai ter na apostila do aluno
%aluno% frase que só vai ter na apostila do aluno
%aluno% frase que só vai ter na apostila do aluno

%prof% essa só na do prof
%prof% essa só na do prof
%prof% essa só na do prof
%prof% essa só na do prof


Wilson Freitas <wilson em econofisisca com br>