This file is indexed.

/usr/share/doc/HOWTO/pl-html/Cyrillic-HOWTO.pl.html is in doc-linux-pl-html 2002.06.14-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
<META HTTP-EQUIV="content-type" content="text/html; charset=iso-8859-2">
<TITLE>The Cyrillic HOWTO</TITLE>


</HEAD>
<BODY>
<H1>The Cyrillic HOWTO<BR></H1>

<H2>Autor: Aleksander L. Belikoff<BR>
v3.0, 13 sierpieñ 1995<BR>
<B>Wersja polska: Gwidon S. Naskrent
<A HREF="mailto:naskrent@hoth.amu.edu.pl">naskrent@hoth.amu.edu.pl</A><BR></B>
v2.0, luty 1998</H2>
<P><HR>
<EM>Dokument ten opisuje jak skonfigurowaæ swój system linuxowy aby móc pisaæ,
ogl±daæ i drukowaæ dokumenty w jêzyku rosyjskim.
Dokument ten zosta³ napisany w standardzie ISO-8859-2.
Orygina³ tego dokumentu znajduje siê pod adresem
<A HREF="ftp.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/">ftp.icm.edu.pl/pub/Linux/sunsite/docs/HOWTO/</A></EM>
<HR>
<H2><A NAME="s1">1. 1. Uwagi ogólne</A></H2>

<P>
<P>
<H2>1.1 1.1 Wstêp</H2>

<P>
<P>Dokument ten obejmuje to czego potrzebujesz aby skutecznie pisaæ, ogl±daæ
i drukowaæ dokumenty po rosyjsku pod Linuxem. Chocia¿ dokument ten zak³ada
¿e jako systemu operacyjnego u¿ywasz Linuxa, wiêkszo¶æ z przedstawionych
informacji stosuje siê tak¿e do innych odmian Unixa. Postaram siê zachowaæ
rozró¿nienie tak widocznym jak to mo¿liwe.
<P>Istnieje pewna liczba popularnych dystrybucji linuxowych. Jako system
przyk³adowy opiszê Linuxa Red Hat 3.0.3 (Picasso) oraz Red Hat 4.1
(Vanderbildt) - tego którego osobi¶cie u¿ywam. Niemniej jednak postaram
siê zaznaczyæ ró¿nice, je¶li takowe istniej±, w instalacji Linux Slackware.
<P>Poniewa¿ taka instalacja bezpo¶rednio modyfikuje i rozszerza system
operacyjny, powiniene¶ zdawaæ sobie sprawê z tego co robisz. Chocia¿
stara³em siê sprawy maksymalnie upro¶ciæ, posiadanie pewnego do¶wiadczenia
z danym programem jest korzystne. Nie zamierzam opisywaæ czym jest system
X Windows i jak sk³adaæ dokumenty u¿ywaj±c TeXa lub LaTeXa, albo jak
zainstalowaæ drukarkê w Linuxie. Problemy te omawiane s± w innych
dokumentach.
<P>Z tych samych powodów opisujê instalacjê na skalê systemow±, domy¶lnie
wymagaj±c± uprawnieñ administratora. Je¶li jednak istnieje mo¿liwo¶æ
instalacji na poziomie u¿ytkownika, nie omieszkam jej wspomnieæ.
<P>Uwaga: system X Windows, TeX i inne sk³adniki Linuxa s± z³o¿onymi
systemami z wyrafinowan± konfiguracj±. Je¶li co¶ sknocisz, mo¿esz nie
tylko nie dokonaæ instalacji cyrilicy, ale popsuæ sk³adnik, je¶li nie
ca³y system. Nie ma to na celu ciê odstraszaæ, lecz tylko sprawiæ aby¶
zrozumia³ powagê operacji i by³ ostro¿nym. Wstêpna kopia zapasowa
plików konfiguracyjnych jest wielce po¿±dana. Posiadanie pod rêk±
jakiego¶ guru zawsze siê przydaje.
<P>
<H2>1.2 1.2 Dostêpno¶æ i uwagi</H2>

<P>
<P>Dokument ten dostêpny jest na sunsite.unc.edu lub tsx-11.mit.edu jako
czê¶æ Linux Documentation Project. Mo¿e tak¿e byæ dostêpny w ró¿nych
archiwach zawieraj±cych Linuxa. Co wiêcej, mo¿e tak¿e wchodziæ w sk³ad
dystrybucji Linuxa.
<P>Mo¿na go wreszcie otrzymaæ bezpo¶rednio od autora, na ftp.netvision.net.il.
<P>Je¶li masz jakie¶ pytania dotycz±ce tego dokumentu, nie wahaj siê, proszê,
skontaktowaæ siê ze mn± pod adresem belikoff@netvision.net.il. Ka¿da nowa
i u¿yteczna informacja na temat obs³ugi Cyrilicy w ró¿nych Unixach jest
mile widziana. Pamiêtaj, pomo¿e to innym.
<P>Wielu ludzi pomog³o mi (i nie tylko mi) warto¶ciowymi informacjami oraz
sugestiami. Jeszcze wiêcej ludzi do³o¿y³o oprogramowania na u¿ytek
publiczny. Przepraszam je¿eli zapomnia³em kogo¶ wymieniæ.
<P>Oto wiêc oni: Bas v. de Bakker, David Daves, Siergiej Wakulenko,
Siergiej O. Naoumow, Winfried Trümper, Michael van Canneyt.
<P>Ten dokument jest (c) 1995 Aleksander L. Belikoff. Mo¿na go u¿ywaæ
i rozpowszechniaæ zgodnie ze zwyk³ymi warunkami Linux HOWTO opisanymi
poni¿ej.
<P>Poni¿sze jest notk± o prawach autorskich Linux HOWTO:
<P>Dokumenty Linux HOWTO stanowi± prawn± w³asno¶æ ich autorów, chyba
¿e zaznaczono inaczej. Dokumenty Linux HOWTO mog± byæ reprodukowane
i rozposzechniane w ca³o¶ci lub czê¶ci, w ka¿dym fizycznym lub
elektronicznym ¶rodku przekazu, tak d³ugo jak w ka¿dej kopii pozostaje
niniejsza notka o prawach autorskich. Redystrybucja komercyjna jest
dozwolona i popierana; autorzy jednak woleliby zostaæ o takich
dystrybucjach powiadomieni.
<P>Wszystkie t³umaczenia, prace pochodne i zbiorowe zawieraj±ce
dokumenty Linux HOWTO musz± podlegaæ po t± notkê o prawach autorskich.
To jest, nie mo¿esz stworzyæ z HOWTO pracy pochodnej i na³o¿yæ
dodatkowe ograniczenia na jej dystrybucjê. Wyj±tki do tych regu³
mog± byæ udzielone pod pewnymi warunkami; proszê skontaktowaæ
siê z koordynatorem Linux HOWTO pod adresem podanym poni¿ej.
<P>W skrócie, chcieliby¶my promowaæ rozprzestrzenianie siê tych
informacji tak wieloma kana³ami jak to mo¿liwe. Pragnêliby¶my
jednak¿e zachowaæ prawa autorskie do dokumentów HOWTO, i
byæ powiadamianymi o ka¿dych planach ich redystrybucji.
<P>Je¶li masz pytania, skontaktuj siê proszê z Gregiem Hankinsem,
koordynatorem Linux HOWTO, pod adresem <CODE>gregh@sunsite.unc.edu</CODE>.
Mo¿esz u¿yæ tego adresu z programem finger by zdobyæ numer telefonu
i inne dodatkowe informacje dotycz±ce kontaktu.
<P>Unix jest zastrze¿onym znakiem przemys³owym X/Open Ltd.; MS-DOS, Windows,
Windows NT i Windows 95 s± zastrze¿onymi znakami Microsoft Corp.; System
X Windows jest znakiem zastrze¿onym Consortium X, Inc. Wszystkie inne
znaki zastrze¿one nale¿± do ich odpowiednich posiadaczy.
<P>
<H2><A NAME="s2">2. 2. Znaki i zestawy znaków</A></H2>

<P>
<P>A¿eby zrozumieæ i wy¶wietlaæ znaki ró¿nych jêzyków, system i programy
musz± byæ zdolne odró¿niaæ je od innych znaków. To jest, ka¿dy pojedynczy
znak musi mieæ odrêbn± reprezentacjê wewn±trz systemu operacyjnego, b±d¼
konkretnego pakietu programów. Taka kolekcja wszystkich odrêbnych znaków
które jaki¶ system jest w stanie reprezentowaæ w danym momencie nazywa
siê zestawem znaków.
<P>W czasie tworzenia najwiêkszych systemów operacyjnych nikt nie dba³ o to
aby programy by³y wielojêzyczne. Dlatego te¿ najpopularniejszym zestawem
znaków by³ (i ci±gle jest) ASCII (American Standard Code for Information
Interchange).
<P>Standardowy ASCII (aka siedmiobitowy ASCII) zawiera 128 odrêbnych kodów.
Niektóre z nich ASCII definiuje jako faktyczne drukowalne znaki, a niektóre
s± tak zwanymi znakami kontrolnymi, które posiada³y specjalne znaczenia
w starszych protoko³ach komunikacyjnych. Ka¿dy element zestawu identyfikuje
kod bêd±cy liczb± ca³kowit± (0-127). Podzbiór znaków drukowalnych
przedstawia te które znale¼æ mo¿na na klawiaturze maszyny do pisania, z
niewielkimi dodatkami. Ka¿dy znak zajmuje siedem najmniej znacz±cych bitów
bajtu, podczas gdy najbardziej znacz±cy u¿ywany by³ dla celów kontrolnych
(np. kontroli transmisji w starszych pakietach komunikacyjnych).
<P>Koncepcjê ASCII siedmiobitowego rozszerzy³ ASCII o¶miobitowy (aka
rozszerzony ASCII). W tym zestawie zakres kodów znaków to 0-255. Dolna
po³owa (0-127) to czysty ASCII, podczas gdy górna zawiera 127 dodatkowych
znaków. Poniewa¿ zestaw ten jest wstecznie kompatybilny z ASCII (znak
ci±gle zajmuje osiem bitów, kody odpowiadaj± staremu ASCII), zyska³
on sobie szerok± popularno¶æ.
<P>ASCII o¶miobitowe nie definiuje zawarto¶ci górnej po³ówki zestawu. Dlatego
ISO powziê³o zadanie ustalenia rodziny standardów znanych jako rodzina
ISO-8859-X. Jest to zbiór kodowañ o¶miobitowych, w których ni¿sza po³owa
ka¿dego kodowania (0-127) odpowiada ASCII, a wy¿sza definiuje znaki dla
ró¿nych jêzyków. Zdefiniowano na przyk³ad nastêpuj±ce kodowania:
<P>
<UL>
<LI>8859-1 - Europa Zachodnia, Ameryka £aciñska (znany te¿ jako Latin 1)</LI>
<LI>8859-2 - Europa ¦rodkowa i Wschodnia</LI>
<LI>8859-5 - cyrylica</LI>
<LI>8859-8 - hebrajski</LI>
</UL>
<P>W Latin 1 górna po³owa tabeli definiuje ró¿ne znaki które nie s± czê¶ci±
alfabetu angielskiego, ale znajduj± siê w ró¿nych jêzykach
zachodnioeuropejskich (umlauty niemieckie, akcenty francuskie).
<P>Programy które nie zak³adaj± nic co do ósmego bitu danych ASCII zwane
s± o¶miobitowo czystymi. Niektóre starsze programy, napisane z my¶l± o
ASCII 7-bitowym, nie s± czyste o¶miobitowe i mog± dzia³aæ niepoprawnie
z danymi o¶miobitowymi. Wiêkszo¶æ jednak pakietów domy¶lnie radzi sobie
z o¶miobitowym ASCII, albo wymaga bardzo prostego ustawienia.
UWAGA: zanim wy¶lesz pytanie "Wszystko ustawi³em poprawnie, a nie mogê
wprowadzaæ/ogl±daæ znaków cyrylicowych!", zajrzyj do sekcji 8 co do
uwag o programie którego u¿ywasz.
<P>Poniewa¿ na wiêkszo¶ci systemów ASCII zajmuje osiem bitów, nie ma ju¿
mo¿liwo¶æ aby ci±gle je rozszerzaæ. Sposobem na zaimplementowanie nowych
symboli w kodowaniach opartych na ASCII jest stworzenie innej implementacji
rozszerzonego ASCII. W taki w³a¶nie sposób zaimplementowane zosta³o
kodowanie cyrylicy w ASCII.
<P>Wspomnieli¶my ju¿ o standardzie ISO-8859-5 jako okre¶laj±cym kodowanie
cyrylicy. Lecz jak to czêsto bywa ze standardami, stworzono go nie bior±c
pod uwagê istniej±cej praktyki w by³ym ZSRR. Jedyn± wiêc rzecz± jak±
ten standard osi±gn±³ by³o spotêgowanie zamieszania. Nie powiedzia³bym
¿e gdzie¶ siê znacz±co u¿ywa ISO-8859-5.
<P>Innymi standardami kodowania cyrylicy s± tak zwane kodowanie Alt i
strona kodowa 1251 Microsoftu. Ta pierwsza stworzona zosta³a (przez kogo?)
do¶æ dawno temu na potrzeby MS-DOS. W tamtych czasach nie by³o jeszcze
tego ca³ego szumu o internetowaniu, intencj± wiêc by³o uczynienie jej
jak najbardziej kompatybilnej ze standardem IBM. Dlatego kodowanie Alt
jest w rzeczywisto¶ci stron± kodow± IBM, gdzie wszystkie specjalne znaki
europejskie w górnej po³ówce zast±piono cyrylicznymi, z wy³±czeniem
pseudografiki. Nie rujnowa³o to ³atwego tworzenia okienek i dawa³o tak¿e
znaki cyrylicowe. Standard Alt ci±gle ¿yje i jest nies³ychanie popularny
w ¶wiecie MS-DOSa.
<P>Strona kodowa 1251 to po prostu próba Microsoftu pokazania nowego standardu
dla kodowania cyrylicy w Windows. Na ile wiem, nie jest ona kompatybilna
z czymkolwiek (niezbyt dziwne, co?)
<P>I w koñcu istnieje KOI-8. Jest ono równie¿ stare, ale zaprojektowano je
m±drze i dzisiaj za³o¿enia tego projektu wygl±daj± naprawdê u¿ytecznie.
<P>I znów, jest ono kompatybilne z ASCII, a znaki cyrylicy umieszczone s±
w górnej po³ówce. Lecz g³ównym za³o¿eniem projektowania KOI-8 jest to ¿e
pozycje znaków cyrylicy musz± odpowiadaæ znakom angielskim o zbli¿onej
wymowie. Konkretnie, je¶li ustawimy ósmy bit w angielskim 'a', dostaniemy
'a' cyrylicowe. Oznacza to ¿e je¶li mamy tekst pisany cyrylic± w KOI-8,
mo¿emy uci±æ ósmy bit z ka¿dego znaku i dalej mieæ czytelny tekst. Bardzo
to dzisiaj wa¿ne, poniewa¿ w Internecie jest wiele wêz³ów pocztowych które
po prostu po cichu obcinaj± ósmy bit, pewne ¿e wszyscy na ca³ej Ziemi mówi±
po angielsku.
<P>Nic dziwnego ¿e KOI-8 szybko sta³ siê de facto standardem dla cyrylicy
w Internecie. Andriej A. Czernow poczyni³ ogromne nak³ady pracy aby
ustaliæ w tym obszarze standard. Jest on autorem RFC 1489 ("Registration
of a Cyrillic character set").
<P>Te dwa standardy [Alt i KOI-8] ró¿ni± siê tylko pozycjami znaków
cyrylicowych w tabeli (to jest kodami znaków cyrylicowych)/
<P>G³ówn± ró¿nic± jest to ¿e kodowanie Alt u¿ywane jest tylko przez
u¿ytkowników MS-DOS, podczas gdy KOI-8 u¿ywane jest w Unixie, a tak¿e
w MS-DOSie (chocia¿ w tym drugim jest znacznie mniej popularne).
Poniewa¿ robimy to co trzeba (to znaczy pracujemy w systemie Unixowym)
skupimy siê g³ównie na KOI-8.
<P>Co do standardu ISO, jest on bardziej popularny jako standard cyrylicy.
w Europie i USA. W Rosji zdecydowanie przoduje KOI-8.
<P>Istniej± i inne standardy, ró¿ne od ASCII i o wiele bardziej elastyczne.
Najbardziej znanym jest Unicode. Nie s± jednak one zaimplementowane
tak dobrze jak te podstawowe w Unixie w ogólno¶ci i Linuxie w
szczególno¶ci. Dlatego te¿ nie bêdê ich tu opisywa³.
<P>
<H2><A NAME="s3">3. 3. Ustawianie trybu tekstowego</A></H2>

<P>
<P>Zasadniczo tryb tekstowy jest najprostsz± metod± pokazywania i wprowadzania
znaków cyrylicy. Istnieje jednak jedna zasadnicza komplikacja: fonty
w trybie tekstowym i operacje na uk³adzie klawiatury zale¿± od implementacji
sterownika terminala. Nie ma wiêc przeno¶nej metody dla osi±gniêcia tego
celu miêdzy ró¿nymi systemami.
<P>Za chwilê opiszê sposób radzenia sobie ze sterownikiem konsoli Linuxa.
Tak wiêc je¶li masz inny system, nie spodziewaj siê ¿e bêdzie to dzia³aæ
u ciebie. Zajrzyj raczej do dokumentacji swojego sterownika terminala.
Po¶lij mi jednak¿e jakiekolwiek informacje jakie znajdziesz, tak aby móg³
w³±czyæ je do przysz³ych wersji tego dokumentu.
<P>
<H2>3.1 4.1. Konsola</H2>

<P>
<P>Sterownik konsoli Linuxa jest do¶æ elastycznym kawa³kiem software'u.
Potrafi on zmieniaæ fonty oraz uk³ady klawiatury. Aby to osi±gn±æ, bêdziesz
potrzebowa³ pakietu kbd. RedHat i Slackware instaluj± kbd jako czê¶æ
systemu.
<P>Pakiet kbd zawiera narzêdzia do kontrolowania klawiatury oraz znaczny
zbiór fontów i uk³adów klawiatury.
<P>By ustawiæ cyrylicê, trzeba wykonaæ dwie rzeczy:
<P>
<OL>
<LI>Ustawienie czcionki ekranowej. Wykonywane jest to za pomoc±
programu <CODE>setfont</CODE>. Pliki z czcionkami umieszczone s± w
<CODE>/usr/lib/kbd/consolefonts</CODE>.

UWAGA: Nigdy nie uruchamiaj programu setfont pod X, poniewa¿ zawiesi
on twój system. Dzieje siê tak poniewa¿ dzia³a on z odwo³aniami
niskiego poziomu do karty graficznej, których nie lubi X.
</LI>
<LI>Za³adowaæ odpowiedni uk³ad klawiatury programem <CODE>loadkeys</CODE>.</LI>
</OL>
<P>UWAGA: W RedHat 3.0.3 <CODE>/usr/bin/loadkeys</CODE> ma zbyt zawê¿one
prawa dostêpu, konkretnie 700 (<CODE>rwx------</CODE>). Nie ma powodu aby tak
by³o, poniewa¿ ka¿dy mo¿e skompilowaæ swoj± w³asn± kopiê i uruchomiæ
j± (odpowiednie odwo³ania do systemu nie s± zarezerwowane tylko dla
administratora). Popro¶ wiêc swojego sysadmina aby ustawi³ dlañ
bardziej sensowne prawa dostêpu (na przyk³ad 755).
<P>Oto wyci±g z mojego skryptu <CODE>cyrload</CODE>, który ustawia tryb cyrylicy
dla konsoli linuxowej.
<P>
<BLOCKQUOTE><CODE>
<PRE>
  if [ notset.$DISPLAY != notset. ]; then
      echo "`basename $0`:  nie dzia³a pod X"
      exit
  fi

  loadkeys /usr/lib/kbd/keytables/ru.map
  setfont /usr/lib/kbd/consolefonts/Cyr_a8x16
  mapscrn /usr/lib/kbd/consoletrans/koi2alt
  echo -ne "\033(K"              # magiczna sekwencja
  echo "U¿yj prawego Ctrl aby zmieniæ tryb"
</PRE>
</CODE></BLOCKQUOTE>
<P>Pozwól mi to nieco wyja¶niæ. £adujesz odpowiednie mapowanie klawiatury.
Nastêpnie ³adujesz font odpowiadaj±cy zestawowi znaków Alt. Pó¼niej,
aby móc poprawnie wy¶wietlaæ tekst w KOI-8, ³adujesz tablicê przekodowywania
ekranowego. Dokonuje ona translacji niektórych znaków z górnej po³ówki
kodowania na kodowanie Alt. Kluczowe znaczenie ma s³owo 'niektóre' - nie
wszystkie znaki podlegaj± translacji, dlatego te¿ niektóre z nich, jak
pseudograficzne znaki IBM, trafiaj± na ekran niezmodyfikowane i wy¶wietlaj±
siê poprawnie, poniewa¿ s± one kompatybilne z kodowaniem Alt, w
przeciwieñstwie do KOI-8. Aby siê upewniæ, uruchom <CODE>mc</CODE> i udawaj ¿e
jeste¶ znów w MS-DOS 3.3...
<P>W koñcu, owa magiczna sekwencja jest wa¿na, ale nie mam ¿adnego pojêcia
co takiego robi [resetuje konsolê i mapy odwzorowañ; patrz Keyboard-HOWTO -
przyp. GSN]. Po¿yczy³em/podkrad³em j± z German-HOWTO jeszcze w 1994, kiedy
by³o no chyba jedynym HOWTO zorientowanym na jêzyki narodowe. Je¶li masz
jaki¶ pomys³ co do tej magicznej sekwencji, powiadomij mnie, proszê.
<P>Dla tych purystów którzy nie chc± próbowaæ kodowania Alt do³±czam jeszcze
jedn± wersjê powy¿szego skryptu, u¿ywaj±c± rdzennych fontów KOI-8.
<P>
<BLOCKQUOTE><CODE>
<PRE>
  if [ notset.$DISPLAY != notset. ]; then
      echo "`basename $0`:  cannot run under X"
      exit
  fi

  loadkeys /usr/lib/kbd/keytables/ru.map
  setfont /usr/lib/kbd/consolefonts/koi-8x16
  echo "U¿yj prawego Ctrl aby zmieniæ tryb"
</PRE>
</CODE></BLOCKQUOTE>
<P>Nie spodziewaj siê jednak ³adnych ramek w swoich okienkowych aplikacjach
tekstowych.
<P>Chcesz to pewnie teraz wypróbowaæ. Ustaw bash lub tcsh jak trzeba,
uruchom je ponownie, potem naci¶nij prawy klawisz Ctrl i upewnij siê
¿e otrzymujesz prawid³owe znaki cyrylicy. Klawisz 'q' musi dawaæ
rosyjskie 'krótkie i', w generowaæ 'c' itd.
<P>Je¶li co¶ pokrêci³e¶, najlepsz± rzecz± jest przywrócenie ustawieñ
oryginalnych (tj. amerykañskich). Wykonaj nastêpuj±ce komendy:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  loadkeys /usr/lib/kbd/keytables/defkeymap.map
  setfont /usr/lib/kbd/consolefonts/default8x16
</PRE>
</CODE></BLOCKQUOTE>
<P>UWAGA: niestety sterownik konsoli nie jest w stanie zachowaæ swojego
statusu (a przynajmniej nie w prosty sposób) podczas uruchamiania
X Windows. Dlatego, kiedy wyjdziesz z X (albo prze³±czysz zeñ na
konsolê), bêdziesz musia³ ponownie za³adowaæ rosyjski font konsolowy.
<P>
<H2>3.2 Konsola FreeBSD</H2>

<P>
<P>Nie u¿ywam FreeBSD, tak wiêc nie mog³em przetestowaæ poni¿szej informacji.
Trzeba zacz±æ od tego ¿e wszystkie dane w tej sekcji nale¿y traktowaæ jako
wska¼niki. Strona domowa projektu FreeBSD mo¿e mieæ jakie¶ informacje
na ten temat. Innym dobrym ¼ród³em jest grupa newsowa <CODE>relcom.fido.ru.unix</CODE>.
Sprawd¼ tak¿e zasoby wyliczone w sekcji 11.
<P>W ka¿dym razie, oto co Ilja K. Orechow sugeruje zrobiæ aby konsola
FreeBSD mówi³a po rosyjsku:
<P>
<OL>
<LI>dodaj w <CODE>/etc/sysconfig</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
     keymap=ru.koi8-r
     keyrate=fast
     # UWAGA: ^[ poni¿ej to pojedynczy znak kontrolny [ESC]
     keychange="61 ^[[K"
     cursor=destructive
     scrnmap=koi8-r2cp866
     font8x16=cp866b-8x16
     font8x14=cp866-8x14
     font8x8=cp866-8x8
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>w <CODE>/etc/csh.login</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
     setenv ENABLE_STARTUP_LOCALE
     setenv LANG ru_SU.KOI8-R
     setenv LESSCHARSET latin1
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</OL>
<P>
<H2>3.3 System X Window</H2>

<P>
<P>Podobnie jak tryb konsoli, ¶rodowisko X równie¿ wymaga nieco konfiguracji.
Zawiera siê w niej ustawienie trybu wprowadzania i Xowych czcionek.
Oba aspekty omówione s± poni¿ej.
<P>
<H3>Xowe czcionki</H3>

<P>
<P>Po pierwsze zdobyæ musisz kolekcjê czcionek posiadaj±cych znaki
cyrylicy w odpowiednich miejscach.
<P>Je¶li u¿ywasz najnowszej dystrybucji X (lub XFree86), istnieje szansa
¿e masz ju¿ takie czcionki. W koñcu 1995 X Windows System w³±czy³ zestaw
czcionek cyrylicowych, stworzonych przez Cronyxa. Zapytaj swojego
administratora systemu, albo je¶li to ty nim jeste¶, sprawd¼ swój
system, to jest:
<OL>
<LI>Uruchom <CODE>xlsfonts | grep koi8</CODE>. Je¶li wyliczono jakie¶
czcionki, twój X-serwer ju¿ o nich wie.</LI>
<LI>W przeciwnym razie wykonaj

<BLOCKQUOTE><CODE>
<PRE>
find /usr -name crox\*.pcf\*
</PRE>
</CODE></BLOCKQUOTE>


aby znale¼æ miejsce czcionek cyrylicowych na serwerze. Bêdziesz musia³
w³±czyæ te czcionki dla X-serwera, jak wyja¶niam poni¿ej.</LI>
</OL>
<P>Je¶li nie znalaz³e¶ takich fontów zainstalowanych, bêdziesz musia³ to
sam zrobiæ.
<P>Istnieje pewna rozbie¿no¶æ co do czcionek. XFree86 twierdzi ¿e kolekcjê
czcionek rosyjskich zamieszczonych w dystrybucji stworzy³ Cronyx. Niemniej
na sieci znale¼æ mo¿na inne czcionki cyrylicowe Cronyxa (np. na
<CODE>ftp.klae.su</CODE>), znane jako pakiet <CODE>xrus</CODE> (nie myl go z programem
<CODE>xrus</CODE>, który u¿ywany jest do ustawienia uk³adu klawiatury cyrylicy).
Na szczê¶cie ten drugi zosta³ ostatnio przemianowany na <CODE>xruskb</CODE>.
<CODE>xrus</CODE> ma mniej czcionek ni¿ kolekcja w XFree86 (38 wobec 68), ale
te drugie czcionki nie chcia³y dzia³aæ z moim ustawieniem Netscape -
dawa³y mi jak±¶ strasznie du¿± czcionkê w pasku menu. Pakiet <CODE>xrus</CODE>
nie stwarza³ tego problemu.
<P>Sugerowa³bym ¶ci±gniêcie i wypróbowanie obydwu. Wybierz ten który bardziej
ci siê podoba. Mam tak¿e zamiar wkrótce stworzyæ pakiety RPM dla obu
kolekcji i pod³adowaæ je do <CODE>ftp.redhat.com</CODE> oraz mojego FTP.
<P>Istniej± tak¿e starsze rzeczy, na przyk³ad pakiet VakuFonts, stworzony przez
Sergieja Wakulenko <CODE>(
<A HREF="mailto:vak@cronyx.ru">mailto:vak@cronyx.ru</A>)</CODE>, który
tworzy³ podstawê dla tego w dystrubucji X. Istniej± te¿ inne. Wa¿n± rzecz±
jest to ¿e nazwy czcionek w starszych kolekcjach nie ca³kiem ¶ci¶le
stosowa³y siê do standardów. Pó¼niejsze s± w zasadzie w porz±dku, ale
czasami wywo³aæ mog± ró¿ne dziwne b³êdy. Mia³em na przyk³ad niemi³e
do¶wiadczenia z Maple V dla Linuxa, który wyk³ada³ siê tajemniczo z
pakietem VakuFonts, ale dzia³a³ bez zarzutu ze "standardowymi".
<P>Zacznijmy wiêc od czcionek:
<P>
<OL>
<LI>¦ci±gnij odpowiedni± kolekcjê czcionek. Pakiet dla XFree86 mo¿na
znale¼æ w ka¿dym FTP zawieraj±cym dystrybucjê Xa, na przyk³ad mo¿esz
j± ¶ci±gn±æ] bezpo¶rednio z FTP XFree86. Pakiet <CODE>xrus</CODE> znale¼æ
mo¿na na <CODE>ftp.klae.su</CODE>.
<LI>Teraz kiedy masz czcionki, stwórz dla nich jaki¶ katalog. Zwykle
z³ym pomys³em jest wsadzanie nowych czcionek do ju¿ istniej±cego
katalogu. Umie¶æ je wiêc w, powiedzmy, <CODE>/usr/lib/X11/fonts/cyrillic</CODE>
dla instalacji ca³osystemowej, albo po prostu utwórz katalog prywatny dla
u¿ytku osobistego.
<LI>Je¶li nowe czcionki s± w formacie BDF (pliki *.bdf), musisz je
skompilowaæ. Wykonaj dla ka¿dej czcionki
<PRE>
       bdftopcf -o name.pcf name.bdf
</PRE>

Je¶li twój serwer obs³uguje czcionki skompresowane, skompresuj je u¿ywaj±c
programu <CODE>compress</CODE>
<PRE>
       compress name.pcf
</PRE>

Je¶li chcesz wsadziæ nowe czcionki do ju¿ istniej±cego katalogu, bêdziesz
musia³ po³±czyæ stary i nowy <CODE>font.alias</CODE>. w przypadku gdy oba istniej±,
np.
<PRE>
cat font.alias.new >> font.alias
</PRE>

Teraz, ¿eby wszystko ustawiæ, powiniene¶ wykonaæ trzy rzeczy:
<LI>Ka¿da katalog z czcionkami w X musi zawieraæ listê znajduj±cych
siê w nim czcionek. Lista ta przechowywana jest w <CODE>fonts.dir</CODE>. Nie
musisz jej tworzyæ rêcznie. Zamiast tego, wykonaj
<PRE>
cd &lt;katalog_z_nowymi_czcionkami>
mkfontdir
</PRE>

<LI>Musisz teraz powiadomiæ X-serwer o tym katalogu z czcionkami. Masz
tu kilka opcji:
<UL>
<LI>Instalacja dla ca³ego systemu XFree86. Je¶li uruchamiasz t± wersjê
X, do³±cz nowy katalog do listy katalogów w <CODE>XF86Config</CODE>. Aby znale¼æ
po³o¿enie tego pliku spójrz na wyj¶cie <CODE>startx</CODE>. Patrz te¿
XF86Config{4,5} po szczegó³y.</LI>
<LI>Instalacja dla ca³ego systemu poprzez <CODE>xinit</CODE>. Dodaj katalog
startowy do pliku startowego <CODE>xinit</CODE>. Patrz xinit(1x) i nastêpny punkt
po szczegó³y.</LI>
<LI>Instalacja osobista. Masz specjalny plik startowy dla X -
<CODE>~/.xinitrc</CODE> (albo <CODE>~/.Xclients</CODE>, albo <CODE>~/.xsession</CODE>
dla u¿ytkowników RedHata). Dodaj do niego nastêpuj±ce komedy:

<BLOCKQUOTE><CODE>
<PRE>
xset +fp katalog_z_czcionkami
xset fp rehash
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>Zrestartuj teraz X. Je¶li wykona³e¶ wszystko prawid³owo, testy
na pocz±tku sekcji powiod± siê. Pobaw siê tak¿e xfontsel(1x), aby siê
upewniæ ¿e mo¿esz wybieraæ czcionki cyrylicowe.</LI>
</UL>
</LI>
</LI>
</LI>
</LI>
</LI>
</OL>
<P>Aby klienci X u¿ywali czcionek cyrylicowych, musisz ustawiæ odpowiednie
X-zasoby. Na przyk³ad, ustawiam czcionkê rosyjsk± jako domy¶ln± w swoim
&nbsp;/.Xdefaults:
<P>
<BLOCKQUOTE><CODE>
<PRE>
*font           6x13
</PRE>
</CODE></BLOCKQUOTE>
<P>Poniewa¿ moje czcionki cyrylicowe s± pierwsze na li¶cie ¶cie¿ek do
czcionek (patrz rezultaty [xinit, wybrana zostanie pierwsza czcionka o
aliasie 6x13)]
<P>To prostszy przyk³ad. Je¶li chcesz ustawiæ odpowiedni± czê¶æ X-klienta
by u¿ywa³a czcionek cyrylicowych, musisz znale¼æ nazwê zasobu (np.
za pomoc± editres(1x) i ustaliæ go albo w bazie danych zasobów, albo
w linii komend. Oto kilka przyk³adów:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  $ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*'

  $ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*'
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>T³umaczenie danych wprowadzanych</H3>

<P>
<P>W najnowszych wersjach X (X11R61 i wy¿szych) istniej± dwie "standardowe"
metody wprowadzania znaków: pierwotna, dzia³aj±ca z u¿yciem programu
<CODE>xmodmap</CODE>, oraz nowa, zwana (Xkb) XKeyBoard. Pierwsze co powiniene¶
zrobiæ to wy³±czyæ metodê Xkb! Nie daj siê oczarowaæ jej mo¿liwo¶ciami
ustawienia "cyrylicznej klawiatury". Wygl±da na to ¿e ta metoda u¿ywa
klawsymów zdefiniowanych w <CODE>keysymdef.h</CODE>. Plik ten definiuje klawsymy
dla wielu jêzyków. Jednym problemem jest to ¿e te definicje nie maj±
nic wspólnego z rozszerzonym zestawem znaków ASCII - jedynym na którym
potrafi wy³±cznie operowaæ wiêkszo¶æ programów! Ledwie wiem o jaki¶
programach które zdolne s± przetworzyæ klawsymy z <CODE>keysymdef.h</CODE>
ró¿ne od o¶miobitowego ASCII. Jednakowo¿ naszym celem jest sprawienie
¿eby obs³uga KOI-8 zadzia³a³a.
<P>Aby wy³±czyæ obs³ugê Xkb, przegl±dnij sekcjê Keyboard w swoim pliku
<CODE>XF86Config</CODE> i wykomentuj wszystkie linie zaczynaj±ce siê od Xkb
(wielko¶æ liter bez znaczenia). Zamiast nich, wstaw nastêpuj±c± liniê:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  XkbDisable
</PRE>
</CODE></BLOCKQUOTE>
<P>Program <CODE>xmodmap</CODE> pozwala na dopasowanie kodów które wysy³aj± ró¿ne
znaki i ich kombinacje. Ustawia on to opieraj±c siê na pliku zawieraj±cym
tabelê t³umaczeñ.
<P>Je¶li nie chcesz zajmowaæ siê wszystkimi tymi trikami i wolisz rozwi±zanie
od rêki, [b±d¼ to] ¶ci±gnij odpowiedni± tablicê xmodmapow±, dostêpn± na
wielu ftpach zajmuj±cych siê cyrylic±, na przyk³ad <CODE>ftp.kiae.su</CODE> albo
<CODE>ftp.funet.fi</CODE>. Sam sporz±dzi³em równie¿ mapê opisan± poni¿ej, dostêpn±
przez mój ftp.
<P>Bardziej odpowiedni± alternatyw± jest instalacja pakietu <CODE>xruskb</CODE>,
który pozwala ci skonfigurowaæ wiêkszo¶æ parametrów translacji wej¶ciowej
bez potrzeby obeznania siê z <CODE>xmodmap</CODE>.
<P>Poni¿ej uproszczony opis przystosowania wej¶cia. Je¶li chcesz jaki¶
bardziej wyrafinowanych trików, zajrzyj do xmodmap(1) lub, jeszcze
lepiej, poczekaj na nastêpn± wersjê g³ówn± X, która miejmy nadziejê
zajmie siê bie¿±cymi problemami ze wprowadzaniem danych.
<P>W naszym przypadku, tablica t³umaczeñ powinna definiowaæ dwie rzeczy:
<P>
<UL>
<LI>kody znaków wysy³ane przez klawisze alfanumeryczne, oraz</LI>
<LI>zasady prze³±czania siê miêdzy trybami</LI>
</UL>
<P>
<H3>Tablica znaków</H3>

<P>
<P>Jest to w zasadzie sekwencja dyrektyw które przypisuj± pewne klawsymy
okre¶lonym kodom klawiszy. Ogólna sk³adnia to:
<P>
<PRE>
keycode kod = sym1 sym2 sym3 sym4
</PRE>
<P>gdzie <CODE>kod</CODE> to numeryczny kod okre¶lonego klawisza na klawiaturze (zajrzyj
do tablicy standardowej dla twojego systemu. W moim przypadku znajduje
siê ona w pliku <CODE>/usr/lib/X11/etc/xmodmap.std</CODE>). "Symy" definiuj± klawsymy
wysy³ane przez ten klawisz w ró¿nych stanach. <CODE>Sym1</CODE> jest klawsymem
wysy³anym w stanie normalnym, <CODE>sym2</CODE> odpowiada klawiszowi z naci¶niêtym
Shift (zwykle), <CODE>Sym3</CODE> i <CODE>sym4</CODE> definiuj± klawsymy wysy³ane przy aktywnym
Mode_switch dla stanów normalnych i ze Shiftem odpowiednio (grupa 2,
zgodnie z X Protocol Specification). W naszym przypadku aktywny Mode_switch
odpowiada wprowadzaniu w trybie cyrylicy.
<P>Warto¶ciami powinny byæ albo kody szesnastkowe, albo sta³e symboliczne
z <CODE>/usr/include/X11/keysymdef.h</CODE> (bez pocz±tkowego "XK_").
<P>Tak wiêc je¿eli chcieliby¶my aby klawisz odpowiadaj±cy ³aciñskiemu "a"
wypisywa³ "a" rosyjskie w trybie alternatywnym, napisaliby¶my jak ni¿ej:
<P>
<PRE>
keycode 38  =  a  A  0xC1 0xE1
</PRE>
<P>Czytelnik ciekaw byæ mo¿e dlaczego nie u¿y³em sta³ych Cyrillic_a oraz
Cyrillic_A, odpowiednio. Odpowied¿ brzmi: nie dzia³aj± one dla mnie.
Nie jestem zbyt obeznany z wnêtrzno¶ciami specyfikacji systemu X Windows,
ale mam nastêpuj±ce wyt³umaczenie: symboliczne sta³e powy¿ej maj± warto¶ci
0x6C1 oraz 0x6E1 odpowiednio. Oznacza to ¿e w rzeczywi¶cie multijêzykowym
¶rodowisku mo¿naby u¿ywaæ ich bez ich nak³adania siê na inne zestawy znaków.
Jednak standard KOI-8 nie jest szczególnie przystosowany do takiego
¶rodowiska. Poniewa¿ wiêc chcemy pozostaæ kompatybilni z przesz³o¶ci±,
naruszymy regu³y obs³ugi wielu jêzyków w systemie X Windows.
<P>Oto tabela dla najbardziej popularnej rosyjskiej klawiatury w uk³adzie
JCUKEN (tabele te pochodz± od tych z pakietu VakuFonts).
<P>
<BLOCKQUOTE><CODE>
<PRE>
  keysym  4             = 4               dollar          4       quotedbl
  keysym  5             = 5               percent         5       colon
  keysym  6             = 6               asciicircum     6       comma
  keysym  7             = 7               ampersand       7       period
  keysym  q             = q               Q               0xCA    0xEA
  keysym  w             = w               W               0xC3    0xE3
  keysym  e             = e               E               0xD5    0xF5
  keysym  r             = r               R               0xCB    0xEB
  keysym  t             = t               T               0xC5    0xE5
  keysym  y             = y               Y               0xCE    0xEE
  keysym  u             = u               U               0xC7    0xE7
  keysym  i             = i               I               0xDB    0xFB
  keysym  o             = o               O               0xDD    0xFD
  keysym  p             = p               P               0xDA    0xFA
  keysym  bracketleft   = bracketleft     braceleft       0xC8    0xE8
  keysym  bracketright  = bracketright    braceright      0xDF    0xFF
  keysym  a             = a               A               0xC6    0xE6
  keysym  s             = s               S               0xD9    0xF9
  keysym  d             = d               D               0xD7    0xF7
  keysym  f             = f               F               0xC1    0xE1
  keysym  g             = g               G               0xD0    0xF0
  keysym  h             = h               H               0xD2    0xF2
  keysym  j             = j               J               0xCF    0xEF
  keysym  k             = k               K               0xCC    0xEC
  keysym  l             = l               L               0xC4    0xE4
  keysym  semicolon     = semicolon       colon           0xD6    0xF6
  keysym  apostrophe    = apostrophe      quotedbl        0xDC    0xFC
  keysym  grave         = grave           asciitilde      0xA3    0xB3
  keysym  z             = z               Z               0xD1    0xF1
  keysym  x             = x               X               0xDE    0xFE
  keysym  c             = c               C               0xD3    0xF3
  keysym  v             = v               V               0xCD    0xED
  keysym  b             = b               B               0xC9    0xE9
  keysym  n             = n               N               0xD4    0xF4
  keysym  m             = m               M               0xD8    0xF8
  keysym  comma         = comma           less            0xC2    0xE2
  keysym  period        = period          greater         0xC0    0xE0
</PRE>
</CODE></BLOCKQUOTE>
<P>Dla u¿ywaj±cych rosyjskiego uk³adu JAWERTY do³±czy³em nastêpuj±c±
tabelê:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  keysym  q             = q               Q               0xD1    0xF1
  keysym  w             = w               W               0xD7    0xF7
  keysym  e             = e               E               0xC5    0xE5
  keysym  r             = r               R               0xD2    0xF2
  keysym  t             = t               T               0xD4    0xF4
  keysym  y             = y               Y               0xD9    0xF9
  keysym  u             = u               U               0xD5    0xF5
  keysym  i             = i               I               0xC9    0xE9
  keysym  o             = o               O               0xCF    0xEF
  keysym  p             = p               P               0xD0    0xF0
  keysym  bracketleft   = bracketleft     braceleft       0xDB    0xFB
  keysym  bracketright  = bracketright    braceright      0xDD    0xFD
  keysym  a             = a               A               0xC1    0xE1
  keysym  s             = s               S               0xD3    0xF3
  keysym  d             = d               D               0xC4    0xE4
  keysym  f             = f               F               0xC6    0xE6
  keysym  g             = g               G               0xC7    0xE7
  keysym  h             = h               H               0xC8    0xE8
  keysym  j             = j               J               0xCA    0xEA
  keysym  k             = k               K               0xCB    0xEB
  keysym  l             = l               L               0xCC    0xEC
  keysym  z             = z               Z               0xDA    0xFA
  keysym  x             = x               X               0xD8    0xF8
  keysym  c             = c               C               0xC3    0xE3
  keysym  v             = v               V               0xD6    0xF6
  keysym  b             = b               B               0xC2    0xE2
  keysym  n             = n               N               0xCE    0xEE
  keysym  m             = m               M               0xCD    0xED
  keysym  backslash     = backslash       bar             0xDC    0xFC
  keysym  grave         = grave           asciitilde      0xC0    0xE0
  keysym  equal         = equal           plus            0xDE    0xFE
  keysym  3             = 3               numbersign      3       0xDF
  keysym  4             = 4               dollar          4       0xFF
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>Zasady prze³±czania trybów</H3>

<P>
<P>Jest to zasadniczo czê¶æ konfiguracji Xowej cyrylicy wymagaj±ca najwiêcej
wiedzy. Zdefiniowaæ powiniene¶ warunki w których tryb bie¿±cy prze³±czany
jest miêdzy trybem zwyk³ym i cyrylicy. Dziêki m±dremu zaprojektowaniu
translacji wej¶cia w X, jest ona nieprzeno¶na, nieelastyczna, niekompletna
i ogólnie mówi±c do kitu. Nic dziwnego ¿e ludzie przenosz± siê na MS Windows.
<P>Obecnie du¿o siê dzieje w rozwijaniu XFree86 w ogólno¶ci i modelu
wej¶cia w X w szczególno¶ci. Rezultat jest taki ¿e twoja konfiguracja
mo¿e dzia³aæ z jedn± wersj± XFree86 i nie dzia³aæ z inn±. Co gorsza,
czasami rzeczy ró¿ni± siê miêdzy ró¿nymi serwerami w tej samej dystrybucji.
<P>Najpierw opiszê moje ustawienia, które w obecnej chwili dzia³aj± dla mnie.
Pracujê w XFree86 3.3, serwer SVGA. W moim pliku <CODE>XF86Config</CODE> (w
dystrybucji RedHata umieszczony jest on w <CODE>/etc/X11</CODE>, w sekcji
"Keyboard" mam nastêpuj±ce dyrektywy:
<P>Istniej± dwa sposoby osi±gniêcia tego w Linuxie. Jedna jest specyficzna
dla XFree86, podczas gdy druga jest bardziej ogólna (nie za bardzo mo¿e,
jak i poka¿ê ni¿ej).
<P>
<BLOCKQUOTE><CODE>
<PRE>
     LeftAlt         Meta
     RightAlt        ModeShift
     ScrollLock      ModeLock
     RightCtl        Control
</PRE>
</CODE></BLOCKQUOTE>
<P>UWAGA: Metoda ustawiania regu³ prze³±czania trybów poprzez plik
<CODE>XF86Config</CODE> jest specyficzna dla XFree86. Nie bêdzie ona dzia³aæ
w innych wersjach X.
<P>Teraz ³adujê tabelê opisan± w poprzedniej sekcji i zachowan± w jakim¶
pliku u¿ywaj±c narzêdzia xmodmap(1x):
<P>
<BLOCKQUOTE><CODE>
<PRE>
  xmodmap  &lt;plik_z_tabel±>
</PRE>
</CODE></BLOCKQUOTE>
<P>Teraz mam mo¿liwo¶æ zaznaczenia trybu wprowadzania cyrylicy u¿ywaj±c
prawego klawisza Alt oraz prze³±czenia na cyrylicê i z powrotem u¿ywaj±c
ScrollLock. Zdziwisz siê je¶li zobaczysz ¿e ani CapsLock ani klawisze
Control nie dzia³aj± w trybie wprowadzania cyrylicy. Có¿, powiem to raz
jeszcze: model wej¶cia X jest do kitu!
<P>Resztê tej sekcji zajmuje zwiêz³y opis zwyk³ej konfiguracji translacji
wej¶cia w X. Dzia³a³a ona dla starszych wydañ XFree86, ale teraz wykazuje
rozmaite problemy. Pozostawi³em j± tutaj, tak aby co bardziej ciekawi
z was mogli spróbowaæ czê¶ci tego i zu¿ytkowaæ to.
<P>Powiniene¶ zrobiæ co nastêpuje:
<P>
<UL>
<LI>przypisaæ klawsym Mode_switch jakiemu¶ klawiszowi, oraz</LI>
<LI>dodaæ Mode_switch do jakie¶ nieu¿ywanego uk³adu</LI>
</UL>
<P>Teraz klawisz do którego przypisany jest ModeShift bêdzie dzia³a³ jako
prze³±cznik trybów. Oznacza to ¿e gdy jest przyci¶niêty, klawiatura
znajduje siê w trybie alternatywnym.
<P>Co wiêcej, je¶li dodasz klawsym Mode_lock do tego uk³adu, bêdzie on
ustawia³ na sta³e tryb alternatywny.
<P>Uwaga: s± jednak pewne problemy. Siergiej Wakulenko (<CODE>vax@cronyx.com</CODE>)
wskaza³ ¿e ró¿ne implementacje X-serwerów maj± ró¿ne zasady przypisywania
prze³±czników trybu (np. niektóre serwery ograniczaj± zestaw klawiszy które
mog± dzia³aæ w trybie prze³±cznika do, powiedzmy, CapsLock, NumLock oraz
ScrollLock). Na szczê¶cie ma siê to zmieniæ w nastêpnym wydaniu
systemu X Windows. Po szczegó³y patrz specyfikacja X Protocol.
<P>Niestety nie uda³o mi siê zmusiæ CapsLock aby mia³ t± sam± funkcjonalno¶æ
w trybie alternatywnym, konkretnie aby na sta³e w³±cza³ du¿e litery.
Wydaje mi siê ¿e nie mo¿na tego dokonaæ z powodu idiotycznego
zaprojektowania translacji wej¶cia w X. Je¶li siê mylê, proszê mnie
poprawiæ.
<P>Zobaczmy przyk³ad. Za³ó¿my ¿e chce siê u¿ywaæ prawego Alt jako
prze³±cznika trybów i ScrollLock do ustawiania trybu na sta³e.
Najpierw powinno siê sprawdziæ domy¶lny uk³ad modyfikatorów.
Osi±ga siê to uruchamiaj±c xmodmap bez argumentów.
<P>
<BLOCKQUOTE><CODE>
<PRE>
       $ xmodmap

       xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):

       shift       Shift_L (0x32),  Shift_R (0x3e)
       lock        Caps_Lock (0x42)
       control     Control_L (0x25)
       mod1        Alt_L (0x40),  Alt_R (0x71)
       mod2        Num_Lock (0x4d)
       mod3
       mod4
       mod5
</PRE>
</CODE></BLOCKQUOTE>
<P>Zgodnie z powy¿szym, plan ataku wygl±da jak nastêpuje:
<P>
<OL>
<LI>usun±æ klawisz Alt_R z klawsymu mod1</LI>
<LI>przypisaæ klawsym Mode_switch klawiszowi Alt_R</LI>
<LI>przypisaæ klawsym Scroll_Lock do kodu klawisza 78 (kodu rzeczywistego
ScrollLock)</LI>
<LI>dodaæ Mode_switch do nieu¿ywanego klawsymu mod3 i</LI>
<LI>dodaæ klawsym Scroll_Lock do mod3</LI>
</OL>
<P>Oto wiêc rozwi±zanie:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  remove mod1 = Alt_R
  keysym Alt_R = Mode_switch
  keycode 78 = Scroll_Lock
  add mod3 = Mode_switch
  add mod3 = Scroll_Lock
</PRE>
</CODE></BLOCKQUOTE>
<P>Je¶li u¿yjesz tego drugiego rozwi±zania, mo¿esz po³±czyæ tabelê i
dyrektywy dotycz±ce trybów w swoim pliku <CODE>~/.Xmodmap</CODE>.
<P>Pliki takie dostarczane s± przewa¿nie razem z ró¿nymi pakietami
do obs³ugi cyrylicy pod X. Dobrym przyk³adem s± tabele w doskona³ym
pakiecie Siergieja Wakulenki, opisanym wy¿ej.
<P>Gdy ju¿ masz taki plik zawieraj±cy tabelê, powiniene¶ wykonaæ komendê:
<P>
<PRE>
xmodmap filename
</PRE>
<P>Plik dla ca³ego systemu to <CODE>/usr/lib/X11/xinit/xinitrc</CODE>; osobisty
to albo <CODE>~/.xinitrc</CODE>, albo <CODE>~/.Xclients</CODE>, albo
<CODE>~/.xsession</CODE>, zale¿nie od tego co masz [zainstalowane].
<P>UWAGA: Je¶li <CODE>xmodmap</CODE> narzeka na twoj± tabelê, spróbuj za³adowaæ
najpierw domy¶ln±. Tabela domy¶lna znajduje siê zwykle w
<CODE>/usr/lib/X11/etc/xmodmap.std</CODE>.
<P>
<H2><A NAME="s4">4. Obs³uga cyrylicy w LaTeXie</A></H2>

<P>
<P>W tej sekcji opiszê kilka sposobów nak³onienia TeXa i LaTeXa do sk³adania tekstu
w cyrylicy.  Istnieje kilka sposobów, które ró¿ni± siê wyrafinowaniem
instalacji i wygod± w obs³udze. Dla przyk³adu, jedn± z mo¿liwo¶ci jest
zacz±æ bez ¿adnej wstêpnej instalacji i u¿yæ fontów cyrylicowych Washington
AMSTeX. Z drugiej strony, mo¿esz zainstalowaæ pakiet LaTeX, który zapewnia
wysoki stopieñ ustawieñ dotycz±cych cyrylicy.  Mam pewne do¶wiadczenia z dwoma
pakietami. Pierwszy to pakiet <CODE>cmcyralt</CODE>
autorstwa Wadima W. ¯ytnikowa
(
<A HREF="mailto:vvzhy@phy.ncu.edu.tw">mailto:vvzhy@phy.ncu.edu.tw</A>)
i Aleksandra Harina
(
<A HREF="harin@lourie.und.ac.za">harin@lourie.und.ac.za</A>), a ten drugi to pakiet <CODE>LH</CODE>
autorstwa CyrTUG
[Cyrillic TeX Users Group] ze stylami i dzieleniem wyrazów
dla LaTeX2e
autorstwa Sergieja O. Naoumowa (
<A HREF="serge@astro.unc.edu">serge@astro.unc.edu</A>).
Opiszê obydwa.
<P>Zauwa¿ ¿e dostêpne s± dwie wersje LaTeXa
: 2.09 jest wersj± starsz±, podczas
gdy 2e jest nowszym wydaniem pre-3.0. Je¶li u¿ywasz LaTeXa 2.09, przestaw
siê szybko na 2e. Ten drugi pozostaje kompatybilny z tym pierwszym, ale
ma o wiele wiêcej funkcji. Miejmy nadziejê ¿e wersja 3 zostanie wkrótce
wypuszczona. Opiszê ustawienia dla LaTeXa 2e.
<P>Uwaga: oba te pakiety wymagaj± aby tekst w cyrylicy sk³adany by³
z u¿yciem zestawu znaków Alt, nie KOI-8! Spowodowane jest to przyczynami
historycznymi, poniewa¿ twórcy tych pakietów pracowali byli z EmTeXem
- MS-DOSow± wersj± TeXa (nie wiedzieli jeszcze o Linuxie :-). Przestawienie
ich na KOI-8 wymaga nieco wysi³ku i spodziewane jest niebawem. Na razie,
u¿ywaj jakiego¶ narzêdzia do konwersji tekstu rosyjskiego z KOI-8 do
Alt. Patrz sekcja "Narzêdzia u¿ytkownika".
<P>
<H2>4.1 U¿ywanie Washington Cyryliic</H2>

<P>
<P>Pakiet ten zosta³ stworzony przez American Mathematics Society w celu
uzupe³nienia dokumentów o odno¶niki po rosyjsku. Dlatego te¿ autorzy nie
byli zbyt uwa¿ni, a czcionki wygl±daj± raczej niezrêcznie. Pakiet ten
okre¶la siê zwykle jako 'ca³kiem kiepski pakiet cyrylicy dla TeXa'.
<P>Niemniej jednak omówimy go, poniewa¿ jest on bardzo ³atwy w u¿yciu i nie
wymaga ¿adnej konfiguracji - kolekcja ta dostarczana jest z wiêkszo¶ci±
dystrybucji TeXa.
<P>Oczywi¶cie nie bêdziesz móg³ sobie pozwoliæ na taki luksus jak automatyczne
przenoszenie wyrazów, ale jednak...
<P>
<OL>
<LI>Poprzed¼ swój dokument nastêpuj±cymi dyrektywami:

<BLOCKQUOTE><CODE>
<PRE>
\input cyracc.def
\font\tencyr=wncyr10
\def\cyr{\tencyr\cyracc}
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Teraz aby napisaæ literê w cyrylicy, wprowadzasz

<PRE>
\cyr
</PRE>


i u¿ywasz odpowiedniej litery ³aciñskiej albo komendy TeXa. I tak ma³e
litery rosyjskiego alfabetu wyra¿aj± nastêpuj±ce kody:

a b v g d e \"e zh z i {\u l} k l m n o p q r s t u f kh c ch sh shch
{\cprime} y {\cdprime} \'e yu ya</LI>
</OL>
<P>Jest bardzo niewygodnym przekonwertowaæ twoje teksty rosyjskie na takie
kodowanie, lecz proces mo¿na zautomatyzowaæ. Program translit (sekcja 11)
obs³uguje wynik w postaci TeXowej.
<P>
<H2>4.2 Pakiet KOI-8 dla LaTeXa</H2>

<P>
<P>Pojawi³ siê jaki¶ nowy pakiet <CODE>teTeX-rus</CODE>. Podobno obs³uguje on zestaw znaków
KOI-8 i ma wszystkie podstawowe rzeczy wymagane dla TeXa i LaTeXa. Osobi¶cie
jeszcze go nie próbowa³em, chocia¿ s³ysza³em o pomy¶lnym go u¿ywaniu.
<P>
<H2>4.3 U¿ywanie pakietu cmcyralt dla LaTeXa</H2>

<P>
<P>Pakiet <CODE>cmcyralt</CODE> znale¼æ mo¿na na ka¿dym z wêz³ów CTAN (Comprehensive TeX
Archive Network), jak <CODE>ftp.dante.de</CODE>. Powiniene¶ zdobyæ dwie kolekcje:
kolekcjê fontów z [katalogu] <CODE>/fonts/cmcyralt</CODE> oraz style i regu³y
dzielenia wyrazów z [katalogu]
<CODE>/macros/latex/contrib/others/cmcyralt</CODE>.
<P>Uwaga: upewnij siê ¿e masz zainstalowany pakiet Sauter, bowiem <CODE>cmcyralt</CODE>
potrzebuje z niego niektórych fontów. Pakiet ten mo¿esz równie¿
zdobyæ z wêz³a CTAN.
<P>Powiniene¶ teraz zrobiæ co nastêpuje:
<P>
<OL>
<LI>Umie¶ciæ nowe czcionki w drzewie czcionek TeXa. W moim systemie
(Slackware 2.2) stworzy³em podkatalog <CODE>cmcyralt</CODE> w
<CODE>/usr/lib/texmf/fonts/cm/</CODE>. Utwórz w nim podkatalogi <CODE>src</CODE>,
<CODE>tfm</CODE> i <CODE>vf</CODE>. Umie¶æ tam pliki <CODE>.mf</CODE>, <CODE>.tfm</CODE> oraz
<CODE>.vf</CODE>, odpowiednio.</LI>
<LI>Umie¶æ pliki sterowników czcionek (<CODE>*.fd</CODE>) z archiwum stylów
w odpowiednim miejscu (w moim przypadku by³ to
<CODE>/usr/lib/texmf/tex/latex/fd)</CODE>.</LI>
<LI>Umie¶æ pliki stylów (<CODE>*.sty</CODE>) w odpowiednim katalogu stylów
LaTeXa (w moim przypadku <CODE>/usr/lib/texmf/tex/latex/sty</CODE>).</LI>
</OL>
<P>Teraz konfiguracja dzielenia wyrazów. Wymaga to przerobienia
pliku bazowego
LaTeXa.
<P>
<OL>
<LI>Plik <CODE>hyphen.cfg</CODE> zawiera dyrektywy dla dzielenia wyrazów
w angielskim i rosyjskim. Wytnij to co tyczy siê rosyjskiego
i umie¶æ to w pliku konfiguracji dzielenia wyrazów LaTeXa,
<CODE>lthyphen.ltx</CODE>. W moim przypadku plik ten znajdowa³ siê w
<CODE>/usr/lib/texmf/tex/latex/latex-base</CODE>.</LI>
<LI>W tym samym katalogu umie¶æ plik <CODE>rhyphen.tex</CODE>. Potrzebny jest
on do stworzenia nowego pliku bazowego. Pó¼niej mo¿esz go usun±æ.</LI>
<LI>Wykonaj w tym katalogu <CODE>make</CODE>. Nie zapomnij stworzyæ odno¶nika
z <CODE>Makefile</CODE> do <CODE>Makefile.unx</CODE>. Podczas wykonywania <CODE>make</CODE> sprawd¼
komunikaty. Powinno siê pojawiæ:

<PRE>
Loading hyphenation patterns for Russian
</PRE>
</LI>
</OL>
<P>Je¶li wszystko pójdzie poprawnie, otrzymasz w tym katalogu nowy
<CODE>latex.fmt</CODE>. Wstaw go w odpowiednie miejsce, tam gdzie znajdowa³ siê
poprzedni (np. <CODE>/usr/lib/texmf/ini/</CODE>). Nie zapomnij zachowaæ starego
pliku!
<P>Oto¿ i to. Instalacja gotowa. Spróbuj przetworzyæ przyk³ady z archiwum
stylów. Je¶li mo¿esz stworzyæ pliki postscriptowe bez ¿adnych problemów,
wszystko jest w porz±dku. Teraz aby u¿ywaæ cyrylicy w LaTeXie, wstaw
na pocz±tek swojego dokumentu poni¿sz± dyrektywê:
<P>
<PRE>
\usepackage{cmcyralt}
</PRE>
<P>Po szczegó³y patrz plik <CODE>README</CODE> w archiwum stylów <CODE>cmcyralt</CODE>.
<P>Uwaga: je¶li masz problemy z przyk³adami, za³o¿ywszy ¿e instalowa³e¶
prawid³owo, to prawdopodobnie twój system TeX nie zosta³ zainstalowany
poprawnie. Na przyk³ad, przy mojej pierwszym te¶cie ka¿da próba
stworzenia plików <CODE>.pk</CODE> dla czcionek rosyjskich nie udawa³a siê (etap
<CODE>MakeTeXPK</CODE>). Dok³adne przyjrzenie siê plikom wykry³o pewien niejawny
konflikt miêdzy konfiguracjami METAFONT <CODE>localfont</CODE> i <CODE>ljfour</CODE>. Kiedy¶
by³o to dzia³a³o, ale rozpad³o siê po instalacji <CODE>cmcyralt</CODE>. Skontaktuj
siê ze swoim lokalnym guru od TeXa - TeX jest bardzo (czasami za
bardzo) z³o¿ony aby rekonfigurowaæ go bez wcze¶niejszej znajomo¶ci.
<P>
<H2>4.4 Pakiet CyrTUG</H2>

<P>
<P>Pakiet CyrTUG uzyskaæ mo¿esz z archiwum SunSite
<CODE>(
<A HREF="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software">ftp://sunsite.unc.edu/pub/academic/russian-studies/Software</A>)</CODE>.
Zrzuæ stamt±d pliki <CODE>CyrTUGfonts.tar.gz</CODE>, <CODE>CyrTUGmacro.tar.gz</CODE> i
<CODE>hyphen.tar.Z</CODE>.
<P>Proces instalacji nie ró¿ni siê od opisanego powy¿ej.
<P>
<H2><A NAME="s5">5. Cyrylica w PostScriptcie</A></H2>

<P>
<P>Eksperci powiadaj± ¿e PostScript jest ³atwy. Nie potrafiê os±dziæ - mam zbyt
wiele rzeczy do nauczenia siê aby po¶wiêciæ trochê czasu na naukê
PostScriptu. Spróbujê wiêc opisaæ moje smutne z nim do¶wiadczenia. Mile
widzia³bym wsparcie od ka¿dego kto wie wiêcej
na ten temat ode mnie (ok. 99%
ludzko¶ci).
<P>Zasadniczo aby wydrukowaæ tekst z u¿yciem PostScriptu, musisz siê upewniæ co
do nastêpuj±cych rzeczy:
<P>
<UL>
<LI>Czcionka cyrylicowa jest za³adowana lub zawarta w dokumencie</LI>
<LI>W dokumencie zawarty jest tekst w cyrylicy</LI>
<LI>Tekst w cyrylicy u¿ywa odpowiednich kodów które odpowiadaj± wymaganiom
czcionki</LI>
<LI>Wybrano odpowiedni± czcionkê do drukowania tekstu w cyrylicy</LI>
</UL>
<P>Nie ma rozwi±zania na tyle ogólnego aby je poleciæ jako ¶rodek ostateczny,
Spróbujê nakre¶liæ ró¿ne sposoby radzenia sobie z ró¿nymi problemami
odno¶nie tematu.
<P>Jednym ze sposobów podej¶cia do konfiguracji cyrylicy jest u¿ycie
Ghostscripta. Ghostscript (lub po prostu gs w nowomowie) to darmowy (no,
quasi-darmowy) interpreter PostScriptu. Ma on wiele zalet, pomiêdzy nimi:
<P>
<UL>
<LI>Mo¿liwo¶æ dzia³ania na ró¿nych platformach (Windows, ró¿ne Unixy)</LI>
<LI>Obs³uga szerokiego zakresu drukarek niepostscriptowych</LI>
<LI>Du¿y stopieñ konfigurowalno¶ci</LI>
</UL>
<P>To co wa¿ne w naszym konkretnym przypadku to to ¿e gdy ju¿ raz
skonfigurujemy Ghostscripta, mo¿emy za jego pomoc± dokonywaæ ca³o¶ci
drukowania, eliminuj±c tym samym ekstra konfiguracjê dla innych urz±dzeñ
postscriptowych (np. HP Laserjet IV).
<P>
<H2>5.1 Dodawanie czcionek cyrylicowych do Ghostscripta</H2>

<P>
<P>Jest to wa¿ne, poniewa¿ zapewne nie bêdziesz chcia³ polegaæ na innych
programach przy umieszczaniu w wynikowym postscripcie czcionek cyrylicowych.
Zamiast tego dodajesz je do <CODE>gs</CODE>. i po prostu zmuszasz programy aby
generowa³y wyj¶cie w cyrylicy kompatybilne z czcionkami.
<P>Aby dodaæ do <CODE>gs</CODE> now± czcionkê (w formacie .pfa lub .pfb), musisz:
<P>
<OL>
<LI>Dodaæ j± do katalogu czcionek <CODE>gs</CODE> (np.
<CODE>/usr/lib/ghostscript/fonts</CODE>).</LI>
<LI>Dodaæ odpowiednie nazwy i aliasy dla czcionki w pliku <CODE>Fontmap</CODE> w
katalogu <CODE>gs</CODE></LI>
</OL>
<P>Ostatnio pojawi³ siê porz±dny zestaw czcionek cyrylicowych dla GhostScripta.
Znajduje siê on na <CODE>ftp.kapella.gpi.ru</CODE>. Ma on nawet konieczny wpis
który trzeba dodaæ do pliku <CODE>Fontmap</CODE>. ¦ci±gn±æ musisz zawarto¶æ
katalogu <CODE>/pub/cyrillic/psfonts/</CODE>. Plik <CODE>README</CODE> opisuje
niezbêdne szczegó³y.
<P>
<H2><A NAME="s6">6. Drukowanie</A></H2>

<P>
<P>Drukowanie zawsze jest rzecz± zawi³±. Istniej± ró¿ne drukarki ró¿nych
producentów z ró¿nymi mo¿liwo¶ciami. Nawet co do drukowania w "go³ym"
formacie nie ma jednorodnego rozwi±zania (odnosi siê to nie tylko do
Unixa, ale równie¿ do innych systemów operacyjnych).
<P>Drukarki maj± ró¿ne jêzyki kontrolne, a czêsto maj± bardzo ró¿ne pogl±dy
na obs³ugê innych takich jêzyków. Dobr± wiadomo¶ci± jest to ¿e jeden taki
jêzyk kontrolny wydaje siê byæ uznawany za de facto standard dla opisywania
zadañ zwi±zanych z drukiem - to jêzyk PostScript, stworzony przez Adobe
Corporation.
<P>Innym problemem jest ró¿norodno¶æ wymagañ zwi±zanych z us³ug± drukowania.
Na przyk³ad, czasem chcesz po prostu wydrukowaæ kawa³ek programu w C z
rosyjskimi komentarzami, wiêc nie potrzebujesz ¿adnego ³adnego drukowania -
po prostu czysty wydruk ASCII w pojedynczej czcionce. Innym razem, kiedy
projektujesz pocztówkê dla swojej dziewczyny, bêdziesz zapewne musia³ j±
z³o¿yæ u¿ywaj±c ró¿nych czcionek, i tak dalej. Bêdzie to wymaga³o z
pewno¶ci± wiêcej wysi³ku w kwestii ustawienia obs³ugi cyrylicy.
<P>Aby podo³aæ pierwszemu zadaniu bêdziesz musia³ po prostu zmusiæ swoj±
drukarkê aby rozumia³a jeden font cyrylicowy i (byæ mo¿e) zainstalowaæ
jaki¶ program filtruj±cy, który bêdzie wypisywa³ dane w odpowiednim
formacie. Aby dokonaæ tego drugiego [zadania], bêdziesz musia³ nauczyæ
swoj± drukarkê ró¿nych czcionek i mieæ specjalny software.
<P>Istnieje tak¿e sytuacja po¶rodku, gdy masz program który wie jak wygenerowaæ
i fonty i odpowiednie dane dla drukarki, mo¿esz wiêc, powiedzmy, wykonaæ
parê ³adnych wydruków kodu ¼ród³owego bez wyrafinowanych systemów obróbki
tekstu.
<P>Wszystkie te opcje zostan± mniej lub bardziej omówione poni¿ej.
<P>
<H2>6.1 £adowanie czcionek cyrylicowych do drukarki niepostscriptowej</H2>

<P>
<P>Je¶li masz star± dobr± drukarkê ig³ow± i potrzebujesz tylko wydrukowaæ
czysty tekst w KOI-8, spróbuj poni¿szego:
<P>
<OL>
<LI>Znajd¼ odpowiedni± czcionkê KOI-8 dla swojej drukarki. Sprawd¼
kolekcje MS-DOSowe w Internecie (na przyk³ad archiwum SimTel, <CODE>ftp.
simtel.net</CODE>)</LI>
<LI>Dowiedz siê z instrukcji jak za³adowaæ czcionkê do drukarki i,
mo¿liwie, napisz prosty program który to robi</LI>
<LI>Uruchom ten program z odpowiedniego pliku .rc w czasie startu systemu.</LI>
</OL>
<P>Tak wiêc maj±c znaki cyrylicowe w górnej po³ówce zestawu znaków drukarki
bêdziesz móg³ drukowaæ teksty po rosyjsku bez ¿adnych ceregieli.
<P>Alternatywnie z czcionkami KOI-8 mo¿esz u¿yæ czcionek Alt. S± ku temu
dwa powody:
<UL>
<LI>Mo¿e byæ ³atwiej znale¼æ czcionkê Alt, bowiem takowe by³y bardzo
rozpowszechnione w kulturze MS-DOSowej</LI>
<LI>Posiadanie odpowiedniej czcionki Alt pozwoli ci drukowaæ równie¿
pseudografikê</LI>
</UL>
<P>Niemniej w tym przypadku bêdziesz musia³ przekodowaæ swoje teksty z KOI-8
na Alt przed pos³aniem ich do drukarki. Jest to ca³kiem ³atwe, poniewa¿
pe³no jest programów które to robi± (patrz "translit", na przyk³ad), tak
wiêc wystarczy ¿e w³a¶ciwie wywo³asz ten program w polu <CODE>if</CODE> <CODE>/etc/
printcap</CODE>. Na przyk³ad dla programu <CODE>translit</CODE> napisaæ mo¿esz:
<P>
<BLOCKQUOTE><CODE>
<PRE>
if=/usr/bin/translit -t koi8-alt.rus
</PRE>
</CODE></BLOCKQUOTE>
<P>Patrz printcap(5) po szczegó³y.
<P>
<H2>6.2 Drukowanie ró¿nymi czcionkami</H2>

<P>
<P>Jednym ¶wietnym sposobem poradzenia sobie z ró¿nymi czcionkami i drukarkami
jest u¿ycie TeXa. Sterowniki TeXa zajmuj± siê wszelkimi detalami, wiêc skoro
ju¿ raz nauczy³e¶ TeXa rozumieæ czcionki cyrylicowe, sprawa za³atwiona.
<P>Inn± mo¿liwo¶ci± jest u¿ycie PostScriptu. Zdecydowa³em siê po¶wiêciæ
temu ca³y rozdzia³, poniewa¿ nie jest to ³atwe.
<P>W koñcu, s± i inne edytory tekstów które maj± sterowniki drukarek. Nigdy
nie próbowa³em niczego poza TeXem, wiêc nie mogê niczego zasugerowaæ
<P>
<H2>6.3 Konwersja tekstu do TeXa</H2>

<P>
<P>Je¶li tym czego potrzebujesz jest wydrukowanie tekstu w ASCII bez ¿adnego
dodatkowego przetworzenia, mo¿esz spróbowaæ u¿yæ kilku programów które
przerobi± twój tekst w cyrylicy na gotowe do przetworzenia plik TeXa.
Jednym z najlepszych programów do tego celu jest <CODE>translit</CODE>. W tym
przypadku nie musisz siê nawet k³opotaæ instalowaniem czcionek cyrylicowych
dla TeXa, poniewa¿ translit u¿ywa pakietu Washington Cyriliic, który
w³±czony jest do wiêkszo¶ci dystrybucji TeXa (a mo¿e siê mylê?)
<P>
<H2>6.4 Konwersja tekstu do postscriptu</H2>

<P>
<P>Czasami masz tekst w czystym KOI-8 i chcesz go wydrukowaæ tylko po to
¿eby mieæ go na papierze. Jedn± z najprostszych metod osi±gniêcia tego
jest u¿ycie specjalnych programów konwertuj±cych tekst do postscriptu.
<P>Istnieje pewna liczba programów dokonuj±cych takiej konwersji. Osobi¶cie
preferujê <CODE>a2ps</CODE>. Stworzony pocz±tkowo jako prosty konwerter tekstu
do postscriptu, sta³ siê on du¿ym i wysoce konfigurowalnym programem
z wieloma opcjami, pozwalaj±c ci obs³u¿yæ ró¿ne wielko¶ci strony,
pod¶wietlanie sk³adni itp. Inne narzêdzie (obecnie dostêpne jako czê¶æ
projektu GNU) to <CODE>enscript</CODE>
<P>G³ównym problemem z takimi programami jest to ¿e nie wiedz± one nic o
czcionkach cyrylicowych. W³a¶nie rozwa¿am mo¿liwo¶æ zawierania w nich
czcionek cyrylicowych, tak aby rozumia³y cyrylicê.
<P>Niemniej ca³a ta powy¿sza gadanina by³aby bezcelowa bez ¿adnej rzeczywistej
rady. Oto wiêc ona:
<P>Jak zwykle, GNU wygrywa. GNUsowy program <CODE>enscript</CODE> zaprojektowany
zosta³ do konwersji tekstu na postscript i ma doskona³± obs³ugê
nie-ASCIIowych zestawów znaków. Nie zawiera on cyrylicowych czcionek
postscriptowych, ale bardzo ³atwo je zdobyæ, jak wyja¶niono poni¿ej
(podziêkowania dla Michaela Van Canneyta).
<P>
<OL>
<LI>Zainstaluj najnowszy <CODE>enscript</CODE>. Jak na razie naj¶wie¿sz± wersj±
jest 1.5. Mo¿esz ¶ci±gn±æ go albo z ftp GNU, albo jako pakiet RPM z
ftp RedHata.</LI>
<LI>Teraz, je¶li masz szczê¶cie byæ u¿ytkownikiem RedHat Linuxa, ¶ci±gnij
i zainstaluj czcionkê Cyriliic Textbook (<CODE>ftp://ftp.redhat.com/pub/
contrib/i386/enscript-fonts-koi8-1.0.1-i386.rpm</CODE>)</LI>
<LI>Je¶li nie u¿ywasz RPM, ¶ci±gnij plik <CODE>textbook.tar.gz</CODE> z
Cyrillic Software Collection na <CODE>ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/</CODE>). Rozpakuj go do katalogu w którym zainstalowane
s± czcionki <CODE>enscripta</CODE>. Przejd¼ teraz do tego katalogu i wykonaj:

<BLOCKQUOTE><CODE>
<PRE>
mkamfmap *.afm
</PRE>
</CODE></BLOCKQUOTE>
</LI>
<LI>Koniec konfiguracji. Spróbuj wydrukowaæ jaki¶ tekst w KOI-8 poni¿sz±
komend±:
<BLOCKQUOTE><CODE>
<PRE>
enscript --font=Textbook8 --encoding=koi8 jakis_plik
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</OL>
<P>Je¶li chcesz jakiego¶ szybkiego rozwi±zania i nie dbasz o jako¶æ wydruku,
a wszystkim czego potrzebujesz jest cyrylica na papierze, spróbuj pakietu
<CODE>rtxt2ps</CODE>. Jest to bardzo prosty i niewyszukany konwerter tekstu do
postscriptu. Jako¶æ wydruku jest nienajlepsza (albo, mówi±c szczerze,
ca³kiem z³a), ale robi on to co powinien.
<P>Jeszcze inn± desk± ratunku jest przerobiona wersja <CODE>a2ps</CODE>. Jest ona
do¶æ stara, wiêc nie spodziewaj siê tych wszystkich fajerwerków z nowszych
wersji. Ale drukuje ona tekst w cyrylicy, a jako¶æ wydruku jest znacz±co
lepsza ni¿ ta <CODE>rtxt2ps</CODE>. Do¶wiadczy³em przy niej jednak ró¿nych rodzajów
problemów, np. nie mog³em wydrukowaæ wiêcej ni¿ dwóch stron (???)
<P>
<H2><A NAME="s7">7. Konfiguracja ró¿nych narzêdzi</A></H2>

<P>
<P>Ogólnie, aby przestawiæ pewne narzêdzia w trybie operowania cyrylic±
wymagane jest po prostu umo¿liwienie danych o¶miobitowych. W kilku
przypadkach wymagane jest powiedzenie aplikacji aby pokaza³a rozszerzone
znaki ASCII w ich bazowej formie.
<P>
<H2>7.1 6.1. bash</H2>

<P>
<P>Aby bash rozumia³ o¶miobitowe znaki, powiniene¶ ustawiæ trzy zmienne,
Najlepszym miejscem jest plik <CODE>~/.inputrc</CODE>. Ustaw co nastêpuje:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  set meta-flag on
  set convert-meta off
  set output-meta on
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.2 6.2. csh/tcsh</H2>

<P>
<P>Powinienie¶ ustawiæ poni¿sze w <CODE>.cshrc</CODE>:
<BLOCKQUOTE><CODE>
<PRE>
  setenv LC_CTYPE iso_8859_5
  stty pass8
</PRE>
</CODE></BLOCKQUOTE>
<P>Je¶li nie masz stty zgodnego z POSIX (niemo¿liwe w Linuxie), zast±p
ostatnie wywo³anie przez:
<P>
<PRE>
stty -istrip cs8
</PRE>
<P>
<H2>7.3 6.3. emacs</H2>

<P>
<P>Minimaln± obs³ugê cyrylicy w emacsie zapewnia dodanie poni¿szych
wywo³añ do pliku <CODE>.emacs</CODE> (zak³adaj±c ¿e zainstalowana jest obs³uga
zestawu znaków cyrylicy dla konsoli lub X, odpowiednio).
<P>
<BLOCKQUOTE><CODE>
<PRE>
  (standard-display-european t)

  (set-input-mode (car (current-input-mode))
     (nth 1 (current-input-mode))
     0)
</PRE>
</CODE></BLOCKQUOTE>
<P>Umo¿liwia to u¿ytkownikowi ogl±danie i wprowadzanie rosyjskich dokumentów.
<P>Taki tryb nie jest jednak wielk± wygod±, poniewa¿ <CODE>emacs</CODE> nie rozpoznaje
zwyk³ych komend klawiatury gdy znajduje siê w trybie wprowadzania
cyrylicy. Istnieje pewna liczba pakietów które u¿ywaj± innego podej¶cia.
Nie polegaj± one na "input mode" ustalonym przez ¶rodowisko (X lub
konsolê). Zamiast tego, pozwalaj± u¿ytkownikowi prze³±czaæ tryb wprowadzania
specjalnymi komendami emacsa, a emacs sam jest odpowiedzialny za
przedefiniowanie zestawu znaków. Autor mia³ szansê zaznajomiæ siê z trzema
takimi pakietami. Pakiet <CODE>russian.el</CODE> Walerego Aleksiejewa
(
<A HREF="mailto:ava@math.jhu.edu">mailto:ava@math.jhu.edu</A>)
pozwala u¿ytkownikowi prze³±czaæ siê miêdzy trybami cyrylicy i zwyk³ym
oraz t³umaczyæ zawarto¶æ bufora z jednego kodowania cyrylicy na drugie
(co jest szczególnie u¿yteczne przy czytaniu tekstów przeniesionych
z MS-DOS). <CODE>rustable.el</CODE> (nie znam niestety autora) dodaje do emacsa regu³y
sk³adniowe zestawu znaków (granice s³ów, regu³y zmiany wielko¶ci liter
itd.) Pakiety te znale¼æ mo¿na w wiêkszo¶ci archiwów emacsowego Lispa.
<P>Jedyn± niewygod± jest to ¿e emacs ci±gle traktuje znaki rosyjskie
jako specjalne, nie rozpoznaje wiêc granic s³ów rosyjskich i zmian
wielko¶ci liter. Aby to poprawiæ, musisz zmodyfikowaæ sk³adniê i
tablice wielko¶ci liter emacsa:
<P>
<BLOCKQUOTE><CODE>
<PRE>
  ;; w zmiennych poni¿ej znajduj± siê ¶miecie, poniewa¿ SGML nie lubi
  ;; znaków cyrylicy. Bêdziesz musia³ wstawiæ du¿e i ma³e litery
  ;; rosyjskiego alfabetu, odpowiednio (patrz faktyczne pliki)

  (setq *russian-abc-ucase* "tu wstaw du¿e litery")
  (setq *russian-abc-lcase* "tu wstaw ma³e litery")

  (let ((i 0)
        (len (length *russian-abc-ucase*)))

       (while (&lt; i len)
         (modify-syntax-entry (elt *russian-abc-ucase* i) "w  ")
         (modify-syntax-entry (elt *russian-abc-lcase* i) "w  ")
         (set-case-syntax-pair (elt *russian-abc-ucase* i)
                               (elt *russian-abc-lcase* i)
                               (standard-case-table))
         (setq i (+ i 1))))
</PRE>
</CODE></BLOCKQUOTE>
<P>Dla tego celu stworzy³em plik <CODE>rusup.el</CODE> który tego dokonuje, podobnie
jak kilka porêcznych funkcji. Musisz za³adowaæ go w swoim <CODE>~/.emacs</CODE>.
<P>Jeszcze jeden pakiet to <CODE>remap</CODE>, który próbuje bardziej utypowiæ obs³ugê
cyrylicy. Pakiet ten napisa³ Per Abrahamsen
(<CODE>
<A HREF="mailto:abraham@iesd.auc.dk">mailto:abraham@iesd.auc.dk</A></CODE>), i dostêpny jest on na
<CODE>ftp.iesd.auc.dk</CODE>.
<P>We w³asnej opinii, sugerowa³bym zacz±æ od <CODE>russian.el</CODE>, bowiem jest on
bardzo ³atwy w konfiguracji i u¿yciu.
<P>
<H2>7.4 6.4. ispell</H2>

<P>
<P>Istnieje dodatek <CODE>rspell</CODE> do pakietu GNU <CODE>ispell</CODE>, stworzony przez
Neala Daltona (<CODE>nrd@cray.com</CODE>), ale do¶wiadczy³em z nim kilku
problemów próbuj±c go zmusiæ do natychmiastowego dzia³ania. Spróbuj go -
mo¿e tobie siê poszczê¶ci.
<P>
<H2>7.5 joe</H2>

<P>
<P>Spróbuj opcji <CODE>-asis</CODE>
<P>
<H2>7.6 ksh</H2>

<P>
<P>Co do implementacji public domain <CODE>ksh</CODE>, <CODE>pdksh 5.1.3</CODE>, mo¿esz
wprowadzaæ znaki o¶miobitowe tylko w trybie vi. U¿yj
<P>
<BLOCKQUOTE><CODE>
<PRE>
   set -o vi
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.7 less</H2>

<P>
<P>Jak na razie, <CODE>less</CODE> nie obs³uguje zestawu znaków KOI-8, ale poni¿sza
zmienna ¶rodowiskowa za³atwia sprawê:
<P>
<BLOCKQUOTE><CODE>
<PRE>
LESSCHARSET=latin1
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.8 lynx</H2>

<P>
<P>Od wersji 2.6 mo¿esz wybraæ odpowiedni± warto¶æ dla opcji Display
Character Set.
<P>
<H2>7.9 mc (Midnight Commander)</H2>

<P>
<P>Aby poprawnie wy¶wietlaæ znaki cyrylicy, zaznacz opcjê 'full 8 bits'
w menu Options/Display.
<P>Je¶li masz problem z brzydkimi ramkami okien, zobacz sekcjê ''
<P>Off topic: je¶li chcesz zmusiæ mc do u¿ywania kolorów w oknie <CODE>xterma</CODE>,
ustaw zmienn± <CODE>COLORTERM</CODE>
<P>
<BLOCKQUOTE><CODE>
<PRE>
COLORTERM= ; export COLORTERM
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.10 Netscape Navigator</H2>

<P>
<P>Upewnij siê ¿e u¿ywasz wersji Netscape'a wiêkszej ni¿ 3. Je¶li twój
Netscape jest starszy, ¶ci±gnij nowszego z www.netscape.com.
<P>
<H3>Konfiguracja podstawowa</H3>

<P>
<P>Aby móc ogl±daæ tekst cyrylic± w wiêkszej czê¶ci dokumentów HTMLowych,
zrób co nastêpuje:
<P>
<UL>
<LI>W menu Options/Encoding Document wybierz  Cyrillic (KOI-8)</LI>
<LI>W menu Options/General Preferences/Fonts wybierz Cyrillic (KOI-8),
Times(Cronyx) jako czcionkê proporcjonaln± i Courier(Cronyx) jako czcionkê
o sta³ej szeroko¶ci.</LI>
<LI>Zachowaj ustawienia</LI>
</UL>
<P>UWAGA: konfiguracja ta bêdzie dzia³a³a z wiêksz± czê¶ci± dokumentu.
Jednak¿e nie bêdziesz móg³ wy¶wietlaæ tekstu cyrylic± w nag³ówku okna,
menu i niektórych dialogach. Aby naprawiæ te problemy:
<P>
<H3>Konfiguracja zaawansowana</H3>

<P>
<P>Andriej A. Czernow wie wiêcej ni¿ inni o KOI-8 w ogóle i o Netscape
w szczególno¶ci. Odwied¼ jego doskona³± stronê o KOI-8 i ¶ci±gnij ³atê
do pliku zasobów Netscape, co sprawi ¿e Netscape bêdzie mówi³o po rosyjsku
na tyle na ile mo¿e.
<P>
<H2>7.11 pine</H2>

<P>
<P>Wstaw nastêpuj±c± dyrektywê do <CODE>~/.pinerc</CODE> dla konfiguracji
osobistej, albo do <CODE>/usr/lib/pine.conf</CODE> dla globalnej:
<P>
<BLOCKQUOTE><CODE>
<PRE>
character-set=ISO-8859-5
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2>7.12 rlogin</H2>

<P>
<P>Upewnij siê ¿e pow³oka na serwerze docelowym jest ustawiona poprawnie.
Potem, je¶li twój <CODE>rlogin</CODE> nie dzia³a domy¶lnie [prawid³owo],
u¿yj <CODE>rlogin -8</CODE>.
<P>
<H2>7.13 sendmail (aka 'zguba sysadmina')</H2>

<P>
<P>Od wersji 8 sendmail domy¶lnie prawid³owo radzi sobie z 8-bitowymi danymi.
Je¶li nie jest tak u ciebie, sprawd¼ opcjê EightBitMode i opcjê -7
przekazywan± mailerom w twoim <CODE>/etc/sendmail.cf</CODE>. Patrz "Sendmail;
Installation and Operation Guide" po szczegó³y.
<P>
<H2><A NAME="s8">8. zsh</A></H2>

<P>
<P>U¿ywaj w ten sam sposób jak <CODE>csh</CODE> (patrz sekcja o <CODE>csh</CODE>). Plikami
startowymi w tym przypadku s± <CODE>.zshrc</CODE> oraz <CODE>/etc/zshrc</CODE>.
<P>
<H2><A NAME="s9">9. U¿yteczne narzêdzia</A></H2>

<P>
<P>
<H2>9.1 Narzêdzia do konwersji</H2>

<P>
<P>Istnieje pewna liczba programów zdolna konwertowaæ z KOI-8 na Alt
i z powrotem. Poszukaj w SovInformBureau albo na <CODE>ftp.funet.fi</CODE>
listy porêcznych ma³ych programików. Mo¿esz te¿ u¿yæ specjalnego
trybu emacsa (patrz sekcja o emacsie).
<P>Szczególnie poleca³bym jednak¿e pakiet <CODE>translit</CODE>. Obs³uguje on
wiele popularnych zestawów znaków i potrafi nawet stworzyæ pliki TeXa
(patrz sekcja 5.1). z tekstu rosyjskiego. U¿ytkownicy RedHata maj±
do dyspozycji <CODE>translit</CODE> w postaci pliku RPM.
<P>
<H2>9.2 Narzêdzia programisty</H2>

<P>
<P>Jak dot±d obja¶nia³em sposoby zmuszenia programów do akceptowania
i wy¶wietlania zestawu znaków cyrylicy. Niemniej pe³ne przystosowanie
systemu do warunków lokalnych obejmuje o wiele wiêcej. To co omówiono
powy¿ej nie wystarcza. System powinien byæ przyjazny dla u¿ytkownika,
który niekoniecznie musi znaæ angielski. W mojej opinii, nie jest
wielk± spraw± obeznanie siê z angielskim na poziomie komunikatów
programów. Jednak¿e nie jest ca³kiem fair tego wymagaæ.
<P>Tak wiêc nastêpny poziom przystosowania wymaga aby programy by³y
dostosowywalne do wymagañ ró¿nych jêzyków i zwyczajów w przedstawianiu
danych.
<P>Wcze¶niej dokonywano tego poprzez rozwijanie pewnej abstrakcji
komunikatów bêd±cych rezultatem kodu programu. Teraz ten mechanizm
jest (mniej czy wiêcej) ustandaryzowany. I, oczywi¶cie, istniej±
jego darmowe implementacje!
<P>Dobra wiadomo¶æ to to ¿e GNU w koñcu przyjê³o sposób tworzenia
zinternacjonalizowanych aplikacji. Ulrich Drepper
(<CODE>
<A HREF="mailto:drepper@ipd.info.uni-karlsruhe.de">mailto:drepper@ipd.info.uni-karlsruhe.de</A></CODE>)
stworzy³ pakiet <CODE>gettext</CODE>, dostêpny we wszystkich
repozytoriach GNU, takich jak <CODE>
<A HREF="ftp://prep.ai.mit.edu/pub/gnu/">ftp://prep.ai.mit.edu/pub/gnu/</A></CODE>.
Pozwala on tworzyæ programy w sposób który ³atwo mo¿na roszerzyæ
na obs³ugê wielu jêzyków. Nie zamierzam opisywaæ technik programistycznych,
zw³aszcza ¿e pakiet gettext zawiera doskona³y podrêcznik.
<P>Tak wiêc je¿eli tworzysz programy które wypisuj± jakie¶ komunikaty
(a stworzy³e¶ kiedy¶ taki który by ich wypisywa³?), nie leñ siê i w³ó¿
ociupinê (naprawdê ociupinê) wysi³ku w uczynienie swojego programu
¶wiadomym locale.
<P>Pro¶ba o wspó³pracê: je¶li chcesz nauczyæ siê pakietu <CODE>gettext</CODE> i
równocze¶nie do³o¿yæ co¶ do projektu GNU; lub nawet je¶li tylko chcesz
do³o¿yæ, mo¿esz to zrobiæ! GNU siê internacjonalizuje, wiêc wszystkie
narzêdzia przerabiane s± na ¶wiadome locale. Problemem jest
przet³umaczenie komunikatów z angielskiego na rosyjski (i inne
jêzyki, jak wam siê podoba). Zasadniczo, to co trzeba zrobiæ to
zdobyæ specjalny plik <CODE>.po</CODE>, sk³adaj±cy siê z angielskich komunikatów
konkretnego narzêdzia i do³±czyæ do ka¿dego komunikatu jego odpowiednik
po rosyjsku. W ostatecznym rozrachunku sprawi to ¿e system bêdzie
odzywa³ siê po rosyjsku, je¶li zechce tego u¿ytkownik! Po wiêcej
szczegó³ów i dalsze wskazówki skontaktuj siê z Ulrichem Drepperem
(<CODE>
<A HREF="mailto:drepper@ipd.info.uni-karlsruhe.de">mailto:drepper@ipd.info.uni-karlsruhe.de</A></CODE>)
<P>
<H2><A NAME="s10">10. Wykaz u¿ytecznych zasobów</A></H2>

<P>
<P>Strona domowa <CODE>a2ps</CODE>:
<CODE>
<A HREF="http://www-inf.enst.fr/~demaille/a2ps.html">http://www-inf.enst.fr/~demaille/a2ps.html</A></CODE>
<P>Strona A. Czernowa o KOI-8:
<CODE>
<A HREF="http://www.nagual.ru/~ache/koi8.html">http://www.nagual.ru/~ache/koi8.html</A></CODE>
<P>Ogólna informacja o Linuxie:
<CODE>
<A HREF="http://sunsite.unc.edu/mdw/linux.html">http://sunsite.unc.edu/mdw/linux.html</A></CODE>
<P>Moja kolekcja rzeczy zwi±zanych z konfiguracj± cyrylicy:
<CODE>
<A HREF="ftp://netvision.net.il/pub/home/b/belikoff/cyrillic/">ftp://netvision.net.il/pub/home/b/belikoff/cyrillic/</A></CODE>
<P>Kolekcja cyrylicowa na <CODE>ftp.kiae.su</CODE>:
<CODE>
<A HREF="ftp://ftp.kiae.su/cyrillic/">ftp://ftp.kiae.su/cyrillic</A></CODE>
<P>Kolekcja cyrylicowa na <CODE>ftp.relcom.ru</CODE>:
<CODE>
<A HREF="ftp://ftp.relcom.ru/cyrillic/">ftp://ftp.relcom.ru/cyrillic/</A></CODE>
<P>Kolekcja programów cyrylizuj±cych
<CODE>
<A HREF="ftp://ftp.funet.fi/pub/culture/russian/comp/">ftp://ftp.funet.fi/pub/culture/russian/comp/</A></CODE>
<P>Cronyx <CODE>
<A HREF="http://www.cronyx.ru/">http://www.cronyx.ru/</A></CODE> - twórcy czcionek cyrylicowych dla systemu X Windows.
<P>Pakiet remap dla emacsa <CODE>
<A HREF="ftp://ftp.iesd.auc.dk/">ftp://frp.iesd.auc.dk/</A></CODE>
<P>Czcionki cyrylicowe dla Ghostscripta:
<CODE>
<A HREF="ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts">ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts</A></CODE>
<P>Czcionki cyrylicowe dla X:
<CODE>
<A HREF="ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz">ftp://ftp.kiae.su/cyrillic/x11/fonts/xrus-2.1.1-src.tgz</A></CODE>
<P>Ghostscript: <CODE>
<A HREF="http://www.cs.wisc.edu/~ghost/index.html">http://www.cs.wisc.edu/~ghost/index.html</A></CODE>
<P>GNU nenscript: <CODE>
<A HREF="ftp://prep.ai.mit.edu/pub/gnu/">ftp://ftp.prep.ai.mit.edu/pub/gnu</A></CODE>
<P>Informacja o Cyrlillic Software:
<CODE>
<A HREF="http://sunsite.oit.unc.edu/sergei/Software/Software.html">http://sunsite.oit.unc.edu/sergei/Software/Software.html</A></CODE>
<P>Grupa newsowa <CODE>relcom.fido.ru.unix</CODE>.
<P>RFC 1489: <CODE>
<A HREF="http://ds.internic.net/rfc/rfc1489.txt">http://ds.internic.net/rfc/rfc1489.txt</A></CODE>
<P>U¿yteczne pakiety obs³uguj±ce cyrylicê:
<CODE>
<A HREF="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software">ftp://sunsite.unc.edu/pub/academic/russian-studies/Software</A></CODE>
<P>Pakiet kbd dla Linuxa:
<CODE>
<A HREF="ftp://sunsite.unc.edu/pub/Linux/system/Keyboards/">ftp://sunsite.unc.edu/pub/Linux/system/Keyboards/</A></CODE>
<P>Kolekcje czcionek X: <CODE>
<A HREF="ftp://ftp.switch.ch/mirror/linux/X11/fonts/">ftp://ftp.switch.ch/mirror/linux/X11/fonts/</A></CODE>
<P>SovInformBureau: <CODE>
<A HREF="http://www.siber.com/sib/russify/">http://www.siber.com/sib/russify/</A></CODE>
<P>Pakiet rusyfikuj±cy teTeX: <CODE>
<A HREF="ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/">ftp://xray.sai.msu.su/pub/outgoing/teTeX-rus/</A></CODE>
<P><CODE>rtxt2ps</CODE> i przerobiony <CODE>a2ps</CODE>: <CODE>
<A HREF="http://www.siber.com/sib/russify/converters/">http://www.siber.com/sib/russify/converters/</A></CODE>
<P>Pakiet <CODE>translit</CODE>:
<CODE>
<A HREF="ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z">ftp://ftp.osc.edu/pub/russian/translit/translit.tar.Z</A></CODE>
<P>Pakiet <CODE>xruskb</CODE>:
<CODE>
<A HREF="ftp://ftp.relcom.ru/x11/cyrillic/">ftp://ftp.relcom.ru/x11/cyrillic/</A></CODE>
<P><CODE>rspell</CODE>: <CODE>
<A HREF="ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/rspell.tar.gz">ftp://sunsite.unc.edu/pub/academic/russian-studies/Software/rspell.tar.gz</A></CODE>
<P>FTP XFree86:
<CODE>
<A HREF="http://www.xfree86.org">http://www.xfree86.org</A></CODE>
<P>
</BODY>
</HTML>