{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to plot mathematical expressions and symbols in vcs?\n", "\n", "VCS can take advantage of matolotlib's text capabilites, this Jupyter notebook essentially shows how to implement in vcs [the following matplolib tutorial](https://matplotlib.org/users/mathtext.html)\n", "\n", "You can use a subset TeX markup in any vcs text string by placing it inside a pair of dollar signs ($).\n", "\n", "Note that you do not need to have TeX installed, since matplotlib ships its own TeX expression parser, layout engine and fonts. The layout engine is a fairly direct adaptation of the layout algorithms in Donald Knuth’s TeX, so the quality is quite good.\n", "\n", "Any text element can use math text. You should use raw strings (precede the quotes with an 'r'), and surround the math text with dollar signs ($), as in TeX. Regular text and mathtext can be interleaved within the same string. Mathtext can use DejaVu Sans (default), DejaVu Serif, the Computer Modern fonts (from (La)TeX), STIX fonts (with are designed to blend well with Times), or a Unicode font that you provide. The mathtext font can be selected with the customization variable mathtext.fontset [see Customizing matplotlib](https://matplotlib.org/users/customizing.html#customizing-matplotlib)\n", "\n", "## Simple example" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import vcs\n", "x=vcs.init(bg=True, geometry=(800,60))\n", "# Convenience function for later in the script\n", "def update():\n", " x.clear()\n", " return x.plot(text)\n", "\n", "text = vcs.createtext()\n", "# Position string\n", "text.x = [.5]\n", "text.y = [.5]\n", "text.halign = \"center\"\n", "text.valign = \"half\"\n", "text.height = 250\n", "text.string = \"alpha > beta\"\n", "x.plot(text)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "produces “alpha > beta”.\n", "\n", "Whereas this:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# mathematical text\n", "text.string = r\"$\\alpha > \\beta$\"\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**\n", "\n", "Mathtext should be placed between a pair of dollar signs (\\$). To make it easy to display monetary values, e.g., “$100.00”, if a single dollar sign is present in the entire string, it will be displayed verbatim as a dollar sign. This is a small change from regular TeX, where the dollar sign in non-math text would have to be escaped (‘\\$’)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**\n", "\n", "While the syntax inside the pair of dollar signs (\\$) aims to be TeX-like, the text outside does not. In particular, characters such as:\n", "```\n", "# $ % & ~ _ ^ \\ { } ( ) [ ]\n", "```\n", "have special meaning outside of math mode in TeX. Therefore, these characters will behave differently depending on the rcParam text.usetex flag. See the usetex tutorial for more information." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Subscripts and superscripts\n", "\n", "To make subscripts and superscripts, use the '_' and '^' symbols:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r\"$\\alpha_i > \\beta_i$\"\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some symbols automatically put their sub/superscripts under and over the operator." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$\\sum_{i=0}^\\infty x_i$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fractions, binomials and stacked numbers\n", "Fractions, binomials and stacked numbers can be created with the \\frac{}{}, \\binom{}{} and \\stackrel{}{} commands, respectively:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAFi0lEQVR4Xu3dTUjUfx7A8d/YvwcmnVhWXdqySMpI6ImkW+6eNsiDS3uI5U8UgfRAB+mQQVAEPQgdZSvq4iHo1C4dwlwi+FcYRJEiRJaHCJLtfwidnB5Mmz0MiDujM9N/vzN2eL1OP7+/z2fOb+cxlk6nIwAAwqkoNAAAwPcRWAAAgQksAIDABBYAQGACCwAgMIEFABCYwAIACExgAQAEJrAAAAITWAAAgQksAIDABBYAQGACCwAgMIEFABCYwAIACExgAeVz5MiRurq6RCKxYsWK9vb2iYmJPMNTU1N57k4rcgygnAQWUD5Hjx598eJFMpns7+8fGBg4f/78XJOTk5OXL1/OXOfPsp6enuHh4dke4/t6DiAggQWUT2Nj49KlSzPXFRUVr169mmvy+PHjLS0tmev8WdbS0nLhwoWxsbHcBym+5wDCElhAWXV2dlZWVtbW1g4MDLS3t886c+/evXg8vmbNmsyf+bMsFosdPnz49OnT2Y9SaBGgdAQWUFYnTpwYHx9//vz5oUOHli9fPuvMyZMnDxw4MPMkf5Y1NTX19fW9efMmylFMzwEEJ7CAebBhw4bNmzfv3bs399bt27cXLlxYX18/87Bglu3Zs2fWVwALLgKUgsAC5sfXr19fvnyZe97d3d3c3Jx7HuXNsubm5hs3bnz+/Dn3VpR3EaAUBBZQJmNjY93d3aOjo+l0enBw8OzZszt37syamZqa6u3t3bJly6yPEM2dZRs3bkylUg8ePMi9lTHXIkApCCygTGKx2PXr1+vr66uqqlpbW3ft2tXV1ZU1Mzg4+OHDh02bNk2fFJNlURQtWbKkoaGhr6/vexcBSuGnQgMAYSQSibt37+afGRoaiqKopqZm+iSTZceOHZuYmKitrd29e/eZM2dm3a2urp75HFXxiwDBCSzgBzIyMhJFUSKRmD4pJssyEonE27dvZ/5Z5CJAcF4iBH4gqVQqHo8vWLCg0OAsli1blkqlCk0BlINnsIAyicViee6m0+koiioqKn7zbwtOTk7+tjIDCE5gAWWSSaj8qqqqvnz5MjExsWjRokKz2ZLJZFVVVaEpgHLwEiFQbp8+fVq7dm1lZWXurVWrVkVRlEwmc2/l2cpIJpOrV6/OPS+4CBCcwALK7dSpU7OWUBRFjY2NURTNfK/6tDxbGSMjI5n1LAUXAYITWEBZPX36tKenp6OjY9a769atq62t7e/v/66tKIpGR0dfv369Y8eOrPOCiwClILCA8pmcnGxra7t06VKet1i1trZmBVYxW/39/XV1dU1NTd+7CFAKAgson4sXL27dunWunxrMOHjwYG9v78yTYrbu3LnT1taW9UHFYhYBSsGnCIEyGR4evnLlyrNnz/KPbdu2rbGx8fHjx9u3by9y69u3b729vffv3595WMwiQIl4Bgsok4cPH757966hoaG6urq1tTWVSlVXV2dVUca5c+euXr1a/NatW7f27duX9R0NxSwClEismG+mAfj/ffz48f3795nrR48e7d+/f2hoqKamZvHixbnD165dW79+fXNzc8Gt8fHxjo6Orq6uior/+Y+x4CJA6XiJECiTeDwej8cz1zU1NbFYbOXKlXMNt7W13bx5s5itvr6+zs7OrLoqZhGgdDyDBQAQmPdgAQAEJrAAAAITWAAAgQksAIDABBYAQGACCwAgMIEFABCYwAIACExgAQAEJrAAAAITWAAAgQksAIDABBYAQGACCwAgMIEFABCYwAIACExgAQAEJrAAgB/arz3/ylz0DPy69/KTKIrSb/79dfJLFEW//HMw3+b8EVgAwA/tP7d/iaLo7/94/Ls//n7/X7dM3W+PrfrLwp8W/3zpyZ92byy0PT9i6XS60AwAwPz7+dKTtr9t/PMfFhcanH//Be+jR4PZNnBeAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string=r'$\\frac{3}{4} \\binom{3}{4} \\stackrel{3}{4}$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fractions can be arbitrarily nested:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAD40lEQVR4Xu3cMWhUdxzA8XfR5CAkmNqEagl1UAQHoQ4OWZIgUhxLg5BDAzcY52aSLJEQbnITmmbJElDvlgQCJdJFLIJQYqQpCKJTl6sOIdGacNzV1yHoYDSPln/y3pXPZ3q8/P779/7/l38ujuMIAIBwWpIGAAD4dwQWAEBgAgsAIDCBBQAQmMACAAhMYAEABCawAAACE1gAAIEJLACAwAQWAEBgAgsAIDCBBTS9zc3Nvr6+rq6ucrmcNAuwHw4mDQBkXT6fX1hYmJmZSRoE2Cd2sICmd+DAgSNHjiRNAewfgQWkrFgstrW1dbxz9+7dpBUAWSewgPRdvXr1r3cuXLiQNA6QdQILACAwgQWk79atW4cPHz516lSpVGo0GknjHzE0NDQ3N1cqlcbGxpJmAfZcLo7jpBmAPbSystLb29vd3b2yslIoFIaHh6empt7/dXh4uFKp7Fx17969wcHBne8BskBgARly+/bt69evP3v27P2b169f12q1nZOHDh1qbW3d+R4gC9yDBWRIS0vLB7/6Ojs7Ozs7PzW/LZfLffS9H5BAWnyDBaSsUqlsbGzEcby6ujo5OXnx4sWkFR9qNBpnz56tVqtPnjw5d+7c+vp6HMfqCkiRI0IgZQMDA6urq/V6/ejRoyMjI+Pj4//h7G9xcbFcLler1Tt37rh0FEidwAL+D6rV6vHjxxcXF8+fP580C7DnHBECTW9jY+Py5cs3b96cnZ1NmgXYDwILaG61Wq1QKJRKpStXrrx69Wp5eTlpBcCec0QIABCYHSwAgMAEFgBAYAILACAwN7kDafrUJeyh+MwUSIWP3AEAAnNECDSHra2tEydOdHR0JA0CpE9gAc1hYmLi2LFjSVMAmSCwgCbw6NGjpaWla9euJQ0CZIKP3IGsazQao6Oj09PTb9++TZoFyAQ7WEDW3bhx48yZM/39/UmDAFlhBwvItOfPn8/MzDx+/DhpECBDBBaQaQ8ePHjx4sXJkyejKKrX62/evOnu7p6fn7ehBWSZe7CATNvc3FxbW9t+fvjwYbFYfPr0aU9PTz6f330hQIrsYAGZ1t7e3t7evv3c09OTy+V6e3t3XwKQOjtYAACB+S9CAIDABBYAQGACCwAgMIEFABCYwAIACExgAQAEJrAAAAITWAAAgQksAIDABBYAQGACCwAgMIEFABCYwAIACExgAQAEJrAAgEx7ubSw/bD028uRH5ejKIr/+LneqEVRdH/+991WpkdgAQCZ9udP96MoKvzw62dffl789uu/f/k+99U3rQfzl6aXB747nbQ6Hbk4jpNmAADSd2l6eXTo9OAX+aTB9P0DyQYHA3dcTukAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string=r'$\\frac{5 - \\frac{1}{x}}{4}$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that special care needs to be taken to place parentheses and brackets around fractions. Doing things the obvious way produces brackets that are too small:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAFmElEQVR4Xu3dT2gTWQDH8Zf+SaDEP9smpC5le6hoRQsrolBL/yB26UGwpAgNNjSIVbytXsSLIhLEQ3tQtttLLwW1RUxDsVYq+GcrpCxtZdtaFHPykm0FtTqNhMwye8iaFRPzsLxMRvh+TtN5v9fJ8df3mjc2wzAEAAAA1CmSBQAAAPBtKFgAAACKUbAAAAAUo2ABAAAoRsECAABQjIIFAACgGAULAABAMQoWAACAYhQsAAAAxShYAAAAilGwAAAAFKNgAfjuxePx+vr6zZs3Dw8Py7IAYIYSWQAArM7hcIyOjg4MDMiCAGASVrAAfPeKi4srKytlKQAwDwULQIEFAgG73e785N69e7IZAGB1FCwAhXfixAntk7a2NlkcAKyOggUAAKAYBQtA4V2/fr28vHzHjh3BYFDXdVk8i46OjqGhoWAwePr0aVkWAPLOZhiGLAMAeTQ3N1dVVeVyuebm5nw+X2dn56VLl9KjnZ2dIyMjmbMePnzY0tKSeR8ArICCBcBCbty4ceHChZcvX6bvfPjwIZFIZCY3bdpUWlqaeR8ArIAtQgBmW1xcLCkpuX//fuZQUVHRF3/1bdiwwZXN5+3K9hWp0XA4bLfbPy9tAJBvFCwAZjtz5kxDQ0Nra2vqx5GRkdXVVcMw5ufnL168eOTIkdzTM+m6vnfv3lgstrS0dODAgXfv3hmGkS5q7e3tdXV1Z8+ezf1LAEAhtggBmCoSiezfvz8cDh8+fDh1p7m5eX5+PplMbtmyxe/3nzt3bh17f2NjY8PDw7FY7ObNm5mHjg4NDXV3dy8uLu7cuTPrdABQi4IFwFR+v39iYiIWi62jReUQi8VqamrGxsYOHjyYOappmsfjOXbs2LVr1zJHAUA5tggBmEfX9XA43NraqrZdra6udnV1Xb16dXBwMGvA6XQ2NjbeunUr6ygAKEfBAmCe2dlZTdP27dsnC36DRCLh8/mCweDx48ffv38/MzOTNVZfX7+8vPz8+fOsowCgVoksAADKLC0tCSFqampkwW/gcDju3r2buh4fH/9aLPXQZ8+e1dbWfi0DAKqwggXAPK9fvxZClJeXy4LqVVRUCCFWVlZkQQBQgIIFwDyps6kK8t2a1EPTh2MBQF5RsACYx+12CyHevHkjC6qXemjqAwBAvvE/WADMs2vXLiHE54eq53tJKb1aFo1GxacPAAD5RsECYJ7du3dv3Lhxeno6fce07cLp6WmPx7N9+3ZZEAAUYIsQgHmKi4u9Xu+DBw+yvr85t48fP27dutXpdMqCWWiaNjU1tY6X8ADA+lCwAJjq1KlTb9++vXPnjiz4pfPnz1dXV8tS2d2+fTsej588eVIWBAA1eFUOALO1tbWtra1NTU3Jgv+bnZ3t7u7u6+vzer2apsniX9qzZ091dXUoFJIFAUANVrAAmK23tzcSiUxOTsqC/9F1vaenp7+/3263y7JZhMPhhYWFK1euyIIAoAwrWACs7vLly9FodHBw8NGjR4cOHVrHChYAmIxvEQKwtGg0OjAw8PTpU1kQACyEggXA0p48ebK8vLxt2zYhRDKZXFtbc7lcoVCoqalJNhUACoYtQgCWFo/H0ye/RyKRQCDw4sULt9vtcDhyTwSAAmIFC4CllZWVlZWVpa7dbrfNZquqqso9BQAKjhUsAAAAxTimAQAAQDEKFgAAgGIULAAAAMUoWAAAAIpRsAAAABSjYAEAAChGwQIAAFCMggUAAKAYBQsAAEAxChYAAIBiFCwAAADFKFgAAACKUbAAAAAUo2ABAAAoRsECAACWtjIxmrqY+GvF//uMEMJ4NZnUE0KIx6GFXDMLh4IFAAAs7e/xx0II329//vBjRaD953/++NX20y+lJY6j/TPN3jrZ7MKwGYYhywAAABTe0f6Zno66Fo9DFiy8fwGY26RZJ2vFmwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$(\\frac{5 - \\frac{1}{x}}{4})$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solution is to precede the bracket with \\left and \\right to inform the parser that those brackets encompass the entire object:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$\\left(\\frac{5 - \\frac{1}{x}}{4}\\right)$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Radicals\n", "Radicals can be produced with the \\sqrt[]{} command. For example:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAD4ElEQVR4Xu3dMWhUdwDH8f8lV5yClBJOOsQhSkAQMmSQLKmgUZFAbIfQSEwd6pQhqxATc5hJSAaNdZCQKZClhZOi3GYkEGqWUl2SLB4ZiptgCKUXX4fAEVq9q/A39x8+n+nu8Xtv/t673Esuy7IAAEA8LY0GAAB8GoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABBZvtEAoMlyuVyjyQdkWdZoAvC5uIMFJK1SqczOzmafrtGFAT4jgQUk7fHjxwMDA41WAGkRWEDSNjc3T5w40WgFkBaBBaRrZ2enra2t0QogOQILSFe5XO7v72+0AkiOwALStbq62tvbW3u7sbExOTl55syZ9vb2tra27u7umZmZnZ2dOlcAaAqBBSTq/fv3WZa1trbWjiwsLMzNzXV2dk5OTt69e7erq2tiYqK3t3d3d7fOdQAOX86PmYE0ra2tvX79emhoqHZkfX395MmTR48erR2ZmJiYmZm5d+/e2NjYh64B0BzuYAGpWFlZqVartbdPnz69ePHiwUFPT8/Bugoh7OfXy5cvA0BKBBaQhOXl5cuXLz9//rx25O3bt//Kqf/a3t4OIRQKhfozgEPmX+UASRgaGtra2iqVSmfPng0hVCqV48eP1z9lb2+vWCzm8/nh4eH6S4BD5g4WkIorV66USqX91//nAe7j4+Nra2vFYrGrq6v+EuCQCSwgFadOnWppaXn16lUIYWtrq7Ozs8741q1b9+/fv3Hjxs2bN+vMAJpCYAEJGRgYKJVK7969q/8A99u3b9+5c+f69esPHz6sMwNoFoEFJGQ/sMrl8vnz5z+2mZ6enp6evnbt2qNHj3K53MdmAE3kOVhAQqrV6rFjxy5durS4uHjwEaM1xWJxampqZGRkcXGxpcVHRCBRfkUIJCSfz1+4cCGE8MG6mp+fn5qa6ujoOHfu3NLSUu14oVCoc8cL4PAJLCAtg4ODH/vi78WLFyGESqUyOjp68HhfX5/AApLiK0IAgMj8BQMAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFABCZwAIAiExgAQBEJrAAACITWAAAkQksAIDIBBYAQGQCCwAgMoEFACTtzZNf9l88+f3NyE/rIYSsUv67+lcI4dnPf9Q7s3kEFgCQtD9/fRZC+H7+ty+//uqHwe69lfFcR/8X+SNXH6z3fXu60dnNkcuyrNEGAKD5rj5Y//G7098UjjQaNt8/xycS1Z5IOkAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$\\sqrt{2}$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Any base can (optionally) be provided inside square brackets. Note that the base must be a simple expression, and can not contain layout commands such as fractions or sub/superscripts:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAEgklEQVR4Xu3cS2hUVwDH4ZOXwaCGWkSQISC6SBaSGsSFg1oNFgyKWhda6qOgggHBZuFCEGEQdCdobKqMCupGA7YurIGAQ1ImASVImopufKFCJOBGQQk1pouAlMYkCMfeW/i+1eXmf5jtb7iTWzI6OhoAAIindKoBAACfRmABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEJnAAgCITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEJnAAgCITGABAEQmsAAAIhNYQPKePHmybNmylStXZrPZgYGBqeYAaSewgORlMplisdjd3X3kyJGjR49+uH/jxo3a2tp8Pl/y6Sb5OIDPTWABySsvLy8tLQ0hvHr1asmSJR/u5/P5U6dO7dmzZ/TTTfxpAJ9d+VQDgP9Cf39/c3Pzixcvrly5Mnbn5cuXAwMDq1evnvwgQAqV+J4HpMedO3f27t17+/btEEJra+vg4OA/nxgC/F94RAgkb3h4eOyiurq6qqpq7PrixYs7duyY+BBAegksIHk9PT0rVqxYtWrVrl27jh8/HkK4d+9eaWlpbW3tv5Zv377NZDI1NTUfmiyEsHv37rKyssuXLweAdBBYQMLevXs3PDw8f/78fD7f1dXV0NAQQrhw4cLOnTvHj6dPn57L5Z49e9bW1jZ25+DBg+fOnWttbd26dev4PUAi/AYLSFihUCgUCseOHTt06FAulwshvH//fuHChX19fbNnzx6/HxkZqa+vHxoaevTo0dmzZ1taWnK53OHDh8cvAZIisIBUWLNmzePHjx88eBBC6OzsPHPmzNWrVycaX79+ff369Y2NjYVCYd++fSdPnpxoCZAIjwiBVNi2bdvDhw97e3vDxM8HP1i3bl1DQ8PNmze3bNly4sSJSZYAiRBYQCps3ry5qqrq0qVLr1+/LhaLa9eunWTc3t7e398fQpg5c6aXtgMp5EWjQCrMmDFjw4YN7e3t9fX1GzdurKiomGjZ2dm5ffv2TZs2VVRUnD9/vqWlpa6ubqIxQCL8BgtIi46Ojqampurq6kKhMPa/hOPdunWrsbFx6dKlHR0dz58/r6ura2pqunbt2kfHAEkRWEBajIyMzJs3b86cOXfv3v3o4P79+8uXL6+pqenq6po1a1YIobm5+fTp08ViMZvNfvQIQCIEFpAi+/fvz2QyBw4cGP+np0+fZrPZadOm9fb2zp07d+zm4ODgggULFi9e3NPTM/4IQFIEFpAib968KSsrq6ysnGoIkGoCCwAgMq9pAACITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEJnAAgCITGABAEQmsAAAIhNYAACRCSwAgMgEFgBAZAILACAygQUAEJnAAgCITGABAEQmsAAAIhNYAECqDXX8OnbR8cfQ9p/7QgijTzv/ejccQuj+5c/JTiZHYAEAqfbit+4Qwnc/3f5i3pc/bPxq5PcfS2q+qSiv/L6tb+W3i6Y6nYyS0dHRqTYAAMn7vq1vz+ZFX8+tnGqYvL8BsSJpP8q8FxEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$\\sqrt[3]{x}$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Fonts\n", "The default font is italics for mathematical symbols." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**\n", "This default can be changed using the mathtext.default rcParam. This is useful, for example, to use the same font as regular non-math text for math text, by setting it to regular.\n", "To change fonts, e.g., to write “sin” in a Roman font, enclose the text in a font command:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$s(t) = \\mathcal{A}\\mathrm{sin}(2 \\omega t)$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "More conveniently, many commonly used function names that are typeset in a Roman font have shortcuts. So the expression above could be written as follows:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r'$s(t) = \\mathcal{A}\\sin(2 \\omega t)$'\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here “s” and “t” are variable in italics font (default), “sin” is in Roman font, and the amplitude “A” is in calligraphy font. Note in the example above the caligraphy A is squished into the sin. You can use a spacing command to add a little whitespace between them:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAKvElEQVR4Xu3de1CU9R7H8e+6+CwlF11AUGZAGNQyMalsYBwHYzCU4WIeZZKApEmtnMoYGunmbaixGouxhGbiImOXoSkF9NBwosTLEDmho8KMoYQeaDLQHFsuA7rs+eM5bdvuwirnOYrr+/XXPr/n+/x25vvH7md+z+/Z1VksFgEAAIB2xrkqAAAAwI0hYAEAAGiMgAUAAKAxAhYAAIDGCFgAAAAaI2ABAABojIAFAACgMQIWAACAxghYAAAAGiNgAQAAaIyABQAAoDECFgAAgMYIWAAAABojYAEAAGiMgAUAAKAxAhYAAIDGCFgAAAAaI2ABAABojIAFAACgMQIWcOdqbm728PD45ptvRqiprKxUFOXMmTMj1IwR9fX1Op1u165drgr/5nqaoLnbqKsARoeABdy5cnJy5s+fv2jRItvBsrKyHTt2WA+XLl0aGRm5YcMGh6vdhF0TWltbN27cGB0dHRAQ4O3tPXfu3DfffLO3t3fkSVy607oKQCwA7kgNDQ0iUllZaTfu7++flJRkO1JeXi4izc3NlpticHDwxRdfdFXlhNls7u/vv3btmqvCvzg2YcOGDV5eXunp6Tt27CgqKkpLSxOROXPm9PX1jTCPS7e8qwBuMlawgDtUYWGhn59fYmKi7eDZs2cvXrwYHR1tO7hs2bK77777o48+kpti27ZtFRUVrqqcGDdunKenp16vd1X4F8cmLF++vLOz89NPP33++eefeeaZioqK11577eTJkyUlJSPMM7Kx0FUAN5urBAbgNnblypX8/PzIyEgfHx9vb+9777133bp1Fovl6tWrXl5ejz/+uG1xamqq3efD66+/rp5KSEgIDAx08gZaa2lpURRlwoQJTs/29/dv2rRpxowZd911l6+v7+zZs3Nzc61nDxw4ICJlZWXqYVlZmYh8++237777bnh4uKIo06dP37Vrl7XeaRMcnTx5UkTWrl1rO2g2m6OjoydPnnz58mW7+hMnTojIs88+qx6Oha4CuPk8BICbGhgYWLBgwfnz57Ozs2fNmtXX13fq1KnW1lYRaWpq6unpefjhh23r16xZYzab9+/fX1RU5OXlJSIxMTHqqZiYmNra2tOnT99zzz22lwwNDf3+++8yIqPROG7cdS2WDw0N5efnh4WF/fTTT0NDQ45XrVu3rrS0NCsr66WXXjKbzWfOnPnuu++cTmX16quv9vf3r1271mAwFBUVrVq1KiIiYv78+TJMExx1dnaKSGBgoO3gxx9/3NjYWFxcPHHiRLv6++67T1EU9eajjKqrANyBqwQG4Hb1xRdfiEhtba3jqdLSUhGpqqqyG09JSQkICHCs3717t4h8+eWXduPt7e0uPmJE2tvbHSd0qqCgoKGhITY2VkT++OMPx4JJkyYtWbLEcVzldAVr7ty5AwMD6khnZ6eiKNYlq+GaYOvatWvR0dEeHh6nT5+2Dvb39wcFBYWFhV29etXpVdOmTfPy8rIe3mhXAbgBVrAAt3X58mUROXr0aHx8vN1qUHd3t4gYjUa7S44dOxYVFSUO/Pz8RKSrq8tuPCgoyOUPHAQFBY1coGpraxscHIyJiVGXeUwmk7e3t12Nr69vS0tLc3Pz7Nmznc3hxHPPPacoivo6ODh4xowZ1h9HGK4JttavX9/Y2PjWW2/NnDnTOlhRUXHhwoVt27Z5ePz3I7Snp8dgMIwfP149VBSlr6/PWn+jXQXgBghYgNtavnx5YWHhG2+88eGHHyYnJ6empiYmJqpJS6fTiYjFYrGtv3jxYmdnZ0ZGhuNUaqV6lS1PT8/4+HjH+htlsVhKS0u3bt0qIhMmTBARk8nkWFZQUJCZmRkZGRkeHv7II48kJycnJyePfP8xPDzc9tDPz+/8+fPqa6dNsKW2bs2aNa+88ort+N69e0UkJSVFPWxtbZ05c2Z5eXlWVpY6cunSpYCAAPX1KLoKwA0QsAC3ZTQam5qa6urqampqqqqqiouLY2Ji6uvrFUVRv/7ttk81NTWJyAMPPOA4lVppDQ1WZrNZXQcaQUBAgMsn+z7//POnn35aLbOuYDmWpaamnjt3rqam5uDBg3V1dSUlJQsWLKirq7OuUTlyfGtronLaBKvNmzfn5+dnZ2c7Puh37Ngxg8Fg3Th16NAhEbEucbW1tV26dGnJkiXq4Si6CsANELAAd6bX6xMSEhISEt57771Vq1Z98sknJ06cmDdvnnqLze6XxI8fPy7DRIGzZ8+KiOONuY6OjrCwMMd6W+3t7dOmTRuhoKOjo6Cg4IMPPlCjz7lz52SYgCUiRqMxIyMjIyPDYrHk5eW98847VVVVK1ascFo8MqdNUG3ZsmXLli1ZWVnFxcWOK0y//vprcHCwdXzPnj3y5/0+Edm3b5+IJCUlqYej6CoAN0DAAtxTd3e3v7+/NQTo9Xq9Xq/T6YKDg0UkKirKx8ensbHR9pKff/5ZREJCQhxna2xsDAwMtN2HpPrf92BZLJb333+/oaHBup8pNzd3+/btPT09dpVms9lkMlmf2tPpdOrGJpePMQ7HaRNEZOvWrZs3b87MzCwrK3N6/9HT07O7u3twcFBRlOPHjzc2Nnp6enZ1dUVERJhMpu3bt0+cODE9PV0tHkVXAbgBAhbgnnJzc48cOZKamhoRETE0NFRbW7t///6XX3556tSpIqLX65ctW1ZVVTUwMGAwGNRL1O1KL7zwQkxMjF6vT09PV/NZT0/P4cOHn3rqKcd3GfUerCNHjsyZM8fHxyc/Pz8tLc2aruTPpaDffvvN7hKTyTRlypSUlJSoqKjJkye3t7cXFRVNmjQpOTlZRsVpE3bu3Llp06aQkJD4+PjPPvvMWhwYGGj9O524uLjq6uqVK1cuXLjw7bffzsnJKS8vz8vLW7FiRUlJyS+//LJ7925rEBxFVwG4g2GfLwRwOysvL09MTAwODlYUJSgoKC4uzu5fcX744Qf5+28E9Pb2ZmZm+vv7i0hISIh1XP375FOnTlk0ot4EjIuLW716dU5Ojt3ZqqoqEVm8ePH333+/b98+6/jAwEBeXt68efOMRqOiKKGhodnZ2a2trdYCpz/TcODAAdvJY2NjQ0NDrYeOTXjyySedflTGxsZaazo6OhYtWuTp6TllypSNGzcODQ1VV1eHhIQYDIaHHnqourra5g1vXlcBjCk6y/BP0ABwb4sXL+7t7T18+PDIZQ8++GBoaKi600gTJpNp1qxZnZ2dSUlJX331ld0W9cHBwccee6y+vj4hIaGsrMzX13e4eTRxnU3QnOZdBTCmELCAO1dLS8v9999fU1Pz6KOPDldTWVmZlpbW0tIyffr04WpG4cqVK21tbU63ft9k19MEzf2fugpg7CBgAQAAaOy6/iAMAAAA14+ABQAAoDECFgAAgMYIWAAAABojYAEAAGiMgAUAAKAxAhYAAIDGCFgAAAAaI2ABAABojIAFAACgMQIWAACAxghYAAAAGiNgAQAAaIyABQAAoDECFgAAgMYIWAAAABojYAEAAGiMgAUAAKAxAhYAAIDGCFgAAAAaI2ABAIAxrevrveqLr090ZRb9KCKWf//r6rUBETm459RIV946BCwAADCmXfjnQRFZufPopKl+q5bONR9arwt5dLyH4YnCH2OXRbq6+tbQWSwWVzUAAAC33hOFP67+R+TCQIOrwlvvPxsaqqyUxXchAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r\"$s(t) = \\mathcal{A}\\/\\sin(2 \\omega t)$\"\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The choices available with all fonts are:\n", "\n", "|Command|Result |\n", "|:------|------:|\n", "| \\mathrm{Roman} | $\\mathrm{Roman}$ |\n", "|\\mathit{Italic}| $\\mathit{Italic}$ |\t\n", "|\\mathtt{Typewriter} | $\\mathtt{Typewriter}$ |\t\n", "|\\mathcal{CALLIGRAPHY} | $\\mathcal{CALLIGRAPHY}$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When using the STIX fonts, you also have the choice of:\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\mathbb{blackboard}| $\\mathbb{blackboard}$ |\n", "|\\mathrm{\\mathbb{blackboard}}| $\\mathrm{\\mathbb{blackboard}}$ |\n", "|\\mathfrak{Fraktur}| $\\mathfrak{Fraktur}$ |\n", "|\\mathsf{sansserif}| $\\mathsf{sansserif}$ |\n", "|\\mathrm{\\mathsf{sansserif}}| $\\mathrm{\\mathsf{sansserif}}$ |\n", "|\\mathcircled{circled}| $\\mathcircled{circled}$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Additionally, you can use \\mathdefault{...} or its alias \\mathregular{...} to use the font used for regular text outside of mathtext. There are a number of limitations to this approach, most notably that far fewer symbols will be available, but it can be useful to make math expressions blend well with other text in the plot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Custom fonts\n", "\n", "mathtext also provides a way to use custom fonts for math. This method is fairly tricky to use, and should be considered an experimental feature for patient users only. By setting the rcParam mathtext.fontset to custom, you can then set the following parameters, which control which font file to use for a particular set of math characters.\n", "\n", "|Parameter|Corresponds to|\n", "|:--------|--------:|\n", "|mathtext.it|\\mathit{} or default italic|\n", "|mathtext.rm|\\mathrm{} Roman (upright)|\n", "|mathtext.tt|\\mathtt{} Typewriter (monospace)|\n", "|mathtext.bf|\\mathbf{} bold italic|\n", "|mathtext.cal|\\mathcal{} calligraphic|\n", "|mathtext.sf|\\mathsf{} sans-serif|\n", "\n", "Each parameter should be set to a fontconfig font descriptor (as defined in the yet-to-be-written font chapter).\n", "\n", "The fonts used should have a Unicode mapping in order to find any non-Latin characters, such as Greek. If you want to use a math symbol that is not contained in your custom fonts, you can set the rcParam mathtext.fallback_to_cm to True which will cause the mathtext system to use characters from the default Computer Modern fonts whenever a particular character can not be found in the custom font.\n", "\n", "Note that the math glyphs specified in Unicode have evolved over time, and many fonts may not have glyphs in the correct place for mathtext." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Accents\n", "\n", "An accent command may precede any symbol to add an accent above it. There are long and short forms for some of them.\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\acute a or \\'a| $\\acute a$ |\t\n", "|\\bar a| $\\bar a$|\n", "|\\breve a| $\\breve a$|\n", "|\\ddot a or \\\"a| $\\ddot a$|\n", "|\\dot a or \\.a|$\\dot a$|\n", "|\\grave a or \\`a| $\\grave a$|\n", "|\\hat a or \\^a|$\\hat a$|\n", "|\\tilde a or \\~a|$\\tilde a$|\n", "|\\vec a| $\\vec a$|\n", "|\\overline{abc}| $\\overline{abc}$|\n", "\n", "In addition, there are two special accents that automatically adjust to the width of the symbols below:\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\widehat{xyz}| $\\widehat{xyz}$|\n", "|\\widetilde{xyz}| $\\widetilde{xyz}$ |\n", "\n", "Care should be taken when putting accents on lower-case i’s and j’s. Note that in the following \\imath is used to avoid the extra dot over the i:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAAA8CAIAAAAR7klCAAAC0UlEQVR4Xu3dv0tWYRjH4XPijSaHVAhCXMUhTJ2lFpujJn8ELe1trv4T1aTgoltNEbjlGOJRWzyTIg4Rr86GxmlIaOvxwM3xEa5reofvs3843PCWTdMUAADEuZMaAADQjsACAAgmsAAAggksAIBgAgsAIJjAAgAIJrAAAIIJLACAYAILACCYwAIACCawAACCCSwAgGACCwAgmMACAAgmsAAAggksAIBgAgvISF3Xy8vLdV2nhgBZK5umSW0AutA0zczMzP7+/sTExNbWVlmWqRcAmfIFC8jFysrK0dHR7u7u4eHh2tpaag6QL1+wgCz0+/3x8fH19fXZ2dnNzc3FxcWDg4PBwcHUO4AcCSzgFqvremNjY25ubmxsLLUF6I7AAm4rN1tAttxgAbeVmy0gW75gAdmZnp6+vLzc29v7z8bNFpAzgQXk5eLiYmBgYH5+fnV1NbUFyJTAArJzfn7e6/V6vV5qCJApgQUAEMyRO5CXpaWlsixPT09Twytt9wAdEFhAXqqqGh0dHRoaSg2vtN0DdEBgAXmpqmpycjK1+qftHqADAgvIyMnJSb/fv34wtd0DdENgARnZ2dkpiuL6wdR2D9ANgQVkpKqqoiimpqZSwytt9wDdEFhARqqqGh4eHhkZSQ2vtN0DdENgARlpe7Hedg/QDYEF5OLs7Oz4+Pj6wdR2D9AZgQXk4u9B1fWDqe0eoDP+KgcAIJgvWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAMIEFABBMYAEABBNYAADBBBYAQDCBBQAQTGABAAQTWAAAwQQWAEAwgQUAEExgAQAEE1gAAMEEFgBAMIEFAGTt55dPf3982fv56sN2URTN8ebF5a+iKL5+/P6/lzdHYAEAWfvx+WtRFHPvvt1/OPT6+ePfW2/L0Wd3e/cW3m8/efEo9fpmlE3TpDYAADdv4f32m5ePnj64lxrevD+zm+O3VL66WAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "text.string = r\"$\\hat i\\ \\ \\hat \\imath$\"\n", "update()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Symbols\n", "\n", "You can also use a large number of the TeX symbols, as in \\infty, \\leftarrow, \\sum, \\int." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lower-case Greek\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\alpha |$\\alpha$|\n", "|\\beta| $\\beta$|\n", "|\\chi| $\\chi$|\n", "|\\delta| $\\delta$|\n", "|\\digamma| $\\digamma$|\n", "|\\epsilon |$\\epsilon$|\n", "|\\eta |$\\eta$|\n", "|\\gamma| $\\gamma$|\n", "|\\iota |$\\iota$ |\n", "|\\kappa |$\\kappa$|\n", "|\\lambda |$\\lambda$|\n", "|\\mu |$\\mu$|\n", "|\\nu| $\\nu$|\n", "|\\omega |$\\omega$|\n", "|\\phi| $\\phi$|\n", "|\\pi |$\\pi$|\n", "|\\psi| $\\psi$|\n", "|\\rho |$\\rho$|\n", "|\\sigma |$\\sigma$|\n", "|\\tau| $\\tau$|\n", "|\\theta |$\\theta$|\n", "|\\upsilon| $\\upsilon$|\n", "|\\varepsilon |$\\varepsilon$|\n", "|\\varkappa |$\\varkappa$|\n", "|\\varphi| $\\varphi$|\n", "|\\varpi| $\\varpi$|\n", "|\\varrho |$\\varrho$|\n", "|\\varsigma| $\\varsigma$|\n", "|\\vartheta| $\\vartheta$|\n", "|\\xi| $\\xi$|\n", "|\\zeta |$\\zeta$|\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Upper-case Greek\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\Delta | $\\Delta$| \n", "|\\Gamma |$\\Gamma$ |\n", "|\\Lambda| $\\Lambda$ | \n", "|\\Omega| $\\Omega$| \n", "|\\Phi |$\\Phi$ | \n", "|\\Pi| $\\Pi$|\n", "|\\Psi |$\\Psi$ |\n", "|\\Sigma |$\\Sigma$ |\n", "|\\Theta |$\\Theta$ |\n", "|\\Upsilon| $\\Upsilon$| \n", "|\\Xi |$\\Xi$ |\n", "|\\mho |$\\mho$|\n", "|\\nabla |$\\nabla$|\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hebrew\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\aleph| $\\aleph$ |\n", "|\\beth |$\\beth$ |\n", "|\\daleth |$\\daleth$ |\n", "|\\gimel| $\\gimel$|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Delimiters\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|/ |$/$ |\n", "|[ |$[$ |\n", "|\\Downarrow |$\\Downarrow$ |\n", "|\\Uparrow |$\\Uparrow$ |\n", "|\\Vert| $\\Vert$|\n", "|\\backslash |$\\backslash$|\n", "|\\downarrow| $\\downarrow$ |\n", "|\\langle |$\\langle$ |\n", "|\\lceil |$\\lceil$ |\n", "|\\lfloor| $\\lfloor$| \n", "|\\llcorner |$\\llcorner$|\n", "|\\lrcorner| $\\lrcorner$|\n", "|\\rangle |$\\rangle$ |\n", "|\\rceil |$\\rceil$ |\n", "|\\rfloor |$\\rfloor$| \n", "|\\ulcorner |$\\ulcorner$ |\n", "|\\uparrow| $\\uparrow$ |\n", "|\\urcorner| $\\urcorner$|\n", "|\\vert| $\\vert$ |\n", "|\\{| $\\{$ |\n", "|\\| | $\\|$ |\n", "|\\}| $\\}$ |\n", "|]| $]$ |\n", "|$|$| $|$|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Big symbols\n", "\n", "|Command|Result|\n", "|:------|------:|\n", "|\\bigcap| $\\bigcap$ | \n", "|\\bigcup |$\\bigcup$ |\n", "|\\bigodot |$\\bigodot$| \n", "|\\bigoplus |$\\bigoplus$| \n", "|\\bigotimes |$\\bigotimes$|\n", "|\\biguplus |$\\biguplus$ |\n", "|\\bigvee |$\\bigvee$ |\n", "|\\bigwedge| $\\bigwedge$| \n", "|\\coprod |$\\coprod$ |\n", "|\\int |$\\int$|\n", "|\\oint |$\\oint$|\n", "|\\prod |$\\prod$| \n", "|\\sum |$\\sum$|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Standard function names\n", "\n", "|Command|Result|\n", "|:-------|-------:|\n", "| \\Pr | $\\Pr$ |\n", "| \\arccos | $\\arccos$ |\n", "| \\arcsin | $\\arcsin$ |\n", "| \\arctan | $\\arctan$ |\n", "| \\arg | $\\arg$ |\n", "| \\cos | $\\cos$ |\n", "| \\cosh | $\\cosh$ |\n", "| \\cot | $\\cot$ |\n", "| \\coth | $\\coth$ |\n", "| \\csc | $\\csc$ |\n", "| \\deg | $\\deg$ |\n", "| \\det | $\\det$ |\n", "| \\dim | $\\dim$ |\n", "| \\exp | $\\exp$ |\n", "| \\gcd | $\\gcd$ |\n", "| \\hom | $\\hom$ |\n", "| \\inf | $\\inf$ |\n", "| \\ker | $\\ker$ |\n", "| \\lg | $\\lg$ |\n", "| \\lim | $\\lim$ |\n", "| \\liminf | $\\liminf$ |\n", "| \\limsup | $\\limsup$ |\n", "| \\ln | $\\ln$ |\n", "| \\log | $\\log$ |\n", "| \\max | $\\max$ |\n", "| \\min | $\\min$ |\n", "| \\sec | $\\sec$ |\n", "| \\sin | $\\sin$ |\n", "| \\sinh | $\\sinh$ |\n", "| \\sup | $\\sup$ |\n", "| \\tan | $\\tan$ |\n", "| \\tanh | $\\tanh$ |\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Binary Opertions and Relationships Symbols\n", "\n", "|Command|Result|\n", "|:-------|-------:|\n", "| \\Bumpeq | $\\Bumpeq$ |\n", "| \\Cap | $\\Cap$ |\n", "| \\Cup | $\\Cup$ |\n", "| \\Doteq | $\\Doteq$ |\n", "| \\Join | $\\Join$ |\n", "| \\Subset | $\\Subset$ |\n", "| \\Supset | $\\Supset$ |\n", "| \\Vdash | $\\Vdash$ |\n", "| \\Vvdash | $\\Vvdash$ |\n", "| \\approx | $\\approx$ |\n", "| \\approxeq | $\\approxeq$ |\n", "| \\ast | $\\ast$ |\n", "| \\asymp | $\\asymp$ |\n", "| \\backepsilon | $\\backepsilon$ |\n", "| \\backsim | $\\backsim$ |\n", "| \\backsimeq | $\\backsimeq$ |\n", "| \\barwedge | $\\barwedge$ |\n", "| \\because | $\\because$ |\n", "| \\between | $\\between$ |\n", "| \\bigcirc | $\\bigcirc$ |\n", "| \\bigtriangledown | $\\bigtriangledown$ |\n", "| \\bigtriangleup | $\\bigtriangleup$ |\n", "| \\blacktriangleleft | $\\blacktriangleleft$ |\n", "| \\blacktriangleright | $\\blacktriangleright$ |\n", "| \\bot | $\\bot$ |\n", "| \\bowtie | $\\bowtie$ |\n", "| \\boxdot | $\\boxdot$ |\n", "| \\boxminus | $\\boxminus$ |\n", "| \\boxplus | $\\boxplus$ |\n", "| \\boxtimes | $\\boxtimes$ |\n", "| \\bullet | $\\bullet$ |\n", "| \\bumpeq | $\\bumpeq$ |\n", "| \\cap | $\\cap$ |\n", "| \\cdot | $\\cdot$ |\n", "| \\circ | $\\circ$ |\n", "| \\circeq | $\\circeq$ |\n", "| \\coloneq | $\\coloneq$ |\n", "| \\cong | $\\cong$ |\n", "| \\cup | $\\cup$ |\n", "| \\curlyeqprec | $\\curlyeqprec$ |\n", "| \\curlyeqsucc | $\\curlyeqsucc$ |\n", "| \\curlyvee | $\\curlyvee$ |\n", "| \\curlywedge | $\\curlywedge$ |\n", "| \\dag | $\\dag$ |\n", "| \\dashv | $\\dashv$ |\n", "| \\ddag | $\\ddag$ |\n", "| \\diamond | $\\diamond$ |\n", "| \\div | $\\div$ |\n", "| \\divideontimes | $\\divideontimes$ |\n", "| \\doteq | $\\doteq$ |\n", "| \\doteqdot | $\\doteqdot$ |\n", "| \\dotplus | $\\dotplus$ |\n", "| \\doublebarwedge | $\\doublebarwedge$ |\n", "| \\eqcirc | $\\eqcirc$ |\n", "| \\eqcolon | $\\eqcolon$ |\n", "| \\eqsim | $\\eqsim$ |\n", "| \\eqslantgtr | $\\eqslantgtr$ |\n", "| \\eqslantless | $\\eqslantless$ |\n", "| \\equiv | $\\equiv$ |\n", "| \\fallingdotseq | $\\fallingdotseq$ |\n", "| \\frown | $\\frown$ |\n", "| \\geq | $\\geq$ |\n", "| \\geqq | $\\geqq$ |\n", "| \\geqslant | $\\geqslant$ |\n", "| \\gg | $\\gg$ |\n", "| \\ggg | $\\ggg$ |\n", "| \\gnapprox | $\\gnapprox$ |\n", "| \\gneqq | $\\gneqq$ |\n", "| \\gnsim | $\\gnsim$ |\n", "| \\gtrapprox | $\\gtrapprox$ |\n", "| \\gtrdot | $\\gtrdot$ |\n", "| \\gtreqless | $\\gtreqless$ |\n", "| \\gtreqqless | $\\gtreqqless$ |\n", "| \\gtrless | $\\gtrless$ |\n", "| \\gtrsim | $\\gtrsim$ |\n", "| \\in | $\\in$ |\n", "| \\intercal | $\\intercal$ |\n", "| \\leftthreetimes | $\\leftthreetimes$ |\n", "| \\leq | $\\leq$ |\n", "| \\leqq | $\\leqq$ |\n", "| \\leqslant | $\\leqslant$ |\n", "| \\lessapprox | $\\lessapprox$ |\n", "| \\lessdot | $\\lessdot$ |\n", "| \\lesseqgtr | $\\lesseqgtr$ |\n", "| \\lesseqqgtr | $\\lesseqqgtr$ |\n", "| \\lessgtr | $\\lessgtr$ |\n", "| \\lesssim | $\\lesssim$ |\n", "| \\ll | $\\ll$ |\n", "| \\lll | $\\lll$ |\n", "| \\lnapprox | $\\lnapprox$ |\n", "| \\lneqq | $\\lneqq$ |\n", "| \\lnsim | $\\lnsim$ |\n", "| \\ltimes | $\\ltimes$ |\n", "| \\mid | $\\mid$ |\n", "| \\models | $\\models$ |\n", "| \\mp | $\\mp$ |\n", "| \\nVDash | $\\nVDash$ |\n", "| \\nVdash | $\\nVdash$ |\n", "| \\napprox | $\\napprox$ |\n", "| \\ncong | $\\ncong$ |\n", "| \\ne | $\\ne$ |\n", "| \\neq | $\\neq$ |\n", "| \\neq | $\\neq$ |\n", "| \\nequiv | $\\nequiv$ |\n", "| \\ngeq | $\\ngeq$ |\n", "| \\ngtr | $\\ngtr$ |\n", "| \\ni | $\\ni$ |\n", "| \\nleq | $\\nleq$ |\n", "| \\nless | $\\nless$ |\n", "| \\nmid | $\\nmid$ |\n", "| \\notin | $\\notin$ |\n", "| \\nparallel | $\\nparallel$ |\n", "| \\nprec | $\\nprec$ |\n", "| \\nsim | $\\nsim$ |\n", "| \\nsubset | $\\nsubset$ |\n", "| \\nsubseteq | $\\nsubseteq$ |\n", "| \\nsucc | $\\nsucc$ |\n", "| \\nsupset | $\\nsupset$ |\n", "| \\nsupseteq | $\\nsupseteq$ |\n", "| \\ntriangleleft | $\\ntriangleleft$ |\n", "| \\ntrianglelefteq | $\\ntrianglelefteq$ |\n", "| \\ntriangleright | $\\ntriangleright$ |\n", "| \\ntrianglerighteq | $\\ntrianglerighteq$ |\n", "| \\nvDash | $\\nvDash$ |\n", "| \\nvdash | $\\nvdash$ |\n", "| \\odot | $\\odot$ |\n", "| \\ominus | $\\ominus$ |\n", "| \\oplus | $\\oplus$ |\n", "| \\oslash | $\\oslash$ |\n", "| \\otimes | $\\otimes$ |\n", "| \\parallel | $\\parallel$ |\n", "| \\perp | $\\perp$ |\n", "| \\pitchfork | $\\pitchfork$ |\n", "| \\pm | $\\pm$ |\n", "| \\prec | $\\prec$ |\n", "| \\precapprox | $\\precapprox$ |\n", "| \\preccurlyeq | $\\preccurlyeq$ |\n", "| \\preceq | $\\preceq$ |\n", "| \\precnapprox | $\\precnapprox$ |\n", "| \\precnsim | $\\precnsim$ |\n", "| \\precsim | $\\precsim$ |\n", "| \\propto | $\\propto$ |\n", "| \\rightthreetimes | $\\rightthreetimes$ |\n", "| \\risingdotseq | $\\risingdotseq$ |\n", "| \\rtimes | $\\rtimes$ |\n", "| \\sim | $\\sim$ |\n", "| \\simeq | $\\simeq$ |\n", "| \\slash | $\\slash$ |\n", "| \\smile | $\\smile$ |\n", "| \\sqcap | $\\sqcap$ |\n", "| \\sqcup | $\\sqcup$ |\n", "| \\sqsubset | $\\sqsubset$ |\n", "| \\sqsubset | $\\sqsubset$ |\n", "| \\sqsubseteq | $\\sqsubseteq$ |\n", "| \\sqsupset | $\\sqsupset$ |\n", "| \\sqsupset | $\\sqsupset$ |\n", "| \\sqsupseteq | $\\sqsupseteq$ |\n", "| \\star | $\\star$ |\n", "| \\subset | $\\subset$ |\n", "| \\subseteq | $\\subseteq$ |\n", "| \\subseteqq | $\\subseteqq$ |\n", "| \\subsetneq | $\\subsetneq$ |\n", "| \\subsetneqq | $\\subsetneqq$ |\n", "| \\succ | $\\succ$ |\n", "| \\succapprox | $\\succapprox$ |\n", "| \\succcurlyeq | $\\succcurlyeq$ |\n", "| \\succeq | $\\succeq$ |\n", "| \\succnapprox | $\\succnapprox$ |\n", "| \\succnsim | $\\succnsim$ |\n", "| \\succsim | $\\succsim$ |\n", "| \\supset | $\\supset$ |\n", "| \\supseteq | $\\supseteq$ |\n", "| \\supseteqq | $\\supseteqq$ |\n", "| \\supsetneq | $\\supsetneq$ |\n", "| \\supsetneqq | $\\supsetneqq$ |\n", "| \\therefore | $\\therefore$ |\n", "| \\times | $\\times$ |\n", "| \\top | $\\top$ |\n", "| \\triangleleft | $\\triangleleft$ |\n", "| \\trianglelefteq | $\\trianglelefteq$ |\n", "| \\triangleq | $\\triangleq$ |\n", "| \\triangleright | $\\triangleright$ |\n", "| \\trianglerighteq | $\\trianglerighteq$ |\n", "| \\uplus | $\\uplus$ |\n", "| \\vDash | $\\vDash$ |\n", "| \\varpropto | $\\varpropto$ |\n", "| \\vartriangleleft | $\\vartriangleleft$ |\n", "| \\vartriangleright | $\\vartriangleright$ |\n", "| \\vdash | $\\vdash$ |\n", "| \\vee | $\\vee$ |\n", "| \\veebar | $\\veebar$ |\n", "| \\wedge | $\\wedge$ |\n", "| \\wr | $\\wr$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Arrow symbols\n", "\n", " |Command|Result|\n", "|:-------|-------:|\n", "| \\Downarrow | $\\Downarrow$ |\n", "| \\Leftarrow | $\\Leftarrow$ |\n", "| \\Leftrightarrow | $\\Leftrightarrow$ |\n", "| \\Lleftarrow | $\\Lleftarrow$ |\n", "| \\Longleftarrow | $\\Longleftarrow$ |\n", "| \\Longleftrightarrow | $\\Longleftrightarrow$ |\n", "| \\Longrightarrow | $\\Longrightarrow$ |\n", "| \\Lsh | $\\Lsh$ |\n", "| \\Nearrow | $\\Nearrow$ |\n", "| \\Nwarrow | $\\Nwarrow$ |\n", "| \\Rightarrow | $\\Rightarrow$ |\n", "| \\Rrightarrow | $\\Rrightarrow$ |\n", "| \\Rsh | $\\Rsh$ |\n", "| \\Searrow | $\\Searrow$ |\n", "| \\Swarrow | $\\Swarrow$ |\n", "| \\Uparrow | $\\Uparrow$ |\n", "| \\Updownarrow | $\\Updownarrow$ |\n", "| \\circlearrowleft | $\\circlearrowleft$ |\n", "| \\circlearrowright | $\\circlearrowright$ |\n", "| \\curvearrowleft | $\\curvearrowleft$ |\n", "| \\curvearrowright | $\\curvearrowright$ |\n", "| \\dashleftarrow | $\\dashleftarrow$ |\n", "| \\dashrightarrow | $\\dashrightarrow$ |\n", "| \\downarrow | $\\downarrow$ |\n", "| \\downdownarrows | $\\downdownarrows$ |\n", "| \\downharpoonleft | $\\downharpoonleft$ |\n", "| \\downharpoonright | $\\downharpoonright$ |\n", "| \\hookleftarrow | $\\hookleftarrow$ |\n", "| \\hookrightarrow | $\\hookrightarrow$ |\n", "| \\leadsto | $\\leadsto$ |\n", "| \\leftarrow | $\\leftarrow$ |\n", "| \\leftarrowtail | $\\leftarrowtail$ |\n", "| \\leftharpoondown | $\\leftharpoondown$ |\n", "| \\leftharpoonup | $\\leftharpoonup$ |\n", "| \\leftleftarrows | $\\leftleftarrows$ |\n", "| \\leftrightarrow | $\\leftrightarrow$ |\n", "| \\leftrightarrows | $\\leftrightarrows$ |\n", "| \\leftrightharpoons | $\\leftrightharpoons$ |\n", "| \\leftrightsquigarrow | $\\leftrightsquigarrow$ |\n", "| \\leftsquigarrow | $\\leftsquigarrow$ |\n", "| \\longleftarrow | $\\longleftarrow$ |\n", "| \\longleftrightarrow | $\\longleftrightarrow$ |\n", "| \\longmapsto | $\\longmapsto$ |\n", "| \\longrightarrow | $\\longrightarrow$ |\n", "| \\looparrowleft | $\\looparrowleft$ |\n", "| \\looparrowright | $\\looparrowright$ |\n", "| \\mapsto | $\\mapsto$ |\n", "| \\multimap | $\\multimap$ |\n", "| \\nLeftarrow | $\\nLeftarrow$ |\n", "| \\nLeftrightarrow | $\\nLeftrightarrow$ |\n", "| \\nRightarrow | $\\nRightarrow$ |\n", "| \\nearrow | $\\nearrow$ |\n", "| \\nleftarrow | $\\nleftarrow$ |\n", "| \\nleftrightarrow | $\\nleftrightarrow$ |\n", "| \\nrightarrow | $\\nrightarrow$ |\n", "| \\nwarrow | $\\nwarrow$ |\n", "| \\rightarrow | $\\rightarrow$ |\n", "| \\rightarrowtail | $\\rightarrowtail$ |\n", "| \\rightharpoondown | $\\rightharpoondown$ |\n", "| \\rightharpoonup | $\\rightharpoonup$ |\n", "| \\rightleftarrows | $\\rightleftarrows$ |\n", "| \\rightleftarrows | $\\rightleftarrows$ |\n", "| \\rightleftharpoons | $\\rightleftharpoons$ |\n", "| \\rightleftharpoons | $\\rightleftharpoons$ |\n", "| \\rightrightarrows | $\\rightrightarrows$ |\n", "| \\rightrightarrows | $\\rightrightarrows$ |\n", "| \\rightsquigarrow | $\\rightsquigarrow$ |\n", "| \\searrow | $\\searrow$ |\n", "| \\swarrow | $\\swarrow$ |\n", "| \\to | $\\to$ |\n", "| \\twoheadleftarrow | $\\twoheadleftarrow$ |\n", "| \\twoheadrightarrow | $\\twoheadrightarrow$ |\n", "| \\uparrow | $\\uparrow$ |\n", "| \\updownarrow | $\\updownarrow$ |\n", "| \\updownarrow | $\\updownarrow$ |\n", "| \\upharpoonleft | $\\upharpoonleft$ |\n", "| \\upharpoonright | $\\upharpoonright$ |\n", "| \\upuparrows | $\\upuparrows$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Miscellaneous symbols\n", "\n", " |Command|Result|\n", "|:-------|-------:|\n", "| \\$ | $\\$$ |\n", "| \\AA | $\\AA$ |\n", "| \\Finv | $\\Finv$ |\n", "| \\Game | $\\Game$ |\n", "| \\Im | $\\Im$ |\n", "| \\P | $\\P$ |\n", "| \\Re | $\\Re$ |\n", "| \\S | $\\S$ |\n", "| \\angle | $\\angle$ |\n", "| \\backprime | $\\backprime$ |\n", "| \\bigstar | $\\bigstar$ |\n", "| \\blacksquare | $\\blacksquare$ |\n", "| \\blacktriangle | $\\blacktriangle$ |\n", "| \\blacktriangledown | $\\blacktriangledown$ |\n", "| \\cdots | $\\cdots$ |\n", "| \\checkmark | $\\checkmark$ |\n", "| \\circledR | $\\circledR$ |\n", "| \\circledS | $\\circledS$ |\n", "| \\clubsuit | $\\clubsuit$ |\n", "| \\complement | $\\complement$ |\n", "| \\copyright | $\\copyright$ |\n", "| \\ddots | $\\ddots$ |\n", "| \\diamondsuit | $\\diamondsuit$ |\n", "| \\ell | $\\ell$ |\n", "| \\emptyset | $\\emptyset$ |\n", "| \\eth | $\\eth$ |\n", "| \\exists | $\\exists$ |\n", "| \\flat | $\\flat$ |\n", "| \\forall | $\\forall$ |\n", "| \\hbar | $\\hbar$ |\n", "| \\heartsuit | $\\heartsuit$ |\n", "| \\hslash | $\\hslash$ |\n", "| \\iiint | $\\iiint$ |\n", "| \\iint | $\\iint$ |\n", "| \\iint | $\\iint$ |\n", "| \\imath | $\\imath$ |\n", "| \\infty | $\\infty$ |\n", "| \\jmath | $\\jmath$ |\n", "| \\ldots | $\\ldots$ |\n", "| \\measuredangle | $\\measuredangle$ |\n", "| \\natural | $\\natural$ |\n", "| \\neg | $\\neg$ |\n", "| \\nexists | $\\nexists$ |\n", "| \\oiiint | $\\oiiint$ |\n", "| \\partial | $\\partial$ |\n", "| \\prime | $\\prime$ |\n", "| \\sharp | $\\sharp$ |\n", "| \\spadesuit | $\\spadesuit$ |\n", "| \\sphericalangle | $\\sphericalangle$ |\n", "| \\ss | $\\ss$ |\n", "| \\triangledown | $\\triangledown$ |\n", "| \\varnothing | $\\varnothing$ |\n", "| \\vartriangle | $\\vartriangle$ |\n", "| \\vdots | $\\vdots$ |\n", "| \\wp | $\\wp$ |\n", "| \\yen | $\\yen$ |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example\n", "Here is an example illustrating many of these features in context." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy\n", "import vcs\n", "import cdms2\n", "import MV2\n", "\n", "x=vcs.init(bg=True,geometry=(400,400))\n", "a = cdms2.createAxis(numpy.arange(0.0, 2.0, 0.01))\n", "#a.id = \"time\"\n", "#a.units=\"second since 2017-09-25\"\n", "\n", "s = numpy.sin(2*numpy.pi*a[:])\n", "s = cdms2.createVariable(s,axes=[a,])\n", "s.title = r'$\\alpha_i > \\beta_i$'\n", "s.id = \"volts\"\n", "s.units=\"mV\"\n", "\n", "# Graphic method\n", "y = vcs.create1d()\n", "y.datawc_y1 = -1.1\n", "y.datawc_y2 = 1.1\n", "y.datawc_x1 = -0.1\n", "y.datawc_x2 = 2.1\n", "y.linecolor=\"blue\"\n", "y.markercolor=[0,0,0,0]\n", "\n", "# template\n", "t = vcs.createtemplate()\n", "to = vcs.createtextorientation()\n", "to.height = 20\n", "t.title.textorientation = to\n", "\n", "x.plot(s,y,t)\n", "text = vcs.createtext()\n", "text.x = [1.2]\n", "text.y = [-.5]\n", "text.string = [r'$\\sum_{i=0}^\\infty x_i$']\n", "text.height = 55\n", "text.color=\"dark grey\"\n", "text.halign = \"center\"\n", "# match text viewport to data area\n", "text.viewport = [t.data.x1,t.data.x2,t.data.y1,t.data.y2]\n", "# match text worldcoordinate to data's one\n", "text.worldcoordinate = [y.datawc_x1,y.datawc_x2,y.datawc_y1,y.datawc_y2]\n", "x.plot(text)\n", "\n", "text2 = vcs.createtext()\n", "# match text viewport to data area\n", "text2.viewport = [t.data.x1,t.data.x2,t.data.y1,t.data.y2]\n", "# match text worldcoordinate to data's one\n", "text2.worldcoordinate = [y.datawc_x1,y.datawc_x2,y.datawc_y1,y.datawc_y2]\n", "text2.x = [.75]\n", "text2.y = [.75]\n", "text2.halign=\"center\"\n", "text2.height = 45\n", "text2.color= \"red\"\n", "text2.string = [r'$\\mathcal{A}\\mathrm{sin}(2 \\omega t)$']\n", "x.plot(text2)" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:nightly2]", "language": "python", "name": "conda-env-nightly2-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.14" } }, "nbformat": 4, "nbformat_minor": 2 }