If you \usepackage[utf8x]{inputenc}, a lot of UTF-8 input will just work.
Greek is an exception though; it would always interpret e.g. α as \textalpha, which doesn't exist, instead of \alpha, which does. The only solution I could find was to write a simple package defining each of the \textgreek as \greek.
There are a few other exceptions (⨂ and ↦ come to mind), and I haven't worked out how to add support for a character (instead of just redefining it like I did with the greek). But the situation is mostly okay. I currently have this line in a LaTeX document for example, and it works fine:
Given $R$-modules $M,N$, their tensor product is an $R$-module $M ⊗_R N$ together with an $R$-bilinear map $b: M × N → M ⊗_R N$ satisfying: whenever $φ:M×N→P$ is bilinear, $∃!g:M⊗N→P$ linear such that $φ = g∘b$.
Greek is an exception though; it would always interpret e.g. α as \textalpha, which doesn't exist, instead of \alpha, which does. The only solution I could find was to write a simple package defining each of the \textgreek as \greek.
There are a few other exceptions (⨂ and ↦ come to mind), and I haven't worked out how to add support for a character (instead of just redefining it like I did with the greek). But the situation is mostly okay. I currently have this line in a LaTeX document for example, and it works fine:
Given $R$-modules $M,N$, their tensor product is an $R$-module $M ⊗_R N$ together with an $R$-bilinear map $b: M × N → M ⊗_R N$ satisfying: whenever $φ:M×N→P$ is bilinear, $∃!g:M⊗N→P$ linear such that $φ = g∘b$.