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
sedpass 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
sedpass, a primeira expressão imprime nomes de ambiente dos comandos\begine 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.