The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

rtfm wanted (rus TeX howto)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: rus, TeX, howto,  (найти похожие документы)
From: Andrey Janishewskiy <Andrey_Janishewskiy@f509.n5030.z2.fidonet.org> Subject: rtfm wanted Date: Mon, 05 May 97 14:22:14 +0400 X-Comment-To: Paul Argentoff Organization: RGPU Station, St.Petersburg, [Wt: 00:00-24:00] Path: xtalk.msk.su!f510.n5020.z2!f79.n5020.z2!f239.n5030!f509.n5030!not-for-mail Newsgroups: RU.TEX Distribution: fido7 Message-ID: <862854093@f509.n5030.z2.FidoNet.ftn> References: <862278749@p3.f7.n5021.z2.ftn> X-FTN-AREA: RU.TEX X-FTN-MSGID: 2:5030/509@FidoNet 336e1bcd X-FTN-REPLY: 2:5021/7.3 3365545d X-FTN-TID: FastEcho 1.45a 12378965 X-FTN-Tearline: GoldED 3.00.Alpha4+ X-FTN-Origin: RGPU Station, St.Petersburg, [Wt: 00:00-24:00] (2:5030/509) X-FTN-SEEN-BY: 5005/5020 5015/4 5020/79 225 510 776 5021/11 5030/175 239 247 251 389 X-FTN-SEEN-BY: 5030/397 461 478 509 520 542 5045/6 5047/17 5100/8 X-FTN-PATH: 5030/509 239 5020/79 X-FTN-PATH: 5020/510 Lines: 394 Xref: xtalk.msk.su RU.TEX:349 *** Ответ на сообщение из эхи JAW_ECHO (=JAW Echo =========). Добрый день, Paul: Вторн. Апрель 29 1997 01:46, Paul Argentoff писал(а,о,и) к Andrey Janishewskiy: AJ>> Hа самом-то деле нужны: AJ>> 1) шрифты AJ>> 2) словарь переносов AJ>> 3) переопределение русских букв в либо "активные" символы, либо в AJ>> буквы. 4) Переопределение в стилях шрифтов по умолчанию. AJ>> И все -- телемаркет ;) PA> 1,2 есть. Пpо 3 и 4 pасскажи поподpобнее. Попытаюсь: Типичный руссификатор для Latex2e может выглядеть следующим образом: Формат генерируется в 2 прохода (это объясняется некоторыми особенностями latex2e) 1-й проход: Создается файл hyphen.cfg следующего содержания: === Cut === \catcode`\@=11 \language=0 \lefthyphenmin=2 \righthyphenmin=3 \input hyphen.tex \input rhyphen.tex \endinput === Cut === (Этим мы подключаем русские переносы) и генерируется latex.fmt, коммандой: tex386 -i -mt16000 -c866_t2 latex.ltx файл 866_t2, это tcp файл (только для emtex'а) определяющий правила перекодировки внешних файлов во внутренний формат. 2-й проход: Hа втором проходе подклучаем файл: rlatex.fmt из latex.fmt при помощи комманды: tex386 -i -mt16000 &latex rlatex.ltx Файл rlatex.ltx содержит следующие строки: === Cut === \input russian.cod \everyjob{% \typeout{% This is Russified LaTeX2e, based on LaTeX2e \fmtversion% }% } \dump === Cut === После этого при работе пользуемся форматом rlatex и стилевым файлом mycyr.sty приведенным ниже... === Cut === %% Данный файл содержит стиль для подключения LH шрифтов %% к пакету LaTex2e. %% Стиль создан Андреем Янишевским %% 2:5030/209@fidonet.org %% jaw@ivt.rgpu.spb.ru %%------------------------------------------------------------------------ %% 1) Переопределены шрифты по умолчанию для текстового и математического %% режимов. %% Семейства: 1) Roman \rmfamily %% 2) Sans Serif \ssfamily %% 3) Typewriter \ttfamily %% 4)*Funny Roman \frfamily %% 5)*Fibonacci \fibfamily %% 6) Dunhill \dhfamily \def\fileversion{v2.0b} \def\filedate{96/07/05} \typeout{Russian style for JAW Modern Fonts by Andrey Janishewskiy.\space\fileversion\space\filedate} \if@compatibility %% В режиме совместимости подгружаем \typeout{LaTeX 2.09 Russification.} %% русские коды. \input russian.cod %% (Иначе не работаю русские комманды) \fi \renewcommand{\rmdefault}{jmr} %% Переопределяем семейства \renewcommand{\sfdefault}{jmss} %% по умолчанию \renewcommand{\ttdefault}{jmtt} %% %% Определяем новые имена семейства %% \newcommand{\frdefault}{jmfr} %% "Забавный" \newcommand{\dhdefault}{jmdh} %% Dunhill Roman \newcommand{\fibdefault}{jmfib} %% "Фиббоначи" \newcommand{\indefault}{jmin} %% "Дюймовочка" \newcommand{\midefault}{jmmi} %% "Math Italic" %% %% Определяем новые имена shape %% \newcommand{\uidefault}{ui} %% Прямой курсив, определен для jmR %% %% Определяем новые имена series %% \newcommand{\bdefault}{b} %% узкий полужирный (jmR) \newcommand{\dcdefault}{dc} %% узкий полужирный (jmSS) \newcommand{\qudefault}{qu} %% широкий (jmSS) \newcommand{\videfault}{vi} %% пропорциональный (TT) \newcommand{\exdefault}{ex} %% Text Extended(Rm) %% %% Другие переопределения для текстового режима %% \DeclareFontSubstitution{OT1}{jmr}{m}{n} %% Переопределяем шрифт подмены \DeclareErrorFont{OT1}{jmr}{m}{n}{10} %% Переопределяем Error Font %% %% Определяем собственно family, shape, series %% %% Семейства \DeclareRobustCommand\frfamily %% frfamily {\not@math@alphabet\frfamily\mathfr \fontfamily\frdefault\selectfont} \DeclareRobustCommand\mifamily %% math italic {\not@math@alphabet\mifamily\mathmi \fontfamily\midefault\selectfont} \DeclareRobustCommand\fibfamily %% fibonachi {\not@math@alphabet\fibfamily\mathfib \fontfamily\fibdefault\selectfont} \DeclareRobustCommand\dhfamily %% Dunhill {\not@math@alphabet\dhfamily\mathdh \fontfamily\dhdefault\selectfont} %% Shape \DeclareRobustCommand\uishape %% unslanted italic {\not@math@alphabet\uishape\mathui \fontshape\uidefault\selectfont} %% Series \DeclareRobustCommand\bseries %% bold condenced {\not@math@alphabet\bseries\mathb \fontseries\bdefault\selectfont} \DeclareRobustCommand\dcseries %% demibold condenced {\not@math@alphabet\bfseries\mathdc \fontseries\dcdefault\selectfont} \DeclareRobustCommand\quseries %% quseries {\not@math@alphabet\quseries\mathqu \fontseries\qudefault\selectfont} \DeclareRobustCommand\viseries %% viseries {\not@math@alphabet\viseries\mathvi \fontseries\videfault\selectfont} \DeclareRobustCommand\exseries %% Extended {\not@math@alphabet\exseries\mathex \fontseries\exdefault\selectfont} %% %% Установки для математики %% \DeclareSymbolFont{operators} {OT1}{jmr} {m}{n} \SetSymbolFont{operators} {bold}{OT1}{jmr} {bx}{n} \DeclareMathAlphabet {\mathbf}{OT1}{jmr}{bx}{n} \DeclareMathAlphabet {\mathsf}{OT1}{jmss}{m}{n} \DeclareMathAlphabet {\mathit}{OT1}{jmr}{m}{it} \DeclareMathAlphabet {\mathtt}{OT1}{jmtt}{m}{n} \SetMathAlphabet\mathsf{bold}{OT1}{jmss}{bx}{n} \SetMathAlphabet\mathit{bold}{OT1}{jmr}{bx}{it} %% Определяем символы (кавычки, номер ,ёЁ) \DeclareTextSymbol{\No}{OT1}{242} \DeclareTextSymbol{\<} {OT1}{243} \DeclareTextSymbol{\>} {OT1}{244} \let\flqq\< \let\лк\< \let\номер\No \let\frqq\> \let\пк\> %% Синонимы символов \catcode`ё=13\defё{\"е}\catcode`Ё=13\defЁ{\"Е} %% Буквы Ё,ё === Cut === При этом файлик russian.cod определяет русские символы -- буквами. (catcode=11) Также этот файл определяет uc и lc code. (В случае, если кодировка соответствует стандарту T2 uc и lc коды переопределять не требуется, также, как не требуется переопределять catcode, если вы не будете использовать русские комманды. По умолчанию у всех символов соответствующих русским буквам catcode=12) === Cut === \catcode`\@=11 \catcode`\А=11 \catcode`\Р=11 \catcode`\а=11 \catcode`\р=11 \catcode`\Б=11 \catcode`\С=11 \catcode`\б=11 \catcode`\с=11 \catcode`\В=11 \catcode`\Т=11 \catcode`\в=11 \catcode`\т=11 \catcode`\Г=11 \catcode`\У=11 \catcode`\г=11 \catcode`\у=11 \catcode`\Д=11 \catcode`\Ф=11 \catcode`\д=11 \catcode`\ф=11 \catcode`\Е=11 \catcode`\Х=11 \catcode`\е=11 \catcode`\х=11 \catcode`\Ж=11 \catcode`\Ц=11 \catcode`\ж=11 \catcode`\ц=11 \catcode`\З=11 \catcode`\Ч=11 \catcode`\з=11 \catcode`\ч=11 \catcode`\И=11 \catcode`\Ш=11 \catcode`\и=11 \catcode`\ш=11 \catcode`\Й=11 \catcode`\Щ=11 \catcode`\й=11 \catcode`\щ=11 \catcode`\К=11 \catcode`\Ъ=11 \catcode`\к=11 \catcode`\ъ=11 \catcode`\Л=11 \catcode`\Ы=11 \catcode`\л=11 \catcode`\ы=11 \catcode`\М=11 \catcode`\Ь=11 \catcode`\м=11 \catcode`\ь=11 \catcode`\H=11 \catcode`\Э=11 \catcode`\н=11 \catcode`\э=11 \catcode`\О=11 \catcode`\Ю=11 \catcode`\о=11 \catcode`\ю=11 \catcode`\П=11 \catcode`\Я=11 \catcode`\п=11 \catcode`\я=11 \uccode`А=`А \uccode`Р=`Р \uccode`а=`А \uccode`р=`Р \uccode`Б=`Б \uccode`С=`С \uccode`б=`Б \uccode`с=`С \uccode`В=`В \uccode`Т=`Т \uccode`в=`В \uccode`т=`Т \uccode`Г=`Г \uccode`У=`У \uccode`г=`Г \uccode`у=`У \uccode`Д=`Д \uccode`Ф=`Ф \uccode`д=`Д \uccode`ф=`Ф \uccode`Е=`Е \uccode`Х=`Х \uccode`е=`Е \uccode`х=`Х \uccode`Ж=`Ж \uccode`Ц=`Ц \uccode`ж=`Ж \uccode`ц=`Ц \uccode`З=`З \uccode`Ч=`Ч \uccode`з=`З \uccode`ч=`Ч \uccode`И=`И \uccode`Ш=`Ш \uccode`и=`И \uccode`ш=`Ш \uccode`Й=`Й \uccode`Щ=`Щ \uccode`й=`Й \uccode`щ=`Щ \uccode`К=`К \uccode`Ъ=`Ъ \uccode`к=`К \uccode`ъ=`Ъ \uccode`Л=`Л \uccode`Ы=`Ы \uccode`л=`Л \uccode`ы=`Ы \uccode`М=`М \uccode`Ь=`Ь \uccode`м=`М \uccode`ь=`Ь \uccode`H=`H \uccode`Э=`Э \uccode`н=`H \uccode`э=`Э \uccode`О=`О \uccode`Ю=`Ю \uccode`о=`О \uccode`ю=`Ю \uccode`П=`П \uccode`Я=`Я \uccode`п=`П \uccode`я=`Я \lccode`А=`а \lccode`Р=`р \lccode`а=`а \lccode`р=`р \lccode`Б=`б \lccode`С=`с \lccode`б=`б \lccode`с=`с \lccode`В=`в \lccode`Т=`т \lccode`в=`в \lccode`т=`т \lccode`Г=`г \lccode`У=`у \lccode`г=`г \lccode`у=`у \lccode`Д=`д \lccode`Ф=`ф \lccode`д=`д \lccode`ф=`ф \lccode`Е=`е \lccode`Х=`х \lccode`е=`е \lccode`х=`х \lccode`Ж=`ж \lccode`Ц=`ц \lccode`ж=`ж \lccode`ц=`ц \lccode`З=`з \lccode`Ч=`ч \lccode`з=`з \lccode`ч=`ч \lccode`И=`и \lccode`Ш=`ш \lccode`и=`и \lccode`ш=`ш \lccode`Й=`й \lccode`Щ=`щ \lccode`й=`й \lccode`щ=`щ \lccode`К=`к \lccode`Ъ=`ъ \lccode`к=`к \lccode`ъ=`ъ \lccode`Л=`л \lccode`Ы=`ы \lccode`л=`л \lccode`ы=`ы \lccode`М=`м \lccode`Ь=`ь \lccode`м=`м \lccode`ь=`ь \lccode`H=`н \lccode`Э=`э \lccode`н=`н \lccode`э=`э \lccode`О=`о \lccode`Ю=`ю \lccode`о=`о \lccode`ю=`ю \lccode`П=`п \lccode`Я=`я \lccode`п=`п \lccode`я=`я \sfcode`А=999 \sfcode`Р=999 \sfcode`а=1000 \sfcode`р=1000 \sfcode`Б=999 \sfcode`С=999 \sfcode`б=1000 \sfcode`с=1000 \sfcode`В=999 \sfcode`Т=999 \sfcode`в=1000 \sfcode`т=1000 \sfcode`Г=999 \sfcode`У=999 \sfcode`г=1000 \sfcode`у=1000 \sfcode`Д=999 \sfcode`Ф=999 \sfcode`д=1000 \sfcode`ф=1000 \sfcode`Е=999 \sfcode`Х=999 \sfcode`е=1000 \sfcode`х=1000 \sfcode`Ж=999 \sfcode`Ц=999 \sfcode`ж=1000 \sfcode`ц=1000 \sfcode`З=999 \sfcode`Ч=999 \sfcode`з=1000 \sfcode`ч=1000 \sfcode`И=999 \sfcode`Ш=999 \sfcode`и=1000 \sfcode`ш=1000 \sfcode`Й=999 \sfcode`Щ=999 \sfcode`й=1000 \sfcode`щ=1000 \sfcode`К=999 \sfcode`Ъ=999 \sfcode`к=1000 \sfcode`ъ=1000 \sfcode`Л=999 \sfcode`Ы=999 \sfcode`л=1000 \sfcode`ы=1000 \sfcode`М=999 \sfcode`Ь=999 \sfcode`м=1000 \sfcode`ь=1000 \sfcode`H=999 \sfcode`Э=999 \sfcode`н=1000 \sfcode`э=1000 \sfcode`О=999 \sfcode`Ю=999 \sfcode`о=1000 \sfcode`ю=1000 \sfcode`П=999 \sfcode`Я=999 \sfcode`п=1000 \sfcode`я=1000 \def\reserved@a#1{\count@ =`#1\advance\count@ "7100 \mathcode`#1\count@} \reserved@a А \reserved@a а \reserved@a Б \reserved@a б \reserved@a В \reserved@a в \reserved@a Г \reserved@a г \reserved@a Д \reserved@a д \reserved@a Е \reserved@a е \reserved@a Ж \reserved@a ж \reserved@a З \reserved@a з \reserved@a И \reserved@a и \reserved@a Й \reserved@a й \reserved@a К \reserved@a к \reserved@a Л \reserved@a л \reserved@a М \reserved@a м \reserved@a H \reserved@a н \reserved@a О \reserved@a о \reserved@a П \reserved@a п \reserved@a Р \reserved@a р \reserved@a С \reserved@a с \reserved@a Т \reserved@a т \reserved@a У \reserved@a у \reserved@a Ф \reserved@a ф \reserved@a Х \reserved@a х \reserved@a Ц \reserved@a ц \reserved@a Ч \reserved@a ч \reserved@a Ш \reserved@a ш \reserved@a Щ \reserved@a щ \reserved@a Ъ \reserved@a ъ \reserved@a Ы \reserved@a ы \reserved@a Ь \reserved@a ь \reserved@a Э \reserved@a э \reserved@a Ю \reserved@a ю \reserved@a Я \reserved@a я \catcode`\@=12 \endinput === Cut === Кроме того, для руссификации требуются .fd файлы Hапример следующий: (Ot1jmr.fd) Делаются они по аналогии с ot1cm???.fd === Cut === %%%%%%%%%%%%%%%%%%% JAW LaTeX Font definitions %%%%%%%%%%%%%%%%%%%% % Family: Roman % ============= % Medium(m): Normal(n),Slanted(sl),Italic(it),smallcaps(sc), % Unslanted Italic(ui) % BoldExtended(bx):Normal,Slanted,Italic,UnslantedItalic*,SmallCaps* % Bold(b): Normal % \ProvidesFile{OT1jmr.fd} [1996/06/26 v1.0a JAW LaTeX font definitions] \DeclareFontFamily{OT1}{jmr}{} \DeclareFontShape {OT1}{jmr}{m}{n} {<5><6><7><8><9><10><12> sgen * jmr <10.95> jmr10 <14.4> jmr12 <17.28><20.74><24.88> jmr17}{} \DeclareFontShape{OT1}{jmr}{m}{sl} {<5><6><7> jmsl8 <8><9> sgen * jmsl <10><10.95> jmsl10 <12><14.4><17.28><20.74><24.88> jmsl12}{} \DeclareFontShape{OT1}{jmr}{m}{it} {<5><6><7> jmti7 <8><9><10> sgen * jmti <10.95> jmti10 <12><14.4><17.28><20.74><24.88> jmti12}{} \DeclareFontShape{OT1}{jmr}{m}{sc} {<10> jmcsc10}{} \DeclareFontShape{OT1}{jmr}{bx}{sc} {<-> ssub * jmr/m/sc}{} \DeclareFontShape{OT1}{jmr}{m}{ui} {<10> jmu10}{} \DeclareFontShape{OT1}{jmr}{b}{n} {<10> jmb10}{} \DeclareFontShape{OT1}{jmr}{bx}{n} {<5><6><7><8><9> sgen * jmbx <10><10.95> jmbx10 <12><14.4><17.28><20.74><24.88> jmbx12}{} \DeclareFontShape{OT1}{jmr}{bx}{sl} {<10> jmbxsl10}{} \DeclareFontShape{OT1}{jmr}{bx}{it} {<10> jmbxti10}{} \DeclareFontShape{OT1}{jmr}{bx}{ui} {<-> ssub * jmr/m/ui}{} \DeclareFontShape{OT1}{jmr}{m}{ex} {<5><6><7> jmtex8 <8><9><10> sgen * jmtex <10.95><12><14.4><17.28><20.74><24.88> jmtex10}{} \endinput %---------------------------------------------------------------------------- === Cut === Если мы имеем дело с TeX'ми не поддерживающими tcp и внешняя кодировка не совпадает с внутренней, то русским буквам нужно присвоить catcode=\active и определить их через \chardef. В этом случае невозможно использовать их в коммандах, но остальное будет работать. Вот пример: \catcode'0321 = \active % ya \chardef ^^d1 = '0357 Естественно на второй стадии генерации формата можно подключить и 90% файла mycyr.sty, а еще лучше посмотреть внимательно на документацию к 2e и сделать подключение шрифтов так, как там рекомендуется. Что касается latex2.09, plain'а и прочих, то опять-таки подключаете переносы, через hyphen.tex, но input'е еще и russian.cod из него-же. И переопределяете шрифты: \font\tenrm=cmr10 % roman text \font\preloaded=cmr9 \font\preloaded=cmr8 \font\sevenrm=cmr7 \font\preloaded=cmr6 \font\fiverm=cmr5 Впрочем стоит посмотреть внимательнее на latex2.09 и plain ;) ====-------------------------------------------------------------------==== С нетерпением жду ответа, Андрей [Fido : 2:5030/209, 2:5030/509 ] [E-Mail: AJAN@ivt.rgpu.spb.ru ]

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру