<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-5812960944696665648</atom:id><lastBuildDate>Wed, 28 Aug 2024 13:10:32 +0000</lastBuildDate><category>linux</category><category>latex</category><category>console</category><category>desktop</category><category>useful tools</category><category>media</category><category>python</category><category>emacs</category><category>scipy</category><category>x11</category><category>fityk</category><category>hardware</category><category>pstricks</category><category>дифракция</category><category>клавиатура</category><category>gnuplot</category><category>imagemagick</category><title>Рентгеновская дифракция на пингвине</title><description>ТеХнический подход к емаксо-питонной плазме</description><link>http://tuxray.blogspot.com/</link><managingEditor>noreply@blogger.com (Maxim G. Ivanov)</managingEditor><generator>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-6358355844758827669</guid><pubDate>Fri, 25 Mar 2011 17:46:00 +0000</pubDate><atom:updated>2011-03-25T23:48:04.996+06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><category domain="http://www.blogger.com/atom/ns#">scipy</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Стрелки в Pylab</title><description>&lt;p&gt;Pylab представляет собой очень мощную библиотеку для графопостроения.
При проведении расчётов и анализа данных в Python, при помощи pylab не
представляет труда вывести результат на график.  Однако просто графики
зачастую не являются информативными для неподготовленного читателя.  В
этом случае, помогают подсказки, сделанные на графиках, в частности,
стрелки с указаниями.  Кроме того, стрелки являются незаменимыми при
построении графиков с несколькими y-осями.  В этом случае весьма
желательно указывать с помощью стрелок к какой оси относится тот или
иной график.&lt;/p&gt;

&lt;h3&gt;Pylab.arrow&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Казалось бы, при всей мощи, от pylab следовало бы ожидать удобной
возможности нанесения такого рода деталей на графики.  Но, надо
признать, что здесь всё не очень очевидно.  К примеру, имеется функция
pylab.arrow, принимающая начальные координаты (x,y) и (dx,dy).
Казалось бы, нет ничего проще.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; pylab &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; pl
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; np
pl.figure(figsize=(4,4))
pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;pylab.arrow, square ratio&#39;&lt;/span&gt;)
&lt;span style=&quot;color: #eedd82;&quot;&gt;z&lt;/span&gt; = np.arange(10)
pl.plot(z,z,&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;ro&#39;&lt;/span&gt;)
pl.arrow(2,2,3,4, head_width=0.5, head_length=1)
pl.show()
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/pylab-arrow-square.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Однако, если нарисовать график в осях, существенно отличающихся по
масштабу, то вид будет ужасный.  Например:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = np.arange(0.1, 1000, 0.1)
&lt;span style=&quot;color: #eedd82;&quot;&gt;y&lt;/span&gt; = np.log(x)

pl.figure(figsize=(6,4))
pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;pylab.arrow, different axis scale&#39;&lt;/span&gt;)
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;b-&#39;&lt;/span&gt;)
pl.arrow(400,2,200,3, head_width=0.5, head_length=1)
pl.arrow(200,2,300,4, head_width=0.5, head_length=100)
pl.ylim(ymin = 0)
pl.show()
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/pylab-arrow-non-square.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Мало того, что форма стрелки искажённая, так ещё и надо вручную
задавать размеры наконечника head_length и head_width под каждый масштаб.&lt;/p&gt;



&lt;h3&gt;Pylab.annotate&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Однако оказалось, что есть более приличный способ отрисовки стрелок,
&lt;strong&gt;pl.annotate&lt;/strong&gt;.  На самом деле основное предназначение pl.annotate
состоит в том, чтобы отмечать стрелками заданные точки, и одновременно
указывать подписи.  Например, таким образом:&lt;/p&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/pylab-annotate-example.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Для этого был использован следующий код:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
pl.figure(figsize=(6,4))
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;b-&#39;&lt;/span&gt;)
pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;pylab.annotate example&#39;&lt;/span&gt;)
pl.annotate(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;Label&#39;&lt;/span&gt;, xy = (500, np.log(500)), xytext=(300,1),\
                arrowprops=&lt;span style=&quot;color: #b0c4de;&quot;&gt;dict&lt;/span&gt;(facecolor=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;red&#39;&lt;/span&gt;, width=0.5,\
                                    headwidth=10, shrink=0.05),\
                ha=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;center&#39;&lt;/span&gt;, va=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;baseline&#39;&lt;/span&gt;, fontsize=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;large&#39;&lt;/span&gt;)
&lt;/pre&gt;

&lt;p&gt;В качестве аргументов передаются&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;строка с надписью&lt;/li&gt;
&lt;li&gt;координаты точки, куда указывает стрелка&lt;/li&gt;
&lt;li&gt;координаты надписи&lt;/li&gt;
&lt;li&gt;свойства стрелки в ввиде словаря&lt;/li&gt;
&lt;li&gt;остальные свойства, касающиеся свойств текста&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Все свойства текста описаны в мануале по pylab.annotate, посмотреть
который можно в интерактивном режиме питона.  Например:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ ipython
&amp;gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; pylab &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; pl
&amp;gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;help&lt;/span&gt;(pl.annotate)
&lt;/pre&gt;

&lt;p&gt;Что касается свойств стрелки, то их можно посмотреть так:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ ipython
&amp;gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; matplotlib
&amp;gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;help&lt;/span&gt;(matplotlib.lines.Line2D)
&lt;/pre&gt;

&lt;p&gt;Из основных характеристик стрелок, на которые следует обратить внимание,
отмечу следующие:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;facecolor&lt;/strong&gt; &amp;mdash; цвет наконечника&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;width&lt;/strong&gt; &amp;mdash; толщина линии в пунктах&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;headwidth&lt;/strong&gt; &amp;mdash; ширина наконечника в пунктах&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;frac&lt;/strong&gt; &amp;mdash; доля длины, которую занимает наконечник&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;shrink&lt;/strong&gt; &amp;mdash; отступ, от заданной точки &lt;strong&gt;xy&lt;/strong&gt; до конца наконечника (чтобы
наконечник не втыкался точно в заданную точку, а оставил некоторое
пространство).  Измеряется в долях длины.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Что касается свойств текста, то я бы в первую очередь отметил
следующие:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ha&lt;/strong&gt; (horizontalalignment) &amp;mdash; способ выравнивания по горизонтали
(&#39;center&#39;, &#39;right&#39;, &#39;left&#39;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;va&lt;/strong&gt; (verticalalignment) &amp;mdash; соответственно, по вертикали (&#39;center&#39;,
&#39;top&#39;, &#39;bottom&#39;, &#39;baseline&#39;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;rotation&lt;/strong&gt; &amp;mdash; поворот текста (угол в градусах, &#39;vertical&#39;, &#39;horizontal&#39;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;fontsize&lt;/strong&gt; &amp;mdash; размер шрифта (можно указать в пунктах, а можно и
словами &#39;small&#39;, &#39;medium&#39;, &#39;large&#39;, &#39;x-large&#39;, &#39;xx-large&#39;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Как видно, при использовании &lt;strong&gt;pylab.annotate&lt;/strong&gt; форма стрелки получилась
адекватной.  А если вместо надписи оставить пустую строку, то просто
получится стрелка от &lt;strong&gt;xytext&lt;/strong&gt; до &lt;strong&gt;xy&lt;/strong&gt; (при условии, что shrink = 0)&lt;/p&gt;

&lt;p&gt;Лично мне весьма неудобно выписывать все свойства &lt;strong&gt;arrowprops&lt;/strong&gt; всякий
раз, когда надо нарисовать стрелку, поэтому я нацарапал простейшую
функцию, включающую в себя обязательные аргументы, такие как строка с
надписью и координаты начальной и конечной точек, а также
необязательные, касающиеся характеристик стрелок и текста:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;my_arrow&lt;/span&gt;(label, xy_from, xy_to, color=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;blue&#39;&lt;/span&gt;, shrink=0.05, width=0.5, headwidth=10):
    pl.annotate(label, xy = xy_to, xytext=xy_from,\
                    arrowprops=&lt;span style=&quot;color: #b0c4de;&quot;&gt;dict&lt;/span&gt;(facecolor=color, width=width,\
                                        shrink=shrink, frac=0.1),\
                    ha=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;center&#39;&lt;/span&gt;, va=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;baseline&#39;&lt;/span&gt;, fontsize=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;large&#39;&lt;/span&gt;)
&lt;/pre&gt;

&lt;p&gt;Теперь нет ничего проще, нарисовать стрелку:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
pl.figure(figsize=(6,4))
pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;pylab.annotate&#39;&lt;/span&gt;)
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;b-&#39;&lt;/span&gt;)
my_arrow(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;Label&#39;&lt;/span&gt;, (100,1), (600, 5))
my_arrow(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;&#39;&lt;/span&gt;, (300,1), (800, 5))
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &amp;#1082;&amp;#1088;&amp;#1072;&amp;#1089;&amp;#1085;&amp;#1099;&amp;#1077; &amp;#1090;&amp;#1086;&amp;#1095;&amp;#1082;&amp;#1080; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1087;&amp;#1086;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1082;&amp;#1072;&amp;#1082;&amp;#1080;&amp;#1084; &amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1084; &amp;#1087;&amp;#1086;&amp;#1079;&amp;#1080;&amp;#1094;&amp;#1080;&amp;#1086;&amp;#1085;&amp;#1080;&amp;#1088;&amp;#1091;&amp;#1077;&amp;#1090;&amp;#1089;&amp;#1103; &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090;
&lt;/span&gt;pl.plot([100,600],[1,5], &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;ro&#39;&lt;/span&gt;)
pl.ylim(ymin = 0)
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/pylab-annotate.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Результат, на мой взгляд, приличный.  А характеристики текста и
свойства стрелок можно один раз задать в функции, и больше о них не
вспоминать.&lt;/p&gt;

&lt;p&gt;Стоит заметить, что этим вид стрелок не ограничивается.  Можно также
рисовать стрелки с рюшечками, стоит только в &lt;strong&gt;arrowprops&lt;/strong&gt; упомянуть про
&lt;strong&gt;arrowstyle&lt;/strong&gt;.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
pl.figure(figsize=(6,4))
pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;Fancy arrow&#39;&lt;/span&gt;)
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;b-&#39;&lt;/span&gt;)
pl.annotate(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;Fancy arrow&#39;&lt;/span&gt;, xy = (500, np.log(500)), xytext=(300,1),\
                arrowprops=&lt;span style=&quot;color: #b0c4de;&quot;&gt;dict&lt;/span&gt;(facecolor=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;red&#39;&lt;/span&gt;,arrowstyle=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;fancy&#39;&lt;/span&gt;,\
                           connectionstyle=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;angle3, angleA=0, angleB=90&#39;&lt;/span&gt;),\
                fontsize=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;x-large&#39;&lt;/span&gt;)
pl.ylim(ymin = 0)
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/pylab-fancy.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Для более детального ознакомления следует посмотреть в примеры &lt;code&gt;mpl_examples/pylab_examples/annotation_demo2.py&lt;/code&gt;&lt;/p&gt;</description><link>http://tuxray.blogspot.com/2011/03/pylab.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-3264426341007317273</guid><pubDate>Thu, 03 Mar 2011 14:07:00 +0000</pubDate><atom:updated>2011-03-03T20:09:10.202+06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><category domain="http://www.blogger.com/atom/ns#">scipy</category><title>Однотипные срезы массивов в python</title><description>&lt;p&gt;Известно, что в python есть такая замечательная вещь, как срезы
массивов (списков, кортежей и т.д.).  По сути, в качестве начала и
конца среза передаются положения элементов в массиве.  Например,&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = &lt;span style=&quot;color: #b0c4de;&quot;&gt;range&lt;/span&gt;(10)
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x
&amp;gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[1:3]
&amp;gt; [1, 2]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[0:5]
&amp;gt; [0, 1, 2, 3, 4]
&lt;/pre&gt;

&lt;p&gt;Видно, что по сути отсчёт ведётся не по элементам, а по промежуткам
между элементами, при этом на выходе даются все элементы, попадающие в
заданный интервал промежутков.  Особый интерес представляют
отрицательные индексы, являющиеся по сути обратным отсчётом
промежутков с конца массива.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[1:-1]
&amp;gt; [1, 2, 3, 4, 5, 6, 7, 8]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[0:-2]
&amp;gt; [0, 1, 2, 3, 4, 5, 6, 7]
&lt;/pre&gt;

&lt;p&gt;Однако, что делать, если, скажем, имеется набор экспериментальных
данных, которые мы хотим обрезать, основываясь на значениях, нежели на
положении элементов в массивах?  Допустим, есть список x,&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; math &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; *
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; np
&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = np.arange(0, 2*pi, 0.1)
&lt;/pre&gt;
из которого надо вырезать 1.2&amp;lt;x&amp;lt;2.7.

&lt;h3&gt;Традиционный способ&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;В принципе, это можно осуществить перебором по всем элементам списка:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
begin,end = 0,0
x0, x1 = 1.2, 2.7
&lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: #b0c4de;&quot;&gt;len&lt;/span&gt;(x)):
    &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; begin == 0:
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x0:
            begin = i
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;int&lt;/span&gt;(end) == 0:
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x1:
            end = i
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; begin, end
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[begin:end]
&lt;/pre&gt;

&lt;p&gt;В результате получим:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&amp;gt; 12 28
[ 1.2  1.3  1.4  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6 2.7]
&lt;/pre&gt;

&lt;p&gt;В принципе. то, чего и ожидали.  Теперь можно этот цикл for оформить
внутри функции, которая будет принимать в качестве аргументов список и
границы.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;conventional_cut&lt;/span&gt;(x, (x0,x1)):
    begin,end = 0,0
    &lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: #b0c4de;&quot;&gt;len&lt;/span&gt;(x)):
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; begin == 0:
            &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x0:
                begin = i
            &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; end == 0:
            &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x1:
                end = i
            &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;return&lt;/span&gt; x[begin:end]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; conventional_cut(x, (0.9, 1.4))
&lt;/pre&gt;

&lt;pre class=&quot;listing&quot;&gt;
&amp;gt; [ 1.   1.1  1.2  1.3]
&lt;/pre&gt;

&lt;h4&gt;Несколько массивов&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;С практической точки зрения удобно резать сразу два списка: агрумент и
функцию.  Допустим, отснимали большой спектр &lt;strong&gt;y от x&lt;/strong&gt;, из которого
интерес представляет только часть.  Таким образом, необходимо откусить
часть от x, а также &lt;strong&gt;соответствующую&lt;/strong&gt; часть y.&lt;/p&gt;

&lt;p&gt;Сделать это легко, слегка модернизировав функцию:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;cut_xy&lt;/span&gt;((x,y), (x0,x1)):
    begin,end = 0,0
    &lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #b0c4de;&quot;&gt;range&lt;/span&gt;(&lt;span style=&quot;color: #b0c4de;&quot;&gt;len&lt;/span&gt;(x)):
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; begin == 0:
            &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x0:
                begin = i
            &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; end == 0:
            &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; x[i] &amp;gt; x1:
                end = i
            &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;: &lt;span style=&quot;color: #00ffff;&quot;&gt;pass&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;return&lt;/span&gt; x[begin:end], y[begin:end]
&lt;/pre&gt;

&lt;p&gt;То есть мы будем использовать те же индексы для списка y, что и для
x.  Приведу пример, для большей наглядности, графический:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; math &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; *
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; np
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; pylab &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; pl

&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = np.arange(0, 4*pi, 0.01)
&lt;span style=&quot;color: #eedd82;&quot;&gt;y&lt;/span&gt; = np.sin(x)/x
&lt;span style=&quot;color: #eedd82;&quot;&gt;y&lt;/span&gt; = y + 0.1*(np.random.rand(&lt;span style=&quot;color: #b0c4de;&quot;&gt;len&lt;/span&gt;(y))-0.5)
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1076;&amp;#1089;&amp;#1090;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1084;, &amp;#1095;&amp;#1090;&amp;#1086; x,y - &amp;#1101;&amp;#1082;&amp;#1089;&amp;#1087;&amp;#1077;&amp;#1088;&amp;#1080;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1077; &amp;#1076;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1099;&amp;#1077;
&lt;/span&gt;
xnew, ynew = cut_xy((x,y), (0.75*pi, 1.5*pi))
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;r-&#39;&lt;/span&gt;)
pl.plot(xnew, ynew, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;b-&#39;&lt;/span&gt;)

pl.xlabel(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;x&quot;&lt;/span&gt;)
pl.ylabel(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Signal&quot;&lt;/span&gt;)
pl.show()
&lt;/pre&gt;

&lt;p&gt;В результате получим то, что и следовало ожидать.&lt;/p&gt;

&lt;table class=&quot;image&quot; width=&quot;100%&quot;&gt;
  &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/plot-cut-conventional.png&quot; alt=&quot;Выборочное соответствующее вырезание двух массивов&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td align=&quot;center&quot; class=&quot;image-caption&quot;&gt;Выборочное соответствующее вырезание двух массивов&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Разумеется, никто не запрещает резать не два, а три и более массивов
одновременно, немного видоизменив функцию cut_xy.&lt;/p&gt;




&lt;h3&gt;Использование numpy.nonzero&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Традиционный метод работает, однако может показаться корявым.
По-видимому, более элегантное решение может быть получено с
использованием функции &lt;strong&gt;nonzero&lt;/strong&gt; из библиотеки &lt;strong&gt;numpy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Пример работы numpy.nonzero:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; math &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; *
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; np
&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = np.arange(0, 2*pi, 0.1)
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[np.nonzero(x&amp;lt;2.7)]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; x[np.nonzero(x&amp;gt;1.4)]
&lt;/pre&gt;

&lt;pre class=&quot;listing&quot;&gt;
&amp;gt; [ 0.   0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4
  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6]
&amp;gt; [ 1.4  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8
  2.9  3.   3.1  3.2  3.3  3.4  3.5  3.6  3.7  3.8  3.9  4.   4.1  4.2  4.3
  4.4  4.5  4.6  4.7  4.8  4.9  5.   5.1  5.2  5.3  5.4  5.5  5.6  5.7  5.8
  5.9  6.   6.1  6.2]
&lt;/pre&gt;

&lt;p&gt;В скобках np.nonzero() указывается булево выражение, при этом nonzero
возвращает индексы ненулевых элементов.  Выражение x&amp;lt;2.7 является
булевым и имеет следующий вид:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
[ &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;True&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt;
 &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt;
 &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt;
 &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;False&lt;/span&gt;]
&lt;/pre&gt;
То есть, если x[i]&amp;gt;2.7, то результат True, в противном случае False.
Стало быть, передавая x&amp;lt;2.7 в качестве аргумента функции nonzero, и
скармливая результат исходному массиву x в качестве индексов среза,
получаем обрезанный x, где каждый элемент x не превышает 2.7.

&lt;p&gt;Трудность заключается в том, что не удаётся в качестве аргумента
nonzero затолкать сразу несколько условий.  Таким образом, если надо
откусить массив с двух краёв, то необходимо сначала откусить массив
слева, а потом результат &amp;mdash; справа:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;X&lt;/span&gt; = x[np.nonzero(x&amp;gt;1.4)]
&lt;span style=&quot;color: #eedd82;&quot;&gt;X&lt;/span&gt; = X[np.nonzero(X&amp;lt;2.7)]
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; X
&amp;gt; [ 1.4  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6]
&lt;/pre&gt;

&lt;p&gt;Замечу, что при использовании nonzero левая граница промежутка
включается в искомый массив.&lt;/p&gt;

&lt;p&gt;Если мы хотим соответствующим образом откусить и второй массив такой
же размерности, который в нашем эксперименте является функцией, то мы
должны поступить аналогично:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;X&lt;/span&gt; = x[np.nonzero(x&amp;gt;1.4)]
&lt;span style=&quot;color: #eedd82;&quot;&gt;X&lt;/span&gt; = X[np.nonzero(X&amp;lt;2.7)]
&lt;span style=&quot;color: #eedd82;&quot;&gt;Y&lt;/span&gt; = y[np.nonzero(x&amp;gt;1.4)]
&lt;span style=&quot;color: #eedd82;&quot;&gt;Y&lt;/span&gt; = Y[np.nonzero(X&amp;lt;2.7)]

&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;X =&quot;&lt;/span&gt;, X
&lt;span style=&quot;color: #00ffff;&quot;&gt;print&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Y =&quot;&lt;/span&gt;, Y
&lt;/pre&gt;

&lt;p&gt;На выходе:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;X&lt;/span&gt; = [ 1.4  1.5  1.6  1.7  1.8  1.9  2.   2.1  2.2  2.3  2.4  2.5  2.6]
&lt;span style=&quot;color: #eedd82;&quot;&gt;Y&lt;/span&gt; = [ 0.66167563  0.62029339  0.59024345  0.57468639  0.5094329   0.5281753
  0.4542492   0.39952115  0.37289637  0.36049412  0.266617    0.19706189
  0.247443  ]
&lt;/pre&gt;

&lt;p&gt;Можно аналогичным образом затолкать это в функцию:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;cut&lt;/span&gt;((x,y),(x0,x1)):
    after = np.nonzero(x&amp;gt;x0)
    X = x[after]
    before = np.nonzero(X&amp;lt;x1)
    X = X[before]
    Y = y[after]
    Y = Y[before]
    &lt;span style=&quot;color: #00ffff;&quot;&gt;return&lt;/span&gt; X,Y
&lt;/pre&gt;
которая принимает в качестве аргументов исходные (x,y) и интервалы x.

&lt;p&gt;Графический пример:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; math &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; *
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; np
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; pylab &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; pl

&lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt; = np.arange(0, 2*pi, 0.1)
&lt;span style=&quot;color: #eedd82;&quot;&gt;y&lt;/span&gt; = np.sin(x)/x
&lt;span style=&quot;color: #eedd82;&quot;&gt;y&lt;/span&gt; = y + 0.1*(np.random.rand(&lt;span style=&quot;color: #b0c4de;&quot;&gt;len&lt;/span&gt;(y))-0.5)
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1076;&amp;#1089;&amp;#1090;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1084;, &amp;#1095;&amp;#1090;&amp;#1086; x,y - &amp;#1101;&amp;#1082;&amp;#1089;&amp;#1087;&amp;#1077;&amp;#1088;&amp;#1080;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1077; &amp;#1076;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1099;&amp;#1077;
&lt;/span&gt;
pl.plot(x, y, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;r-&#39;&lt;/span&gt;)
X,Y = cut((x,y),(4,5))
pl.plot(X,Y,&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;g-&#39;&lt;/span&gt;)

pl.xlabel(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;x [channels]&quot;&lt;/span&gt;)
pl.ylabel(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Signal [counts]&quot;&lt;/span&gt;)
pl.show()
&lt;/pre&gt;

&lt;table class=&quot;image&quot; width=&quot;100%&quot;&gt;
  &lt;tr&gt;&lt;td align=&quot;center&quot;&gt;&lt;img src=&quot;http://dl.dropbox.com/u/18892492/post-2011-03/plot-cut-numpy.png&quot; alt=&quot;Результат аналогичной процедуры при использовании numpy.nonzero&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td align=&quot;center&quot; class=&quot;image-caption&quot;&gt;Результат аналогичной процедуры при использовании numpy.nonzero&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description><link>http://tuxray.blogspot.com/2011/03/python.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>9</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2740471721099923212</guid><pubDate>Wed, 13 Oct 2010 06:05:00 +0000</pubDate><atom:updated>2010-10-13T13:11:54.009+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><category domain="http://www.blogger.com/atom/ns#">pstricks</category><title>Градиенты в PSTricks</title><description>&lt;p&gt;Иногда для того, чтобы подчеркнуть некий переходный процесс или
наличие размытой границы, на рисунках бывает полезным использовать
градиенты (ну а кому-то интересны рюшечки).  Поскольку большинство
рисунков в своей работе я выполняю с использованием &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;, прямо не
выходя из LaTeX (о рисовании примитивов &lt;a href=&quot;http://tuxray.blogspot.com/2010/04/pstricks-latex.html&quot;&gt;уже было написано&lt;/a&gt;), то в
данной заметке я опишу как создавать градиенты с помощью &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;.&lt;/p&gt; 
 
&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Простые градиенты&lt;/h3&gt; 
 
&lt;p class=&quot;first&quot;&gt;Нам понадобится пакет &lt;strong&gt;pst-grad&lt;/strong&gt;.  Чтобы создать градиент, необходимо
нарисовать требуемую физуру, а в качестве заливки в поле для дополнительных
опций указать &lt;strong&gt;fillstyle=gradient&lt;/strong&gt;.  После этого нам окажутся доступны
следующие параметры (из названий всё понятно):&lt;/p&gt; 
 
&lt;ul&gt; 
&lt;li&gt;&lt;strong&gt;gradbegin&lt;/strong&gt; &amp;mdash; начальный цвет.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;gradend&lt;/strong&gt; &amp;mdash; конечный цвет.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;gradlines&lt;/strong&gt; &amp;mdash; количество линий, используемых для рисования.
градиента.  Чем больше - тем ровнее, но страдает время отрисовки.
По умолчанию 500.&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;gradangle&lt;/strong&gt; &amp;mdash; направление вектора градиента.  На самом деле,
перпендикуляра к вектору градиента (специально это так сделано, или
нет - мне не понятно) .&lt;/li&gt; 
&lt;li&gt;&lt;strong&gt;gradmidpoint&lt;/strong&gt; &amp;mdash; обозначает положение средней точки градиента (от 0
до 1).  Понять что это такое можно, взглянув на рисунок, который
можно создать следующим кодом.&lt;/li&gt; 
&lt;/ul&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\documentclass&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[a4paper]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{article}&lt;/span&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[utf8]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{inputenc}&lt;/span&gt; 
 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[noxcolor]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pstricks}&lt;/span&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pst-grad}&lt;/span&gt; 
 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-1)(2,10)
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1077;&amp;#1084; &amp;#1087;&amp;#1088;&amp;#1103;&amp;#1084;&amp;#1086;&amp;#1091;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1080;&amp;#1082; &amp;#1089; &amp;#1075;&amp;#1088;&amp;#1072;&amp;#1076;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1086;&amp;#1084;
&lt;/span&gt;  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[fillstyle=gradient, gradbegin=green, gradend=blue,
     gradlines=500, gradmidpoint=1, gradangle=10](-2,-1)(2,1)
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1089;&amp;#1090;&amp;#1072;&amp;#1074;&amp;#1083;&amp;#1103;&amp;#1077;&amp;#1084; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1100;
&lt;/span&gt;  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,1){gradmidpoint=1}
 
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1087;&amp;#1086;&amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1103;&amp;#1077;&amp;#1084; &amp;#1090;&amp;#1086; &amp;#1078;&amp;#1077;, &amp;#1085;&amp;#1086; &amp;#1089;&amp;#1086; &amp;#1089;&amp;#1084;&amp;#1077;&amp;#1097;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077;&amp;#1084; &amp;#1086;&amp;#1090;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086; &amp;#1085;&amp;#1072;&amp;#1095;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1081; &amp;#1090;&amp;#1086;&amp;#1095;&amp;#1082;&amp;#1080;
&lt;/span&gt;  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(0,3){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[fillstyle=gradient, gradbegin=green, gradend=blue,
     gradlines=500, gradmidpoint=0, gradangle=10](-2,-1)(2,1)
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,1){gradmidpoint=0}
  }
 
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(0,6){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[fillstyle=gradient, gradbegin=green, gradend=blue,
     gradlines=500, gradmidpoint=0.3, gradangle=10](-2,-1)(2,1)
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,1){gradmidpoint=0.3}
  }
 
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(0,9){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[fillstyle=gradient, gradbegin=green, gradend=blue,
     gradlines=500, gradmidpoint=0.9, gradangle=10](-2,-1)(2,1)
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,1){gradmidpoint=0.9, default}
  }
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;/pre&gt; 
 
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNFHcvJRiwtWFXE3gIsKeCdRjbrYpUWVHPiI6m9mggnFBrJGn0HYyQ_oepIt-scdvjK9VkAt1RxC5KjpRDHC3LM1-AUM7UZFPA600hWHJZzjryiQTGpg2o4MgXKSRdmpdjeKMHhKukJIY/s1600/pic1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 112px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNFHcvJRiwtWFXE3gIsKeCdRjbrYpUWVHPiI6m9mggnFBrJGn0HYyQ_oepIt-scdvjK9VkAt1RxC5KjpRDHC3LM1-AUM7UZFPA600hWHJZzjryiQTGpg2o4MgXKSRdmpdjeKMHhKukJIY/s320/pic1.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5527408397903142354&quot; /&gt;&lt;/a&gt;
 
&lt;p&gt;Цвета можно задавать исходя из стандартных имён, или в RGB формате.
Для этого подключим пакет &lt;strong&gt;color&lt;/strong&gt; и определим цвет посредством &lt;strong&gt;definecolor&lt;/strong&gt;:&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{color}&lt;/span&gt; 
...
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-1)(2,11)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\definecolor&lt;/span&gt;{mycolor}{rgb}{1,0.5,0.1}
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1072; &amp;#1087;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1084; &amp;#1084;&amp;#1086;&amp;#1078;&amp;#1077;&amp;#1084; &amp;#1080;&amp;#1089;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1079;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1094;&amp;#1074;&amp;#1077;&amp;#1090; mycolor &amp;#1082;&amp;#1072;&amp;#1082; &amp;#1079;&amp;#1072;&amp;#1093;&amp;#1086;&amp;#1090;&amp;#1080;&amp;#1084;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt; 
&lt;/pre&gt; 
 
 
 
&lt;h3&gt;Радиальные градиенты&lt;/h3&gt; 
 
&lt;p class=&quot;first&quot;&gt;С помощью пакета &lt;strong&gt;pst-grad&lt;/strong&gt; не удаётся создать радиальных градиентов.  К
примеру, если мы попытаемся использовать градиентную заливку в круге,
то получим следующее:&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-2)(2,2)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\definecolor&lt;/span&gt;{gradbegin}{rgb}{0.4,0.6,0.9}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\definecolor&lt;/span&gt;{gradend}{rgb}{1,0.45,0.83}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=gradient,gradlines=1000,gradmidpoint=0](0,0){2}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;/pre&gt; 
 
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpa4vAwMUDpQ1Mc6XZxh0s1CB2whWAV5eWTbb4ZY0X5h-fxWmkG1xILNw-rVmrrIUx-VGtSAZnjXxGHIKeQNyqOqlGAupZkhoF-v_Qn8lPk_fPF6IitDirRDMkHVhWoAHlRPVKUBmL5yc/s1600/pic2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 309px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpa4vAwMUDpQ1Mc6XZxh0s1CB2whWAV5eWTbb4ZY0X5h-fxWmkG1xILNw-rVmrrIUx-VGtSAZnjXxGHIKeQNyqOqlGAupZkhoF-v_Qn8lPk_fPF6IitDirRDMkHVhWoAHlRPVKUBmL5yc/s320/pic2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5527408404678348114&quot; /&gt;&lt;/a&gt;
 
&lt;p&gt;То есть, обычный плоский градиент.&lt;/p&gt; 
 
&lt;p&gt;Для создания радиальных градиентов можно использовать пакет &lt;strong&gt;pst-slpe&lt;/strong&gt;.
В данном случае используется &lt;strong&gt;fillstyle=ccslope&lt;/strong&gt;, а аргументы, задающие цвета,
аналогичные: &lt;strong&gt;slopebegin&lt;/strong&gt;, &lt;strong&gt;slopeend.&lt;/strong&gt;&lt;/p&gt; 
 
&lt;p&gt;Особое внимание стоит уделить опции &lt;strong&gt;sloperadius&lt;/strong&gt;.  Из иллюстрации ниже
должно быть понятно что к чему.&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-8)(8,4)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,3){red,yellow}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=ccslope,slopebegin=red, slopeend=yellow,
  sloperadius=1](0,0){2}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){sloperadius=1}
 
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](5,3){yellow,blue}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(5,0){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=ccslope,slopebegin=yellow, slopeend=blue,
     sloperadius=1](0,0){2}
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){sloperadius=1}
  }
 
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(0,-5){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=ccslope,slopebegin=red, slopeend=yellow,
     sloperadius=2](0,0){2}
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){sloperadius=2}
  }
 
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rput&lt;/span&gt;(5,-5){
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=ccslope,slopebegin=yellow, slopeend=blue,
     sloperadius=3](0,0){2}
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){sloperadius=3}
  }
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;/pre&gt; 
 


&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJ3HXHBKMtIcfLWD-QpYHeHVSVYOQKjaivgO_EQaHDwcxkHcxxUVfaQCxEKZ-oIzYEq8BWP4WkP__6A157yuXVrSzO6j0uDmTrX7h5v03G9T2KivZiwo0g4_jM14SwjoJaeg4F1alubo/s1600/pic3.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 270px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJ3HXHBKMtIcfLWD-QpYHeHVSVYOQKjaivgO_EQaHDwcxkHcxxUVfaQCxEKZ-oIzYEq8BWP4WkP__6A157yuXVrSzO6j0uDmTrX7h5v03G9T2KivZiwo0g4_jM14SwjoJaeg4F1alubo/s320/pic3.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5527408412884261154&quot; /&gt;&lt;/a&gt;

 
&lt;p&gt;Стоит отметить, точку отсчёта градиента можно смещать.&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-2)(2,3)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=ccslope,slopebegin=yellow, slopeend=blue,
  slopecenter=0.1 0.3](0,0){2}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){slopecenter=0.1 0.3}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;/pre&gt; 
 
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GzA3qdqo_E9YaLw1OgTOuat_qM69KY49KMRmFewpZ9SMB64Por1gPT2d2JVpCHp8d1rKFRHB0i1aJDb7yNPD7-hJR4RfSf92gi3TXbZYCkZrTb9tW8ug3BuVGiklC7b21Px63UFiEf4/s1600/pic4.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GzA3qdqo_E9YaLw1OgTOuat_qM69KY49KMRmFewpZ9SMB64Por1gPT2d2JVpCHp8d1rKFRHB0i1aJDb7yNPD7-hJR4RfSf92gi3TXbZYCkZrTb9tW8ug3BuVGiklC7b21Px63UFiEf4/s320/pic4.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5527408422934476834&quot; /&gt;&lt;/a&gt;
 
&lt;p&gt;Более того, с помощью &lt;strong&gt;pst-slpe&lt;/strong&gt;, можно создавать и такие вещи:&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(-2,-2)(2,2)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillstyle=radslope,slopebegin=yellow, slopeend=blue](0,0){2}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\uput&lt;/span&gt;[90](0,2){fillstyle=radslope}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt; 
&lt;/pre&gt; 
 
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjANGNYJjCpzUoVCHDrJ8jxBTeeKZ60WopOOrJcqfCEFP0FlT9RfHROZEYvd0mIc21zyKq7UW1dTf0rxHErYlvb4ImFY-CwtXeMkahwaqyWy0DagE-zFzLulYlIRuk4IkkQ7I19c5xHqE/s1600/pic5.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjANGNYJjCpzUoVCHDrJ8jxBTeeKZ60WopOOrJcqfCEFP0FlT9RfHROZEYvd0mIc21zyKq7UW1dTf0rxHErYlvb4ImFY-CwtXeMkahwaqyWy0DagE-zFzLulYlIRuk4IkkQ7I19c5xHqE/s320/pic5.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5527408424075383394&quot; /&gt;&lt;/a&gt;


&lt;p&gt;Напоследок могу посоветовать почитать документацию по пакетам pstricks
(&lt;code&gt;/usr/share/doc/texlive-pstricks-doc/generic/pstricks&lt;/code&gt;) и pst-slpe
(&lt;code&gt;/usr/share/doc/texlive-pstricks-doc/generic/pst-slpe&lt;/code&gt;).&lt;/p&gt; 

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2010/10/pstricks.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNFHcvJRiwtWFXE3gIsKeCdRjbrYpUWVHPiI6m9mggnFBrJGn0HYyQ_oepIt-scdvjK9VkAt1RxC5KjpRDHC3LM1-AUM7UZFPA600hWHJZzjryiQTGpg2o4MgXKSRdmpdjeKMHhKukJIY/s72-c/pic1.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-455547033585378150</guid><pubDate>Wed, 05 May 2010 07:49:00 +0000</pubDate><atom:updated>2010-05-05T14:54:31.526+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">hardware</category><title>Suspend и Hibernate на Acer Extensa 4220</title><description>&lt;p&gt;Портативные компьютеры должны обладать способностью «засыпать» и
«просыпаться».  Хорошо, когда это работает.  Однако известно, что в
линуксе с этим зачастую не так гладко.  Например, в моём случае с
ноутбуком Acer Extensa 4220 были проблемы как со ждущим режимом
suspend, так и со спящим hibernate в Ubuntu 8.04 - а именно никак не
удавалось разбудить должным образом :) Не знаю как там в убунте
сейчас, поскольку после небольшого эксперимента почти два года назад
был поставлен дебиан, и только сейчас дошли руки написать как я
настроил режим сна в Debian Lenny.&lt;/p&gt; 
 
&lt;p&gt;В рабочих средах вроде KDE или GNOME есть свои демоны, отвечающие за
электрическую составляющую, вроде gnome-power-manager, которые
позволяют, например, переводить ноутбук в спящий режим.  У
пользователей оконных менеджеров отдельно от рабочих сред резона
запускать такие программы нет, поэтому имеет смысл поискать
альтернативу.  Здесь я опишу каким образом можно настроить спящий
режим на Acer Extensa 4220.&lt;/p&gt; 
&lt;span class=&quot;fullpost&quot;&gt;
 
&lt;h4&gt;Пересобирать или не пересобирать?&lt;/h4&gt; 
 
&lt;p class=&quot;first&quot;&gt;Пересобирать ядро не хотелось, ковыряться с этим некогда, ибо
молодость красноглазая уже позади, поэтому был обращён взор в сторону
готовых решений, которые могут работать, а могут, в принципе, и не
работать.  Надежда на то, что работать будут есть и весьма немалая,
ввиду развития Linux, и по мере старения вашего оборудования будет
только расти :)  Но для любителей &lt;code&gt;make menuconfig&lt;/code&gt; имеет смысл заглянуть на
&lt;a href=&quot;http://www.tuxonice.net/&quot;&gt;Tux on Ice.&lt;/a&gt;&lt;/p&gt; 
 
&lt;p&gt;Во время проведения тестов с Arch Linux на борту, выяснилось, что
утилиты s2ram и s2both из комплекта &lt;strong&gt;uswsusp&lt;/strong&gt; не очень корректно
работают для данной модели ноутбука.  При просыпании могло оказаться,
что отваливались клавиатура и мышь, и единственной рабочей кнопкой
оказывалась кнопка выключения компьютера на корпусе.&lt;/p&gt; 
 
&lt;p&gt;Другая альтернатива в виде &lt;strong&gt;pm-utils&lt;/strong&gt; не собиралась из исходников из
AUR&#39;а, с причинами разобраться не удавалось.  Однако в Debian этот
комплекс утилит был в репозитории, поэтому удалось без проблем
протестировать.  Оказалось, что всё заработало «из коробки» -
&lt;code&gt;pm-suspend&lt;/code&gt; и &lt;code&gt;pm-hibernate&lt;/code&gt; успешно переводили комп в
соответствующий режим, а с просыпанием не возникало никаких проблем.&lt;/p&gt; 
 
&lt;p&gt;Чтобы перевести компьютер в ждущий режим, нужно скомандовать:&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&amp;gt; sudo pm-suspend
&lt;/pre&gt; 
 
&lt;p&gt;Чтобы усыпить -&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&amp;gt; sudo pm-hibernate
&lt;/pre&gt; 
 
 
&lt;h4&gt;Доводим до ума&lt;/h4&gt; 
 
&lt;p class=&quot;first&quot;&gt;Поскольку F-клавиши на ноутбуке в комбинации с Fn должны осуществлять,
по задумке создателей в ОС Windows, определённые действия, в
частности засыпание по Fn-F4, имеет смысл и нам его навесить на эту
комбинацию.&lt;/p&gt; 
 
&lt;p&gt;Но для начала надо позволить вводить эти команды без запроса пароля
рута или sudo, для этого командуем от рута &lt;strong&gt;visudo&lt;/strong&gt; (или внимательно
правим &lt;strong&gt;/etc/sudoers&lt;/strong&gt;) и добавляем такие строки:&lt;/p&gt; 
 
&lt;pre class=&quot;listing&quot;&gt; 
username &lt;span style=&quot;color: #eedd82;&quot;&gt;ALL&lt;/span&gt;=NOPASSWD: /usr/sbin/pm-suspend
username &lt;span style=&quot;color: #eedd82;&quot;&gt;ALL&lt;/span&gt;=NOPASSWD: /usr/sbin/pm-hibernate
&lt;/pre&gt; 
 
&lt;p&gt;username надо заменить на имя пользователя.&lt;/p&gt; 
 
&lt;p&gt;После этого потрошим &lt;strong&gt;xbindkeys&lt;/strong&gt; или другую прогамму, позволяющую
создавать биндинги.  Проверим что представляет собой
комбинация Fn-F4, для чего запускаем&lt;/p&gt; 
 
&lt;pre class=&quot;src&quot;&gt; 
&amp;gt; xbindkeys -mk
&lt;/pre&gt; 
 
&lt;p&gt;и нажимаем интересующию комбинацию.  Для Fn-F4 я получил на выходе
«m:0x0+c:223».  Теперь пропишем в &lt;strong&gt;~/.xbindkeysrc&lt;/strong&gt; соотвествующую
строку:&lt;/p&gt; 
 
&lt;pre class=&quot;listing&quot;&gt; 
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;sudo pm-suspend&quot;&lt;/span&gt; 
c:223
&lt;/pre&gt; 
 
&lt;p&gt;Осталось перезапустить xbindkeys.&lt;/p&gt; 
 
 
&lt;h4&gt;Закрываем люк&lt;/h4&gt; 
 
&lt;p class=&quot;first&quot;&gt;Полезно добавить засыпание по закрытию крышки ноутбука.  Для этого
отредактирем файл &lt;strong&gt;/etc/acpi/events/lidbtn&lt;/strong&gt;, заменив строку
&lt;strong&gt;action=/etc/acpi/lid.sh&lt;/strong&gt; на &lt;strong&gt;action=/etc/acpi/sleep.sh&lt;/strong&gt;.  В итоге должно
получиться:&lt;/p&gt; 
 
&lt;pre class=&quot;listing&quot;&gt; 
&lt;span style=&quot;color: #eedd82;&quot;&gt;event&lt;/span&gt;=button[ /]lid
&lt;span style=&quot;color: #eedd82;&quot;&gt;action&lt;/span&gt;=/etc/acpi/sleep.sh
&lt;/pre&gt; 
 
&lt;p&gt;Замечу, что у меня установлены пакеты &lt;strong&gt;acpi, acpi-support,
acpi-support-base, acpid&lt;/strong&gt;.&lt;/p&gt; 

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2010/05/suspend-hibernate-acer-extensa-4220.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-3918421666812871419</guid><pubDate>Tue, 13 Apr 2010 17:52:00 +0000</pubDate><atom:updated>2010-04-14T01:27:02.208+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><category domain="http://www.blogger.com/atom/ns#">pstricks</category><title>PSTricks. Рисуем в LaTeX.</title><description>&lt;p&gt;ЛаТеХ помимо вёрстки текста ещё и умеет рисовать.  Сделать набросок
схемы установки, подрисовать стрелки или кружочки в презентации,
поиграть с текстом или даже построить какой-либо график можно с
помощью &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;.  &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; позволяет делать рисунки прямо в тексте,
то есть в принципе не надо вылазить в графический редактор, создавать
рисунок, а потом экспортировать в удобоваримый формат.  &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; даёт
возможность достаточно быстро и без особых усилий создавать хорошие
рисунки.  Кроме того, существует множество пакетов, в которых уже
реализованы многие примитивы, что позволяет ими оперировать на более
высоком уровне.  Скажем, вам не придётся рисовать пружинку вручную &amp;mdash;
это сделает один из макросов в пакете &lt;a href=&quot;http://mirror.its.uidaho.edu/pub/tex-archive/graphics/pstricks/contrib/pst-coil/&quot;&gt;pst-coil&lt;/a&gt;, для того, чтобы
нарисовать мензурку над горелкой химикам поможет пакет &lt;a href=&quot;http://mirrors.med.harvard.edu/ctan/graphics/pstricks/contrib/pst-labo/&quot;&gt;pst-labo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;При этом, следует заметить, что наличие &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; не означает, что в
его пользу навсегда можно отказаться от такого средств создания
иллюстраций, как &lt;a href=&quot;http://www.tug.org/metapost.html&quot;&gt;Metapost&lt;/a&gt;.  Недостаток &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;, на мой взгляд,
состоит в том, что нельзя добиться полной автоматизации и построения
наиболее общего рисунка.  В &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; нет в явном виде переменных,
которыми можно было бы легко оперировать, а ведь это неоспоримое
преимущество &lt;a href=&quot;http://www.tug.org/metapost.html&quot;&gt;Metapost&lt;/a&gt;, поскольку очень здорово создать рисунок, в
котором всё будет зависеть от пары-тройки переменных, передвинув
которые можно добиться наиболее наглядного результата.  В &lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; же
всё реализовано через декартовы или полярные координаты в явном виде.&lt;/p&gt;


&lt;h3&gt;Установка&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Для начала установим pstricks.  В Debian все как обычно:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&amp;gt; aptitude install texlive-pstricks texlive-pstricks-doc
&lt;/pre&gt;

&lt;p&gt;Эта команда установит pstricks целиком, со всеми входящими в него
пакетами и документацией к ним.  В общем случае ничего руками
доставлять не надо будет.  Документация будет лежать в
&lt;code&gt;/usr/share/doc/texlive-pstricks-doc/&lt;/code&gt; в виде pdf-файлов.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Синтаксис&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Итак, начнём.  Концепция всех макросов примерно такова: аргументы
указываются в фигурных скобках, дополнительные опции &amp;mdash; в квадратных,
а координаты &amp;mdash; в круглых.  В частности, чтобы нарисовать вектор из (1,2)
в (4,3) толщиной 2pt и красного цвета, нужно написать следующее:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;[linecolor=red, linewidth=2pt]{-&amp;gt;}(1,2)(4,3)
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoi94UoGcRf5fHrTXrsWMo2eDcaKcMy2Lz-ZhIKKxC7pASl3IlDTa6_ZQq1XtPbeBx0uOU3ckH0BoIl9SljZBscXi8F_b_uN32qbGg2rH33skB-WoNZFYffLW7Osgw75sF8tPM3a-84Ro/s1600/pic1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;


&lt;p&gt;Как видно, для макроса &lt;strong&gt;\psline&lt;/strong&gt;, который строит отрезки со стрелками на
концах или без них, обязательным аргументом является направление
вектора.  Если нужен не вектор, а просто отрезок, то фигурные скобки
можно опустить.&lt;/p&gt;

&lt;p&gt;Для окружности обязательным аргументом является её радиус.  Для
построения окружности с радиусом 1.8 с центром в точке (4,2),
закрашенной красным, пишем следующее:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillcolor=red, fillstyle=solid](4,2){1.8}
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtQVNLPOudQtP2pb5B3q2asLYl0QtdmlLtowvGoZ63iVAFI8SVUvjEQRAcGkQkkYBdvwcP982pWukZnSgyrnVCDPDC7_ZpqJZ7yhbowU_Dn3SMab5mHcXbC9HWQNZUvZU19JW2A8hooS4/s1600/pic2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Можно представить, что надо построить несколько элементов, однаково
закрашенных.  Но при этом не хотелось бы каждый раз писать
&amp;quot;fillcolor=red, fillstyle=solid&amp;quot;.  Для этого существует макрос &lt;strong&gt;\psset&lt;/strong&gt;,
благодаря которому можно задать перманентно для всего рисунка от
текущего момента до момента переопределения различные графические
параметры, такие как тип заполнения, цвет линии, цвет заполнения, тип
линии, толщина линии, значение единицы длины (по умолчанию 1cm).&lt;/p&gt;

&lt;p&gt;Очевидно, что именно задаёт следующая команда&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psset&lt;/span&gt;{linewidth=2pt, linecolor=blue, fillstyle=solid,
   fillcolor=yellow, linestyle=dashed, unit=2cm}
&lt;/pre&gt;


&lt;p&gt;Однако, если для какого-то определённого элемента предустановленный
вами параметр не подходит, его легко можно изменить, более подходящим
параметром в квадратных скобках.  Так, несмотря на определение,
окружность будет красной, а не жёлтой, но при этом линия на границе
будет хоть и штриховой, но чёрной.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psset&lt;/span&gt;{linewidth=2pt, linecolor=blue, fillstyle=solid,
   fillcolor=yellow, linestyle=dashed}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;{-&amp;gt;}(0,0)(1,2)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;[fillcolor=red, fillstyle=solid, linecolor=black](4,2){1.8}
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi_zFzRf2bDiZPFxX_Qb9G9uBniMM3rVXwOMg6r3rdkb1zsrTc2_clKvAj18NBEHQF_77GDgr6wCF4L9r0fIY0KfAOZ4rI2qZ8Bgw9Sl4-WWp0Kv6l1W4J6dt-4cyM4KEVrOPgwzbYXgE/s1600/pic3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;


&lt;h3&gt;Примитивы&lt;/h3&gt;


&lt;h4&gt;Точки&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В рисунке всё начинается с точки.&lt;/p&gt;

&lt;p&gt;Нарисовать точку можно следующей командой:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[dotstyle=triangle](1,1)
&lt;/pre&gt;
Здесь «точка» будет нарисована треугольником (незакрашенным) в
координате (1,1).  Чтобы треугольник был закрашенным, надо указать
&lt;code&gt;triangle*&lt;/code&gt;.  Аналогично будет и для других стилей точки.

&lt;p&gt;По умолчанию, если не выбран &lt;strong&gt;dotstyle&lt;/strong&gt;, точка будет нарисована
закрашенным кружком.  Немаловажным параметром является &lt;strong&gt;dotsize&lt;/strong&gt;.  Что
он означает объяснять не надо.&lt;/p&gt;

&lt;p&gt;Ряд точек рисуется с помощью макроса &lt;strong&gt;\psdots&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdots&lt;/span&gt;(x1,y1)(x2,y2)(x3,y3)(x4,y4)
&lt;/pre&gt;



&lt;h4&gt;Сетка&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Пока мы не пошли дальше, следует отметить, что настоятельно
рекомендуется (где это возможно) рисунки оформлять в окружении
&lt;strong&gt;pspicture&lt;/strong&gt;.  В принципе, можно и без него, но могут в этом случае
возникнуть проблемы с взаимодействием рисунков, переносами и пр.&lt;/p&gt;

&lt;p&gt;Синтаксис следующий:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(0,0)(3,4)
  ...&amp;#1074;&amp;#1072;&amp;#1096; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1086;&amp;#1082;...
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Здесь (0,0) &amp;mdash; это координаты нижней левой точки рисунка, а (3,4) &amp;mdash;
координаты правой верхней.&lt;/p&gt;

&lt;p&gt;В случае, если координаты границ рисунка заданы, есть возможность
нарисовать координатную сетку.  Для этого используется макрос &lt;strong&gt;\psgrid&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Следующая команда нарисует сетку, где между основными делениями будут
малые деления, разделяющие большие на две части (по умолчанию на пять,
что, на мой взгляд, очень мелко).&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psgrid&lt;/span&gt;[subgriddiv=2]
&lt;/pre&gt;

&lt;p&gt;Итак, вспомним про точки, о которых было описано выше, и нарисуем их
вместе с сеткой.  Ниже будет показано, что получится в результате
выполнения следующего кода:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;(0,0)(3,4)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psgrid&lt;/span&gt;[subgriddiv=2]
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;(1,1)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[linecolor=red, dotstyle=asterisk, dotsize=20pt](1,2)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[linecolor=blue, dotstyle=diamond*, dotsize=10pt](1,3)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[linecolor=green, dotstyle=square, dotsize=20pt](2,2)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[dotstyle=o, dotsize=20pt](2,1)
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psdot&lt;/span&gt;[dotstyle=pentagon*, dotsize=15pt](2,3)
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{pspicture}&lt;/span&gt;
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtzAa25pmEJ_tuXdBoqwzRXxj8NB8HWV2Aevtn2O-xf5gB7uuwQ5vt9NWvWfTjGdVc4G4MgcTtDKXNoIqI4a7iPRyS0Aqul1Tr_t81w_3kPxVtjLQQQVJsWBZcee4JH1499WCNHybxhNc/s1600/pic4.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Далее я буду в основном при написании исходного кода опускать
окружение &lt;strong&gt;pspicture&lt;/strong&gt;, однако на практике про него не следует забывать.&lt;/p&gt;



&lt;h4&gt;Отрезки&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Как мы уже видели, для создания отрезков или векторов используется
следующая конструкция (при этом дополнительные опции, которые можно
определить с помощью &lt;strong&gt;\psset&lt;/strong&gt; я буду преимущественно опускать, чтобы не
загромождать вид):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;{-&amp;gt;}(1,2)(3,-5)
&lt;/pre&gt;

&lt;p&gt;Чтобы поменять направление вектора, совсем не обязательно менять
местами координаты &amp;mdash; достаточно изменить направление с &lt;strong&gt;{-&amp;gt;}&lt;/strong&gt; на
&lt;strong&gt;{&amp;lt;-}&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Кроме того, можно ввести радиус кривизны при соединении более, чем
двух точек, опцией &lt;strong&gt;linearc&lt;/strong&gt;.  Можем соединить сразу несколько точек и
увидеть как это будет выглядеть для различных радиусов кривизны:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;[linecolor=black](0,0)(1,1)(2,-1)(4,2)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;[linearc=0.3, linecolor=red](0,0)(1,1)(2,-1)(4,2)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;[linearc=0.5, linecolor=blue](0,0)(1,1)(2,-1)(4,2)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psline&lt;/span&gt;[linearc=0.8, linecolor=green](0,0)(1,1)(2,-1)(4,2)
&lt;/pre&gt;



&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6ew7maebnAF7_r31vfLZ3xab-Evm0_gbIQbpSn89VyLCCViRJbgSOA8vz-cmgCHYnD6iusvZ8fZ7YTMI4imOLDSnz-y5r9DB-47IrZ_s5TSWzPLFEtnEqDLeeEEXCwhxw468DJKV-Gk/s1600/pic5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;


&lt;h4&gt;Окружность, эллипс, сектор, сегмент&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Как было сказано, для окружности основными параметрами являются
положение центра и радиус.  А для эллипса положение центра и значения
полуосей, также указанные в круглых скобках, как и координаты.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psellipse&lt;/span&gt;[fillcolor=green, fillstyle=solid](2,3)(2,1)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscircle&lt;/span&gt;*(2,3){1}
&lt;/pre&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAk692AHrwZiBlD4HLlp3f-9bGNQh6ocArwF2CedgKe2zt1QdWiiGFF7iYo4IDVdjiXbfSDSxrsvgwpfrKLxUs0dJmMeVAeyaJZrjM5sG5UW0Jn6G2pFRUCUQ3aI6CAkeEU4urTurtIx8/s1600/pic6.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 198px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAk692AHrwZiBlD4HLlp3f-9bGNQh6ocArwF2CedgKe2zt1QdWiiGFF7iYo4IDVdjiXbfSDSxrsvgwpfrKLxUs0dJmMeVAeyaJZrjM5sG5UW0Jn6G2pFRUCUQ3aI6CAkeEU4urTurtIx8/s400/pic6.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5459684772576228882&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Здесь использована конструкция &lt;code&gt;\pscircle*&lt;/code&gt;, которая означает, что
окружность следует залить тем же цветом, что и цвет линии &lt;strong&gt;linecolor&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Для секторов используется макрос &lt;strong&gt;\pswedge&lt;/strong&gt;, для которого нужно
задать положение центра окружности, радиус, начальный угол и конечный
угол.  Аналогичные параметры задаются и для &lt;strong&gt;\psarc&lt;/strong&gt;, рисующего
дуги.  Сегмент можно нарисовать, с помощью &lt;code&gt;\psarc*&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pswedge&lt;/span&gt;[linecolor=red, linestyle=solid](2,2){2}{15}{135}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psarc&lt;/span&gt;*[linecolor=blue](2,2){2}{190}{300}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psarc&lt;/span&gt;[showpoints=true, arrowsize=10pt]{-&amp;gt;}(2,2){2}{310}{360}
&lt;/pre&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB0r8P-cjkXRb-XDSBUGQT-rmbKDrSfdylMKqA2XCdDAjxsdwfmchixoTL4qtqu_mKA7n364CIKf64h1aZFiqL6yXc0d8ZDxkum1jO-Tg9LBOlx_1eerQxVHwGLfmoS8Knhkb4s2qLook/s1600/pic7.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 386px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB0r8P-cjkXRb-XDSBUGQT-rmbKDrSfdylMKqA2XCdDAjxsdwfmchixoTL4qtqu_mKA7n364CIKf64h1aZFiqL6yXc0d8ZDxkum1jO-Tg9LBOlx_1eerQxVHwGLfmoS8Knhkb4s2qLook/s400/pic7.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5459684782073835346&quot; /&gt;&lt;/a&gt;

&lt;h4&gt;Прямоугольники&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Для прямоугольников задаются левый нижний и правый верхний углы.
Аналогично &lt;strong&gt;linearc&lt;/strong&gt; для прямоугольников использутся &lt;strong&gt;framearc&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[linecolor=blue, framearc=0.5](0,0)(4,3)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psframe&lt;/span&gt;[linecolor=black](1,1)(3,2)
&lt;/pre&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_u9pbIuV9JbbNRJOz5Xz2ZSnfV3UmT7cQds05NBBGCVP6AGViuNyxmKeERehcDxzxK310P9Bls30Td7ha9NwV-FpwJazoo4Mc41ccmFDW31vYlOzwfLjPIYTuxQDNd4_hCN2qlU8Pxl0/s1600/pic8.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 293px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_u9pbIuV9JbbNRJOz5Xz2ZSnfV3UmT7cQds05NBBGCVP6AGViuNyxmKeERehcDxzxK310P9Bls30Td7ha9NwV-FpwJazoo4Mc41ccmFDW31vYlOzwfLjPIYTuxQDNd4_hCN2qlU8Pxl0/s400/pic8.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5459684787608474258&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Кроме того, есть возможность загнать в прямоугольник кусок текста:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
\psframebox[linecolor=red]{&amp;#1050;&amp;#1091;&amp;#1089;&amp;#1086;&amp;#1082; &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090;&amp;#1072;}, \psovalbox{&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1082;&amp;#1091;&amp;#1089;&amp;#1086;&amp;#1082;}
&lt;/pre&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8QcPDwZ_xpumvN2h88BhrILbikRzxuA8H9impdBLn6mx-A-ttff3qvLPUo9OnXubfOaVwUTJOZKuu7e8TrveGSXstOCDLDMAWCKb1AF_VKa0asdoCXS82QD2qMjta5vJ-UeEHMuHz-tg/s1600/pic9.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 42px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8QcPDwZ_xpumvN2h88BhrILbikRzxuA8H9impdBLn6mx-A-ttff3qvLPUo9OnXubfOaVwUTJOZKuu7e8TrveGSXstOCDLDMAWCKb1AF_VKa0asdoCXS82QD2qMjta5vJ-UeEHMuHz-tg/s400/pic9.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5459684793079952386&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Это может оказаться весьма полезным в презентациях для выделения
текста, на который следует обратить особое внимание.&lt;/p&gt;


&lt;h4&gt;Кривые&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Кривые можно рисовать с помощью &lt;strong&gt;\psbezier&lt;/strong&gt; и &lt;strong&gt;\pscurve&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;\psbezier&lt;/strong&gt; рисует кривые безье.  Начальное направление кривой идёт
по касательной к отрезку, соединяющему первую пару точек, а конечное,
соответственно, по касательной к отрезку, соединяющему вторую пару.
Дополнительный параметр &lt;strong&gt;showpoints&lt;/strong&gt; позволяет понять принцип:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psgrid&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psbezier&lt;/span&gt;[showpoints=true](0.5,1)(1,3)(2,0.5)(3,4)
&lt;/pre&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ2ff8LSEJ7_nHD-Wou3zeqBwWV0KA4XxQtxMQmIb2dRJlb2ifqDdrwT8gvxbMNfPeMJwVet63-_phva2Vx8nGh8GT61NqUmy3Y5G7XPF1YALtlwel_oAu5XYi7LwcxR7VNeQDdZZ8AMc/s1600/pic10.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 330px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ2ff8LSEJ7_nHD-Wou3zeqBwWV0KA4XxQtxMQmIb2dRJlb2ifqDdrwT8gvxbMNfPeMJwVet63-_phva2Vx8nGh8GT61NqUmy3Y5G7XPF1YALtlwel_oAu5XYi7LwcxR7VNeQDdZZ8AMc/s400/pic10.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5459684795778397106&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;\pscurve&lt;/strong&gt; просто рисует кривую через заданные точки.  А &lt;strong&gt;\psccurve&lt;/strong&gt;
рисует замкнутую кривую.  Параметр &lt;strong&gt;curvature&lt;/strong&gt;, принимающий три
значения, определяет насколько «кривой» будет линия.  Следует немного
поиграть с параметрами, чтобы понять принцип:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psgrid&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscurve&lt;/span&gt;[curvature=1 0.1 0, showpoint=true](0.5,0.5)(2,0.5)(1,2)(2.5,2.8)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscurve&lt;/span&gt;[curvature=0.5 0.1 0, linecolor=red](0.5,0.5)(2,0.5)(1,2)(2.5,2.8)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\pscurve&lt;/span&gt;[curvature=0.2 0.1 0, linecolor=blue, arrowsize=10pt]{-&amp;gt;}(0.5,0.5)(2,0.5)(1,2)(2.5,2.8)
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\psccurve&lt;/span&gt;[linecolor=purple](0.5,0.5)(2,0.5)(1,2)(2.5,2.8)
&lt;/pre&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img style=&quot;text-align:center&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTk_ggCNuy0la7Dos2AqTt4MqcjZeaXGezYjdCUrGVIFoNi9k6FJJ-VBS2TymQmxi-HnFnn2tpuSfGa3fDrmaePivXaKgmg03eNFEUaTrtpNDCKKAARUck4nPCJHrD5wV-Vz0LWRyVklI/s1600/pic11.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;


&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;На этом я закончу первую статью по
&lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;.  В принципе, уже
описанных примитивов достаточно для создания простеньких и не очень
рисунков.&lt;/p&gt;

&lt;p&gt;Благодаря простоте синтаксиса и встроенности в LaTeX
&lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt; оказывается весьма
удобным инструментом для создания самых разнообразных иллюстраций и
схем.&lt;/p&gt;

&lt;p&gt;В дальнейшем мы посмотрим на операции с цветами, простейшую
автоматизацию, рассмотрим некоторые дополнительные пакеты для
&lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi/&quot;&gt;PSTricks&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;И, напоследок, что следует почитать:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tug.org/PSTricks/main.cgi?file=examples&quot;&gt;Множество примеров&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tug.org/PSTricks/main.cgi?file=doc/docs&quot;&gt;User guides и документация&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.ursoswald.ch/LaTeXGraphics/pstricks/pstricks.html&quot;&gt;Несколько интересных примеров&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Документация по пакету texlive-pstricks в &lt;code&gt;/usr/share/doc/texlive-pstricks-doc/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2010/04/pstricks-latex.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoi94UoGcRf5fHrTXrsWMo2eDcaKcMy2Lz-ZhIKKxC7pASl3IlDTa6_ZQq1XtPbeBx0uOU3ckH0BoIl9SljZBscXi8F_b_uN32qbGg2rH33skB-WoNZFYffLW7Osgw75sF8tPM3a-84Ro/s72-c/pic1.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-3645731509238330227</guid><pubDate>Mon, 29 Mar 2010 15:47:00 +0000</pubDate><atom:updated>2010-03-29T22:51:37.805+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">gnuplot</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Автодополнение в интерактивном Gnuplot с помощью rlwrap</title><description>&lt;p&gt;В очень удобной программе построения графиков &lt;a href=&quot;http://www.gnuplot.info/&quot;&gt;Gnuplot&lt;/a&gt; не работает
автодополнение.  По крайней мере, в сборке Debian Lenny.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&amp;gt; gnuplot --version
gnuplot 4.2 patchlevel 2
&lt;/pre&gt;

&lt;p&gt;Очень непросто набивать полные названия файлов в интерактивном режиме
без дополнения по TAB.  Конечно, их можно копировать из вывода !ls с
помощью мыши, но это весьма неудобно.  Судя по всему, причина лежит в
том, что gnuplot собран без поддержки readline.&lt;/p&gt;

&lt;p&gt;Поскольку из сорцов пересобирать gnuplot не хотелось, надо было найти
альтернативный путь.  Оказалось, что существует такая замечательная
программа &lt;a href=&quot;http://freshmeat.net/projects/rlwrap/&quot;&gt;rlwrap&lt;/a&gt;, которая позволяет связать readline с программами, в
которой нет поддержки readline.  Таким образом, программы, в которых
не реализованы функции автодополнения, истории команд и т.п., начинают
обладать таким функционалом.&lt;/p&gt;

&lt;p&gt;Устанавливается эта прога в Debian стандартно:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&amp;gt; sudo aptitude install rlwrap
&lt;/pre&gt;

&lt;p&gt;Запуск осуществляется, как следует из мана, таким образом:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&amp;gt; rlwrap [options] command
&lt;/pre&gt;

&lt;p&gt;В нашем случае &lt;strong&gt;command&lt;/strong&gt; есть &lt;strong&gt;gnuplot&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Если взглянуть на man-страницу, то следует обратить внимание на опцию
&lt;strong&gt;-a, &amp;mdash;always-readline&lt;/strong&gt;. Что она делает более или менее ясно из её
названия.  Значит, будет использоваться readline независимо от
настроек &lt;strong&gt;command&lt;/strong&gt;.  Для обеспечения автодополнения имён файлов есть
опция &lt;strong&gt;-c, &amp;mdash;complete-filenames&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Таким образом, запустив gnuplot следующим образом:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&amp;gt; rlwrap -a -c gnuplot
&lt;/pre&gt;
получим gnuplot с автодополнением.

&lt;p&gt;Чтобы каждый раз не писать такую команду, имеет смысл сделать алиас,
например, записав в файл ~/.bash_aliases:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
alias gnuplot=&#39;rlwrap -a -c gnuplot&#39;
&lt;/pre&gt;

&lt;p&gt;Также rlwrap позволяет менять размер истории (см. опцию &lt;strong&gt;-s,
&amp;mdash;histsize&lt;/strong&gt;), исключать из истории дубликаты (см. опцию &lt;strong&gt;-D,
&amp;mdash;history-no-dupes&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Описанное решение нашёл &lt;a href=&quot;http://stefaanlippens.net/gnuplot_word_completion_with_rlwrap&quot;&gt;здесь&lt;/a&gt;, за что автору большое спасибо!&lt;/p&gt;</description><link>http://tuxray.blogspot.com/2010/03/gnuplot-rlwrap.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-5079861833257785848</guid><pubDate>Thu, 31 Dec 2009 13:36:00 +0000</pubDate><atom:updated>2010-01-01T00:34:22.055+06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">media</category><title>Ncmpcpp. MPD-клиент с двумя плюсами</title><description>&lt;p&gt;&lt;a href=&quot;http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki&quot;&gt;MPD&lt;/a&gt; представляет собой клиент-серверную систему для прослушивания
музыки.  Основная особенность состоит в том, что где-то в фоне
работает демон, играющий музыку, а этим самым демоном можно управлять
с помощью различных клиентов.  Этих самых клиентов в природе
существует много, но находятся создатели новых клиентов, по-видимому,
остающиеся недовольными уже созданными программами.&lt;/p&gt;

&lt;p&gt;В данной заметке я бы хотел рассказать о клиенте &lt;a href=&quot;http://unkart.ovh.org/ncmpcpp/&quot;&gt;Ncmpcpp&lt;/a&gt;,
представляющим собой логическое продолжение клиента &lt;a href=&quot;http://hem.bredband.net/kaw/ncmpc/&quot;&gt;ncmpc&lt;/a&gt;, который
является удобным консольным клиентом с псевдографическим интерфейсом
(ncurses).&lt;/p&gt;

&lt;h3&gt;Ещё один?&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Да, казалось бы, зачем огород городить?  Но у ncmpcpp есть ряд
преимуществ, по сравнению с любимым многими ncmpc.&lt;/p&gt;

&lt;p&gt;Вот неполный список полезностей.  Добавлены возможности:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Изменение стиля оформления плейлиста и списка песен в базе (положение полей, а также
их цвет).&lt;/li&gt;
&lt;li&gt;Чтение текста песен (не наших :).&lt;/li&gt;
&lt;li&gt;Редактирование тегов, не выходя из клиента и без необходимости обновлять заново базу.&lt;/li&gt;
&lt;li&gt;Удаление неугодныех файлов с диска.&lt;/li&gt;
&lt;li&gt;Добавление в плейлист случайных песен.  Может кому-нибудь и будет
полезно, чтобы среди терабайтов музыки не забыть какая музыка ещё
представлена на компьютере.&lt;/li&gt;
&lt;li&gt;Поиск песни в браузере базы по песне в плейлисте.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Конфиг расположен по адресу &lt;code&gt;~/.ncmpcpp/config&lt;/code&gt; и прекрасно документирован.&lt;/p&gt;

&lt;h4&gt;Правка тегов&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Особенно полезна, на мой взгляд, возможность редактирования тегов.  К
примеру в &lt;strong&gt;ncmpc&lt;/strong&gt; нельзя было, изменив теги, во внешнем редакторе,
добиться их изменения в базе - отображалось всё по-старому.
Необходимо было переименовывать файлы (директории), обновлять базу, а
потом возвращать прежние имена с последующим обновлением.  Здесь же
можно выбрать нужный файл (или директорию с файлами), подправить теги,
и получить сразу же скорректированную базу.&lt;/p&gt;

&lt;p&gt;Вот так это выглядит на скриншоте:&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD-40ydUaIRu46JCGGSg7ZqAH1cdbYcNc8S4Z1CbXVGy5aT-npkWfw1PFAfklbp0pw-fmta_7HFCCuHZRYV0sU2ISunuJRbyVJ5G-HRVC1m9tnfOCuz39wIoD7tsDPenLp7rX0Jf8CL3s/s1600-h/tags.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD-40ydUaIRu46JCGGSg7ZqAH1cdbYcNc8S4Z1CbXVGy5aT-npkWfw1PFAfklbp0pw-fmta_7HFCCuHZRYV0sU2ISunuJRbyVJ5G-HRVC1m9tnfOCuz39wIoD7tsDPenLp7rX0Jf8CL3s/s400/tags.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5421394248857169394&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Как видно на скриншоте, есть возможность сделать первые буквы
заглавными, а также все - строчными.  Изменения вступают в силу после
нажатия на «Save».&lt;/p&gt;

&lt;p&gt;Если хочется подправить теги, скажем, текущей песни в плейлисте, то
можно ткнуть на песне в плейлисте «e», откроется «Tiny tag editor»,
где и можно внести изменения.&lt;/p&gt;


&lt;h4&gt;Лирика&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Лирика качается с двух ресурсов: &lt;a href=&quot;http://lyricwiki.org&quot;&gt;lyricwiki.org&lt;/a&gt; и &lt;a href=&quot;http://lyricsplugin.com&quot;&gt;lyricsplugin.com&lt;/a&gt;.  Но
похоже, что c первой проблемы со скачиванием нахаляву, поэтому можно
стягивать со второго ресурса.  Для этого в конфиге надо указать
lyrics_database = &amp;quot;2&amp;quot;.  После этого можно выставлять курсор на
интересующую песню и давить «l» (латинская маленькая L).&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyGqsEAGtqbTDSckz979ClAvi2mi6u4JjSw_0R6I3o3sbPrj3i0Gxt3oVzb4q-Soygda5jTNdnc3SEjDcWU6tg2wtn_5965rYG_3GcRER-ri9tqhxFM5HtpuQxQUUwAbEB9VeDwylNSoA/s1600-h/lyrics.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyGqsEAGtqbTDSckz979ClAvi2mi6u4JjSw_0R6I3o3sbPrj3i0Gxt3oVzb4q-Soygda5jTNdnc3SEjDcWU6tg2wtn_5965rYG_3GcRER-ri9tqhxFM5HtpuQxQUUwAbEB9VeDwylNSoA/s400/lyrics.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5421470384106331714&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Easy money!&lt;/p&gt;

&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Данный клиент почти не отличается от старого-доброго &lt;a href=&quot;http://hem.bredband.net/kaw/ncmpc/&quot;&gt;ncmpc&lt;/a&gt;, но
содержит некоторые рюшечки, которые могут оказаться полезными.&lt;/p&gt;

&lt;p&gt;С Новым Годом!&lt;/p&gt;</description><link>http://tuxray.blogspot.com/2009/12/ncmpcpp-mpd.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD-40ydUaIRu46JCGGSg7ZqAH1cdbYcNc8S4Z1CbXVGy5aT-npkWfw1PFAfklbp0pw-fmta_7HFCCuHZRYV0sU2ISunuJRbyVJ5G-HRVC1m9tnfOCuz39wIoD7tsDPenLp7rX0Jf8CL3s/s72-c/tags.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-4924049602711121882</guid><pubDate>Thu, 26 Nov 2009 17:57:00 +0000</pubDate><atom:updated>2009-11-27T00:04:03.350+06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">imagemagick</category><category domain="http://www.blogger.com/atom/ns#">media</category><title>Как удалить однотонный фон с картинки с помощью ImageMagick</title><description>&lt;p&gt;&lt;strong&gt;Есть&lt;/strong&gt; картинца с однотонным фоном.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Надо&lt;/strong&gt; Этот тон удалить и заменить белым.&lt;/p&gt;

&lt;p&gt;Нет ничего проще, если под рукой есть imagemagick.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
convert with-background.png -transparent &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;#FFFFCC&quot;&lt;/span&gt; \
   -background white -layers flatten white-background.png
&lt;/pre&gt;

&lt;p&gt;Здесь &amp;quot;#FFFFCC&amp;quot; означает цвет фона моей картинки.&lt;/p&gt;

&lt;p&gt;Конструкция &lt;code&gt;-transparent $COLOR&lt;/code&gt; делает прозрачным всё, что обладает
заданным цветом.  А &lt;code&gt;-background white&lt;/code&gt; совместно с &lt;code&gt;-layers flatten&lt;/code&gt;
делает фон белым.  Хотите другой?  Меняйте &lt;code&gt;white&lt;/code&gt; на всё, что
пожелаете, и всё.&lt;/p&gt;

&lt;p&gt;Вы спросите, почему именно &lt;code&gt;-layers flatten&lt;/code&gt;? Не знаю :) Работает,
главное. Также работает &lt;code&gt;-layers merge&lt;/code&gt; и &lt;code&gt;-layers mosaic&lt;/code&gt;.  Но поскольку
здесь изображение одно, то разницы между ними, вроде как нет.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWzK5xYYjl6vxPJ3p9u7o8L3qocYzT1PuAPPG9lXGXr9Eebt-N5y_YWi4_GZFOaAn-xcbX-H7zTbOocjrrYpTzp0N6olmDBszB7-ox0LhaJeM-1HT0wiX4BZMOgksxdgvHcY-JvCQX2Sw/s1600/result.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 271px; height: 400px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWzK5xYYjl6vxPJ3p9u7o8L3qocYzT1PuAPPG9lXGXr9Eebt-N5y_YWi4_GZFOaAn-xcbX-H7zTbOocjrrYpTzp0N6olmDBszB7-ox0LhaJeM-1HT0wiX4BZMOgksxdgvHcY-JvCQX2Sw/s400/result.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5408473541580387378&quot; /&gt;&lt;/a&gt;

P.S. Мне это понадобилось, потому что не оказалось под рукой нужного графика.  Исходных данных нет, всё что было, так это рисунок внутри PDF файла, который я оттуда успешно стянул :)</description><link>http://tuxray.blogspot.com/2009/11/imagemagick.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWzK5xYYjl6vxPJ3p9u7o8L3qocYzT1PuAPPG9lXGXr9Eebt-N5y_YWi4_GZFOaAn-xcbX-H7zTbOocjrrYpTzp0N6olmDBszB7-ox0LhaJeM-1HT0wiX4BZMOgksxdgvHcY-JvCQX2Sw/s72-c/result.jpg" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2999948443534568468</guid><pubDate>Fri, 16 Oct 2009 17:35:00 +0000</pubDate><atom:updated>2009-10-17T00:41:14.675+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><title>Отображение текущих разделов в содержании презентации beamer.</title><description>&lt;p&gt;И снова про презентации в
&lt;a href=&quot;http://latex-beamer.sourceforge.net/&quot;&gt;beamer&lt;/a&gt;.  Иногда полезно по
ходу презентации акцентировать внимание на том, что именно вы
планируете рассказать в данный конкретный момент по ходу презентации.
Это особенно важно, если зрители во время докладов на конференции
засыпают, а не хочется, чтобы они спали на вашем докладе.  В настоящее
время визуальный фактор стал играть основополагающую роль в
презентации, а именно, на докладчика почти никогда зрители не смотрят
(в большинстве своём), а некоторые не особо-то и слушают, поскольку
целиком сфокусировали свой взгляд и внимание на изображении от
проектора в полутёмном конференц-зале с мягкими креслами.  А
монотонная речь докладчика только помогает слушателям отдохнуть и
набраться сил после вчерашнего фуршета по поводу успешного окончания
третьего или четвертого дня конференции, вздремнув на вашем докладе.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Только подушек не хватает, а руки от постоянного поддерживания головы
затекают, да и голова всегда норовит соскользнуть.  Надеюсь, в будущем
это недоработка будет исправлена, и по специальным талончикам будут
выдавать не только наушники, в которых можно услышать переводчика, а
также и надувные подушки вокруг шеи, вроде тех, что можно увидеть в
самолётах.  Это позволит слушателям хорошенько отдохнуть, переждать нудные лекции
и подготовиться к действительно интересным и ярким докладам.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Поэтому, если вам требуется внимание аудитории, иногда необходимо как
следует взбодрить слушателей (разумеется, первым делом следует
искоренить монотонное бубнение себе под нос), не только сказав к
какому разделу или части работы вы подошли, но и показать это на
слайде.  О том, как это можно удобно сделать с помощью пакета &lt;a href=&quot;http://latex-beamer.sourceforge.net/&quot;&gt;beamer&lt;/a&gt;, я
расскажу в этой заметке.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;
&lt;p&gt;
Чтобы при появлении нового раздела (section) на экране отображалась
часть содержания доклада, необходимо в преамбуле (до &lt;code&gt;\begin{document}&lt;/code&gt;)
написать следующее:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\AtBeginSection&lt;/span&gt;[]{
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;&amp;lt;beamer&amp;gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1057;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;}
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\tableofcontents&lt;/span&gt;[currentsection]
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;
}
&lt;/pre&gt;

&lt;p&gt;Если же хочется, чтобы при появлении каждого подраздела (subsection)
происходило то же самое, то «AtBeginSection» надо заменить на
«AtBeginSubsection».&lt;/p&gt;

&lt;p&gt;Если не надо, чтобы каждое начало подраздела сопровождалось подобным
отображением, а хочется выделить именно донный подраздел, то уже в
тексте внутри данного интересующего подраздела следует указать
следующее:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\subsection&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 110%; font-weight: bold;&quot;&gt;{&amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;&amp;lt;beamer&amp;gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1057;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\tableofcontents&lt;/span&gt;[currentsection, currentsubsection]
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}
  &amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1080;&amp;#1085;&amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103;!  &amp;#1055;&amp;#1086;&amp;#1088;&amp;#1072; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1085;&amp;#1091;&amp;#1090;&amp;#1100;&amp;#1089;&amp;#1103;!
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Вот и всё.  Теперь больше шансов, что вы сами по ходу доклада не
будете растекаться мыслью по древу, а следовать проработанной
стратегии.  Кроме того, есть выше вероятность того, что слушатели будут более
внимательны, ведь следить за структурированной презентацией гораздо
проще, нежели пытаться уловить суть в монотонном сообщении.&lt;/p&gt;

&lt;p&gt;В заключение прикладываю пример в исходном тексте и итоговый результат.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ZvcRD20ACrHF1vffN17pJ8UXLoVVTLxRl8AxoG6CNsnqpLh9ur5Oj9v10xlmvoTRXr34caijcA4z7_yIcAInQfTksFQZvFVppF_1tyJ134U7mEGCr_izDLN3GnqLKVxgIbWZxndLZgE/s1600-h/beamer_current-section.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 306px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ZvcRD20ACrHF1vffN17pJ8UXLoVVTLxRl8AxoG6CNsnqpLh9ur5Oj9v10xlmvoTRXr34caijcA4z7_yIcAInQfTksFQZvFVppF_1tyJ134U7mEGCr_izDLN3GnqLKVxgIbWZxndLZgE/s400/beamer_current-section.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5393253827845887202&quot; /&gt;&lt;/a&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\documentclass&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[pdf,hyperref={unicode}]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamer}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[T2A]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{fontenc}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[utf8]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{inputenc}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[russian]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{babel}&lt;/span&gt;

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1058;&amp;#1077;&amp;#1084;&amp;#1072; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1079;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usetheme&lt;/span&gt;{Warsaw}

&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\AtBeginSection&lt;/span&gt;[]{
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;&amp;lt;beamer&amp;gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1057;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;}
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\tableofcontents&lt;/span&gt;[currentsection, currentsubsection]
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;
}

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{&amp;#1042;&amp;#1074;&amp;#1077;&amp;#1076;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077;}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{sec:introducion}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\subsection&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 110%; font-weight: bold;&quot;&gt;{&amp;#1055;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083; &amp;#1074;&amp;#1074;&amp;#1077;&amp;#1076;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103;}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1055;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1099;&amp;#1081; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}
  &amp;#1044;&amp;#1086;&amp;#1082;&amp;#1083;&amp;#1072;&amp;#1076;&amp;#1095;&amp;#1080;&amp;#1082; &amp;#1079;&amp;#1072;&amp;#1085;&amp;#1103;&amp;#1083; &amp;#1084;&amp;#1077;&amp;#1089;&amp;#1090;&amp;#1086; &amp;#1085;&amp;#1072; &amp;#1090;&amp;#1088;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1085;&amp;#1077;, &amp;#1072; &amp;#1079;&amp;#1088;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1080; &amp;#1091;&amp;#1078;&amp;#1077;
  &amp;#1088;&amp;#1072;&amp;#1089;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1078;&amp;#1080;&amp;#1083;&amp;#1080;&amp;#1089;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1091;&amp;#1076;&amp;#1086;&amp;#1073;&amp;#1085;&amp;#1077;&amp;#1077; &amp;#1074; &amp;#1084;&amp;#1103;&amp;#1075;&amp;#1082;&amp;#1080;&amp;#1093; &amp;#1082;&amp;#1088;&amp;#1077;&amp;#1089;&amp;#1083;&amp;#1072;&amp;#1093;.
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\subsection&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 110%; font-weight: bold;&quot;&gt;{&amp;#1042;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1081; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1045;&amp;#1097;&amp;#1105; &amp;#1086;&amp;#1076;&amp;#1080;&amp;#1085; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}
  &amp;#1042;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;!  &amp;#1053;&amp;#1072;&amp;#1095;&amp;#1080;&amp;#1085;&amp;#1072;&amp;#1077;&amp;#1090;&amp;#1089;&amp;#1103; &amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1081; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;, &amp;#1077;&amp;#1097;&amp;#1105; &amp;#1088;&amp;#1072;&amp;#1085;&amp;#1086; &amp;#1089;&amp;#1087;&amp;#1072;&amp;#1090;&amp;#1100;! &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{0.5cm}&lt;/span&gt;
  &amp;#1045;&amp;#1089;&amp;#1083;&amp;#1080; &amp;#1093;&amp;#1086;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1077; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1080;&amp;#1090;&amp;#1100; &amp;#1089;&amp;#1083;&amp;#1091;&amp;#1096;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1077;&amp;#1081; &amp;#1074; &amp;#1085;&amp;#1072;&amp;#1095;&amp;#1072;&amp;#1083;&amp;#1077; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1072;, &amp;#1090;&amp;#1086; &amp;#1074; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1072;&amp;#1084;&amp;#1073;&amp;#1091;&amp;#1083;&amp;#1077;
  &amp;#1089;&amp;#1083;&amp;#1077;&amp;#1076;&amp;#1091;&amp;#1077;&amp;#1090; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&amp;lt;&amp;lt;AtBeginSection&amp;gt;&amp;gt;&lt;/span&gt; &amp;#1079;&amp;#1072;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1090;&amp;#1100; &amp;#1085;&amp;#1072; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&amp;lt;&amp;lt;AtBeginSubsection&amp;gt;&amp;gt;&lt;/span&gt;.
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{&amp;#1042;&amp;#1099; &amp;#1077;&amp;#1097;&amp;#1105; &amp;#1085;&amp;#1077; &amp;#1089;&amp;#1087;&amp;#1080;&amp;#1090;&amp;#1077;?}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;[containsverbatim]
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1041;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1103;&amp;#1097;&amp;#1080;&amp;#1081; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{verbatim}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;
&amp;#1055;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1085;&amp;#1080;&amp;#1089;&amp;#1100; &amp;#1080; &amp;#1087;&amp;#1086;&amp;#1081;,
&amp;#1055;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1085;&amp;#1080;&amp;#1089;&amp;#1100; &amp;#1080; &amp;#1087;&amp;#1086;&amp;#1081;.
&amp;#1055;&amp;#1086;&amp;#1087;&amp;#1088;&amp;#1086;&amp;#1073;&amp;#1091;&amp;#1081; &amp;#1074; &amp;#1078;&amp;#1080;&amp;#1079;&amp;#1085;&amp;#1080; &amp;#1093;&amp;#1086;&amp;#1090;&amp;#1100; &amp;#1088;&amp;#1072;&amp;#1079;
&amp;#1053;&amp;#1077; &amp;#1074;&amp;#1099;&amp;#1087;&amp;#1091;&amp;#1089;&amp;#1082;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1091;&amp;#1083;&amp;#1099;&amp;#1073;&amp;#1082;&amp;#1091; &amp;#1080;&amp;#1079; &amp;#1086;&amp;#1090;&amp;#1082;&amp;#1088;&amp;#1099;&amp;#1090;&amp;#1099;&amp;#1093; &amp;#1075;&amp;#1083;&amp;#1072;&amp;#1079;.
&amp;#1055;&amp;#1091;&amp;#1089;&amp;#1082;&amp;#1072;&amp;#1081;, &amp;#1082;&amp;#1072;&amp;#1087;&amp;#1088;&amp;#1080;&amp;#1079;&amp;#1077;&amp;#1085; &amp;#1091;&amp;#1089;&amp;#1087;&amp;#1077;&amp;#1093;,
&amp;#1054;&amp;#1085; &amp;#1074;&amp;#1099;&amp;#1073;&amp;#1080;&amp;#1088;&amp;#1072;&amp;#1077;&amp;#1090; &amp;#1080;&amp;#1079; &amp;#1090;&amp;#1077;&amp;#1093;,
&amp;#1050;&amp;#1090;&amp;#1086; &amp;#1084;&amp;#1086;&amp;#1078;&amp;#1077;&amp;#1090; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1099;&amp;#1084; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1084;&amp;#1077;&amp;#1103;&amp;#1090;&amp;#1100;&amp;#1089;&amp;#1103; &amp;#1085;&amp;#1072;&amp;#1076; &amp;#1089;&amp;#1086;&amp;#1073;&amp;#1086;&amp;#1081;.
&amp;#1055;&amp;#1086;&amp;#1081; &amp;#1079;&amp;#1072;&amp;#1089;&amp;#1099;&amp;#1087;&amp;#1072;&amp;#1103;,
&amp;#1055;&amp;#1086;&amp;#1081; &amp;#1074;&amp;#1086; &amp;#1089;&amp;#1085;&amp;#1077;,
&amp;#1055;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1085;&amp;#1080;&amp;#1089;&amp;#1100; &amp;#1080; &amp;#1087;&amp;#1086;&amp;#1081;.
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{verbatim}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\subsection&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 110%; font-weight: bold;&quot;&gt;{&amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;&amp;lt;beamer&amp;gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1057;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\tableofcontents&lt;/span&gt;[currentsection, currentsubsection]
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\alert&lt;/span&gt;{&amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1080;&amp;#1085;&amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103;!}  &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{0.5cm}&lt;/span&gt;
  &amp;#1055;&amp;#1086;&amp;#1088;&amp;#1072; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1085;&amp;#1091;&amp;#1090;&amp;#1100;&amp;#1089;&amp;#1103;!
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;
&lt;/pre&gt;


&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/10/beamer.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ZvcRD20ACrHF1vffN17pJ8UXLoVVTLxRl8AxoG6CNsnqpLh9ur5Oj9v10xlmvoTRXr34caijcA4z7_yIcAInQfTksFQZvFVppF_1tyJ134U7mEGCr_izDLN3GnqLKVxgIbWZxndLZgE/s72-c/beamer_current-section.jpg" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-6473546270588430876</guid><pubDate>Thu, 17 Sep 2009 17:34:00 +0000</pubDate><atom:updated>2009-09-18T00:37:36.368+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><title>utf8gost или  как подружить русскую библиографию в BibTeX с ГОСТом и юникодом</title><description>&lt;p&gt;Недавно при прочтении моего сообщения про
&lt;a href=&quot;http://tuxray.blogspot.com/2009/05/bibtex-emacs.html&quot;&gt;бибтех в емаксе&lt;/a&gt;
у комментатора появился вопрос можно ли оформить по ГОСТу библиографию
с помощью BibTeX.  Значит это кому-нибудь нужно… Я пользовался для
этого бибтеховским стилем
&lt;a href=&quot;http://www.ctan.org/tex-archive/biblio/bibtex/contrib/gost/&quot;&gt;gost&lt;/a&gt;.
По сути, в бибтеховском файле надо было просто прописать в добавление
ко всему что было поле &lt;code&gt;language&lt;/code&gt; = &lt;code&gt;&amp;quot;russian&amp;quot;&lt;/code&gt;, например вот так:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #87cefa;&quot;&gt;@Book&lt;/span&gt;{&lt;span style=&quot;color: #7fffd4;&quot;&gt;Aleksandrov_Perovskites04&lt;/span&gt;,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;author&lt;/span&gt; =       {&amp;#1040;&amp;#1083;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1072;&amp;#1085;&amp;#1076;&amp;#1088;&amp;#1086;&amp;#1074;, &amp;#1050;. &amp;#1057;. and &amp;#1041;&amp;#1077;&amp;#1079;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1082;&amp;#1086;&amp;#1074;, &amp;#1041;. &amp;#1042;.},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;title&lt;/span&gt; =        {&amp;#1055;&amp;#1077;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1089;&amp;#1082;&amp;#1080;&amp;#1090;&amp;#1099;. &amp;#1053;&amp;#1072;&amp;#1089;&amp;#1090;&amp;#1086;&amp;#1103;&amp;#1097;&amp;#1077;&amp;#1077; &amp;#1080; &amp;#1073;&amp;#1091;&amp;#1076;&amp;#1091;&amp;#1097;&amp;#1077;&amp;#1077;. (&amp;#1052;&amp;#1085;&amp;#1086;&amp;#1075;&amp;#1086;&amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1080;&amp;#1077;
                  &amp;#1087;&amp;#1088;&amp;#1072;&amp;#1092;&amp;#1072;&amp;#1079;, &amp;#1092;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1074;&amp;#1099;&amp;#1077; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1074;&amp;#1088;&amp;#1072;&amp;#1097;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103;, &amp;#1074;&amp;#1086;&amp;#1079;&amp;#1084;&amp;#1086;&amp;#1078;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1080; &amp;#1089;&amp;#1080;&amp;#1085;&amp;#1090;&amp;#1077;&amp;#1079;&amp;#1072;
                  &amp;#1085;&amp;#1086;&amp;#1074;&amp;#1099;&amp;#1093; &amp;#1089;&amp;#1086;&amp;#1077;&amp;#1076;&amp;#1080;&amp;#1085;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1081;)},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;address&lt;/span&gt; =      {&amp;#1053;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1073;&amp;#1080;&amp;#1088;&amp;#1089;&amp;#1082;},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;publisher&lt;/span&gt; =    {&amp;#1048;&amp;#1079;&amp;#1076;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1089;&amp;#1090;&amp;#1074;&amp;#1086; &amp;#1057;&amp;#1054; &amp;#1056;&amp;#1040;&amp;#1053;},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;year&lt;/span&gt; =         2004,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;pages&lt;/span&gt; =        231,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;language&lt;/span&gt; =     &quot;russian&quot;
}
&lt;/pre&gt;
а в латеховском исходнике указать:

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\bibliographystyle&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{gost71u}&lt;/span&gt;               &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1099;&amp;#1073;&amp;#1086;&amp;#1088; &amp;#1089;&amp;#1090;&amp;#1080;&amp;#1083;&amp;#1103; &amp;#1086;&amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1073;&amp;#1080;&amp;#1073;&amp;#1083;&amp;#1080;&amp;#1086;&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1092;&amp;#1080;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\bibliography&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{../../bibliography/biblio}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1086;&amp;#1090;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1087;&amp;#1091;&amp;#1090;&amp;#1100; &amp;#1076;&amp;#1086; &amp;#1073;&amp;#1080;&amp;#1073;&amp;#1090;&amp;#1077;&amp;#1093;&amp;#1086;&amp;#1074;&amp;#1089;&amp;#1082;&amp;#1086;&amp;#1081; &amp;#1073;&amp;#1072;&amp;#1079;&amp;#1099; (&amp;#1073;&amp;#1077;&amp;#1079; &amp;#1088;&amp;#1072;&amp;#1089;&amp;#1096;&amp;#1080;&amp;#1088;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; bib)
&lt;/span&gt;&lt;/pre&gt;
В данном случае используем стиль &lt;code&gt;gost71u&lt;/code&gt;.  &lt;strong&gt;U&lt;/strong&gt; означает аналог
&lt;strong&gt;unsrt&lt;/strong&gt; - ссылки будут нумероваться в порядке упоминания в тексте.
Для стиля &lt;code&gt;gost71s&lt;/code&gt; ссылки будут нумероваться по алфавиту.

&lt;p&gt;В пакете
&lt;a href=&quot;http://www.ctan.org/tex-archive/biblio/bibtex/contrib/gost/&quot;&gt;gost&lt;/a&gt;
есть ещё стили &lt;code&gt;gost780u&lt;/code&gt; и &lt;code&gt;gost780s&lt;/code&gt;.  Они соответствуют ГОСТу
7.80-00 от 2000 года, в то время как gost71 - ГОСТу 7.1-84 от 1984
года.  Хотя чисто визуально «стандартным» везде в моём кругу считают
стиль, как оказалось, 84 года.  Вообще с нашими ГОСТами сам чёрт ногу
сломит.  Недавно вот наши чиновники придумали в очередной раз
&lt;a href=&quot;http://protect.gost.ru/document.aspx?control=7&amp;amp;id=173511&quot;&gt;новый стандарт&lt;/a&gt;.  В любом случае нам за этими глупыми обновлениями не
угнаться, поэтому пока пользуемся тем что есть.&lt;/p&gt;

&lt;h3&gt;А как же юникод?&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Всё бы ничего, но стиль корректно функционирует только для
однобайтовых кодировок, то есть никак не для юникода.  Как-то видел
сообщение на ЛОРе, что нашёлся умелец, который как-то стиль пропатчил,
но с некоторыми ограничениями в функциональности.  Там же на ЛОРе
обнаружил
&lt;a href=&quot;http://www.linux.org.ru/view-message.jsp?msgid=3594555&quot;&gt;сообщение&lt;/a&gt;,
о том, что теперь есть те гостовские стили, адаптированные под юникод!
Архив со стилем можно скачать
&lt;a href=&quot;http://www.tex.uniyar.ac.ru/package/style/utf8gost.zip&quot;&gt;тут.&lt;/a&gt;  В
архиве помимо необходимых для функционирования стиля файлов есть
pdf-файлы с примерами того, как это будет выглядеть на печати.&lt;/p&gt;

&lt;h4&gt;Установка стиля&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Перейдите в директорию, где лежат бибтеховские стили (в моём случае,
на Debian Lenny это /usr/share/texmf-texlive/bibtex/bst):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cd /usr/share/texmf-texlive/bibtex/bst
&lt;/pre&gt;
Распакуйте архив:

&lt;pre class=&quot;src&quot;&gt;
$ sudo unzip /path/to/utf8gost.zip
&lt;/pre&gt;

&lt;p&gt;После этого от нормального рута, а не через sudo скомандуйте:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
# texhash
&lt;/pre&gt;


&lt;h4&gt;Запускаем&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Теперь можно копировать базу, на всякий случай, и конвертировать её в
юникод, если до этого было что-то другое.  И наконец, исправляем в
латеховском исходнике используемый стиль на один из utf8gost7*.
Например, на ГОСТ 84 года в порядке упоминания в тексте:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\bibliographystyle&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{utf8gost71u}&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;По мере короткого использования никаких багов не заметил.  Ждём новый
стиль под «самый новый ГОСТ».  Только боюсь, он уже будет неактуален,
потому что появится «вообще самый-самый новый»… :)&lt;/p&gt;</description><link>http://tuxray.blogspot.com/2009/09/bibtex.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-8111253047125142315</guid><pubDate>Fri, 04 Sep 2009 16:13:00 +0000</pubDate><atom:updated>2009-09-08T01:12:49.471+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">x11</category><category domain="http://www.blogger.com/atom/ns#">клавиатура</category><title>Перемещение курсора в X-терминале при русской раскладке</title><description>&lt;p&gt;Известно, что оболочка bash (да и прочие shell&#39;ы) имеют
емаксо-подобные клавиатурные сокращения для перемещения курсора и
прочей работы с текстом.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C-f&lt;/strong&gt; и &lt;strong&gt;C-b&lt;/strong&gt; перемещают курсор на символ вперёд и назад соответственно.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-f&lt;/strong&gt; и &lt;strong&gt;M-b&lt;/strong&gt; перемещяют курсор на слово вперёд и назад соответственно.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C-a&lt;/strong&gt; и &lt;strong&gt;C-e&lt;/strong&gt; перемещают курсор в начало и конец строки соответственно.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C-w&lt;/strong&gt; и &lt;strong&gt;M-Backspace&lt;/strong&gt; удаляют слово перед курсором (немного разное
поведение в bash).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-d&lt;/strong&gt; удаляет слово после курсором.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C-u&lt;/strong&gt; вставляет текст из буфера обмена, а &lt;strong&gt;M-u&lt;/strong&gt; перебирает различные
варианты из буфера.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C-t&lt;/strong&gt; переставляет местами буквы - до и после точки (до курсора и курсор).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-t&lt;/strong&gt; переставляет местами слова - до и после точки.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-u&lt;/strong&gt; переводит всё слово после курсора в верхний регистр.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-l&lt;/strong&gt; - в нижний регистр.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;M-c&lt;/strong&gt; - первую букву слова в верхний, а остальное в нижний.&lt;/p&gt;

&lt;p&gt;Здесь &lt;strong&gt;C-&lt;/strong&gt; означает нажать и удерживать &lt;strong&gt;Ctrl&lt;/strong&gt;, а &lt;strong&gt;M-&lt;/strong&gt; - нажать
и удерживать &lt;strong&gt;Alt&lt;/strong&gt; или нажать и отпустить &lt;strong&gt;Esc&lt;/strong&gt;, а потом нажать
следующую клавишу.&lt;/p&gt;

&lt;p&gt;Лично я без большинства комбинаций обхожусь с трудом, привык к ним ещё
в емаксе, поэтому постоянно использую их при работе в командной
строке.&lt;/p&gt;

&lt;h3&gt;Но есть неприятный момент&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Не все эти комбинации не работают у меня &lt;strong&gt;в иксах&lt;/strong&gt;, в исковых терминалах
(xterm, rxvt-unicode) если раскладка клавиатуры кириллическая.  При
этом &lt;strong&gt;в чистой консоли&lt;/strong&gt; (tty) работает &lt;em&gt;всё&lt;/em&gt; независимо от раскладки!  В
иксах у меня не работают все комбинации с участием клавиши Alt -
вместо этого рисуются символы из расширенной ASCII-таблицы, а все
Ctrl-сочетания работают независимо от используемого языка.  Когда я
нажимал на &lt;strong&gt;M-f&lt;/strong&gt;, то получал знак «°», а если на &lt;strong&gt;M-b&lt;/strong&gt;, то - «,».&lt;/p&gt;

&lt;p&gt;Я не из тех, кто использует Emacs &lt;em&gt;вообще&lt;/em&gt; для всего, мне он в основном
интересен в качестве лишь &lt;em&gt;текстового редактора&lt;/em&gt; для всего, поэтому
запускать shell в Emacs - это не мой вариант.  Итак, для меня было
важно разрешить эту проблему, заставить в исковых терминалах
функционировать вышеперечисленные комбинации с участием Alt (Meta).&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;


&lt;h3&gt;Решение&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Путь к решению был довольно долгим.  Для начала я попробовал
поковыряться в насройках терминала.  Для rxvt-unicode пробовал править
Xresources на предмет keysym.  Даже добился какого-то результата, но
не очень удачно - от запуска к запуску терминалы по-разному
обрабатывали эти ресурсы, так что работало не всегда.  Я просил помощи
на

&lt;a href=&quot;http://linuxforum.ru/index.php?showtopic=94605&amp;amp;st=0&amp;amp;p=881860&amp;amp;#entry881860&quot;&gt;линуксфоруме&lt;/a&gt;,
но безрезультатно.  Так что уже и забив на всё это, я был очень
удивлён, что решение было настолько очевидным.&lt;/p&gt;

&lt;p&gt;Насколько я понимаю, терминал обрабатывает escape-последовательности,
давая в результате тот или иной результат.  Надо его заставить при
появлении определённой escape-последовательности генерить заданное
действие.  На помощь пришёл файл &lt;strong&gt;inputrc.&lt;/strong&gt;  Для общесистемных
настроек нужно редактировать &lt;code&gt;/etc/inputrc&lt;/code&gt;, для пользовательских -
&lt;code&gt;~/.inputrc&lt;/code&gt;.&lt;/p&gt;

&lt;h4&gt;Пишем в inputrc русские буквы!&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В этот файл я пытался вносить различные возможные записи
последовательностей, в octal и hex-форматах.  Но это не работало.  И
каково же было моё удивление, что можно просто написать в &lt;code&gt;inputrc&lt;/code&gt;
кириллические символы!  Этого я ожидать никак не мог.  В итоге, прочитав
как называются команды в bash (man bash), получилось следующее:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1072;&quot;&lt;/span&gt;: forward-word     # M-f
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1080;&quot;&lt;/span&gt;: backward-word    # M-b
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1074;&quot;&lt;/span&gt;: kill-word        # M-d
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1077;&quot;&lt;/span&gt;: transpose-words  # M-t
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1075;&quot;&lt;/span&gt;: upcase-word      # M-u
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1076;&quot;&lt;/span&gt;: downcase-word    # M-l
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;\e&amp;#1089;&quot;&lt;/span&gt;: capitalize-word  # M-c
&lt;/pre&gt;

&lt;p&gt;Здесь &lt;strong&gt;\e&lt;/strong&gt; - по сути Esc записано в латинской раскладке, а после неё
русские буквы.  Можно попробовать не &lt;strong&gt;\e&lt;/strong&gt;, а &lt;strong&gt;\M-&lt;/strong&gt;, что по идее
должно было заработать, но не заработало в xterm (а в rxvt-unicode
сработало удачно).  Теперь можете запустить &lt;strong&gt;urxvt&lt;/strong&gt; и проверить
работоспособность.&lt;/p&gt;


&lt;h4&gt;Пинаем XTerm&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Но на этом приключения не заканчиваются!  Ещё надо завести XTerm, а в
моём случае он не сразу завёлся.  Если вдруг даже после этих правок,
он при нажатии на описанные комбинации клавиш он вываливает в терминал
квадраты, русские буквы или юникодные символы, то правим файл
~/.Xresources.  Необходимо, чтобы там содержались следующие строки:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
XTerm*metaSendsEscape:  true
XTerm*eightBitInput:    false
&lt;/pre&gt;

&lt;p&gt;После этого&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ xrdb ~/.Xresources
&lt;/pre&gt;
и запускайте новый XTerm.

&lt;p&gt;Теперь должно всё работать.  Отныне можно пользоваться всеми
прелестями оболочки независимо от используемой иксовой раскладки.&lt;/p&gt;

&lt;p&gt;Вообще-то я это затевал также и для того, чтобы jabber-клиентом
&lt;a href=&quot;http://mcabber.com/&quot;&gt;mcabber&lt;/a&gt; было гораздо удобнее пользоваться в
режиме набора текста.  Однако, как оказалось, этого было недостаточно!
Для &lt;a href=&quot;http://mcabber.com/&quot;&gt;mcabber&lt;/a&gt; я тоже решил эту проблему, путём
правки исходников, но об этом чуть попозже.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/09/x.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2612695569736325713</guid><pubDate>Mon, 31 Aug 2009 18:29:00 +0000</pubDate><atom:updated>2009-09-08T01:32:45.413+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Wcd и CDargs. Удобные бродилки по файловой системе.</title><description>&lt;p&gt;Известно, что для навигации по директориям файловой системы в Linux
используется команда cd:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cd Directory/
&lt;/pre&gt;

&lt;p&gt;Если же директория запрятана далеко, то неизбежно придётся набирать
команду:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cd /path/to/deeply/hidden/directory/subdirectory/destination
&lt;/pre&gt;
&lt;p&gt;Чтобы добраться до &lt;code&gt;destination&lt;/code&gt; даже с учётом дополнения по TAB,
придётся потрудиться.&lt;/p&gt;

&lt;h3&gt;Как это сделать проще?&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Здесь мы рассмотрим три способа ускорения навигации в консоли по
файловой системе.&lt;/p&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;h4&gt;Алиасы&lt;/h4&gt;

&lt;p&gt;Во-первых, для часто посещаемых директорий можно создать алиасы.
Например, пропишем в &lt;code&gt;~/.bashrc&lt;/code&gt; (если используем оболочку bash):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; [ -f ~/.bash_aliases ]; &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;
    &lt;span style=&quot;color: #b0c4de;&quot;&gt;.&lt;/span&gt; ~/.bash_aliases
&lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Теперь в файле &lt;code&gt;~/.bash_aliases&lt;/code&gt; будем записывать алиасы:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #b0c4de;&quot;&gt;alias&lt;/span&gt; &lt;span style=&quot;color: #eedd82;&quot;&gt;destination&lt;/span&gt;=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;cd /path/to/deeply/hidden/directory/subdirectory/destination&#39;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;После обновления оболочки (&lt;code&gt;source ~/.bashrc&lt;/code&gt; или простого перезапуска
терминала) для того, чтобы пройти по предыдущему пути, в командной
строке будет достаточно набрать&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ destination
&lt;/pre&gt;
Более того, будет работать автодополнение (если оно установлено, конечно).

&lt;p&gt;К преимуществам можно отнести простоту и удобство в виде
автодополнения.  Недостаток же состоит в том, что кроме как перейти в
назначенную директорию, мы будем не в состоянии.&lt;/p&gt;

&lt;p&gt;Например, пусть в директории &lt;code&gt;destination&lt;/code&gt; есть поддиректория
&lt;code&gt;subdirectory&lt;/code&gt;.  Перейти в неё за одно действие описанным способом
нельзя.  Команда &lt;code&gt;destination/subdirectory&lt;/code&gt; не сработает, алиасы &lt;code&gt;bash&lt;/code&gt;

этого не понимают.  Алиасы в &lt;code&gt;zsh&lt;/code&gt; поумнее, возможно, они с этим
справятся, но я не специалист в этом вопросе.&lt;/p&gt;


&lt;h4&gt;Программа &lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;WCD&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;WCD&lt;/a&gt; (Wherever Change Directory)
позволяет быстро менять директории.  Программа кэширует дерево
каталогов, после чего для перехода в &lt;code&gt;destination&lt;/code&gt; из &lt;em&gt;любой&lt;/em&gt; точки
файловой системы достаточно скомандовать.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ wcd destination
&lt;/pre&gt;

&lt;p&gt;Здесь не будет работать автодополнение (по крайней мере у меня не
работает.  Если кто завёл - отзовитесь :)  Зато будут функционировать
wildcards * и ?.  Более того, можно использовать неполное имя
директории.  Например, сработают варианты:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ wcd dest
$ wcd *tion
$ wcd dest??ation
&lt;/pre&gt;

&lt;p&gt;Если под запрос попадает несколько вариантов, будет выведен
список, в котором можно будет выбрать нужный вариант (если вариантов
очень много, то выведется постраничный листинг, для навигации в
котором используются клавиши &lt;strong&gt;w&lt;/strong&gt; и &lt;strong&gt;x&lt;/strong&gt;):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
a /usr/share/doc/texlive-latex-extra-doc/latex/datenumber
b /usr/share/doc/texlive-latex-extra-doc/latex/datetime
c /usr/share/icons/gnome/16x16/stock/data
d /usr/share/icons/gnome/24x24/stock/data
e /usr/share/icons/gnome/48x48/stock/data
f /usr/share/icons/hicolor/128x128/stock/data
g /usr/share/icons/hicolor/16x16/stock/data
h /usr/share/icons/hicolor/192x192/stock/data
i /usr/share/icons/hicolor/22x22/stock/data
j /usr/share/icons/hicolor/24x24/stock/data
k /usr/share/icons/hicolor/32x32/stock/data
l /usr/share/icons/hicolor/36x36/stock/data
m /usr/share/icons/hicolor/48x48/stock/data
n /usr/share/icons/hicolor/64x64/stock/data
o /usr/share/icons/hicolor/72x72/stock/data
p /usr/share/icons/hicolor/96x96/stock/data
q /usr/share/icons/hicolor/scalable/stock/data
r /usr/share/texmf-texlive/tex/latex/dateiliste
s /usr/share/texmf-texlive/tex/latex/datenumber
t /usr/share/texmf-texlive/tex/latex/datetime
u /usr/share/texmf-texlive/tex/latex/ucs/data
v /var/spool/openoffice/uno_packages/cache/registry/com.sun.star.comp.deploym

Wild match for 137 directories.       &lt;span style=&quot;color: #eedd82;&quot;&gt;w&lt;/span&gt;=up &lt;span style=&quot;color: #eedd82;&quot;&gt;x&lt;/span&gt;=down ?=help  Page 7/7
Please choose one (&amp;lt;Enter&amp;gt; to abort):
&lt;/pre&gt;

&lt;p&gt;С применением &lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;wcd&lt;/a&gt; есть
возможность заходить в поддиректории назначения, но здесь уже не будет
работать автодополнение.  То есть либо придётся по памяти набивать
поддиректорию, используя wildcard, либо, в случае малой вложенности
директорий, в качестве поддиректории сразу вколотить *&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ wcd destination/*
&lt;/pre&gt;

&lt;h5&gt;Установка &lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;WCD&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;В Debian пакет есть в репозиториях, поэтому просто:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ sudo aptitude install wcd
&lt;/pre&gt;

&lt;p&gt;После этого копируем бинарник программы куда-нибудь в $PATH (проверить
можно по &lt;code&gt;echo $PATH&lt;/code&gt;).  В моём случае это &lt;code&gt;~/bin&lt;/code&gt;.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cp /usr/lib/wcd/wcd.exec ~/bin
&lt;/pre&gt;

&lt;p&gt;Дальше всё по мануалу (&lt;code&gt;man wcd&lt;/code&gt;).  Лезем в &lt;code&gt;~/.bashrc&lt;/code&gt; (или какая там
у вас оболочка?) и добавляем:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;WCD function
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;function&lt;/span&gt; wcd
{
   $&lt;span style=&quot;color: #eedd82;&quot;&gt;HOME&lt;/span&gt;/bin/wcd.exe&amp;#1089; $&lt;span style=&quot;color: #eedd82;&quot;&gt;*&lt;/span&gt;

   &lt;span style=&quot;color: #b0c4de;&quot;&gt;.&lt;/span&gt; $&lt;span style=&quot;color: #eedd82;&quot;&gt;HOME&lt;/span&gt;/bin/wcd.go
}
&lt;/pre&gt;
(Для csh будет &lt;code&gt;alias wcd &amp;quot;$HOME/bin/wcd.exe \!* ; source $HOME/bin/wcd.go&amp;quot;&lt;/code&gt;)

&lt;p&gt;После этого перезапускаем оболочку и... ещё не радуемся.  Надо же
просканировать необходимые директории.  Вся домашняя директория
(пере)сканируется с использованием ключа &lt;strong&gt;-s&lt;/strong&gt;, какой-то заданный путь - с
ключом &lt;strong&gt;-A&lt;/strong&gt; (добавляется, а не перезаписывается):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ wcd -s
$ wcd -A /media
&lt;/pre&gt;
Можно объединить

&lt;pre class=&quot;src&quot;&gt;
$ wcd -s -A /media/
&lt;/pre&gt;

&lt;p&gt;Теперь можно пользоваться программой.  У &lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;wcd&lt;/a&gt;
много дополнительных возможностей, например графический интерфейс,
который строит дерево каталогов:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ wcd -ga
        |         |       |        |- 700
        |         |       |        |- mm4b -+- 550_105min
        |         |       |        |        |- 550_30min
        |         |       |        |        |- 625
        |         |       |        |        `- 725
        |         |       |        `- old_MM4_PeaksCorrection -+- 350
        |         |       |                                    |- 400
        |         |       |                                    |- 450
        |         |       |                                    |- 500
        |         |       |                                    |- 550
        |         |       |                                    |- 600
        |         |       |                                    |- 625
        |         |       |                                    |-&amp;lt;650&amp;gt;

        |         |       |                                    |- 675
        |         |       |                                    `- 700
        |         |       `- results
        |         |- old_perovskites -+- Membrane -+- air -+- dat
        |         |                   |            |       `- raw
        |         |                   |            |- graphs -+- Air
        |         |                   |            |          `- Vacuum
        |         |                   |            |- photo -+- 280307
        |         |                   |            |         `- 290307
        |         |                   |            |- synchrotron -+- correct
        |         |                   |            |               `- uxd
        |         |                   |            `- vacuum --- Vac_dat
&lt;/pre&gt;
Однако для меня достаточно лишь быстрого хождения по директориям.



&lt;h4&gt;Программа &lt;a href=&quot;http://www.skamphausen.de/cgi-bin/ska/CDargs&quot;&gt;CDargs&lt;/a&gt;&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Эта программа предоставляет меньшую функциональность, нежели
&lt;a href=&quot;http://www.xs4all.nl/~waterlan/&quot;&gt;wcd&lt;/a&gt;, однако может оказаться более
удобной.  По сути она позволяет формировать закладки в файловой
системе для быстрого доступа к ним.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cv bookmark
/path/to/buried/directory/with/bookmark
&lt;/pre&gt;
То есть, скомандовав перейти в bookmark из любой директории, мы прошли разом весь путь.


&lt;p&gt;Какое же отличие от простых алиасов?  Во-первых, есть возможность
заходить в поддиректории, более того, с использованием
автодополнения.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cv Music [TAB]
Music/Audiobooks/   Music/Foreign/      Music/Sounds/
Music/Classic/      Music/Fun/          Music/Soundtrack/
Music/Collections/  Music/Russian/
$ cv Music/Classic/ [TAB]
Music/Classic/Classic\ in\ rock/     Music/Classic/\&amp;#1052;\&amp;#1091;\&amp;#1089;\&amp;#1086;\&amp;#1088;\&amp;#1075;\&amp;#1089;\&amp;#1082;\&amp;#1080;\&amp;#1081;/
Music/Classic/PlanetClassic/         Music/Classic/\&amp;#1055;\&amp;#1091;\&amp;#1095;\&amp;#1095;\&amp;#1080;\&amp;#1085;\&amp;#1080;/
Music/Classic/\&amp;#1042;\&amp;#1080;\&amp;#1074;\&amp;#1072;\&amp;#1083;\&amp;#1100;\&amp;#1076;\&amp;#1080;/      Music/Classic/\&amp;#1056;\&amp;#1072;\&amp;#1093;\&amp;#1084;\&amp;#1072;\&amp;#1085;\&amp;#1080;\&amp;#1085;\&amp;#1086;\&amp;#1074;/
Music/Classic/\&amp;#1044;\&amp;#1074;\&amp;#1086;\&amp;#1088;\&amp;#1078;\&amp;#1072;\&amp;#1082;/        Music/Classic/\&amp;#1056;\&amp;#1086;\&amp;#1089;\&amp;#1089;\&amp;#1080;\&amp;#1085;\&amp;#1080;/
Music/Classic/\&amp;#1052;\&amp;#1086;\&amp;#1094;\&amp;#1072;\&amp;#1088;\&amp;#1090;/          Music/Classic/\&amp;#1063;\&amp;#1072;\&amp;#1081;\&amp;#1082;\&amp;#1086;\&amp;#1074;\&amp;#1089;\&amp;#1082;\&amp;#1080;\&amp;#1081;/

&lt;/pre&gt;

&lt;p&gt;Во-вторых, есть возможность быстрого копирования
файлов в точку ФС, куда указывает закладка.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cpb foo bookmark/subdirectory
&lt;/pre&gt;
Но тут, к сожалению, не работает дополнение по табу :(

&lt;p&gt;В третьих есть псевдогуи, на ncurses.&lt;/p&gt;

&lt;h5&gt;Установка &lt;a href=&quot;http://www.skamphausen.de/cgi-bin/ska/CDargs&quot;&gt;CDargs&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;В Debian Lenny, опять же, программа есть.  Поэтому&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ sudo aptitude install cdargs
&lt;/pre&gt;

&lt;p&gt;После этого можно запустить &lt;code&gt;cdargs&lt;/code&gt; и почитать справку, нажав &lt;strong&gt;?&lt;/strong&gt;.
Можно добавить закладки через GUI, а можно просто отредактировать файл
&lt;code&gt;~/.cdargs&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
cac /home/maxim/Documents/conferences/cac
Documents /home/maxim/Documents
Music /home/maxim/Music
Video /home/maxim/Video
devel /home/maxim/devel
python-dev /home/maxim/devel/python
Incomplete /home/maxim/p2p/Incomplete
p2p /home/maxim/p2p
data /media/data/

&lt;/pre&gt;

&lt;p&gt;Для &lt;code&gt;bash&lt;/code&gt; в &lt;code&gt;~/.bashrc&lt;/code&gt; пишем:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;CDargs function
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; [ -e /usr/share/doc/cdargs/examples/cdargs-bash.sh ]; &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;

  &lt;span style=&quot;color: #b0c4de;&quot;&gt;.&lt;/span&gt; /usr/share/doc/cdargs/examples/cdargs-bash.sh
&lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;function&lt;/span&gt; cv () {
    cdargs &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;$1&quot;&lt;/span&gt; &amp;amp;&amp;amp; &lt;span style=&quot;color: #b0c4de;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#8216;cat &quot;&lt;/span&gt;$&lt;span style=&quot;color: #eedd82;&quot;&gt;HOME&lt;/span&gt;/.cdargsresult&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#8216;&quot;&lt;/span&gt; ;
}

&lt;/pre&gt;

&lt;p&gt;Теперь, после перезапуска оболочки бегаем по файловой системе со
скоростью спринтера.&lt;/p&gt;




&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Второй и третий методы более совершенны, нежели первый.  У каждого
есть свои плюсы и минусы, поэтому лично я использую оба, тем более, что с
&lt;strong&gt;cdargs&lt;/strong&gt; я познакомился совсем недавно.&lt;/p&gt;

&lt;p&gt;Несомненно, программы &lt;strong&gt;wcd&lt;/strong&gt; и &lt;strong&gt;cdargs&lt;/strong&gt; существенно облегчат жизнь
обитателям консоли.
Напоследок хотелось бы отметить, что с cdargs я познакомился благодаря обзору на &lt;a href=&quot;http://debaday.debian.net/2009/04/05/cdargs-a-browser-for-cd/&quot;&gt;Debian Package of the Day&lt;/a&gt;.

&lt;/span&gt;&lt;/p&gt;</description><link>http://tuxray.blogspot.com/2009/09/wcd-cdargs.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-3603720958211703906</guid><pubDate>Fri, 21 Aug 2009 15:26:00 +0000</pubDate><atom:updated>2009-09-08T01:34:29.280+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">media</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Включение и отключение flashplayer в Conkeror и не только</title><description>&lt;h3&gt;Проблема&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Есть в природе flash-анимация, которая проигрывается flash-плейером.
Иногда даже она может быть полезной, например, если очень хочется
глянуть в интернете на &lt;a href=&quot;http://youtube.com&quot;&gt;http://youtube.com&lt;/a&gt; какой-нибудь ролик.  Но
вот когда она мелькает перед глазами, демонстрируя бездарную рекламу,
появляется желание от неё избавиться, не только из-за навязчивости но
и из-за прожорливости флеша в смысле процессорных ресурсов.&lt;/p&gt;

&lt;p&gt;Поэтому хочется иметь по умолчанию флеш в отключенном состоянии, а
включать только при необходимости.  В популярных браузерах есть
возможность включать и отключать это зло кликами мыши.  К сожалению, в
менее популярном браузере &lt;a href=&quot;http://conkeror.org/&quot;&gt;Conkeror&lt;/a&gt; такой
опции пока нет (по крайней мере для версии Debian-0.9~git090223-1), а
очень хотелось бы.  Здесь я напишу каким образом я решил поставленную
задачу.  Решение не самое идеальное, поэтому при наличии интересных
мыслей по этому поводу, добро пожаловать в комментарии!
&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Дано&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;На борту Debian Lenny (stable, на момент написания заметки),&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ uname -r
2.6.26-2-686
&lt;/pre&gt;

&lt;p&gt;Flash поставлен проприетарный, flashplugin-nonfree, (другой на моей технике просто не
шевелится) по
&lt;a href=&quot;http://wiki.debian.org/FlashPlayer&quot;&gt;официальной инструкции&lt;/a&gt;.&lt;/p&gt;


&lt;h3&gt;Предлагаемый подход и реализация&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Поскольку для работы плейера пользователю необходимо иметь права для
чтения библиотеки libflashplayer.so, запрет на чтение приведёт к тому,
что неугодная анимация работать не будет.  Файл libflashplayer.so
лежит в моём случае в директории /usr/lib/flashplugin-nonfree:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ ls /usr/lib/flashplugin-nonfree
&amp;#1080;&amp;#1090;&amp;#1086;&amp;#1075;&amp;#1086; 9916
-rw-r--r-- 1 root root 10131640 &amp;#1060;&amp;#1077;&amp;#1074;  3  2009 libflashplayer.so
-rw-r--r-- 1 root root     2933 &amp;#1048;&amp;#1102;&amp;#1083; 27  2007 pubkey.asc
&lt;/pre&gt;

&lt;p&gt;Как видно, владелец - root, а группа и все остальные имеют право на
чтение.  Этого-то права мы и собираемся лишить, но не здесь, и чуть
позже.  Для начала скопируем файл libflashplayer.so в директорию
~/.mozilla/plugins&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cp /usr/lib/flashplugin-nonfree/libflashplayer.so ~/.mozilla/plugins
&lt;/pre&gt;

&lt;p&gt;Почему туда?  Именно там &lt;a href=&quot;http://conkeror.org/&quot;&gt;Conkeror&lt;/a&gt; ишет
плагины в первую очередь.  На
&lt;a href=&quot;http://conkeror.org/Plugins&quot;&gt;вики-странице&lt;/a&gt; говорится о том, что
кроме того плагины могут лежать в ~/.conkeror/plugins, но у меня,
почему-то это не работает.&lt;/p&gt;

&lt;p&gt;Теперь лишим нас всех прав для чтения этого файла:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ chmod a-r ~/.mozilla/plugins/libflashplayer.so
&lt;/pre&gt;

&lt;p&gt;В результате, после перезагрузки страницы, содержащей флэш, мы насладимся
его отсутствием.  Вернуть его обратно можно, дав права на чтение:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ chmod a+r ~/.mozilla/plugins/libflashplayer.so
&lt;/pre&gt;

&lt;p&gt;Поскольку, для такой процедуры не очень здорово всегда писать в
терминале подобную команду, имеет смысл забиндить эти действия на
какие-нибудь комбинации клавиш.  Я, например, для этого пользуюсь xbindkeys, и
добавил в ~/.xbindkeysrc следующие строки (но можно использовать
способы заданий комбинация клавиш для вашего оконного менеджера или
для другой программы &amp;quot;забиндивания&amp;quot;):&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;chmod a-r ~/.mozilla/plugins/libflashplayer.so&quot;&lt;/span&gt;
Mod4 + bracketright
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;chmod a+r ~/.mozilla/plugins/libflashplayer.so&quot;&lt;/span&gt;
Mod4 + bracketleft
&lt;/pre&gt;
Таким образом, при нажатии &lt;strong&gt;Win + [&lt;/strong&gt; флэш включается, а при &lt;strong&gt;Win+]&lt;/strong&gt;
прибивается (не забываем предварительно перезапустить xbindkeys).

&lt;p&gt;В принципе, всё работает, казалось бы, добились того, чего хотели.
Всё бы ничего, но вот если вы залезете на тот же

&lt;a href=&quot;http://youtube.com&quot;&gt;http://youtube.com&lt;/a&gt;, включив флэш, то выключение таким образом уже
не отобразится на поведение флэша на других страницах, потому что
программа flashplayer уже запущена и работает, а все изменения на неё
не влияют.  Чтобы изменения вступили в силу, надо просто закрыть
страничку youtube.  Хотя это и не всегда у меня наблюдалось.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Если честно, эту особенность обнаружил только когда писал пост и
перепроверял всё на собственной шкуре.  На других сайтах как-то не
замечал такого - обычно после перезапуска страницы перезапускался и
флэш.  Стало быть, изменив права доступа, после перезапуска страницы
я добивался того, чего хотел.&lt;/p&gt;

&lt;/blockquote&gt;


&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Итак, пока для &lt;a href=&quot;http://conkeror.org&quot;&gt;Conkeror&lt;/a&gt; пока не прикрутили
переключалку флеша, я сгородил свою :) Разумеется, она должна работать
не только для Conkeror, но и, судя по всему, для Firefox (полагаю, что
тогда надо запретить пользователям читать общий файл
/usr/lib/flashplugin-nonfree/libflashplayer.so, для чего нужны права
рута, что для машины с одним пользователем приемлемо), хотя в этом и
нет особой нужды, потому что там есть свои резалки флэша.&lt;/p&gt;

&lt;p&gt;Поскольку решение неидеальное, был бы очень рад услышать
пожелания/предложения.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/08/flashplayer-conkeror.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2112018090438992446</guid><pubDate>Mon, 17 Aug 2009 16:20:00 +0000</pubDate><atom:updated>2009-08-17T23:41:33.722+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Смена внешнего вида диалога выбора в Opera</title><description>&lt;p&gt;Я иногда пользуюсь браузером Opera, когда не использую Conkeror.
Многое в первом меня устраивает, за исключением, пожалуй, диалога
выбора файла.  Например, при сохранении странички или файла появляется
окно, соответствующее стилю библиотеки qt3.  

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7OQg4RZ1H5U-jPXTTTwx-bv1y9K3GstXcPeK09nAx1vrZFyD0MW5BxgUhrzQLLFFJL5hziGPo2K0_o7cENR_cN1yRuVuwLLiiLaq2qdCAFI9Zs1wruDpAairEb0M2Gtyr61T4qVC-zto/s1600-h/1-default.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7OQg4RZ1H5U-jPXTTTwx-bv1y9K3GstXcPeK09nAx1vrZFyD0MW5BxgUhrzQLLFFJL5hziGPo2K0_o7cENR_cN1yRuVuwLLiiLaq2qdCAFI9Zs1wruDpAairEb0M2Gtyr61T4qVC-zto/s400/1-default.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5370969232740169186&quot; /&gt;&lt;/a&gt;

Лично мне это не
нравится, потому что данный диалог мне неудобен, если даже не говорить
о внешних недостатках.  Здесь я опишу как можно его можно изменить на
стандартный диалог gtk.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;p&gt;Немного начальных условий (а вдруг, понадобятся? :).&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ uname -r
2.6.26-2-686

$ opera -version
Opera 9.64. Build 2480 for Linux. Qt library 3.3.8b.
&lt;/pre&gt;

&lt;p&gt;Для смены вида диалога набираем в адресной строке &lt;strong&gt;opera:config&lt;/strong&gt;,
находим &amp;quot;File Selector&amp;quot;, выставляем значение &amp;quot;Dialog Toolkit&amp;quot; на 2,
сохраняем.  После перезапуска Opera получаем стандартный диалог выбора
gtk.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxNt96caV3VT09XEGCkjo_XRLfovgYQICmMmDW89oD-lri9y177Y-FHp4LNI0WQuDWsUdqssi7Sip6nPiElk_0oq_MagVU3v-jcHVSxcTtgt3kmJlef01FyEF8fGu9bR_N-YERWCuu85Q/s1600-h/2-gtk.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 301px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxNt96caV3VT09XEGCkjo_XRLfovgYQICmMmDW89oD-lri9y177Y-FHp4LNI0WQuDWsUdqssi7Sip6nPiElk_0oq_MagVU3v-jcHVSxcTtgt3kmJlef01FyEF8fGu9bR_N-YERWCuu85Q/s400/2-gtk.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5370969237954029202&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Другие значения параметра &amp;quot;Dialog Toolkit&amp;quot; в моём случае не приводят к
каким-либо изменениям.&lt;/p&gt;

&lt;p&gt;А можно не менять ничего кардинально, а, например, добавить
информации в стандартном диалоге: тип файла, время модификации, права
доступа.  Для этого ставим галку на &amp;quot;Show Details&amp;quot;.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJjz0PPnOigJ96hiYT22Tu59Q4w0j6wn-9bQyGwdXvjpLiLF5a42BSP3vE5QRF8G5qcDBnlfSilgEmGKO5fp1X0h4SI8Wg5o_V4rJlAkwBl4JbTCc6pi-AeGj2Hr36M-YTwnLOFbt2Bi8/s1600-h/3-wide.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJjz0PPnOigJ96hiYT22Tu59Q4w0j6wn-9bQyGwdXvjpLiLF5a42BSP3vE5QRF8G5qcDBnlfSilgEmGKO5fp1X0h4SI8Wg5o_V4rJlAkwBl4JbTCc6pi-AeGj2Hr36M-YTwnLOFbt2Bi8/s400/3-wide.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5370969247312445202&quot; /&gt;&lt;/a&gt;


&lt;p&gt;Решение нашёл
&lt;a href=&quot;http://forum.linux.by/viewtopic.php?f=4&amp;amp;t=10022&quot;&gt;здесь&lt;/a&gt;,
тов. lizard огромное спасибо!!!  Для меня остаётся загадкой, как он до
этого дошёл :)&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/08/opera-file-selector.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7OQg4RZ1H5U-jPXTTTwx-bv1y9K3GstXcPeK09nAx1vrZFyD0MW5BxgUhrzQLLFFJL5hziGPo2K0_o7cENR_cN1yRuVuwLLiiLaq2qdCAFI9Zs1wruDpAairEb0M2Gtyr61T4qVC-zto/s72-c/1-default.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-6357088241367425945</guid><pubDate>Fri, 10 Jul 2009 08:22:00 +0000</pubDate><atom:updated>2009-09-08T01:36:34.387+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Избавляемся от пустых одинаковых иконок. Раскрасим аскетичный рабочий стол.</title><description>&lt;h3&gt;Проблема&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Если вы - пользователь лёгкого оконного менеджера и используете по
большей части консольные приложения, или такие программы, как, например,
xpdf, mplayer, conkeror, то с проблемой вы, скорее всего знакомы.  Дело в том,
что эти программы имеют проблемы со значками, которые можно видеть при
переключении окон альт-табом или на рамке окна.  Все они имеют одну и ту же иконку,
неинформативное пустое изображение, которое только мозолит глаза, но
не помогает разобраться что это за программа.  Знакомая картина?&lt;/p&gt;
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsFCtUS7hMO3jpsWWXkbIVGncZOG2cSQkYzsGJbWApUGBss2_StyfOmigLEiNtXnV9Sv6crYqsbk_0-F8ZOYySjvymfMG5VhhsbhNfYaWU_P847g0GIY7Pl7mEJ1fwWxyvkkB6MBHH3ew/s1600-h/blank.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 256px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsFCtUS7hMO3jpsWWXkbIVGncZOG2cSQkYzsGJbWApUGBss2_StyfOmigLEiNtXnV9Sv6crYqsbk_0-F8ZOYySjvymfMG5VhhsbhNfYaWU_P847g0GIY7Pl7mEJ1fwWxyvkkB6MBHH3ew/s320/blank.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5356744558437243874&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Не знаю можно ли решить данную проблему более элегантным способом, но
был бы рад услышать, если у кого-нибудь есть мысли по этому поводу.  Я же
нашёл следующее решение, использующее программу &lt;a href=&quot;http://fbpanel.sourceforge.net/&quot;&gt;fbpanel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;В результате будет так.&lt;/p&gt;
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6fZQMI9hUaB9SqacXXUZBdtlppHJOu212eDD2qLL-HwO1EJkTUgVsGVlkP56IUmRKpiJM2NwSIGJRs1dLxroQMHoifQT1yDuyHLE6U4k7MUkKBZUHHX8GKNdZAj5H5i30JxNuYq0VG3c/s1600-h/final.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 256px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6fZQMI9hUaB9SqacXXUZBdtlppHJOu212eDD2qLL-HwO1EJkTUgVsGVlkP56IUmRKpiJM2NwSIGJRs1dLxroQMHoifQT1yDuyHLE6U4k7MUkKBZUHHX8GKNdZAj5H5i30JxNuYq0VG3c/s320/final.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5356744561618619890&quot; /&gt;&lt;/a&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Решение&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Панель &lt;a href=&quot;http://fbpanel.sourceforge.net/&quot;&gt;fbpanel&lt;/a&gt; сама по себе - весьма хорошее решение для легковесного
рабочего стола, однако лично я больше предпочитаю
&lt;a href=&quot;http://code.google.com/p/tint2/&quot;&gt;tint2&lt;/a&gt;.  Однако именно &lt;a href=&quot;http://fbpanel.sourceforge.net/&quot;&gt;fbpanel&lt;/a&gt;
позволяет решить озвученную выше проблему - назначает различным
приложениям свои иконки.&lt;/p&gt;

&lt;h4&gt;Установка и конфигурация&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В Debian эта программа есть в репозиториях, поэтому ставится как обычно:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ sudo aptitude install fbpanel
&lt;/pre&gt;

&lt;p&gt;Конфигурационный файл по умолчанию: &lt;code&gt;/etc/fbpanel/default&lt;/code&gt;.  Чтобы
использовать свой конфиг надо создать директорию &lt;code&gt;~/.fbpanel&lt;/code&gt;, если
ещё нет, и положить туда конфиг, который мы будем модернизировать (я
его назвал icons_panel):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ mkdir ~/.fbpanel
$ cp /etc/fbpanel/default ~/.fbpanel/icons_panel
&lt;/pre&gt;
Чтобы использовать профиль icons_panel, запуск осуществляем командой:

&lt;pre class=&quot;src&quot;&gt;
$ fbpanel -p icons_panel
&lt;/pre&gt;
Теперь открываем файл &lt;code&gt;~/.fbpanel/icons_panel&lt;/code&gt; в своём любимом
текстовом редакторе и редактируем.  После изменения профиля, надо
перезапустить fbpanel.

&lt;p&gt;В первую очередь нас интересуют поля в нижней части файла:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&#39;icons&#39; plugin lets you customize window icons.

&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;these changes apply to entire desktop
&lt;/span&gt;Plugin {
    &lt;span style=&quot;color: #b0c4de;&quot;&gt;type&lt;/span&gt; = icons
    config {
        DefaultIcon = /usr/share/fbpanel/images/default.xpm
        application {
            icon = gnome-terminal
            Image =  /usr/share/fbpanel/images/gnome_terminal.svg
            ClassName = XTerm
        }
        ...
    }
}
&lt;/pre&gt;

&lt;p&gt;Например, окну, у которого ClassName есть XTerm будет назначена иконка
gnome-terminal из вашей темы gtk-2 (если я правильно понял) или
/usr/share/fbpanel/images/gnome_terminal.svg.&lt;/p&gt;

&lt;p&gt;Таким образом, если я хочу, чтобы conkeror имел иконку firefox, я
просто запишу в эту секцию конфига:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
application {
    icon = firefox
    Image = /home/maxim/.icons/my_icons/firefox.png
    ClassName = Conkeror
}
&lt;/pre&gt;

Если в используемой теме gtk-2 есть иконка firefox, то будет
использована она.  Если - нет, то будет использована
&lt;code&gt;/home/maxim/.icons/my_icons/firefox.png&lt;/code&gt;.  Эти действия повлияют на
окно, у которого ClassName = Conkeror.

&lt;p&gt;Как узнать что есть ClassName для заданного приложения?  Нет ничего
проще.  Наберите в терминале следующую команду и ткните мышью в интересующее
окно.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ xprop | grep WM_CLASS
&lt;/pre&gt;
В случае conkeror я получил выхлоп:

&lt;pre class=&quot;src&quot;&gt;
WM_CLASS(STRING) = &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Navigator&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Conkeror&quot;&lt;/span&gt;
&lt;/pre&gt;

Первый параметр есть AppName, который нам пригодится позже, а второй,
&amp;quot;Conkeror&amp;quot;, и есть искомый ClassName.

&lt;p&gt;Подобную процедуру мы можем провести с mplayer, xpdf, с
другими неконсольными приложениями.&lt;/p&gt;

&lt;p&gt;Здорово!  Но это не всё.  Ведь все приложения, запущенные в терминале
будет тогда иметь тот же вид, что и терминал, так что потом среди них
не разберёшься.  Тут на помощь придёт AppName.&lt;/p&gt;

&lt;p&gt;Если просто запустить, какое-нибудь консольное приложение, скажем, ncmpc, в xterm, я
получаю выхлоп от &lt;code&gt;xprop&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
WM_CLASS(STRING) = &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;xterm&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;XTerm&quot;&lt;/span&gt;

&lt;/pre&gt;
Ни о каком названии запущенного приложения не упоминается.

&lt;p&gt;Но если запустить так:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ xterm -name ncmpc -e ncmpc
&lt;/pre&gt;
то ситуация изменится:

&lt;pre class=&quot;src&quot;&gt;
$ xprop  | grep WM_CLASS
WM_CLASS(STRING) = &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;ncmpc&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;XTerm&quot;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Теперь, чтобы fbpanel отличала обычный терминал от консольного
приложения ncmpc, в конфиг следует прописать следующее:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
application {
    Image = /home/maxim/.icons/my_icons/media-player-banshee.png
    AppName = ncmpc
    ClassName = XTerm
}
&lt;/pre&gt;

&lt;p&gt;Аналогично, скажем, для MidnightCommander ($ xterm -name mc -e mc):&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
application {
    icon = mc
    AppName = mc
    ClassName = XTerm
}
&lt;/pre&gt;

&lt;p&gt;Очевидно, что не очень удобно запуск консольного приложения
осуществлять в другом терминале, поэтому лучше такие запуски вешать на
хоткеи или в меню запуска вашего оконного менеджера.&lt;/p&gt;

&lt;h4&gt;Если используем другую панель&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Всё так здорово, но мы не хотим использовать fbpanel в качестве панели?
Для этого мы можем сделать панель очень маленькой и поместить в
какой-нибудь угол - видеть её мы не будем, а памяти она занимает
немного.  Для этого редактируем
секцию General (я задал ширину width=0 и высоту в один пиксель,
height=1) и удаляем все плагины кроме определений иконок.&lt;/p&gt;

&lt;p&gt;Приведу свой конфиг:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
Global {
    edge = top
    allign = right
    margin = 0
    widthtype = percent
    width = 0
    height = 1
    transparent = false
    tintcolor = &lt;span style=&quot;color: #ff7f24;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;ffffff
&lt;/span&gt;    alpha = 37
    setdocktype = true
    setpartialstrut = true
    autohide = true
    heightWhenHidden = 2
}

Plugin {
    &lt;span style=&quot;color: #b0c4de;&quot;&gt;type&lt;/span&gt; = icons
    config {
        DefaultIcon = /usr/share/fbpanel/images/default.xpm
        application {
            icon = gnome-terminal
            Image = /usr/share/fbpanel/images/gnome_terminal.svg
            ClassName = XTerm
        }
        application {
            icon = gnome-terminal
            Image = /usr/share/fbpanel/images/gnome_terminal.svg
            ClassName = URxvt
        }
        application {
            icon = gnome-emacs
            Image = /usr/share/fbpanel/images/emacs.svg
            ClassName = Emacs
        }
        application {
            icon = mozilla-firefox
            ClassName = Firefox-bin
        }
        application {
            icon = mozilla-firefox
            ClassName = Firefox
        }
        application {
            Image = /home/maxim/.icons/my_icons/totem.svg
            ClassName = MPlayer
        }
        application {
            Image = /home/maxim/.icons/my_icons/xpdf.svg
            ClassName = Xpdf
        }
        application {
            icon = opera
            Image = /home/maxim/.icons/my_icons/opera.svg
            ClassName = Opera
        }
        application {
            icon = firefox
            Image = /home/maxim/.icons/my_icons/firefox.png
            ClassName = Conkeror
        }
        application {
            Image = /home/maxim/.icons/my_icons/media-player-banshee.png
            AppName = ncmpc
            ClassName = XTerm
        }
        application {
            Image = /home/maxim/.icons/my_icons/email.png
            AppName = mymail
            ClassName = XTerm
        }
        application {
            icon = mc
            AppName = mc
            ClassName = XTerm
        }
    }
}
&lt;/pre&gt;

&lt;p&gt;В результате &lt;a href=&quot;http://fbpanel.sourceforge.net/&quot;&gt;fbpanel&lt;/a&gt; делает своё
дело, назначает окнам иконки, а в качестве панели мы используем
что-нибудь другое, в моём случае это
&lt;a href=&quot;http://code.google.com/p/tint2/&quot;&gt;tint2&lt;/a&gt;.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/07/no-more-blank-icons.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsFCtUS7hMO3jpsWWXkbIVGncZOG2cSQkYzsGJbWApUGBss2_StyfOmigLEiNtXnV9Sv6crYqsbk_0-F8ZOYySjvymfMG5VhhsbhNfYaWU_P847g0GIY7Pl7mEJ1fwWxyvkkB6MBHH3ew/s72-c/blank.jpg" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-9221281161496062401</guid><pubDate>Tue, 30 Jun 2009 17:52:00 +0000</pubDate><atom:updated>2009-09-04T23:17:34.973+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">console</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Работаем с лёгкостью с архивами в консоли.  Утилита atool.</title><description>&lt;p&gt;Думаю, многим линуксоидам приходилось и приходится ковыряться с
архивами в консоли.  Несомненно, многие современные дистрибутивы сразу
приучают пользователей к графическому интерфейсу и графическим
менеджерам архивов, однако для кого-то работа в консоли имеет больший
приоритет.  Несомненно, у многих уже от пальцев отскакивают команды
типа&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ tar xzvf archive.tar.gz
$ tar czvf new_archive.tar.gz directory_to_pack
$ tar xjvf archive.tar.bz2
$ tar cjvf new_archive.tar.bz2 directory_to_pack
&lt;/pre&gt;
Как видно, ключи в случае gzip и bzip2 используются разные, а ещё в
природе есть (если не вспоминать про более редкие arj,
arc, p7zip, ace) zip и rar, которые распаковываются с помощью unzip и
unrar.

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
В случае архивов rar и zip есть весьма большая проблема, состоящая в
том, что в этих архивах, как правило, файлы лежат не в какой-нибудь
директории, а просто так, &amp;quot;в корне&amp;quot;.  Это чревато тем, что
распаковывая какой-нибудь из таких архивов (если вы не озаботились
создать под содержимое архива новую поддиректорию), имеется неплохой шанс
загадить текущую директорию множеством файлов из него, хотя вы ожидали, что
будет создана новая поддиректория, где и будет всё собрано.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;В принципе, не такая уж и проблема, всё запомнить, но было
бы, разумеется, куда более здорово, если бы существовала универсальная
программа архиватор/разархиватор для всех нужных форматов.  И такая
программа есть!  Это &lt;a href=&quot;http://www.nongnu.org/atool/&quot;&gt;atool&lt;/a&gt;, набор
скриптов, позволяющий свести к минимуму нагрузку на мозг :)&lt;/p&gt;
&lt;span class=&quot;fullpost&quot;&gt;

&lt;p&gt;Для распаковки архива достаточно скомандовать:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ aunpack archive.tar.gz
&lt;/pre&gt;
Вместо gz может быть bzip, bzip2, zip, 7zip, rar, arj и прочее
(смотрите мануал).  Замечательно, что все архивы при таком
использовании будут распакованы в
отдельную поддиректорию, даже если все файлы в архиве лежат в корне,
а не в отдельном каталоге (в этом случае будет создана поддиректория с
названием, соответствующим названию архива)!  Таким образом, текущую директорию вы,
независимо от того, что за архив вы поковыряли, не загадите, а что
более важно, не перезапишете случайно старые файлы.

&lt;p&gt;Чтобы распаковать содержимое архива в какую-то заданную директорию
служит ключ -X или &amp;mdash;extract-to:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ atool archive.rar -X path_to_extract
&lt;/pre&gt;
В данном случае путь path_to_extract уже должен существовать.

&lt;p&gt;Запаковать файлы file1, file2 и директорию dir в zip-архив можно не менее простой
командой:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ apack new_archive.zip file1 file2 dir
&lt;/pre&gt;
Использование wildcards * , ? и прочих регулярных выражений очень облегчает
работу.

&lt;p&gt;Для того чтобы запаковать директории dir1, dir2, dir3 в архивы
dir?.tar.bz2 достаточно выполнить:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ apack -e -F tar.bz2 dir*

&lt;/pre&gt;
-e выполняет команду для каждого архива, указанного в регулярном
выражении dir*, а -F tar.bz2 указывает на формат архива.  Формат можно
указывать как в виде расширения, так и в виде tar+bz2.

&lt;p&gt;Для просмотра содержимого архива служит als:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ als archive.tar.bz2
&lt;/pre&gt;
а посмотреть содержимое файла readme в архиве можно
так:

&lt;pre class=&quot;src&quot;&gt;
$ acat dwm-4.7.tar.bz2 dwm-4.7/readme | less
&lt;/pre&gt;

&lt;h4&gt;Резюме&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Если вы предпочитаете работать в консоли, то программа

&lt;a href=&quot;http://www.nongnu.org/atool/&quot;&gt;atool&lt;/a&gt; окажется очень полезной для
работы с архивами, она избавит от необходимости запоминать ключи для
разных программ-упаковщиков и позволит освободить мозговые ресурсы для
более полезных занятий.  А использование регулярных выражений даёт
возможность выполнять большой обьём работы, по меркам графических
программ, с помощью коротких команд.&lt;/p&gt;

&lt;p&gt;Сам я познакомился с atool благодаря
&lt;a href=&quot;http://linsovet.com/content/atool-universal-archive-script&quot;&gt;этой заметке.&lt;/a&gt;&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/07/atool.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-5732046466030365352</guid><pubDate>Thu, 18 Jun 2009 19:57:00 +0000</pubDate><atom:updated>2009-09-08T01:41:57.427+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Теперь устройство может быть безопасно извлечено :) linux</title><description>&lt;h3&gt;Постановка задачи&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://tuxray.blogspot.com/2009/06/blog-post.html&quot;&gt;В прошлый раз&lt;/a&gt;
мы посмотрели как можно вывести информацию о том подмонтирована ли
флешка или нет на экран при помощи системного монитора conky.  Как
известно, если есть какой-нибудь процесс, который занимает
какой-нибудь файл на флешке, то umount ругнётся:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
umount: /media/usb: device is busy
umount: /media/usb: device is busy
&lt;/pre&gt;
Таким образом, для начала надо узнать что это за процесс, а затем
убить его.

&lt;p&gt;В этой заметке я приведу скрипт, который использует для
автоматического отключения занимающих процессов программу fuser и
выводит сообщения на экран посредством программы
&lt;a href=&quot;http://www.nul-unu.com/quien/rodrigo/software/gmessage/&quot;&gt;gmessage&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Кому это надо?  Ну, скорее всего, не пользователям DE, где это и так
реализовано уже, наверное (хотя в последний раз, когда я использовал
DE, мне приходилось самому искать держащие процессы).  А вот
пользователям лёгких оконных менеджеров, может и пригодится.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Решение&lt;/h3&gt;

&lt;h4&gt;fuser - для отключения мешающих процессов&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Программа &lt;a href=&quot;http://ru.wikipedia.org/wiki/Fuser&quot;&gt;fuser&lt;/a&gt; идентифицирет
процессы, использующие данный файл и позволяет их убить.
Допустим, мы открыли какой-то файл на флешке в программе evince и
ещё лазим в терминала по файловой системе.
Характерный вывод такой:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
~&amp;gt; fuser -vm /media/usb/
                     USER        PID ACCESS COMMAND
/media/usb/:         maxim      6369 ..c.. bash
                     maxim      7404 f.... evince
&lt;/pre&gt;
&lt;code&gt;-v&lt;/code&gt; означает более полный вывод, а &lt;code&gt;-m /media/usb&lt;/code&gt; указывает на точку
монтирования.
В &lt;a href=&quot;http://ru.wikipedia.org/wiki/Fuser&quot;&gt;википедии&lt;/a&gt; это хорошо
описано, а в конце приведён пример как убить махом все процессы,
занимающие требуемую файловую систему.  В моём случае для отрубания
всего (от точки монтирования &lt;code&gt;/media/usb&lt;/code&gt;) будет служить команда:


&lt;pre class=&quot;src&quot;&gt;
fuser -km /media/usb
&lt;/pre&gt;

&lt;p&gt;В принципе, fuser даёт неплохой вывод, чтобы понять что именно
мешает отключению, но всё же знание программы и идентификатора
процесса не столь информативны для пользователя как, к примеру, имя
файла, который открыт.&lt;/p&gt;


&lt;h4&gt;lsof - для информативного вывода&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Для более информативного вывода, на мой взгляд, больше подойдёт
программа &lt;a href=&quot;http://ru.wikipedia.org/wiki/Lsof&quot;&gt;lsof&lt;/a&gt;.
Вот типичный вывод:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;

~&amp;gt; lsof | grep /media/usb/
bash       6369       maxim  cwd       DIR       8,17    32768    1663 /media/usb/Experiment
evince     7404       maxim   14r      REG       8,17   873474    1684 /media/usb/ABX3_preprint.pdf
&lt;/pre&gt;
Колонки означают следующее:

&lt;pre class=&quot;src&quot;&gt;
~&amp;gt; lsof | head -1
COMMAND     PID        USER   FD      TYPE     DEVICE     SIZE    NODE NAME
&lt;/pre&gt;
Более удобный вывод для меня (PID COMMAND NAME, разделённые
табуляцией) я получаю с помощью awk:

&lt;pre class=&quot;src&quot;&gt;
lsof | grep /media/usb/ | awk &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;{print $2&quot;\t&quot;$1&quot;\t&quot;$9}&#39;&lt;/span&gt;
&lt;/pre&gt;
Здесь мы режем строку на части, разделённые пробелом (в случае
непробельного разделителя надо использовать -F &amp;quot;разделитель&amp;quot;) и
выводим соответствующие части в желаемом порядке.


&lt;p&gt;Таким образом, получим:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
~&amp;gt; lsof | grep /media/usb/ | awk &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;{print $2&quot;\t&quot;$1&quot;\t&quot;$9}&#39;&lt;/span&gt;
6369    bash    /media/usb/Experiment
7404    evince  /media/usb/ABX3_preprint.pdf
&lt;/pre&gt;
По-моему, это весьма информативно.  Я не соображу сходу что значит
процесс 7404, но уж точно пойму &lt;code&gt;/media/usb/ABX3_preprint.pdf&lt;/code&gt;.  А это
мне и надо.


&lt;h4&gt;Gmessage - для графического отображения информации&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Хочется, когда отмонтирование прошло удачно, получить сообщение, что
всё удачно.  В обратном случае хотелось бы, чтобы появилось окошко,
показывающее, что такие-то процессы мешаются, и предлагающее их убить.&lt;/p&gt;

&lt;p&gt;Для этого можно использовать старую добрую программу xmessage или её
более приятный глазу аналог, gmessage (оно же gxmessage).&lt;/p&gt;

&lt;p&gt;Для отображения текста из файла text-file в окне с кнопками &amp;quot;Ла&amp;quot; и
&amp;quot;Нет&amp;quot; достаточно скомандовать:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
gxmessage -name &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1047;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1082; &amp;#1086;&amp;#1082;&amp;#1085;&amp;#1072;&quot;&lt;/span&gt; -buttons &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1044;&amp;#1072;:0,&amp;#1053;&amp;#1077;&amp;#1090;:1&quot;&lt;/span&gt; -file text-file
&lt;/pre&gt;
При нажатии на кнопку &amp;quot;Да&amp;quot; будет генериться сигнал 0, при нажатии на
&amp;quot;Нет&amp;quot;, соответственно - 1.

&lt;p&gt;Таким образом, если мы хотим, чтобы при нажатии на &amp;quot;Да&amp;quot; что-то
происходило, мы будем использовать такую конструкцию:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; gxmessage -name &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1047;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1082; &amp;#1086;&amp;#1082;&amp;#1085;&amp;#1072;&quot;&lt;/span&gt; -buttons &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1044;&amp;#1072;:0,&amp;#1053;&amp;#1077;&amp;#1090;:1&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;\&lt;/span&gt;
    -file text-file;
&lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;
    *&amp;#1095;&amp;#1090;&amp;#1086;-&amp;#1090;&amp;#1086; &amp;#1074;&amp;#1099;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1103;&amp;#1077;&amp;#1084;*
&lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
&lt;/pre&gt;



&lt;h4&gt;Пишем скрипт&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Итак, предлагаю такой ход действий:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Введём переменную точки монтирования и лога сообщений:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt;=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;/media/usb&quot;&lt;/span&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt;=/tmp/mount_usb_log
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Узнаём подмонтирована ли флешка (если &lt;code&gt;$if_mounted&lt;/code&gt; непусто, то
выполняем то, что внутри if:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;if_mounted&lt;/span&gt;=&lt;span style=&quot;color: #fa8072;&quot;&gt;`grep $MOUNT_POINT /etc/mtab`&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; [[ -n &lt;span style=&quot;color: #fa8072;&quot;&gt;`echo $if_mounted`&lt;/span&gt; ]]; &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;

...
&lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Если флешка подмонтирована, пытаемся её отмонтировать, а все
возможные сообщения пишем в лог:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;listing&quot;&gt;
umount $&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt; &amp;amp;&amp;gt; $&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt;

&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;Затем, если лог непустой, то есть что-то пошло не так, выведем
сообщение какие процессы нам мешают и предложим их убить.&lt;/li&gt;
&lt;li&gt;В случае успеха, напишем, что всё получилось.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;У меня получилось следующее:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;!/bin/sh
&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt;=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;/media/usb&quot;&lt;/span&gt;

&lt;span style=&quot;color: #eedd82;&quot;&gt;if_mounted&lt;/span&gt;=&lt;span style=&quot;color: #fa8072;&quot;&gt;`grep $MOUNT_POINT /etc/mtab`&lt;/span&gt;
&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt;=/tmp/mount_usb_log

&lt;span style=&quot;color: #00ffff;&quot;&gt;function&lt;/span&gt; my_umount {
    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1077;&amp;#1089;&amp;#1083;&amp;#1080; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1072;, &amp;#1087;&amp;#1099;&amp;#1090;&amp;#1072;&amp;#1077;&amp;#1084;&amp;#1089;&amp;#1103; &amp;#1086;&amp;#1090;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1100;
&lt;/span&gt;    &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; [[ -n &lt;span style=&quot;color: #fa8072;&quot;&gt;`echo $if_mounted`&lt;/span&gt; ]]; &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;

        umount $&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt; &amp;amp;&amp;gt; $&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
}

my_umount

&lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; [[ -s $&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt; ]]; &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;

    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1077;&amp;#1089;&amp;#1083;&amp;#1080; &amp;#1083;&amp;#1086;&amp;#1075; &amp;#1085;&amp;#1077;&amp;#1087;&amp;#1091;&amp;#1089;&amp;#1090;&amp;#1086;&amp;#1081;, &amp;#1090;&amp;#1086;
&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1087;&amp;#1080;&amp;#1096;&amp;#1077;&amp;#1084; &amp;#1074; &amp;#1085;&amp;#1077;&amp;#1075;&amp;#1086; &amp;#1082;&amp;#1072;&amp;#1082;&amp;#1086;&amp;#1081; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1094;&amp;#1077;&amp;#1089;&amp;#1089; &amp;#1079;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1077;&amp;#1090; (&amp;#1087;&amp;#1086;&amp;#1087;&amp;#1091;&amp;#1090;&amp;#1085;&amp;#1086; &amp;#1087;&amp;#1088;&amp;#1080;&amp;#1074;&amp;#1086;&amp;#1076;&amp;#1080;&amp;#1084; &amp;#1082; &amp;#1087;&amp;#1088;&amp;#1080;&amp;#1083;&amp;#1080;&amp;#1095;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1091; &amp;#1074;&amp;#1080;&amp;#1076;&amp;#1091; &amp;#1089; &amp;#1087;&amp;#1086;&amp;#1084;&amp;#1086;&amp;#1097;&amp;#1100;&amp;#1102; awk)

&lt;/span&gt;    lsof | grep /media/usb/ | awk &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;{print $2&quot;\t&quot;$1&quot;\t&quot;$9}&#39;&lt;/span&gt; &amp;gt; $&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt;

    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1077;&amp;#1089;&amp;#1083;&amp;#1080; &amp;#1077;&amp;#1089;&amp;#1090;&amp;#1100; &amp;#1083;&amp;#1086;&amp;#1075;, &amp;#1090;&amp;#1086; &amp;#1087;&amp;#1080;&amp;#1096;&amp;#1077;&amp;#1084;, &amp;#1095;&amp;#1090;&amp;#1086; &amp;#1092;&amp;#1083;&amp;#1077;&amp;#1096;&amp;#1082;&amp;#1072; &amp;#1079;&amp;#1072;&amp;#1085;&amp;#1103;&amp;#1090;&amp;#1072;

&lt;/span&gt;    &lt;span style=&quot;color: #00ffff;&quot;&gt;if&lt;/span&gt; gxmessage -file $&lt;span style=&quot;color: #eedd82;&quot;&gt;LOG&lt;/span&gt; -name &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1060;&amp;#1083;&amp;#1077;&amp;#1096;&amp;#1082;&amp;#1072; &amp;#1079;&amp;#1072;&amp;#1085;&amp;#1103;&amp;#1090;&amp;#1072;!&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;\&lt;/span&gt;
        -buttons &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Force:0,Cancel:1&quot;&lt;/span&gt;;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;then&lt;/span&gt;

        &lt;span style=&quot;color: #00ffff;&quot;&gt;while&lt;/span&gt; [[ -n &lt;span style=&quot;color: #fa8072;&quot;&gt;`echo $if_mounted`&lt;/span&gt; ]]; &lt;span style=&quot;color: #00ffff;&quot;&gt;do&lt;/span&gt;
            &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1087;&amp;#1088;&amp;#1080; &amp;#1085;&amp;#1072;&amp;#1078;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1080; &amp;#1085;&amp;#1072; Force &amp;#1091;&amp;#1073;&amp;#1080;&amp;#1074;&amp;#1072;&amp;#1077;&amp;#1084; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1094;&amp;#1077;&amp;#1089;&amp;#1089;&amp;#1099;, &amp;#1082;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1099;&amp;#1077; &amp;#1079;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1102;&amp;#1090; &amp;#1092;&amp;#1083;&amp;#1077;&amp;#1096;&amp;#1082;&amp;#1091;

&lt;/span&gt;            fuser -km $&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt;
            &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1080; &amp;#1087;&amp;#1099;&amp;#1090;&amp;#1072;&amp;#1077;&amp;#1084;&amp;#1089;&amp;#1103; &amp;#1089;&amp;#1085;&amp;#1086;&amp;#1074;&amp;#1072; &amp;#1086;&amp;#1090;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1100;
&lt;/span&gt;            my_umount
            &lt;span style=&quot;color: #eedd82;&quot;&gt;if_mounted&lt;/span&gt;=&lt;span style=&quot;color: #fa8072;&quot;&gt;`grep $MOUNT_POINT /etc/mtab`&lt;/span&gt;
            &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1087;&amp;#1086;&amp;#1082;&amp;#1072; &amp;#1085;&amp;#1077; &amp;#1086;&amp;#1090;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1091;&amp;#1077;&amp;#1084; (&amp;#1087;&amp;#1086;&amp;#1082;&amp;#1072; /etc/mtab &amp;#1085;&amp;#1077; &amp;#1073;&amp;#1091;&amp;#1076;&amp;#1077;&amp;#1090; &amp;#1089;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1090;&amp;#1100; &quot;/media/usb&quot;)

&lt;/span&gt;        &lt;span style=&quot;color: #00ffff;&quot;&gt;done&lt;/span&gt;
        gxmessage &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1060;&amp;#1083;&amp;#1077;&amp;#1096;&amp;#1082;&amp;#1072; &amp;#1091;&amp;#1089;&amp;#1087;&amp;#1077;&amp;#1096;&amp;#1085;&amp;#1086; &amp;#1086;&amp;#1090;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1072;&quot;&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;
        gxmessage &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&amp;#1060;&amp;#1083;&amp;#1077;&amp;#1096;&amp;#1082;&amp;#1072; &amp;#1086;&amp;#1090;&amp;#1084;&amp;#1086;&amp;#1085;&amp;#1090;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1072;&quot;&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;fi&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Цикл я использовать поначалу не планировал, думал просто скомандовать&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
fuser -km $&lt;span style=&quot;color: #eedd82;&quot;&gt;MOUNT_POINT&lt;/span&gt;
my_umount
&lt;/pre&gt;

&lt;p&gt;но оказалось, что команды не выполныются последовательно.  Почему-то
срабатывает вторая, пока ещё не отработала первая (стало быть ничего
не отмонтировалось, потому что всё ещё были живы процессы).  &amp;amp;&amp;amp; не
помогало.  А использовать sleep перед второй командой не совсем
честно.  Поэтому и организовал цикл, который не закончится, пока точно
флешке не отмонтируется.  Только после этого выведется сообщение об
успешном усходе нашего предприятия.&lt;/p&gt;

&lt;p&gt;Итак, скриншоты.&lt;/p&gt;

&lt;p&gt;Когда флешка занята, видим кто мешает:&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3IeuZ3l4LIGXQKT6WsxjkezZdQaPpQoDzrPS0jGbCERQjsNThoOI0lUSqsI6KIfbtmkgRtWABEq-GJTGgvm9fMFDPYvuvfYxucolZDHCnZe9UBg3PVrAIHND3YkoCWardaI-vcGxdYXk/s1600-h/busy.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 368px; height: 143px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3IeuZ3l4LIGXQKT6WsxjkezZdQaPpQoDzrPS0jGbCERQjsNThoOI0lUSqsI6KIfbtmkgRtWABEq-GJTGgvm9fMFDPYvuvfYxucolZDHCnZe9UBg3PVrAIHND3YkoCWardaI-vcGxdYXk/s400/busy.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5348762346948963122&quot; /&gt;&lt;/a&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;busy.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;После нажатия на «Force» процессы убиты, флешка отмонтирована и мы видим:&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtIChiS9wmjhHYIkuXUk1Em9mrPw_-W7tQU0eonOGXL4b7RYt8XdCPOsQ9aDnzSbUtbQrCLejwz2GBW6F88Hu4OWrv_zlRmBE3ZVx7U39Bn-xaeamFD_TcKTzdFM-igYq8Ux7SmfZRJb8/s1600-h/success.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 276px; height: 143px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtIChiS9wmjhHYIkuXUk1Em9mrPw_-W7tQU0eonOGXL4b7RYt8XdCPOsQ9aDnzSbUtbQrCLejwz2GBW6F88Hu4OWrv_zlRmBE3ZVx7U39Bn-xaeamFD_TcKTzdFM-igYq8Ux7SmfZRJb8/s400/success.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5348762348028727874&quot; /&gt;&lt;/a&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;success.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Ура! :)&lt;/p&gt;

&lt;p&gt;Дело за малым:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;обзываем скрипт umount_usb&lt;/li&gt;
&lt;li&gt;делаем его исполняемым (chmod u+x umount_usb)&lt;/li&gt;
&lt;li&gt;кладём куда-нибудь в $PATH (например, в ~/bin, при этом добавить в ~/.bashrc export PATH=&amp;quot;$PATH:$HOME/bin&amp;quot;)&lt;/li&gt;
&lt;li&gt;настраиваем sudo, чтобы запускать umount без запроса пароля
(&lt;a href=&quot;http://debiania.blogspot.com/2009/03/sudo-debian-gnulinux-ubuntu-linux.html&quot;&gt;смотри здесь&lt;/a&gt;
на предмет NOPASSWD, тогда в скрипте mount меняем на sudo mount), либо
смотрим на мои опции в /etc/fstab (user позволяет от обычного
пользователя монтировать): /dev/sdb1 /media/usb auto
user,noauto,iocharset=utf8,showexec 0 0
(для кого это - китайская грамота
&lt;a href=&quot;http://mydebianblog.blogspot.com/2008/09/linux.html&quot;&gt;следует прочитать это&lt;/a&gt;)&lt;/li&gt;

&lt;li&gt;назначаем горячую клавишу.  Например, я использую xbindkeys.  В
~/.xbindkeys: пишем&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;listing&quot;&gt;
  &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;umount_usb&quot;&lt;/span&gt;
  Mod4+u
&lt;/pre&gt;



&lt;h3&gt;Заключение&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Данное решение может пригодиться пользователям оконных менеджеров.
Разумеется, основной недостаток заключается в том, что оно применимо
лишь для файловых систем, имеющих один раздел.  У меня других и нет.
Но для кого-то это критично.  На первый взгляд не должно возникнуть
больших проблем в плане распространения данного способа на случай
более сложной таблицы разделов.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/06/linux.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3IeuZ3l4LIGXQKT6WsxjkezZdQaPpQoDzrPS0jGbCERQjsNThoOI0lUSqsI6KIfbtmkgRtWABEq-GJTGgvm9fMFDPYvuvfYxucolZDHCnZe9UBg3PVrAIHND3YkoCWardaI-vcGxdYXk/s72-c/busy.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-351191764624409164</guid><pubDate>Mon, 08 Jun 2009 12:28:00 +0000</pubDate><atom:updated>2009-09-08T02:13:35.610+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Подмонтирована ли флешка?</title><description>&lt;script type=&quot;text/javascript&quot; src=&quot;http://tex.yourequations.com/&quot;&gt;&lt;/script&gt;
&lt;p&gt;Как известно, перед выдёргиванием флешки надо удостовериться
отмонтирована ли файловая система, чтобы не потерять записанные данные
и не испортить файловую систему.  Пользователи линукс с этим знакомы
особо, динозавры привыкли к mount/umount.&lt;/p&gt;

&lt;p&gt;Не знаю, у кого как, а у меня иногда возникают сомнения, а
отмонтировал ли я флешку или нет.  Конечно можно воспользоваться
файловым менеджером типа nautilus, thunar, pcmanfm и проделать это
вновь для верности что представляет лишние телодвижения.  Есть апплеты
на панели, типа как в винде, но по мне это лишние свистелки (весьма
приличный в kde3, но кедами я не пользуюсь), поэтому в
консоли, которая всегда под рукой, я для этого набирал &lt;code&gt;df&lt;/code&gt;.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Отображение в Conky&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Ещё один альтернативный путь, который я стал использовать, и который,
быть может, покажется кому-нибудь полезным заключается в отображении
статуса в системном мониторе &lt;a href=&quot;http://conky.sourceforge.net/&quot;&gt;conky&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Conky - это программа для мониторинга системы.  Легковесная,
функциональная, позволяющая слепить почти всё, что захотите.
Для получения более полной информации можно прочитать
&lt;a href=&quot;http://medibuntu.ru/articles/ubuntu/1-conky.html&quot;&gt;этот великолепный пост&lt;/a&gt;.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;В конфигурационном файле ~/.conkyrc в разделе «TEXT», в котором и
настраивается что будет отображаться на экране, я добавил следующую
строку:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
${&lt;span style=&quot;color: #eedd82;&quot;&gt;if_mounted&lt;/span&gt; /media/usb}${&lt;span style=&quot;color: #eedd82;&quot;&gt;color&lt;/span&gt; red}Usb stick is mounted ${&lt;span style=&quot;color: #eedd82;&quot;&gt;alignr&lt;/span&gt;}${&lt;span style=&quot;color: #eedd82;&quot;&gt;fs_bar&lt;/span&gt; 7,70 /media/usb}${&lt;span style=&quot;color: #00ffff;&quot;&gt;else&lt;/span&gt;}${&lt;span style=&quot;color: #eedd82;&quot;&gt;color&lt;/span&gt;}Usb stick is NOT mounted ${&lt;span style=&quot;color: #eedd82;&quot;&gt;endif&lt;/span&gt;}
&lt;/pre&gt;

&lt;p&gt;Интуитивно понятно, что выполняет конструкция ${if_mounted
/media/usb}если_подмонтирована${else}если_не_подмонтирована${endif}.
Таким образом, если файловая система флешки подмонтирована в
&lt;code&gt;/media/usb&lt;/code&gt;, то видим красную надпись «Usb stick is mounted» и
красную полоску с индикацией степени заполнения свободного места
флешки.  В обратном случае увидим надпись «Usb stick is NOT mounted».&lt;/p&gt;
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;
href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIak7iZZnw6AitE7k2fHxF1heNDMeZ4vrrx7Js8uhhOYxEyXZGl7mnOuqfjoySS65iY-SzQ-lqUEzGgU-__3WfMwfuuoxs6WLOsEptBkoBMD1MTmvxw72RyaZKykFjZ5-DdTvYkWHAU34/s1600-h/conky-mounts.png&quot;&gt;&lt;img
style=&quot;display:block; margin:0px auto 10px;
text-align:center;cursor:pointer; cursor:hand;width: 400px; height:
293px;&quot;
src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIak7iZZnw6AitE7k2fHxF1heNDMeZ4vrrx7Js8uhhOYxEyXZGl7mnOuqfjoySS65iY-SzQ-lqUEzGgU-__3WfMwfuuoxs6WLOsEptBkoBMD1MTmvxw72RyaZKykFjZ5-DdTvYkWHAU34/s400/conky-mounts.png&quot;
border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5344934248011986178&quot; /&gt;&lt;/a&gt;

&lt;h3&gt;Mount, umount в xbindkeys&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Теперь, если надо отмонтировать флешку просто надо скомандовать umount
/media/usb.  Разумеется, здорово было бы забиндить это на какую-нибудь
комбинацию клавиш.  Например, может придти на помощь программа
&lt;a href=&quot;http://www.nongnu.org/xbindkeys/xbindkeys.html&quot;&gt;xbindkeys&lt;/a&gt;.
В файл ~/.xbindkeysrc пропишем следующие строки:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;mount /media/usb&quot;&lt;/span&gt;
Mod4 + i

&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;umount /media/usb&quot;&lt;/span&gt;
Mod4 + u
&lt;/pre&gt;
Программу необходимо запускать всякий раз при старте иксов, например,
добавив в ~/.xinitrc строку  &lt;code&gt;«xbindkeys &amp;amp;»&lt;/code&gt;.
Таким образом, при нажатии Win+i будет производиться монтирование,
а Win+u - размонтирование.

&lt;p&gt;Вот, собственно, и всё :)&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/06/blog-post.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIak7iZZnw6AitE7k2fHxF1heNDMeZ4vrrx7Js8uhhOYxEyXZGl7mnOuqfjoySS65iY-SzQ-lqUEzGgU-__3WfMwfuuoxs6WLOsEptBkoBMD1MTmvxw72RyaZKykFjZ5-DdTvYkWHAU34/s72-c/conky-mounts.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2407451180668559322</guid><pubDate>Sat, 30 May 2009 08:35:00 +0000</pubDate><atom:updated>2009-09-08T01:48:45.325+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><title>Постер в LaTeX</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkHqr5M8Q4-npweHHwpQAaCiwurHXctT8tgyN97LGE-avZt49t5J1uo14iKelEMHotGSQ1QuDcGeA7_ckHF9Ykevt3LJUEUskYiMq8jGVThFVjY3IPpFdrDD-QGyo3gHkaDE4s4ESlZLs/s1600-h/posters.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 233px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkHqr5M8Q4-npweHHwpQAaCiwurHXctT8tgyN97LGE-avZt49t5J1uo14iKelEMHotGSQ1QuDcGeA7_ckHF9Ykevt3LJUEUskYiMq8jGVThFVjY3IPpFdrDD-QGyo3gHkaDE4s4ESlZLs/s320/posters.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5341533676138425746&quot; /&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;Задача&lt;/strong&gt; - создать постер в LaTeX.  Для начала, какое премущество имеет
LaTeX перед WYSIWYG в создании постера?  В создании обычного-то текста
всё понятно, но ведь в постере желательно видеть сразу как всё будет
выглядеть.  Да, есть такой недостаток, но преимущество состоит в том,
что есть непосредственная возможность копировать текст прямо из ваших
презентаций, статей, отчётов и тому подобного, созданного в латехе.
Таким образом, можно затратить куда меньше времени, чем на
выравнивание рисунков в кореле (некоторые «умельцы» и в Powerpoint
умудряются постер наваять - качество явно страдает).  Более того, получится весьма приличный
результат.&lt;/p&gt;

&lt;p&gt;В интернете вы можете найти по запросу &amp;quot;latex poster&amp;quot; много всего.  Я
здесь напишу о том, что лично я использовал.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Первый подход - просто a0poster&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Просто вот так взять, да и написать постер с помощью пакета a0poster
как-то не складывалось - было неохота читать документацию к пакету, да
и вообще порой с нуля тяжеловато бывает.  И тут мне попалась на глаза
замечательная &lt;a href=&quot;http://www.acronymchile.com/poster.html&quot;&gt;ссылка&lt;/a&gt;.
Там описывается как можно сделать постер в латехе и можно скачать
&lt;a href=&quot;http://www.acronymchile.com/mposter.tar.gz&quot;&gt;исходные файлы&lt;/a&gt;.  По
примеру уж как-нибудь разберёмся!  Пример мне понравился, его я и
использовал, несколько модифицировав, для себя.&lt;/p&gt;

&lt;p&gt;Итак, сразу выброшу сюда свой готовый исходник с комментами.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\documentclass&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[a0,portrait]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{a0poster}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1084;&amp;#1077;&amp;#1088; &amp;#1083;&amp;#1080;&amp;#1089;&amp;#1090;&amp;#1072; &amp;#1080; &amp;#1086;&amp;#1088;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103; (&amp;#1084;&amp;#1086;&amp;#1078;&amp;#1085;&amp;#1086; landscape)
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{palatino}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1072;&amp;#1096; &amp;#1096;&amp;#1088;&amp;#1080;&amp;#1092;&amp;#1090;.  &amp;#1052;&amp;#1086;&amp;#1078;&amp;#1085;&amp;#1086; times, helvetica &amp;#1080; &amp;#1090;.&amp;#1076;.
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{xcolor}&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099; &amp;#1079;&amp;#1072;&amp;#1076;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1089;&amp;#1074;&amp;#1086;&amp;#1080; &amp;#1094;&amp;#1074;&amp;#1077;&amp;#1090;&amp;#1072;.
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{multicol}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090; &amp;#1074; &amp;#1085;&amp;#1077;&amp;#1089;&amp;#1082;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1082;&amp;#1086; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1086;&amp;#1082;.
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{graphicx}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{epsfig,float}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1082;&amp;#1083;&amp;#1102;&amp;#1095;&amp;#1080;&amp;#1090;&amp;#1100; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1080;. &amp;#1055;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1086; graphicx
&lt;/span&gt;                          &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1085;&amp;#1077; &amp;#1093;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1090;.  &amp;#1053;&amp;#1077; &amp;#1089;&amp;#1087;&amp;#1088;&amp;#1072;&amp;#1096;&amp;#1080;&amp;#1074;&amp;#1072;&amp;#1081;&amp;#1090;&amp;#1077; &amp;#1087;&amp;#1086;&amp;#1095;&amp;#1077;&amp;#1084;&amp;#1091; - &amp;#1085;&amp;#1077; &amp;#1079;&amp;#1085;&amp;#1072;&amp;#1102; &amp;#1091;&amp;#1078;&amp;#1077;.
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{psfrag}&lt;/span&gt;       &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099; &amp;#1084;&amp;#1086;&amp;#1078;&amp;#1085;&amp;#1086; &amp;#1073;&amp;#1099;&amp;#1083;&amp;#1086; &amp;#1085;&amp;#1072; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1072;&amp;#1093; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1087;&amp;#1088;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1090;&amp;#1100;
&lt;/span&gt;                          &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1082;&amp;#1072;&amp;#1082;&amp;#1080;&amp;#1077;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1085;&amp;#1072;&amp;#1076;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1080;.  &amp;#1055;&amp;#1086;&amp;#1076;&amp;#1088;&amp;#1086;&amp;#1073;&amp;#1085;&amp;#1077;&amp;#1077; &amp;#1086; psfrag
&lt;/span&gt;                          &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1082;&amp;#1072;&amp;#1082;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1084;.
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{amssymb,amsmath}&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1085;&amp;#1072;&amp;#1073;&amp;#1080;&amp;#1088;&amp;#1072;&amp;#1077;&amp;#1084; &amp;#1084;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1084;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1082;&amp;#1091;
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[utf8]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{inputenc}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[english]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{babel}&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1079;&amp;#1072;&amp;#1076;&amp;#1072;&amp;#1076;&amp;#1080;&amp;#1084; &amp;#1086;&amp;#1090;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1087;&amp;#1091;&amp;#1090;&amp;#1100; &amp;#1076;&amp;#1086; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1086;&amp;#1074;:
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\graphicspath&lt;/span&gt;{{pictures/}{../pictures/pdf/}{../pictures/eps/}}

&lt;span style=&quot;color: #00ffff;&quot;&gt;\bibliographystyle&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{unsrt}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1089;&amp;#1090;&amp;#1080;&amp;#1083;&amp;#1100; &amp;#1073;&amp;#1080;&amp;#1073;&amp;#1090;&amp;#1077;&amp;#1093;&amp;#1072;
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1079;&amp;#1072;&amp;#1076;&amp;#1072;&amp;#1076;&amp;#1080;&amp;#1084; &amp;#1089;&amp;#1086;&amp;#1082;&amp;#1088;&amp;#1072;&amp;#1097;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103;, &amp;#1082;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1099;&amp;#1077; &amp;#1073;&amp;#1091;&amp;#1076;&amp;#1077;&amp;#1084; &amp;#1080;&amp;#1089;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1079;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1076;&amp;#1072;&amp;#1083;&amp;#1077;&amp;#1077;:
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\newcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\celcius&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{\,^{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\circ&lt;/span&gt;}&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\mathrm&lt;/span&gt;{C}}     &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1076;&amp;#1091;&amp;#1089; &amp;#1094;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1089;&amp;#1080;&amp;#1103;.
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\def&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\sample&lt;/span&gt;{&lt;span style=&quot;color: #deb887;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\rm&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt; SrCo_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{0.6}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;Fe_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{0.2}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;Nb_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{0.2}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;O_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{3-&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\delta&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;$&lt;/span&gt;}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\def&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\nb&lt;/span&gt;0{&lt;span style=&quot;color: #deb887;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\rm&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt; SrCo_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{0.8}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;Fe_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{0.2}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;O_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{3-&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\delta&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;$&lt;/span&gt;}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1075;&amp;#1077;&amp;#1086;&amp;#1084;&amp;#1077;&amp;#1090;&amp;#1088;&amp;#1080;&amp;#1103; %%%%%%%%%%%%%%%%%%%%%%%%%
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\addtolength&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;\textwidth&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;}{0.5cm}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1095;&amp;#1091;&amp;#1090;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1096;&amp;#1080;&amp;#1088;&amp;#1077; &amp;#1096;&amp;#1080;&amp;#1088;&amp;#1080;&amp;#1085;&amp;#1072; &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090;&amp;#1072;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\addtolength&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;\oddsidemargin&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;}{-0.7cm}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1085;&amp;#1077;&amp;#1084;&amp;#1085;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1091;&amp;#1073;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1084; &amp;#1089;&amp;#1083;&amp;#1077;&amp;#1074;&amp;#1072;, &amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099;
&lt;/span&gt;           &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1086;&amp;#1089;&amp;#1085;&amp;#1086;&amp;#1074;&amp;#1085;&amp;#1086;&amp;#1077; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1088;&amp;#1072;&amp;#1085;&amp;#1089;&amp;#1090;&amp;#1074;&amp;#1086; &amp;#1073;&amp;#1099;&amp;#1083;&amp;#1086; &amp;#1073;&amp;#1086;&amp;#1083;&amp;#1077;&amp;#1077; &amp;#1080;&amp;#1083;&amp;#1080; &amp;#1084;&amp;#1077;&amp;#1085;&amp;#1077;&amp;#1077; &amp;#1074; &amp;#1089;&amp;#1077;&amp;#1088;&amp;#1077;&amp;#1076;&amp;#1080;&amp;#1085;&amp;#1077;.
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\setlength&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;\columnsep&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;}{2cm}&lt;/span&gt;     &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1088;&amp;#1072;&amp;#1089;&amp;#1089;&amp;#1090;&amp;#1086;&amp;#1103;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1084;&amp;#1077;&amp;#1078;&amp;#1076;&amp;#1091; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1072;&amp;#1084;&amp;#1080;.
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\setlength&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;\columnseprule&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;}{1pt}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1090;&amp;#1086;&amp;#1083;&amp;#1097;&amp;#1080;&amp;#1085;&amp;#1072; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1081; &amp;#1083;&amp;#1080;&amp;#1085;&amp;#1080;&amp;#1080;
&lt;/span&gt;                                &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1084;&amp;#1077;&amp;#1078;&amp;#1076;&amp;#1091; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1072;&amp;#1084;&amp;#1080;.
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\pagestyle&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{empty}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1073;&amp;#1077;&amp;#1079; &amp;#1085;&amp;#1091;&amp;#1084;&amp;#1077;&amp;#1088;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1080; &amp;#1089;&amp;#1090;&amp;#1088;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1094;
&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\definecolor&lt;/span&gt;{MYBlue}{rgb}{0.0470,0,0.5294}  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1079;&amp;#1072;&amp;#1076;&amp;#1072;&amp;#1105;&amp;#1084; &amp;#1089;&amp;#1074;&amp;#1086;&amp;#1081; &amp;#1094;&amp;#1074;&amp;#1077;&amp;#1090; (&amp;#1076;&amp;#1083;&amp;#1103; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1086;&amp;#1074;)
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1054;&amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1086;&amp;#1074;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\makeatletter&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\renewcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\@startsection&lt;/span&gt;
        {section}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                          % the name
&lt;/span&gt;        {1}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                                % the level
&lt;/span&gt;        {0mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the indent
&lt;/span&gt;        {-0.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\baselineskip&lt;/span&gt;}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                % the beforeskip
&lt;/span&gt;        {1mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the afterskip
&lt;/span&gt;        {&lt;span style=&quot;color: #00ffff;&quot;&gt;\LARGE&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\color&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{MYBlue}&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-weight: bold;&quot;&gt;\bfseries&lt;/span&gt;}}    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% the style
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\renewcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\subsection&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\@startsection&lt;/span&gt;
        {subsection}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                       % the name
&lt;/span&gt;        {2}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                                % the level
&lt;/span&gt;        {0mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the indent
&lt;/span&gt;        {-0.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\baselineskip&lt;/span&gt;}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                % the beforeskip
&lt;/span&gt;        {1mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the afterskip
&lt;/span&gt;        {&lt;span style=&quot;color: #00ffff;&quot;&gt;\Large&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\color&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{MYBlue}&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-weight: bold;&quot;&gt;\bfseries&lt;/span&gt;}}    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% the style
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\renewcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\subsubsection&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\@startsection&lt;/span&gt;
        {subsubsection}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                    % the name
&lt;/span&gt;        {3}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                                % the level
&lt;/span&gt;        {0mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the indent
&lt;/span&gt;        {-0.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\baselineskip&lt;/span&gt;}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                % the beforeskip
&lt;/span&gt;        {1mm}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%                              % the afterskip
&lt;/span&gt;        {&lt;span style=&quot;color: #00ffff;&quot;&gt;\Large&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\color&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{MYBlue}&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-weight: bold;&quot;&gt;\bfseries&lt;/span&gt;}}    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% the style
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\makeatother&lt;/span&gt;

&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1047;&amp;#1076;&amp;#1077;&amp;#1089;&amp;#1100; &amp;#1085;&amp;#1072;&amp;#1095;&amp;#1080;&amp;#1085;&amp;#1072;&amp;#1077;&amp;#1090;&amp;#1089;&amp;#1103; &amp;#1074;&amp;#1072;&amp;#1096; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1077;&amp;#1088; %%%%%%%%%%%%%%%
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1079;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1082;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;[c]{0.1&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{
   &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=0.1&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;]{logo_bic} &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1083;&amp;#1077;&amp;#1074;&amp;#1099;&amp;#1081; &amp;#1083;&amp;#1086;&amp;#1075;&amp;#1086;&amp;#1090;&amp;#1080;&amp;#1087;
&lt;/span&gt;}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\hfill&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;[c]{0.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
     &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1085;&amp;#1072;&amp;#1079;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1088;&amp;#1072;&amp;#1073;&amp;#1086;&amp;#1090;&amp;#1099;
&lt;/span&gt;     &lt;span style=&quot;color: #98fb98;&quot;&gt;\Huge&lt;/span&gt;
     &lt;span style=&quot;color: #98fb98;&quot;&gt;\sf&lt;/span&gt;
     High temperature structural rearrangements in perovskite revealed
     by &lt;span style=&quot;color: #00ffff;&quot;&gt;\textit&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-style: italic;&quot;&gt;{ex situ}&lt;/span&gt; measurements
   &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\hfill&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;[c]{0.1&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{
   &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=0.1&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;]{SSRC} &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1087;&amp;#1088;&amp;#1072;&amp;#1074;&amp;#1099;&amp;#1081; &amp;#1083;&amp;#1086;&amp;#1075;&amp;#1086;&amp;#1090;&amp;#1080;&amp;#1087;
&lt;/span&gt;}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1087;&amp;#1077;&amp;#1088;&amp;#1077;&amp;#1095;&amp;#1080;&amp;#1089;&amp;#1083;&amp;#1080;&amp;#1084; &amp;#1072;&amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1074;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;{0.26&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{
     &lt;span style=&quot;color: #98fb98;&quot;&gt;\small&lt;/span&gt;
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
       M.~G.~Ivanov&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
       Novosibirsk State University&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
       {&lt;span style=&quot;color: #00ffff;&quot;&gt;\tt&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt; mymail@ngs.ru&lt;/span&gt;}
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
  }
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;{0.26&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{
     &lt;span style=&quot;color: #98fb98;&quot;&gt;\small&lt;/span&gt;
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
       A.~N.~Shmakov&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
       Boreskov Institute of Catalysis, SB RAS, Novosibirsk&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
       {&lt;span style=&quot;color: #00ffff;&quot;&gt;\tt&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt; Hismail@inp.nsk.su&lt;/span&gt;}
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;
  }
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{center}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{1cm}&lt;/span&gt;

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1089;&amp;#1086;&amp;#1073;&amp;#1089;&amp;#1090;&amp;#1074;&amp;#1077;&amp;#1085;&amp;#1085;&amp;#1086;, &amp;#1087;&amp;#1086;&amp;#1088;&amp;#1072; &amp;#1091;&amp;#1078;&amp;#1077; &amp;#1080; &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090; &amp;#1085;&amp;#1072;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1072;&amp;#1090;&amp;#1100;!  &amp;#1058;&amp;#1086; &amp;#1077;&amp;#1089;&amp;#1090;&amp;#1100; &amp;#1089;&amp;#1082;&amp;#1086;&amp;#1087;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1100;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1086;&amp;#1090;&amp;#1082;&amp;#1091;&amp;#1076;&amp;#1072;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1080;&amp;#1079; &amp;#1074;&amp;#1072;&amp;#1096;&amp;#1080;&amp;#1093; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1076;&amp;#1099;&amp;#1076;&amp;#1091;&amp;#1097;&amp;#1080;&amp;#1093; &amp;#1090;&amp;#1077;&amp;#1082;&amp;#1089;&amp;#1090;&amp;#1086;&amp;#1074;.
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1090;&amp;#1088;&amp;#1080; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{multicols}&lt;/span&gt;{3}

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{Introduction}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{intro}&lt;/span&gt;

  Bla-bla-bla&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;\textit&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold; font-style: italic;&quot;&gt;{In situ}&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt; high-temperature X-Ray measurements}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{insitu}&lt;/span&gt;

  Again bla-bla-bla&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;[H]
    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1089;&amp;#1090;&amp;#1072;&amp;#1074;&amp;#1082;&amp;#1072; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1072;.  [H] &amp;#1086;&amp;#1073;&amp;#1103;&amp;#1079;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;!  &amp;#1050;&amp;#1072;&amp;#1082;&amp;#1086;&amp;#1074;&amp;#1072; &amp;#1092;&amp;#1091;&amp;#1085;&amp;#1076;&amp;#1072;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1072;&amp;#1103;
&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1073;&amp;#1083;&amp;#1077;&amp;#1084;&amp;#1072; &amp;#1101;&amp;#1090;&amp;#1086;&amp;#1075;&amp;#1086; - &amp;#1085;&amp;#1077; &amp;#1079;&amp;#1085;&amp;#1072;&amp;#1102;.
&lt;/span&gt;    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\columnwidth&lt;/span&gt;]{nb02_lattice_vacuum_up_down_reduced}
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\caption&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Lattice parameter of the sample while heating in
       vacuum.}&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{lattice_up_down}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;\textit&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold; font-style: italic;&quot;&gt;{Ex situ}&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt; measurements using SR}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{exsitu}&lt;/span&gt;

  Some more information

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 121%; font-weight: bold;&quot;&gt;{Conclusion}&lt;/span&gt;

  It is time to make a conclusion.

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{multicols}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;
&lt;/pre&gt;

&lt;h4&gt;Сложности в этом случае&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Первая сложность заключается в том, что трудновато подобрать
необходимый объём информации, чтобы постер был заполнен достаточно,
дабы не было свободных мест в большом количестве, но и чтобы всё
поместилось.  В этом плане WYSIWYG, конечно, выигрывает.  В любом
случае, свободные места будут снизу, так что постер может оказаться
чуть меньшего размера.  Более того, можно увеличить зазор между
разделами, например, для более равномерного распределения
пространства.  Это не такая уж и проблема.&lt;/p&gt;

&lt;p&gt;Во-вторых, есть небольшие проблемы с расположением рисунков.  Именно,
небольшие, если вспомнить чудовищные трудности с ровным
позиционированием рисунков в каком-нибудь визуальном редакторе.
Проблема в том, что надо использовать опцию [H] в окружении figure,
иначе рисунок не будет включён.  А эта опция означает, что рисунок
будет включён ровно туда, куда вы укажете, что не всегда идеально,
если вспомнить прекрасную особенность латеха удачно расставлять
плавающие объекты.  Так что, не исключено, что с идеальным
расположением рисунков придётся немного поиграться, но через
пару-тройку перекомпиляций, вы будете довольны результатом, полагаю.&lt;/p&gt;



&lt;h3&gt;Beamerposter&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Есть возможность использовать окружения из пакета beamer.  Допустим,
презентации в latex-beamer
&lt;a href=&quot;http://tuxray.blogspot.com/2009/04/presentations-in-latex-beamer.html&quot;&gt;мы делать умеем&lt;/a&gt;.
Так вот, пакет
&lt;a href=&quot;http://www-i6.informatik.rwth-aachen.de/~dreuw/latexbeamerposter.php&quot;&gt;beamerposter&lt;/a&gt;
предоставляет возможность создать постер с использованием стандартных
окружений beamer.  По сути, будет постер, составленный из различных
блоков (block, exampleblock, alertblock).  Соответственно, всё это
будет уже по-разному оформлено в различных цветах.  Надо сказать, что
beamerposter является всего лишь надстройкой над a0poster, так что
теоретически-то всё можно сделать и без него, но с ним оказалось удобнее.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www-i6.informatik.rwth-aachen.de/~dreuw/latexbeamerposter.php&quot;&gt;На сайте с пакетом&lt;/a&gt;
есть различные темы оформления.  Дело в том, что обычные темы для
beamer годятся лишь частично - в них не хватает оформления для
большого заголовка с названием, авторами, логотипами.  Я, например,
скачал тему I6dv и подправил для своих нужд - об этом чуть ниже, а
пока выложу набросок исходника.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Чтобы воспользоваться этим пакетом и темой, просто бросьте в
директорию с вашим постером файлы стиля и темы, если не хотите
заморачиваться.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\documentclass&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[final]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamer}&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\mode&lt;/span&gt;&amp;lt;presentation&amp;gt;
{
   &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usetheme&lt;/span&gt;{I6dv} &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1090;&amp;#1077;&amp;#1084;&amp;#1072;
&lt;/span&gt;}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{times}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{amsmath,amssymb}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[utf8]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{inputenc}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[english]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{babel}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[orientation=portrait,size=a0,scale=1.1]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamerposter}&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1086;&amp;#1088;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103; &amp;#1084;&amp;#1086;&amp;#1078;&amp;#1077;&amp;#1090; &amp;#1073;&amp;#1099;&amp;#1090;&amp;#1100; landscape.
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1084;&amp;#1077;&amp;#1088; - &amp;#1076;&amp;#1088;&amp;#1091;&amp;#1075;&amp;#1086;&amp;#1081;, &amp;#1082;&amp;#1072;&amp;#1082;&amp;#1086;&amp;#1081; &amp;#1079;&amp;#1072;&amp;#1093;&amp;#1086;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1077;, &amp;#1085;&amp;#1072;&amp;#1087;&amp;#1088;&amp;#1080;&amp;#1084;&amp;#1077;&amp;#1088;, a1,
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1080;&amp;#1083;&amp;#1080; &amp;#1082;&amp;#1072;&amp;#1082;&amp;#1086;&amp;#1081;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1089;&amp;#1074;&amp;#1086;&amp;#1081;, size=custom,width=200,height=120
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;scale - &amp;#1084;&amp;#1085;&amp;#1086;&amp;#1078;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100; &amp;#1085;&amp;#1072; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1084;&amp;#1077;&amp;#1088; &amp;#1096;&amp;#1088;&amp;#1080;&amp;#1092;&amp;#1090;&amp;#1072;.  &amp;#1054;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1091;&amp;#1076;&amp;#1086;&amp;#1073;&amp;#1085;&amp;#1086; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1075;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1089;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1080;&amp;#1084;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1077;&amp;#1088;&amp;#1072; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1080;&amp;#1076;&amp;#1077;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1079;&amp;#1072;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1088;&amp;#1072;&amp;#1085;&amp;#1089;&amp;#1090;&amp;#1074;&amp;#1072;!
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{multicol}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074; &amp;#1085;&amp;#1077;&amp;#1089;&amp;#1082;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1082;&amp;#1086; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1086;&amp;#1082;
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1085;&amp;#1091;&amp;#1084;&amp;#1077;&amp;#1088;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1086;&amp;#1074; &amp;#1074; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1079;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\setbeamertemplate&lt;/span&gt;{caption}[numbered]

&lt;span style=&quot;color: #00ffff;&quot;&gt;\newcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\celcius&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{\,^{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\circ&lt;/span&gt;}&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\mathrm&lt;/span&gt;{C}}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\graphicspath&lt;/span&gt;{{pics/}}
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\listfiles&lt;/span&gt;

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;Display a grid to help align images
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;\beamertemplategridbackground&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;[1cm]
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\title&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\Huge&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt; Phase splitting with temperature in perovskite-type
   strontium cobaltite &lt;/span&gt;&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;doped with Fe and Nb&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\author&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Maxim G. Ivanov&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\inst&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{1}, Alexander N. Shmakov&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\inst&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{1,2},
   Sergey V. Tsybulya&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\inst&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{1,2}, Olga Yu. Podyacheva&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;\inst&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{1}}&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\institute&lt;/span&gt;[] &lt;span style=&quot;color: #ff7f24;&quot;&gt;% (optional, but mostly needed)
&lt;/span&gt;{
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\inst&lt;/span&gt;{1}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%
&lt;/span&gt;  Boreskov Institute of Catalysis SB RAS, Russia
  &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\inst&lt;/span&gt;{2}&lt;span style=&quot;color: #ff7f24;&quot;&gt;%
&lt;/span&gt;  Novosibirsk State University, Russia
}

&lt;span style=&quot;color: #00ffff;&quot;&gt;\date&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[May. 27-30th, 2009]&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{May. 27-30th, 2009}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;{}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{-1cm}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;[t]  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1074;&amp;#1099;&amp;#1088;&amp;#1072;&amp;#1074;&amp;#1085;&amp;#1080;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1086;&amp;#1082; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1077;&amp;#1088;&amp;#1072; &amp;#1087;&amp;#1086; &amp;#1074;&amp;#1077;&amp;#1088;&amp;#1093;&amp;#1091;
&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{column}&lt;/span&gt;{.39&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\linewidth&lt;/span&gt;}  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1079;&amp;#1072;&amp;#1076;&amp;#1072;&amp;#1105;&amp;#1084; &amp;#1096;&amp;#1080;&amp;#1088;&amp;#1080;&amp;#1085;&amp;#1091; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1086;&amp;#1081; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080;
&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{Introduction}
      Here is your introduction.
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;

    &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{2.5cm}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1053;&amp;#1077;&amp;#1073;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1096;&amp;#1086;&amp;#1081; &amp;#1079;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1088; (&amp;#1087;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1084; &amp;#1089; &amp;#1085;&amp;#1080;&amp;#1084; &amp;#1087;&amp;#1086;&amp;#1080;&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1077;&amp;#1084; &amp;#1085;&amp;#1072; &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1095;&amp;#1085;&amp;#1086;&amp;#1084; &amp;#1101;&amp;#1090;&amp;#1072;&amp;#1087;&amp;#1077;)
&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{Experimental}
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{Samples preparation}
        The samples were prepared by&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;

      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{The structural analysis}
        X-ray powder diffraction (XRPD) was performed at the&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;

      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{Oxygen conductivity performance}
        The oxygen conductivity experiments were carried out by&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;

      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;
        &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1073;&amp;#1100;&amp;#1105;&amp;#1084; &amp;#1076;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1091;&amp;#1102; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1091; &amp;#1085;&amp;#1072; &amp;#1076;&amp;#1074;&amp;#1072; &amp;#1089;&amp;#1090;&amp;#1086;&amp;#1083;&amp;#1073;&amp;#1094;&amp;#1072; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1086;&amp;#1074;
&lt;/span&gt;        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.35&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;[h]
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\centering&lt;/span&gt;
          &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\columnwidth&lt;/span&gt;]{membrane-reactor-en}
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\caption&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Scheme of the membrane reactor}&lt;/span&gt;
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{fig:membrane}&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;

        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.65&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;[h]
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\centering&lt;/span&gt;
          &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\columnwidth&lt;/span&gt;]{all_plot_in_one_1_2_3}
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\caption&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Characteristic data obtained
             at the set up}&lt;/span&gt;
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{fig:oxygen-conductivity}&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;

    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; Experimental
&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{Acknowledgments}
      Many thanks to&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{column}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1086;&amp;#1081; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080;
&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{column}&lt;/span&gt;{.59&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\linewidth&lt;/span&gt;}
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{Results and Discussion}
      Although the samples involved were considered to have&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;

      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;[h]
        &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1089;&amp;#1090;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1084; &amp;#1076;&amp;#1074;&amp;#1072; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1072; &amp;#1088;&amp;#1103;&amp;#1076;&amp;#1086;&amp;#1084; &amp;#1076;&amp;#1088;&amp;#1091;&amp;#1075;&amp;#1080;&amp;#1084; &amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1084;
&lt;/span&gt;        &lt;span style=&quot;color: #00ffff;&quot;&gt;\centering&lt;/span&gt;
        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=0.49&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;]{diffraction_profile}&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\hfill&lt;/span&gt;
        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=0.49&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;]{lattice-nb02-mm4}&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;{0.49&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{&lt;span style=&quot;color: #00ffff;&quot;&gt;\caption&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Diffraction profile of 110 peak}&lt;/span&gt;
           &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{fig:diff-profile}&lt;/span&gt;}
        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\parbox&lt;/span&gt;{0.49&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}{&lt;span style=&quot;color: #00ffff;&quot;&gt;\caption&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{Lattice parameters of the two
           phases}&lt;/span&gt;
           &lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{fig:lattice-parameters-2phases}&lt;/span&gt;}
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{figure}&lt;/span&gt;
      Fig.~&lt;span style=&quot;color: #00ffff;&quot;&gt;\ref&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{fig:lattice-parameters-2phases}&lt;/span&gt; shows&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;

      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;[t]  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1073;&amp;#1100;&amp;#1105;&amp;#1084; &amp;#1085;&amp;#1072; &amp;#1076;&amp;#1074;&amp;#1072; &amp;#1089;&amp;#1090;&amp;#1086;&amp;#1083;&amp;#1073;&amp;#1094;&amp;#1072;.
&lt;/span&gt;                          &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1074;&amp;#1099;&amp;#1088;&amp;#1072;&amp;#1074;&amp;#1085;&amp;#1080;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1089;&amp;#1090;&amp;#1086;&amp;#1083;&amp;#1073;&amp;#1094;&amp;#1086;&amp;#1074; &amp;#1087;&amp;#1086; &amp;#1074;&amp;#1077;&amp;#1088;&amp;#1093;&amp;#1085;&amp;#1077;&amp;#1081; &amp;#1090;&amp;#1086;&amp;#1095;&amp;#1082;&amp;#1077;,
&lt;/span&gt;                          &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099; &amp;#1085;&amp;#1077; &amp;#1073;&amp;#1099;&amp;#1083; &amp;#1086;&amp;#1076;&amp;#1080;&amp;#1085; &amp;#1074;&amp;#1099;&amp;#1096;&amp;#1077; &amp;#1076;&amp;#1088;&amp;#1091;&amp;#1075;&amp;#1086;&amp;#1075;&amp;#1086;.
&lt;/span&gt;        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.48&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{Phases proportion}
           If one considers the process of structural transformation
           to have&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;

        &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.48&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{Oxygen conductivity}
          The thermal dependence of oxygen conductivity through the
          membrane could be written as follows:&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\ldots&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &amp;#1083;&amp;#1086;&amp;#1082;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1073;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1080;&amp;#1103;
&lt;/span&gt;
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{The similarity in activation energy values
           and the connection between oxygen conductivity and the
           second phase}
        The &lt;span style=&quot;color: #deb887;&quot;&gt;$E_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{activation}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;$&lt;/span&gt; values determined from these two methods
        turned out to be rather similar.
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt; &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &amp;#1073;&amp;#1083;&amp;#1086;&amp;#1082;&amp;#1072; &quot;Results and Discussion&quot;
&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{Conclusion}
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{itemize}&lt;/span&gt;
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt; The first conclusion.
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt; The second conclusion.
          &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt; The third conclusion.
      &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{itemize}&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &quot;Conclusion&quot;
&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{column}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1081; &amp;#1073;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1096;&amp;#1086;&amp;#1081; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1077;&amp;#1088;&amp;#1072;
&lt;/span&gt;
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1077;&amp;#1094; &amp;#1088;&amp;#1072;&amp;#1079;&amp;#1073;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1085;&amp;#1072; &amp;#1082;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080;
&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\vfill&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;

&lt;/pre&gt;

&lt;p&gt;Видно, что используется практически всё, как в обычной презентации
beamer.&lt;/p&gt;

&lt;p&gt;Теперь, вернёмся к темам.  Открыв тему, скачанную с
&lt;a href=&quot;http://www-i6.informatik.rwth-aachen.de/~dreuw/latexbeamerposter.php&quot;&gt;официального сайта&lt;/a&gt;,
мы обнаружим, что там есть строчки, пытающиеся включить какой-нибудь
логотип, естественно, не имеющий к вам отношения.  Например, что-то типа:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\linewidth&lt;/span&gt;]{logos/i6-hks44}
&lt;/pre&gt;
Найти это просто можно, выполнив поиск по «logo» (где-то в разделе
\setbeamertemplate{headline}).
Здесь просто надо поменять «logos/i6-hks44» на имя файла вашего
логотипа и указать желаемую ширину.

&lt;p&gt;В разделе \setbeamertemplate{footline} вы можете поменять подстрочную
надпись.  Например, я просто оставил свои координаты:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\setbeamertemplate&lt;/span&gt;{footline}{
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;[wd=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\paperwidth&lt;/span&gt;]{upper separation line foot}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rule&lt;/span&gt;{0pt}{2pt}
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;[ht=4ex,leftskip=1cm,rightskip=1cm]{footline}
    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1079;&amp;#1076;&amp;#1077;&amp;#1089;&amp;#1100; &amp;#1084;&amp;#1086;&amp;#1078;&amp;#1085;&amp;#1086; &amp;#1095;&amp;#1090;&amp;#1086;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1085;&amp;#1072;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1087;&amp;#1088;&amp;#1086; &amp;#1089;&amp;#1077;&amp;#1073;&amp;#1103; &amp;#1080;&amp;#1083;&amp;#1080; &amp;#1080;&amp;#1085;&amp;#1089;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1091;&amp;#1090;
&lt;/span&gt;    Boreskov Institute of Catalysis - Structural methods department -
    Novosibirsk, Russia &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\hfill&lt;/span&gt; Mail: &lt;span style=&quot;color: #00ffff;&quot;&gt;\texttt&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{russia@nauki.net}&lt;/span&gt;
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\vskip&lt;/span&gt;1ex
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;[wd=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\paperwidth&lt;/span&gt;]{lower separation line foot}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\rule&lt;/span&gt;{0pt}{2pt}
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;
}
&lt;/pre&gt;

&lt;h4&gt;Проблемы с beamerposter&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Нет в мире совершенства…&lt;/p&gt;

&lt;p&gt;Так, например, я не понял, &lt;strong&gt;как настроить переносы слов&lt;/strong&gt;.  Простое
подключение babel не помогает.  Если в презентации переносы ни к чему,
то на постере бы совсем не помешали.  Вопрос пока открыт.&lt;/p&gt;

&lt;p&gt;Проблема в a0poster вообще: не ясно &lt;strong&gt;как можно написать постер на
русском.&lt;/strong&gt;  Трудность в том, что при подключении
\usepackage[T2A]{fontenc} сбиваются размеры шрифтов - в заголовках
вместо больших букв используются буквы стандартного размера.  Но
просто a0poster это хотя бы так проглатывает, а beamerposter вообще
отказывается собираться.  Впрочем, проект beamerposter развивается, и,
возможно, скоро всё заработает.  А вы пока делайте постеры для
зарубежных конференций :)&lt;/p&gt;


&lt;h4&gt;Печать&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Была неожиданная трудность с печатью в издательском отделе.  Почему-то
корректно открытый файл pdf в акробате начал печататься кракозябрами.
Даже не знаю, с чем это было связано, ведь раньше при использовании
чистого a0poster проблем не возникало.  Быть может, что-то в отделе не
то с принтером, а может быть и такой вариант.  Раньше я постер прогонял
через latex, dvips, ps2pdf, но в случае с beamerposter я запустил
pdflatex.  Могло ли это повлиять?&lt;/p&gt;

&lt;p&gt;Чтобы заведомо проблем не было, можно просто сконвертировать в
картинку:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
convert -density 300 -page A0 -compress lzw poster.pdf poster.tiff
&lt;/pre&gt;
Желательно сразу в несколько форматов:

&lt;pre class=&quot;src&quot;&gt;
convert -density 300 -page A0 poster.pdf poster.png
&lt;/pre&gt;
Теперь уж точно проблем возникнуть не должно.

&lt;p&gt;Если большого плоттера у вас нет, то можно распечатать постер на
множестве маленьких листов.  Для этого служит программа
&lt;a href=&quot;ftp://ftp.es.ele.tue.nl/pub/users/jos/poster/&quot;&gt;poster&lt;/a&gt;.
&lt;a href=&quot;http://nxg.me.uk/docs/posters/#printing&quot;&gt;Здесь&lt;/a&gt; говорится, что для
того, чтобы разбить постер A1 на восемь листов A4 надо дать
следующую команду:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
poster -iA1 -mA4 -pA1 poster.ps
&lt;/pre&gt;
&lt;p&gt;В любом случае, лучше прочитать мануал - он поставляется с этой
программой.&lt;/p&gt;


&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Итак, мы рассмотрели два варианта создания постера в LaTeX - с
использованием чистого a0poster и с надстройкой beamerposter.
Преимущества первого в большей гибкости, но второй несколько проще и
даёт сразу хороший результат.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/05/latex.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkHqr5M8Q4-npweHHwpQAaCiwurHXctT8tgyN97LGE-avZt49t5J1uo14iKelEMHotGSQ1QuDcGeA7_ckHF9Ykevt3LJUEUskYiMq8jGVThFVjY3IPpFdrDD-QGyo3gHkaDE4s4ESlZLs/s72-c/posters.jpg" height="72" width="72"/><thr:total>12</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-2063407197976285011</guid><pubDate>Sun, 24 May 2009 16:01:00 +0000</pubDate><atom:updated>2009-09-08T01:43:09.649+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">desktop</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>Изменение оформления gtk-приложений</title><description>&lt;script type=&quot;text/javascript&quot; src=&quot;http://tex.yourequations.com/&quot;&gt;&lt;/script&gt;

&lt;p&gt;Пользователи среды GNOME могут легко изменить используемую тему
оформления, для этого надо просто залезть в графический настройщик
внешнего вида и выбрать нужную тему или добавить новую.  Но что если
вы используете оконный менеджер (WM) вместо DE, который просто по
определению не предоставляет такой функционал?  В таком случае всегда
есть возможность ручной правки конфигов для gtk-приложений.  Также
присутствуют графические программы, дающие возможность менять тему
оформления.&lt;/p&gt;
&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Правка конфигурационного файла&lt;/h3&gt;

&lt;h4&gt;Выбор темы&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Конфигурационный файл, который необходимо подправить для изменения
темы оформления, имеет имя &lt;code&gt;~/.gtkrc-2.0&lt;/code&gt;.  В моём случае этот файл
имеет следующий вид (создан с применением прекрасной программы
&lt;a href=&quot;http://wiki.lxde.org/en/LXAppearance&quot;&gt;lxappearance&lt;/a&gt; из проекта &lt;a href=&quot;http://lxde.org/&quot;&gt;LXDE&lt;/a&gt;, хотя можно это и самому написать -
результат будет тем же):&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
gtk-theme-name=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Industrial&quot;&lt;/span&gt;
gtk-icon-theme-name=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;gnome-brave&quot;&lt;/span&gt;
gtk-font-name=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;DejaVu Sans 10&quot;&lt;/span&gt;
gtk-toolbar-style=0
include &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;/home/maxim/.gtkrc-2.0.mine&quot;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Итак, что же это означает?  Первая строка говорит, что надо
использовать тему оформления Industrial, а вторая - что должны
использоваться иконки gnome-brave.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Темы оформления лежат в директориях &lt;code&gt;/usr/share/themes/&lt;/code&gt;, а иконки
&lt;code&gt;/usr/share/icons/&lt;/code&gt;.  Свои темы и иконки принято кидать в &lt;code&gt;~/.themes&lt;/code&gt; и
&lt;code&gt;~/.icons&lt;/code&gt; соответственно.  Именно там будут искаться, хотя можно
использовать и абсолютный путь до директории с темой.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;В третьей строке задаётся используемый шрифт и размер шрифта.&lt;/p&gt;

&lt;p&gt;&amp;quot;gtk-toolbar-style=0&amp;quot; означает, что будут отображаться только кнопки,
без подписей к ним.  Значение 1 даст только подписи без значков, 2 -
подписи и значки.&lt;/p&gt;

&lt;p&gt;Последняя строчка означает, что также будет считываться содержимое
файла &lt;code&gt;&amp;quot;/home/maxim/.gtkrc-2.0.mine&amp;quot;&lt;/code&gt;.  Для чего это надо?  Например,
есть графические программы, позволяющие настраивать вид
gtk-приложений, при этом переписывая всё, что было до этого, кроме
строк, содержащих &lt;code&gt;include&lt;/code&gt;.  Именно в файле
&lt;code&gt;&amp;quot;/home/maxim/.gtkrc-2.0.mine&amp;quot;&lt;/code&gt; у меня лежат персональные настройки,
которые нельзя сделать с помощью простых графических утилит.&lt;/p&gt;


&lt;h4&gt;Дополнительные настройки&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В файле &lt;code&gt;/home/maxim/.gtkrc-2.0.mine&lt;/code&gt; я добавил следующие настройки.
&lt;h5&gt;Клавиатурные сокращения как в Emacs&lt;/h5&gt;&lt;/p&gt;

&lt;p&gt;Чтобы в gtk-приложениях работали клавиатурные сокращения для
перемещения курсора и удаления текста, аналогичные емаксовским,
необходимо добавить строку:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
gtk-key-theme-name = &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Emacs&quot;&lt;/span&gt;
&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Пользователям GNOME этого может оказаться недостаточно, возможно
придётся копаться в gconf.  Об этом и вообще о емаксовских сокращениях
в gtk можно почитать в &lt;a href=&quot;http://konishchevdmitry.blogspot.com/2008/08/ctrlh-emacs-bash-gtk.html&quot;&gt;этом сообщении&lt;/a&gt;.&lt;/p&gt;

&lt;/blockquote&gt;


&lt;h5&gt;Изменение размера иконок на элементах управления&lt;/h5&gt;

&lt;p&gt;Многим кажется неудобным, что в gtk-приложениях используются по
умолчанию весьма большие иконки на кнопках типа
открыть/закрыть/сохранить и т.д.  Это легко исправить, внеся следующие
настройки:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
gtk-icon-sizes = &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;panel-menu=32,32:panel=32,32:gtk-menu=16,16\
:gtk-large-toolbar=24,24:gtk-small-toolbar=16,16:gtk-button=24,24&quot;&lt;/span&gt;
&lt;/pre&gt;
Размеры, разумеется, можно подогнать по своему желанию.




&lt;h3&gt;Графические утилиты&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Несомненное преимущество графических утилит состоит в том, что можно
видеть какую тему вы выбираете не методом проб и ошибок, а, так
сказать, &lt;em&gt;in situ&lt;/em&gt;, то есть, прямо здесь и сейчас, с предпросмотром.&lt;/p&gt;

&lt;p&gt;Как я уже отметил выше, мой конфигурационный файл, содержащий тему,
был создан с помощью программы
&lt;a href=&quot;http://wiki.lxde.org/en/LXAppearance&quot;&gt;LXAppearance&lt;/a&gt;.  Она позволяет
как выбрать тему, так и шрифт, иконки, и настроить способ отображения
элементов управления.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1FvGkwCKbf1Q70DOrbe_HLwlxdK263fG1DTsQ_yFa2tTLWABCdZPmshA68Ws1DY77UPUlVQipheSKJJ2notGfkJzjEaYoVTbHHSNymOwtfO_-BVNk1ILv1RHKYKlsTAiXSDQxCA_Uwos/s1600-h/lxappearance.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 225px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1FvGkwCKbf1Q70DOrbe_HLwlxdK263fG1DTsQ_yFa2tTLWABCdZPmshA68Ws1DY77UPUlVQipheSKJJ2notGfkJzjEaYoVTbHHSNymOwtfO_-BVNk1ILv1RHKYKlsTAiXSDQxCA_Uwos/s320/lxappearance.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5339421620992124450&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Когда я в последний раз видел программу
&lt;a href=&quot;http://plasmasturm.org/code/gtk-chtheme/&quot;&gt;gtk-chtheme&lt;/a&gt; она
позволяла лишь производить выбор тем и шрифта с предпросмотром, не
более того.  Но уж это она делает прекрасно.&lt;/p&gt;

&lt;p&gt;Быть может, есть и другие легковесные программы, не привязанные к
каким-лобо DE, для подобного рода действий, но и этого вполне
достаточно.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/05/gtk.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1FvGkwCKbf1Q70DOrbe_HLwlxdK263fG1DTsQ_yFa2tTLWABCdZPmshA68Ws1DY77UPUlVQipheSKJJ2notGfkJzjEaYoVTbHHSNymOwtfO_-BVNk1ILv1RHKYKlsTAiXSDQxCA_Uwos/s72-c/lxappearance.png" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-7184674701551684561</guid><pubDate>Fri, 22 May 2009 09:44:00 +0000</pubDate><atom:updated>2009-09-08T01:50:52.442+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">media</category><title>MPlayer и xscreensaver</title><description>&lt;script type=&quot;text/javascript&quot; src=&quot;http://tex.yourequations.com/&quot;&gt;&lt;/script&gt;
&lt;h3&gt;Проблема 1&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Для проигрывания видео на компьютере я использую mplayer в качестве
плеера.  Лёгкий и удобный, а больше ничего и не надо.  Всё бы ничего,
но была проблема со скринсейвером.  Если просто при дефолтных
настройках запустить фильм, то через определённое время включится
хранитель экрана.  Очевидно должно быть решение, конечно не дело
каждые 10 минут двигать мышкой.  Раньше (версию mplayer уже не скажу)
всё относительно успешно решалось опцией -stop-xscreensaver.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
mplayer -stop-xscreensaver movie.avi
&lt;/pre&gt;
Или, чтобы каждый раз не печатать эту опцию, можно прописать в конфиге
&lt;code&gt;~/.mplayer/config&lt;/code&gt;:

&lt;pre class=&quot;listing&quot;&gt;
stop-xscreensaver=1
&lt;/pre&gt;
После этого действительно заставка не включалась во время
&lt;em&gt;воспроизведения&lt;/em&gt; фильма.  Если же воспроизведение &lt;em&gt;приостанавливалось&lt;/em&gt; на
некоторое время, то включалась заставка во время паузы.  После того,
как воспроизведение запускалось вновь, скринсейвер вновь начинал
маячить перед глазами с уже до боли знакомой периодичностью.  Меня это в своё
время начало капитально бесить - ещё бы плеер и скринсейвер уже просто
«динозавры», а так и не научились жить вместе.  Кстати, в последнее
время stop-xscreensaver=1 перестал работать.  &lt;a href=&quot;http://www.gentoo.ru/node/13278&quot;&gt;Здесь&lt;/a&gt; есть решение, но
оно неидеальное - тормоза страшные, как говорят разработчики mplayer
из-за багов xscreensaver.


&lt;h3&gt;Решение проблемы 1&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Я подумал, а так ли мне нужен скринсейвер?  Вообще-то, всё, что мне от
него требовалось - это чтобы экран через определённое время гасился,
не более того.  А в Linux за это отвечает &lt;a href=&quot;http://wiki.archlinux.org/index.php/DPMS_(Русский)&quot;&gt;DPMS&lt;/a&gt; (технология,
позволяющая управлять питанием монитора, когда компьютер не
используется).  Стало быть, настроив DPMS, можно избавиться от
скринсейвера.  Более того, как оказалось тогда, mplayer прекрасно
взаимодействует с DPMS, а именно, во время воспроизведения не
включается независимо от предыстории, в отличие от xscreensaver.
Собственно, то, что надо.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h4&gt;Настраиваем DPMS&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В Debian Lenny настраивать DPMS следует правкой файла xorg.conf
следующим образом.
В раздел &amp;quot;Monitor&amp;quot; добавим строку &lt;code&gt;Option &amp;quot;DPMS&amp;quot; &amp;quot;true&amp;quot;&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
Section &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Monitor&quot;&lt;/span&gt;
        Identifier      &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;Configured Monitor&quot;&lt;/span&gt;
        DisplaySize 339 271
        Option  &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;DPMS&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;true&quot;&lt;/span&gt;  &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1090;&amp;#1086;, &amp;#1095;&amp;#1090;&amp;#1086; &amp;#1076;&amp;#1086;&amp;#1073;&amp;#1072;&amp;#1074;&amp;#1080;&amp;#1083;&amp;#1080;
&lt;/span&gt;EndSection
&lt;/pre&gt;
А затем, если нет, создадим раздел &amp;quot;ServerFlags&amp;quot; со следующим
содержанием:

&lt;pre class=&quot;listing&quot;&gt;
Section &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;ServerFlags&quot;&lt;/span&gt;
        Option &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;StandbyTime&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;5&quot;&lt;/span&gt;
        Option &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;SuspendTime&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;20&quot;&lt;/span&gt;
        Option &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;OffTime&quot;&lt;/span&gt; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;30&quot;&lt;/span&gt;
EndSection
&lt;/pre&gt;
Значения для режима ожидания, спящего режима и отключения,
соответственно, указываются в минутах.
Во многих руководствах говорится о том, что последние строки надо
добавлять в раздел &amp;quot;ServerLayout&amp;quot;, однако у меня после такого
добавления не стартовали иксы.  Может, версия xorg (1:7.3+18), а может
именно Debian имеют отличную настройку.  В любом случае, &lt;code&gt;man Xorg&lt;/code&gt; об
этом говорит.

&lt;p&gt;Итак, в результате, кино играет, экран не гаснет именно во время
воспроизведения.  Как всё здорово... было до недавних пор.  По всей
вероятности, mplayer обновился, принеся ещё одну проблему.&lt;/p&gt;



&lt;h3&gt;Проблема 2 и её решение&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;После обновления mplayer (как мне кажется) стал тухнуть экран во время
воспроизведения.  Немного погуглив и обнаружив, что в современном мире
люди бьются с проблемами xscreensaver использованием опции
heartbeat-cmd=&amp;quot;xscreensaver-command -deactivate&amp;quot;, я протестировал
следующую команду:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
mplayer -heartbeat-cmd=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;xset dpms force on&quot;&lt;/span&gt; movie.avi
&lt;/pre&gt;
В результате получил то, что надо - экран не гаснет во время
воспроизведения, а когда воспроизведение останавливается на длительное
время - гаснет вновь.  После выключения фильма система DPMS продолжает
работать.

&lt;p&gt;Для полного счастья осталось прописать в конфиге ~/.mplayer/config
искомую строку:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
heartbeat-cmd=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;xset dpms force on&quot;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Вот и всё, теперь во время просмотра фильма вы будете видеть фильм, а
не чёрный экран и не прыгающие квадратики.  Интересно, надолго ли…  Не
взбредёт ли в голову разрабам опять что-то поменять? :)&lt;/p&gt;

&lt;h4&gt;Если вы всё-таки жить не можете без скринсейвера&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Если скринсейвер нужен, то, быть может сработает опция
heartbeat-cmd=&amp;quot;xscreensaver-command -deactivate &amp;amp;&amp;quot;.  Знак амперсанда в
конце строки обязателен, иначе будут тормоза, по крайней мере, где-то
высказывались так на просторах инета.  Без амперсанда тормоза
действительно есть, но этот вот рецепт сам не пробовал.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/05/mplayer-xscreensaver.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-4496146485810307620</guid><pubDate>Wed, 06 May 2009 16:34:00 +0000</pubDate><atom:updated>2009-09-08T02:01:07.586+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">useful tools</category><title>Синхронизация файлов с использованием Unison-gtk</title><description>&lt;h3&gt;Для чего нужна синхронизация?&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;У меня есть компьютер на работе, дома, а также есть ноутбук, который
тоже порой необходим.  Хорошо, если работать надо только находясь на
работе, в рабочее время.  Но зачастую это не так.  Как быть, если вы
исправили на работе кучу файлов и хотите с ними продолжить возиться
ещё и дома?  Каким образом перенести их домой с наименьшими затратами?
Можно, конечно, скопировать их на сменный носитель отдельно, но если
их много и разбросанных по разным директориям, то этот вариант едва ли
осуществим, ведь порой копировать весь большой каталог, в котором
заведомо лежат все изменённые файлы, весьма напряжно (с этим ещё можно
смириться в крайнем случае).  Более того, есть риск удалить с флешки
что-либо, что вы могли не перенести на рабочий компьютер (а вот с этим
гораздо сложнее!).  На помощь приходит синхронизация файлов. Проведя
синхронизацию двух директорий, вы получите заведомо одинаковые файлы в
обеих директориях.  Старые заменятся на новые, те, которые вы удалили,
будут удалены и в новой директории.  Таким образом, вы избавитесь от
необходимости вручную отслеживать что и где вы поменяли, чтобы потом
безболезненно перенести результаты своей работы домой.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;


&lt;h3&gt;Unison - программа для синхронизации файлов и директорий&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;В Linux существует не одна программа для синхронизации файлов, все
имеют свои преимущества и недостатки.  Здесь я буду рассматривать
простейшую ситуацию синхронизации файлов между рабочей машиной и
флешкой, то есть вопросы преимущества таких программ, как rsync, я не
рассматриваю.  В данном случае желательно иметь простейшую программу,
желательно с графическим интерфейсом, которая делает ровно то, что от
неё требуется буквально парой кликов.&lt;/p&gt;

&lt;p&gt;Для пользователей KDE, вероятно подойдёт возможность синхронизации в
файловом менеджере &lt;a href=&quot;www.krusader.org&quot;&gt;krusader&lt;/a&gt;.  О такой
возможности можно почитать на
&lt;a href=&quot;http://www.krusader.org/handbook/synchronizer.html&quot;&gt;официальном сайте&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;А для тех, у кого KDE нет я могу посоветовать
&lt;a href=&quot;http://www.cis.upenn.edu/~bcpierce/unison/&quot;&gt;Unison&lt;/a&gt;.  Выдержки с
официальной страницы:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Программа работает как на машинах с Unix-подобными операционными
системами, так и с Windows, более того позволяет работать между
платформами, производя синхронизацию между машинами с разными осями.&lt;/li&gt;
&lt;li&gt;В отличие от простого зеркалирования Unison может работать с
обновлениями на обоих, так сказать, «концах».  Возможные конфликты
будут подсвечены.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Допустим, на рабочем компьютере есть директория Dir, в которой
содержатся файлы b, c, d.  А на флешке директория Dir_flash
содержит файлы b, c, e.  Отличие заключается в том, что в Dir есть
d, но нет e, а в Dir_flash есть e, но нет d.  После синхронизации
обе директории будут иметь b, c, d, e, что и требовалось.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Unison работает между любой парой компьютеров, подключённых к
интернету.  Трансферы малых обновлений больших файлов
оптимизированы благодаря использованию сжатого протокола,
аналогичного rsync.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Судя по всему, то, что надо.  Более того, программа имеет графический
интерфейс gtk, что даёт возможность совсем не напрягаться с настройкой
и работой.&lt;/p&gt;

&lt;h4&gt;Установка Unison в Debian&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В Debian имеется две версии программы: с графическим интерфейсом
(unison-gtk) и без него (unison).  Установим Unison с GUI:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
sudo aptitude install unison-gtk
&lt;/pre&gt;

&lt;p&gt;Запускаем.  Будет предложено создать профиль, потому что до этого ещё
профилей не было.  Необходимо указать две директории, в которых нужно
произвести синхронизацию (Обращаю внимание, что &lt;strong&gt;флешка должна быть
примонтирована&lt;/strong&gt;).  Если вдруг вы создали не тот профиль, что
хотелось, то удалить его, находясь в графическом режиме не удастся.
Профили лежат в директории &lt;code&gt;~/.unison&lt;/code&gt; и имеют формат:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ cat ~/.unison/devel.prf
root = /home/maxim/devel
root = /media/usb/devel
&lt;/pre&gt;
То есть можно просто переименовать файл профиля и поменять пути
простым редактированием файла.

&lt;p&gt;Программа после запуска выглядит так (предлагается выбрать профиль):&lt;/p&gt;
&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgczuB6XM6_ixL8lix7ZE3TGjDXQG1a7sgODIJSR-Lql_JTr-mATHORkwcB_3RfmpTjUNiBfsraBtdEMrDu2FX-_s3lqqsS1PQ2sJcKxccrFs9AwTNe9IvqEsnBiO9OLwve7i-s8cahCxY/s400/main.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Если вы синхронизируете директории впервые, то появится следующее
окно, в котором просто сообщается о том, что синхронизация
производится впервые.  Жмите «OK».&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFN6gXywyFmjhoml6w-jGOWQO2OhNoWOqhqs7MFIEc78PNvtz3iD6YV8GReKZLK8vFXOUYVyJC6x6-fQtsj4h26ReFdGGOyl0uZvvDQDZUJef2GCvr23DSUSWaGorE8V5zXsDhz_530oY/s1600-h/first-message.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 267px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFN6gXywyFmjhoml6w-jGOWQO2OhNoWOqhqs7MFIEc78PNvtz3iD6YV8GReKZLK8vFXOUYVyJC6x6-fQtsj4h26ReFdGGOyl0uZvvDQDZUJef2GCvr23DSUSWaGorE8V5zXsDhz_530oY/s320/first-message.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5332759971273917826&quot; /&gt;&lt;/a&gt;

&lt;p&gt;В случае возникновения конфликтов, можно разрешить их вручную, нажав
кнопки «Right to Left» или «Left to Right», в зависимости от того, в
какую сторону хотите разрешить конфликт.  Если файлы текстовые, то
посмотреть их различие можно, нажав на кнопку «Diff».  Копирование
файлов запускается после нажатия кнопки «Go».&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikJJx1PVgsnheAduFaSJhU6KYF2jYKWW9BAd6iO1ouzMlew2_SwYdDcs-XaPuz9oGMIAoVewmKTkFUrpvhhQ6hSImCBNjwnrHPoWHPOnjHCZu30sdkTQxQ0uSVuVrEADdXjNbQMbp3j8I/s1600-h/synchro.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 135px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikJJx1PVgsnheAduFaSJhU6KYF2jYKWW9BAd6iO1ouzMlew2_SwYdDcs-XaPuz9oGMIAoVewmKTkFUrpvhhQ6hSImCBNjwnrHPoWHPOnjHCZu30sdkTQxQ0uSVuVrEADdXjNbQMbp3j8I/s320/synchro.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5332760337362476690&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Очень полезной особенностью является возможность игнорировать
определённые директории или файлы.  Для этого надо выбрать в меню
«Ignore» соответствующий пункт:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;«Permanently ignore this path» для того, чтобы всегда пропускать
этот путь при сканировании&lt;/li&gt;
&lt;li&gt;«Permanently ignore files with this extension», чтобы пропускать
файлы с данным расширением&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;При этом в профиле это отображается строкой:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
ignore = Path {/your/path/to/ignore}
ignore = Name {,.}*{.tmp}
&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Вторая строка для того, чтобы пропускать файлы с расширением &lt;code&gt;tmp&lt;/code&gt;&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Советую посмотреть возможные опции в подменю «Actions», там есть
весьма полезные опции типа разрешения конфликтов в пользу определенной
директории или в пользу более новых файлов.  Думаю, разобраться что
пункты этого меню означают весьма легко, английский ведь мы знаем :).&lt;/p&gt;



&lt;h3&gt;Подводные камни&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Без подводных камней здесь тоже не обошлось.&lt;/p&gt;

&lt;h4&gt;Права доступа&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Как известно, в файловых системах Unix используются права доступа для
хозяина, для группы и других пользователей.  На флешке, обладающей
файловой системой fat32 из-за необходимости обмениваться данными с
виндовыми компьютерами, такой возможности нет.  Поэтому если вы
попытаетесь записать с помощью Unison на флешку файлы с правами,
отличающимися от 644, то получите, скорее всего сообщение о
невозможности синхронизации.&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7b6L_R0YPK9MagTNhWjVYKk7t2kLoGy-tigFNvtEr98lTvtJlY87YBmc5701Cyx7qEDvF8qZKacm9333vZDELNIaVO04TEOo2sKr0mPsg4YWxTaQmbGOzEovpe08KquLhJ6eYZYL1SQg/s1600-h/perms-trouble.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 135px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7b6L_R0YPK9MagTNhWjVYKk7t2kLoGy-tigFNvtEr98lTvtJlY87YBmc5701Cyx7qEDvF8qZKacm9333vZDELNIaVO04TEOo2sKr0mPsg4YWxTaQmbGOzEovpe08KquLhJ6eYZYL1SQg/s320/perms-trouble.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5332760556667114866&quot; /&gt;&lt;/a&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Замечу, что у меня флешка монтируется через /etc/fstab таким образом:&lt;br /&gt;
/dev/sda1       /media/usb     auto    rw,user,noauto,showexec  0       0&lt;br /&gt;
я использую параметр showexec, чтобы файлы не были исполняемыми, таким
образом, все файлы у меня на флешке имеют права 644.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Конечно в данном случае можно привести все файлы к требуемому виду с
помощью утилиты &lt;code&gt;find&lt;/code&gt;:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
find . -type f -exec chmod 644 \{} \;
&lt;/pre&gt;
Но это не выход.

&lt;p&gt;Другое решение состоит в том, чтобы добавить в профиль строку&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
perms = 0
&lt;/pre&gt;

&lt;p&gt;После этого права доступа будут игнорироваться.&lt;/p&gt;


&lt;h4&gt;Не удалите случайно свои файлы!&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Если вы не подмонтирете флешку, то при попытке просканировать на ней
директорию получите предупреждение:&lt;/p&gt;

&lt;p class=&quot;image&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQgC3xeHEAGncr42aMElk6xFLJ7R2kY1lwvLp9YMWW3QY1un_oXwj0LVplDuoJMMWhVV4MyGcKqYSV8jtFC8im1HSxv7XVtoiU3D_GONSh_QjIO37ew2hSC16otocAay5PFZp6s0XkXP8/&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;То есть одна из директорий пуста, поэтому программа предлагает удалить
вторую!  Это явно не то, что надо.  Поэтому быстрее &lt;strong&gt;жмите отмену&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Я проэкспериментировал, нажав «OK», а затем «Go».  Программа &lt;strong&gt;удалила
директорию целиком&lt;/strong&gt;.  При повторной синхронизации с уже
подмонтированной флешкой, все вернулось обратно, что радует, но лучше
не рисковать с этим.&lt;/p&gt;




&lt;h3&gt;Резюме&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Я очень привык к этой программе, что уже не понимаю, как раньше мне
удавалось со всем справляться без неё.  Советую на неё посмотреть.
Простой интерфейс позволит с наименьшими усилиями переносить файлы
между компьютерами, что существенно упростит вашу жизнь.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/05/unison-synchronization-tool.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgczuB6XM6_ixL8lix7ZE3TGjDXQG1a7sgODIJSR-Lql_JTr-mATHORkwcB_3RfmpTjUNiBfsraBtdEMrDu2FX-_s3lqqsS1PQ2sJcKxccrFs9AwTNe9IvqEsnBiO9OLwve7i-s8cahCxY/s72-c/main.png" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-7588622505673233964</guid><pubDate>Fri, 01 May 2009 17:33:00 +0000</pubDate><atom:updated>2009-09-08T01:59:22.989+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">emacs</category><category domain="http://www.blogger.com/atom/ns#">latex</category><title>База библиографических ссылок BibTeX в Emacs</title><description>&lt;p&gt;Что такое &lt;a href=&quot;http://en.wikipedia.org/wiki/BibTeX&quot;&gt;BibTeX&lt;/a&gt; и какая от
него польза можно прочитать
&lt;a href=&quot;http://mydebianblog.blogspot.com/2008/06/bibtex.html&quot;&gt;здесь&lt;/a&gt;.
Забегая вперед, скажу, что вещь это весьма полезная, научившись
пользоваться которой, вам будет намного проще управляться с
бибилиографическими ссылками в LaTeX, не мучаясь с переформатированием
под каждый отдельный случай (например, считается, судя по всему,
хорошим тоном для каждого журнала придумать своё и только своё правило
для оформления этих ссылок.  Справиться с этим варварством как раз
поможет BibTeX).&lt;/p&gt;

&lt;p&gt;Для редактирования базы данных BibTeX в линукс существует несколько
программ, например,
&lt;a href=&quot;http://www.kde-apps.org/content/show.php?content=41050&quot;&gt;kbib&lt;/a&gt;,
&lt;a href=&quot;http://www.kde-apps.org/content/show.php?content=27421&quot;&gt;kbibtex&lt;/a&gt;,
&lt;a href=&quot;http://goodies.xfce.org/projects/applications/xfbib&quot;&gt;XfBib&lt;/a&gt;,
&lt;a href=&quot;http://jabref.sourceforge.net/&quot;&gt;jabref&lt;/a&gt;.  Как следует из названия,
первые две предназначены для работы в KDE, в то время, как последняя
основана на Java.  Я не имею ничего против этого языка
программирования :), но лично мне не нравятся тормозящие программы,
имеющие своеобразный интерфейс (возможно я не осили, но побороть
ужасно размытые шрифты я не смог, а потом уже и не хотелось).
Перечисленные программы обладают весьма серьезным функционалом, за
исключением простенькой XfBib.  Однако мне весь этот функционал не
нужен, так же, как и KDE с Java.  Можно, конечно, править библиографию
руками, что весьма напряжно, но В Емаксе есть для этого специальный
режим
&lt;a href=&quot;http://cms.uni-kassel.de/unicms/index.php?id=its&quot;&gt;bibtex-mode&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Режим подхватится автоматически при редактировании файла с расширением
bib, но если этого не произошло можно включить режим вручную:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
M-x bibtex-mode
&lt;/pre&gt;

&lt;p&gt;Для того, чтобы создать библиографический пункт, необходимо нажать
соответствующую комбинацию клавиш.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Комбинации клавиш&lt;/h3&gt;

&lt;h4&gt;Создание окружения&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Статья в журнале (&lt;strong&gt;A&lt;/strong&gt; rticle):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e C-a
&lt;/pre&gt;

&lt;p&gt;Статья в сборнике тезисов (in &lt;strong&gt;P&lt;/strong&gt; roceedings):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e C-p
&lt;/pre&gt;

&lt;p&gt;Заказная статья в сборнике (in &lt;strong&gt;C&lt;/strong&gt; ollection):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e C-c
&lt;/pre&gt;

&lt;p&gt;Глава или страницы в книге (chapter in &lt;strong&gt;B&lt;/strong&gt; ook):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e C-b
&lt;/pre&gt;

&lt;p&gt;Сборник трудов конференции вообще, а не отдельная статья
(&lt;strong&gt;p&lt;/strong&gt; roceedings):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e p
&lt;/pre&gt;

&lt;p&gt;Книга целиком (&lt;strong&gt;B&lt;/strong&gt; ook):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e b
&lt;/pre&gt;

&lt;p&gt;Технический отчёт (&lt;strong&gt;T&lt;/strong&gt; echnical report):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-e C-t
&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Если интересует что-то ещё, то сочетание можно посмотреть в меню
«Entry-types», а если показ меню отключён, как у меня, то его можно
посмотреть одновременно нажав Ctrl и правую кнопку мыши.&lt;/p&gt;

&lt;/blockquote&gt;



&lt;h4&gt;Заполнение полей&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Для каждого типа окружения имеется обязательный набор полей.  Также
есть необязательные поля, которые начинаются с «OPT» (например,
OPTmonth) или с ALT (например, ALTEditor).&lt;/p&gt;

&lt;p&gt;Необязательное поле можно сделать активным комбинацией:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-o
&lt;/pre&gt;

&lt;p&gt;Чтобы не мучаться с позиционированием курсора между фигурными
стрелками, для перехода от одного поля к следующему лучше использовать bibtex-next-field&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-j
&lt;/pre&gt;

&lt;p&gt;Выравниваются поля стандартно:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
M-q
&lt;/pre&gt;

&lt;p&gt;А для выравнивания всех полей в окружении служит bibtex-fill-entry&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-q
&lt;/pre&gt;

&lt;p&gt;Создать свое собственное поле (например, language) можно посредством
bibtex-make-field&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-f
&lt;/pre&gt;



&lt;h3&gt;Пример использования&lt;/h3&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #87cefa;&quot;&gt;@Article&lt;/span&gt;{&lt;span style=&quot;color: #7fffd4;&quot;&gt;sunarso08:_mixed_ionic_elect_conduc_miec&lt;/span&gt;,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;author&lt;/span&gt; =       {J. Sunarso and S. Baumann and J. M. Serra and
                  W. A. Meulenberg and S. Liu and Y. S. Lin and
                  J. C. Diniz da Costa},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;title&lt;/span&gt; =        {Mixed ionic-electronic conducting {(MIEC)}
                  ceramic-based membranes for oxygen separation},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;journal&lt;/span&gt; =      {Journal of Membrane Science},
  &lt;span style=&quot;color: #eedd82;&quot;&gt;year&lt;/span&gt; =         2008,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;volume&lt;/span&gt; =       320,
  &lt;span style=&quot;color: #eedd82;&quot;&gt;pages&lt;/span&gt; =        {13-41}
}
&lt;/pre&gt;

&lt;p&gt;Закончив заполнение полей полезно всё выровнять с скомандовать
bibtex-clean-entry.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-c C-c
&lt;/pre&gt;
Как бы странно это ни звучало, но эта команда проверяет синтаксическую
корректность окружения и предлагает дать название записи.  Надо сказать,
что некириллические названия задаёт сама вполне адекватно.

&lt;p&gt;При создании документа с использованием AUCTeX и RefTeX можно
сослаться на запись комбинацией C-c C-[.  Будет предожено ввести
регулярное выражение записи.  Для простоты можно ввести кусок
названия.  Затем в вывалившемся списке отметить нужный вариант.  Но об
этом подробнее я расскажу в отдельном сообщении.&lt;/p&gt;


&lt;h3&gt;Преимущества и недостатки&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;К плюсам этого способа работы с библиографией можно отнести интеграцию
с правкой текста в LaTeX, отсутствие необходимости привыкать к другой
программе, поскольку всё можно сделать не выходя из емакса.  Также,
поскольку емакс работает с системой контроля версий, можно заслать
обновленный вариант сразу же&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
C-x v v
&lt;/pre&gt;
после ввода комментария

&lt;pre class=&quot;src&quot;&gt;
C-c C-c
&lt;/pre&gt;

&lt;p&gt;Из минусов могу отметить отсутсвие поиска в интернете, что, если не
ошибаюсь как-то было реализовано в kbibtex.  Хотя, лично для меня, это
совсем не минус.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/05/bibtex-emacs.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-1005173178114076455</guid><pubDate>Tue, 28 Apr 2009 17:25:00 +0000</pubDate><atom:updated>2009-09-08T01:56:28.293+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><category domain="http://www.blogger.com/atom/ns#">scipy</category><title>Уточнение данных полиномом n-степени в Python (scipy, polyfitw)</title><description>&lt;script type=&quot;text/javascript&quot; src=&quot;http://tex.yourequations.com/&quot;&gt;&lt;/script&gt;
&lt;p&gt;&lt;strong&gt;Задача&lt;/strong&gt; - произвести подгонку данных полиномом n-степени.
Известно, что каждое, экспериментально измеренное значение,
представляет собой два числа: собственно значение и погрешность
измерения.  Таким образом, желательно произвести подгонку с учётом
весовых коэффициентов каждой точки.  Ведь может оказаться так, что в
эксперименте есть точки, измеренные с меньшей точностью и степенью
достоверности, но которые не желательно просто так выбрасывать, но и
нельзя учитывать наравне с другими, более достоверными.&lt;/p&gt;

&lt;p&gt;В качестве инструмента выбираем &lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt;,
благодаря расширяемости этого языка.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;&gt;

&lt;h3&gt;Модули в Python&lt;/h3&gt;

&lt;h4&gt;Scipy&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;В Python для численных операций имеются модули
&lt;a href=&quot;http://www.scipy.org/&quot;&gt;SciPy&lt;/a&gt; и &lt;a href=&quot;http://www.numpy.org/&quot;&gt;NumPy&lt;/a&gt;.
Однако, несмотря на всю мощь этих модулей, я не нашёл в них
возможности производить уточнение именно с учетом весовых
коэффициентов.  В scipy содержится функция &lt;strong&gt;polyfit&lt;/strong&gt;, которая принимает
только значения аргумента, функции и степени полинома, но не учитывает
погрешности.&lt;/p&gt;


&lt;h4&gt;Модуль CARSMath&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;На сайте
&lt;a href=&quot;http://cars9.uchicago.edu/&quot;&gt;The Consortium for Advanced Radiation Sources&lt;/a&gt;
есть разработанный Марком Риверсом модуль
&lt;a href=&quot;http://cars9.uchicago.edu/software/python/CARSMath.html&quot;&gt;CARSMath&lt;/a&gt;.
Он содержит функцию &lt;strong&gt;polyfitw&lt;/strong&gt;, которая помимо аргумента, функции и
степени полинома принимает также и весовые коэффициенты (именно
весовые коэффициенты, а не погрешность, то есть 1/погрешность).&lt;/p&gt;



&lt;h3&gt;Установка модуля CARSMath&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Скачайте модуль
&lt;a href=&quot;http://cars.uchicago.edu/software/pub/python_epics.tar&quot;&gt;отсюда&lt;/a&gt;.
Бросьте тарбол, куда-нибудь, например, в &lt;code&gt;~/python/python_epics&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Распакуйте:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
tar xvf python_epics.tar
&lt;/pre&gt;
Нас интересует файл CARSMath.py.

&lt;p&gt;Теперь, чтобы использовать этот модуль, надо его бросать в рабочую
директорию с вашим скриптом, что очень неудобно.  Поэтому надо
воспользоваться переменной окружения &lt;code&gt;$PYTHONPATH&lt;/code&gt;.  Для этого
отредактируйте файл &lt;code&gt;~/.bashrc&lt;/code&gt;.  Необходимо добавить следующую
строчку:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #b0c4de;&quot;&gt;export&lt;/span&gt; &lt;span style=&quot;color: #eedd82;&quot;&gt;PYTHONPATH&lt;/span&gt;=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;$HOME/distrib/python/lib&quot;&lt;/span&gt;
&lt;/pre&gt;

&lt;p&gt;Естественно, директория должна быть указана та, где лежит скачанный
модуль CARSMath (я его перекинул в &lt;code&gt;~/distrib/python/lib&lt;/code&gt;, там же у
меня лежат и другие модули, не распространяемые с дистрибутивом).&lt;/p&gt;

&lt;p&gt;После этого инициализируем оболочку заново:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #b0c4de;&quot;&gt;source&lt;/span&gt; ~/.bashrc
&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Если вы запускаете иксы не через &lt;code&gt;startx&lt;/code&gt;, а через менеджер входа в
систему, то вам надо узнать каким образом в этом
случае инициализировать переменные окружения.  Ключевое слово
.XClients, если я ничего не путаю.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Теперь можно, находясь в любой директории, импортировать модуль
CARSMath стандартным образом:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; CARSMath
&lt;/pre&gt;


&lt;h3&gt;Сравнение двух способов подгонки&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Сравним два способа подгонки экспериментальных данных полиномом n-й
степени:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;с помощью polyfit из scipy&lt;/li&gt;
&lt;li&gt;с помощью polyfitw из CARSMath&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Для этого создадим массив точек, сделаем несколько «выбросов» с
большими погрешностями и
аппроксимируем полиномом (в одном случае без учёта погрешностей, а во
втором - с учётом).&lt;/p&gt;

&lt;p&gt;Ниже проведён скрипт, реализующий эти действия.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;!/usr/bin/env python
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;#&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;-*-coding: utf-8 -*-
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; scipy
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; numpy &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; arange
&lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; pylab &lt;span style=&quot;color: #00ffff;&quot;&gt;as&lt;/span&gt; pl
&lt;span style=&quot;color: #00ffff;&quot;&gt;from&lt;/span&gt; CARSMath &lt;span style=&quot;color: #00ffff;&quot;&gt;import&lt;/span&gt; polyfitw

x = arange(0, 2, 0.01)
y = 0.5 * x**3 - 2 * x**2 + x
error = 0.005 * scipy.rand(&lt;span style=&quot;color: #00ffff;&quot;&gt;len&lt;/span&gt;(x))

&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1075;&amp;#1077;&amp;#1085;&amp;#1077;&amp;#1088;&amp;#1080;&amp;#1084; &quot;&amp;#1074;&amp;#1099;&amp;#1087;&amp;#1072;&amp;#1074;&amp;#1096;&amp;#1080;&amp;#1077;&quot; &amp;#1090;&amp;#1086;&amp;#1095;&amp;#1082;&amp;#1080; &amp;#1089; &amp;#1073;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1096;&amp;#1080;&amp;#1084;&amp;#1080; &amp;#1087;&amp;#1086;&amp;#1075;&amp;#1088;&amp;#1077;&amp;#1096;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1103;&amp;#1084;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;range&lt;/span&gt;(30, 60):
    y[i] = y[i] - 2* &lt;span style=&quot;color: #00ffff;&quot;&gt;abs&lt;/span&gt;(scipy.rand(1))
    error[i] = 1 * &lt;span style=&quot;color: #00ffff;&quot;&gt;abs&lt;/span&gt;(scipy.rand(1))

&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1085;&amp;#1072;&amp;#1093;&amp;#1086;&amp;#1076;&amp;#1080;&amp;#1084; &amp;#1082;&amp;#1086;&amp;#1101;&amp;#1092;&amp;#1092;&amp;#1080;&amp;#1094;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1099; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1080;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1072; &amp;#1073;&amp;#1077;&amp;#1079; &amp;#1091;&amp;#1095;&amp;#1105;&amp;#1090;&amp;#1072; &amp;#1087;&amp;#1086;&amp;#1075;&amp;#1088;&amp;#1077;&amp;#1096;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1077;&amp;#1081;
&lt;/span&gt;fit_coeffs = scipy.polyfit(x, y, 3)
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1089;&amp;#1090;&amp;#1088;&amp;#1091;&amp;#1082;&amp;#1090;&amp;#1091;&amp;#1088;&amp;#1072; &amp;#1082;&amp;#1086;&amp;#1101;&amp;#1092;&amp;#1092;&amp;#1080;&amp;#1094;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1086;&amp;#1074;: (x**(max), x**(max-1), x**(max-2), ...)
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;fit_func&lt;/span&gt;(x, fit_coeffs):
    &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&quot;&quot;
    &amp;#1092;&amp;#1080;&amp;#1090; &amp;#1073;&amp;#1077;&amp;#1079; &amp;#1091;&amp;#1095;&amp;#1105;&amp;#1090;&amp;#1072; &amp;#1074;&amp;#1077;&amp;#1089;&amp;#1086;&amp;#1074;

    &quot;&quot;&quot;&lt;/span&gt;
    fit_func = 0
    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1084;&amp;#1072;&amp;#1082;&amp;#1089;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1089;&amp;#1090;&amp;#1077;&amp;#1087;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1080;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1072;.
&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1042; &amp;#1076;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1086;&amp;#1084; &amp;#1089;&amp;#1083;&amp;#1091;&amp;#1095;&amp;#1072;&amp;#1077; 3 = 4 - 1
&lt;/span&gt;    max_degree = &lt;span style=&quot;color: #00ffff;&quot;&gt;len&lt;/span&gt;(fit_coeffs)-1

    &lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;range&lt;/span&gt;(max_degree):
        fit_func += fit_coeffs[i]* x**(max_degree-i)
    &lt;span style=&quot;color: #00ffff;&quot;&gt;return&lt;/span&gt; fit_func


&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1082;&amp;#1086;&amp;#1101;&amp;#1092;&amp;#1092;&amp;#1080;&amp;#1094;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1099; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1080;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1072; &amp;#1089; &amp;#1091;&amp;#1095;&amp;#1077;&amp;#1090;&amp;#1086;&amp;#1084; &amp;#1074;&amp;#1077;&amp;#1089;&amp;#1086;&amp;#1074; 1/error
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;i-&amp;#1081; &amp;#1082;&amp;#1086;&amp;#1101;&amp;#1092;&amp;#1092;&amp;#1080;&amp;#1094;&amp;#1080;&amp;#1077;&amp;#1085;&amp;#1090; &amp;#1089;&amp;#1086;&amp;#1086;&amp;#1090;&amp;#1074;&amp;#1077;&amp;#1090;&amp;#1089;&amp;#1090;&amp;#1074;&amp;#1091;&amp;#1077;&amp;#1090; i-&amp;#1081; &amp;#1089;&amp;#1090;&amp;#1077;&amp;#1087;&amp;#1077;&amp;#1085;&amp;#1080; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1080;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1072;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1079;&amp;#1076;&amp;#1077;&amp;#1089;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1089;&amp;#1090;&amp;#1077;&amp;#1087;&amp;#1077;&amp;#1085;&amp;#1100; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1080;&amp;#1085;&amp;#1086;&amp;#1084;&amp;#1072; = 3
&lt;/span&gt;weight_coeffs = polyfitw(x, y, 1/error, 3)

&lt;span style=&quot;color: #00ffff;&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: #87cefa;&quot;&gt;weight_func&lt;/span&gt;(x, weight_coeffs):
    &lt;span style=&quot;color: #ffa07a;&quot;&gt;&quot;&quot;&quot;
    &amp;#1092;&amp;#1080;&amp;#1090; &amp;#1089; &amp;#1091;&amp;#1095;&amp;#1105;&amp;#1090;&amp;#1086;&amp;#1084; &amp;#1074;&amp;#1077;&amp;#1089;&amp;#1086;&amp;#1074;

    &quot;&quot;&quot;&lt;/span&gt;
    weight_func = 0

    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1077; &amp;#1074;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1085;&amp;#1072; &amp;#1076;&amp;#1088;&amp;#1091;&amp;#1075;&amp;#1091;&amp;#1102; &amp;#1089;&amp;#1090;&amp;#1088;&amp;#1091;&amp;#1082;&amp;#1090;&amp;#1091;&amp;#1088;&amp;#1091; &amp;#1074;&amp;#1077;&amp;#1082;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1072; weight_coeffs
&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;(x**0, x**1, x**2, x**3)
&lt;/span&gt;    &lt;span style=&quot;color: #00ffff;&quot;&gt;for&lt;/span&gt; i &lt;span style=&quot;color: #00ffff;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #00ffff;&quot;&gt;range&lt;/span&gt;(len(weight_coeffs)):
        weight_func += weight_coeffs[i] * x**i
    &lt;span style=&quot;color: #00ffff;&quot;&gt;return&lt;/span&gt; weight_func


pl.errorbar(x, y, error, fmt= &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;bo&#39;&lt;/span&gt;)
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1092;&amp;#1080;&amp;#1082; &amp;#1091;&amp;#1090;&amp;#1086;&amp;#1095;&amp;#1085;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1073;&amp;#1077;&amp;#1079; &quot;&amp;#1074;&amp;#1077;&amp;#1089;&amp;#1086;&amp;#1074;&quot;
&lt;/span&gt;pl.plot(x, fit_func(x, fit_coeffs), &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;r-&#39;&lt;/span&gt;, \
        linewidth=2, label=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;no weights&#39;&lt;/span&gt;)
&lt;span style=&quot;color: #ff7f24;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1092;&amp;#1080;&amp;#1082; &amp;#1091;&amp;#1090;&amp;#1086;&amp;#1095;&amp;#1085;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1089; &quot;&amp;#1074;&amp;#1077;&amp;#1089;&amp;#1072;&amp;#1084;&amp;#1080;&quot;
&lt;/span&gt;pl.plot(x, weight_func(x, weight_coeffs), &lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;g-&#39;&lt;/span&gt;, \
        linewidth=2, label=&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;with weights&#39;&lt;/span&gt;)

pl.title(&lt;span style=&quot;color: #ffa07a;&quot;&gt;&#39;Comparison between two fitting methods&#39;&lt;/span&gt;)
pl.legend()
pl.show()

&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p class=&quot;quoted&quot;&gt;
Здесь я создал функции fit_func, weight_func, возвращающие значения
подгоночной функции, хотя в таком простом примере этого можно было и
не делать.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;В результате получим следующую картину:&lt;/p&gt;

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlkA1jgMKPpGBFPP5OHANsR01BnTe5G3zHNHI0Yx8t5OBdrbC1uEeLqchdho7aD9n7U0ZkcrVA3N6hNjyiGQTX4ALVGPc_VyYFk7Js03OF5mUSfNCIO4nti_xW8tTsSd30NQyW6rhapGc/s1600-h/polyfitw.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlkA1jgMKPpGBFPP5OHANsR01BnTe5G3zHNHI0Yx8t5OBdrbC1uEeLqchdho7aD9n7U0ZkcrVA3N6hNjyiGQTX4ALVGPc_VyYFk7Js03OF5mUSfNCIO4nti_xW8tTsSd30NQyW6rhapGc/s320/polyfitw.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5329795881120516034&quot; /&gt;&lt;/a&gt;

&lt;p&gt;Видно, что в случае уточнения без весовых коэффициентов мы получили
совсем не то, что следует, в то время как учёт погрешностей дал
адекватный результат.&lt;/p&gt;

&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/04/polynom-fitting-using-weight.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlkA1jgMKPpGBFPP5OHANsR01BnTe5G3zHNHI0Yx8t5OBdrbC1uEeLqchdho7aD9n7U0ZkcrVA3N6hNjyiGQTX4ALVGPc_VyYFk7Js03OF5mUSfNCIO4nti_xW8tTsSd30NQyW6rhapGc/s72-c/polyfitw.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-5812960944696665648.post-8547072986954939020</guid><pubDate>Tue, 21 Apr 2009 18:22:00 +0000</pubDate><atom:updated>2009-10-17T00:33:03.043+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">latex</category><title>Презентация  для защиты диплома в latex-beamer (стиль Statmod)</title><description>&lt;h4&gt;Диплом в LaTeX&lt;/h4&gt;

&lt;p&gt;&lt;a href=&quot;http://mydebianblog.blogspot.com/2008/11/latex.html&quot;&gt;Записки Дебианщика&lt;/a&gt;
и
&lt;a href=&quot;http://sovety.blogspot.com/2008/12/russian-thesis-in-latex.html&quot;&gt;Советы.Блогспот.Ком&lt;/a&gt;
сообщают о том, как надо писать диплом и диссертацию в LaTeX.  Я же
постараюсь немного коснуться темы презентаций.&lt;/p&gt;

&lt;h3&gt;Какой должна быть презентация?&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Не мне судить какой должна быть презентация, но мое недавнее посещение
студенческой конференции в качестве жюри показало, что многие готовят
презентации специально так, чтобы те, кому они предназначаются ничего
не смогли понять.  Размеры шрифтов и гамма цветов поражают.  Жаль, что
докладчики не понимают, что то, что видно хорошо на экране, далеко не
всегда так же видно при использовании проектора или большого
плазменного телевизора, но в большой же аудитории.  Естественно, на
каждом слайде налеплено много всего, разумеется, наимельчайшим
шрифтом, и хорошо если не &lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6UNuyij2tOIa2uAbpHLxvUelk24ENxWsULCNQzyfvbwULlvRJZYhMPtUzLC_lmFKRdqhRAc33La-dChvJEhqRy8H6tcb_dewvFUcltSqHFSEojiRcjwQ7BleGfMJCrAyK8d66Ki3HLFA/s320/red_on_black.png&quot; alt=&quot;&quot;&gt;.  Всему этому
способствует MS Powerpoint.  Проблема в том, что, во-первых, в университетах ни чему
другому не учат, а во-вторых многие просто не знают, что бывает что-то
ещё, кроме ворда и поверпоинта.  Ну даже если бы ничего другого не было, неужели нельзя научиться делать приличные презентации, пусть даже и в ущербном офисе? Видимо, нельзя, как показывает практика раз за разом.  В противоположность этому, ЛаТеХ не позволит налепить кучу всего, больше, чем надо, мелким шрифтом, криво-косо.  Надо очень сильно постараться, чтобы сделать такую же ужасную презентацию в ЛаТеХе, как выглядит средняя презентация в офисе.&lt;/p&gt;

&lt;p&gt;Справедливости ради, стоит отметить, что из 16 докладов, одна
презентация была оформлена в LaTeX с использованием пакета
&lt;a href=&quot;http://latex-beamer.sourceforge.net/&quot;&gt;beamer&lt;/a&gt;.  Это уже прорыв, на мой
взгляд, потому что до этого я ещё ни разу на конференциях не видел
презентации, сделанной не в офисе!  Однако презентация та была
выполнена в не самом подходящем, как мне кажется, стиле.  Доклад
длился 10 минут, много за это время на расскажешь, но был использован
стиль, в котором каждый слайд содержит информацию о структуре
презентации в боковой части слайда.  Стиль сходу не скажу, но факт в
том, что места на само содержание слайда отводится всё меньше.  В
таком докладе и так ясно, что сначала введение, потом постановка
задачи, а затем результаты и обсуждение.  Так зачем зарубать
драгоценное место?&lt;/p&gt;


&lt;h3&gt;Стиль Statmod&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Надо сказать, что лично мне из всех стилей, имеющихся по умолчанию в
beamer понравились только Warsaw и Frankfurt.  Другие не приглянулись
в основном цветами (на мой взгляд, белые буквы на синем фоне в
заголовке и чёрные на белом в тексте наиболее благоприятны и подходят
как для плазмы, так и для проектора) и навигационными полосами (у них
они более экономны).  Но из этих стилей Warsaw всё же создан для
больших презентаций.  Хоть свой стиль пиши от безысходности.  Но, к
счастью, на кафедре Статистического Моделирования
Математико-Механического факультета СПбГУ уже был разработан стиль
&lt;a href=&quot;http://www.statmod.ru/wiki/latex:slides&quot;&gt;Statmod&lt;/a&gt;, специально для
защит диплома.&lt;/p&gt;

&lt;p&gt;Особенность стиля в том, что он имеет опции, позволяющие:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;урезать шапку&lt;/li&gt;
&lt;li&gt;ввести нумерацию слайдов&lt;/li&gt;
&lt;li&gt;изменить фон с белого на песочный&lt;/li&gt;
&lt;li&gt;отключить вовсе навигационную полосу&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;То есть, для защиты диплома, действительно, подходит, пожалуй,
наилучшим образом.&lt;/p&gt;

&lt;span class=&quot;fullpost&quot;/&gt;

&lt;h4&gt;Установка Statmod&lt;/h4&gt;

&lt;p class=&quot;first&quot;&gt;Для начала скачайте
&lt;a href=&quot;http://www.statmod.ru/wiki/_media/latex:beamerstatmod.zip?id=latex:slides&amp;amp;cache=cache&quot;&gt;архив&lt;/a&gt;
со всеми необходимыми файлами, желательно в специально отведённую для
этого директорию - зипы загаживают текущую директорию, не создавая
поддиректорию при распаковке.&lt;/p&gt;

&lt;p&gt;Распаковываем:&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
$ unzip beamerstatmod.zip
$ ls -F
color/  inner/  outer/  theme/
&lt;/pre&gt;

&lt;p&gt;Файлы, лежащие в этих директориях должны быть скопированы туда, где
лежат стили beamer в вашей системе.  В Debian это
/usr/share/texmf/tex/latex/beamer/themes.&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
cp -r color/* /usr/share/texmf/tex/latex/beamer/themes/color
cp -r inner/* /usr/share/texmf/tex/latex/beamer/themes/inner
cp -r outer/* /usr/share/texmf/tex/latex/beamer/themes/outer
cp -r theme/* /usr/share/texmf/tex/latex/beamer/themes/theme
&lt;/pre&gt;

&lt;p&gt;После этого обновляем кэш (лучше от настоящего рута, а не sudo, так
как последнее вмешивается в личные файлы теха в локальной директории и
меняет права доступа):&lt;/p&gt;

&lt;pre class=&quot;src&quot;&gt;
texhash
&lt;/pre&gt;

&lt;p&gt;Теперь можно использовать этот замечательный класс в документах.
Для этого в преамбуле должна быть указана тема и опции:&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usetheme&lt;/span&gt;[numbers, totalnumbers, minimal, nologo]{Statmod}
&lt;/pre&gt;

&lt;p&gt;В данном случае &amp;quot;numbers&amp;quot; говорит, что надо нумеровать слайды, а
&amp;quot;totalnumbers&amp;quot; ещё и выводит полное число слайдов.  &amp;quot;minimal&amp;quot;
означает, что мы хотим использовать сжатую шапку слайда, то есть
убираем полосу сверху, которая показывает оглавление, а &amp;quot;nologo&amp;quot;
говорит, что не надо использовать логотип кафедры Статистического
Моделирования.&lt;/p&gt;

&lt;p&gt;Также можно использовать следующие опции:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nonav  -  убрать навигационную полосу, ту, что внизу&lt;/li&gt;
&lt;li&gt;sand - изменить цвет фона с белого на песочный&lt;/li&gt;
&lt;li&gt;compress - сжимает шапку, но оставляет полосу сверху, которая
показывает название только текущего раздела, а не всё оглавление&lt;/li&gt;
&lt;/ul&gt;



&lt;h3&gt;Преамбула для презентации&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;В заключение приведу преамбулу, которую я использую для своих
презентаций и простенький пример, который ещё не охватывает и половины
всех возможностей beamer.&lt;/p&gt;

&lt;pre class=&quot;listing&quot;&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\documentclass&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[10pt,pdf,hyperref={unicode}]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamer}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[T2A]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{fontenc}&lt;/span&gt;       &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1087;&amp;#1086;&amp;#1076;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1082;&amp;#1072; &amp;#1082;&amp;#1080;&amp;#1088;&amp;#1080;&amp;#1083;&amp;#1083;&amp;#1080;&amp;#1094;&amp;#1099;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[koi8-r]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{inputenc}&lt;/span&gt;   &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1087;&amp;#1086;&amp;#1082;&amp;#1072; &amp;#1073;&amp;#1080;&amp;#1073;&amp;#1090;&amp;#1077;&amp;#1093; &amp;#1085;&amp;#1077; &amp;#1076;&amp;#1088;&amp;#1091;&amp;#1078;&amp;#1080;&amp;#1090; &amp;#1076;&amp;#1086; &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1094;&amp;#1072; &amp;#1089; &amp;#1102;&amp;#1085;&amp;#1080;&amp;#1082;&amp;#1086;&amp;#1076;&amp;#1086;&amp;#1084;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #eedd82;&quot;&gt;[russian]&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{babel}&lt;/span&gt;     &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1086;&amp;#1087;&amp;#1088;&amp;#1077;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1103;&amp;#1079;&amp;#1099;&amp;#1082;&amp;#1086;&amp;#1074; &amp;#1074; &amp;#1076;&amp;#1086;&amp;#1082;&amp;#1091;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1077;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\usepackage&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{amssymb,amsmath}&lt;/span&gt;    &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1084;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1084;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1082;&amp;#1072;
&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\graphicspath&lt;/span&gt;{{./pictures/}{../../pictures/}} &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1086;&amp;#1090;&amp;#1085;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1087;&amp;#1091;&amp;#1090;&amp;#1100; &amp;#1082;
&lt;/span&gt;                                &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1082;&amp;#1072;&amp;#1090;&amp;#1072;&amp;#1083;&amp;#1086;&amp;#1075;&amp;#1091; &amp;#1089; &amp;#1088;&amp;#1080;&amp;#1089;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1072;&amp;#1084;&amp;#1080; (&amp;#1086;&amp;#1073;&amp;#1103;&amp;#1079;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1077;&amp;#1085; &amp;#1089;&amp;#1083;&amp;#1077;&amp;#1096;
&lt;/span&gt;                                &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1074; &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1094;&amp;#1077;!)
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1058;&amp;#1077;&amp;#1084;&amp;#1072; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1079;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1080;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usetheme&lt;/span&gt;[numbers, totalnumbers, minimal, nologo]{Statmod}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1042;&amp;#1099;&amp;#1073;&amp;#1086;&amp;#1088; &amp;#1096;&amp;#1088;&amp;#1080;&amp;#1092;&amp;#1090;&amp;#1086;&amp;#1074; %%
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usefonttheme&lt;/span&gt;[onlylarge]{structurebold}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1055;&amp;#1088;&amp;#1080;&amp;#1074;&amp;#1099;&amp;#1095;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1096;&amp;#1088;&amp;#1080;&amp;#1092;&amp;#1090; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1084;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1084;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1095;&amp;#1077;&amp;#1089;&amp;#1082;&amp;#1080;&amp;#1093; &amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1091;&amp;#1083;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\usefonttheme&lt;/span&gt;[onlymath]{serif}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1041;&amp;#1086;&amp;#1083;&amp;#1077;&amp;#1077; &amp;#1082;&amp;#1088;&amp;#1091;&amp;#1087;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1096;&amp;#1088;&amp;#1080;&amp;#1092;&amp;#1090; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1079;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1082;&amp;#1086;&amp;#1074; &amp;#1090;&amp;#1080;&amp;#1090;&amp;#1091;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1083;&amp;#1080;&amp;#1089;&amp;#1090;&amp;#1072;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\setbeamerfont&lt;/span&gt;{institute}{size=&lt;span style=&quot;color: #98fb98;&quot;&gt;\normalsize&lt;/span&gt;}
&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1045;&amp;#1089;&amp;#1083;&amp;#1080; &amp;#1080;&amp;#1089;&amp;#1087;&amp;#1086;&amp;#1083;&amp;#1100;&amp;#1079;&amp;#1091;&amp;#1077;&amp;#1090;&amp;#1089;&amp;#1103; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1083;&amp;#1077;&amp;#1076;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1086;&amp;#1077; &amp;#1087;&amp;#1086;&amp;#1103;&amp;#1074;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1087;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1090;&amp;#1086;&amp;#1074; &amp;#1089;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1082;&amp;#1086;&amp;#1074; &amp;#1085;&amp;#1072;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;&amp;#1077; (&amp;#1085;&amp;#1077; &amp;#1079;&amp;#1083;&amp;#1086;&amp;#1091;&amp;#1087;&amp;#1086;&amp;#1090;&amp;#1088;&amp;#1077;&amp;#1073;&amp;#1083;&amp;#1103;&amp;#1081;&amp;#1090;&amp;#1077; &amp;#1074; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;&amp;#1072;&amp;#1093; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1079;&amp;#1072;&amp;#1097;&amp;#1080;&amp;#1090;&amp;#1099; &amp;#1076;&amp;#1080;&amp;#1087;&amp;#1083;&amp;#1086;&amp;#1084;&amp;#1085;&amp;#1086;&amp;#1081; &amp;#1088;&amp;#1072;&amp;#1073;&amp;#1086;&amp;#1090;&amp;#1099;),
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1095;&amp;#1090;&amp;#1086;&amp;#1073;&amp;#1099; &amp;#1077;&amp;#1097;&amp;#1077; &amp;#1085;&amp;#1077;&amp;#1087;&amp;#1086;&amp;#1103;&amp;#1074;&amp;#1080;&amp;#1074;&amp;#1096;&amp;#1080;&amp;#1077;&amp;#1089;&amp;#1103; &amp;#1087;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1090;&amp;#1099; &amp;#1073;&amp;#1099;&amp;#1083;&amp;#1080; &amp;#1074;&amp;#1089;&amp;#1077;-&amp;#1090;&amp;#1072;&amp;#1082;&amp;#1080; &amp;#1085;&amp;#1077;&amp;#1084;&amp;#1085;&amp;#1086;&amp;#1078;&amp;#1082;&amp;#1086; &amp;#1074;&amp;#1080;&amp;#1076;&amp;#1085;&amp;#1099;.
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\setbeamercovered&lt;/span&gt;{transparent}

&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1057;&amp;#1086;&amp;#1082;&amp;#1088;&amp;#1072;&amp;#1097;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; %%%
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;% &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;&amp;#1057;&amp;#1080;&amp;#1085;&amp;#1080;&amp;#1081; &amp;#1094;&amp;#1074;&amp;#1077;&amp;#1090; &amp;#1074;&amp;#1099;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103;
&lt;/span&gt;&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\setbeamercolor&lt;/span&gt;{color1}{bg=blue!60!black,fg=white}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\newcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\celcius&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{\,^{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\circ&lt;/span&gt;}&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\mathrm&lt;/span&gt;{C}}  &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1075;&amp;#1088;&amp;#1072;&amp;#1076;&amp;#1091;&amp;#1089; &amp;#1062;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1089;&amp;#1080;&amp;#1103;
&lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\newcommand&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;\grad&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;}&lt;/span&gt;{\,^{&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\circ&lt;/span&gt;}}               &lt;span style=&quot;color: #ff7f24;&quot;&gt;%&amp;#1079;&amp;#1085;&amp;#1072;&amp;#1082; &amp;#1075;&amp;#1088;&amp;#1072;&amp;#1076;&amp;#1091;&amp;#1089;&amp;#1072;
&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;%%%%%%%%%%%%%%%%%%&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\title&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{&amp;#1055;&amp;#1088;&amp;#1077;&amp;#1079;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103; &amp;#1074; &lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\LaTeX&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\author&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{&amp;#1053;&amp;#1072; &amp;#1101;&amp;#1090;&amp;#1086;&amp;#1084; &amp;#1084;&amp;#1077;&amp;#1089;&amp;#1090;&amp;#1077; &amp;#1076;&amp;#1086;&amp;#1083;&amp;#1078;&amp;#1085;&amp;#1099; &amp;#1073;&amp;#1099;&amp;#1090;&amp;#1100; &amp;#1074;&amp;#1099;}&lt;/span&gt;
&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\institute&lt;/span&gt;{&amp;#1042;&amp;#1072;&amp;#1096; &amp;#1080;&amp;#1085;&amp;#1089;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1091;&amp;#1090;/&amp;#1084;&amp;#1077;&amp;#1089;&amp;#1090;&amp;#1086; &amp;#1088;&amp;#1072;&amp;#1073;&amp;#1086;&amp;#1090;&amp;#1099; &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{0.7cm}&lt;/span&gt;
    &amp;#1053;&amp;#1072;&amp;#1091;&amp;#1095;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1088;&amp;#1091;&amp;#1082;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1076;&amp;#1080;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;:  &amp;#1060;&amp;#1048;&amp;#1054; &amp;#1096;&amp;#1077;&amp;#1092;&amp;#1072; &amp;#1089; &amp;#1088;&amp;#1077;&amp;#1075;&amp;#1072;&amp;#1083;&amp;#1080;&amp;#1103;&amp;#1084;&amp;#1080; &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{0.7cm}&lt;/span&gt;
}
&lt;span style=&quot;color: #00ffff;&quot;&gt;\date&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;{
    &amp;#1053;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1089;&amp;#1080;&amp;#1073;&amp;#1080;&amp;#1088;&amp;#1089;&amp;#1082; &amp;#1080;&amp;#1083;&amp;#1080; &amp;#1075;&amp;#1076;&amp;#1077; &amp;#1090;&amp;#1072;&amp;#1084; &amp;#1091; &amp;#1074;&amp;#1072;&amp;#1089; &amp;#1082;&amp;#1086;&amp;#1085;&amp;#1092;&amp;#1077;&amp;#1088;&amp;#1077;&amp;#1085;&amp;#1094;&amp;#1080;&amp;#1103;&lt;/span&gt;&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #98fb98;&quot;&gt;
    2009&amp;#1075;.
}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;
  &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1089;&amp;#1086;&amp;#1079;&amp;#1076;&amp;#1072;&amp;#1105;&amp;#1084; &amp;#1090;&amp;#1080;&amp;#1090;&amp;#1091;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1083;&amp;#1080;&amp;#1089;&amp;#1090;
&lt;/span&gt;  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\maketitle&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\section&lt;/span&gt;&lt;span style=&quot;color: #ffff00; font-size: 133%; font-weight: bold;&quot;&gt;{&amp;#1042;&amp;#1074;&amp;#1077;&amp;#1076;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077;}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1053;&amp;#1072;&amp;#1079;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;&amp;#1072;}
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;
    &lt;span style=&quot;color: #ff7f24;&quot;&gt;% &amp;#1050;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1085;&amp;#1082;&amp;#1080; &amp;#1087;&amp;#1086; &amp;#1087;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1080;&amp;#1085;&amp;#1077; &amp;#1096;&amp;#1080;&amp;#1088;&amp;#1080;&amp;#1085;&amp;#1099; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;&amp;#1072;
&lt;/span&gt;    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.3&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\only&lt;/span&gt;&amp;lt;2-&amp;gt;{
       &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\columnwidth&lt;/span&gt;]{tux1} &lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;\\&lt;/span&gt;
    }
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\includegraphics&lt;/span&gt;[width=&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\columnwidth&lt;/span&gt;]{tuxes}

    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.6&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\only&lt;/span&gt;&amp;lt;1,4&amp;gt;{
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{&amp;#1041;&amp;#1083;&amp;#1086;&amp;#1082; &amp;#1074; &amp;#1088;&amp;#1072;&amp;#1084;&amp;#1082;&amp;#1077; &amp;#1089; &amp;#1087;&amp;#1086;&amp;#1076;&amp;#1079;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1082;&amp;#1086;&amp;#1084;}
      &amp;#1057;&amp;#1086;&amp;#1076;&amp;#1077;&amp;#1088;&amp;#1078;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1073;&amp;#1083;&amp;#1086;&amp;#1082;&amp;#1072; &amp;#1076;&amp;#1083;&amp;#1103; &amp;#1103;&amp;#1088;&amp;#1082;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1086;&amp;#1073;&amp;#1086;&amp;#1079;&amp;#1085;&amp;#1072;&amp;#1095;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1095;&amp;#1077;&amp;#1075;&amp;#1086;-&amp;#1083;&amp;#1080;&amp;#1073;&amp;#1086;, &amp;#1083;&amp;#1080;&amp;#1073;&amp;#1086;
      &amp;#1089;&amp;#1090;&amp;#1088;&amp;#1091;&amp;#1082;&amp;#1090;&amp;#1091;&amp;#1088;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1103;.
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;
 }
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\textbf&lt;/span&gt;&lt;span style=&quot;color: #ffff00; background-color: #1B3035; font-weight: bold;&quot;&gt;{&amp;#1053;&amp;#1091;&amp;#1084;&amp;#1077;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1099;&amp;#1081; &amp;#1089;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1086;&amp;#1082; &amp;#1089; &amp;#1086;&amp;#1074;&amp;#1077;&amp;#1088;&amp;#1083;&amp;#1077;&amp;#1103;&amp;#1084;&amp;#1080;}&lt;/span&gt;:
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{itemize}&lt;/span&gt;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt;&amp;lt;1-&amp;gt; &amp;#1069;&amp;#1090;&amp;#1086;&amp;#1090; &amp;#1087;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1090; &amp;#1073;&amp;#1091;&amp;#1076;&amp;#1077;&amp;#1090; &amp;#1087;&amp;#1086;&amp;#1082;&amp;#1072;&amp;#1079;&amp;#1072;&amp;#1085; &amp;#1074;&amp;#1089;&amp;#1077;&amp;#1075;&amp;#1076;&amp;#1072;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt;&amp;lt;2-&amp;gt; &amp;#1069;&amp;#1090;&amp;#1086;&amp;#1090; - &amp;#1085;&amp;#1072;&amp;#1095;&amp;#1080;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1089;&amp;#1086; &amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1082;&amp;#1072;&amp;#1076;&amp;#1088;&amp;#1072;
        &lt;span style=&quot;color: #00ffff;&quot;&gt;\item&lt;/span&gt;&amp;lt;1,3&amp;gt; &amp;#1069;&amp;#1090;&amp;#1086;&amp;#1090; - &amp;#1085;&amp;#1072; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1086;&amp;#1084; &amp;#1080; &amp;#1090;&amp;#1088;&amp;#1077;&amp;#1090;&amp;#1100;&amp;#1077;&amp;#1084; &amp;#1082;&amp;#1072;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1093;
    &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{itemize}&lt;/span&gt;

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt; &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\frametitle&lt;/span&gt;{&amp;#1045;&amp;#1097;&amp;#1105; &amp;#1086;&amp;#1076;&amp;#1080;&amp;#1085; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;}
&lt;span style=&quot;color: #ff7f24;&quot;&gt;%  &lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;\frame&lt;/span&gt;&lt;span style=&quot;color: #ff7f24;&quot;&gt;[containsverbatim]
&lt;/span&gt;  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\only&lt;/span&gt;&amp;lt;1-3&amp;gt;{
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;[shadow=true, rounded=true]{color1}
       &amp;#1050;&amp;#1072;&amp;#1082;&amp;#1072;&amp;#1103;-&amp;#1085;&amp;#1080;&amp;#1073;&amp;#1091;&amp;#1076;&amp;#1100; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1080;&amp;#1085;&amp;#1092;&amp;#1086;&amp;#1088;&amp;#1084;&amp;#1072;&amp;#1094;&amp;#1080;&amp;#1103; &amp;#1074; &amp;#1074;&amp;#1099;&amp;#1076;&amp;#1077;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1080;, &amp;#1085;&amp;#1072; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1086;&amp;#1084;, &amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1084; &amp;#1080;
       &amp;#1090;&amp;#1088;&amp;#1077;&amp;#1090;&amp;#1100;&amp;#1077;&amp;#1084; &amp;#1082;&amp;#1072;&amp;#1076;&amp;#1088;&amp;#1072;&amp;#1093;.
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{beamercolorbox}&lt;/span&gt;
  }
  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\only&lt;/span&gt;&amp;lt;2-&amp;gt;{
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;{}
       &amp;#1041;&amp;#1083;&amp;#1086;&amp;#1082; &amp;#1073;&amp;#1077;&amp;#1079; &amp;#1079;&amp;#1072;&amp;#1075;&amp;#1086;&amp;#1083;&amp;#1086;&amp;#1074;&amp;#1082;&amp;#1072;, &amp;#1087;&amp;#1072;&amp;#1088;&amp;#1072; &amp;#1087;&amp;#1091;&amp;#1089;&amp;#1090;&amp;#1099;&amp;#1093; &amp;#1092;&amp;#1080;&amp;#1075;&amp;#1091;&amp;#1088;&amp;#1085;&amp;#1099;&amp;#1093; &amp;#1089;&amp;#1082;&amp;#1086;&amp;#1073;&amp;#1086;&amp;#1082; &amp;#1086;&amp;#1073;&amp;#1103;&amp;#1079;&amp;#1072;&amp;#1090;&amp;#1077;&amp;#1083;&amp;#1100;&amp;#1085;&amp;#1072;.
       &amp;#1053;&amp;#1072;&amp;#1095;&amp;#1080;&amp;#1085;&amp;#1072;&amp;#1103; &amp;#1089;&amp;#1086; &amp;#1074;&amp;#1090;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1075;&amp;#1086; &amp;#1082;&amp;#1072;&amp;#1076;&amp;#1088;&amp;#1072;, &amp;#1086;&amp;#1090;&amp;#1073;&amp;#1080;&amp;#1074;&amp;#1072;&amp;#1077;&amp;#1090; &amp;#1087;&amp;#1086;&amp;#1076; &amp;#1089;&amp;#1077;&amp;#1073;&amp;#1103; &amp;#1084;&amp;#1077;&amp;#1089;&amp;#1090;&amp;#1086;.
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{block}&lt;/span&gt;
  }

  &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.5&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\onslide&lt;/span&gt;&amp;lt;3&amp;gt;{
       &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{alertblock}&lt;/span&gt;{&amp;#1054;&amp;#1089;&amp;#1086;&amp;#1073;&amp;#1086; &amp;#1074;&amp;#1072;&amp;#1078;&amp;#1085;&amp;#1086;}
         &amp;#1053;&amp;#1077; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1077;&amp;#1075;&amp;#1088;&amp;#1091;&amp;#1078;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1086;&amp;#1074;&amp;#1077;&amp;#1088;&amp;#1083;&amp;#1077;&amp;#1103;&amp;#1084;&amp;#1080;!  &amp;#1042;&amp;#1088;&amp;#1077;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1080; &amp;#1085;&amp;#1077; &amp;#1093;&amp;#1074;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1090; &amp;#1087;&amp;#1077;&amp;#1088;&amp;#1077;&amp;#1082;&amp;#1083;&amp;#1102;&amp;#1095;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1089;&amp;#1083;&amp;#1072;&amp;#1081;&amp;#1076;&amp;#1099;.
       &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{alertblock}&lt;/span&gt;
    }
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\column&lt;/span&gt;{0.5&lt;span style=&quot;color: #d3d3d3;&quot;&gt;\textwidth&lt;/span&gt;}
    &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\onslide&lt;/span&gt;&amp;lt;3&amp;gt;{
       &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;{&amp;#1055;&amp;#1088;&amp;#1080;&amp;#1084;&amp;#1077;&amp;#1088;}
         &amp;#1042; &amp;#1076;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1086;&amp;#1084; &amp;#1089;&amp;#1083;&amp;#1091;&amp;#1095;&amp;#1072;&amp;#1077; &amp;#1084;&amp;#1077;&amp;#1089;&amp;#1090;&amp;#1086; &amp;#1086;&amp;#1090;&amp;#1073;&amp;#1080;&amp;#1090;&amp;#1086; &amp;#1077;&amp;#1097;&amp;#1105; &amp;#1076;&amp;#1086; &amp;#1087;&amp;#1086;&amp;#1103;&amp;#1074;&amp;#1083;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1103; &amp;#1101;&amp;#1083;&amp;#1077;&amp;#1084;&amp;#1077;&amp;#1085;&amp;#1090;&amp;#1072;, &amp;#1080;
         &amp;#1073;&amp;#1091;&amp;#1076;&amp;#1077;&amp;#1090; &amp;#1074;&amp;#1089;&amp;#1105; &amp;#1077;&amp;#1097;&amp;#1105; &amp;#1079;&amp;#1072;&amp;#1088;&amp;#1077;&amp;#1079;&amp;#1077;&amp;#1088;&amp;#1074;&amp;#1080;&amp;#1088;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1085;&amp;#1086; &amp;#1087;&amp;#1086;&amp;#1089;&amp;#1083;&amp;#1077; &amp;#1077;&amp;#1075;&amp;#1086; &amp;#1089;&amp;#1082;&amp;#1088;&amp;#1099;&amp;#1090;&amp;#1080;&amp;#1103;.
       &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{exampleblock}&lt;/span&gt;
    }
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{columns}&lt;/span&gt;
  &lt;span style=&quot;color: #00ffff;&quot;&gt;\vspace&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{0.5cm}&lt;/span&gt;

  &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\only&lt;/span&gt;&amp;lt;4&amp;gt;{
     &lt;span style=&quot;color: #d3d3d3;&quot;&gt;\alert&lt;/span&gt;{&amp;#1057;&amp;#1083;&amp;#1077;&amp;#1076;&amp;#1091;&amp;#1077;&amp;#1090; &amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1090;&amp;#1080;&amp;#1090;&amp;#1100; &lt;span style=&quot;color: #00ffff;&quot;&gt;\emph&lt;/span&gt;&lt;span style=&quot;color: #ffff00; background-color: #1B3035; font-weight: bold;&quot;&gt;{&amp;#1074;&amp;#1085;&amp;#1080;&amp;#1084;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077;}&lt;/span&gt; &amp;#1085;&amp;#1072; &amp;#1087;&amp;#1088;&amp;#1077;&amp;#1086;&amp;#1073;&amp;#1088;&amp;#1072;&amp;#1079;&amp;#1086;&amp;#1074;&amp;#1072;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1074;&amp;#1086;&amp;#1083;&amp;#1085;&amp;#1086;&amp;#1074;&amp;#1086;&amp;#1081;
        &amp;#1092;&amp;#1091;&amp;#1085;&amp;#1082;&amp;#1094;&amp;#1080;&amp;#1080; &amp;#1092;&amp;#1086;&amp;#1090;&amp;#1086;&amp;#1085;&amp;#1072;}

     &amp;#1056;&amp;#1072;&amp;#1079;&amp;#1083;&amp;#1086;&amp;#1078;&amp;#1077;&amp;#1085;&amp;#1080;&amp;#1077; &amp;#1087;&amp;#1086; &lt;span style=&quot;color: #ffa07a;&quot;&gt;&amp;lt;&amp;lt;&amp;#1050;&amp;#1083;&amp;#1077;&amp;#1073;&amp;#1096;&amp;#1072;&amp;#1084;&amp;gt;&amp;gt;&lt;/span&gt; &amp;#1085;&amp;#1072;&amp;#1087;&amp;#1080;&amp;#1089;&amp;#1072;&amp;#1090;&amp;#1100; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1097;&amp;#1077; &amp;#1087;&amp;#1088;&amp;#1086;&amp;#1089;&amp;#1090;&amp;#1086;&amp;#1075;&amp;#1086;!
     &lt;span style=&quot;color: #00ffff;&quot;&gt;\begin&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{equation}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;
       &lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\label&lt;/span&gt;&lt;span style=&quot;color: #7fffd4;&quot;&gt;{eq:1}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;
       |JlM &lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\rangle&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\sum&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\mu&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;=-J}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{J}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt; C_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{lM - &lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\mu&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;, 1&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\mu&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{JM}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;
       Y_&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;{l,M-&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;\mu&lt;/span&gt;&lt;span style=&quot;color: #deb887; font-size: 80%;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\theta&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\varphi&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;) |1,&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\mu&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;\rangle&lt;/span&gt;&lt;span style=&quot;color: #deb887;&quot;&gt;
     &lt;/span&gt;&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{equation}&lt;/span&gt;
  }
&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{frame}&lt;/span&gt;

&lt;span style=&quot;color: #00ffff;&quot;&gt;\end&lt;/span&gt;&lt;span style=&quot;color: #87cefa;&quot;&gt;{document}&lt;/span&gt;

&lt;/pre&gt;


&lt;p&gt;И вот так выглядит этот пример у меня (кадры одного слайда
сгруппировал):

&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkI6bCkbfSANN5jRop4017SC6xwltF68I7IibQOxL_4JqcuES_m1zyXQBsPtV8E8vU82AYThimx_QSUOXH1udCzeFN1tITIc55w7CWml_QmjhPAcmaum375p_jrdaMhDH2jkInMuQkEw/s1600-h/presentation-0.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkI6bCkbfSANN5jRop4017SC6xwltF68I7IibQOxL_4JqcuES_m1zyXQBsPtV8E8vU82AYThimx_QSUOXH1udCzeFN1tITIc55w7CWml_QmjhPAcmaum375p_jrdaMhDH2jkInMuQkEw/s320/presentation-0.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5327549319161608114&quot; /&gt;&lt;/a&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5AHoeW883e6ZIlidgv3KfbGQdjrkSWhueo8ZPsPMUYHKZrGdCConjlnIlkfqu0Kemf2sxVt_qPc67kk8o8IC6jyS-PMuhczZUzkZTBEYNYFGKtAqGo5IblOS24hqjgS5CAIDCx_rOTZo/s1600-h/montage1.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 243px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5AHoeW883e6ZIlidgv3KfbGQdjrkSWhueo8ZPsPMUYHKZrGdCConjlnIlkfqu0Kemf2sxVt_qPc67kk8o8IC6jyS-PMuhczZUzkZTBEYNYFGKtAqGo5IblOS24hqjgS5CAIDCx_rOTZo/s320/montage1.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5327551364530360370&quot; /&gt;&lt;/a&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0rVxcoEjBWLsOM3mXdkGMiNaIQszUYIp6tSKsdwH06V9bRwGxrlnlNKxiqLPUyD-ryNwTmo3ZLlBtT5y35wSu7MNjvhbUTiTjedhgAc2HozIrl6JnC-_yw3G-CuuTZ82Lg1a7Ab7f2c/s1600-h/montage2.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 243px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl0rVxcoEjBWLsOM3mXdkGMiNaIQszUYIp6tSKsdwH06V9bRwGxrlnlNKxiqLPUyD-ryNwTmo3ZLlBtT5y35wSu7MNjvhbUTiTjedhgAc2HozIrl6JnC-_yw3G-CuuTZ82Lg1a7Ab7f2c/s320/montage2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5327551367127918066&quot; /&gt;&lt;/a&gt;

&lt;p&gt;К прочтению:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.uoregon.edu/~noeckel/PDFmovie.html&quot;&gt;Включение анимации в презентации&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rennes.enst-bretagne.fr/~gbertran/pages/tutorials_latex.html&quot;&gt;Отличное руководство по LaTeX в общем и по beamer в частности&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://mydebianblog.blogspot.com/2007/07/latex-beamer.html&quot;&gt;Презентации powerpoint? Лучше! Встречаем beamer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.scribd.com/doc/28011/beamer-guide&quot;&gt;Beamer-Guide&lt;/a&gt; -
только что нашёл это замечательное руководство!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Только что узнал, что появилась реальная альтернатива чистому a0poster
для создания постера для конференций в виде
&lt;a href=&quot;http://www-i6.informatik.rwth-aachen.de/~dreuw/latexbeamerposter.php&quot;&gt;beamerposter&lt;/a&gt; (о том как сделать постеры в LaTeX я уже &lt;a href=&quot;http://tuxray.blogspot.com/2009/05/latex.html&quot;&gt;нацарапал&lt;/a&gt;).
Пока неизвестно как это будет дружить с русским (в случае a0poster
ломались начертания шрифтов заголовков при подключении T2A, без
которого никак).  В любом случае, интересно!&lt;/p&gt;


&lt;/span&gt;</description><link>http://tuxray.blogspot.com/2009/04/presentations-in-latex-beamer.html</link><author>noreply@blogger.com (Maxim G. Ivanov)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6UNuyij2tOIa2uAbpHLxvUelk24ENxWsULCNQzyfvbwULlvRJZYhMPtUzLC_lmFKRdqhRAc33La-dChvJEhqRy8H6tcb_dewvFUcltSqHFSEojiRcjwQ7BleGfMJCrAyK8d66Ki3HLFA/s72-c/red_on_black.png" height="72" width="72"/><thr:total>4</thr:total></item></channel></rss>