Estou utilizando o Vim et all, para escrever o texto do meu trabalho de conclusão de curso (conhecido também como trabalho de diploma, td), são basicamente as ferramentas:
- vim – editor
- aspell – correção ortográfica
- bibtex – referencias textuais
- latex – processador de texto
- abntex – padrão do documento
A norma (!) diz que as palavras estrangeiras devem ser escritas em itálico. Como é um texto técnico, há o uso frequente de palavras in english e o risco de deixar uma para trás é grande. Como a motivação para não escrever é maior, dispersei e acabei fazendo um programa que a partir de uma entrada (CSV) varre o texto e insere o itálico quando for necessário. O protótipo até agora esta assim:
O código ainda não está limpo para torná-lo acessível num repositório on-line. Além disso, acho que há outras maneiras mais eficazes: sed, python, etc. Como não sei quando vou ter tempo para torná-lo útil de verdade, vou colar aqui as duas partes do código que achei interessante.
A alteração no texto é simples: primeiro varremos o texto procurando pelo termo (*palavra é um iteraror da QStringList) e associamos um índice para cada ocorrência (indexOf) adicionando em uma lista (pos é um QList<int>). Antes de fazermos a troca (replace) comparamos com outra lista (blacklist) se essa inserção já não está dentro de um \textit. Se isso não acontecer, pode existir casos do tipo: \textit{\textit{itálico}}.
while ((i=s.indexOf(*palavra,i+1)) != -1) pos << i; for (index=0, offset=0; index < pos.length() ; index++) if (blacklist.contains(pos.at(index)) == false) { str = "\\textit{" + *palavra + "}"; s.replace(pos.at(index)+offset,(*palavra).length(),str); offset += 9; }
A construção da blacklist pode também ser aproveitada para evitar outros contextos, como notas de rodapé. Apenas trocar o \\textit pelo \\footnote.
while ((a=s.indexOf("\\textit{",b+1)) != -1) { b = s.indexOf("}",a); if ((c=s.indexOf(*palavra,a)) < b) blacklist << s.indexOf(*palavra,a); }
Conclusão: esse post nem era para existir, mas quem sabe eu não invento algum programa que escreva o texto sozinho
Até mais!
