From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4491638D.2010101@rambler.ru> Date: Thu, 15 Jun 2006 17:41:33 +0400 From: Yury Aliaev User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.7.2) Gecko/20040808 X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: ALT Linux Community , freepublish References: <449135ED.70006@rambler.ru> In-Reply-To: <449135ED.70006@rambler.ru> X-Enigmail-Version: 0.85.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Auth-User: mutab0r, whoson: (null) Subject: [Comm] =?koi8-r?b?8NLPwszFzdkg29LJxtTP1yDCz8zY28nIINLB2s3F0s/X?= =?koi8-r?b?ICjQz9DZ1MvBINLB2s/C0sHU2NPRKQ==?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.7 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Jun 2006 13:35:09 -0000 Archived-At: List-Archive: List-Post: Пытаясь разобраться с проблемой, я нарыл некоторые вещи: Во-первых, рассмотрим файл описания одного из семейств шрифтов в LaTeX, про который говорится, что "типа там нету нужного размера", например /usr/share/texmf/tex/latex/cyrillic/t2acmr.fd. Там, в частности, есть такая строчка: \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}% {<5><6><7><8><9><10><10.95><12><14.4>% <17.28><20.74><24.88><29.86><35.83>genb*#5}{}} Не понятно, почему там указаны только отдельные значения размеров шрифтов (шрифты-то масшатбируемые), а главное -- всё заканчивается 35,83-мя пунктами, в то время как мне нужно до 80. Ладно, пытаюсь сделать грязный хак и добавить в список параметров <80>. Запускаю LaTeX, он пытается генерить шрифты и... обламывается! Оставив записку примерно такого содержания (там размер не 80, а меньше, но это без разницы)(привожу имеющий отношение к делу фрагмент): (/usr/share/texmf/fonts/source/lh/base/lkligtbl.mf) ! Enormous number has been reduced. 4100 / use_driver->...base);else:gensize:=scantokens(ss)/ 100;ss:="input ec"&(substr... l.259 use_driver(fonteq) ; I can't handle numbers bigger than about 4095.99998; so I've changed your constant to that maximum amount. >> 40.96 Дальше я выяснил, что в файлике /usr/share/texmf/fonts/source/lh/base/fikparm.mf есть такие строчки: ss:=substring(length(param_base)-ii,length(param_base)) of param_base; if (genmode="ex") or (genmode="ec"): % - set gensize for ec parameter files if (ss="8") or (ss="10"): % for EC slitex fonts exbase:=1; %!!! THAT'S TRICK: we don't need exbase at all gensize:=scantokens(ss); ss:="input "& (substring(0,fonteq-2) of param_base) & "ec" & (substring(fonteq,length(param_base)) of param_base); else: gensize:=scantokens(ss)/100; Получаем следующее: прога kpathsea, отвечающая за управление шрифтами, создаёт файл исходника шрифта, именуемый /var/lib/texmf/source/lh/lh-t2a/larm4100.mf, который она и подсовывает бедному metafont'у. А в его скриптах и имеются вышепроцитированные строчки, смысл которых сводится к тому, что из имени файла вычисляется значение размера шрифта. Делается это так: выделяется цифровая часть (в данном случае -- 4100), делится на 100 и получаем размер шрифта: 41,00. Но не тут-то было! Оказывается, metafont не умеет работать с числами, большими чем 4096. Тут-то облом и наступает :( Получается порочная схема, на позволяющая сгенерировать шрифт размером больше 40 пунктов. Наверное, никому из пользователей ALT Linux до меня это не было нужно, раз никто не наткнулся. Я считаю, что проблема достаточно серьёзная, и её нужно решить, хотя чувствую, что для этого придётся основательно покопаться в кишках ТеХ'а. Всё сказанное относится к ТеХ'у из комплекта Мастера 2.4. Возможно, в сизифе это уже решено (проверю на днях). Тогда всё заметно упрощается т.к. достаточно будет спортировать TeX из Сизифа. Всех благ! Юрий.