From: "Alexander Cherepanov" Received: by relay1.vsu.ru (CommuniGate Pro PIPE 5.2.16) with PIPE id 196546210; Sun, 16 Aug 2009 00:03:41 +0400 X-drweb-hash: Received: from brown.mccme.ru ([213.171.48.226] verified) by relay1.vsu.ru (CommuniGate Pro SMTP 5.2.16) with ESMTPS id 196546202 for CyrTeX-ru@vsu.ru; Sun, 16 Aug 2009 00:03:33 +0400 Received-SPF: pass receiver=relay1.vsu.ru; client-ip=213.171.48.226; envelope-from=cherepan@mccme.ru Received: from [213.171.48.245] (helo=localhost) by brown.mccme.ru with smtp (Exim 4.69 (FreeBSD)) (envelope-from ) id 1McPS8-000ERg-6l for CyrTeX-ru@vsu.ru; Sun, 16 Aug 2009 00:02:12 +0400 Message-ID: <000501ca1de3$64204aa0$0100007f@localdomain> To: "Cyrillic TeX Users Group" References: Subject: =?koi8-r?B?UmU6IPfP08vMycPB1MXM2M7ZyiDJINfP0NLP08nUxczYztnKINrOwQ==?= =?koi8-r?B?y8kg0yDUz97Lwc3JIC0tLSDLwcsgzsHCydLB1Ng/?= Date: Sun, 16 Aug 2009 00:02:59 +0400 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 FL-Build: Fidolook 2002 (SL) 6.0.2800.85 - 28/1/2003 19:07:30 X-SA-Exim-Connect-IP: 213.171.48.245 X-SA-Exim-Mail-From: cherepan@mccme.ru X-SA-Exim-Scanned: No (on brown.mccme.ru); SAEximRunCond expanded to false X-Bounce-ID: brown.mccme.ru X-DrWeb-FlyTrap-Class: SPAM X-DrWeb-FlyTrap-CID: 1 X-DrWeb-FlyTrap-ID: 44857990 X-Junk-Score: [XXXXXXXXXX] Hello, neGODnick! You wrote to "Cyrillic TeX Users Group" on Thu, 13 Aug 2009 12:28:46 +0400: >> Поскольку ? шире, расстояние нужно сократить. Попробуйте: >> >> \DeclareTextCommandDefault{\qwdots}{% от question >> ?\kern.42\fontdimen3\font >> .\kern\fontdimen3\font >> .\kern\fontdimen3\font} > Расстояние 0.42\fontdimen3 практически идеально подошло, спасибо. Его можно посчитать несколькими способами. В духе plain tex'а: \setbox0 \hbox{!} \setbox1 \hbox{?} \count0 \wd0 \advance \count0 -\wd1 \divide \count0 2 \multiply \count0 100 \divide \count0 \fontdimen3\font \advance \count0 100 \showthe \count0 Это даст: > 42. l.13 \showthe \count0 (Здесь предполагается, что точка в знаке вопроса стоит посередине. Считаем с точность до двух цифр.) А можно просто посмотреть, как оно выглядит при наборе, и посчитать ручками. Выполнить: \noindent\hbox{!}\hbox{?}\hbox{.} \tracingonline 1 \showboxbreadth 10000 \showboxdepth 10000 \showlists \showthe \fontdimen3\font и, в частности, увидим: .\hbox(6.94275+0.0)x2.7771 ..\T2A/cmr/m/n/10 ! .\hbox(6.94275+0.0)x4.72107 ..\T2A/cmr/m/n/10 ? .\hbox(1.0553+0.0)x2.7771 ..\T2A/cmr/m/n/10 . [skip] > 1.66626pt. и дальше ручками... Кстати, чтобы понять, как чего работает в latex'е и не только, полезно это гонять с такими параметрами: \tracingmacros 2 \tracingcommands 2 >>> И ещё хотелось бы, конечно, писать не \exdots и \qwdots, а \!dots и >>> \?dots "--- так >>> было бы намного нагляднее и понятнее. >> >> Имена команд состоят только из букв, либо же из одной небуквы. Имя >> \! уже занято, так что увы. Кстати, это команда для математического режима. А для текстового можно определить как раз для !.. >> Определить \?dots в общем-то несложно: >> >> \def\?dots{...} >> >> (это команда \?, после которой обязательно должно идти dots), но, >> опять же, не уверен, что такие трюки полезны. Кстати, ровно также можно определить \?.. \def\?..{что-то там} > Нда... Было бы ещё лучше состряпать универсальную "умную" команду для > "ДВОЕТОЧИЯ", которую можно было давать после обычных "!" и "?", и > которая сама определяла бы: если она идёт после "!", то керн побольше, > если после "?", то поменьше. То есть создать конструкцию типа: > ЕСЛИ предыдущий знак это !, ТО делаем > \kern\fontdimen3\font > .\kern\fontdimen3\font > .\kern\fontdimen3\font > ЕСЛИ предыдущий знак это !, ТО делаем > \kern0.42\fontdimen3\font > .\kern\fontdimen3\font > .\kern\fontdimen3\font > ИНАЧЕ ничего не делаем > но, как я понимаю, нет способа научить команду учитывать предыдущий > знак? В общем, да. Но можно, например, поэкспериментировать с их \sfcode'ом, а в макросе проверять \spacefactor. Саша -- Alexander Cherepanov My mail is cherepan at mccme dot ru