Last active
October 27, 2020 18:44
-
-
Save alecjacobson/a4c7919b356a7d64275864f88677d171 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # https://github.com/rarora7777/computer-graphics-kinematics/blob/master/replace.sh | |
| sed -i '' -E 's/\\A($|[^A-Za-z0-9])/\\mathbf\{A\}\1/g' $1 | |
| sed -i '' -E 's/\\B($|[^A-Za-z0-9])/\\mathbf\{B\}\1/g' $1 | |
| sed -i '' -E 's/\\C($|[^A-Za-z0-9])/\\mathbf\{C\}\1/g' $1 | |
| sed -i '' -E 's/\\D($|[^A-Za-z0-9])/\\mathbf\{D\}\1/g' $1 | |
| sed -i '' -E 's/\\E($|[^A-Za-z0-9])/\\mathbf\{E\}\1/g' $1 | |
| sed -i '' -E 's/\\F($|[^A-Za-z0-9])/\\mathbf\{F\}\1/g' $1 | |
| sed -i '' -E 's/\\G($|[^A-Za-z0-9])/\\mathbf\{G\}\1/g' $1 | |
| sed -i '' -E 's/\\H($|[^A-Za-z0-9])/\\mathbf\{H\}\1/g' $1 | |
| sed -i '' -E 's/\\I($|[^A-Za-z0-9])/\\mathbf\{I\}\1/g' $1 | |
| sed -i '' -E 's/\\J($|[^A-Za-z0-9])/\\mathbf\{J\}\1/g' $1 | |
| sed -i '' -E 's/\\K($|[^A-Za-z0-9])/\\mathbf\{K\}\1/g' $1 | |
| sed -i '' -E 's/\\L($|[^A-Za-z0-9])/\\mathbf\{L\}\1/g' $1 | |
| sed -i '' -E 's/\\M($|[^A-Za-z0-9])/\\mathbf\{M\}\1/g' $1 | |
| sed -i '' -E 's/\\N($|[^A-Za-z0-9])/\\mathbf\{N\}\1/g' $1 | |
| sed -i '' -E 's/\\One($|[^A-Za-z0-9])/\\mathbf\{1\}\1/g' $1 | |
| sed -i '' -E 's/\\P($|[^A-Za-z0-9])/\\mathbf\{P\}\1/g' $1 | |
| sed -i '' -E 's/\\Q($|[^A-Za-z0-9])/\\mathbf\{Q\}\1/g' $1 | |
| sed -i '' -E 's/\\R($|[^A-Za-z0-9])/\\mathbb\{R\}\1/g' $1 | |
| sed -i '' -E 's/\\S($|[^A-Za-z0-9])/\\mathbf\{S\}\1/g' $1 | |
| sed -i '' -E 's/\\T($|[^A-Za-z0-9])/\\mathbf\{T\}\1/g' $1 | |
| sed -i '' -E 's/\\U($|[^A-Za-z0-9])/\\mathbf\{U\}\1/g' $1 | |
| sed -i '' -E 's/\\V($|[^A-Za-z0-9])/\\mathbf\{V\}\1/g' $1 | |
| sed -i '' -E 's/\\W($|[^A-Za-z0-9])/\\mathbf\{W\}\1/g' $1 | |
| sed -i '' -E 's/\\X($|[^A-Za-z0-9])/\\mathbf\{X\}\1/g' $1 | |
| sed -i '' -E 's/\\Y($|[^A-Za-z0-9])/\\mathbf\{Y\}\1/g' $1 | |
| sed -i '' -E 's/\\a($|[^A-Za-z0-9])/\\mathbf\{a\}\1/g' $1 | |
| sed -i '' -E 's/\\b($|[^A-Za-z0-9])/\\mathbf\{b\}\1/g' $1 | |
| sed -i '' -E 's/\\c($|[^A-Za-z0-9])/\\mathbf\{c\}\1/g' $1 | |
| sed -i '' -E 's/\\d($|[^A-Za-z0-9])/\\mathbf\{d\}\1/g' $1 | |
| sed -i '' -E 's/\\e($|[^A-Za-z0-9])/\\mathbf\{e\}\1/g' $1 | |
| sed -i '' -E 's/\\f($|[^A-Za-z0-9])/\\mathbf\{f\}\1/g' $1 | |
| sed -i '' -E 's/\\g($|[^A-Za-z0-9])/\\mathbf\{g\}\1/g' $1 | |
| sed -i '' -E 's/\\h($|[^A-Za-z0-9])/\\mathbf\{h\}\1/g' $1 | |
| sed -i '' -E 's/\\i($|[^A-Za-z0-9])/\\mathbf\{i\}\1/g' $1 | |
| sed -i '' -E 's/\\j($|[^A-Za-z0-9])/\\mathbf\{j\}\1/g' $1 | |
| sed -i '' -E 's/\\k($|[^A-Za-z0-9])/\\mathbf\{k\}\1/g' $1 | |
| sed -i '' -E 's/\\l($|[^A-Za-z0-9])/\\mathbf\{l\}\1/g' $1 | |
| sed -i '' -E 's/\\m($|[^A-Za-z0-9])/\\mathbf\{m\}\1/g' $1 | |
| sed -i '' -E 's/\\n($|[^A-Za-z0-9])/\\mathbf\{n\}\1/g' $1 | |
| sed -i '' -E 's/\\p($|[^A-Za-z0-9])/\\mathbf\{p\}\1/g' $1 | |
| sed -i '' -E 's/\\q($|[^A-Za-z0-9])/\\mathbf\{q\}\1/g' $1 | |
| sed -i '' -E 's/\\r($|[^A-Za-z0-9])/\\mathbf\{r\}\1/g' $1 | |
| sed -i '' -E 's/\\s($|[^A-Za-z0-9])/\\mathbf\{s\}\1/g' $1 | |
| sed -i '' -E 's/\\t($|[^A-Za-z0-9])/\\mathbf\{t\}\1/g' $1 | |
| sed -i '' -E 's/\\u($|[^A-Za-z0-9])/\\mathbf\{u\}\1/g' $1 | |
| sed -i '' -E 's/\\v($|[^A-Za-z0-9])/\\mathbf\{v\}\1/g' $1 | |
| sed -i '' -E 's/\\x($|[^A-Za-z0-9])/\\mathbf\{x\}\1/g' $1 | |
| sed -i '' -E 's/\\y($|[^A-Za-z0-9])/\\mathbf\{y\}\1/g' $1 | |
| sed -i '' -E 's/\\z($|[^A-Za-z0-9])/\\mathbf\{z\}\1/g' $1 | |
| sed -i '' -E 's/\\0($|[^A-Za-z0-9])/\\mathbf\{0\}\1/g' $1 | |
| #Operators | |
| sed -i '' -E 's/\\vec($|[^A-Za-z0-9])/\\mathbf\1/g' $1 | |
| sed -i '' -E 's/\\mat($|[^A-Za-z0-9])/\\mathbf\1/g' $1 | |
| sed -i '' -E 's/\\Rot($|[^A-Za-z0-9])/\\mathbf\{R\}\1/g' $1 | |
| sed -i '' -E 's/\\min($|[^A-Za-z0-9])/\\mathop\{\\text\{min\}\}\1/g' $1 | |
| sed -i '' -E 's/\\argmax($|[^A-Za-z0-9])/\\mathop\{\\text\{argmax\}\}\1/g' $1 | |
| sed -i '' -E 's/\\argmin($|[^A-Za-z0-9])/\\mathop\{\\text\{argmin\}\}\1/g' $1 | |
| sed -i '' -E 's/\\transpose($|[^A-Za-z0-9])/\{\\mathsf T\}\1/g' $1 | |
| #sed -i '' -E 's/\\tr\([^A-Za-z]\)/\\mathop\{\\text\{tr\}\}\1/g' $1 | |
| perl -pi -E 's/\\tr\s*(\{((?:[^{}]++|(?1))*)\})/\\mathop\\text\{tr\}\{\\left(\2\\right)\}/g' $1 | |
| #Special characters | |
| sed -i '' -E 's/ℝ/\\mathbb\{R\}/g' $1 | |
| sed -i '' -E 's/∮/\\oint/g' $1 | |
| sed -i '' -E 's/↓/\\downarrow/g' $1 | |
| sed -i '' -E 's/⊥/\\perp/g' $1 | |
| sed -i '' -E 's/∈/\\in /g' $1 | |
| sed -i '' -E 's/½/\\frac12 /g' $1 | |
| sed -i '' -E 's/⅓/\\frac13 /g' $1 | |
| sed -i '' -E 's/¼/\\frac14 /g' $1 | |
| sed -i '' -E 's/∂/\\partial /g' $1 | |
| sed -i '' -E 's/∆/\\Delta /g' $1 | |
| sed -i '' -E 's/‖/\\| /g' $1 | |
| sed -i '' -E 's/↔/\\Leftrightarrow /g' $1 | |
| sed -i '' -E 's/→/\\Rightarrow /g' $1 | |
| sed -i '' -E 's/∀/\\forall /g' $1 | |
| sed -i '' -E 's/α/{\\alpha}/g' $1 | |
| sed -i '' -E 's/β/{\\beta}/g' $1 | |
| sed -i '' -E 's/γ/{\\gamma}/g' $1 | |
| sed -i '' -E 's/λ/{\\lambda}/g' $1 | |
| sed -i '' -E 's/θ/{\\theta}/g' $1 | |
| sed -i '' -E 's/Θ/{\\Theta}/g' $1 | |
| sed -i '' -E 's/χ/{\\chi}/g' $1 | |
| sed -i '' -E 's/φ/{\\varphi}/g' $1 | |
| sed -i '' -E 's/σ/{\\sigma}/g' $1 | |
| sed -i '' -E 's/δ/{\\delta}/g' $1 | |
| sed -i '' -E 's/ε/{\\epsilon}/g' $1 | |
| sed -i '' -E 's/Ω/{\\Omega}/g' $1 | |
| sed -i '' -E 's/π/{\\pi}/g' $1 | |
| sed -i '' -E 's/ψ/{\\psi}/g' $1 | |
| sed -i '' -E 's/∆/{\\Delta}/g' $1 | |
| sed -i '' -E 's/∆/{\\Delta}/g' $1 | |
| sed -i '' -E 's/∇/{\\nabla}/g' $1 | |
| sed -i '' -E 's/₀/\_{0}/g' $1 | |
| sed -i '' -E 's/₁/\_{1}/g' $1 | |
| sed -i '' -E 's/₂/\_{2}/g' $1 | |
| sed -i '' -E 's/₃/\_{3}/g' $1 | |
| sed -i '' -E 's/⁰/\^{0}/g' $1 | |
| sed -i '' -E 's/²/\^{2}/g' $1 | |
| sed -i '' -E 's/³/\^{3}/g' $1 | |
| sed -i '' -E 's/⁴/\^{4}/g' $1 | |
| sed -i '' -E 's/⁵/\^{5}/g' $1 | |
| sed -i '' -E 's/⁶/\^{6}/g' $1 | |
| sed -i '' -E 's/⁷/\^{7}/g' $1 | |
| sed -i '' -E 's/⁸/\^{8}/g' $1 | |
| sed -i '' -E 's/°/\^\\circ /g' $1 | |
| sed -i '' -E 's/ꕕ/\\otimes /g' $1 | |
| sed -i '' -E 's/←/\\Leftarrow /g' $1 | |
| sed -i '' -E 's/⊂/\\subset /g' $1 | |
| sed -i '' -E 's/⊂/\\subset /g' $1 | |
| sed -i '' -E 's/≈/\\approx /g' $1 | |
| sed -i '' -E 's/∑/{\\sum}/g' $1 | |
| sed -i '' -E 's/∞/\\infty /g' $1 | |
| sed -i '' -E 's/Σ/\\sigma /g' $1 | |
| sed -i '' -E 's/≠/\\ne /g' $1 | |
| sed -i '' -E 's/∫/\\int /g' $1 | |
| sed -i '' -E 's/∃/\\exists /g' $1 | |
| sed -i '' -E 's/ℓ/{\\ell}/g' $1 | |
| sed -i '' -E 's/±/\\pm /g' $1 | |
| sed -i '' -E 's/≥/\\ge /g' $1 | |
| sed -i '' -E 's/≤/\\le /g' $1 | |
| sed -i '' -E 's/×/\\times /g' $1 | |
| sed -i '' -E 's/…/\\ldots /g' $1 | |
| sed -i '' -E 's/…/\\ldots /g' $1 | |
| sed -i '' -E 's/⋅/\\cdot /g' $1 | |
| sed -i '' -E 's/\\\\\[/$$/g' $1 | |
| sed -i '' -E 's/\\\\\]/$$\ | |
| /g' $1 | |
| #sed -i '' -E 's///g' $1 | |
| # Alec's escaped chars | |
| sed -i '' -E 's/\\\_/\_/g' $1 | |
| sed -i '' -E 's/\\\^/\^/g' $1 | |
| # Misc. | |
| sed -i '' -E 's/\\hat($|[^A-Za-z0-9])/\\widehat\1/g' $1 | |
| sed -i '' -E 's/\\\\mathbf/\\\\/g' $1 | |
| # Cleanup | |
| sed -i '' -E 's/{\\sum}\\limits/\\sum\\limits/g' $1 | |
| sed -i '' -E 's/\\int _/\\int_/g' $1 | |
| sed -i '' -E 's/\\tr/\\newcommand{\\tr}[1]{\\mathop{\\text{tr}}\\left(#1\\right)}\\tr/g' $1 | |
| sed -i '' -E 's/\\\| \^\{2\}/\\\|\^\{2\}/g' $1 | |
| echo "Remaining unicode symbols:" | |
| LC_ALL=C cat $1 | sed -n "s/\(.\)/\1 /pg" | tr ' ' '\n' | grep '[^ -~]' | sort | uniq |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment