From: "=?koi8-r?Q?=E1=CE=C4=D2=C5=CA_?= =?koi8-r?Q?=F3=C5=D7=C1=D3=D4=D8=D1=CE=CF=D7?=" Received: by relay1.vsu.ru (CommuniGate Pro PIPE 5.2.15) with PIPE id 192903847; Tue, 28 Jul 2009 19:10:03 +0400 X-drweb-hash: Received: from mx1.mail.ru ([94.100.176.15] verified) by relay1.vsu.ru (CommuniGate Pro SMTP 5.2.15) with ESMTP id 192900447 for CyrTeX-ru@vsu.ru; Tue, 28 Jul 2009 18:55:34 +0400 Received-SPF: pass receiver=relay1.vsu.ru; client-ip=94.100.176.15; envelope-from=asev69@mail.ru Received: from [88.86.215.102] (port=60692 helo=[88.86.215.102]) by mx1.mail.ru with asmtp id 1MVo5W-0005RX-00 for CyrTeX-ru@vsu.ru; Tue, 28 Jul 2009 18:55:34 +0400 Subject: Re: =?koi8-r?Q?=ED=CF=D6=CE=CF?= =?koi8-r?Q?_=CC=C9?= =?koi8-r?Q?_=CF=D4=CB=CC=C0=DE=C9=D4=D8?= =?koi8-r?Q?_=CC=C9=C7=C1=D4=D5=D2=D9=3F?= To: Cyrillic TeX Users Group In-Reply-To: References: <6ad53c4c0907271633o72ca1204t20df4aaedb7c4135@mail.gmail.com> Content-Type: text/plain; charset="KOI8-R" Date: Tue, 28 Jul 2009 20:55:51 +0600 Message-Id: <1248792951.32151.63.camel@debian.asev.ru> Mime-Version: 1.0 X-Mailer: Evolution 2.26.3 Content-Transfer-Encoding: 8bit X-Spam: Not detected X-Mras: Ok X-DrWeb-FlyTrap-Class: SPAM X-DrWeb-FlyTrap-CID: 1 X-DrWeb-FlyTrap-ID: 43080562 X-Junk-Score: [XXXXXXXXXX] Здравствуйте, Эдуард. В Втр, 28/07/2009 в 06:38 +0400, neGODnick пишет: > > Насчёт листингов. Дональд Кнут в своей книге "Всё про TeX" предлагает такой способ оформления листингов (позволю себе немного процитировать, с. 276, 388): "Компьютерные программы доставляют различного рода затруднения, так как некоторые программисты любят выбирать такой стиль, чтобы позиции табуляции изменялись от строки к строке. Рассмотрим, например, фрагмент следующей программы: if n < r then n := n + 1 else begin print_totals; n := 0 end; while p > 0 do begin q := link(p); free_node(p); p := 1; end; Здесь задано такое табулирование, чтобы операторы 'then' и 'else' стояли друг под другом и так же располагались операторы 'begin' и 'end'. Это достигается тем, что устанавливается новый образец строки, когда необходима новая позиция табуляции. Однако это утомительно, а простая система TeX делает это немного проще. Напечатав символ & справа от всех существующих позиций табуляции, вы устанавливаете такую табуляцию, что только что завершённая колонка будет иметь естественную ширину. Кроме того, существует операция '\cleartabs', которая устанавливает заново все позиции табуляции справа от текущей колонки. Поэтому приведённая выше компьютерная программа "TeXнически" может иметь следующий вид: $$\vbox{ \+\bf if $n0$ do\cr \+\quad\cleartabs&{\bf begin} $q:={\it link}(p)$; ${\it free\_node}(p)$; $p:=q$;\cr \+&{\bf end};\cr }$$" Если существующие решения по какой-либо причине вас не устраивают и разбираться в них и вносить изменения нет желания (возможности, времени и т.д.), можно сверстать текст "в рукопашную". -- С уважением, Андрей Севастьянов