[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	"&#193;"	-- а -->
<!ENTITY Acy	CDATA	"&#225;"	-- А -->
<!ENTITY bcy	CDATA	"&#194;"	-- б -->
<!ENTITY Bcy	CDATA	"&#226;"	-- Б -->
<!ENTITY vcy	CDATA	"&#215;"	-- в -->
<!ENTITY Vcy	CDATA	"&#247;"	-- В -->
<!ENTITY gcy	CDATA	"&#199;"	-- г -->
<!ENTITY Gcy	CDATA	"&#231;"	-- Г -->
<!ENTITY dcy	CDATA	"&#196;"	-- д -->
<!ENTITY Dcy	CDATA	"&#228;"	-- Д -->
<!ENTITY iecy	CDATA	"&#197;"	-- е -->
<!ENTITY IEcy	CDATA	"&#229;"	-- Е -->
<!ENTITY iocy	CDATA	"&#197;"	-- е -->
<!ENTITY IOcy	CDATA	"&#229;"	-- Е -->
<!ENTITY zhcy	CDATA	"&#214;"	-- ж -->
<!ENTITY ZHcy	CDATA	"&#246;"	-- Ж -->
<!ENTITY zcy	CDATA	"&#218;"	-- з -->
<!ENTITY Zcy	CDATA	"&#250;"	-- З -->
<!ENTITY icy	CDATA	"&#201;"	-- и -->
<!ENTITY Icy	CDATA	"&#233;"	-- И -->
<!ENTITY jcy	CDATA	"&#202;"	-- й -->
<!ENTITY Jcy	CDATA	"&#234;"	-- Й -->
<!ENTITY kcy	CDATA	"&#203;"	-- к -->
<!ENTITY Kcy	CDATA	"&#235;"	-- К -->
<!ENTITY lcy	CDATA	"&#204;"	-- л -->
<!ENTITY Lcy	CDATA	"&#236;"	-- Л -->
<!ENTITY mcy	CDATA	"&#205;"	-- м -->
<!ENTITY Mcy	CDATA	"&#237;"	-- М -->
<!ENTITY ncy	CDATA	"&#206;"	-- н -->
<!ENTITY Ncy	CDATA	"&#238;"	-- Н -->
<!ENTITY ocy	CDATA	"&#207;"	-- о -->
<!ENTITY Ocy	CDATA	"&#239;"	-- О -->
<!ENTITY pcy	CDATA	"&#208;"	-- п -->
<!ENTITY Pcy	CDATA	"&#240;"	-- П -->
<!ENTITY rcy	CDATA	"&#210;"	-- р -->
<!ENTITY Rcy	CDATA	"&#242;"	-- Р -->
<!ENTITY scy	CDATA	"&#211;"	-- с -->
<!ENTITY Scy	CDATA	"&#243;"	-- С -->
<!ENTITY tcy	CDATA	"&#212;"	-- т -->
<!ENTITY Tcy	CDATA	"&#244;"	-- Т -->
<!ENTITY ucy	CDATA	"&#213;"	-- у -->
<!ENTITY Ucy	CDATA	"&#245;"	-- У -->
<!ENTITY fcy	CDATA	"&#198;"	-- ф -->
<!ENTITY Fcy	CDATA	"&#230;"	-- Ф -->
<!ENTITY khcy	CDATA	"&#200;"	-- х -->
<!ENTITY KHcy	CDATA	"&#232;"	-- Х -->
<!ENTITY tscy	CDATA	"&#195;"	-- ц -->
<!ENTITY TScy	CDATA	"&#227;"	-- Ц -->
<!ENTITY chcy	CDATA	"&#222;"	-- ч -->
<!ENTITY CHcy	CDATA	"&#254;"	-- Ч -->
<!ENTITY shcy	CDATA	"&#219;"	-- ш -->
<!ENTITY SHcy	CDATA	"&#251;"	-- Ш -->
<!ENTITY shchcy	CDATA	"&#221;"	-- щ -->
<!ENTITY SHCHcy	CDATA	"&#253;"	-- Щ -->
<!ENTITY hardcy	CDATA	"&#223;"	-- ъ -->
<!ENTITY HARDcy	CDATA	"&#255;"	-- Ъ -->
<!ENTITY ycy	CDATA	"&#217;"	-- ы -->
<!ENTITY Ycy	CDATA	"&#249;"	-- Ы -->
<!ENTITY softcy	CDATA	"&#216;"	-- ь -->
<!ENTITY SOFTcy	CDATA	"&#248;"	-- Ь -->
<!ENTITY ecy	CDATA	"&#220;"	-- э -->
<!ENTITY Ecy	CDATA	"&#252;"	-- Э -->
<!ENTITY yucy	CDATA	"&#192;"	-- ю -->
<!ENTITY YUcy	CDATA	"&#224;"	-- Ю -->
<!ENTITY yacy	CDATA	"&#209;"	-- я -->
<!ENTITY YAcy	CDATA	"&#241;"	-- Я -->
<!ENTITY numero	CDATA	"&#35;"	-- # -->




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/