<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог НТЦ Метротек &#187; разработка</title>
	<atom:link href="http://blog.metrotek.spb.ru/category/%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.metrotek.spb.ru</link>
	<description>блог разработчиков</description>
	<lastBuildDate>Sat, 21 Jan 2012 12:36:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>побочные эффекты</title>
		<link>http://blog.metrotek.spb.ru/2012/01/21/pobochnyie-effektyi/</link>
		<comments>http://blog.metrotek.spb.ru/2012/01/21/pobochnyie-effektyi/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 12:36:22 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[наблюдения]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[10G]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2910</guid>
		<description><![CDATA[наша группа разработчиков очередного устройства для 10G Ethernet вчера продемонстрировала новые функции прибора. и совершенно случайно выяснилось, что две наших платы могут сделать из обычного коммутатора 2-го уровня коммутатор (switch) 3-го. простой, но работоспособный. побочный эффект, так сказать. есть подозрение, что ребята ещё сами это не осознали. но скоро они прозреют и тогда&#8230; название и [...]]]></description>
			<content:encoded><![CDATA[<p>наша группа разработчиков очередного устройства для 10G Ethernet вчера продемонстрировала новые функции прибора. и совершенно случайно выяснилось, что две наших платы могут сделать из обычного коммутатора 2-го уровня коммутатор (switch) 3-го. простой, но работоспособный. побочный эффект, так сказать. </p>
<p>есть подозрение, что ребята ещё сами это не осознали. но скоро они прозреют и тогда&#8230;</p>
<p>название и назначение плат, к сожалению, пока озвучить не можем. коммерческая тайна.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2012/01/21/pobochnyie-effektyi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>про скорость загрузки ММТ</title>
		<link>http://blog.metrotek.spb.ru/2011/12/12/pro-skorost-zagruzki-mmt/</link>
		<comments>http://blog.metrotek.spb.ru/2011/12/12/pro-skorost-zagruzki-mmt/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 18:07:09 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[b5]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2899</guid>
		<description><![CDATA[сегодня холодный старт занимает уже 27 секунд. всё ближе и ближе к намеченной цели. ps. эту новость должен был запостить Юра Людкевич. но я успел раньше ;)]]></description>
			<content:encoded><![CDATA[<p>сегодня холодный старт занимает уже 27 секунд. всё ближе и ближе к намеченной цели.</p>
<p>ps. эту новость должен был запостить Юра Людкевич. но я успел раньше ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/12/12/pro-skorost-zagruzki-mmt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>новый механизм обновления</title>
		<link>http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/</link>
		<comments>http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 14:09:17 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[b5]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[железо]]></category>
		<category><![CDATA[круто]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2889</guid>
		<description><![CDATA[да, забыл сказать, что мы сделали новый механизм обновления ПО на приборе Беркут-ММТ. до сегодняшнего дня над нами висел дамоклов меч, выкованный из проклятий несчастных пользователей, пытавшихся обновить софт самостоятельно. каюсь, даже не каждый наш разработчик мог выполнить эту процедуру без ошибок. но теперь&#8230; теперь достаточно скопировать четыре файла на usb-флэшку, подключить её, и прибор [...]]]></description>
			<content:encoded><![CDATA[<p>да, забыл сказать, что мы сделали новый механизм обновления ПО на приборе <a href="http://metrotek.spb.ru/b45.html">Беркут-ММТ</a>. до сегодняшнего дня над нами висел дамоклов меч, выкованный из проклятий несчастных пользователей, пытавшихся обновить софт самостоятельно. </p>
<p>каюсь, даже не каждый наш разработчик мог выполнить эту процедуру без ошибок. но теперь&#8230; теперь достаточно скопировать четыре файла на usb-флэшку, подключить её, и прибор за три с половиной минуты обновит себя сам. вот так. </p>
<p>идея наших программистов Юры Людкевича и Вадима Попова воплощена в жизнь!</p>
<p>да, &#171;холодный&#187; старт нынче занимает 38 секунд. и это не предел. в планах&nbsp;&#8212; достичь скорости максимум 10 сек.</p>
<p>файлы с обновлениями будут предоставлены чуть позже. документация к тому времени тоже подоспеет. но должен расстроить пользователей <a href="http://metrotek.spb.ru/b4.html">первой ревизии</a> прибора: для него, к сожалению, обновлений не будет.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/12/06/novyiy-mehanizm-obnovleniya/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Беркут-ММТ</title>
		<link>http://blog.metrotek.spb.ru/2011/12/06/berkut-mmt/</link>
		<comments>http://blog.metrotek.spb.ru/2011/12/06/berkut-mmt/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 13:54:53 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[b5]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[pmmcu]]></category>
		<category><![CDATA[круто]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2876</guid>
		<description><![CDATA[сомневающиеся личности иногда поминают нас недобрым словом за недоработки в приборе Беркут-ММТ. как за первый, так и второй варианты. но в последней аппаратной ревизии нам таки удалось неимоверно повысить и надёжность, и юзабельность устройства. в частности, больной вопрос для всех современных мобильных (читай: переносных, потому как портативным наш прибор назвать сложно, да) разработок &#8212; вопрос [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.metrotek.spb.ru/wp-content/uploads/2011/12/g3820.png" alt="" title="g3820" width="147" height="140" class="alignleft size-full wp-image-2879" /> сомневающиеся личности иногда поминают нас недобрым словом за недоработки в приборе <a href="http://metrotek.spb.ru/b4.html">Беркут-ММТ</a>. как за первый, так и <a href="http://metrotek.spb.ru/b45.html">второй</a> варианты. </p>
<p>но в последней аппаратной ревизии нам таки удалось неимоверно повысить и надёжность, и юзабельность устройства. </p>
<p>в частности, больной вопрос для всех современных мобильных<span id="more-2876"></span> (читай: переносных, потому как портативным наш прибор назвать сложно, да) разработок &#8212; вопрос с управлением зарядом батарей и временем автономной работы. </p>
<p>как у нас это было устроено раньше: в платформе стоял специально обученный микроконтроллер (pmmcu &#8212; power management mcu), отвечающий за взаимодействие с контроллером заряда батарей по протоколу <a href="http://en.wikipedia.org/wiki/Smart_Battery_System">smart battery</a>. кроме того, этот микроконтроллер занимался включением/выключением прибора, контролем температур, напряжений, управлением вентиляторами и пр. </p>
<p>надо признать, что, в принципе, применение pmmcu &#8212; довольно гибкое решение. но загвоздка в том, что контроллер нагружен слишком большим количеством задач. а это влечёт за собой неизбежные ошибки при кодировании. когда количество проблем нас, мягко говоря, довело до ручки, мы подумали, а не отказаться ли от его использования совсем? и отказались.</p>
<p>параллельно выяснилось, что:<br />
a) существует несколько разновидностей специализированного чипа, отвечающего за кнопку &#171;on/off&#187;;<br />
b) контроль большинства напряжений нужен только на этапе производства, а в процессе эксплуатации совершенно бесполезен (минус несколько АЦП на плате);<br />
c) батарея умеет заряжаться в автономном режиме;<br />
d) чип, который управляет вентиляторами и температурой, может это делать как сам, так и при помощи центрального процессора;<br />
e) usb hub тоже не требует специального управления.</p>
<p>теперь pmmcu у нас в приборе нет. и всё получилось строго по <a href="http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D1%85_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87">ТРИЗ</a>: <i>устройства нет, а функция выполняется</i>. </p>
<p>ай да мы! ай да молодцы!</p>
<p>на очереди &#8212; контроллер smart battery.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/12/06/berkut-mmt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wdm-сплиттер или просто оптический сплиттер?</title>
		<link>http://blog.metrotek.spb.ru/2011/09/18/wdm-splitter-ili-prosto-opticheskiy-splitter/</link>
		<comments>http://blog.metrotek.spb.ru/2011/09/18/wdm-splitter-ili-prosto-opticheskiy-splitter/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 10:56:23 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[наблюдения]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[мозг]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2865</guid>
		<description><![CDATA[а вы никогда не пробовали &#171;случайно&#187; поставить в оптическую схему wdm-сплиттер вместо обычного (50/50) сплиттера? очень интересный эффект получается. сигнал на входе измерительного тракта уменьшается в тридцать тысячу раз. но качество принципиальной схемы после обнаружения и исправления ошибки выросло неимоверно. с чем нас и поздравляем!]]></description>
			<content:encoded><![CDATA[<p>а вы никогда не пробовали &#171;случайно&#187; поставить в оптическую схему wdm-сплиттер вместо обычного (50/50) сплиттера?</p>
<p>очень интересный эффект получается. сигнал на входе измерительного тракта уменьшается в <s>тридцать</s> тысячу раз.</p>
<p>но качество принципиальной схемы после обнаружения и исправления ошибки выросло неимоверно. с чем нас и поздравляем!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/09/18/wdm-splitter-ili-prosto-opticheskiy-splitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>USB сеть на Cortex-M3</title>
		<link>http://blog.metrotek.spb.ru/2011/07/07/usb-set-na-cortex-m3/</link>
		<comments>http://blog.metrotek.spb.ru/2011/07/07/usb-set-na-cortex-m3/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 06:35:42 +0000</pubDate>
		<dc:creator>Николай Замотаев</dc:creator>
				<category><![CDATA[b5]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[софт]]></category>
		<category><![CDATA[cortex-m3]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[круто]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2849</guid>
		<description><![CDATA[В процессе разработки наших мега-дивайсов возник вопрос о реализации захвата пакетов с карты и использования ip-utils (ping/traceroute и тд) с карты.  Из нескольких возможных вариантов, было решено пойти средствами операционной системы и реализовать в дополнение к основному последовательному интерфейсу ещё и два сетевых (по количеству ethernet-портов модуля b5-gbe, для которого мы сейчас пишем софт). Такой [...]]]></description>
			<content:encoded><![CDATA[<p>В процессе разработки наших мега-дивайсов возник вопрос о реализации захвата пакетов с карты и использования ip-utils (ping/traceroute и тд) с карты.  Из нескольких возможных вариантов, было решено пойти средствами операционной системы и реализовать в дополнение к основному последовательному интерфейсу ещё и два сетевых <span id="more-2849"></span>(по количеству ethernet-портов модуля b5-gbe, для которого мы сейчас пишем софт).</p>
<p>Такой подход позволяет использовать стандартные средства ping и traceroute.</p>
<p>Для реализации сетевого интерфейса (как собственно и консоли карты) использовался любимый нами USB-шный класс CDC (Communication Device Class). В этот класс входят подклассы позволяющие реализовать интерфейсы к телефонным линиям, модемы и сетевые карты (проводные и беспроводные). Большим плюсом использования стандартного класса USB-устройства, является отсутствие необходимости писать драйвера (в Linux/*nix, Windows всё равно требует хотя бы .inf файл).</p>
<p>Так вот сетевых устройств в классе CDC может быть несколько видов. Это подклассы ECM,EEM, NCM и вариации на тему ACM (вместе с rndis), которые так любит windows. Устройства отличаются степенью поддержки операционной системы, степенью документированности и некоторыми другими особенностями.</p>
<p>Итак:</p>
<ul>
<li>Rndis &#8212; нестандартная вариация на тему ACM. Вообще-то подкласс ACM &#8212; это последовательный порт или модем, но microsoft, традиционно наплевав на все имеющиеся стандарты создала собственный. Rndis, по своей сути, представляет собой реализацию ndis API поверх usb. Используется microsoft-ом и в КПК под windows mobile для синхронизации и связи с компьютером. Так как этот класс не полностью документирован, да и не стандартен &#8212; это не наш путь.</li>
<li>ECM &#8212; Ethernet Control Model &#8212; это реализация сетевой карты (в стандарте есть поддержка проверка состояния линка, мак-адрес карты хранится в дескрипторе и тд). Данный стандарт требует двух интерфейсов: для передачи данных и управляющего. За терминологией обращаться на <a href="http://usb.org">usb.org</a> или сюда: <a href="http://www.beyondlogic.org/usbnutshell/usb1.shtml">http://www.beyondlogic.org/usbnutshell/usb1.shtml</a>. Вторая ссылка намного короче и более просто расписана :).</li>
<li>EEM &#8212; это Ethernet Emulation Model &#8212; в этом случае USB используется исключительно как транспорт ethernet пакетов. Состояние линка не передаётся, скорость не настраивается и так далее. Зато интерфейс просто и для него нужно только 2 endpoint-а.</li>
</ul>
<p>Отсюда мы и подходим к выбору варианта сетевого интерфейса. Тут всё оказалось совсем просто &#8212; для реализации ECM нам просто не хватило доступных endpoint-ов в контроллере. Так что выбор остановился на EEM. Даже с ним, доступные 6 endpoint-ов, разделились полностью, и пришлось слегка обмануть реализацию консоли, указав в дескрипторе несуществующий endpoint.</p>
<p>Так вот, в stm32f105 есть 6 доступных endpoint-ов, не считая нулевого (по 3 IN и OUT). В итоге хватает впритык и резерва не остаётся. Для ECM уже endpoint-ов не хватает, так как под эту модель требуется по 3 endpoint-а на интерфейс.</p>
<p>Передача данных в модели EEM, или как же это заставить работать&#8230;.</p>
<p>Для того, чтобы сетевое устройство с классом EEM зарегистрировалось в системе, достаточно правильно написать USB дескриптор. Создаётся интерфейс состоящий из двух bulk endpoint-ов, одного IN и одного OUT, ему приписывается класс CDC (0&#215;02), подкласс EEM (0x0c), и протокол EEM (0&#215;07). На этом все тонкости и заканчиваются. Пакеты в EEM передаются как есть, в виде ethernet фреймов, с дописанным в начале двухбайтным заголовком.</p>
<p>Выглядит он так:</p>
<table border="1">
<tbody>
<tr>
<td style="text-align: center" colspan="3">Биты</td>
</tr>
<tr>
<td>15</td>
<td>14</td>
<td>13-0</td>
</tr>
<tr>
<td>Команда/данные</td>
<td>CRC &#8212; используется или  fake</td>
<td>Длина кадра</td>
</tr>
</tbody>
</table>
<p>Пятнадцатый бит определяет &#8212; является ли этот кадр данными идущими в интерфейс или служебной командой EEM. Всего есть 6 команд, из которых обязательными являются только Echo и Echo response. (Хотя как выяснилось, линуксовый драйвер, даже без реализации разбора этих команд вполне нормально работает).</p>
<p>Четырнадцатый бит определяет, используется ли реальный подсчёт CRC, или на месте CRC передаётся последовательносьт 0xdeadbeef.</p>
<p>Оставшиеся биты кодируют длину фрейма следующего за этими двумя байтами заголовка.</p>
<p>После реализации разбора заголовков, приём и передача заработали без проблем, за исключением того, что USB-шная библиотека от ST не позволяет реализовать USB-transfer длинее чем размер FIFO в stm32, а ethernet пакеты в EEM нельзя разбивать между transfer-ами.<br />
Таким образом, сейчас реализован приём и передача пакетов до 254 байт длиной. Пропускная способность не измерялась.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/07/07/usb-set-na-cortex-m3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Беркут-ETX: 0.0.5-4. Первое обновление ПО!</title>
		<link>http://blog.metrotek.spb.ru/2011/04/20/berkut-etx-0-0-5-4-pervoe-po/</link>
		<comments>http://blog.metrotek.spb.ru/2011/04/20/berkut-etx-0-0-5-4-pervoe-po/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 10:30:02 +0000</pubDate>
		<dc:creator>Алексей Литвинов</dc:creator>
				<category><![CDATA[b3etx]]></category>
		<category><![CDATA[etx]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[софт]]></category>
		<category><![CDATA[релиз]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2770</guid>
		<description><![CDATA[Как уже было сказано, Беркут-ЕТХ официально поставляется в России. Вот и первое обновление ПО, которое полностью поддерживает заявленную спецификацию. Скачать можно отсюда.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.metrotek.spb.ru/wp-content/uploads/2010/11/yes.png" alt="" title="yes" width="80" height="82" class="alignleft size-full wp-image-2403" />Как уже <a href="http://blog.metrotek.spb.ru/2011/02/16/bercut-etx/">было сказано</a>, Беркут-ЕТХ официально поставляется в России. Вот и первое обновление ПО, которое полностью поддерживает заявленную <a href="http://blog.metrotek.spb.ru/2011/01/12/etx-aka-analizator-10-gigabit-ethernet/">спецификацию</a>.</p>
<p>Скачать можно <a href="http://metrotek.spb.ru/files/b3etx/0.0.5/b3etx_0.0.5-4/">отсюда</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/04/20/berkut-etx-0-0-5-4-pervoe-po/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APD? какой APD? R.I.P.</title>
		<link>http://blog.metrotek.spb.ru/2011/04/19/apd-kakoy-apd-r-i-p/</link>
		<comments>http://blog.metrotek.spb.ru/2011/04/19/apd-kakoy-apd-r-i-p/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 08:34:21 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[разработка]]></category>
		<category><![CDATA[мозг]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2763</guid>
		<description><![CDATA[Спалили лавинный фотодиод, с чем нас и поздравляю. Вещь в хозяйстве полезная и недешёвая. А потому что не нужно в него лазером светить без аттенюаторов. Но всё, что делается, делается не зря, и будем считать, что диод отдал свою жизнь во имя великой цели. PS. Кстати, что-то мы давно о новых релизах ничего не сообщали. [...]]]></description>
			<content:encoded><![CDATA[<p>Спалили лавинный фотодиод, с чем нас и поздравляю. Вещь в хозяйстве полезная и недешёвая. А потому что не нужно в него лазером светить без аттенюаторов. </p>
<p>Но всё, что делается, делается не зря, и будем считать, что диод отдал свою жизнь во имя великой цели.</p>
<p>PS. Кстати, что-то мы давно о новых релизах ничего не сообщали. Ничего, сейчас объявления пойдут косяком&#8230; И про <a href="http://metrotek.spb.ru/b3et.html">ET</A>, и про <a href="/2011/02/16/bercut-etx/">ETX</a>, и про <a href="http://metrotek.spb.ru/b4.html">MMT</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/04/19/apd-kakoy-apd-r-i-p/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Буклет с помощью LaTeX на раз-два-три</title>
		<link>http://blog.metrotek.spb.ru/2011/04/15/buklet-s-pomoshhyu-latex-na-raz-dva-tri/</link>
		<comments>http://blog.metrotek.spb.ru/2011/04/15/buklet-s-pomoshhyu-latex-na-raz-dva-tri/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 11:01:06 +0000</pubDate>
		<dc:creator>Екатерина Саковская</dc:creator>
				<category><![CDATA[разработка]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[документация]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2726</guid>
		<description><![CDATA[Пакет pdfpages для LaTeX позволяет втавлять в .tex файлы страницы из pdf-документов. Для вставки используется директива \includepdf[]{}, которая имеет множество параметров. Задавая определённые значения параметров можно любой pdf-документ преобразовать таким образом, чтобы впоследствии без труда распечатать его с двух сторон листа в виде брошюры нужного формата. Раз Создаем .tex файл, например, booklet.tex следующего содержания: \documentclass[a4paper]{article} [...]]]></description>
			<content:encoded><![CDATA[<p>Пакет <a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pdfpages/">pdfpages</a> для LaTeX позволяет втавлять в .tex файлы страницы из pdf-документов. Для вставки используется директива <code>\includepdf[]{}</code>, которая имеет множество параметров. Задавая определённые значения параметров можно любой pdf-документ преобразовать таким образом, чтобы впоследствии без труда распечатать его с двух сторон листа в виде брошюры нужного формата.<span id="more-2726"></span> </p>
<p>                                                             <strong>Раз</strong></p>
<p>Создаем .tex файл, например, booklet.tex следующего содержания:<br />
<code><br />
\documentclass[a4paper]{article}<br />
\usepackage[final]{pdfpages}<br />
\begin{document}<br />
\includepdf[pages=-, booklet, landscape]{имя_файла.pdf}<br />
\end{document}<br />
</code></p>
<p>                                                <strong>Два</strong></p>
<p>Компилируем файл с помощью программы pdflatex:</p>
<p><code>pdflatex booklet.tex</code></p>
<p>В результате получаем нужный нам документ booklet.pdf.</p>
<p><strong>Три</strong></p>
<p>Распечатываем документ, выбрав двухстороннюю печать по длинной стороне. Вот и все, брошюра готова.</p>
<p>А теперь поподробнее о директиве \includepdf: она служит для вставки в .tex файл страниц pdf-документа в нужном для формирования брошюры виде. Обязательным параметром является имя преобразуемого pdf-документа. В качестве необязательных параметров можно передать номера страниц, которые мы хотим преобразовать в брошюру (<code>pages=-</code>  означает, что нужно преобразовать все страницы документа). Параметр <code>booklet</code> служит для расположения двух страниц на листе, <code>landscape</code> устанавливает альбомную ориентацию страницы.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/04/15/buklet-s-pomoshhyu-latex-na-raz-dva-tri/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Не умеем жить, эх, по-другому?</title>
		<link>http://blog.metrotek.spb.ru/2011/04/08/ne-umeem-zhit-eh-po-drugomu/</link>
		<comments>http://blog.metrotek.spb.ru/2011/04/08/ne-umeem-zhit-eh-po-drugomu/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 17:49:36 +0000</pubDate>
		<dc:creator>Антон Фельдман</dc:creator>
				<category><![CDATA[разработка]]></category>
		<category><![CDATA[круто]]></category>

		<guid isPermaLink="false">http://blog.metrotek.spb.ru/?p=2722</guid>
		<description><![CDATA[Yes! Заработало! На настройку ушло полторы недели, а не четыре месяца. А что заработало &#8212; расскажу позже.]]></description>
			<content:encoded><![CDATA[<p>Yes! Заработало! На настройку ушло полторы недели, а не четыре месяца.</p>
<p>А что заработало &#8212; расскажу позже.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.metrotek.spb.ru/2011/04/08/ne-umeem-zhit-eh-po-drugomu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

