Aqui está um script que divide os comandos do LaTeX em um arquivo de origem. Ele retira comentários começando com %
. Ele exibe todos os comandos com um \
inicial e todos os nomes de ambiente também.
sed -e 's/^\(\(\)*\)%.*//' \
-e 's/\([^\]\(\\\)*\)%.*//' \
-e 's/\./\n&/g' |
sed -n -e 's/^\begin *{\([^{}]*\)}.*//p' \
-e 's/^\end *{.*//' \
-e 's/^\(\[@A-Za-z][@A-Za-z]*\).*//p' \
-e 's/^\(\[^@A-Za-z]\)//p' |
Explicações:
- O primeiro
sed
pass adiciona uma nova linha antes de cada barra invertida. As duas primeiras expressões retiram comentários, tomando cuidado para reter\%
, mas ainda retiram comentários que são precedidos por\
. - No segundo
sed
pass, a primeira expressão imprime nomes de ambiente dos comandos\begin
e a segunda expressão ignora os comandos\end
. A terceira expressão imprime comandos cujos nomes são letras e a quarta expressão imprime comandos cujo nome é um símbolo.
Este script não lida com ambientes verbatim.