[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Руссификация DocBook DSSSL stylesheet
Ilia Kouznetsov WHATEVER HAPPENS KEEP THE FAITH writes:
> Если кому интересно, я посылаю все необходимое, для того, чтобы
> руссификация в NWalsh DocBook DSSSL stylesheet заработала.
>
> В таком виде она работает на сто процентов под форточками и под UNIX.
>
> В файле catalog обратите внимание на то как описываются идентификаторы
> в разделе: -- Norman Walsh --.
>
> Я просто положил стильник Вэлша в sgml-catalog.
>
> Однако параметры в файлaх стильника dbparam.dsl скорее соответствуют
> западному способу представления документов (у нас положена красная
> строка у параграфа и тп). Поэтому мне пришлось изменять некоторые
> параметры. Всю модификацию, по рекомендации Вэлша, я делал не в самих
> текстах стильника а во врэппере (или как его там?), которые для print
> и html я назвал dbp.dsl и dbh.dsl соответственно.
>
Однако напомню бестовковым вроде меня, что для того, чтобы это
заработало, надо либо задать атрибут LANG="ru" на верхнем уровне
иерархии документа, либо во враппере определить:
(define %gentext-language% "ru")
> Эти файлы могут лежать где угодно, но я кладу их обычно в каталог
> моего sgml-документа, который обычно состоит не из одного документа, а
> из хаб-файла и вставок в него. Разные большие sgml-файлы обычно
> требуют несколько различных оформлений стиля (например, межстрочный
> интервал), соответственно врэпперам лучше лежать в директориях
> sgml-файлов.
>
> Таки если объявить стильник в catalog'е и сделать врэпперы с
> указателями на файл локализации как сделано у меня, то все должно
> работать. Русские файлы в KOI8 под UNIX, и в CP1251 под форточками
> строятся без разговоров командой типа:
>
> jade -t rtf -d dbp.dsl my_file.sgml
>
> Можно KOI не конвертить в 1251, тогда ваш rtf потребует KOI True Type
> Fonts, что все же не очень удобно в форточках.
>
> НО! У меня не обошлось без грязного хака. Увы.
>
> Дело в том, что если файлы dbl1ru.dsl содержат ISOшные кириллические
> энтити, то почему-то в как в rtf, так и в tex, русские буквы
> появляются не все, например "Глв" вместо "Глава". Мне было лень
Это очень просто: нужен правильный файл ISOcyr1.ent,
в котором прописаны все русские буквы без дыр.
Я в я в сое время сделал это для кои8, результат прилагаю.
<!-- Character entity set. Typical invocation:
<!ENTITY % ISOcyr1 PUBLIC
"ISO 8879-1986//ENTITIES Russian Cyrillic//EN">
%ISOcyr1;
-->
<!-- The following characters could not be defined using commonly available
fonts. Therefore, EBT is using placeholders for these characters. To include
the placeholders in your document, make sure that the marked section below has
the keyword "INCLUDE".
To ignore the placeholders, use the keyword "IGNORE". If you are ignoring this
marked section and your SGML document references any of the entities declared
below, you will get (non-fatal) mkbook errors, and the entity references will
not be replaced.
Finally, you may choose to define the entities below yourself, using a special
font that will be available to readers of your DynaText books. Use the same
SDATA entity declaration model as is used above, substituting the appropriate
names and decimal numbers for font, charset, code, and descr. In that case, you
should INCLUDE the marked section.
See Chapter 7 of Publisher Guide, Volume 1 for more information. -->
<!-- (setq alist (make-ent-alist)) -->
<![ IGNORE [
<!ENTITY acy CDATA "[acy ]"--=small a, Cyrillic а-->
<!ENTITY Acy CDATA "[Acy ]"--=capital A, Cyrillic А-->
<!ENTITY bcy CDATA "[bcy ]"--=small be, Cyrillic б-->
<!ENTITY Bcy CDATA "[Bcy ]"--=capital BE, Cyrillic Б-->
<!ENTITY vcy CDATA "[vcy ]"--=small ve, Cyrillic в-->
<!ENTITY Vcy CDATA "[Vcy ]"--=capital VE, Cyrillic В-->
<!ENTITY gcy CDATA "[gcy ]"--=small ghe, Cyrillic г-->
<!ENTITY Gcy CDATA "[Gcy ]"--=capital GHE, Cyrillic Г-->
<!ENTITY dcy CDATA "[dcy ]"--=small de, Cyrillic д-->
<!ENTITY Dcy CDATA "[Dcy ]"--=capital DE, Cyrillic Д-->
<!ENTITY iecy CDATA "[iecy ]"--=small ie, Cyrillic е-->
<!ENTITY IEcy CDATA "[IEcy ]"--=capital IE, Cyrillic Е-->
<!ENTITY iocy CDATA "[iocy ]"--=small io, Russian е-->
<!ENTITY IOcy CDATA "[IOcy ]"--=capital IO, Russian Е-->
<!ENTITY zhcy CDATA "[zhcy ]"--=small zhe, Cyrillic ж-->
<!ENTITY ZHcy CDATA "[ZHcy ]"--=capital ZHE, Cyrillic Ж-->
<!ENTITY zcy CDATA "[zcy ]"--=small ze, Cyrillic з-->
<!ENTITY Zcy CDATA "[Zcy ]"--=capital ZE, Cyrillic З-->
<!ENTITY icy CDATA "[icy ]"--=small i, Cyrillic и-->
<!ENTITY Icy CDATA "[Icy ]"--=capital I, Cyrillic И-->
<!ENTITY jcy CDATA "[jcy ]"--=small short i, Cyrillic й-->
<!ENTITY Jcy CDATA "[Jcy ]"--=capital short I, Cyrillic Й-->
<!ENTITY kcy CDATA "[kcy ]"--=small ka, Cyrillic к-->
<!ENTITY Kcy CDATA "[Kcy ]"--=capital KA, Cyrillic К-->
<!ENTITY lcy CDATA "[lcy ]"--=small el, Cyrillic л-->
<!ENTITY Lcy CDATA "[Lcy ]"--=capital EL, Cyrillic Л-->
<!ENTITY mcy CDATA "[mcy ]"--=small em, Cyrillic м-->
<!ENTITY Mcy CDATA "[Mcy ]"--=capital EM, Cyrillic М-->
<!ENTITY ncy CDATA "[ncy ]"--=small en, Cyrillic н-->
<!ENTITY Ncy CDATA "[Ncy ]"--=capital EN, Cyrillic Н-->
<!ENTITY ocy CDATA "[ocy ]"--=small o, Cyrillic о-->
<!ENTITY Ocy CDATA "[Ocy ]"--=capital O, Cyrillic О-->
<!ENTITY pcy CDATA "[pcy ]"--=small pe, Cyrillic п-->
<!ENTITY Pcy CDATA "[Pcy ]"--=capital PE, Cyrillic П-->
<!ENTITY rcy CDATA "[rcy ]"--=small er, Cyrillic р-->
<!ENTITY Rcy CDATA "[Rcy ]"--=capital ER, Cyrillic Р-->
<!ENTITY scy CDATA "[scy ]"--=small es, Cyrillic с-->
<!ENTITY Scy CDATA "[Scy ]"--=capital ES, Cyrillic С-->
<!ENTITY tcy CDATA "[tcy ]"--=small te, Cyrillic т-->
<!ENTITY Tcy CDATA "[Tcy ]"--=capital TE, Cyrillic Т-->
<!ENTITY ucy CDATA "[ucy ]"--=small u, Cyrillic у-->
<!ENTITY Ucy CDATA "[Ucy ]"--=capital U, Cyrillic У-->
<!ENTITY fcy CDATA "[fcy ]"--=small ef, Cyrillic ф-->
<!ENTITY Fcy CDATA "[Fcy ]"--=capital EF, Cyrillic Ф-->
<!ENTITY khcy CDATA "[khcy ]"--=small ha, Cyrillic х-->
<!ENTITY KHcy CDATA "[KHcy ]"--=capital HA, Cyrillic Х-->
<!ENTITY tscy CDATA "[tscy ]"--=small tse, Cyrillic ц-->
<!ENTITY TScy CDATA "[TScy ]"--=capital TSE, Cyrillic Ц-->
<!ENTITY chcy CDATA "[chcy ]"--=small che, Cyrillic ч-->
<!ENTITY CHcy CDATA "[CHcy ]"--=capital CHE, Cyrillic Ч-->
<!ENTITY shcy CDATA "[shcy ]"--=small sha, Cyrillic ш-->
<!ENTITY SHcy CDATA "[SHcy ]"--=capital SHA, Cyrillic Ш-->
<!ENTITY shchcy CDATA "[shchcy]"--=small shcha, Cyrillic щ-->
<!ENTITY SHCHcy CDATA "[SHCHcy]"--=capital SHCHA, Cyrillic Щ-->
<!ENTITY hardcy CDATA "[hardcy]"--=small hard sign, Cyrillic ъ-->
<!ENTITY HARDcy CDATA "[HARDcy]"--=capital HARD sign, Cyrillic Ъ-->
<!ENTITY ycy CDATA "[ycy ]"--=small yeru, Cyrillic ы-->
<!ENTITY Ycy CDATA "[Ycy ]"--=capital YERU, Cyrillic Ы-->
<!ENTITY softcy CDATA "[softcy]"--=small soft sign, Cyrillic ь-->
<!ENTITY SOFTcy CDATA "[SOFTcy]"--=capital SOFT sign, Cyrillic Ь-->
<!ENTITY ecy CDATA "[ecy ]"--=small e, Cyrillic э-->
<!ENTITY Ecy CDATA "[Ecy ]"--=capital E, Cyrillic Э-->
<!ENTITY yucy CDATA "[yucy ]"--=small yu, Cyrillic ю-->
<!ENTITY YUcy CDATA "[YUcy ]"--=capital YU, Cyrillic Ю-->
<!ENTITY yacy CDATA "[yacy ]"--=small ya, Cyrillic я-->
<!ENTITY YAcy CDATA "[YAcy ]"--=capital YA, Cyrillic Я-->
<!ENTITY numero CDATA "[numero]"--=numero sign #-->
]]>
<!-- (write-ent-alist alist) -->
<!-- Automatically generated -->
<!ENTITY acy CDATA "Á" -- а -->
<!ENTITY Acy CDATA "á" -- А -->
<!ENTITY bcy CDATA "Â" -- б -->
<!ENTITY Bcy CDATA "â" -- Б -->
<!ENTITY vcy CDATA "×" -- в -->
<!ENTITY Vcy CDATA "÷" -- В -->
<!ENTITY gcy CDATA "Ç" -- г -->
<!ENTITY Gcy CDATA "ç" -- Г -->
<!ENTITY dcy CDATA "Ä" -- д -->
<!ENTITY Dcy CDATA "ä" -- Д -->
<!ENTITY iecy CDATA "Å" -- е -->
<!ENTITY IEcy CDATA "å" -- Е -->
<!ENTITY iocy CDATA "Å" -- е -->
<!ENTITY IOcy CDATA "å" -- Е -->
<!ENTITY zhcy CDATA "Ö" -- ж -->
<!ENTITY ZHcy CDATA "ö" -- Ж -->
<!ENTITY zcy CDATA "Ú" -- з -->
<!ENTITY Zcy CDATA "ú" -- З -->
<!ENTITY icy CDATA "É" -- и -->
<!ENTITY Icy CDATA "é" -- И -->
<!ENTITY jcy CDATA "Ê" -- й -->
<!ENTITY Jcy CDATA "ê" -- Й -->
<!ENTITY kcy CDATA "Ë" -- к -->
<!ENTITY Kcy CDATA "ë" -- К -->
<!ENTITY lcy CDATA "Ì" -- л -->
<!ENTITY Lcy CDATA "ì" -- Л -->
<!ENTITY mcy CDATA "Í" -- м -->
<!ENTITY Mcy CDATA "í" -- М -->
<!ENTITY ncy CDATA "Î" -- н -->
<!ENTITY Ncy CDATA "î" -- Н -->
<!ENTITY ocy CDATA "Ï" -- о -->
<!ENTITY Ocy CDATA "ï" -- О -->
<!ENTITY pcy CDATA "Ð" -- п -->
<!ENTITY Pcy CDATA "ð" -- П -->
<!ENTITY rcy CDATA "Ò" -- р -->
<!ENTITY Rcy CDATA "ò" -- Р -->
<!ENTITY scy CDATA "Ó" -- с -->
<!ENTITY Scy CDATA "ó" -- С -->
<!ENTITY tcy CDATA "Ô" -- т -->
<!ENTITY Tcy CDATA "ô" -- Т -->
<!ENTITY ucy CDATA "Õ" -- у -->
<!ENTITY Ucy CDATA "õ" -- У -->
<!ENTITY fcy CDATA "Æ" -- ф -->
<!ENTITY Fcy CDATA "æ" -- Ф -->
<!ENTITY khcy CDATA "È" -- х -->
<!ENTITY KHcy CDATA "è" -- Х -->
<!ENTITY tscy CDATA "Ã" -- ц -->
<!ENTITY TScy CDATA "ã" -- Ц -->
<!ENTITY chcy CDATA "Þ" -- ч -->
<!ENTITY CHcy CDATA "þ" -- Ч -->
<!ENTITY shcy CDATA "Û" -- ш -->
<!ENTITY SHcy CDATA "û" -- Ш -->
<!ENTITY shchcy CDATA "Ý" -- щ -->
<!ENTITY SHCHcy CDATA "ý" -- Щ -->
<!ENTITY hardcy CDATA "ß" -- ъ -->
<!ENTITY HARDcy CDATA "ÿ" -- Ъ -->
<!ENTITY ycy CDATA "Ù" -- ы -->
<!ENTITY Ycy CDATA "ù" -- Ы -->
<!ENTITY softcy CDATA "Ø" -- ь -->
<!ENTITY SOFTcy CDATA "ø" -- Ь -->
<!ENTITY ecy CDATA "Ü" -- э -->
<!ENTITY Ecy CDATA "ü" -- Э -->
<!ENTITY yucy CDATA "À" -- ю -->
<!ENTITY YUcy CDATA "à" -- Ю -->
<!ENTITY yacy CDATA "Ñ" -- я -->
<!ENTITY YAcy CDATA "ñ" -- Я -->
<!ENTITY numero CDATA "#" -- # -->
tay
> выяснять в чем дело, и я просто заменил в dbl1ru.dsl все энтити прямо
> на русские буквы - KOI8 под UNIX, и 1251 под форточками. Эти файлы я
> тоже поставляю в аттачменте. Если кто поборется с этой проблемой или
> скажет, в чем я не прав, большая просьба сообщить.
>
> Данный подход, повторюсь, работает как в tex, так и в MS Word 97 без
> проблем.
>
> Да, в dbh и dbp могут находиться маленькие фиксы всяких minor багов -
> они относятся к версии 1.07. Поэтому, у кого версия 1.08 - что-то
> может быть не так. Кстати, если отладите эти dbp и dbh под эту версию,
> то пошлите тоже, пожалуйста.
>
> Илия
>
> -------------------------------------------------------------------
> -> Ilia V. Kouznetsov: ilia@syntext.com, kuznetjr@sunhe.jinr.ru
> -> http://www.ethereal.ru/~ilia/