Ticket #6495: trac_6495-part2-everything-else-9774.patch
| File trac_6495-part2-everything-else-9774.patch, 53.2 KB (added by jhpalmieri, 11 months ago) |
|---|
-
.hgignore
# HG changeset patch # User J. H. Palmieri <palmieri@math.washington.edu> # Date 1311223150 25200 # Node ID d1ac37ff4b867625a70f4e450aa5633bb9406225 # Parent 87d6f2107539d4379ddf73faaf85d1df8d599a7e #6495: Break the reference manual into more manageable pieces. Part 2: all important changes to files. diff --git a/.hgignore b/.hgignore
a b sage/modular/arithgroup/farey_symbol.h 57 57 doc/output/ 58 58 doc/en/reference/sage/ 59 59 doc/en/reference/sagenb/ 60 doc/en/reference/.*/sage/ 61 doc/en/reference/.*/sagenb/ -
MANIFEST.in
diff --git a/MANIFEST.in b/MANIFEST.in
a b include doc/fr/a_tour_of_sage/eigen_plot 39 39 include doc/fr/a_tour_of_sage/sin_plot.png 40 40 include doc/tr/a_tour_of_sage/eigen_plot.png 41 41 include doc/tr/a_tour_of_sage/sin_plot.png 42 recursive-include doc/en/reference/ media *42 recursive-include doc/en/reference/*/media * 43 43 recursive-include doc/en/thematic_tutorials/media * 44 44 recursive-include doc/common/static * 45 45 recursive-include doc/common/themes * -
doc/common/builder.py
diff --git a/doc/common/builder.py b/doc/common/builder.py
a b def copytree(src, dst, symlinks=False, i 82 82 raise shutil.Error, errors 83 83 84 84 85 ########################################## 86 # Parallel Building Ref Manual # 87 ########################################## 88 89 def build_ref_doc(doc, lang, format, output_dir, *args, **kwds): 90 # Build the reference manual for doc 91 static_dir = os.path.join(output_dir, 'reference', '_static') 92 bad_static = os.path.join(output_dir, doc, '_static') 93 # We need to remove the link to "_static" before generating the 94 # documentation, because the html doc builder writes to the 95 # _static directory. 96 if (os.path.isdir(static_dir) and os.path.isdir(bad_static) 97 and os.path.islink(bad_static)): 98 os.remove(bad_static) 99 getattr(ReferenceSubBuilder(doc, lang), format)(*args, **kwds) 100 # The standard Sphinx html build puts a copy of the "static" 101 # directory in reference/doc/_static. For the reference manual, 102 # these are all identical to reference/_static, so delete the 103 # directory reference/doc/_static and replace it with a link to 104 # reference/_static. This saves hundreds of megabytes of disk 105 # space. 106 if (os.path.isdir(static_dir) and os.path.isdir(bad_static) 107 and not os.path.islink(bad_static)): 108 shutil.rmtree(bad_static) 109 if os.path.isdir(static_dir): 110 os.symlink(static_dir, bad_static) 85 111 86 112 ########################################## 87 113 # Builders # … … class DocBuilder(object): 118 144 119 145 - ``lang`` - (default "en") the language of the document. 120 146 """ 121 if '/' in name: 122 lang, name = name.split(os.path.sep) 123 self.name = name 147 doc = name.split(os.path.sep) 148 149 if doc[0] in LANGUAGES: 150 lang = doc[0] 151 doc.pop(0) 152 153 self.name = os.path.join(*doc) 124 154 self.lang = lang 125 self.dir = os.path.join(SAGE_DOC, lang,name)155 self.dir = os.path.join(SAGE_DOC, self.lang, self.name) 126 156 127 157 #Make sure the .static and .templates directories are there 128 158 mkdir(os.path.join(self.dir, "static")) … … class DocBuilder(object): 220 250 changes = builder_helper('changes') 221 251 linkcheck = builder_helper('linkcheck') 222 252 253 223 254 class AllBuilder(object): 224 255 """ 225 256 A class used to build all of the documentation. … … class AllBuilder(object): 239 270 This is the function which goes through all of the documents 240 271 and does the actual building. 241 272 """ 242 for document in self.get_all_documents(): 273 docs = self.get_all_documents() 274 refs = [x for x in docs if x.endswith('reference')] 275 others = [x for x in docs if not x.endswith('reference')] 276 for document in others: 277 logger.warning("\nBuilding %s.\n" % document) 278 getattr(get_builder(document), name)(*args, **kwds) 279 # Build the reference manual twice to resolve references. 280 # That is, build once to construct the intersphinx inventory 281 # files, and then build the second time for real. So the 282 # first build should be as fast as possible; thus do an html 283 # build first. 284 logger.warning("\nBuilding reference manual, first pass.\n") 285 global ALLSPHINXOPTS 286 ALLSPHINXOPTS += ' -Q ' 287 for document in refs: 288 getattr(get_builder(document), 'html')(*args, **kwds) 289 logger.warning("Building reference manual, second pass.\n") 290 ALLSPHINXOPTS = ALLSPHINXOPTS.replace('-Q', '-q') + ' ' 291 for document in refs: 243 292 getattr(get_builder(document), name)(*args, **kwds) 244 293 245 294 def get_all_documents(self): … … class AllBuilder(object): 271 320 272 321 return documents 273 322 323 274 324 class WebsiteBuilder(DocBuilder): 275 325 def html(self): 276 326 """ … … class WebsiteBuilder(DocBuilder): 302 352 303 353 DocBuilder.clean(self) 304 354 305 class ReferenceBuilder(DocBuilder): 355 356 class ReferenceBuilder(AllBuilder): 306 357 """ 307 This the class used to build the reference manual. It is 358 This class builds the reference manual. It uses DocBuilder to 359 build the top-level page and ReferenceSubBuilder for each 360 sub-component. 361 """ 362 def __init__(self, name, lang='en'): 363 """ 364 Records the reference manual's name, in case it's not 365 identical to 'reference'. 366 """ 367 AllBuilder.__init__(self) 368 doc = name.split(os.path.sep) 369 370 if doc[0] in LANGUAGES: 371 lang = doc[0] 372 doc.pop(0) 373 374 self.name = doc[0] 375 self.lang = lang 376 377 def _output_dir(self, type, lang='en'): 378 """ 379 Returns the directory where the output of type type is stored. 380 If the directory does not exist, then it will automatically be 381 created. 382 383 EXAMPLES:: 384 385 sage: import os, sys; sys.path.append(os.environ['SAGE_DOC']+'/common/'); import builder 386 sage: b = builder.ReferenceBuilder('reference') 387 sage: b._output_dir('html') 388 '.../devel/sage/doc/output/html/en/reference' 389 """ 390 return mkdir(os.path.join(SAGE_DOC, "output", type, lang, self.name)) 391 392 def _wrapper(self, format, *args, **kwds): 393 """ 394 Builds reference manuals. For each language, it builds the 395 top-level document and its components. 396 """ 397 for lang in LANGUAGES: 398 refdir = os.path.join(SAGE_DOC, lang, self.name) 399 if not os.path.exists(refdir): 400 continue 401 402 output_dir = self._output_dir(format, lang) 403 getattr(DocBuilder(self.name, lang), format)(*args, **kwds) 404 405 from multiprocessing import Pool, cpu_count 406 # Determine the number of threads from the environment variable 407 # SAGE_NUM_THREADS. 408 pool = Pool(int(os.environ.get('SAGE_NUM_THREADS', 1))) 409 for doc in self.get_all_documents(refdir): 410 pool.apply_async(build_ref_doc, 411 (doc, lang, format, 412 os.path.split(output_dir)[0]) + args, kwds) 413 pool.close() 414 pool.join() 415 if format == 'html': 416 # html build: combine the todo lists from the 417 # different modules. 418 todofile = os.path.join(output_dir, 'todolist', 'index.html') 419 old = open(todofile).read() 420 note = "The combined to do list is only available in the html version of the reference manual." 421 preamble = old.find(note) 422 postamble = preamble + len(note) 423 if preamble != -1: 424 old_todofile = os.path.join(output_dir, 'todolist', 'index-old.html') 425 shutil.move(todofile, old_todofile) 426 new = open(todofile, 'w') 427 new.write(old[:preamble]) 428 for f in os.listdir(output_dir): 429 index = os.path.join(output_dir, f, 'index.html') 430 if (f != 'todolist' and os.path.exists(index)): 431 html = open(index).read() 432 start = html.find('<div class="admonition-todo') 433 end = html.find('<div class="section" id="indices-and-tables">') 434 if start != -1: 435 html = html[start:end].replace('sage/%s' %f, 436 '../%s/sage/%s' % (f, f)) 437 new.write(html) 438 new.write(old[postamble:]) 439 new.close() 440 441 logger.warning(''' 442 Build finished. The Sage reference manual can be found in 443 444 %s 445 ''' % (os.path.join(output_dir, 'index.html'))) 446 # PDF: we need to build master index file which lists all 447 # of the PDF file. So we create an html file, based on 448 # the file index.html from the "website" target. 449 if format == 'pdf': 450 import re 451 # First build the website page. (This only takes a 452 # few seconds.) 453 getattr(get_builder('website'), 'html')() 454 # Copy the relevant pieces of 455 # output/html/en/website/_static to output_dir. 456 # (Don't copy all of _static to save some space: we 457 # don't need all of the MathJax stuff, and in 458 # particular we don't need the fonts.) 459 website_dir = os.path.join(SAGE_DOC, 'output', 'html', 460 'en', 'website') 461 static_files = ['COPYING.txt', 'basic.css', 'blank.gif', 462 'default.css', 'doctools.js', 'favicon.ico', 463 'file.png', 'jquery.js', 'minus.png', 464 'pdf.png', 'plus.png', 'pygments.css', 465 'sage.css', 'sageicon.png', 'sagelogo.png', 466 'searchtools.js', 'sidebar.js', 'underscore.js'] 467 try: 468 os.mkdir(os.path.join(output_dir, '_static')) 469 except OSError: 470 pass 471 for f in static_files: 472 shutil.copyfile(os.path.join(website_dir, '_static', f), 473 os.path.join(output_dir, '_static', f)) 474 # Now modify website's index.html page and write it 475 # to output_dir. 476 f = open(os.path.join(website_dir, 'index.html')) 477 html = f.read().replace('Documentation', 'Reference') 478 f.close() 479 html_output_dir = os.path.dirname(website_dir) 480 html = html.replace('http://www.sagemath.org', 481 os.path.join(html_output_dir, 'index.html')) 482 # From index.html, we want the preamble and the tail. 483 html_end_preamble = html.find('<h1>Sage Reference') 484 html_bottom = html.rfind('</table>') + len('</table>') 485 # For the content, we modify doc/en/reference/index.rst, 486 # which has two parts: the body and the table of contents. 487 f = open(os.path.join(SAGE_DOC, lang, 'reference', 'index.rst')) 488 rst = f.read() 489 f.close() 490 # Replace rst links with html links. There are two types: 491 # 492 # `blah`__ 493 # __ link 494 # 495 # `blah <module/index.html>`_ 496 # 497 # For the second type, also change "module/index.html" 498 # to "module/module.pdf". 499 rst = re.sub('`([^`]*)`__\.\n\n__ (.*)', 500 r'<a href="\2">\1</a>.', rst) 501 rst = re.sub(r'`([^<]*?)\s+<(.*)/index\.html>`_', 502 r'<a href="\2/\2.pdf">\1 <img src="_static/pdf.png" /></a>', 503 rst) 504 start = rst.find('=\n') + 1 505 end = rst.find('Table of Contents') 506 # Body: add paragraph <p> markup. 507 rst_body = rst[start:end] 508 rst_body = rst_body.replace('\n\n', '</p>\n<p>') 509 start = rst.find('Table of Contents') + 2*len('Table of Contents') + 1 510 end = rst.find('.. include:: footer.txt') 511 # TOC: change * to <li>, change rst headers to html headers. 512 rst_toc = rst[start:end] 513 rst_toc = rst_toc.replace('*', '<li>') 514 rst_toc = re.sub('\n([A-Z][a-zA-Z, ]*)\n-*\n', 515 '</ul>\n\n\n<h2>\\1</h2>\n\n<ul>\n', rst_toc) 516 # Now write the file. 517 new_index = open(os.path.join(output_dir, 'index.html'), 'w') 518 new_index.write(html[:html_end_preamble]) 519 new_index.write('<h1>' + rst[:rst.find('\n')] + 520 ' (PDF version)'+ '</h1>') 521 new_index.write(rst_body) 522 new_index.write('<h2>Table of Contents</h2>\n\n<ul>') 523 new_index.write(rst_toc) 524 new_index.write('</ul>\n\n') 525 new_index.write(html[html_bottom:]) 526 new_index.close() 527 logger.warning(''' 528 PDF documents have been created in subdirectories of 529 530 %s 531 532 Alternatively, you can open 533 534 %s 535 536 for a webpage listing all of the documents.''' % (output_dir, 537 os.path.join(output_dir, 538 'index.html'))) 539 540 def get_all_documents(self, refdir): 541 """ 542 Returns a list of all reference manual components to build. 543 We add a component name if it's a subdirectory of the manual's 544 directory and contains a file named 'index.rst'. 545 """ 546 documents = [] 547 548 for doc in os.listdir(refdir): 549 if os.path.exists(os.path.join(refdir, doc, 'index.rst')): 550 documents.append(os.path.join(self.name, doc)) 551 552 return documents 553 554 555 class ReferenceSubBuilder(DocBuilder): 556 """ 557 This class builds sub-components of the reference manual. It is 308 558 resposible for making sure the auto generated ReST files for the 309 559 Sage library are up to date. 310 560 … … class ReferenceBuilder(DocBuilder): 715 965 716 966 def get_builder(name): 717 967 """ 718 Returns a either a AllBuilder or DocBuilder object depending719 on whether ``name`` is 'all' or not. These are the objects720 which do all the real work in building thedocumentation.968 Returns an appropriate *Builder object for the document ``name``. 969 DocBuilder and its subclasses do all the real work in building the 970 documentation. 721 971 """ 722 972 if name == 'all': 723 973 return AllBuilder() 724 974 elif name.endswith('reference'): 725 975 return ReferenceBuilder(name) 976 elif 'reference' in name: 977 return ReferenceSubBuilder(name) 726 978 elif name.endswith('website'): 727 979 return WebsiteBuilder(name) 728 980 elif name in get_documents() or name in AllBuilder().get_all_documents(): … … def help_documents(s=u""): 812 1064 shortcut 'all' for all documents, available to the Sage 813 1065 documentation builder. 814 1066 """ 1067 docs = get_documents() 815 1068 s += "DOCUMENTs:\n" 816 s += format_columns(get_documents() + ['all (!)']) 817 s += "(!) Builds everything.\n" 1069 s += format_columns(docs + ['all (!)']) 1070 s += "(!) Builds everything.\n\n" 1071 if 'reference' in docs: 1072 s+= "Other valid document names take the form 'reference/DIR', where\n" 1073 s+= "DIR is a subdirectory of SAGE_ROOT/devel/sage/doc/en/reference/.\n" 1074 s+= "This builds just the specified part of the reference manual.\n" 818 1075 return s 819 1076 820 1077 def get_formats(): -
doc/common/themes/sage/layout.html
diff --git a/doc/common/themes/sage/layout.html b/doc/common/themes/sage/layout.html
a b 7 7 {% if pathto(master_doc).endswith('.html') %} 8 8 <a href="{{ '../' + pathto(master_doc) }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> 9 9 {% else %} 10 <a href="{{ '../' + pathto(master_doc ) + 'index.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a>10 <a href="{{ '../' + pathto(master_doc, 1) + '.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> 11 11 {% endif %} 12 12 {% endif %} 13 13 {{ super() }} -
new file doc/common/themes/sageref/layout.html
diff --git a/doc/common/themes/sageref/layout.html b/doc/common/themes/sageref/layout.html new file mode 100644
- + 1 {% extends "basic/layout.html" %} 2 3 {% block rootrellink %} 4 {% if docstitle.startswith('Sage Documentation') %} 5 <a href="http://www.sagemath.org"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> 6 {% else %} 7 {% if pathto(master_doc).endswith('.html') %} 8 <a href="{{ '../../' + pathto(master_doc) }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> 9 {% else %} 10 <a href="{{ '../../' + pathto(master_doc,1) + '.html' }}"><img src="{{ pathto('_static/sagelogo.png', 1) }}" style="vertical-align: middle" title="Sage Logo"></a> 11 <a href="{{ '../' + 'index.html' }}"> Sage Reference Manual </a> » 12 {% endif %} 13 {% endif %} 14 {{ super() }} 15 {% endblock %} 16 17 {% block extrahead %} 18 <link rel="icon" href="{{ pathto('_static/sageicon.png', 1) }}" type="image/x-icon" /> 19 {% endblock %} 20 21 {%- block footer %} 22 {{ super() }} 23 <script type="text/javascript"> 24 /*global jQuery, window */ 25 /* Sphinx sidebar toggle. Putting this code at the end of the body 26 * enables the toggle for the live, static, and offline docs. Note: 27 * sage.misc.html.math_parse() eats jQuery's dollar-sign shortcut. */ 28 var jq = jQuery; 29 jq(document).ready(function () { 30 var bar, bod, bg, fg, key, tog, wid_old, wid_new, resize, get_state, set_state; 31 bod = jq('div.bodywrapper'); 32 bar = jq('div.sphinxsidebar'); 33 tog = jq('<div class="sphinxsidebartoggle"></div>'); 34 35 /* Delayed resize helper. Not perfect but good enough. */ 36 resize = function () { 37 setTimeout(function () { 38 tog.height(bod.height()); 39 }, 100); 40 }; 41 jq(window).resize(function () { 42 resize(); 43 }); 44 45 /* Setup and add the toggle. See Sphinx v0.5.1 default.css. */ 46 fg = jq('div.sphinxsidebar p a').css('color') || 'rgb(152, 219, 204)'; 47 bg = jq('div.document').css('background-color') || 'rgb(28, 78, 99)'; 48 wid_old = '230px'; 49 wid_new = '5px'; 50 tog.css('background-color', bg) 51 .css('border-width', '0px') 52 .css('border-right', wid_new + ' ridge ' + bg) 53 .css('cursor', 'pointer') 54 .css('position', 'absolute') 55 .css('left', '-' + wid_new) 56 .css('top', '0px') 57 .css('width', wid_new); 58 bod.css('position', 'relative'); 59 bod.prepend(tog); 60 resize(); 61 62 /* Cookie helpers. */ 63 key = 'sphinxsidebar='; 64 set_state = function (s) { 65 var date = new Date(); 66 /* Expiry in 7 days. */ 67 date.setTime(date.getTime() + (7 * 24 * 3600 * 1000)); 68 document.cookie = key + encodeURIComponent(s) + '; expires=' + 69 date.toUTCString() + '; path=/'; 70 }; 71 get_state = function () { 72 var i, c, crumbs = document.cookie.split(';'); 73 for (i = 0; i < crumbs.length; i += 1) { 74 c = crumbs[i].replace(/^\s+/, ''); 75 if (c.indexOf(key) === 0) { 76 return decodeURIComponent(c.substring(key.length, c.length)); 77 } 78 } 79 return null; 80 }; 81 82 /* Event handlers. */ 83 tog.mouseover(function (ev) { 84 tog.css('border-right-color', fg); 85 }).mouseout(function (ev) { 86 tog.css('border-right-color', bg); 87 }).click(function (ev) { 88 if (bod.hasClass('wide')) { 89 bod.removeClass('wide'); 90 bod.css('margin-left', wid_old); 91 bar.css('width', wid_old); 92 bar.show(); 93 set_state('visible'); 94 } else { 95 set_state('hidden'); 96 bar.hide(); 97 bar.css('width', '0px'); 98 bod.css('margin-left', wid_new); 99 bod.addClass('wide'); 100 } 101 resize(); 102 }); 103 104 /* Hide the normally visible sidebar? */ 105 if (get_state() === 'hidden') { 106 tog.trigger('click'); 107 } else { 108 set_state('visible'); 109 } 110 }); 111 </script> 112 {%- endblock %} 113 114 <!-- This macro block for the sidebar is heavily borrowed from the basic --> 115 <!-- theme of Sphinx 0.6.3. In particular, we borrowed from the file --> 116 <!-- themes/basic/layout.html distributed with Sphinx 0.6.3. --> 117 {%- macro sidebar() %} 118 {%- if not embedded %}{% if not theme_nosidebar|tobool %} 119 <div class="sphinxsidebar"> 120 <div class="sphinxsidebarwrapper"> 121 {%- block sidebarlogo %} 122 {%- if logo %} 123 <p class="logo"><a href="{{ pathto(master_doc) }}"> 124 <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/> 125 </a></p> 126 {%- endif %} 127 {%- endblock %} 128 {%- block sidebartoc %} 129 {%- if display_toc %} 130 <h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3> 131 {{ toc }} 132 {%- endif %} 133 {%- endblock %} 134 {%- block sidebarrel %} 135 {%- if prev %} 136 <h4>{{ _('Previous topic') }}</h4> 137 <p class="topless"><a href="{{ prev.link|e }}" 138 title="{{ _('previous chapter') }}">{{ prev.title }}</a></p> 139 {%- endif %} 140 {%- if next %} 141 <h4>{{ _('Next topic') }}</h4> 142 <p class="topless"><a href="{{ next.link|e }}" 143 title="{{ _('next chapter') }}">{{ next.title }}</a></p> 144 {%- endif %} 145 {%- endblock %} 146 {%- block sidebarsourcelink %} 147 {%- if show_source and has_source and sourcename %} 148 <h3>{{ _('This Page') }}</h3> 149 <ul class="this-page-menu"> 150 <li><a href="{{ pathto('_sources/' + sourcename, true)|e }}" 151 rel="nofollow">{{ _('Show Source') }}</a></li> 152 </ul> 153 {%- endif %} 154 {%- endblock %} 155 {%- if customsidebar %} 156 {% include customsidebar %} 157 {%- endif %} 158 {%- block sidebarsearch %} 159 {%- if pagename != "search" %} 160 <div id="searchbox" style="display: none"> 161 <h3>{{ _('Quick search') }}</h3> 162 <form class="search" action="{{ pathto('search') }}" method="get"> 163 <input type="text" name="q" size="18" /> 164 <!-- The shading of the "Go" button should be consistent --> 165 <!-- with the colour of the header and footer. See the file --> 166 <!-- doc/common/themes/sage/theme.conf for colours used by --> 167 <!-- the Sage theme. --> 168 <input type="submit" style="background-color: #B8B9F6" value="{{ _('Go') }}" /> 169 <input type="hidden" name="check_keywords" value="yes" /> 170 <input type="hidden" name="area" value="default" /> 171 </form> 172 <p class="searchtip" style="font-size: 90%"> 173 {{ _('Enter search terms or a module, class or function name.') }} 174 </p> 175 </div> 176 <script type="text/javascript">$('#searchbox').show(0);</script> 177 {%- endif %} 178 {%- endblock %} 179 </div> 180 </div> 181 {%- endif %}{% endif %} 182 {%- endmacro %} -
new file doc/common/themes/sageref/static/favicon.ico
diff --git a/doc/common/themes/sageref/static/favicon.ico b/doc/common/themes/sageref/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..51775bc542a5d8653935c5223b9ecd616cb1e085 GIT binary patch literal 1150 zc$}q^KT88a5XI-z_zxqeVh|AtA|eQ4DMCcCv$3+X(Mmr+K(M%gtyrWLECfYJC)n9o z2^L9_A}A@u;z;mAoNv5$FsyefxZxKzGy7&|XC@*ZKE5ybF3Mq_NI^sv0Zg#O_OAtB zD<6}rC<s1McmwC)IK%%FZEyfIb}twP^NdybMf(mm!6+C31yBduU=`%R7<kFhuY(c@ zK^06pv2TH&@vdF41-j<^lyjy7YM^LruRLe92?LB{ZA~y^YH<lXzD>`sfF0)Ou?8KZ z*SC#>vU5*`xjcdku*4oHdG;Ux&%D26^mB}B^IT)x9^S9I1uzSSm|L4?m%)+Imd)F> zkN3vcWo{FuUUy)F`|Bv4n+AVtE%uE5lzMk=^bHTx){O6l_0s(l_ij%Vozs4B=Ga5V z)c?dJ>+5Pm*280*EA~0@YrS-4PExc9nw!q&KHsNz4KgR~VJ`YUUw=XG)ETR$`Q@MM E6WVp2FaQ7m -
new file doc/common/themes/sageref/static/mathjax_sage.js_t
diff --git a/doc/common/themes/sageref/static/mathjax_sage.js_t b/doc/common/themes/sageref/static/mathjax_sage.js_t new file mode 100644
- + 1 MathJax.Hub.Config({ 2 imageFont: null, 3 tex2jax: { 4 inlineMath: [['$','$'],['\\(','\\)']], 5 processEscapes: true, 6 }, 7 styles: { 8 ".MathJax .mo, .MathJax .mi": { 9 color: "inherit ! important" 10 } 11 }, 12 TeX: { 13 Macros: { 14 {{ theme_mathjax_macros|join(',\n') }} 15 } 16 } 17 }); 18 19 // This path is a little funny because we have to load our local 20 // config file as '../mathjax_sage' in the theme conf.py 21 MathJax.Ajax.loadComplete("[MathJax]/config/../mathjax_sage.js") -
new file doc/common/themes/sageref/static/sage.css_t
diff --git a/doc/common/themes/sageref/static/sage.css_t b/doc/common/themes/sageref/static/sage.css_t new file mode 100644
- + 1 /** 2 * Sage stylesheet theme. This stylesheet is heavily borrowed from the 3 * Sphinx stylesheet default theme distributed as the file 4 * themes/default/static/default.css_t in Sphinx 0.6.3. 5 */ 6 7 @import url("basic.css"); 8 9 /* -- page layout ----------------------------------------------------------- */ 10 11 body { 12 font-family: {{ theme_bodyfont }}; 13 font-size: 100%; 14 background-color: {{ theme_footerbgcolor }}; 15 color: #000; 16 margin: 0; 17 padding: 0; 18 } 19 20 div.document { 21 background-color: {{ theme_sidebarbgcolor }}; 22 } 23 24 div.documentwrapper { 25 float: left; 26 width: 100%; 27 } 28 29 div.bodywrapper { 30 margin: 0 0 0 230px; 31 } 32 33 div.body { 34 background-color: {{ theme_bgcolor }}; 35 color: {{ theme_textcolor }}; 36 padding: 0 20px 30px 20px; 37 } 38 39 {%- if theme_rightsidebar|tobool %} 40 div.bodywrapper { 41 margin: 0 230px 0 0; 42 } 43 {%- endif %} 44 45 div.footer { 46 color: {{ theme_footertextcolor }}; 47 width: 100%; 48 padding: 9px 0 9px 0; 49 text-align: center; 50 font-size: 75%; 51 } 52 53 div.footer a { 54 color: {{ theme_footertextcolor }}; 55 text-decoration: underline; 56 } 57 58 div.related { 59 background-color: {{ theme_relbarbgcolor }}; 60 line-height: 30px; 61 color: {{ theme_relbartextcolor }}; 62 } 63 64 div.related a { 65 color: {{ theme_relbarlinkcolor }}; 66 } 67 68 div.sphinxsidebar { 69 {%- if theme_stickysidebar|tobool %} 70 top: 30px; 71 margin: 0; 72 position: fixed; 73 overflow: auto; 74 height: 100%; 75 {%- endif %} 76 {%- if theme_rightsidebar|tobool %} 77 float: right; 78 {%- if theme_stickysidebar|tobool %} 79 right: 0; 80 {%- endif %} 81 {%- endif %} 82 } 83 84 {%- if theme_stickysidebar|tobool %} 85 /* this is nice, but it it leads to hidden headings when jumping 86 to an anchor */ 87 /* 88 div.related { 89 position: fixed; 90 } 91 92 div.documentwrapper { 93 margin-top: 30px; 94 } 95 */ 96 {%- endif %} 97 98 div.sphinxsidebar h3 { 99 font-family: {{ theme_headfont }}; 100 color: {{ theme_sidebartextcolor }}; 101 font-size: 1.4em; 102 font-weight: normal; 103 margin: 0; 104 padding: 0; 105 } 106 107 div.sphinxsidebar h3 a { 108 color: {{ theme_sidebartextcolor }}; 109 } 110 111 div.sphinxsidebar h4 { 112 font-family: {{ theme_headfont }}; 113 color: {{ theme_sidebartextcolor }}; 114 font-size: 1.3em; 115 font-weight: normal; 116 margin: 5px 0 0 0; 117 padding: 0; 118 } 119 120 div.sphinxsidebar p { 121 color: {{ theme_sidebartextcolor }}; 122 } 123 124 div.sphinxsidebar p.topless { 125 margin: 5px 10px 10px 10px; 126 } 127 128 div.sphinxsidebar ul { 129 margin: 10px; 130 padding: 0; 131 color: {{ theme_sidebartextcolor }}; 132 } 133 134 div.sphinxsidebar a { 135 color: {{ theme_sidebarlinkcolor }}; 136 } 137 138 div.sphinxsidebar input { 139 border: 1px solid {{ theme_sidebarlinkcolor }}; 140 font-family: sans-serif; 141 font-size: 1em; 142 } 143 144 /* -- body styles ----------------------------------------------------------- */ 145 146 a { 147 color: {{ theme_linkcolor }}; 148 text-decoration: none; 149 } 150 151 a:hover { 152 text-decoration: underline; 153 } 154 155 div.body p, div.body dd, div.body li { 156 text-align: justify; 157 line-height: 130%; 158 } 159 160 div.body h1, 161 div.body h2, 162 div.body h3, 163 div.body h4, 164 div.body h5, 165 div.body h6 { 166 font-family: {{ theme_headfont }}; 167 background-color: {{ theme_headbgcolor }}; 168 font-weight: normal; 169 color: {{ theme_headtextcolor }}; 170 border-bottom: 1px solid #ccc; 171 margin: 20px -20px 10px -20px; 172 padding: 3px 0 3px 10px; 173 } 174 175 div.body h1 { margin-top: 0; font-size: 200%; } 176 div.body h2 { font-size: 160%; } 177 div.body h3 { font-size: 140%; } 178 div.body h4 { font-size: 120%; } 179 div.body h5 { font-size: 110%; } 180 div.body h6 { font-size: 100%; } 181 182 a.headerlink { 183 color: {{ theme_headlinkcolor }}; 184 font-size: 0.8em; 185 padding: 0 4px 0 4px; 186 text-decoration: none; 187 } 188 189 a.headerlink:hover { 190 background-color: {{ theme_headlinkcolor }}; 191 color: white; 192 } 193 194 div.body p, div.body dd, div.body li { 195 text-align: justify; 196 line-height: 130%; 197 } 198 199 div.admonition p.admonition-title + p { 200 display: inline; 201 } 202 203 div.note { 204 background-color: #eee; 205 border: 1px solid #ccc; 206 } 207 208 div.seealso { 209 background-color: #ffc; 210 border: 1px solid #ff6; 211 } 212 213 div.topic { 214 background-color: #eee; 215 } 216 217 div.warning { 218 background-color: #ffe4e4; 219 border: 1px solid #f66; 220 } 221 222 p.admonition-title { 223 display: inline; 224 } 225 226 p.admonition-title:after { 227 content: ":"; 228 } 229 230 /** 231 * Code block. 232 * The border colour should be a darker shade of the background colour. 233 * The hex code #E8D898 used below is a pale, light grayish amber. 234 */ 235 pre { 236 padding: 5px; 237 background-color: {{ theme_codebgcolor }}; 238 color: {{ theme_codetextcolor }}; 239 line-height: 120%; 240 border: 1px solid #E8D898; 241 border-left: none; 242 border-right: none; 243 } 244 245 /** 246 * Commands or code within text. The hex code #EAEAF8 used below is a 247 * pale, light grayish blue. 248 */ 249 tt { 250 background-color: #EAEAF8; 251 padding: 0 1px 0 1px; 252 font-size: 0.95em; 253 } -
new file doc/common/themes/sageref/theme.conf
diff --git a/doc/common/themes/sageref/theme.conf b/doc/common/themes/sageref/theme.conf new file mode 100644
- + 1 [theme] 2 inherit = default 3 stylesheet = sage.css 4 pygments_style = sphinx 5 6 [options] 7 # Custom Sage theme options 8 9 # MathJax settings filled in by conf.py 10 mathjax_macros = 11 12 # Sphinx default theme options 13 14 #nosidebar = false 15 #rightsidebar = false 16 #stickysidebar = false 17 18 # Background color for the footer line: pale, light grayish blue (CSS color): 19 footerbgcolor = #B8B9F6 20 # Text color for the footer line: black (CSS color): 21 footertextcolor = #000000 22 # Background color for the sidebar: light bluish gray (CSS color): 23 sidebarbgcolor = #EAEAF8 24 # Text color for the sidebar: black (CSS color): 25 sidebartextcolor = #000000 26 # Link color for the sidebar: dark blue (CSS color): 27 sidebarlinkcolor = #090999 28 # Background color for the relation bar: pale, light grayish blue (CSS color): 29 relbarbgcolor = #B8B9F6 30 # Text color for the relation bar: black (CSS color): 31 relbartextcolor = #000000 32 # Link color for the relation bar: dark blue (CSS color): 33 relbarlinkcolor = #090999 34 # Body background color (CSS color): 35 #bgcolor = #ffffff 36 # Body text color: black (CSS color): 37 textcolor = #000000 38 # Background color for headings: light bluish gray (CSS color): 39 headbgcolor = #EAEAF8 40 # Text color for headings (CSS color): 41 #headtextcolor = #20435c 42 # Link color for headings (CSS color): 43 #headlinkcolor = #c60f0f 44 # Body link color: dark greenish blue (CSS color): 45 linkcolor = #45529B 46 # Background color for code blocks: very pale yellow (CSS color): 47 codebgcolor = #FFFFE5 48 # Default text color for code blocks, if not set differently by the highlighting style (CSS color): 49 #codetextcolor = #333333 50 51 # Font for normal text (CSS font-family): 52 #bodyfont = sans-serif 53 # Font for headings (CSS font-family): 54 #headfont = 'Trebuchet MS', sans-serif -
doc/en/reference/arithgroup/index.rst
diff --git a/doc/en/reference/arithgroup/index.rst b/doc/en/reference/arithgroup/index.rst
a b 1 Arithmetic Subgroups of `{\rm SL}_2( \ZZ)`2 ============================================= ===1 Arithmetic Subgroups of `{\rm SL}_2({\bf Z})` 2 ============================================= 3 3 4 4 This chapter describes the basic functionality for finite index subgroups of 5 5 the modular group `{\rm SL}_2(\ZZ)`. -
doc/en/reference/combinat/index.rst
diff --git a/doc/en/reference/combinat/index.rst b/doc/en/reference/combinat/index.rst
a b Combinatorics 4 4 .. toctree:: 5 5 :maxdepth: 2 6 6 7 ../sage/combinat/combinat8 ../sage/combinat/sloane_functions9 ../sage/combinat/expnums10 ../sage/combinat/alternating_sign_matrix11 ../sage/combinat/cartesian_product12 ../sage/combinat/combination13 ../sage/combinat/composition_signed14 ../sage/combinat/composition15 ../sage/combinat/core16 ../sage/combinat/debruijn_sequence17 ../sage/combinat/degree_sequences18 ../sage/combinat/dlx19 ../sage/combinat/matrices/dlxcpp20 ../sage/combinat/dyck_word21 ../sage/combinat/e_one_star22 ../sage/combinat/finite_class23 ../sage/combinat/integer_list24 ../sage/combinat/integer_vector25 ../sage/combinat/integer_vector_weighted26 ../sage/combinat/integer_vectors_mod_permgroup27 ../sage/combinat/enumeration_mod_permgroup28 ../sage/combinat/restricted_growth29 ../sage/combinat/yamanouchi30 ../sage/combinat/graph_path31 ../sage/combinat/matrices/latin32 ../sage/combinat/lyndon_word33 ../sage/combinat/necklace34 ../sage/combinat/non_decreasing_parking_function35 ../sage/combinat/partition36 ../sage/combinat/permutation37 ../sage/combinat/perfect_matching38 ../sage/combinat/q_analogues39 ../sage/combinat/sidon_sets40 ../sage/combinat/set_partition_ordered41 ../sage/combinat/set_partition42 ../sage/combinat/skew_partition43 ../sage/combinat/subset44 ../sage/combinat/subsets_pairwise45 ../sage/combinat/subword46 ../sage/combinat/tiling47 ../sage/combinat/tuple7 sage/combinat/combinat 8 sage/combinat/sloane_functions 9 sage/combinat/expnums 10 sage/combinat/alternating_sign_matrix 11 sage/combinat/cartesian_product 12 sage/combinat/combination 13 sage/combinat/composition_signed 14 sage/combinat/composition 15 sage/combinat/core 16 sage/combinat/debruijn_sequence 17 sage/combinat/degree_sequences 18 sage/combinat/dlx 19 sage/combinat/matrices/dlxcpp 20 sage/combinat/dyck_word 21 sage/combinat/e_one_star 22 sage/combinat/finite_class 23 sage/combinat/integer_list 24 sage/combinat/integer_vector 25 sage/combinat/integer_vector_weighted 26 sage/combinat/integer_vectors_mod_permgroup 27 sage/combinat/enumeration_mod_permgroup 28 sage/combinat/restricted_growth 29 sage/combinat/yamanouchi 30 sage/combinat/graph_path 31 sage/combinat/matrices/latin 32 sage/combinat/lyndon_word 33 sage/combinat/necklace 34 sage/combinat/non_decreasing_parking_function 35 sage/combinat/partition 36 sage/combinat/permutation 37 sage/combinat/perfect_matching 38 sage/combinat/q_analogues 39 sage/combinat/sidon_sets 40 sage/combinat/set_partition_ordered 41 sage/combinat/set_partition 42 sage/combinat/skew_partition 43 sage/combinat/subset 44 sage/combinat/subsets_pairwise 45 sage/combinat/subword 46 sage/combinat/tiling 47 sage/combinat/tuple 48 48 49 49 algebra 50 50 tableaux 51 51 symmetric_functions 52 52 root_systems 53 53 54 ../sage/combinat/kazhdan_lusztig54 sage/combinat/kazhdan_lusztig 55 55 56 56 crystals 57 57 posets … … Combinatorics 61 61 words 62 62 iet 63 63 64 ../sage/combinat/misc64 sage/combinat/misc 65 65 66 66 .. include:: ../footer.txt -
doc/en/reference/conf.py
diff --git a/doc/en/reference/conf.py b/doc/en/reference/conf.py
a b import sys, os 15 15 sys.path.append(os.environ['SAGE_DOC']) 16 16 from common.conf import * 17 17 18 # settings for the intersphinx extension: 19 20 ref_src = os.path.join(SAGE_DOC, 'en', 'reference') 21 ref_out = os.path.join(SAGE_DOC, 'output', 'html', 'en', 'reference') 22 intersphinx_mapping[ref_out] = None 23 24 for doc in os.listdir(ref_src): 25 if os.path.exists(os.path.join(ref_src, doc, 'index.rst')): 26 intersphinx_mapping[os.path.join(ref_out, doc)] = None 27 18 28 # General information about the project. 19 29 project = u"Sage Reference Manual" 20 30 name = "reference" … … latex_elements['preamble'] += r''' 50 60 51 61 #Ignore all .rst in the _sage subdirectory 52 62 exclude_trees = exclude_trees + ['_sage'] 63 64 # List of directories, relative to source directory, that shouldn't be 65 # searched for source files. 66 exclude_trees = exclude_trees + [ 67 'algebras', 68 'arithgroup', 69 'calculus', 70 'categories', 71 'cmd', 72 'coding', 73 'coercion', 74 'combinat', 75 'constants', 76 'cryptography', 77 'databases', 78 'finance', 79 'function_fields', 80 'functions', 81 'games', 82 'geometry', 83 'graphs', 84 'groups', 85 'hecke', 86 'history_and_license', 87 'homology', 88 'interfaces', 89 'lfunctions', 90 'libs', 91 'logic', 92 'matrices', 93 'misc', 94 'modabvar', 95 'modfrm', 96 'modmisc', 97 'modsym', 98 'modules', 99 'monoids', 100 'notebook', 101 'number_fields', 102 'numerical', 103 'options', 104 'padics', 105 'parallel', 106 'plane_curves', 107 'plot3d', 108 'plotting', 109 'polynomial_rings', 110 'power_series', 111 'probability', 112 'quadratic_forms', 113 'quat_algebras', 114 'rings', 115 'rings_numerical', 116 'rings_standard', 117 'sage', 118 'sagenb', 119 'schemes', 120 'semirings', 121 'stats', 122 'structure', 123 'tensor', 124 'todolist' 125 ] -
new file doc/en/reference/conf_sub.py
diff --git a/doc/en/reference/conf_sub.py b/doc/en/reference/conf_sub.py new file mode 100644
- + 1 # -*- coding: utf-8 -*- 2 # 3 # Sage documentation build configuration file, created by 4 # sphinx-quickstart on Thu Aug 21 20:15:55 2008. 5 # 6 # This file is execfile()d with the current directory set to its containing dir. 7 # 8 # The contents of this file are pickled, so don't put values in the namespace 9 # that aren't pickleable (module imports are okay, they're removed automatically). 10 # 11 # All configuration values have a default; values that are commented out 12 # serve to show the default. 13 14 import sys, os 15 sys.path.append(os.environ['SAGE_DOC']) 16 from common.conf import * 17 18 # settings for the intersphinx extension: 19 20 ref_src = os.path.join(SAGE_DOC, 'en', 'reference') 21 ref_out = os.path.join(SAGE_DOC, 'output', 'html', 'en', 'reference') 22 intersphinx_mapping[ref_out] = None 23 24 for doc in os.listdir(ref_src): 25 if os.path.exists(os.path.join(ref_src, doc, 'index.rst')): 26 intersphinx_mapping[os.path.join(ref_out, doc)] = None 27 28 # We use the main document's title, if we can find it. 29 rst_file = open('index.rst', 'r') 30 rst_lines = rst_file.read().splitlines() 31 rst_file.close() 32 33 title = u'' 34 for i in xrange(len(rst_lines)): 35 if rst_lines[i].startswith('==') and i > 0: 36 title = rst_lines[i-1].strip() 37 break 38 39 # Otherwise, we use this directory's name. 40 name = os.path.basename(os.path.abspath('.')) 41 if not title: 42 title = name.capitalize() 43 title = title.replace(u'`', u'$') 44 45 # General information about the project. 46 project = u'Sage Reference Manual: ' + title 47 48 # The name for this set of Sphinx documents. If None, it defaults to 49 # "<project> v<release> documentation". 50 html_title = u'Sage Reference Manual v' + release + ': ' + title 51 52 # A shorter title for the navigation bar. Default is the same as html_title. 53 html_short_title = title 54 55 # HTML theme (e.g., 'default', 'sphinxdoc'). The pages for the 56 # reference manual use a custom theme, a slight variant on the 'sage' 57 # theme, to set the links in the top line. 58 html_theme = 'sageref' 59 60 # Output file base name for HTML help builder. 61 htmlhelp_basename = name 62 63 # Grouping the document tree into LaTeX files. List of tuples (source 64 # start file, target name, title, author, document class 65 # [howto/manual]). 66 latex_documents = [ 67 ('index', name + '.tex', project, u'The Sage Development Team', 'manual') 68 ] 69 70 #Ignore all .rst in the _sage subdirectory 71 exclude_trees = exclude_trees + ['_sage'] -
new file doc/en/reference/footer.txt
diff --git a/doc/en/reference/footer.txt b/doc/en/reference/footer.txt new file mode 100644
- + 1 2 .. todolist:: 3 4 Indices and Tables 5 ================== 6 7 .. toctree:: 8 :maxdepth: 1 9 10 * :ref:`genindex` 11 * :ref:`modindex` 12 * :ref:`search` -
doc/en/reference/games/index.rst
diff --git a/doc/en/reference/games/index.rst b/doc/en/reference/games/index.rst
a b Games 2 2 ===== 3 3 4 4 Sage includes a sophisticated Sudoku solver. It also has a 5 Rubik's cube solver (see :ref:`Rubik's Cube Group <sec-rubik>`). 5 Rubik's cube solver (see 6 `Rubik's Cube Group <../groups/sage/groups/perm_gps/cubegroup.html>`_). 6 7 7 8 .. toctree:: 8 9 :maxdepth: 2 -
doc/en/reference/hecke/index.rst
diff --git a/doc/en/reference/hecke/index.rst b/doc/en/reference/hecke/index.rst
a b General Hecke Algebras and Hecke Modules 3 3 4 4 This chapter describes the basic functionality for modules over Hecke 5 5 algebras, including decompositions, degeneracy maps and so on. For specific 6 examples of Hecke algebras that use this functionality see :ref:`ch:modsym` and 7 :ref:`ch:modular`. 6 examples of Hecke algebras that use this functionality see `Modular 7 Symbols <../modsym/index.html>`_ and `Modular Forms 8 <../modfrm/index.html>`_. 8 9 9 10 .. toctree:: 10 11 :maxdepth: 2 -
doc/en/reference/index.rst
diff --git a/doc/en/reference/index.rst b/doc/en/reference/index.rst
a b 1 .. Sage Reference Manual documentation master file, created by sphinx-quickstart on Sun Sep 28 03:34:37 2008.2 You can adapt this file completely to your liking, but it should at least3 contain the root `toctree` directive.4 5 .. _ch:intro:6 7 1 Welcome to Sage's Reference Manual! 8 2 ================================================= 9 3 … … usage of Sage. The examples are all test 20 14 Sage, and should produce exactly the same output as in this manual, 21 15 except for line breaks. 22 16 23 The Sage command line is briefly described in :ref:`ch:cmdline`, which24 lists the command line options. For more details about the command 25 line, see the Sage tutorial.17 The Sage command line is briefly described in `The Sage Command Line 18 <cmd/index.html>`_, which lists the command line options. For more 19 details about the command line, see the Sage tutorial. 26 20 27 The Sage graphical user interface is described in 28 :ref:`ch:notebook`. This graphical user interface is unusual in that 29 it operates via your web browser. It provides you with Sage worksheets 30 that you can edit and evaluate, which contain scalable typeset 31 mathematics and beautiful antialiased images.21 The Sage graphical user interface is described in `The Sage Notebook 22 <notebook/index.html>`_. This graphical user interface is unusual in 23 that it operates via your web browser. It provides you with Sage 24 worksheets that you can edit and evaluate, which contain scalable 25 typeset mathematics and beautiful antialiased images. 32 26 33 27 This work is licensed under a `Creative Commons Attribution-Share Alike 34 28 3.0 License`__. … … __ http://creativecommons.org/licenses/b 37 31 38 32 Enjoy Sage! 39 33 40 .. toctree:: 41 :maxdepth: 2 34 Table of Contents 35 ================= 42 36 43 cmd 44 notebook 45 calculus 46 plotting 47 plot3d 48 games 49 graphs 50 constants 51 functions 52 parallel 53 structure 54 coercion 55 misc 56 databases 57 interfaces 58 libs 59 cryptography 60 logic 61 combinat/index 62 numerical 63 probability 64 stats 65 finance 66 categories 67 monoids 68 groups 69 rings 70 rings_standard 71 rings_numerical 72 number_fields 73 function_fields 74 padics 75 polynomial_rings 76 power_series 77 semirings 78 algebras 79 quadratic_forms 80 quat_algebras 81 matrices 82 modules 83 geometry 84 homology 85 lfunctions 86 schemes 87 plane_curves 88 coding 89 arithgroup 90 hecke 91 modsym 92 modfrm 93 modabvar 94 modmisc 95 tensor 37 * `The Sage Command Line <cmd/index.html>`_ 38 * `The Sage Notebook <notebook/index.html>`_ 39 40 Calculus, Plotting 41 ------------------ 42 43 * `Symbolic Calculus <calculus/index.html>`_ 44 * `Constants <constants/index.html>`_ 45 * `Functions <functions/index.html>`_ 46 * `2D Graphics <plotting/index.html>`_ 47 * `3D Graphics <plot3d/index.html>`_ 48 49 Combinatorics, Discrete Mathematics 50 ----------------------------------- 51 52 * `Combinatorics <combinat/index.html>`_ 53 * `Graph Theory <graphs/index.html>`_ 54 55 Structures, Coercion, Categories 56 -------------------------------- 96 57 97 todolist 58 * `Basic Structures <structure/index.html>`_ 59 * `Coercion <coercion/index.html>`_ 60 * `Category Theory and Categories <categories/index.html>`_ 98 61 99 history_and_license 62 Rings, Fields, Algebras 63 ----------------------- 100 64 101 Indices and tables 102 ================== 65 * `General Rings, Ideals, and Morphisms <rings/index.html>`_ 66 * `Standard Commutative Rings <rings_standard/index.html>`_ 67 * `Fixed and Arbitrary Precision Numerical Fields <rings_numerical/index.html>`_ 68 * `Algebraic Number Fields <number_fields/index.html>`_ 69 * `Function Fields <function_fields/index.html>`_ 70 * `p-Adics <padics/index.html>`_ 71 * `Polynomial Rings <polynomial_rings/index.html>`_ 72 * `Power Series Rings <power_series/index.html>`_ 73 * `Standard Semirings <semirings/index.html>`_ 74 * `Algebras <algebras/index.html>`_ 75 * `Quaternion Algebras <quat_algebras/index.html>`_ 103 76 104 * :ref:`genindex` 105 * :ref:`modindex` 106 * :ref:`search` 77 Groups, Monoids, Matrices, Modules 78 ---------------------------------- 107 79 80 * `Groups <groups/index.html>`_ 81 * `Monoids <monoids/index.html>`_ 82 * `Matrices and Spaces of Matrices <matrices/index.html>`_ 83 * `Modules <modules/index.html>`_ 84 85 Geometry and Topology 86 --------------------- 87 88 * `Combinatorial Geometry <geometry/index.html>`_ 89 * `Cell Complexes and their Homology <homology/index.html>`_ 90 * `Differential Forms <tensor/index.html>`_ 91 92 Number Theory, Algebraic Geometry 93 --------------------------------- 94 95 * `Quadratic Forms <quadratic_forms/index.html>`_ 96 * `L-Functions <lfunctions/index.html>`_ 97 * `Schemes <schemes/index.html>`_ 98 * `Elliptic, Plane, and Hyperelliptic Curves <plane_curves/index.html>`_ 99 * `Arithmetic Subgroups of SL_2(Z) <arithgroup/index.html>`_ 100 * `General Hecke Algebras and Hecke Modules <hecke/index.html>`_ 101 * `Modular Symbols <modsym/index.html>`_ 102 * `Modular Forms <modfrm/index.html>`_ 103 * `Modular Abelian Varieties <modabvar/index.html>`_ 104 * `Miscellaneous Modular-Form-Related Modules <modmisc/index.html>`_ 105 106 Miscellaneous Mathematics 107 ------------------------- 108 109 * `Games <games/index.html>`_ 110 * `Symbolic Logic <logic/index.html>`_ 111 * `Cryptography <cryptography/index.html>`_ 112 * `Numerical Optimization <numerical/index.html>`_ 113 * `Probability <probability/index.html>`_ 114 * `Statistics <stats/index.html>`_ 115 * `Quantitative Finance <finance/index.html>`_ 116 * `Coding Theory <coding/index.html>`_ 117 118 Interfaces, Databases, Miscellany 119 --------------------------------- 120 121 * `Interpreter Interfaces <interfaces/index.html>`_ 122 * `C/C++ Library Interfaces <libs/index.html>`_ 123 * `Databases <databases/index.html>`_ 124 * `Parallel Computing <parallel/index.html>`_ 125 * `Miscellaneous <misc/index.html>`_ 126 127 Other 128 ----- 129 130 * `Sage's To Do List <todolist/index.html>`_ 131 * `History and License <history_and_license/index.html>`_ 132 133 .. include:: footer.txt -
doc/en/reference/interfaces/index.rst
diff --git a/doc/en/reference/interfaces/index.rst b/doc/en/reference/interfaces/index.rst
a b Interpreter Interfaces 3 3 4 4 Sage provides a unified interface to the best computational 5 5 software. This is accomplished using both C-libraries (see 6 :ref:`ch:libraries`) and interpreter interfaces, which are 6 `C/C++ Library Interfaces <../libs/index.html>`_) 7 and interpreter interfaces, which are 7 8 implemented using pseudo-tty's, system files, etc. This chapter is 8 9 about these interpreter interfaces. 9 10 … … about these interpreter interfaces. 18 19 There is overhead associated with each call to one of these 19 20 systems. For example, computing ``2+2`` thousands of times using 20 21 the GAP interface will be slower than doing it directly in 21 Sage. In contrast, the C-library interfaces of :ref:`ch:libraries` 22 Sage. In contrast, the C-library interfaces of 23 `C/C++ Library Interfaces <../libs/index.html>`_ 22 24 incur less overhead. 23 25 24 26 -
doc/en/reference/misc/index.rst
diff --git a/doc/en/reference/misc/index.rst b/doc/en/reference/misc/index.rst
a b Miscellaneous 30 30 sage/misc/html 31 31 sage/misc/latex 32 32 sage/misc/latex_macros 33 other/sagetex33 sagetex 34 34 sage/misc/lazy_attribute 35 35 sage/misc/lazy_format 36 36 sage/misc/lazy_import -
doc/en/reference/todolist/index.rst
diff --git a/doc/en/reference/todolist/index.rst b/doc/en/reference/todolist/index.rst
a b There is still some work to do :-) : 13 13 Rewrite the hand-written TODOs by using the correct ``.. todo::`` 14 14 markup. 15 15 16 The combined to do list is only available in the html version of the reference manual. 17 16 18 .. todolist:: 17 18 .. include:: ../footer.txt -
doc/en/website/templates/index.html
diff --git a/doc/en/website/templates/index.html b/doc/en/website/templates/index.html
a b 137 137 <a class="biglink" href="reference/index.html"> 138 138 Reference Manual 139 139 </a> 140 <a title=" Download PDF" class="pdf" href="../../pdf/en/reference/reference.pdf">140 <a title="Link to PDF" class="pdf" href="../../pdf/en/reference/index.html"> 141 141 <img class="icon" src="_static/pdf.png"></img> 142 142 </a> 143 143 <br> -
sage/homology/delta_complex.py
diff --git a/sage/homology/delta_complex.py b/sage/homology/delta_complex.py
a b class DeltaComplex(GenericCellComplex): 149 149 first in the prescribed way. The three edges each start and end 150 150 at the single vertex, ``Simplex(0)``. 151 151 152 .. image:: ../../media/ homology/torus_labelled.png152 .. image:: ../../media/torus_labelled.png 153 153 154 154 - ``data`` may be nested lists or tuples. The nth entry in the 155 155 list is a list of the n-simplices in the complex, and each … … class DeltaComplex(GenericCellComplex): 178 178 If one draws two triangles and identifies them according to this 179 179 description, the result is the real projective plane. 180 180 181 .. image:: ../../media/ homology/rp2.png181 .. image:: ../../media/rp2.png 182 182 183 183 :: 184 184 … … class DeltaComplexExamples(): 1483 1483 A `\Delta`-complex representation of the torus, consisting of one 1484 1484 vertex, three edges, and two triangles. 1485 1485 1486 .. image:: ../../media/ homology/torus.png1486 .. image:: ../../media/torus.png 1487 1487 1488 1488 EXAMPLES:: 1489 1489 … … class DeltaComplexExamples(): 1497 1497 A `\Delta`-complex representation of the real projective plane, 1498 1498 consisting of two vertices, three edges, and two triangles. 1499 1499 1500 .. image:: ../../media/ homology/rp2.png1500 .. image:: ../../media/rp2.png 1501 1501 1502 1502 EXAMPLES:: 1503 1503 … … class DeltaComplexExamples(): 1518 1518 A `\Delta`-complex representation of the Klein bottle, consisting 1519 1519 of one vertex, three edges, and two triangles. 1520 1520 1521 .. image:: ../../media/ homology/klein.png1521 .. image:: ../../media/klein.png 1522 1522 1523 1523 EXAMPLES:: 1524 1524 -
sage/homology/simplicial_complex.py
diff --git a/sage/homology/simplicial_complex.py b/sage/homology/simplicial_complex.py
a b simplices of `K`. Frequently, one abuse 27 27 denote both the simplicial complex and the associated topological 28 28 space. 29 29 30 .. image:: ../../media/ homology/simplices.png30 .. image:: ../../media/simplices.png 31 31 32 32 For any simplicial complex `K` and any commutative ring `R` there is 33 33 an associated chain complex, with differential of degree `-1`. The -
sage/modular/arithgroup/farey_symbol.pyx
diff --git a/sage/modular/arithgroup/farey_symbol.pyx b/sage/modular/arithgroup/farey_symbol.pyx
a b cdef class Farey: 419 419 Farey symbol of the arithmetic group. The sides of the 420 420 hyperbolic polygon are numbered 0, 1, ... from left to right. 421 421 422 .. image:: ../../../media/ modular/arithgroup/pairing.png422 .. image:: ../../../media/pairing.png 423 423 424 424 EXAMPLES:: 425 425
