Anotando aulas de exatas
Meu maior problema na faculdade (fora passar nas matérias) sempre foi anotar as aulas. Eu sou o tipo de pessoa que gosta anotar absolutamente tudo que o(a) professor(a) fala para o caso de algum detalhe obscuro de uma aula perdida ser cobrado na prova.
Em pouco tempo percebi que anotar tudo em papel era impraticável. Fora o cansaço de copiar lousas intermináveis, muitos professores são desorganizados demais para que seja possível anotar linearmente o que está sendo dito em aula. Que atire a primeira pedra aquele aluno que nunca desistiu de anotar uma aula ao perceber que o(a) professor(a) havia cometido um erro duas lousas atrás.
Possíveis soluções
A primeira coisa que todo aluno pensa nesses momentos de raiva é em fazer suas anotações no computador (caso ele(a) o tenha). Por um segundo essa pode parecer a solução perfeita, mas ela nem sempre funciona; se você é um aluno de humanas pode até ser que um editor de texto comum como Word ou Pages funcione para anotar as suas aulas, mas se você tiver que anotar ao menos uma equação esses programas já se tornam uma solução menos que ideal.
Como sou aluno de Ciência da Computação ainda tenho um problema a mais: anotar código. Falando com meus amigos, chegamos à conclusão de que anotar as nossas aulas em LaTeX talvez fosse a única saída. Dito isso, sugiro que o leitor tente anotar pelo menos uma aula na vida em LaTeX para entender porque descarto essa ideia…
Dessa forma cheguei a três critérios que qualquer solução deveria atender para ser considerada ótima:
- Praticidade (descartamos dessa forma anotar as aulas em papel)
- Facilidade de anotar equações e código (descartamos editores de texto comuns)
- Velocidade na hora de escrever (descartamos LaTeX)
Não ia ser fácil…
Uma luz no fim do túnel
Depois de muito tempo procurando uma solução ideal, acabei a encontrando debaixo do meu nariz. Para programar eu já usava há alguns anos um editor de código chamado Atom, mas o que eu ainda não sabia é que esse editor é extremamente customizável, permitindo que o usuário baixe plugins cuja função é estender a funcionalidade do editor.
Um desses plugins se chama Markdown Preview Plus (MMP) e ele foi a luz no fim do túnel que era o meu caderno de anotações. Ele junta duas tecnologias opostas de forma que temos o melhor dois dois mundos! Para texto e código ele nos permite usar Markdown, enquanto para equações ele nos permite usar LaTeX (mas sem a parte de formatação de texto, que tornava qualquer solução LaTeX-pura lenta e ineficiente).
Ler essas duas palavras juntas na mesma frase pode ser intimidador, mas acredite em mim quando digo que ela salvou minha vida. Não posso dizer que não existe uma curva de aprendizado, porém a recompensa é muito maior que os poucos dias que você perderá aprendendo Markdown ou LaTeX.
Como instalar o MMP
Para que tudo isso funcione, você precisa primeiro instalar o Atom. Feito isso, navegue até o menu do editor e procure a aba denominada Install e instale também o Markdown Preview Plus. O passo final é ir até a aba Packages, procurar o MMP e, em suas configurações, habilitar a opção Enable Math Rendering By Default.
Crie um arquivo .md
e pressione a combinação ctrl + shift + M
para ativar o preview do Markdown. Agora é só escrever em Markdown e colocar qualquer código LaTeX entre dois cifrões para renderizar qualquer fórmula matemática!
E em teoria isso é tudo 😊 Essa solução une a praticidade do computador, as funcionalidades do LaTeX e a velocidade do Markdown de forma que eu nunca imaginei que fosse possível. Mas para aqueles que não estão familiarizados com Markdown ou LaTeX, ainda resta o desafio de aprendê-los…
Exemplos
Para saber mais sobre Markdown, sugiro o tutorial criado pelo GitHub: Mastering Markdown. Já LaTeX não precisa exatamente de um tutorial no nosso caso, mas sim de uma cola: LaTeX/Mathematics.
Para fins ilustrativos, veja o texto escrito abaixo:
# Matéria Importante
## Aula de hoje
Com Markdown podemos criar
- *Uma lista*
- `Com itens`
- **Em diversas**
- formatações
Seja $X$ o número de comparações executadas na linha 4 da função
`particione()`. Observe que $X$ é uma variável aleatória.
Tome $X_{ab}$ a variável aleatória binária com interpretação
$X_{ab} = 1$ se e somente se $a$ e $b$ são comparados na linha 4.
Algo bem complicado (e sem sentido):
$m = \begin{cases}
m[i, j] = n + \sum_{k = 0}^{\lfloor \lg n \rfloor} 2^k = n +
2^{\lfloor \lg n \rfloor} - 1 ≤ n + 2.2^{\lg n} & i = j \\
m[i, j] = min_{\ i ≤ k ≤ j-1}\{ m[i, k] + m[k+1, j] +
p_{i-1} \ p_k \ p_j\} & i \not = j
\end{cases}$
Esse é o seu resultado quando renderizado pelo MMP:
Funcionalidades bônus
Se você quiser maximizar a velocidade com que você faz as anotações, sugiro tirar vantagem de snippets do Atom. Os que eu uso estão disponíveis em um Gist.
Para exportar suas anotações como PDF, clique com o botão direito no preview e selecione Save as HTML. Esse arquivo pode ser aberto no seu navegador e assim ser salvo como PDF com cmd/ctrl + P
.