<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Использование SageTeX — Sage Tutorial in Russian v5.9</title> <link rel="stylesheet" href="_static/sage.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', VERSION: '5.9', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/translations.js"></script> <link rel="shortcut icon" href="_static/favicon.ico"/> <link rel="top" title="Sage Tutorial in Russian v5.9" href="index.html" /> <link rel="next" title="Послесловие" href="afterword.html" /> <link rel="prev" title="Программирование" href="programming.html" /> <link rel="icon" href="_static/sageicon.png" type="image/x-icon" /> </head> <body> <div class="related"> <h3>Просмотр</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="Словарь-указатель" accesskey="I">словарь</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >модули</a> |</li> <li class="right" > <a href="afterword.html" title="Послесловие" accesskey="N">следующий</a> |</li> <li class="right" > <a href="programming.html" title="Программирование" accesskey="P">предыдущий</a> |</li> <a href="../index.html"><img src="_static/sagelogo.png" style="vertical-align: middle" title="Sage Logo"></a> <li><a href="index.html">Sage Tutorial in Russian v5.9</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="sagetex"> <h1>Использование SageTeX<a class="headerlink" href="#sagetex" title="Ссылка на этот заголовок">¶</a></h1> <p>Встроенный в Sage пакет SageTeX позволяет внедрять результаты вычислений в документ типа LaTeX. Для того, чтобы использовать данный пакет, понадобится “установить” его в локальную систему TeX (под “установкой” подразумевается копирование одного файла). См. <a class="reference internal" href="introduction.html#installation"><em>Установка</em></a>, а также раздел “Make SageTeX known to TeX” <a class="reference external" href="http://sagemath.org/doc/installation/index.html">Руководства по установке Sage</a> (<a class="reference external" href="../installation/index.html">данная ссылка</a> ведет к локальному размещению копии руководства по установке).</p> <p>В этом уроке показан небольшой пример использования SageTeX. Полная документация находится в <tt class="docutils literal"><span class="pre">SAGE_ROOT/local/share/texmf/tex/generic/sagetex</span></tt>, где <tt class="docutils literal"><span class="pre">SAGE_ROOT</span></tt> - это директория, в которой установлен Sage. Эта папка содержит документацию, файл с примером и полезные скрипты Python.</p> <p>Для начала работы с SageTeX следуйте указаниям по установке (в <a class="reference internal" href="introduction.html#installation"><em>Установка</em></a>) и вставьте следующия текст в файл названный, скажем, <tt class="docutils literal"><span class="pre">st_example.tex</span></tt>:</p> <div class="admonition warning"> <p class="first admonition-title">Предупреждение</p> <p class="last">Нижеследующий текст может содержать несколько сообщений об ошибках, связанных с неизвестными управляющими последовательностями, если Вы используете интерактивную помощь. Откройте статическую версию, чтобы увидеть правильный текст.</p> </div> <div class="highlight-latex"><div class="highlight"><pre><span class="k">\documentclass</span><span class="nb">{</span>article<span class="nb">}</span> <span class="k">\usepackage</span><span class="nb">{</span>sagetex<span class="nb">}</span> <span class="k">\begin</span><span class="nb">{</span>document<span class="nb">}</span> Using Sage<span class="k">\TeX</span>, one can use Sage to compute things and put them into your <span class="k">\LaTeX</span><span class="nb">{}</span> document. For example, there are <span class="s">$</span><span class="nv">\sage</span><span class="nb">{number_of_partitions</span><span class="o">(</span><span class="m">1269</span><span class="o">)</span><span class="nb">}</span><span class="s">$</span> integer partitions of <span class="s">$</span><span class="m">1269</span><span class="s">$</span>. You don't need to compute the number yourself, or even cut and paste it from somewhere. Here's some Sage code: <span class="k">\begin</span><span class="nb">{</span>sageblock<span class="nb">}</span> f(x) = exp(x) * sin(2*x) <span class="k">\end</span><span class="nb">{</span>sageblock<span class="nb">}</span> The second derivative of <span class="s">$</span><span class="nb">f</span><span class="s">$</span> is <span class="sb">\[</span><span class="nb"></span> <span class="nb"> </span><span class="nv">\frac</span><span class="nb">{</span><span class="nv">\mathrm</span><span class="nb">{d}^{</span><span class="m">2</span><span class="nb">}}{</span><span class="nv">\mathrm</span><span class="nb">{d}x^{</span><span class="m">2</span><span class="nb">}} </span><span class="nv">\sage</span><span class="nb">{f</span><span class="o">(</span><span class="nb">x</span><span class="o">)</span><span class="nb">} </span><span class="o">=</span><span class="nb"></span> <span class="nb"> </span><span class="nv">\sage</span><span class="nb">{diff</span><span class="o">(</span><span class="nb">f, x, </span><span class="m">2</span><span class="o">)(</span><span class="nb">x</span><span class="o">)</span><span class="nb">}.</span> <span class="s">\]</span> Here's a plot of <span class="s">$</span><span class="nb">f</span><span class="s">$</span> from <span class="s">$</span><span class="o">-</span><span class="m">1</span><span class="s">$</span> to <span class="s">$</span><span class="m">1</span><span class="s">$</span>: <span class="k">\sageplot</span><span class="nb">{</span>plot(f, -1, 1)<span class="nb">}</span> <span class="k">\end</span><span class="nb">{</span>document<span class="nb">}</span> </pre></div> </div> <p>Запустите LaTeX для <tt class="docutils literal"><span class="pre">st_example.tex</span></tt>. Заметьте, что LaTeX будет жаловаться на некоторые вещи, как-то:</p> <blockquote> <div><p>Package sagetex Warning: Graphics file sage-plots-for-st_example.tex/plot-0.eps on page 1 does not exist. Plot command is on input line 25.</p> <p>Package sagetex Warning: There were undefined Sage formulas and/or plots. Run Sage on st_example.sage, and then run LaTeX on st_example.tex again.</p> </div></blockquote> <p>Среди файлов, сгенерированных после запуска LaTeX, есть файл <tt class="docutils literal"><span class="pre">st_example.sage</span></tt>, являющийся скриптом Sage. Сообщение, показанное выше, предлагало запустить <tt class="docutils literal"><span class="pre">st_example.sage</span></tt>, поэтому стоит так и сделать. Затем будет предложено запустить LaTeX для <tt class="docutils literal"><span class="pre">st_example.tex</span></tt> еще раз; перед этим будет создан файл <tt class="docutils literal"><span class="pre">st_example.sout</span></tt>. Этот файл содержит результаты вычислений в Sage в формате, удобном для LaTeX. Новая папка, содержащая EPS-файл с графиком, также будет создана автоматически. Запустите LaTeX еще раз: все, что было вычислено в Sage, теперь включено в Ваш документ.</p> <p>Перечислим шаги:</p> <blockquote> <div><ul class="simple"> <li>запустите LaTeX для .tex файла;</li> <li>запустите Sage для сгенерированного .sage файла;</li> <li>запустите LaTeX еще раз.</li> </ul> </div></blockquote> <p>Пункт с запуском Sage можно пропустить, если никакие изменения не были применены к командам Sage в документе.</p> <p>SageTeX предлагает много возможностей, и так как Sage и LaTeX являются мощными инструментами, то стоит изучить <tt class="docutils literal"><span class="pre">SAGE_ROOT/local/share/texmf/tex/generic/sagetex</span></tt>.</p> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Предыдущий раздел</h4> <p class="topless"><a href="programming.html" title="предыдущая глава">Программирование</a></p> <h4>Следующий раздел</h4> <p class="topless"><a href="afterword.html" title="следующая глава">Послесловие</a></p> <h3>На этой странице</h3> <ul class="this-page-menu"> <li><a href="_sources/sagetex.txt" rel="nofollow">Показать исходный текст</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Быстрый поиск</h3> <form class="search" action="search.html" method="get"> <input type="text" name="q" size="18" /> <!-- The shading of the "Go" button should be consistent --> <!-- with the colour of the header and footer. See the file --> <!-- doc/common/themes/sage/theme.conf for colours used by --> <!-- the Sage theme. --> <input type="submit" style="background-color: #B8B9F6" value="Искать" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Введите слова для поиска или имя модуля, класса или функции. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Просмотр</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="Словарь-указатель" >словарь</a></li> <li class="right" > <a href="py-modindex.html" title="Python Module Index" >модули</a> |</li> <li class="right" > <a href="afterword.html" title="Послесловие" >следующий</a> |</li> <li class="right" > <a href="programming.html" title="Программирование" >предыдущий</a> |</li> <a href="../index.html"><img src="_static/sagelogo.png" style="vertical-align: middle" title="Sage Logo"></a> <li><a href="index.html">Sage Tutorial in Russian v5.9</a> »</li> </ul> </div> <div class="footer"> © Copyright 2005--2011, The Sage Development Team. При создании использован <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. </div> <script type="text/javascript"> /*global jQuery, window */ /* Sphinx sidebar toggle. Putting this code at the end of the body * enables the toggle for the live, static, and offline docs. Note: * sage.misc.html.math_parse() eats jQuery's dollar-sign shortcut. */ var jq = jQuery; jq(document).ready(function () { var bar, bod, bg, fg, key, tog, wid_old, wid_new, resize, get_state, set_state; bod = jq('div.bodywrapper'); bar = jq('div.sphinxsidebar'); tog = jq('<div class="sphinxsidebartoggle"></div>'); /* Delayed resize helper. Not perfect but good enough. */ resize = function () { setTimeout(function () { tog.height(bod.height()); }, 100); }; jq(window).resize(function () { resize(); }); /* Setup and add the toggle. See Sphinx v0.5.1 default.css. */ fg = jq('div.sphinxsidebar p a').css('color') || 'rgb(152, 219, 204)'; bg = jq('div.document').css('background-color') || 'rgb(28, 78, 99)'; wid_old = '230px'; wid_new = '5px'; tog.css('background-color', bg) .css('border-width', '0px') .css('border-right', wid_new + ' ridge ' + bg) .css('cursor', 'pointer') .css('position', 'absolute') .css('left', '-' + wid_new) .css('top', '0px') .css('width', wid_new); bod.css('position', 'relative'); bod.prepend(tog); resize(); /* Cookie helpers. */ key = 'sphinxsidebar='; set_state = function (s) { var date = new Date(); /* Expiry in 7 days. */ date.setTime(date.getTime() + (7 * 24 * 3600 * 1000)); document.cookie = key + encodeURIComponent(s) + '; expires=' + date.toUTCString() + '; path=/'; }; get_state = function () { var i, c, crumbs = document.cookie.split(';'); for (i = 0; i < crumbs.length; i += 1) { c = crumbs[i].replace(/^\s+/, ''); if (c.indexOf(key) === 0) { return decodeURIComponent(c.substring(key.length, c.length)); } } return null; }; /* Event handlers. */ tog.mouseover(function (ev) { tog.css('border-right-color', fg); }).mouseout(function (ev) { tog.css('border-right-color', bg); }).click(function (ev) { if (bod.hasClass('wide')) { bod.removeClass('wide'); bod.css('margin-left', wid_old); bar.css('width', wid_old); bar.show(); set_state('visible'); } else { set_state('hidden'); bar.hide(); bar.css('width', '0px'); bod.css('margin-left', wid_new); bod.addClass('wide'); } resize(); }); /* Hide the normally visible sidebar? */ if (get_state() === 'hidden') { tog.trigger('click'); } else { set_state('visible'); } }); </script> </body> </html>