From: Yury Aliaev <mutab0r@rambler.ru> To: ALT Linux Community <community@lists.altlinux.org>, freepublish <freepublish@lrn.ru> Subject: [Comm] Проблемы шрифтов больших размеров (попытка разобраться) Date: Thu, 15 Jun 2006 17:41:33 +0400 Message-ID: <4491638D.2010101@rambler.ru> (raw) In-Reply-To: <449135ED.70006@rambler.ru> Пытаясь разобраться с проблемой, я нарыл некоторые вещи: Во-первых, рассмотрим файл описания одного из семейств шрифтов в 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. <scantokens> 4100 <to be read again> / 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 из Сизифа. Всех благ! Юрий.
next prev parent reply other threads:[~2006-06-15 13:41 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-06-15 10:26 [Comm] LaTeX, плакат, большие шрифты... :( Yury Aliaev 2006-06-15 13:41 ` Yury Aliaev [this message] 2006-06-16 10:19 ` [Comm] Ура! Я победил! Yury Aliaev 2006-06-16 14:45 ` Alexej Kryukov 2006-06-16 15:38 ` Yury Aliaev
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4491638D.2010101@rambler.ru \ --to=mutab0r@rambler.ru \ --cc=community@lists.altlinux.org \ --cc=freepublish@lrn.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git