CINXE.COM
HowTo in nLab
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> HowTo in nLab </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="robots" content="index,follow" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link href="/stylesheets/instiki.css?1676280126" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/mathematics.css?1660229990" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/syntax.css?1660229990" media="all" rel="stylesheet" type="text/css" /> <link href="/stylesheets/nlab.css?1676280126" media="all" rel="stylesheet" type="text/css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/dreampulse/computer-modern-web-font@master/fonts.css"/> <style type="text/css"> h1#pageName, div.info, .newWikiWord a, a.existingWikiWord, .newWikiWord a:hover, [actiontype="toggle"]:hover, #TextileHelp h3 { color: #226622; } a:visited.existingWikiWord { color: #164416; } </style> <style type="text/css"><!--/*--><![CDATA[/*><!--*/ .toc ul {margin: 0; padding: 0;} .toc ul ul {margin: 0; padding: 0 0 0 10px;} .toc li > p {margin: 0} .toc ul li {list-style-type: none; position: relative;} .toc div {border-top:1px dotted #ccc;} .rightHandSide h2 {font-size: 1.5em;color:#008B26} table.plaintable { border-collapse:collapse; margin-left:30px; border:0; } .plaintable td {border:1px solid #000; padding: 3px;} .plaintable th {padding: 3px;} .plaintable caption { font-weight: bold; font-size:1.1em; text-align:center; margin-left:30px; } /* Query boxes for questioning and answering mechanism */ div.query{ background: #f6fff3; border: solid #ce9; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; max-height: 20em; overflow: auto; } /* Standout boxes for putting important text */ div.standout{ background: #fff1f1; border: solid black; border-width: 2px 1px; padding: 0 1em; margin: 0 1em; overflow: auto; } /* Icon for links to n-category arXiv documents (commented out for now i.e. disabled) a[href*="http://arxiv.org/"] { background-image: url(../files/arXiv_icon.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 22px; } */ /* Icon for links to n-category cafe posts (disabled) a[href*="http://golem.ph.utexas.edu/category"] { background-image: url(../files/n-cafe_5.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pdf files (disabled) a[href$=".pdf"] { background-image: url(../files/pdficon_small.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ /* Icon for links to pages, etc. -inside- pdf files (disabled) a[href*=".pdf#"] { background-image: url(../files/pdf_entry.gif); background-repeat: no-repeat; background-position: right bottom; padding-right: 25px; } */ a.existingWikiWord { color: #226622; } a.existingWikiWord:visited { color: #226622; } a.existingWikiWord[title] { border: 0px; color: #aa0505; text-decoration: none; } a.existingWikiWord[title]:visited { border: 0px; color: #551111; text-decoration: none; } a[href^="http://"] { border: 0px; color: #003399; } a[href^="http://"]:visited { border: 0px; color: #330066; } a[href^="https://"] { border: 0px; color: #003399; } a[href^="https://"]:visited { border: 0px; color: #330066; } div.dropDown .hide { display: none; } div.dropDown:hover .hide { display:block; } div.clickDown .hide { display: none; } div.clickDown:focus { outline:none; } div.clickDown:focus .hide, div.clickDown:hover .hide { display: block; } div.clickDown .clickToReveal, div.clickDown:focus .clickToHide { display:block; } div.clickDown:focus .clickToReveal, div.clickDown .clickToHide { display:none; } div.clickDown .clickToReveal:after { content: "A(Hover to reveal, click to "hold")"; font-size: 60%; } div.clickDown .clickToHide:after { content: "A(Click to hide)"; font-size: 60%; } div.clickDown .clickToHide, div.clickDown .clickToReveal { white-space: pre-wrap; } .un_theorem, .num_theorem, .un_lemma, .num_lemma, .un_prop, .num_prop, .un_cor, .num_cor, .un_defn, .num_defn, .un_example, .num_example, .un_note, .num_note, .un_remark, .num_remark { margin-left: 1em; } span.theorem_label { margin-left: -1em; } .proof span.theorem_label { margin-left: 0em; } :target { background-color: #BBBBBB; border-radius: 5pt; } /*]]>*/--></style> <script src="/javascripts/prototype.js?1660229990" type="text/javascript"></script> <script src="/javascripts/effects.js?1660229990" type="text/javascript"></script> <script src="/javascripts/dragdrop.js?1660229990" type="text/javascript"></script> <script src="/javascripts/controls.js?1660229990" type="text/javascript"></script> <script src="/javascripts/application.js?1660229990" type="text/javascript"></script> <script src="/javascripts/page_helper.js?1660229990" type="text/javascript"></script> <script src="/javascripts/thm_numbering.js?1660229990" type="text/javascript"></script> <script type="text/x-mathjax-config"> <!--//--><![CDATA[//><!-- MathJax.Ajax.config.path["Contrib"] = "/MathJax"; MathJax.Hub.Config({ MathML: { useMathMLspacing: true }, "HTML-CSS": { scale: 90, extensions: ["handle-floats.js"] } }); MathJax.Hub.Queue( function () { var fos = document.getElementsByTagName('foreignObject'); for (var i = 0; i < fos.length; i++) { MathJax.Hub.Typeset(fos[i]); } }); //--><!]]> </script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- window.addEventListener("DOMContentLoaded", function () { var div = document.createElement('div'); var math = document.createElementNS('http://www.w3.org/1998/Math/MathML', 'math'); document.body.appendChild(div); div.appendChild(math); // Test for MathML support comparable to WebKit version https://trac.webkit.org/changeset/203640 or higher. div.setAttribute('style', 'font-style: italic'); var mathml_unsupported = !(window.getComputedStyle(div.firstChild).getPropertyValue('font-style') === 'normal'); div.parentNode.removeChild(div); if (mathml_unsupported) { // MathML does not seem to be supported... var s = document.createElement('script'); s.src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=MML_HTMLorMML-full"; document.querySelector('head').appendChild(s); } else { document.head.insertAdjacentHTML("beforeend", '<style>svg[viewBox] {max-width: 100%}</style>'); } }); //--><!]]> </script> <link href="https://ncatlab.org/nlab/atom_with_headlines" rel="alternate" title="Atom with headlines" type="application/atom+xml" /> <link href="https://ncatlab.org/nlab/atom_with_content" rel="alternate" title="Atom with full content" type="application/atom+xml" /> <script type="text/javascript"> document.observe("dom:loaded", function() { generateThmNumbers(); }); </script> </head> <body> <div id="Container"> <div id="Content"> <h1 id="pageName"> <span style="float: left; margin: 0.5em 0.25em -0.25em 0"> <svg xmlns="http://www.w3.org/2000/svg" width="1.872em" height="1.8em" viewBox="0 0 190 181"> <path fill="#226622" d="M72.8 145c-1.6 17.3-15.7 10-23.6 20.2-5.6 7.3 4.8 15 11.4 15 11.5-.2 19-13.4 26.4-20.3 3.3-3 8.2-4 11.2-7.2a14 14 0 0 0 2.9-11.1c-1.4-9.6-12.4-18.6-16.9-27.2-5-9.6-10.7-27.4-24.1-27.7-17.4-.3-.4 26 4.7 30.7 2.4 2.3 5.4 4.1 7.3 6.9 1.6 2.3 2.1 5.8-1 7.2-5.9 2.6-12.4-6.3-15.5-10-8.8-10.6-15.5-23-26.2-31.8-5.2-4.3-11.8-8-18-3.7-7.3 4.9-4.2 12.9.2 18.5a81 81 0 0 0 30.7 23c3.3 1.5 12.8 5.6 10 10.7-2.5 5.2-11.7 3-15.6 1.1-8.4-3.8-24.3-21.3-34.4-13.7-3.5 2.6-2.3 7.6-1.2 11.1 2.8 9 12.2 17.2 20.9 20.5 17.3 6.7 34.3-8 50.8-12.1z"/> <path fill="#a41e32" d="M145.9 121.3c-.2-7.5 0-19.6-4.5-26-5.4-7.5-12.9-1-14.1 5.8-1.4 7.8 2.7 14.1 4.8 21.3 3.4 12 5.8 29-.8 40.1-3.6-6.7-5.2-13-7-20.4-2.1-8.2-12.8-13.2-15.1-1.9-2 9.7 9 21.2 12 30.1 1.2 4 2 8.8 6.4 10.3 6.9 2.3 13.3-4.7 17.7-8.8 12.2-11.5 36.6-20.7 43.4-36.4 6.7-15.7-13.7-14-21.3-7.2-9.1 8-11.9 20.5-23.6 25.1 7.5-23.7 31.8-37.6 38.4-61.4 2-7.3-.8-29.6-13-19.8-14.5 11.6-6.6 37.6-23.3 49.2z"/> <path fill="#193c78" d="M86.3 47.5c0-13-10.2-27.6-5.8-40.4 2.8-8.4 14.1-10.1 17-1 3.8 11.6-.3 26.3-1.8 38 11.7-.7 10.5-16 14.8-24.3 2.1-4.2 5.7-9.1 11-6.7 6 2.7 7.4 9.2 6.6 15.1-2.2 14-12.2 18.8-22.4 27-3.4 2.7-8 6.6-5.9 11.6 2 4.4 7 4.5 10.7 2.8 7.4-3.3 13.4-16.5 21.7-16 14.6.7 12 21.9.9 26.2-5 1.9-10.2 2.3-15.2 3.9-5.8 1.8-9.4 8.7-15.7 8.9-6.1.1-9-6.9-14.3-9-14.4-6-33.3-2-44.7-14.7-3.7-4.2-9.6-12-4.9-17.4 9.3-10.7 28 7.2 35.7 12 2 1.1 11 6.9 11.4 1.1.4-5.2-10-8.2-13.5-10-11.1-5.2-30-15.3-35-27.3-2.5-6 2.8-13.8 9.4-13.6 6.9.2 13.4 7 17.5 12C70.9 34 75 43.8 86.3 47.4z"/> </svg> </span> <span class="webName">nLab</span> HowTo </h1> <div class="navigation"> <span class="skipNav"><a href='#navEnd'>Skip the Navigation Links</a> | </span> <span style="display:inline-block; width: 0.3em;"></span> <a href="/nlab/show/HomePage" accesskey="H" title="Home page">Home Page</a> | <a href="/nlab/all_pages" accesskey="A" title="List of all pages">All Pages</a> | <a href="/nlab/latest_revisions" accesskey="U" title="Latest edits and page creations">Latest Revisions</a> | <a href="https://nforum.ncatlab.org/discussion/2528/#Item_71" title="Discuss this page in its dedicated thread on the nForum" style="color: black">Discuss this page</a> | <form accept-charset="utf-8" action="/nlab/search" id="navigationSearchForm" method="get"> <fieldset class="search"><input type="text" id="searchField" name="query" value="Search" style="display:inline-block; float: left;" onfocus="this.value == 'Search' ? this.value = '' : true" onblur="this.value == '' ? this.value = 'Search' : true" /></fieldset> </form> <span id='navEnd'></span> </div> <div id="revision"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xml:lang="en" lang="en"> <head><meta http-equiv="Content-type" content="application/xhtml+xml;charset=utf-8" /><title>Contents</title></head> <body> <div class="rightHandSide"> <div class="toc clickDown" tabindex="0"> <h3 id="contents" class="clickToReveal">Contents</h3> <h3 id="contents_2" class="clickToHide" tabindex="0">Contents</h3> <div class="hide"><div> <p><strong><a class="existingWikiWord" href="/nlab/show/HomePage">nLab</a></strong></p> <ul> <li> <p>Content</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/mathematics">Mathematics</a></li> <li><a class="existingWikiWord" href="/nlab/show/physics">Physics</a></li> <li><a class="existingWikiWord" href="/nlab/show/philosophy">Philosophy</a></li> </ul> </li> <li> <p>Resources</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/mathematics+resources">Mathematics Resources</a></li> <li><a class="existingWikiWord" href="/nlab/show/physics+resources">Physics Resources</a></li> <li><a class="existingWikiWord" href="/nlab/show/philosophy+resources">Philosophy Resources</a></li> </ul> </li> <li> <p>Community</p> <ul> <li> <p><a href="http://nforum.ncatlab.org/">nForum</a></p> <ul> <li><a href="https://nforum.ncatlab.org/5/">Latest Changes</a></li> </ul> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/HowTo">HowTo</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/FAQ">FAQ</a></p> </li> <li> <p><span class="newWikiWord">Contributors<a href="/nlab/new/Contributors">?</a></span></p> </li> <li> <p><a href="http://ncatlab.org/nlab/file_list">Uploaded Files</a></p> </li> <li> <p><a class="existingWikiWord" href="/nlab/show/Sandbox">Sandbox</a></p> </li> </ul> </li> </ul> <div> <p> <a href="/nlab/edit/contents">Edit this sidebar</a> </p> </div></div></div> </div> </div> <p>This page gives hints for how to edit <a class="existingWikiWord" href="/nlab/show/HomePage">nLab</a>-pages.</p> <p>If you feel you can most easily start by modifying an example, look at the <em><a class="existingWikiWord" href="/nlab/show/template+page">template page</a></em> and do experiments in the <em><a class="existingWikiWord" href="/nlab/show/Sandbox">Sandbox</a></em>.</p> <p>The following provides more details. For technical help with special features of Instiki (including peculiarities with itex), HTML and XML, and assorted specifics of the nLab, see also the <a class="existingWikiWord" href="/nlab/show/FAQ">FAQ</a>.</p> <h1 id="contents_3">Contents</h1> <div class='maruku_toc'> <ul> <li><a href='#getting_started'>Getting Started</a></li> <ul> <li><a href='#how_to_edit_the_nlab'>How to edit the nLab</a></li> <li><a href='#newpage'>How to start a new page</a></li> <li><a href='#signing_an_edit'>Signing an edit</a></li> <li><a href='#naming'>Naming conventions</a></li> <li><a href='#merging'>How to merge pages</a></li> <li><a href='#how_to_remove_a_page'>How to remove a page</a></li> </ul> <li><a href='#HowToOrganizeAndWriteContent'>How to organize and write content</a></li> <ul> <li><a href='#PageOrganization'>Page organization</a></li> <li><a href='#DefinitionTheoremProofEnvironments'>Definition-, Theorem-, Proof environments</a></li> <ul> <li><a href='#LatexSyntax'>LaTeX-style syntax</a></li> <li><a href='#older_syntax'>Older syntax</a></li> </ul> <li><a href='#CrossLinks'>Cross-links</a></li> <li><a href='#MathematicalConventions'>Mathematical conventions</a></li> </ul> <li><a href='#special_typesetting_features'>Special Typesetting Features</a></li> <ul> <li><a href='#HowToMakeLinksToSubsections'>How to make links to subsections of a page</a></li> <ul> <li><a href='#links_to_sections'>Links to sections</a></li> <li><a href='#definitionpropositiontheoremnumbering'>Definition/Proposition/Theorem-numbering</a></li> <li><a href='#equation_numbering'>Equation numbering</a></li> <li><a href='#table_of_contents'>Table of contents</a></li> </ul> <li><a href='#HowToCiteAndRecordReferences'>How to cite and record references</a></li> <li><a href='#query'>How to make comments and ask questions</a></li> <li><a href='#standout'>How to make a standout box</a></li> <li><a href='#how_to_include_one_page_within_another'>How to include one page within another</a></li> <li><a href='#HowToUploadFiles'>How to upload files</a></li> <li><a href='#how_to_use_redirects'>How to use redirects</a></li> <li><a href='#ParenthesisInHyperlinks'>How to handle parentheses in hyperlink URLs</a></li> <li><a href='#how_to_add_a_floating_table_of_contents'>How to add a floating table of contents</a></li> <li><a href='#diagrams'>How to draw commutative diagrams and pictures</a></li> <ul> <li><a href='#TikZ'>TikZ</a></li> <ul> <li><a href='#examples'>Examples</a></li> </ul> <li><a href='#xymatrix'>Xymatrix</a></li> <ul> <li><a href='#examples_2'>Examples</a></li> </ul> <li><a href='#older_workaround_for_commutative_diagrams'>Older workaround for commutative diagrams</a></li> </ul> <li><a href='#ImageFiles'>Image files</a></li> <li><a href='#how_to_centre'>How to centre</a></li> </ul> <li><a href='#other_sources_of_information'>Other Sources of Information</a></li> <ul> <li><a href='#instiki_howto'>Instiki HowTo</a></li> <li><a href='#survey_of_available_math_typesetting_commands'>Survey of available math typesetting commands</a></li> </ul> <li><a href='#technical'>Technical</a></li> <ul> <li><a href='#software'>Software required to use the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab</a></li> <li><a href='#how_to_search_the_nlab__nforum_from_firefox'>How to search the nLab & nForum from firefox</a></li> <li><a href='#how_to_edit_nlab_pages_in_your_favorite_text_editor'>How to edit nLab pages in your favorite text editor</a></li> <li><a href='#how_to_print_a_page_from_the_nlab'>How to print a page from the nLab</a></li> <li><a href='#how_to_customize_the_nlab'>How to customize the nLab</a></li> <li><a href='#download'>How to download a local copy of the nLab</a></li> </ul> </ul> </div> <h2 id="getting_started">Getting Started</h2> <h3 id="how_to_edit_the_nlab">How to edit the nLab</h3> <p>Hit “edit page” to see how pages are coded. Use the <a class="existingWikiWord" href="/nlab/show/Sandbox">Sandbox</a> to warm up. The key point is that links to other pages are placed in [[double brackets]].</p> <p>There is no feature to preview your edits. Instead, submit them and then edit again. Two successive submissions with the same signature and made within 30 minutes of each other count as one.</p> <h3 id="newpage">How to start a new page</h3> <p>To create a new page on the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab first make an existing page request a link to it, and then click on that requested link.</p> <p>In detail:</p> <ol> <li> <p><strong>Create a link request.</strong></p> <ol> <li> <p>Identify any existing <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab page which should eventually refer to your new page.</p> <p>(At least one such page ought to exist, if your new page is related to anything, but if you just cannot think of any, use the <em><a class="existingWikiWord" href="/nlab/show/Sandbox">Sandbox</a></em> page).</p> </li> <li> <p>Hit “edit” on that existing page.</p> </li> <li> <p>In the resulting edit pane, add the string</p> <p>[[your new page name]]</p> <p>at some sensible point in the source code.</p> <p>(By default: in the “Related entries”-section.)</p> </li> <li> <p>Hit “submit” below the edit pane.</p> </li> <li> <p>See the existing page render again, now with your edit included. If your new page name did not exist yet as a page, you will see that string appear, in the existing entry, in gray with a clickable question mark behind it.</p> </li> </ol> </li> <li> <p><strong>Satisfy the link request.</strong></p> <ol> <li> <p>Click on that question mark to open the edit pane for the new page.</p> </li> <li> <p>Edit.</p> </li> <li> <p>Once you hit “Submit” below that edit pane, the new page will appear.</p> </li> </ol> <p>There is no preview mechanism: Just keep cycling through “Submit” and “Edit” until you are satisfied.</p> </li> </ol> <p><em>Watch out</em>: the name of a page is case sensitive, so make your link lowercase if it comes at the beginning of a sentence. ([[like this|Like this]].) We loosely agreed to try to follow that and some other naming conventions; see <a href="#naming">below</a>.</p> <p>Use <a class="existingWikiWord" href="/nlab/show/redirects">redirects</a> to allow for other casing to be used when linking to the page elsewhere in the nLab.</p> <h3 id="signing_an_edit">Signing an edit</h3> <p>When you edit a page, you should put your name (with normal capitalisation and spacing) in the box after ‘Submit as’. If you don’t, then your contribution will be credited to ‘Anonymous’ (formerly the <a class="existingWikiWord" href="/nlab/show/AnonymousCoward">AnonymousCoward</a>).</p> <p>Once you edit a page for the first time, your name will appear at the bottom, grayed out with a question mark since there is no page with your name yet. You may take this as an invitation to create a user page and tell us about yourself. But if you don’t want to or don’t have the time right now, you can forget about this. If you just want to show up on <a href="http://www.ncatlab.org/nlab/list/people">category: people</a>, then you make a page containing only ‘category: people’ (or someone else may do this for you).</p> <p>To create your user page, simply click the question mark that appears next to your name at the bottom of the page after making a modification and add content to the edit box that appears. If you’d like to make a user page prior to modifying an existing page, you can do so by making some trivial modification to the <a class="existingWikiWord" href="/nlab/show/Sandbox">Sandbox</a>, which will put your name at the bottom of the page where you can click the question mark. (Or hack the URL.)</p> <h3 id="naming">Naming conventions</h3> <p>The following naming conventions for new entries are not set in stone, but we're following them for now. Changing page titles results in unnecessary work for the <span class="newWikiWord">lab elves<a href="/nlab/new/lab+elves">?</a></span>, so you should try to follow these if possible (or dispute them if not). It is most important to follow these in links to pages that don't yet exist, so that the pages will be created at the correct title (and only once).</p> <ul> <li> <p>Page titles should contain only ASCII characters.</p> <ul> <li>Examples: <code>[[omega-category]]</code> instead of <code>[[$\omega$-category]]</code> or <code>[[∞-category]]</code>.</li> <li id="tricks">Tricks: To produce ‘<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>ω</mi></mrow><annotation encoding="application/x-tex">\omega</annotation></semantics></math>-<a class="existingWikiWord" href="/nlab/show/omega-category">category</a>’, try <code>$\omega$-[[omega-category|category]]</code>. To produce ‘<a class="existingWikiWord" href="/nlab/show/omega-category">∞-category</a>’, try <code>[[omega-category|∞-category]]</code>. (The former has proper math-mode formatting, while the latter has proper link scope.) Unfortunately, <code>[[omega-category|$\omega$-category]]</code> does not work. You can also use <a class="existingWikiWord" href="/nlab/show/redirects">redirects</a> to make <code>[[∞-category]]</code> produce ‘<a class="existingWikiWord" href="/nlab/show/%E2%88%9E-category">∞-category</a>’, but only when the page already exists.</li> <li>Reason: It’s possible to put non-ASCII characters in a name, but not ones generated by iTeX or &…; character entities, so this can be difficult, depending on your browser. To keep things easy, therefore, use only ASCII characters in links. This also helps with creating automatic redirects (which are found by removing accents on letters).</li> <li>Exception: We tend to use common European letters (such as ‘ö’, more or less the characters in Latin 1) in names, especially of people (such as <a class="existingWikiWord" href="/nlab/show/Kurt+G%C3%B6del">Kurt Gödel</a>), even though we’re not really supposed to.</li> </ul> </li> <li> <p>Page titles should be singular nouns.</p> <ul> <li> <p>Examples: Use <code>[[category]]</code> instead of <code>[[categories]]</code>, <code>[[faithful functor]]</code> instead of <code>[[faithful]]</code>, and <code>[[categorification]]</code> instead of <code>[[categorify]]</code> or <code>[[categorified]]</code>.</p> </li> <li> <p>Tricks: To produce ‘<a class="existingWikiWord" href="/nlab/show/category">categories</a>’, try <code>[[category|categories]]</code>. To produce ‘<a class="existingWikiWord" href="/nlab/show/faithful+functor">faithful</a> <a class="existingWikiWord" href="/nlab/show/endofunctor">endofunctor</a>’, try <code>[[faithful functor|faithful]] [[endofunctor]] </code>. Again, you can use redirects to make <code>[[categories]]</code> produce ‘<a class="existingWikiWord" href="/nlab/show/categories">categories</a>’, if the page already exists.</p> </li> <li> <p>Reason: We want only one page on a given concept, regardless of variations in grammar.</p> </li> <li> <p>Exception: Recently we have started to have page titles that are complete sentences (without capitalization or punctuation) that state a simple theorem (typically a universal affirmation in the Aristotelian sense) such as <a class="existingWikiWord" href="/nlab/show/compact+Hausdorff+rings+are+profinite">compact Hausdorff rings are profinite</a> or <a class="existingWikiWord" href="/nlab/show/derivations+of+smooth+functions+are+vector+fields">derivations of smooth functions are vector fields</a>.</p> </li> </ul> </li> <li id="PageTitlesShouldBeUncapitalized"> <p>Page titles should be uncapitalized, except for words that are always capitalized.</p> <ul> <li> <p>Examples: Use <code>[[homotopy theory]]</code> instead of <code>[[Homotopy Theory]]</code>, but use <code>[[Lie algebra]]</code>.</p> </li> <li> <p>Tricks: To produce ‘<a class="existingWikiWord" href="/nlab/show/homotopy+theory">Homotopy theory</a> is important!’, try <code>[[homotopy theory|Homotopy theory]] is important!</code>. If you do this a lot, then you can again create a redirect, if the page exists.</p> </li> <li> <p>Reason: We want only one page on a given concept, regardless of variations in grammar.</p> </li> </ul> </li> <li> <p>Except as contradicted above, use standard American English spelling conventions.</p> <ul> <li> <p>Examples: Use <code>[[center]]</code> instead of <code>[[centre]]</code> and hyphens as shown in the ASCII-only requirement.</p> </li> <li> <p>Tricks: To produce ‘<a class="existingWikiWord" href="/nlab/show/center">centre</a>’, try <code>[[center|centre]]</code>. Or, again, make a redirect.</p> </li> <li> <p>Reason: Much of this is written by <a class="existingWikiWord" href="/nlab/show/Urs+Schreiber">Urs Schreiber</a>, who uses American English spelling (for the most part, at least).</p> </li> </ul> </li> <li> <p>Regardless of the above, pages named after specific categories should use the capitalised singular abbreviated form.</p> <ul> <li> <p>Examples: Use <code>[[Set]]</code> instead <code>[[Sets]]</code> and <code>[[Cat]]</code> instead of <code>[[Category]]</code>.</p> </li> <li> <p>Tricks: Although things like ‘<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo lspace="0em" rspace="thinmathspace">Disc</mo><mo>:</mo><mo lspace="0em" rspace="thinmathspace">Set</mo><mo>→</mo><mo lspace="0em" rspace="thinmathspace">Cat</mo></mrow><annotation encoding="application/x-tex">\Disc: \Set \to \Cat</annotation></semantics></math>’ work best in math mode and even ‘<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mo lspace="0em" rspace="thinmathspace">Set</mo></mrow><annotation encoding="application/x-tex">\Set</annotation></semantics></math>’ alone looks most consistent that way (with proper math-mode formatting), you have to make the link ‘<a class="existingWikiWord" href="/nlab/show/Set">Set</a>’ outside of math mode.</p> </li> </ul> </li> </ul> <h3 id="merging">How to merge pages</h3> <p>It happens at times that you may wish the material in existing pages <code>A</code> and <code>B</code>, would be merged into a single page. (This occurs notably after any user accidentally created a new page unaware that another page on the topic was already in existence.)</p> <p>In most cases it will be best to raise the issue on the <a href="https://nforum.ncatlab.org/">nForum</a>, check if regulars agree that the pages ought to be merged, and hope that one of them takes care of it.</p> <p>If you do decide to merge on your own, here are instructions.</p> <blockquote> <p>The basic idea is evident: Merge the content, delete one of the entries and make its previous name redirect to the remaining page. But the redirecting takes some care; and a complication is that <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab pages cannot be deleted (not by regular users, anyway) but only “orphaned”.</p> </blockquote> <p>Suppose that <code>A</code> is the name of the page to be kept and and that <code>B</code> is the name of the one to be deleted. Then:</p> <ol> <li> <p>Edit <code>A</code></p> <ol> <li> <p>so that it looks like the intended merged entry.</p> </li> <li> <p>Add the line “[[!redirects B]]” to the bottom.</p> <p>And in case the page <code>B</code> itself has [[!redirects X]]-lines in its source, copy them all over to <code>A</code>.</p> </li> <li> <p>Submit.</p> </li> </ol> </li> <li> <p>Edit <code>B</code></p> <ol> <li> <p>by first clearing its content (e.g. with a keystroke such as <code>Ctrl-A</code> <code>Del</code>).</p> </li> <li> <p>Click the checkbox ‘Change page name.’, which will bring up a new field ‘New name:’.</p> </li> <li> <p>In that field, append “<code>> history</code>” to the string “<code>B</code>”, so that the new page name becomes “<code>B > history</code>”.</p> <blockquote> <p>(The idea is to change to any name that is neither coincides with an existing nor with a future entry.)</p> </blockquote> <p>Do <em>not</em> submit the edit <em>yet</em>.</p> </li> <li> <p>Before finishing we need to work around what the wiki software thinks is intended behaviour:</p> <ol> <li> <p>Click in the big edit box – this will automatically add the line “[[!redirects B]]”.</p> <blockquote> <p>(The wiki software is trying to be helpful, not knowing that we want to delete the entry for good.)</p> </blockquote> </li> <li> <p>Delete that line (to ensure that all requests for <code>B</code> will now take the reader to <code>A</code>),</p> </li> <li> <p>and instead add “<code>see</code> [[A]]”.</p> <blockquote> <p>(This just in case anyone ever comes across this page in the future – which should not actually happen, due to the [[!redirects B]]-command meanwhile added to <code>A</code>.)</p> </blockquote> </li> </ol> </li> <li> <p>Finally ready to submit this quasi-deletion of <code>B</code>.</p> <p>But since the page’s name was changed in the process, the software will require announcing this edit in the box below the edit box. So enter there something like:</p> <p>“<code>As we discussed, I am orphaning this page and have merged its previous content into page "A".</code>”</p> </li> <li> <p>Submit.</p> </li> </ol> </li> </ol> <h3 id="how_to_remove_a_page">How to remove a page</h3> <p>Please make a request at the <a href="https://nforum.ncatlab.org/">nForum</a>.</p> <h2 id="HowToOrganizeAndWriteContent">How to organize and write content</h2> <h3 id="PageOrganization">Page organization</h3> <p>We encourage authors to structure pages by sections and subsections as indicated in the</p> <ul> <li><a class="existingWikiWord" href="/nlab/show/Template+page">Template page</a>.</li> </ul> <p>Every page starts out tiny and may not seem to need a structure by subsections. But it will grow and eventually the information it provides may be hard to <em>recognize</em> without some global structure guiding the reader’s attention. After all, the natural evolution of articles makes the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab function more like an encyclopedia than a novel. Moreover, even with little material there in the beginning, a structure by subsections helps the collaborative process, as it makes it easer to decide for new authors where to add what.</p> <h3 id="DefinitionTheoremProofEnvironments">Definition-, Theorem-, Proof environments</h3> <p>You should include actual mathematics in appropriate environments, as familiar from textbooks and research articles in mathematics.</p> <h4 id="LatexSyntax">LaTeX-style syntax</h4> <p>As of mid-2018, one can use environments exactly as in LaTeX.</p> <p>For example the code</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mrow><mtable><mtr><mtd><mpadded width="0"><mrow><mo>\</mo><mtext>begin</mtext><mo stretchy="false">{</mo><mtext>theorem</mtext><mo stretchy="false">}</mo></mrow></mpadded></mtd></mtr> <mtr><mtd></mtd> <mtd><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mpadded width="0"><mrow><mo>\</mo><mtext>label</mtext><mo stretchy="false">{</mo><mtext>SomeTheorem</mtext><mo stretchy="false">}</mo></mrow></mpadded></mtd></mtr> <mtr><mtd></mtd> <mtd><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mpadded width="0"><mtext>Some theorem.</mtext></mpadded></mtd></mtr> <mtr><mtd><mpadded width="0"><mrow><mo>\</mo><mtext>end</mtext><mo stretchy="false">{</mo><mtext>theorem</mtext><mo stretchy="false">}</mo></mrow></mpadded></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \array{ \mathrlap{ \backslash\text{begin}\{\text{theorem}\} } \\ & \;\; \mathrlap{\backslash\text{label}\{\text{SomeTheorem}\}} \\ & \;\; \mathrlap{\text{Some theorem.}} \\ \mathrlap{\backslash\text{end}\{\text{theorem}\}} } </annotation></semantics></math></div> <p>produces:</p> <blockquote> <p> <div class='num_theorem' id='SomeTheorem'> <h6>Theorem</h6> <p>Some theorem.</p> </div> </p> </blockquote> <p>The available environments are listed below. Some environments can be specified in several ways.</p> <table> <thead> <tr><th>Environment</th><th>Syntax</th></tr> </thead> <tbody> <tr> <td rowspan="2">Definition</td> <td>definition</td> </tr> <tr> <td>defn</td> </tr> <tr> <td rowspan="2">Theorem</td> <td>theorem</td> </tr> <tr> <td>thm</td> </tr> <tr> <td>Proof</td> <td>proof</td> </tr> <tr> <td rowspan="3">Proposition</td> <td>proposition</td> </tr> <tr> <td>prop</td> </tr> <tr> <td>prpn</td> </tr> <tr> <td rowspan="2">Remark</td> <td>remark</td> </tr> <tr> <td>rmk</td> </tr> <tr> <td rowspan="2">Corollary</td> <td>corollary</td> </tr> <tr> <td>cor</td> </tr> <tr> <td rowspan="2">Lemma</td> <td>lemma</td> </tr> <tr> <td>lem</td> </tr> <tr> <td rowspan="2">Notation</td> <td>notation</td> </tr> <tr> <td>notn</td> </tr> <tr> <td>Terminology</td> <td>terminology</td> </tr> <tr> <td rowspan="2">Conjecture</td> <td>conjecture</td> </tr> <tr> <td>conj</td> </tr> <tr> <td>Scholium</td> <td>scholium</td> </tr> <tr> <td rowspan="2">Assumption</td> <td>assumption</td> </tr> <tr> <td>assum</td> </tr> <tr> <td>Example</td> <td>example</td> </tr> <tr> <td>Exercise</td> <td>exercise</td> </tr> <tr> <td>Statement</td> <td>statement</td> </tr> </tbody> </table> <p>Labels for the purpose of referencing work exactly as in LaTeX: put <code>\label{SomeTheorem}</code> anywhere inside the environment block. Later, one can reference it as Theorem <a class="maruku-ref" href="#SomeTheorem"></a>. Again, see the <a href="https://ncatlab.org/nlab/source/HowTo">source</a> of this page for how to produce this reference.</p> <p>Any character but closing brace is allowed in labels here (note that this is different from equation labels below).</p> <h4 id="older_syntax">Older syntax</h4> <p>An older syntax for this is described at <a href="http://golem.ph.utexas.edu/wiki/instiki/show/Theorems">Instiki theorem environments</a>:</p> <p>A <a class="existingWikiWord" href="/nlab/show/definition">definition</a> should be enclosed in</p> <pre><code> +-- {: .num_defn} ###### Definition (Definition goes here) =--</code></pre> <p>A <a class="existingWikiWord" href="/nlab/show/proposition">proposition</a> or <a class="existingWikiWord" href="/nlab/show/theorem">theorem</a> should be enclosed in</p> <pre><code> +-- {: .num_prop} ###### Proposition (Proposition goes here) =--</code></pre> <p>or</p> <pre><code> +-- {: .num_theorem} ###### Theorem (Theorem goes here) =--</code></pre> <p>and their <a class="existingWikiWord" href="/nlab/show/proof">proof</a> in</p> <pre><code> +-- {: .proof} ###### Proof (Proof goes here.) =--</code></pre> <p>A corollary in</p> <pre><code> +-- {: .num_cor} ###### Corollary (Corollary goes here) =--</code></pre> <p>and a remark in</p> <pre><code> +-- {: .num_remark} ###### Remark (Remark goes here) =--</code></pre> <p>Beware:</p> <ol> <li> <p>Contrary to the behaviour with the LaTeX syntax described above, you do need to use the labels exactly as given above. That is, it needs to be <code>defn</code>, <code>thm</code>, and <code>cor</code>; neither <code>definition</code> nor <code>theorem</code> nor <code>corollary</code> (nor other abbreviations such as <code>def</code>) will be recognized by the software.</p> </li> <li id="WhitespaceAfterMarukuEnvironment"> <p>There <em>must</em> be a whitespace after the closing <code>=--</code>. Otherwise the parser will not recognize the end of the environment and will in fact ignore its content and <em>all</em> following code (unless and until it happens to spot an unpaired <code>=--</code> further down the line).</p> </li> </ol> <p>Hence best to instead use the above <a href="#LatexSyntax">LaTeX syntax</a>, where possible.</p> <h3 id="CrossLinks">Cross-links</h3> <p>A central point of the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab is that information is <em>linked</em>. Little value is added to the world when information is added to an <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab page if it is not interlinked there with other <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab entries such as to make sure that users who might look for it will actually eventually find it by following some links.</p> <p>Therefore you should hyperlink the central keywords in what you write, by enclosing them in square brackets. Ideally, each and every keyword would be hyperlinked, certainly when it occurs first. Don’t assume that the reader has the same background as you have. If you explain something by invoking other technical terms, at least provide links to <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab entries where these other terms are defined.</p> <p>Analogously, when you create a new page, make sure that it is <em>linked to</em> from at least one relevant other page. An entry on a new kind of <em>manifold</em> deserves to be linked to from a list of “related entries” at <em><a class="existingWikiWord" href="/nlab/show/manifold">manifold</a></em>, for instance.</p> <p>Apart from guiding users to your entry this way, notably this will also help search engines to index the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab and make your new entry appear listed when people search for something related.</p> <h3 id="MathematicalConventions">Mathematical conventions</h3> <p>There is really no such thing as a “global convention on the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab” for ambiguous meaning of mathematical terms and symbols. Unlike in a text book by a single or a handful of authors, there is just no way that we can even try to enforce global conventions. Typically each author decides on his or her own.</p> <p>Therefore the general rule is: whatever you write in some entry, try to make sure that you provide enough context that the relevant conventions are clear. If you find yourself using some notation for the first time on a page and are worrying if readers will read it as intended, be sure to add a parenthetical remark (where we use here the convention that…) or similar.</p> <p>If you feel that you need to refer to a specific convention repeatedly over several <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab pages, just create another page that states the convention, and then simply point to that page.</p> <p>One example of this that we have is the <em><a class="existingWikiWord" href="/nlab/show/implicit+infinity-category+theory+convention">implicit infinity-category theory convention</a></em>-page.</p> <h2 id="special_typesetting_features">Special Typesetting Features</h2> <h3 id="HowToMakeLinksToSubsections">How to make links to subsections of a page</h3> <h4 id="links_to_sections">Links to sections</h4> <p>When you create a section header, you can add an HTML anchor tag to it with the following syntax:</p> <pre><code> ## Heading {#anchorname}</code></pre> <p><strong>Note that the tag must be placed at the end.</strong> Then you can make a link to it using the syntax:</p> <pre><code> [[some page#anchorname|link text]]</code></pre> <p>If the link is to the same page then the page name can be omitted by using the syntax:</p> <pre><code> [link text](#anchorname)</code></pre> <p><strong>Note that a single bracket link with only an anchor doesn’t function correctly when viewing a particular revision or a difference between revisions.</strong></p> <p id="strange">Strangely single bracket link texts allow math expressions while double bracket texts don’t. For example</p> <pre><code>[$Set^\to$](Sierpinski+topos) vs [[Sierpinski topos|$Set^\to$]] vs [$Set^\to$](https://ncatlab.org/nlab/show/Sierpinski+topos).</code></pre> <p>produces</p> <div class="standout"> <p><a href="Sierpinski+topos"><math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Set</mi> <mo>→</mo></msup></mrow><annotation encoding="application/x-tex">Set^\to</annotation></semantics></math></a> vs <a class="existingWikiWord" href="/nlab/show/Sierpinski+topos"><math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"> <semantics> <mrow> <msup><mi>Set</mi> <mo>→</mo></msup> </mrow> <annotation encoding="application/x-tex">Set^\to</annotation> </semantics> </math></a> vs <a href="https://ncatlab.org/nlab/show/Sierpinski+topos"><math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><msup><mi>Set</mi> <mo>→</mo></msup></mrow><annotation encoding="application/x-tex">Set^\to</annotation></semantics></math></a> .</p> </div> <p>Of course, you can link to it from outside the nLab by adding <code>http://ncatlab.org</code> at the beginning of the link.</p> <p>Note that if you skip the first step, it is still <em>possible</em> to create a link to a subsection, since (at least if the page has a table of contents) every section on the page is automatically assigned an HTML anchor by Instiki. However, using such links is <em>not</em> encouraged, since the automatically generated anchor names will change whenever the page is rearranged and go away if a manual anchor name is added, which will cause such links to break.</p> <p id="thispgh">The same type of syntax enables one to link to arbitrary text blocks such as paragraphs or list elements, such as a <a href="#thispgh">link</a> to this paragraph itself. <strong>Note that these tags must be at the start of the text</strong>. In particular, a bibliographic reference can be made by first by creating an anchor:</p> <pre><code> * {#xyz} Reference </code></pre> <p>which can then be linked to from within the same page by writing</p> <pre><code> [link text](#xyz). </code></pre> <h4 id="definitionpropositiontheoremnumbering">Definition/Proposition/Theorem-numbering</h4> <p>When you write a numbered definition or proposition or theorem, you can also simultaneously create an anchor.</p> <p>In the <a href="#LatexSyntax">LaTeX-style syntax</a>, use <code>\label</code> inside the theorem/etc. environment as usual.</p> <p>In the older syntax, write:</p> <pre><code> +-- {: .num_defn #definitionname} ###### Definition ... =-- +-- {: .num_prop #propname} ###### Proposition ... =-- +-- {: .num_theorem #theoremname} ###### Theorem ... =--</code></pre> <p>Then you can link to it in the same ways:</p> <pre><code> [[some page#theoremname|see this theorem]] [see this theorem](#theoremname)</code></pre> <p>When you link to a theorem on the <em>same</em> page, however, it’s better to use the <code>\ref</code> syntax (without the space between <code>\ref</code> and <code>{</code>, it is present here just to avoid it being parsed):</p> <pre><code> see Theorem \ref {theoremname}</code></pre> <p>This inserts the number as well as creating a hyperlink, and will also work properly when the page is exported to LaTeX.</p> <h4 id="equation_numbering">Equation numbering</h4> <p>To make an equation be automatically numbered use angular brackets instead of dollar signs</p> <pre><code> \[ \exp(\pi i) + 1 = 0 \]</code></pre> <p>To refer to this numbered equation, add a label</p> <pre><code> \[ \label{SomeEquation} \exp(\pi i) + 1 = 0 \]</code></pre> <p>and then refer to it later in the text by using <code>\eqref</code> just like in LaTeX:</p> <pre><code> See equation \eqref {SomeEquation}.</code></pre> <p>(Leave out the space after <code>\eqref</code>, which is present here just to avoid it being parsed.)</p> <p>There is also an older, non-TeX syntax for equation references (use an actual colon <code>:</code> in place of <code>-colon-</code>, which is used here to prevent the example from being parsed):</p> <pre><code> See equation (eq-colon-SomeEquation).</code></pre> <p id="LabelNames"> Only word characters are allowed in LaTeX display labels. In particular, the hyphen character <code>-</code> cannot be used. This is in contrast to labels for theorem environments. This is due to use of different parsers. Instead of \label{foo-bar}, consider \label{FooBar}.</p> <h4 id="table_of_contents">Table of contents</h4> <p>Since 2019, the recommended way to make a table of contents for a page (and almost any page should have a table of contents) is to write the following at the top of the page, or wherever the table of contents is to appear, without the space between the backslash and <code>tableofcontents</code>.</p> <pre><code> \ tableofcontents</code></pre> <p>An older method is to write</p> <pre><code> * table of contents {: toc} </code></pre> <p>(including the line break!) at the position where the table of contents is to appear. You may want to label the table of contents by writing</p> <pre><code> # Contents # * table of contents {: toc}</code></pre> <p>or (at the top of the page)</p> <pre><code> # [page title] # * table of contents {: toc}</code></pre> <p>(which also gives the opportunity to use a more nicely formatted page title if special characters or mathematical formatting are wanted).</p> <p>The items in the table of contents will be the section headlines marked by</p> <pre><code> ## top level headline ## ### second level headline ### etc.</code></pre> <p>Instead of “table of contents” after the asterisk, you can write anything you like: this line will not be displayed but is still required to kick in the CSS that makes this possible.</p> <p>It is important that the section headings not contain anything that shouldn’t go in the table of contents. Whilst formatting is allowed, wiki-links are not (since then the entry in the table of contents would have a link inside of a link).</p> <h3 id="HowToCiteAndRecordReferences">How to cite and record references</h3> <p>At the end of each <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab entry should be a section</p> <pre><code> ## References</code></pre> <p>or sometimes</p> <pre><code> ## Literature</code></pre> <p>which contains a bullet list of relevant references. A standard way to format an entry is this list is the following:</p> <pre><code> * {#LastnameAnotherlastnameYear} [[Firstname Lastname]], [[Anotherfirstname Anotherlastname]], _Title_, Journal **volume** issue (year) firstpage-lastpage &lbrack;[arXiv:xxxx.yyyyy](https://arxiv.org/abs/xxxx.yyyyy), [doi:xyz](http://doi.xyz)&rbrack;</code></pre> <p>which comes out as</p> <blockquote> <ul> <li id="LastnameAnotherlastnameYear"><a class="existingWikiWord" href="/nlab/show/HowTo">Firstname Lastname</a>, <a class="existingWikiWord" href="/nlab/show/HowTo">Anotherfirstname Anotherlastname</a>, <em>Title</em>, Journal <strong>volume</strong> issue (year) firstpage-lastpage [<a href="https://arxiv.org/abs/xxxx.yyyyy">arXiv:xxxx.yyyyy</a>, <a href="http://doi.xyz">doi:xyz</a>]</li> </ul> </blockquote> <p>Given such an item in the list of references, a standard way to reference it from the main text of the entry is as follows:</p> <pre><code> see ([Lastname & Anotherlastname Year, theorem 1.3](#LastnameAnotherlastnameYear))</code></pre> <p>which comes out at</p> <blockquote> <p>see (<a href="#LastnameAnotherlastnameYear">Lastname & Anotherlastname Year, theorem 1.3</a>)</p> </blockquote> <p>This produces a hyperlink, and in fact such that following it brings up the above bullet item highlighted by a gray box.</p> <h3 id="query">How to make comments and ask questions</h3> <p>In general, the place to make comments and ask questions is at the <a href="https://nforum.ncatlab.org/discussions/?CategoryID=0">nForum</a>. Each page has a ‘Discuss this page’ link in the menu at the top. Clicking on this will take to the thread for discussion of the page in the ‘Latest changes’ category, if it already exists. Just add a comment to the thread. If it does not exist, you will be taken to the nForum home page. Just start a new discussion there, selecting ‘Latest changes’ as the category and with title the same as the nLab page, and make your comment/ask your question.</p> <p>Whilst questions are answered and discussions are carried out at the nForum, the <em>conclusion</em> should often be recorded on an nLab page. If it’s about a particular page, then of course put it on that page; if it’s a general question then it could be recorded on <a class="existingWikiWord" href="/nlab/show/HowTo">this How To</a> or the <a class="existingWikiWord" href="/nlab/show/FAQ">FAQ</a>. As this is a wiki, you can do this recording yourself when your question is answered.</p> <p>That said, the wiki software does contain a mechanism for putting questions and comments on a wiki page itself: edit the page and put your comment or question in a <strong>query block</strong> as shown in this example:</p> <pre><code>+-- {: .query} How do I ask a question? =--</code></pre> <p>which produces</p> <div class="query"> <p>How do I ask a question?</p> </div> <p>In general, this is the wrong way to go about asking a question. When you put a query box on a page, often none of the other contributors will notice it for a long time, so it will take a long time for the question to be answered, and in the meantime it makes the page cluttered and ugly for other readers. However, <em>occasionally</em> it may be appropriate to record a brief question in a query box, if it has already been discussed at the nForum and the conclusion was not satisfactory. In this case a link to the nForum discussion should be included in the query box in preference to any lengthy detail about the question and discussion.</p> <p>(Before the nForum existed, it was much more common to ask questions using query boxes. Some such query boxes still remain undiscovered on various pages, but whenever we find one we generally migrate it to the n-Forum.)</p> <h3 id="standout">How to make a standout box</h3> <p>If you want to make some text stand out (an important theorem, or slogan), you can do it using a <strong>standout box</strong>. The mechanism is similar to a query box, although the purpose is different: while a query box is for a temporary question and should be removed once that question is resolved, a standout box is a permanent feature of a page that simply emphasizes a small amount of text. To make a standout box, write:</p> <pre><code>+-- {: .standout} First quantization is a mystery, but second quantization is a functor. =--</code></pre> <p>which produces</p> <div class="standout"> <p>First quantization is a mystery, but second quantization is a functor.</p> </div> <h3 id="how_to_include_one_page_within_another">How to include one page within another</h3> <p>If you have some material at a page called <code>foo</code> that you want to include directly in pages called <code>bar</code> and <code>baz</code>, then type</p> <nowiki><code>[[!include foo]]</code></nowiki> <p> in <code>bar</code> and <code>baz</code>. For an example, see how <a class="existingWikiWord" href="/nlab/show/contents">contents</a> is included at the tope of this page. Also see how <a class="existingWikiWord" href="/nlab/show/contents">contents</a> itself has been formatted so that it will appear as a sidebar when included.</p> <p>Besides such sidebars that appear in many pages, you can also use inclusion to put in something that contains a bunch of ugly code (such as raw <abbr title="scalable vector graphics">SVG</abbr>, see <a href="#IncludeSVG">here</a>) without mucking up the rest of the page. That is, you put your messy code in <code>bar/foo</code> and then put</p> <nowiki><code>[[!include bar/foo]]</code></nowiki> <p> in <code>bar</code>. Note that this is for something that, logically, should appear within <code>bar</code> itself, which is why <code>bar</code> appears in the name of the included page.</p> <p>Note that the included page goes directly in where it is called with no surrounding whitespace. This can mean that formatting rules are broken on the include. For example, if the included file starts and ends with a <code>div</code> tag and is included with no surrounding blank lines then this breaks the rules and will generate an error.</p> <h3 id="HowToUploadFiles">How to upload files</h3> <p>To upload a file, proceed as follows:</p> <ol> <li> <p>Type</p> <p><code>[[FileName.xyz:file]]</code></p> <p>into the edit page for some entry, or</p> <p><code>[[FileName.xyz:pic]]</code></p> <p>in the case of a picture;</p> </li> <li> <p>hit “submit”;</p> </li> <li> <p>in the rendered entry, find a grayish link labeled “FileName.xyz” followed by a question mark;</p> </li> <li> <p>click on the question mark to open an upload dialogue and follow the instructions there;</p> <p>notice that the dialogue field “Description” is asking for the text that will appear hyperlinked to your file. If you put no text here, no link to your file will appear by itself;</p> </li> <li> <p>complete the dialogue by hitting “upload”;</p> </li> <li> <p>find in the rendered entry the previously grayish text “FileName.xyz” replaced by the text that you entered into the “Description”-box in the file upload dialogue, and hyperlinked to your file;</p> </li> <li> <p>due to a bug, if you want that link to persist, you need to make any further edit to the entry (e.g. add a whitespace) and “submit” again.</p> </li> </ol> <p>After this, the file is now sitting at this URL:</p> <pre><code> https://ncatlab.org/nlab/files/FileName.xyz </code></pre> <p>Hints:</p> <ol> <li> <p>If you uploaded a picture using the <code>:pic</code> syntax and do not wish to tweak the displayed image in any way, there is no need to do anything. If you uploaded it using the <code>:file</code> syntax, you will probably want to <em>remove</em> the file upload code</p> <pre><code>[[FileName.xyz:file]]</code></pre> <p>(which renders to a link to the file) and instead add a line like</p> <pre><code> <img src="/nlab/files/FileName.xyz"/></code></pre> <p>which makes the actual image show up in entry, There are a number of other posible parameters for an <code>imagefromfile</code> block, see .</p> </li> <li> <p>If you uploaded a pdf (or similar) for a reference, you will probably want to make sure that the “Description” text in the upload dialogue is “pdf” (or similar), so that the code</p> <pre><code> A. Name, _A title_, A Journal, AYear (<a class='existingWikiWord' href='/nlab/files/FileName.xyz' title='HoTT proposal 2009'>HoTT proposal 2009</a>)</code></pre> <p>renders to</p> <p>“A. Name, <em>A title</em>, A Journal, AYear (pdf)”</p> <p>with “pdf” hyperlinked to your file.</p> </li> <li> <p>There is a size limit for files to upload. The functionality is meant to be used for uploading <em>ingredients</em> of <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab entries (such as pictures or references) which are not available for linking elsewhere on the web, or not reliably so.</p> <p>If you try to abuse the file upload for archiving your personal files, the <a class="existingWikiWord" href="/nlab/show/steering+committee">steering committee</a> will intervene.</p> </li> </ol> <h3 id="how_to_use_redirects">How to use redirects</h3> <p>See <a class="existingWikiWord" href="/nlab/show/redirects">redirects</a>.</p> <h3 id="ParenthesisInHyperlinks">How to handle parentheses in hyperlink URLs</h3> <p>Since the Instiki code for hyperlinks</p> <pre><code> [link text](url)</code></pre> <p>uses parenthesis, the parser apparently gets confused when the <code>url</code> itself contains parenthesis. To work around this one can</p> <ul> <li> <p>“escape” the parenthesis by replacing in the <code>url</code></p> <p>“<code>(...)</code>” by “<code>%28...%29</code>”</p> </li> </ul> <p>or</p> <ul> <li> <p>fall back to the HTML tag</p> <p><code><a href="url">link text</a></code></p> </li> </ul> <p>or</p> <ul> <li id="ReferenceStyleLinks"> <p>use reference-style links</p> <p><code>[link text][1]</code> <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mspace width="thickmathspace"></mspace></mrow><annotation encoding="application/x-tex">\;</annotation></semantics></math> <code>[1]: url</code></p> <blockquote> <p>Of course, you need to replace “1” here by a <em>distinct</em> number (or alphanumeric string) for every distinct url on a given page (which also means that this syntax is error-prone, especially when copy-and-pasting material).</p> </blockquote> </li> </ul> <p>For example</p> <pre><code>[Monad (category theory)#Monads and adjunctions](http://en.wikipedia.org/wiki/Monad_%28category_theory%29#Monads_and_adjunctions)</code></pre> <dl> <dt>produces</dt> <dd> <p><a href="http://en.wikipedia.org/wiki/Monad_%28category_theory%29#Monads_and_adjunctions">Monad (category theory)#Monads and adjunctions</a></p> </dd> </dl> <p>or</p> <pre><code>[Monad (category theory)#Monads and adjunctions][1] [1]: http://en.wikipedia.org/wiki/Monad_(category_theory)#Monads_and_adjunctions</code></pre> <dl> <dt>produces again</dt> <dd> <p><a href="http://en.wikipedia.org/wiki/Monad_(category_theory)#Monads_and_adjunctions">Monad (category theory)#Monads and adjunctions</a></p> </dd> </dl> <h3 id="how_to_add_a_floating_table_of_contents">How to add a floating table of contents</h3> <p>Many pages include a “floating table of contents” at the top right-hand side with links to other pages on similar topics. The lists of related pages are separate pages with names such as <a class="existingWikiWord" href="/nlab/show/category+theory+-+contents">category theory - contents</a>; if you want to create a new one, look at the syntax of existing ones.</p> <p>To add a floating TOC to a new page, in such a way that it will be automatically collapsed until moused over, use code such as the following at the top of the page:</p> <pre><code>+-- {: .rightHandSide} +-- {: .toc .clickDown tabindex="0"} ### Context #### Category Theory +-- {: .hide} <span class='newWikiWord'>&excl;include category theory - contents<a href='/nlab/new/%26excl%3Binclude+category+theory+-+contents'>?</a></span> =-- =-- =--</code></pre> <p>If you want to include multiple contents pages, you can repeat the four lines from the one starting with <code>####</code> through the first <code>=--</code> line.</p> <h3 id="diagrams">How to draw commutative diagrams and pictures</h3> <h4 id="TikZ">TikZ</h4> <p>You can enter basic <a href="https://en.wikipedia.org/wiki/PGF/TikZ"><code>TikZ</code></a>-diagrams by (omitting the usual math delimiters such as `$$...$$' and instead) directly opening a block of the form</p> <p>\begin{tikzpicture}</p> <p>…</p> <p>\end{tikzpicture}</p> <p>or</p> <p>\begin{tikzcd}</p> <p>…</p> <p>\end{tikzcd}</p> <p>and adding usual <code>TikZ</code>-code inside.</p> <p id="QuiverTool"> A graphical user interface for generating TikZcd code is the <a class="existingWikiWord" href="/nlab/show/quiver+%28editor%29">quiver editor</a> at <a href="https://q.uiver.app/">q.uiver.app</a>. (After drawing your diagram there, click on <code>LaTeX</code> at the bottom to copy-and-paste the code to be inserted into the above environments.)</p> <p id="TikZSupportIsAHack"> Beware that this functionality is a hack: The <code>tikz</code>-code is compiled server-side and then included as an SVG in the page’s HTML source.</p> <p>In practice this means that <code>TikZ</code>-code does not interact with the ambient <code>instiki</code>-code, for instance it cannot be included inside bullet-items nor inside other math-environments. To prevent <code>instiki</code>‘s indentation mechanism from clashing, be sure to align the outer block of the <code>TikZ</code>-code to the left of the edit window.</p> <blockquote> <p>(There used to be a claim here that <code>\usetikzlibrary</code> can be called inside the <code>tikz</code>-code block, but it does not seem to be the case.)</p> </blockquote> <h5 id="examples">Examples</h5> <p>Picture:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28.745" height="28.745" viewBox="0 0 28.745 28.745"> <defs> <clipPath id="gjAWx7c0y2qM5-qIYjQARaHO88g=-clip-0"> <path clip-rule="nonzero" d="M 26 26 L 28.746094 26 L 28.746094 28.746094 L 26 28.746094 Z M 26 26 "></path> </clipPath> </defs> <path fill="none" stroke-width="0.3985" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 100%)" stroke-opacity="1" stroke-miterlimit="10" d="M 0.00021875 -0.00021875 L 28.347875 -0.00021875 L 28.347875 -27.886938 " transform="matrix(1, 0, 0, -1, 0.199, 0.199)"></path> <g clip-path="url(#gjAWx7c0y2qM5-qIYjQARaHO88g=-clip-0)"> <path fill="none" stroke-width="0.31879" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 100%)" stroke-opacity="1" stroke-miterlimit="10" d="M -1.196895 1.594825 C -1.095332 0.997169 -0.0015825 0.0987312 0.299199 0.001075 C -0.0015825 -0.100488 -1.095332 -0.995019 -1.196895 -1.592675 " transform="matrix(0, 1, 1, 0, 28.5458, 28.08752)"></path> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{tikzpicture} \draw[blue, ->] (0,0) -- (1,0) -- (1,-1); \end{tikzpicture} \end{centre} </code></pre> <p>Single <a class="existingWikiWord" href="/nlab/show/morphism">morphism</a>:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="97.911" height="20.278" viewBox="0 0 97.911 20.278"> <defs> <g> <g id="e2vj9vvoPTv1bU3wKbJd4hF-670=-glyph-0-0"> </g> <g id="e2vj9vvoPTv1bU3wKbJd4hF-670=-glyph-0-1"> <path d="M 7.078125 -6.09375 C 6.609375 -6 6.421875 -5.640625 6.421875 -5.359375 C 6.421875 -5 6.703125 -4.890625 6.921875 -4.890625 C 7.359375 -4.890625 7.671875 -5.265625 7.671875 -5.671875 C 7.671875 -6.296875 6.953125 -6.59375 6.328125 -6.59375 C 5.421875 -6.59375 4.921875 -5.6875 4.78125 -5.40625 C 4.4375 -6.53125 3.515625 -6.59375 3.234375 -6.59375 C 1.71875 -6.59375 0.90625 -4.625 0.90625 -4.296875 C 0.90625 -4.25 0.96875 -4.171875 1.078125 -4.171875 C 1.1875 -4.171875 1.21875 -4.25 1.25 -4.3125 C 1.765625 -5.96875 2.765625 -6.28125 3.203125 -6.28125 C 3.875 -6.28125 4 -5.65625 4 -5.296875 C 4 -4.96875 3.90625 -4.625 3.734375 -3.90625 L 3.21875 -1.859375 C 3 -0.96875 2.5625 -0.15625 1.78125 -0.15625 C 1.703125 -0.15625 1.328125 -0.15625 1.015625 -0.34375 C 1.546875 -0.453125 1.671875 -0.890625 1.671875 -1.078125 C 1.671875 -1.375 1.453125 -1.546875 1.171875 -1.546875 C 0.8125 -1.546875 0.421875 -1.234375 0.421875 -0.765625 C 0.421875 -0.140625 1.125 0.15625 1.765625 0.15625 C 2.484375 0.15625 2.984375 -0.421875 3.296875 -1.03125 C 3.546875 -0.15625 4.28125 0.15625 4.84375 0.15625 C 6.359375 0.15625 7.171875 -1.8125 7.171875 -2.140625 C 7.171875 -2.203125 7.109375 -2.265625 7.015625 -2.265625 C 6.890625 -2.265625 6.875 -2.203125 6.828125 -2.078125 C 6.421875 -0.765625 5.5625 -0.15625 4.890625 -0.15625 C 4.359375 -0.15625 4.078125 -0.53125 4.078125 -1.15625 C 4.078125 -1.484375 4.140625 -1.71875 4.375 -2.703125 L 4.90625 -4.734375 C 5.125 -5.625 5.625 -6.28125 6.3125 -6.28125 C 6.34375 -6.28125 6.765625 -6.28125 7.078125 -6.09375 Z M 7.078125 -6.09375 "></path> </g> <g id="e2vj9vvoPTv1bU3wKbJd4hF-670=-glyph-0-2"> <path d="M 3.921875 1.671875 C 3.53125 2.234375 2.9375 2.75 2.203125 2.75 C 2.03125 2.75 1.3125 2.71875 1.09375 2.03125 C 1.140625 2.046875 1.203125 2.046875 1.234375 2.046875 C 1.6875 2.046875 1.984375 1.65625 1.984375 1.3125 C 1.984375 0.96875 1.703125 0.84375 1.484375 0.84375 C 1.234375 0.84375 0.71875 1.03125 0.71875 1.765625 C 0.71875 2.53125 1.359375 3.046875 2.203125 3.046875 C 3.703125 3.046875 5.21875 1.671875 5.625 0.015625 L 7.09375 -5.8125 C 7.109375 -5.890625 7.140625 -5.96875 7.140625 -6.0625 C 7.140625 -6.28125 6.953125 -6.4375 6.734375 -6.4375 C 6.609375 -6.4375 6.28125 -6.375 6.171875 -5.9375 L 5.0625 -1.53125 C 4.984375 -1.265625 4.984375 -1.234375 4.875 -1.078125 C 4.578125 -0.65625 4.078125 -0.15625 3.359375 -0.15625 C 2.53125 -0.15625 2.453125 -0.96875 2.453125 -1.375 C 2.453125 -2.21875 2.859375 -3.375 3.25 -4.453125 C 3.421875 -4.890625 3.515625 -5.09375 3.515625 -5.390625 C 3.515625 -6.015625 3.0625 -6.59375 2.328125 -6.59375 C 0.953125 -6.59375 0.40625 -4.421875 0.40625 -4.296875 C 0.40625 -4.25 0.46875 -4.171875 0.5625 -4.171875 C 0.703125 -4.171875 0.71875 -4.234375 0.78125 -4.4375 C 1.140625 -5.6875 1.703125 -6.28125 2.28125 -6.28125 C 2.421875 -6.28125 2.671875 -6.28125 2.671875 -5.796875 C 2.671875 -5.40625 2.515625 -4.96875 2.28125 -4.40625 C 1.546875 -2.453125 1.546875 -1.953125 1.546875 -1.59375 C 1.546875 -0.171875 2.5625 0.15625 3.3125 0.15625 C 3.75 0.15625 4.28125 0.015625 4.8125 -0.53125 L 4.828125 -0.515625 C 4.59375 0.359375 4.453125 0.9375 3.921875 1.671875 Z M 3.921875 1.671875 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#e2vj9vvoPTv1bU3wKbJd4hF-670=-glyph-0-1" x="6.434" y="11.903"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#e2vj9vvoPTv1bU3wKbJd4hF-670=-glyph-0-2" x="83.806" y="11.903"></use> </g> <path fill="none" stroke-width="0.47818" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -27.522406 1.971031 L 27.688531 1.971031 " transform="matrix(1, 0, 0, -1, 48.956, 10.139)"></path> <path fill="none" stroke-width="0.47818" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -2.486292 2.870335 C -2.033167 1.147679 -1.021449 0.335179 -0.0019175 -0.00075875 C -1.021449 -0.33279 -2.033167 -1.149196 -2.486292 -2.867946 " transform="matrix(1, 0, 0, -1, 76.88473, 8.16721)"></path> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{tikzcd} x \ar[r] & y \end{tikzcd} \end{centre} </code></pre> <p>Diagram of <a class="existingWikiWord" href="/nlab/show/adjoint+functors">adjoint functors</a> :</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="102.609" height="41.029" viewBox="0 0 102.609 41.029"> <defs> <g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-0-0"> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-0-1"> <path d="M 3.046875 0 C 6.53125 0 11.4375 -2.65625 11.4375 -6.734375 C 11.4375 -8.0625 10.8125 -8.90625 10.078125 -9.359375 C 8.796875 -10.203125 7.421875 -10.203125 6 -10.203125 C 4.71875 -10.203125 3.84375 -10.203125 2.578125 -9.671875 C 0.59375 -8.78125 0.3125 -7.546875 0.3125 -7.421875 C 0.3125 -7.328125 0.375 -7.296875 0.46875 -7.296875 C 0.703125 -7.296875 1.046875 -7.515625 1.171875 -7.59375 C 1.484375 -7.796875 1.53125 -7.890625 1.609375 -8.171875 C 1.828125 -8.765625 2.234375 -9.296875 4.125 -9.375 C 3.890625 -6.265625 3.125 -3.40625 2.078125 -0.796875 C 1.53125 -0.59375 1.171875 -0.25 1.171875 -0.109375 C 1.171875 -0.015625 1.1875 0 1.515625 0 Z M 3.125 -0.828125 C 4.828125 -4.984375 5.140625 -7.59375 5.34375 -9.375 C 6.34375 -9.375 10.171875 -9.375 10.171875 -6.09375 C 10.171875 -3.171875 7.546875 -0.828125 3.921875 -0.828125 Z M 3.125 -0.828125 "></path> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-0-2"> <path d="M 7.40625 -2.34375 C 7.40625 -2.4375 7.328125 -2.453125 7.265625 -2.453125 C 7 -2.453125 6.640625 -2.21875 6.625 -2.21875 C 6.328125 -2.03125 6.28125 -1.921875 6.09375 -1.671875 C 5.625 -0.96875 4.96875 -0.46875 4 -0.46875 C 2.65625 -0.46875 1.453125 -1.4375 1.453125 -3.671875 C 1.453125 -5.015625 1.984375 -6.796875 2.78125 -7.984375 C 3.4375 -8.9375 4.25 -9.703125 5.78125 -9.703125 C 6.34375 -9.703125 6.703125 -9.5 6.703125 -8.953125 C 6.703125 -8.421875 6.15625 -7.359375 5.96875 -7.0625 C 5.890625 -6.90625 5.890625 -6.875 5.890625 -6.84375 C 5.890625 -6.734375 5.953125 -6.734375 6.046875 -6.734375 C 6.34375 -6.734375 6.90625 -7.0625 7.078125 -7.296875 C 7.109375 -7.359375 7.984375 -8.828125 7.984375 -9.59375 C 7.984375 -10.40625 7.296875 -10.53125 6.765625 -10.53125 C 4.59375 -10.53125 2.828125 -9.109375 2.140625 -8.28125 C 0.359375 -6.125 0.171875 -3.8125 0.171875 -3.03125 C 0.171875 -0.84375 1.28125 0.359375 3.015625 0.359375 C 5.421875 0.359375 7.40625 -1.96875 7.40625 -2.34375 Z M 7.40625 -2.34375 "></path> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-1-0"> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-1-1"> <path d="M 3.875 -6.109375 C 3.953125 -6.453125 3.96875 -6.484375 4.375 -6.484375 L 5.1875 -6.484375 C 6 -6.484375 6.765625 -6.265625 6.765625 -5.46875 C 6.765625 -5.03125 6.546875 -4.328125 6.078125 -4 C 5.609375 -3.65625 5.03125 -3.546875 4.453125 -3.546875 L 3.234375 -3.546875 Z M 5.5625 -3.390625 C 6.78125 -3.703125 7.75 -4.453125 7.75 -5.296875 C 7.75 -6.15625 6.765625 -6.8125 5.390625 -6.8125 L 2.4375 -6.8125 C 2.265625 -6.8125 2.140625 -6.8125 2.140625 -6.625 C 2.140625 -6.484375 2.265625 -6.484375 2.421875 -6.484375 C 2.75 -6.484375 3.046875 -6.484375 3.046875 -6.3125 C 3.046875 -6.28125 3.03125 -6.265625 3 -6.140625 L 1.671875 -0.78125 C 1.578125 -0.40625 1.5625 -0.328125 0.8125 -0.328125 C 0.625 -0.328125 0.515625 -0.328125 0.515625 -0.140625 C 0.515625 -0.09375 0.53125 0 0.671875 0 C 0.859375 0 1.09375 -0.015625 1.28125 -0.03125 L 1.90625 -0.03125 C 2.828125 -0.03125 3.125 0 3.1875 0 C 3.234375 0 3.375 0 3.375 -0.1875 C 3.375 -0.328125 3.25 -0.328125 3.078125 -0.328125 C 3.046875 -0.328125 2.875 -0.328125 2.703125 -0.34375 C 2.5 -0.375 2.46875 -0.40625 2.46875 -0.484375 C 2.46875 -0.53125 2.5 -0.59375 2.5 -0.640625 L 3.15625 -3.265625 L 4.453125 -3.265625 C 5.34375 -3.265625 5.625 -2.796875 5.625 -2.375 C 5.625 -2.25 5.546875 -1.96875 5.5 -1.75 C 5.421875 -1.46875 5.328125 -1.0625 5.328125 -0.890625 C 5.328125 -0.125 5.984375 0.203125 6.71875 0.203125 C 7.59375 0.203125 8 -0.765625 8 -0.953125 C 8 -1 7.96875 -1.09375 7.828125 -1.09375 C 7.71875 -1.09375 7.703125 -1 7.6875 -0.96875 C 7.46875 -0.28125 7.03125 -0.0625 6.75 -0.0625 C 6.375 -0.0625 6.34375 -0.34375 6.34375 -0.671875 C 6.34375 -1 6.40625 -1.453125 6.4375 -1.78125 C 6.484375 -2.078125 6.484375 -2.140625 6.484375 -2.234375 C 6.484375 -2.828125 6.09375 -3.1875 5.5625 -3.390625 Z M 5.5625 -3.390625 "></path> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-1-2"> <path d="M 3.875 -6.03125 C 3.953125 -6.375 3.984375 -6.484375 4.890625 -6.484375 C 5.171875 -6.484375 5.28125 -6.484375 5.28125 -6.671875 C 5.28125 -6.6875 5.25 -6.8125 5.109375 -6.8125 C 4.890625 -6.8125 4.59375 -6.78125 4.390625 -6.78125 L 3.671875 -6.78125 C 2.625 -6.78125 2.390625 -6.8125 2.328125 -6.8125 C 2.28125 -6.8125 2.125 -6.8125 2.125 -6.625 C 2.125 -6.484375 2.25 -6.484375 2.40625 -6.484375 C 2.734375 -6.484375 3.03125 -6.484375 3.03125 -6.3125 C 3.03125 -6.28125 3.015625 -6.265625 2.984375 -6.140625 L 1.65625 -0.78125 C 1.5625 -0.40625 1.546875 -0.328125 0.8125 -0.328125 C 0.625 -0.328125 0.5 -0.328125 0.5 -0.140625 C 0.5 0 0.625 0 0.796875 0 L 5.609375 0 C 5.859375 0 5.875 -0.015625 5.953125 -0.203125 C 6.046875 -0.484375 6.78125 -2.359375 6.78125 -2.453125 C 6.78125 -2.546875 6.703125 -2.59375 6.625 -2.59375 C 6.515625 -2.59375 6.5 -2.515625 6.4375 -2.375 C 6.078125 -1.453125 5.640625 -0.328125 3.859375 -0.328125 L 2.59375 -0.328125 C 2.5 -0.34375 2.46875 -0.34375 2.46875 -0.421875 C 2.46875 -0.5 2.5 -0.578125 2.515625 -0.640625 Z M 3.875 -6.03125 "></path> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-2-0"> </g> <g id="O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-2-1"> <path d="M 4.34375 -6.546875 C 4.34375 -6.703125 4.34375 -6.921875 4.109375 -6.921875 C 3.890625 -6.921875 3.890625 -6.703125 3.890625 -6.53125 L 3.890625 -0.453125 L 0.984375 -0.453125 C 0.8125 -0.453125 0.59375 -0.453125 0.59375 -0.234375 C 0.59375 0 0.8125 0 0.984375 0 L 7.265625 0 C 7.421875 0 7.640625 0 7.640625 -0.234375 C 7.640625 -0.453125 7.421875 -0.453125 7.265625 -0.453125 L 4.34375 -0.453125 Z M 4.34375 -6.546875 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-0-1" x="6.434" y="24.25"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-0-2" x="87.434" y="24.25"></use> </g> <path fill="none" stroke-width="0.47818" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -26.245406 -8.344281 L 28.969438 -8.344281 " transform="matrix(1, 0, 0, -1, 51.304, 19.144)"></path> <path fill="none" stroke-width="0.47818" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -2.488452 2.870623 C -2.031421 1.147966 -1.019702 0.335466 -0.00017125 -0.00047125 C -1.019702 -0.336409 -2.031421 -1.148909 -2.488452 -2.867659 " transform="matrix(1, 0, 0, -1, 80.51189, 27.48781)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-1-1" x="48.888" y="37.812"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-2-1" x="48.789" y="23.972"></use> </g> <path fill="none" stroke-width="0.47818" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 29.446 5.604938 L -25.764937 5.604938 " transform="matrix(1, 0, 0, -1, 51.304, 19.144)"></path> <path fill="none" stroke-width="0.47818" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -2.486386 2.870206 C -2.033261 1.14755 -1.021543 0.33505 0.001895 -0.0008875 C -1.021543 -0.332919 -2.033261 -1.149325 -2.486386 -2.868075 " transform="matrix(-1, 0, 0, 1, 25.29877, 13.53995)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#O3pK-kJ5S7k2Kz5OW7uUoxnKGvk=-glyph-1-2" x="49.306" y="10.024"></use> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{tikzcd} \mathcal{D} \arrow[r, shift right=7pt, "R"', "\bot"] & \mathcal{C} \arrow[l, shift right=7pt, "L"'] \end{tikzcd} \end{centre} </code></pre> <h4 id="xymatrix">Xymatrix</h4> <p>As of 2019 you can format commutative diagrams in the nLab using xymatrix command, almost as you would in a LaTeX document. The only significant differences are:</p> <ol> <li> <p>Use a <code>\begin{xymatrix} ... \end{xymatrix}</code> block rather than a <code>\xymatrix{...}</code> block.</p> </li> <li> <p>Some global parameters can be passed inside the <code>\begin{xymatrix}</code> tag. For example, as usual, one can use <code>@=1.5em</code> to increase row and column separation, replacing <code>@</code> by <code>@C</code> (resp. <code>@R</code>) for column (resp. row=) separation. Thus one writes: <code>\begin{xymatrix@=1.5em}</code>. In addition, unlike in LaTeX, one can pass parameters in square brackets: <code>\begin{xymatrix[font = \large, border = 2em]}</code> or <code>\begin{xymatrix@=1.5em[font = \large, border = 2em]}</code>. Here the value of <code>font</code> controls the font size throughout the diagram, and <code>border</code> adds some whitespace around the figure, which is sometimes needed when using curved arrows. One can use only one of the two parameters instead of both.</p> </li> </ol> <p>Under the hood, this works by running pdflatex and then generating an SVG from the resulting pdf, which is included in the HTML source of the rendered page.</p> <p>Use Tikz rather than Xymatrix if you do not have a strong preference or have not used either before. But it is fine to use Xymatrix if this is what you are used to.</p> <h5 id="examples_2">Examples</h5> <p>Triangle:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="88.757" height="86.824" viewBox="0 0 88.757 86.824"> <defs> <g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-0"> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-1"> <path d="M 2.03125 -1.328125 C 1.609375 -0.625 1.203125 -0.375 0.640625 -0.34375 C 0.5 -0.328125 0.40625 -0.328125 0.40625 -0.125 C 0.40625 -0.046875 0.46875 0 0.546875 0 C 0.765625 0 1.296875 -0.03125 1.515625 -0.03125 C 1.859375 -0.03125 2.25 0 2.578125 0 C 2.65625 0 2.796875 0 2.796875 -0.234375 C 2.796875 -0.328125 2.703125 -0.34375 2.625 -0.34375 C 2.359375 -0.375 2.125 -0.46875 2.125 -0.75 C 2.125 -0.921875 2.203125 -1.046875 2.359375 -1.3125 L 3.265625 -2.828125 L 6.3125 -2.828125 C 6.328125 -2.71875 6.328125 -2.625 6.328125 -2.515625 C 6.375 -2.203125 6.515625 -0.953125 6.515625 -0.734375 C 6.515625 -0.375 5.90625 -0.34375 5.71875 -0.34375 C 5.578125 -0.34375 5.453125 -0.34375 5.453125 -0.125 C 5.453125 0 5.5625 0 5.625 0 C 5.828125 0 6.078125 -0.03125 6.28125 -0.03125 L 6.953125 -0.03125 C 7.6875 -0.03125 8.21875 0 8.21875 0 C 8.3125 0 8.4375 0 8.4375 -0.234375 C 8.4375 -0.34375 8.328125 -0.34375 8.15625 -0.34375 C 7.5 -0.34375 7.484375 -0.453125 7.453125 -0.8125 L 6.71875 -8.265625 C 6.6875 -8.515625 6.640625 -8.53125 6.515625 -8.53125 C 6.390625 -8.53125 6.328125 -8.515625 6.21875 -8.328125 Z M 3.46875 -3.171875 L 5.875 -7.1875 L 6.28125 -3.171875 Z M 3.46875 -3.171875 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-2"> <path d="M 4.375 -7.34375 C 4.484375 -7.796875 4.53125 -7.8125 5 -7.8125 L 6.546875 -7.8125 C 7.90625 -7.8125 7.90625 -6.671875 7.90625 -6.5625 C 7.90625 -5.59375 6.9375 -4.359375 5.359375 -4.359375 L 3.640625 -4.359375 Z M 6.390625 -4.265625 C 7.703125 -4.5 8.875 -5.421875 8.875 -6.515625 C 8.875 -7.453125 8.0625 -8.15625 6.703125 -8.15625 L 2.875 -8.15625 C 2.640625 -8.15625 2.53125 -8.15625 2.53125 -7.9375 C 2.53125 -7.8125 2.640625 -7.8125 2.828125 -7.8125 C 3.546875 -7.8125 3.546875 -7.71875 3.546875 -7.59375 C 3.546875 -7.5625 3.546875 -7.5 3.5 -7.3125 L 1.890625 -0.890625 C 1.78125 -0.46875 1.75 -0.34375 0.921875 -0.34375 C 0.6875 -0.34375 0.578125 -0.34375 0.578125 -0.125 C 0.578125 0 0.640625 0 0.890625 0 L 4.984375 0 C 6.8125 0 8.21875 -1.390625 8.21875 -2.59375 C 8.21875 -3.578125 7.359375 -4.171875 6.390625 -4.265625 Z M 4.703125 -0.34375 L 3.078125 -0.34375 C 2.921875 -0.34375 2.890625 -0.34375 2.828125 -0.359375 C 2.6875 -0.375 2.671875 -0.390625 2.671875 -0.484375 C 2.671875 -0.578125 2.703125 -0.640625 2.71875 -0.75 L 3.5625 -4.125 L 5.8125 -4.125 C 7.21875 -4.125 7.21875 -2.8125 7.21875 -2.71875 C 7.21875 -1.5625 6.1875 -0.34375 4.703125 -0.34375 Z M 4.703125 -0.34375 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-3"> <path d="M 8.921875 -8.3125 C 8.921875 -8.421875 8.84375 -8.421875 8.828125 -8.421875 C 8.796875 -8.421875 8.75 -8.421875 8.65625 -8.296875 L 7.828125 -7.296875 C 7.40625 -8.015625 6.75 -8.421875 5.859375 -8.421875 C 3.28125 -8.421875 0.59375 -5.796875 0.59375 -2.984375 C 0.59375 -0.984375 2 0.25 3.734375 0.25 C 4.703125 0.25 5.53125 -0.15625 6.234375 -0.734375 C 7.265625 -1.609375 7.578125 -2.765625 7.578125 -2.875 C 7.578125 -2.96875 7.484375 -2.96875 7.453125 -2.96875 C 7.34375 -2.96875 7.328125 -2.90625 7.296875 -2.859375 C 6.75 -0.984375 5.140625 -0.09375 3.9375 -0.09375 C 2.671875 -0.09375 1.578125 -0.90625 1.578125 -2.609375 C 1.578125 -2.984375 1.703125 -5.0625 3.046875 -6.640625 C 3.703125 -7.40625 4.828125 -8.0625 5.96875 -8.0625 C 7.28125 -8.0625 7.859375 -6.984375 7.859375 -5.765625 C 7.859375 -5.453125 7.828125 -5.1875 7.828125 -5.140625 C 7.828125 -5.03125 7.953125 -5.03125 7.984375 -5.03125 C 8.109375 -5.03125 8.125 -5.046875 8.171875 -5.265625 Z M 8.921875 -8.3125 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-0"> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-1"> <path d="M -5.1875 -1.546875 L -5.171875 -1.484375 L -5.140625 -1.421875 L -5.109375 -1.390625 C -3.5625 -0.546875 -1.921875 0 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 L 0.0625 -0.1875 L 0 -0.203125 C -1.734375 -0.375 -3.171875 -0.828125 -4.609375 -1.5625 C -4.71875 -1.625 -4.828125 -1.71875 -4.984375 -1.75 C -5.109375 -1.734375 -5.171875 -1.671875 -5.1875 -1.546875 Z M -5.1875 -1.546875 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-2"> <path d="M -2.625 -4.609375 L -2.625 -4.5625 C -2.09375 -2.765625 -1.234375 -1.203125 -0.15625 0.125 L -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 C -0.890625 -1.421875 -1.71875 -2.90625 -2.25 -4.671875 L -2.265625 -4.734375 L -2.3125 -4.78125 L -2.375 -4.8125 L -2.4375 -4.8125 C -2.546875 -4.8125 -2.625 -4.734375 -2.625 -4.609375 Z M -2.625 -4.609375 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-3"> <path d="M 1.546875 -5.1875 L 1.484375 -5.171875 L 1.421875 -5.140625 L 1.390625 -5.109375 C 0.546875 -3.5625 0 -1.921875 -0.203125 0 C -0.1875 0.125 -0.125 0.1875 0 0.203125 L 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.375 -1.734375 0.828125 -3.171875 1.5625 -4.609375 C 1.625 -4.71875 1.71875 -4.828125 1.75 -4.984375 C 1.734375 -5.109375 1.671875 -5.171875 1.546875 -5.1875 Z M 1.546875 -5.1875 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-0"> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-1"> <path d="M 0 -0.203125 C -1.78125 -0.015625 -3.25 0.4375 -4.71875 1.1875 C -4.859375 1.25 -5.03125 1.3125 -5.140625 1.421875 L -5.171875 1.484375 L -5.1875 1.546875 C -5.171875 1.671875 -5.109375 1.734375 -4.984375 1.75 L -4.921875 1.734375 C -3.609375 1.0625 -2.15625 0.515625 -0.640625 0.28125 C -0.40625 0.234375 -0.171875 0.234375 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 Z M 0 -0.203125 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-2"> <path d="M 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 C -1.203125 -1.234375 -2.765625 -2.09375 -4.5625 -2.625 L -4.609375 -2.625 C -4.734375 -2.625 -4.8125 -2.546875 -4.8125 -2.4375 L -4.8125 -2.375 L -4.78125 -2.3125 L -4.734375 -2.265625 L -4.671875 -2.25 C -2.90625 -1.71875 -1.421875 -0.890625 -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 Z M 0.203125 0 "></path> </g> <g id="ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-3"> <path d="M 0.203125 0 C 0.015625 -1.78125 -0.4375 -3.25 -1.1875 -4.71875 C -1.25 -4.859375 -1.3125 -5.03125 -1.421875 -5.140625 L -1.484375 -5.171875 L -1.546875 -5.1875 C -1.671875 -5.171875 -1.734375 -5.109375 -1.75 -4.984375 L -1.734375 -4.921875 C -1.0625 -3.609375 -0.515625 -2.15625 -0.28125 -0.640625 C -0.234375 -0.40625 -0.234375 -0.171875 -0.1875 0.0625 L -0.15625 0.125 L -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 Z M 0.203125 0 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-1" x="2.989" y="11.158"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-1" x="73.283" y="8.17"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-1" x="73.283" y="8.17"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.377906 -0.001875 L 65.90525 -0.001875 " transform="matrix(1, 0, 0, -1, 7.376, 8.17)"></path> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053687 -5.978437 L 6.096656 -6.009687 " transform="matrix(1, 0, 0, -1, 7.376, 8.17)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-2" x="73.414" y="73.345"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-2" x="73.414" y="73.345"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.053687 -5.978437 L 66.038062 -65.17375 " transform="matrix(1, 0, 0, -1, 7.376, 8.17)"></path> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 66.002906 -65.134687 L 66.038062 -65.17375 " transform="matrix(1, 0, 0, -1, 7.376, 8.17)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-2" x="76.272" y="11.158"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-1-3" x="81.02" y="72.677"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-2-3" x="81.02" y="72.677"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 73.643531 -5.978437 L 73.643531 -64.505781 " transform="matrix(1, 0, 0, -1, 7.376, 8.17)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ToQk9ySrrWVrHCDGcSRGtCsqVg8=-glyph-0-3" x="76.403" y="83.835"></use> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{xymatrix} A \ar[r] \ar[dr] & B \ar[d] \\ & C \end{xymatrix} \end{centre} </code></pre> <p>Bent arrows:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="136.577" height="61.968" viewBox="0 0 136.577 61.968"> <defs> <g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-0-0"> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-0-1"> <path d="M 2.03125 -1.328125 C 1.609375 -0.625 1.203125 -0.375 0.640625 -0.34375 C 0.5 -0.328125 0.40625 -0.328125 0.40625 -0.125 C 0.40625 -0.046875 0.46875 0 0.546875 0 C 0.765625 0 1.296875 -0.03125 1.515625 -0.03125 C 1.859375 -0.03125 2.25 0 2.578125 0 C 2.65625 0 2.796875 0 2.796875 -0.234375 C 2.796875 -0.328125 2.703125 -0.34375 2.625 -0.34375 C 2.359375 -0.375 2.125 -0.46875 2.125 -0.75 C 2.125 -0.921875 2.203125 -1.046875 2.359375 -1.3125 L 3.265625 -2.828125 L 6.3125 -2.828125 C 6.328125 -2.71875 6.328125 -2.625 6.328125 -2.515625 C 6.375 -2.203125 6.515625 -0.953125 6.515625 -0.734375 C 6.515625 -0.375 5.90625 -0.34375 5.71875 -0.34375 C 5.578125 -0.34375 5.453125 -0.34375 5.453125 -0.125 C 5.453125 0 5.5625 0 5.625 0 C 5.828125 0 6.078125 -0.03125 6.28125 -0.03125 L 6.953125 -0.03125 C 7.6875 -0.03125 8.21875 0 8.21875 0 C 8.3125 0 8.4375 0 8.4375 -0.234375 C 8.4375 -0.34375 8.328125 -0.34375 8.15625 -0.34375 C 7.5 -0.34375 7.484375 -0.453125 7.453125 -0.8125 L 6.71875 -8.265625 C 6.6875 -8.515625 6.640625 -8.53125 6.515625 -8.53125 C 6.390625 -8.53125 6.328125 -8.515625 6.21875 -8.328125 Z M 3.46875 -3.171875 L 5.875 -7.1875 L 6.28125 -3.171875 Z M 3.46875 -3.171875 "></path> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-0-2"> <path d="M 4.375 -7.34375 C 4.484375 -7.796875 4.53125 -7.8125 5 -7.8125 L 6.546875 -7.8125 C 7.90625 -7.8125 7.90625 -6.671875 7.90625 -6.5625 C 7.90625 -5.59375 6.9375 -4.359375 5.359375 -4.359375 L 3.640625 -4.359375 Z M 6.390625 -4.265625 C 7.703125 -4.5 8.875 -5.421875 8.875 -6.515625 C 8.875 -7.453125 8.0625 -8.15625 6.703125 -8.15625 L 2.875 -8.15625 C 2.640625 -8.15625 2.53125 -8.15625 2.53125 -7.9375 C 2.53125 -7.8125 2.640625 -7.8125 2.828125 -7.8125 C 3.546875 -7.8125 3.546875 -7.71875 3.546875 -7.59375 C 3.546875 -7.5625 3.546875 -7.5 3.5 -7.3125 L 1.890625 -0.890625 C 1.78125 -0.46875 1.75 -0.34375 0.921875 -0.34375 C 0.6875 -0.34375 0.578125 -0.34375 0.578125 -0.125 C 0.578125 0 0.640625 0 0.890625 0 L 4.984375 0 C 6.8125 0 8.21875 -1.390625 8.21875 -2.59375 C 8.21875 -3.578125 7.359375 -4.171875 6.390625 -4.265625 Z M 4.703125 -0.34375 L 3.078125 -0.34375 C 2.921875 -0.34375 2.890625 -0.34375 2.828125 -0.359375 C 2.6875 -0.375 2.671875 -0.390625 2.671875 -0.484375 C 2.671875 -0.578125 2.703125 -0.640625 2.71875 -0.75 L 3.5625 -4.125 L 5.8125 -4.125 C 7.21875 -4.125 7.21875 -2.8125 7.21875 -2.71875 C 7.21875 -1.5625 6.1875 -0.34375 4.703125 -0.34375 Z M 4.703125 -0.34375 "></path> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-1-0"> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-1-1"> <path d="M -2.484375 -4.6875 L -2.46875 -4.640625 C -2 -2.828125 -1.171875 -1.21875 -0.15625 0.125 L -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 C -0.828125 -1.421875 -1.640625 -2.984375 -2.09375 -4.75 L -2.125 -4.8125 L -2.15625 -4.859375 L -2.21875 -4.890625 L -2.28125 -4.890625 C -2.40625 -4.890625 -2.46875 -4.8125 -2.484375 -4.6875 Z M -2.484375 -4.6875 "></path> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-1-2"> <path d="M -4.453125 2.9375 L -4.390625 2.921875 C -3.890625 2.734375 -3.40625 2.546875 -2.953125 2.296875 C -1.828125 1.734375 -0.734375 1.015625 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 L -0.0625 -0.1875 L -0.125 -0.15625 C -1.375 1 -2.796875 1.90625 -4.5 2.546875 L -4.5625 2.578125 L -4.609375 2.609375 L -4.640625 2.671875 L -4.640625 2.734375 C -4.640625 2.84375 -4.5625 2.921875 -4.453125 2.9375 Z M -4.453125 2.9375 "></path> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-2-0"> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-2-1"> <path d="M 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 C -1.1875 -1.296875 -2.6875 -2.1875 -4.46875 -2.765625 L -4.53125 -2.78125 C -4.65625 -2.765625 -4.71875 -2.703125 -4.734375 -2.578125 L -4.71875 -2.515625 L -4.65625 -2.421875 L -4.59375 -2.390625 C -2.84375 -1.8125 -1.390625 -0.953125 -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 Z M 0.203125 0 "></path> </g> <g id="dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-2-2"> <path d="M 0 -0.203125 L -0.0625 -0.1875 L -0.125 -0.15625 L -0.15625 -0.125 C -1.109375 1.21875 -1.90625 2.90625 -2.3125 4.703125 L -2.328125 4.765625 C -2.3125 4.890625 -2.25 4.953125 -2.125 4.96875 L -2.046875 4.953125 L -2 4.9375 L -1.953125 4.890625 L -1.9375 4.828125 C -1.546875 3.078125 -0.765625 1.4375 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 Z M 0 -0.203125 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-0-1" x="26.899" y="35.069"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-1-1" x="97.99" y="23.916"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-2-1" x="97.99" y="23.916"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 6.939563 8.165938 C 26.861438 29.158125 46.783313 29.158125 66.701281 8.165938 " transform="matrix(1, 0, 0, -1, 31.287, 32.08)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-1-2" x="100.004" y="38.05"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-2-2" x="100.004" y="38.05"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 4.927844 -5.970781 C 26.189563 -29.88875 47.451281 -29.88875 68.716906 -5.970781 " transform="matrix(1, 0, 0, -1, 31.287, 32.08)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#dYKRfmul9tfIO9FOcwtFF_K1ego=-glyph-0-2" x="100.182" y="35.069"></use> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{xymatrix[border = 2pc]} A \ar@/^2.0pc/[r] \ar@/_2.0pc/[r] & B \end{xymatrix} \end{centre} </code></pre> <p>Parallel arrows:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="88.757" height="14.147" viewBox="0 0 88.757 14.147"> <defs> <g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-0-0"> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-0-1"> <path d="M 2.03125 -1.328125 C 1.609375 -0.625 1.203125 -0.375 0.640625 -0.34375 C 0.5 -0.328125 0.40625 -0.328125 0.40625 -0.125 C 0.40625 -0.046875 0.46875 0 0.546875 0 C 0.765625 0 1.296875 -0.03125 1.515625 -0.03125 C 1.859375 -0.03125 2.25 0 2.578125 0 C 2.65625 0 2.796875 0 2.796875 -0.234375 C 2.796875 -0.328125 2.703125 -0.34375 2.625 -0.34375 C 2.359375 -0.375 2.125 -0.46875 2.125 -0.75 C 2.125 -0.921875 2.203125 -1.046875 2.359375 -1.3125 L 3.265625 -2.828125 L 6.3125 -2.828125 C 6.328125 -2.71875 6.328125 -2.625 6.328125 -2.515625 C 6.375 -2.203125 6.515625 -0.953125 6.515625 -0.734375 C 6.515625 -0.375 5.90625 -0.34375 5.71875 -0.34375 C 5.578125 -0.34375 5.453125 -0.34375 5.453125 -0.125 C 5.453125 0 5.5625 0 5.625 0 C 5.828125 0 6.078125 -0.03125 6.28125 -0.03125 L 6.953125 -0.03125 C 7.6875 -0.03125 8.21875 0 8.21875 0 C 8.3125 0 8.4375 0 8.4375 -0.234375 C 8.4375 -0.34375 8.328125 -0.34375 8.15625 -0.34375 C 7.5 -0.34375 7.484375 -0.453125 7.453125 -0.8125 L 6.71875 -8.265625 C 6.6875 -8.515625 6.640625 -8.53125 6.515625 -8.53125 C 6.390625 -8.53125 6.328125 -8.515625 6.21875 -8.328125 Z M 3.46875 -3.171875 L 5.875 -7.1875 L 6.28125 -3.171875 Z M 3.46875 -3.171875 "></path> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-0-2"> <path d="M 4.375 -7.34375 C 4.484375 -7.796875 4.53125 -7.8125 5 -7.8125 L 6.546875 -7.8125 C 7.90625 -7.8125 7.90625 -6.671875 7.90625 -6.5625 C 7.90625 -5.59375 6.9375 -4.359375 5.359375 -4.359375 L 3.640625 -4.359375 Z M 6.390625 -4.265625 C 7.703125 -4.5 8.875 -5.421875 8.875 -6.515625 C 8.875 -7.453125 8.0625 -8.15625 6.703125 -8.15625 L 2.875 -8.15625 C 2.640625 -8.15625 2.53125 -8.15625 2.53125 -7.9375 C 2.53125 -7.8125 2.640625 -7.8125 2.828125 -7.8125 C 3.546875 -7.8125 3.546875 -7.71875 3.546875 -7.59375 C 3.546875 -7.5625 3.546875 -7.5 3.5 -7.3125 L 1.890625 -0.890625 C 1.78125 -0.46875 1.75 -0.34375 0.921875 -0.34375 C 0.6875 -0.34375 0.578125 -0.34375 0.578125 -0.125 C 0.578125 0 0.640625 0 0.890625 0 L 4.984375 0 C 6.8125 0 8.21875 -1.390625 8.21875 -2.59375 C 8.21875 -3.578125 7.359375 -4.171875 6.390625 -4.265625 Z M 4.703125 -0.34375 L 3.078125 -0.34375 C 2.921875 -0.34375 2.890625 -0.34375 2.828125 -0.359375 C 2.6875 -0.375 2.671875 -0.390625 2.671875 -0.484375 C 2.671875 -0.578125 2.703125 -0.640625 2.71875 -0.75 L 3.5625 -4.125 L 5.8125 -4.125 C 7.21875 -4.125 7.21875 -2.8125 7.21875 -2.71875 C 7.21875 -1.5625 6.1875 -0.34375 4.703125 -0.34375 Z M 4.703125 -0.34375 "></path> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-1-0"> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-1-1"> <path d="M -5.1875 -1.546875 L -5.171875 -1.484375 L -5.140625 -1.421875 L -5.109375 -1.390625 C -3.5625 -0.546875 -1.921875 0 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 L 0.0625 -0.1875 L 0 -0.203125 C -1.734375 -0.375 -3.171875 -0.828125 -4.609375 -1.5625 C -4.71875 -1.625 -4.828125 -1.71875 -4.984375 -1.75 C -5.109375 -1.734375 -5.171875 -1.671875 -5.1875 -1.546875 Z M -5.1875 -1.546875 "></path> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-2-0"> </g> <g id="OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-2-1"> <path d="M 0 -0.203125 C -1.78125 -0.015625 -3.25 0.4375 -4.71875 1.1875 C -4.859375 1.25 -5.03125 1.3125 -5.140625 1.421875 L -5.171875 1.484375 L -5.1875 1.546875 C -5.171875 1.671875 -5.109375 1.734375 -4.984375 1.75 L -4.921875 1.734375 C -3.609375 1.0625 -2.15625 0.515625 -0.640625 0.28125 C -0.40625 0.234375 -0.171875 0.234375 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 Z M 0 -0.203125 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-0-1" x="2.989" y="11.158"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-1-1" x="73.283" y="5.081"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-2-1" x="73.283" y="5.081"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.377906 3.086969 L 65.90525 3.086969 " transform="matrix(1, 0, 0, -1, 7.376, 8.169)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-1-1" x="73.283" y="11.258"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-2-1" x="73.283" y="11.258"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.377906 -3.088813 L 65.90525 -3.088813 " transform="matrix(1, 0, 0, -1, 7.376, 8.169)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#OOxXC1fJedvWYNxFy1JtjjfN2rs=-glyph-0-2" x="76.272" y="11.158"></use> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{xymatrix} A \ar@<.6ex>[r] \ar@<-.6ex>[r] & B \end{xymatrix} \end{centre} </code></pre> <p>2-cell:</p> <div style="text-align: center"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128.027" height="40.916" viewBox="0 0 128.027 40.916"> <defs> <g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-0-0"> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-0-1"> <path d="M 2.4375 -1.59375 C 1.9375 -0.75 1.453125 -0.453125 0.765625 -0.421875 C 0.609375 -0.40625 0.484375 -0.40625 0.484375 -0.140625 C 0.484375 -0.0625 0.5625 0 0.65625 0 C 0.921875 0 1.5625 -0.03125 1.828125 -0.03125 C 2.234375 -0.03125 2.703125 0 3.09375 0 C 3.1875 0 3.359375 0 3.359375 -0.265625 C 3.359375 -0.40625 3.234375 -0.421875 3.15625 -0.421875 C 2.828125 -0.4375 2.546875 -0.5625 2.546875 -0.90625 C 2.546875 -1.109375 2.640625 -1.265625 2.828125 -1.578125 L 3.921875 -3.390625 L 7.578125 -3.390625 C 7.59375 -3.25 7.59375 -3.140625 7.609375 -3.015625 C 7.640625 -2.640625 7.8125 -1.140625 7.8125 -0.875 C 7.8125 -0.4375 7.078125 -0.421875 6.859375 -0.421875 C 6.703125 -0.421875 6.546875 -0.421875 6.546875 -0.15625 C 6.546875 0 6.671875 0 6.75 0 C 7 0 7.28125 -0.03125 7.53125 -0.03125 L 8.34375 -0.03125 C 9.21875 -0.03125 9.859375 0 9.875 0 C 9.96875 0 10.125 0 10.125 -0.265625 C 10.125 -0.421875 10 -0.421875 9.78125 -0.421875 C 9 -0.421875 8.984375 -0.546875 8.9375 -0.96875 L 8.0625 -9.921875 C 8.03125 -10.21875 7.96875 -10.234375 7.8125 -10.234375 C 7.671875 -10.234375 7.59375 -10.21875 7.453125 -10 Z M 4.15625 -3.796875 L 7.046875 -8.625 L 7.53125 -3.796875 Z M 4.15625 -3.796875 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-0-2"> <path d="M 5.25 -8.828125 C 5.375 -9.359375 5.4375 -9.375 6 -9.375 L 7.859375 -9.375 C 9.484375 -9.375 9.484375 -8 9.484375 -7.875 C 9.484375 -6.71875 8.3125 -5.234375 6.421875 -5.234375 L 4.359375 -5.234375 Z M 7.671875 -5.125 C 9.234375 -5.40625 10.65625 -6.5 10.65625 -7.8125 C 10.65625 -8.9375 9.671875 -9.796875 8.046875 -9.796875 L 3.4375 -9.796875 C 3.171875 -9.796875 3.046875 -9.796875 3.046875 -9.53125 C 3.046875 -9.375 3.171875 -9.375 3.390625 -9.375 C 4.265625 -9.375 4.265625 -9.265625 4.265625 -9.109375 C 4.265625 -9.078125 4.265625 -9 4.203125 -8.78125 L 2.265625 -1.0625 C 2.140625 -0.5625 2.109375 -0.421875 1.109375 -0.421875 C 0.828125 -0.421875 0.6875 -0.421875 0.6875 -0.15625 C 0.6875 0 0.78125 0 1.0625 0 L 5.984375 0 C 8.171875 0 9.875 -1.65625 9.875 -3.109375 C 9.875 -4.28125 8.828125 -5 7.671875 -5.125 Z M 5.640625 -0.421875 L 3.703125 -0.421875 C 3.5 -0.421875 3.46875 -0.421875 3.390625 -0.4375 C 3.234375 -0.4375 3.21875 -0.46875 3.21875 -0.59375 C 3.21875 -0.6875 3.234375 -0.78125 3.265625 -0.90625 L 4.28125 -4.953125 L 6.96875 -4.953125 C 8.65625 -4.953125 8.65625 -3.375 8.65625 -3.25 C 8.65625 -1.875 7.421875 -0.421875 5.640625 -0.421875 Z M 5.640625 -0.421875 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-0"> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-1"> <path d="M 3.65625 -3.984375 L 4.515625 -3.984375 C 4.71875 -3.984375 4.8125 -3.984375 4.8125 -4.1875 C 4.8125 -4.296875 4.71875 -4.296875 4.546875 -4.296875 L 3.71875 -4.296875 L 3.921875 -5.4375 C 3.96875 -5.640625 4.109375 -6.34375 4.171875 -6.46875 C 4.25 -6.65625 4.421875 -6.8125 4.640625 -6.8125 C 4.671875 -6.8125 4.9375 -6.8125 5.125 -6.625 C 4.6875 -6.59375 4.578125 -6.234375 4.578125 -6.09375 C 4.578125 -5.859375 4.765625 -5.734375 4.953125 -5.734375 C 5.21875 -5.734375 5.5 -5.96875 5.5 -6.34375 C 5.5 -6.796875 5.046875 -7.03125 4.640625 -7.03125 C 4.296875 -7.03125 3.671875 -6.84375 3.375 -5.859375 C 3.3125 -5.65625 3.28125 -5.546875 3.046875 -4.296875 L 2.359375 -4.296875 C 2.15625 -4.296875 2.046875 -4.296875 2.046875 -4.109375 C 2.046875 -3.984375 2.140625 -3.984375 2.328125 -3.984375 L 2.984375 -3.984375 L 2.25 -0.046875 C 2.0625 0.921875 1.890625 1.828125 1.375 1.828125 C 1.328125 1.828125 1.09375 1.828125 0.890625 1.640625 C 1.359375 1.609375 1.453125 1.25 1.453125 1.109375 C 1.453125 0.875 1.265625 0.75 1.078125 0.75 C 0.8125 0.75 0.53125 0.984375 0.53125 1.359375 C 0.53125 1.796875 0.96875 2.046875 1.375 2.046875 C 1.921875 2.046875 2.328125 1.453125 2.5 1.078125 C 2.828125 0.453125 3.046875 -0.75 3.0625 -0.828125 Z M 3.65625 -3.984375 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-2"> <path d="M 4.6875 -3.765625 C 4.703125 -3.8125 4.71875 -3.875 4.71875 -3.9375 C 4.71875 -4.109375 4.609375 -4.203125 4.4375 -4.203125 C 4.34375 -4.203125 4.0625 -4.140625 4.03125 -3.78125 C 3.84375 -4.140625 3.5 -4.40625 3.09375 -4.40625 C 1.96875 -4.40625 0.734375 -3.015625 0.734375 -1.578125 C 0.734375 -0.59375 1.328125 0 2.046875 0 C 2.640625 0 3.109375 -0.46875 3.203125 -0.578125 L 3.21875 -0.5625 C 3.015625 0.3125 2.890625 0.734375 2.890625 0.75 C 2.84375 0.84375 2.515625 1.828125 1.453125 1.828125 C 1.265625 1.828125 0.9375 1.8125 0.65625 1.71875 C 0.953125 1.640625 1.0625 1.375 1.0625 1.203125 C 1.0625 1.046875 0.953125 0.859375 0.6875 0.859375 C 0.46875 0.859375 0.15625 1.03125 0.15625 1.4375 C 0.15625 1.84375 0.515625 2.046875 1.46875 2.046875 C 2.71875 2.046875 3.4375 1.265625 3.59375 0.671875 Z M 3.40625 -1.28125 C 3.34375 -1.015625 3.109375 -0.765625 2.890625 -0.578125 C 2.6875 -0.40625 2.375 -0.21875 2.078125 -0.21875 C 1.578125 -0.21875 1.4375 -0.734375 1.4375 -1.140625 C 1.4375 -1.609375 1.71875 -2.796875 2 -3.296875 C 2.265625 -3.78125 2.6875 -4.1875 3.109375 -4.1875 C 3.765625 -4.1875 3.90625 -3.375 3.90625 -3.328125 C 3.90625 -3.28125 3.890625 -3.21875 3.875 -3.1875 Z M 3.40625 -1.28125 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-3"> <path d="M 4.75 -2.359375 C 4.75 -3.921875 3.828125 -4.40625 3.09375 -4.40625 C 1.71875 -4.40625 0.40625 -2.984375 0.40625 -1.578125 C 0.40625 -0.640625 1 0.109375 2.03125 0.109375 C 2.65625 0.109375 3.375 -0.125 4.125 -0.734375 C 4.25 -0.203125 4.578125 0.109375 5.03125 0.109375 C 5.5625 0.109375 5.875 -0.4375 5.875 -0.59375 C 5.875 -0.671875 5.8125 -0.703125 5.75 -0.703125 C 5.6875 -0.703125 5.65625 -0.671875 5.625 -0.59375 C 5.4375 -0.109375 5.078125 -0.109375 5.0625 -0.109375 C 4.75 -0.109375 4.75 -0.890625 4.75 -1.125 C 4.75 -1.328125 4.75 -1.359375 4.859375 -1.46875 C 5.796875 -2.65625 6 -3.8125 6 -3.8125 C 6 -3.84375 5.984375 -3.921875 5.875 -3.921875 C 5.78125 -3.921875 5.78125 -3.890625 5.734375 -3.703125 C 5.546875 -3.078125 5.21875 -2.328125 4.75 -1.734375 Z M 4.09375 -0.984375 C 3.203125 -0.21875 2.4375 -0.109375 2.046875 -0.109375 C 1.453125 -0.109375 1.140625 -0.5625 1.140625 -1.203125 C 1.140625 -1.6875 1.40625 -2.765625 1.71875 -3.265625 C 2.1875 -4 2.734375 -4.1875 3.078125 -4.1875 C 4.0625 -4.1875 4.0625 -2.875 4.0625 -2.109375 C 4.0625 -1.734375 4.0625 -1.15625 4.09375 -0.984375 Z M 4.09375 -0.984375 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-0"> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-1"> <path d="M -4.65625 -2.71875 L -4.640625 -2.640625 L -4.625 -2.59375 L -4.578125 -2.546875 C -3.296875 -1.359375 -1.828125 -0.453125 -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 L 0.0625 -0.1875 C -1.671875 -0.8125 -3.078125 -1.71875 -4.34375 -2.875 L -4.390625 -2.90625 L -4.453125 -2.90625 C -4.578125 -2.90625 -4.640625 -2.828125 -4.65625 -2.71875 Z M -4.65625 -2.71875 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-2"> <path d="M -5.40625 -0.296875 L -5.40625 -0.234375 L -5.375 -0.171875 L -5.328125 -0.125 L -5.28125 -0.09375 C -4.28125 0.15625 -3.078125 0.328125 -1.890625 0.328125 C -1.234375 0.328125 -0.578125 0.296875 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 C -0.625 -0.109375 -1.25 -0.0625 -1.890625 -0.0625 C -2.578125 -0.0625 -3.265625 -0.125 -3.953125 -0.234375 C -4.375 -0.296875 -4.78125 -0.421875 -5.21875 -0.484375 C -5.328125 -0.484375 -5.40625 -0.40625 -5.40625 -0.296875 Z M -5.40625 -0.296875 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-3"> <path d="M 2.71875 -4.65625 L 2.640625 -4.640625 L 2.59375 -4.625 L 2.546875 -4.578125 C 1.359375 -3.296875 0.453125 -1.828125 -0.1875 -0.0625 L -0.203125 0 C -0.1875 0.125 -0.125 0.1875 0 0.203125 L 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 C 0.8125 -1.671875 1.71875 -3.078125 2.875 -4.34375 L 2.90625 -4.390625 L 2.90625 -4.453125 C 2.90625 -4.578125 2.828125 -4.640625 2.71875 -4.65625 Z M 2.71875 -4.65625 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-0"> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-1"> <path d="M 0.203125 0 L 0.1875 -0.0625 L 0.15625 -0.125 L 0.125 -0.15625 L 0.0625 -0.1875 C -0.578125 -0.296875 -1.234375 -0.328125 -1.890625 -0.328125 C -3.078125 -0.328125 -4.28125 -0.15625 -5.28125 0.09375 L -5.328125 0.125 L -5.375 0.171875 L -5.40625 0.234375 L -5.40625 0.296875 C -5.40625 0.40625 -5.328125 0.484375 -5.21875 0.484375 L -5.140625 0.484375 C -4.171875 0.234375 -3.046875 0.0625 -1.890625 0.0625 C -1.25 0.0625 -0.625 0.109375 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 Z M 0.203125 0 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-2"> <path d="M 0 -0.203125 L -0.0625 -0.1875 C -1.828125 0.453125 -3.296875 1.359375 -4.578125 2.546875 L -4.625 2.59375 L -4.640625 2.640625 L -4.65625 2.71875 C -4.640625 2.828125 -4.578125 2.90625 -4.453125 2.90625 L -4.390625 2.90625 L -4.34375 2.875 C -3.078125 1.71875 -1.671875 0.8125 0.0625 0.1875 L 0.125 0.15625 L 0.15625 0.125 L 0.1875 0.0625 L 0.203125 0 C 0.1875 -0.125 0.125 -0.1875 0 -0.203125 Z M 0 -0.203125 "></path> </g> <g id="ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-3"> <path d="M 0.203125 0 L 0.1875 -0.0625 C -0.453125 -1.828125 -1.359375 -3.296875 -2.546875 -4.578125 L -2.59375 -4.625 L -2.640625 -4.640625 L -2.71875 -4.65625 C -2.828125 -4.640625 -2.90625 -4.578125 -2.90625 -4.453125 L -2.90625 -4.390625 L -2.875 -4.34375 C -1.71875 -3.078125 -0.8125 -1.671875 -0.1875 0.0625 L -0.15625 0.125 L -0.125 0.15625 L -0.0625 0.1875 L 0 0.203125 C 0.125 0.1875 0.1875 0.125 0.203125 0 Z M 0.203125 0 "></path> </g> </g> </defs> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-0-1" x="2.989" y="24.702"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 8.253813 2.400156 C 39.636625 10.786875 71.019437 10.822031 102.40225 2.513437 " transform="matrix(1, 0, 0, -1, 8.254, 21.115)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-1" x="60.822" y="9.907"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-1" x="110.662" y="18.604"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-1" x="110.662" y="18.604"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 8.253813 -2.400625 C 39.636625 -10.783438 71.019437 -10.8225 102.40225 -2.513906 " transform="matrix(1, 0, 0, -1, 8.254, 21.115)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-2" x="61.243" y="35.99"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-2" x="110.662" y="23.627"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-2" x="110.662" y="23.627"></use> </g> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -0.00103125 0.00009375 L -0.00103125 -4.980375 " transform="matrix(1, 0, 0, -1, 64.794, 16.129)"></path> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -0.00021875 0.00009375 L -0.00021875 -4.980375 " transform="matrix(1, 0, 0, -1, 62.801, 16.129)"></path> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -0.00103125 -0.00109375 L -0.00103125 -4.981563 " transform="matrix(1, 0, 0, -1, 64.794, 18.62)"></path> <path fill="none" stroke-width="0.478" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M -0.00021875 -0.00109375 L -0.00021875 -4.981563 " transform="matrix(1, 0, 0, -1, 62.801, 18.62)"></path> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-2-3" x="63.797" y="26.092"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-3-3" x="63.797" y="26.092"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-1-3" x="66.57" y="23.26"></use> </g> <g fill="rgb(0%, 0%, 0%)" fill-opacity="1"> <use xlink:href="#ElGbxB__x1_KUPhvipexuUPF3uU=-glyph-0-2" x="113.643" y="24.702"></use> </g> </svg> </div> <p>Source:</p> <pre><code>\begin{centre} \begin{xymatrix[font = \large]@C+2pc} A \rtwocell^f_g{\alpha} & B \end{xymatrix} \end{centre} </code></pre> <h4 id="older_workaround_for_commutative_diagrams">Older workaround for commutative diagrams</h4> <p>An older workaround is to use use arrays or matrices. For example,</p> <pre><code> $$ \begin{matrix} (f/g)& \to & A \\ \downarrow&\underset{\alpha}{\swarr}&\, \downarrow f\\ B &\underset{g}{\to} & C \end{matrix} $$</code></pre> <p>produces</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mrow><mtable displaystyle="false" rowspacing="0.5ex"><mtr><mtd><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">/</mo><mi>g</mi><mo stretchy="false">)</mo></mtd> <mtd><mo>→</mo></mtd> <mtd><mi>A</mi></mtd></mtr> <mtr><mtd><mo stretchy="false">↓</mo></mtd> <mtd><munder><mo>↙</mo><mi>α</mi></munder></mtd> <mtd><mspace width="thinmathspace"></mspace><mo stretchy="false">↓</mo><mi>f</mi></mtd></mtr> <mtr><mtd><mi>B</mi></mtd> <mtd><munder><mo>→</mo><mi>g</mi></munder></mtd> <mtd><mi>C</mi></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \begin{matrix} (f/g)& \to & A \\ \downarrow&\underset{\alpha}{\swarr}&\, \downarrow f\\ B &\underset{g}{\to} & C \end{matrix} </annotation></semantics></math></div> <p>In many cases, you may wish to tweak the alignments (say, of vertical arrows), using <code>\mathrlap{}</code> or <code>\mathllap{}</code>:</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mrow><mtable displaystyle="false" rowspacing="0.5ex"><mtr><mtd><msup><mi>B</mi> <mpadded width="0"><mi>A</mi></mpadded></msup></mtd> <mtd><mo>⟶</mo></mtd> <mtd><msup><mn>1</mn> <mpadded width="0"><mi>A</mi></mpadded></msup></mtd></mtr> <mtr><mtd><mpadded width="0" lspace="-100%width"><mstyle scriptlevel="1"><mrow><msup><mi>σ</mi> <mi>A</mi></msup></mrow></mstyle></mpadded><mo stretchy="false">↓</mo></mtd> <mtd></mtd> <mtd><mo stretchy="false">↓</mo><mpadded width="0"><mstyle scriptlevel="1"><mrow><msup><mi>t</mi> <mi>A</mi></msup></mrow></mstyle></mpadded></mtd></mtr> <mtr><mtd><mi>P</mi><mo stretchy="false">(</mo><mi>B</mi><msup><mo stretchy="false">)</mo> <mpadded width="0"><mi>A</mi></mpadded></msup></mtd> <mtd><munder><mo>⟶</mo><mrow><msubsup><mi>χ</mi> <mi>σ</mi> <mi>A</mi></msubsup></mrow></munder></mtd> <mtd><mi>P</mi><mo stretchy="false">(</mo><mn>1</mn><msup><mo stretchy="false">)</mo> <mpadded width="0"><mi>A</mi></mpadded></msup></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \begin{matrix} B^{\mathrlap{A}} & \longrightarrow & 1^{\mathrlap{A}} \\ \mathllap{\scriptsize{\sigma^A}}\downarrow & & \downarrow \mathrlap{\scriptsize{t^A}} \\ P(B)^{\mathrlap{A}} & \underset{\chi_\sigma^A}{\longrightarrow} & P(1)^{\mathrlap{A}} \end{matrix} </annotation></semantics></math></div> <p>is produced by</p> <pre><code> \[ \begin{matrix} B^{\mathrlap{A}} & \longrightarrow & 1^{\mathrlap{A}} \\ \mathllap{\scriptsize{\sigma^A}}\downarrow & & \downarrow \mathrlap{\scriptsize{t^\alpha}} \\ P(B)^{\mathrlap{A}} & \underset{\chi_\sigma^A}{\longrightarrow} & P(1)^{\mathrlap{A}} \end{matrix} \]</code></pre> <p>Matrix and array environments also accept certain options. Here is an example using a “\rowlines{solid}” option to hack a sequent derivation (much more nicely than by resorting to \frac commands):</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mrow><mtable rowlines="solid"><mtr><mtd><mi>X</mi><mo>×</mo><mi>B</mi><mo>→</mo><mi>P</mi><mi>A</mi><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mi>in</mi><mspace width="thickmathspace"></mspace><mstyle mathvariant="bold"><mi>S</mi></mstyle></mtd></mtr> <mtr><mtd><mi>X</mi><mo>×</mo><mi>B</mi><mo>↛</mo><mi>A</mi><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mi>in</mi><mspace width="thickmathspace"></mspace><mi>Rel</mi><mo stretchy="false">(</mo><mstyle mathvariant="bold"><mi>S</mi></mstyle><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mi>X</mi><mo>↛</mo><mi>A</mi><mo>×</mo><mi>B</mi><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mi>in</mi><mspace width="thickmathspace"></mspace><mi>Rel</mi><mo stretchy="false">(</mo><mstyle mathvariant="bold"><mi>S</mi></mstyle><mo stretchy="false">)</mo></mtd></mtr> <mtr><mtd><mi>X</mi><mo>→</mo><mi>P</mi><mo stretchy="false">(</mo><mi>A</mi><mo>×</mo><mi>B</mi><mo stretchy="false">)</mo><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mspace width="thickmathspace"></mspace><mi>in</mi><mspace width="thickmathspace"></mspace><mstyle mathvariant="bold"><mi>S</mi></mstyle></mtd></mtr></mtable></mrow></mrow><annotation encoding="application/x-tex"> \array{\arrayopts{\rowlines{solid}} X \times B \to P A\;\;\; in\; \mathbf{S} \\ X \times B \nrightarrow A\;\;\; in\; Rel(\mathbf{S}) \\ X \nrightarrow A \times B\;\;\; in\; Rel(\mathbf{S}) \\ X \to P(A \times B)\;\;\; in \; \mathbf{S} } </annotation></semantics></math></div> <p>is produced by</p> <pre><code> $$ \array{ \arrayopts{\rowlines{solid}} X \times B \to P A\;\;\; in\; \mathbf{S} \\ X \times B \nrightarrow A\;\;\; in\; Rel(\mathbf{S}) \\ X \nrightarrow A \times B\;\;\; in\; Rel(\mathbf{S}) \\ X \to P(A \times B)\;\;\; in \; \mathbf{S} }$$</code></pre> <p>But use Tikz wherever possible.</p> <h3 id="ImageFiles">Image files</h3> <p>One can upload an image to the nLab as follows.</p> <ol> <li> <p>Add <code>[[some_picture.jpg:pic]]</code> or <code>[[some text that you wish to display|some_picture.jpg:pic]]</code> to the page to which you wish to add the image. Save your edit.</p> </li> <li> <p>Click on the <code>?</code> symbol that appears after ‘some_picture.jpg’ or ‘some text that you wish to display’ on the page.</p> </li> <li> <p>You will be sent to a page where you can upload the image.</p> </li> <li> <p>After uploading the image, you will need to make some edit to the page to refresh it. After this, the picture should appear on the page.</p> </li> </ol> <p>The <code>:pic</code> functionality does not allow much configuration.Once it is uploaded, one can replace it by an <code>imagefromfile</code> block, such as the following.</p> <pre><code> \begin{imagefromfile} "file_name": "FileName.xyz" \end{imagefromfile}</code></pre> <p>The contents of the block must be a valid JSON, but without curly opening and closing braces. There are several possible parameters. A common case is the following, which sets the width of the image (the height is automatically adjusted correspondingly).</p> <pre><code> \begin{imagefromfile} "file_name": "FileName.xyz", "width": 300 \end{imagefromfile}</code></pre> <p>The default unit is pixels; to specify a different one, or to make it explicit, one uses the ‘unit’ parameter. Currently the only permitted values are “px” and “em”, which correspond to pixels and ‘em’ respectively.</p> <pre><code> \begin{imagefromfile} "file_name": "FileName.xyz", "width": 300, "unit": "px" \end{imagefromfile}</code></pre> <p>Another common case is the following, which puts the image to the right of the page with the other text fitting around it, with a nice margin in between. The ‘unit’ inside the ‘margin’ block behaves in the same way as the overall width/height, in particular defaulting to pixels, but applies only to the margin.</p> <pre><code> \begin{imagefromfile} "file_name": "FileName.xyz", "float": "right", "margin": { "top": -40, "right": 0, "bottom": 20, "left": 20 } \end{imagefromfile}</code></pre> <p>The full list of options is shown below. Except for “file_name”, these are all either optional or have defaults.</p> <pre><code> \begin{imagefromfile} "file_name": "FileName.xyz", "web": "nlab", "width": 300, "height": 300, "unit": "px", "float": "right", "margin": { "top": -40, "right": 0, "bottom": 20, "left": 20, "unit": "px" }, "alt": "Some picture", "caption": "This is some picture" \end{imagefromfile}</code></pre> <p>These should be fairly self-explanatory. The <code>alt</code> parameter corresponds to the <code><img></code> attribute of the same name.</p> <p>Note in particular that a caption can be added. If one is floating the graphic and one uses a negative value for <code>top</code> in the values for <code>margin</code>, which is quite often a good idea, then one typically will need a positive value for <code>bottom</code> in order for text wrapping around the image not to obscure the caption.</p> <p>Be judicious when floating graphics. It may be easier to read a page, especially on a mobile phone, if the graphic is simply placed below a paragraph rather than floating to the side of it.</p> <h3 id="how_to_centre">How to centre</h3> <p>Text or figures can be centred exactly as in LaTeX. For instance,</p> <div style="text-align: center"> Hello! </div> <p>is produced by</p> <pre><code> \begin{centre} Hello! \end{centre} </code></pre> <p>or by the following (i.e. either UK or US spelling can be used).</p> <pre><code> \begin{center} Hello! \end{center} </code></pre> <h2 id="other_sources_of_information">Other Sources of Information</h2> <h3 id="instiki_howto">Instiki HowTo</h3> <p>For general information and help with Instiki, see the <a href="http://golem.ph.utexas.edu/instiki/show/HomePage">Instiki</a> wiki.</p> <p>Here are some useful specifics:</p> <ul> <li><a href="http://daringfireball.net/projects/markdown/syntax">Use basic Markdown syntax</a></li> <li><a href="http://maruku.rubyforge.org/maruku.html#extra">Make tables, footnotes, etc</a></li> <li><a href="http://golem.ph.utexas.edu/instiki/show/Theorems">Add definitions and theorems</a></li> <li><a href="https://golem.ph.utexas.edu/~distler/maruku/proposal.html">Add metadata to your markup</a></li> <li><a href="http://golem.ph.utexas.edu/~distler/blog/itex2MMLcommands.html">Type itex equations</a></li> <li><a href="http://golem.ph.utexas.edu/instiki/show/Syntax#wiki">Use wiki syntax</a></li> <li><a href="http://golem.ph.utexas.edu/instiki/show/SVG">Embed SVG in equations</a></li> <li><a href="http://golem.ph.utexas.edu/instiki/show/File+Uploads">Upload files</a></li> <li><a href="http://golem.ph.utexas.edu/instiki/show/AccessKeys">Use keyboard shortcuts</a></li> </ul> <h3 id="survey_of_available_math_typesetting_commands">Survey of available math typesetting commands</h3> <ul> <li><a href="http://golem.ph.utexas.edu/~distler/blog/itex2MMLcommands.html">itex2MML Command Summary</a></li> <li><a href="https://golem.ph.utexas.edu/~distler/WebTeX/docs/wtxsec5.html">webTeX documentation</a></li> </ul> <p>This is worth perusing carefully; for example, iTeX does not provide a command such as <code>\prescript</code> to generate left subscripts. Instead it contains the more general <code>\multiscripts</code> command to typeset subscripts and superscripts both to the left and right of an expression. For instance, the math mode text <code>\multiscripts{_0^2_1}{R}{_i^j_k}</code> produces</p> <div class="maruku-equation"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block" class="maruku-mathml"><semantics><mrow><mmultiscripts><mi>R</mi><mi>i</mi> <mi>j</mi> <mi>k</mi> <none></none><mprescripts></mprescripts><mn>0</mn> <mn>2</mn> <mn>1</mn> <none></none></mmultiscripts></mrow><annotation encoding="application/x-tex">\multiscripts{_0^2_1}{R}{_i^j_k}</annotation></semantics></math></div> <h2 id="technical">Technical</h2> <h3 id="software">Software required to use the <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab</h3> <p>The <math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" class="maruku-mathml"><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math>Lab serves mathematical symbols as <a href="http://en.wikipedia.org/wiki/MathML">MathML</a>. Presently the browsers with <em>native</em> MathML support, and hence immediate rendering of the formulas, are those based on the Gecko, Blink, and WebKit rendering engines, e.g., Firefox, Chrome/Chromium, Safari, etc.</p> <p>Older unmaintained browsers like Internet Explorer, as well as a few obscure mobile and desktop browsers, fall back to rendering MathML formulas using the <a href="https://www.mathjax.org/">MathJax</a> <a href="https://en.wikipedia.org/wiki/Polyfill_(programming%29">polyfill</a>. This works, but is slow. On small pages it is fine, on larger pages with many formulas MathJax may take up to several minutes for rendering.</p> <h3 id="how_to_search_the_nlab__nforum_from_firefox">How to search the nLab & nForum from firefox</h3> <p>(Firefox - and clones - specific)</p> <p>Here are some search plugins for firefox that will let you search the nLab from the firefox search bar. <strong>EDIT:</strong> These are old and may not work with recent versions of Firefox. Instead you can use the <a href="https://addons.mozilla.org/en-US/firefox/addon/search-engine-creator/">search engine creator plugin</a>. Someone should update these files to conform to <a href="https://developer.mozilla.org/en-US/Add-ons/Creating_OpenSearch_plugins_for_Firefox">OpenSearch</a>; then they might work with other browsers too.</p> <ul> <li><a class="existingWikiWord" href="/nlab/files/nlab-search.xml" title="Firefox search plugin to search the nLab">Firefox search plugin to search the nLab</a>: searches the nLab (like the search box at the top of every page).</li> <li><a class="existingWikiWord" href="/nlab/files/nlab-goto.xml" title="Firefox search plugin to go to nLab pages">Firefox search plugin to go to nLab pages</a>: takes you directly to the page with a given exact title (if it exists; otherwise it takes you to an edit box to create such a page).</li> <li><a class="existingWikiWord" href="/nlab/files/nlab-edit.xml" title="Firefox search plugin to edit pages directly">Firefox search plugin to edit pages directly</a>: takes you directly to the “edit” page for a given title.</li> <li><a class="existingWikiWord" href="/nlab/files/nforum-topic-search.xml" title="Firefox search plugin to search the nForum Topics">Firefox search plugin to search the nForum Topics</a>: searches the nForum Topics.</li> <li><a class="existingWikiWord" href="/nlab/files/nforum-comment-search.xml" title="Firefox search plugin to search the nForum Comments">Firefox search plugin to search the nForum Comments</a>: searches the nForum Comments.</li> </ul> <p>It would be nice if these had different icons. To use one or more of these, drop them in the ‘searchplugins’ directory of your firefox profile.</p> <p>Alternatively, you can try the <a href="https://addons.mozilla.org/en-US/firefox/addon/add-to-search-bar/">add to search bar</a> add-on for Firefox. This will let you right-click in the search box on any page and add it to your search bar. (You can’t duplicate the “goto” and “edit” plugins this way, though.)</p> <p>If DuckDuckGo is your search engine, you can type “!nl” to search nLab, e.g. “!nl morphism”.</p> <h3 id="how_to_edit_nlab_pages_in_your_favorite_text_editor">How to edit nLab pages in your favorite text editor</h3> <p>(Firefox - and clones - specific)</p> <p>One way to do this is to install one of several firefox extensions, e.g. <a href="https://addons.mozilla.org/en-US/firefox/addon/edit-with-emacs1/?src=search">for Emacs</a> or <a href="https://addons.mozilla.org/en-US/firefox/addon/ghosttext/?src=search">for Sublime Text, Atom, VS Code, and Vim</a>. There are also extensions which add some basic editor features to html text areas, for instance <a href="https://addons.mozilla.org/en-US/firefox/addon/find-replace-for-text-editing/?src=search">Find & Replace for Text Editing</a> allows you to use regular expressions and text templates.</p> <p>If your favorite editor is <a href="http://www.gnu.org/software/emacs/">Emacs</a> with <a href="http://www.gnu.org/software/auctex/">AucTeX</a>, you may find the following snippet useful to put in your <code>.emacs</code> file:</p> <pre><code>(add-to-list 'auto-mode-alist '("/\\(www.\\)?ncatlab.org" . latex-mode)) (add-to-list 'auto-mode-alist '("/golem.ph.utexas.edu" . latex-mode)) (defun nlab-latex-fixes () (when (or (string-match "/\\(www.\\)?ncatlab.org" buffer-file-name) (string-match "/golem.ph.utexas.edu" buffer-file-name)) (longlines-mode t) (set (make-local-variable 'TeX-open-quote) "\"") (set (make-local-variable 'TeX-close-quote) "\""))) (add-hook 'LaTeX-mode-hook 'nlab-latex-fixes)</code></pre> <p>This will tell Emacs to automatically edit nLab pages (and nCafe comments as well, for good measure) in LaTeX mode, with long lines wrapped using soft returns, and ordinary double-quotes rather than LaTeX ones.</p> <h3 id="how_to_print_a_page_from_the_nlab">How to print a page from the nLab</h3> <p>Use the ‘Print’ link at the bottom of the page. As a shortcut in most browsers on most operating systems, hit Alt-Shift-P while the focus is in the page to go to the printable page.</p> <h3 id="how_to_customize_the_nlab">How to customize the nLab</h3> <p>(Firefox - and clones - specific)</p> <p>You may wish to customize the font scheme (both for math or text) on the nLab, as well as tweak things such as the small edit box for comments. Try using the Stylish add-on if you are using Firefox; Stylish is a plug-in for firefox enabling you to customize websites; it is available <a href="https://addons.mozilla.org/en-US/firefox/addon/2108">here</a>.</p> <p>Currently, the following stylish themes are available:</p> <ul> <li><a href="http://userstyles.org/styles/17934">nLab Stylish theme</a> by <a class="existingWikiWord" href="/nlab/show/Bruce+Bartlett">Bruce Bartlett</a>. This nLab theme changes the fonts on the nLab to a serif-style, and makes the edit box much bigger for an overall more pleasant experience!</li> <li><a href="http://userstyles.org/styles/22800">nLab – nCafe style</a> by <a class="existingWikiWord" href="/nlab/show/Daniel+Sch%C3%A4ppi">Daniel Schäppi</a>. This is based on Bruce Bartlett’s theme but changes the overall colour scheme somewhat to something a little more like the n-Cafe.</li> </ul> <h3 id="download">How to download a local copy of the nLab</h3> <p>A current git repository of the source code for nLab pages is available at <a href="https://github.com/ncatlab/nlab-content">https://github.com/ncatlab/nlab-content</a> and a current git repository of the compiled HTML code for nLab pages is available at <a href="https://github.com/ncatlab/nlab-content-html">https://github.com/ncatlab/nlab-content-html</a>.</p> <div class="property">category: <a class="category_link" href="/nlab/all_pages/meta">meta</a></div></body></html> </div> <div class="revisedby"> <p> Last revised on July 1, 2024 at 07:37:59. See the <a href="/nlab/history/HowTo" style="color: #005c19">history</a> of this page for a list of all contributions to it. </p> </div> <div class="navigation navfoot"> <a href="/nlab/edit/HowTo" accesskey="E" class="navlink" id="edit" rel="nofollow">Edit</a><a href="https://nforum.ncatlab.org/discussion/2528/#Item_71">Discuss</a><span class="backintime"><a href="/nlab/revision/HowTo/209" accesskey="B" class="navlinkbackintime" id="to_previous_revision" rel="nofollow">Previous revision</a></span><a href="/nlab/show/diff/HowTo" accesskey="C" class="navlink" id="see_changes" rel="nofollow">Changes from previous revision</a><a href="/nlab/history/HowTo" accesskey="S" class="navlink" id="history" rel="nofollow">History (209 revisions)</a> <a href="/nlab/show/HowTo/cite" style="color: black">Cite</a> <a href="/nlab/print/HowTo" accesskey="p" id="view_print" rel="nofollow">Print</a> <a href="/nlab/source/HowTo" id="view_source" rel="nofollow">Source</a> </div> </div> <!-- Content --> </div> <!-- Container --> </body> </html>