summaryrefslogtreecommitdiff
path: root/help/LaTeX-FAQ-francaise/part4
blob: 36dd3e146d6a6e7ba67f3bf88153fd3ddb1f99ca (plain)
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
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
Path: tempo.univ-lyon1.fr!univ-lyon1.fr!howland.erols.net!cpk-news-hub1.bbnplanet.com!news.gtei.net!opentransit.net!proxad.net!teaser.fr!fdn.fr!edgard.fdn.fr!not-for-mail
Date: 08 Jun 2001 13:31:18 +0200
Newsgroups: fr.comp.text.tex,fr.usenet.reponses
Subject: [FAQ] fr.comp.text.tex - parties 12 a 15
Message-ID: <faq-fctt-p420010608133118@edgard.fdn.fr>
X-Posted-By: poste.sh version 1.1
From: bayartb@edgard.fdn.fr (Nono le robot)
Supersedes: <faq-fctt-p420010501143416@edgard.fdn.fr>
Expires: 08 Jul 2001 13:31:17 +0200
Followup-To: poster
Organization: French Data Network
Approved: bayartb@edgard.fdn.fr
Lines: 2894
Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23524 fr.usenet.reponses:20390

Archive-name: fr/faq-latex-francaise/part4

Author: Marie-Paule Kluth
Posting-Frequency: mensuel (monthly)
Version: 2.27

================================================================
  Cette FAQ, rédigée initialement par MP Kluth est maintenant
       tenue à jour autant que possible par B. Bayart et 
          plusieurs volontaires (voir question [30]).
================================================================

================================================================
[12] MATHÉMATIQUES
================================================================

# 12.1 # Comment passer en mode mathématique ?
----------------------------------------------
* Pour les mathématiques en ligne, il faut utiliser :
$ et $ ou
\( et \) ou
\begin{math} et \end{math}

Exemple :
Résoudre l'équation~:
$ 3 + 4 x = 0 $
%%%% fin exemple %%%%

* Pour les formules isolées, il faut utiliser les modes :
 $$ et $$ ou
 \[ et \] ou
 \begin{displaymath} et  \end{displaymath}.

Exemple :
Résoudre l'équation~:
$$
3 + 4 x = 0
$$
%%%% fin exemple %%%%

* Avec l'environnement \displaystyle, on peut quand même avoir
une formule de style isolée dans le texte mais cela modifie
localement les interlignes.

Exemple :
Texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
$\displaystyle \sum_{i=0}^n u_i $  texte texte texte texte
texte texte texte texte texte texte texte texte texte texte
%%%% fin exemple %%%%

* De même, on peut utiliser $\sum\limits{i=0}^n u_i$.

* Pour écrire des mathématiques sous LaTeX2e, les packages
'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, et
'amssymb' sont incontournables. En LaTeX2.09, on peut utiliser
'amstex', disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/amstex/, 'amsby' et
'amsopn' mais il faut savoir que amstex est obsolète.

ATTENTION : en mode mathématique, la gestion des espaces et des
	    retours à la ligne est entièrement prise en charge
	    par LaTeX (cf. question 12.33). En outre, les lignes
	    vides ne sont pas autorisées.

# 12.2 # Qu'est que AMS-LaTeX ?
-------------------------------
AMS-TeX est un terme utilisé pour désigner un ensemble de
fichiers distribués par l'American Mathematical Society (AMS).
AMS-LaTeX s'appuie sur TeX et LaTeX2e. AMS-LaTeX est
principalement dû a F. Mittelbach et R. Schopf. C'est un outil
complémentaire à LaTeX pour écrire des mathématiques (il devient
d'ailleurs rapidement indispensable).

Il existe une FAQ disponible sur
ftp://ftp.fdn.org/pub/CTAN//macros/latex/packages/amslatex/math/amslatex.faq.

Les packages proposés sont 'amsmath' (complet), 'amstext' (pour
écrire du texte en mode mathématique), 'amsbsy' (pour les
symboles gras), 'amsopn' (pour la déclaration d'opérateurs),
'amsthm' (pour les environnements proof et theorem), 'amsintx'
(pour étendre la syntaxe des sommes et intégrales), 'amscd'
(pour les diagrammes commutatifs), 'amsxtra' et 'upref' (pour
les références croisées).

Ces packages sont disponibles par ftp sur
ftp://e-math.ams.org/pub/tex/amslatex/. Il faut également
récupérer les fontes associées dans
ftp://e-math.ams.org/pub/tex/amsfonts/,
ftp://e-math.ams.org/pub/tex/amsltx11/ et
ftp://e-math.ams.org/pub/tex/amstex/. Sur CTAN, les
répertoires correspondants sont
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/amslatex/, ftp://ftp.fdn.org/pub/CTAN/fonts/amsfonts/,
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/amslatex/ et
ftp://ftp.fdn.org/pub/CTAN/macros/amstex/.  Il existe également le site WEB
http://www.ams.org/tex.

# 12.3 # Comment écrire les symboles d'ensembles ?
--------------------------------------------------
Un peu d'histoire (T. Bouche) : au temps jadis, dans les livres,
les symboles d'ensemble étaient imprimés en gras pour qu'on les
voie bien. Problème, comment, lorsque l'on écrit sur un tableau
noir, maintenir ce type de distinction ? En fait, au lieu
d'écraser la craie avec force sur le tableau pour élargir un
trait, on a décidé de le doubler. Ce qui est comique, c'est
qu'en retour, les livres se sont mis à copier l'usage des profs,
et ont distingué le "gras" (bold), du "gras de tableau" qui est
une fonte à part (dessin normal à barre redoublée).

* Les symboles mathématiques d'ensemble et bien d'autres sont
disponibles par défaut dans les fontes AMS : famille msam
(e.g., msam10 pour 10pt) et msbm. Ces fontes sont disponibles
par ftp anonyme sur ftp://e-math.ams.org/pub/tex/amsfonts/ ou sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amsfonts/sources/symbols/. Pour avoir accès
aux symboles, il faut alors utiliser les packages 'amsfonts' et
'amssymb'.

Exemple :
soit on définit une commande spéciale (dans le préambule):
	\newcommand{\R}{\mathbb{R}}

et on utilise :

	$\R$

soit on tape directement :

	$\mathbb{R}$ (LaTeX2e) ou

	${\Bbb R}$ (LaTeX2.09)
%%%% fin exemple %%%%

* Si vous ne disposez pas des packages ams vous pouvez au grand
dam de certains puristes utiliser les commandes :
+ pour les naturels :
	\def\N{\mbox{I\hspace{-.15em}N}}
+ pour les entiers :
	\def\Z{\mbox{Z\hspace{-.3em}Z}}
+ pour les reels :
	\def\R\mbox{I\hspace{-.15em}R}}
+ pour les complexes :
	\def\C{\mbox{l\hspace{-.47em}C}}
+ ...

Il faut savoir dans ce cas que leur utilisation est limitée :
pas de mise en indice, exposant, etc.

* C. Fiorio (fiorio@math.tu-berlin.de) propose également un
certain nombre de macros (LaTeX2e) :

%%%% debut macro %%%%
%
%%  Les ensembles de nombres
%
\def\nbR{\ensuremath{\mathrm{I\!R}}} % IR
\def\nbN{\ensuremath{\mathrm{I\!N}}} % IN
\def\nbF{\ensuremath{\mathrm{I\!F}}} % IF
\def\nbH{\ensuremath{\mathrm{I\!H}}} % IH
\def\nbK{\ensuremath{\mathrm{I\!K}}} % IK
\def\nbL{\ensuremath{\mathrm{I\!L}}} % IL
\def\nbM{\ensuremath{\mathrm{I\!M}}} % IM
\def\nbP{\ensuremath{\mathrm{I\!P}}} % IP
%
% \nbOne : 1I : symbol one
\def\nbOne{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
%
% \nbC   :  Nombres Complexes
\def\nbC{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}%
\hbox{\hbox to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
%
% \nbQ   : Nombres Rationnels Q
\def\nbQ{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
%
% \nbT   : T
\def\nbT{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
%
% \nbS   : S
\def\nbS{{\mathchoice
{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0%
\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0%
\hbox to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0%
\hboxto0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0%
\hbox to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0%
\hboxto0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0%
\hbox to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
%
% \nbZ   : Entiers Relatifs Z
\def\nbZ{{\mathchoice {\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\sf\textstyle Z\kern-0.4em Z$}}
{\hbox{$\sf\scriptstyle Z\kern-0.3em Z$}}
{\hbox{$\sf\scriptscriptstyle Z\kern-0.2em Z$}}}}
%%%% fin macro %%%%

Exemple :
$ \nbN $ pour les entiers naturels
%%%% fin exemple %%%%

* Autres alternatives :
en metafont:
+ les fontes 'bbold' d'A. Jeffrey (une sorte de Futura vraiment
doublé par endroit, pas détouré - mais du coup pas du tout du
même style que les autres lettres du mode mathématique)

Exemple :
\font\bbold=bbold12
\newcommand{\R}{\mbox{\bbold R}}
%%%% fin exemple %%%%

en postscript  (produits commerciaux)
+ dextor outline
+ Mathematical Pi (une sorte d'helvetica doublé par endroit)

* Le package 'bbm' disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/cm/bbm/
propose certaines variantes pour les fontes Computer Modern.

# 12.4 # Comment numéroter les équations ?
------------------------------------------
* Sous LaTeX2e, les options de classe leqno et fleqn permettent
d'indiquer si les numéros d'équations doivent apparaître à
droite ou à gauche des équations.

Exemple, pour que les numéros apparaîssent à gauche :
\documentclass[leqno]{report}
\begin{document}
\begin{eqnarray}
   x + 4 & =  & 0 \\
   8 - y & =  & 0
\end{eqnarray}
%%%% fin exemple %%%%

* Pour supprimer la numérotation des équations, il suffit
d'ajouter le caractère * aux noms des environnements d'équation.

Exemple :
\begin{eqnarray*}
   x + 4 & =  & 0 \\
   8 - y & =  & 0
\end{eqnarray*}
%%%% fin exemple %%%%

* Pour supprimer la numérotation d'une ligne particulière dans
un groupe d'équations, il suffit d'utiliser la commande
\nonumber (avant les \\). Avec amsmath, il faut utiliser \notag.

* Pour réinitialiser le compteur d'équations dans chaque
section, il faut inclure :
%%%% debut macro %%%%
\makeatletter
\renewcommand\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}
\makeatother
%%%% fin macro %%%%
dans le préambule.

Remarque : dans ce cas, il ne faut pas mettre d'équation dans un
	   chapitre avant la première section sous peine d'avoir
	   un numéro du style 3.0.1.

* Pour modifier le style de numérotation, il faut modifier la
commande \theequation.

Exemple 1 :
\documentclass{report}
\usepackage{french}
\pagestyle{empty}
\renewcommand{\theequation}{\thesection \Alph{equation}}
\begin{document}
\chapter{Systèmes d'équations.}
   \section{À une variable.}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	  x & =  & 3
      \end{eqnarray}
   \section{À deux variables.}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	 8 - y & =  & 0
      \end{eqnarray}
\end{document}
%%%% fin exemple %%%%

Exemple 2 (pour avoir les numéros entre crochets) :
\makeatletter
\renewcommand{\@eqnnum}{{\normalfont\normalcolor\theequation}}
\renewcommand{\theequation}{[\arabic{equation}]}
\makeatother

\begin{document}
      \begin{eqnarray}
	 x + 4 & =  & 0 \\
	 y - 2 & =  & 0
      \end{eqnarray}
%%%% fin exemple %%%%

* Avec le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, la commande \numberwithin permet de
numéroter les équations suivant le paragraphe auquel elles
appartiennent. Il faut alors appeler :
\numberwithin{equation}{section} dans le préambule.

* Les packages 'seceqn' et 'apeqnum' disponibles sur CTAN
permettent pour le premier de numéroter les équations par
section et pour le second de numéroter individuellement les
équations dans les annexes.

* Le package 'deleq' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/ ou sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/deleq/ permet de définir un label
par groupe d'équations (4) en plus des labels individuels de
type (4a), (4b), etc.

* La commande \tag{xxx} du package 'amsmath' sous LaTeX2e permet
de personnaliser la numérotation des équations.

Exemple : pour permettre à deux équations d'avoir le même
numéro :
\begin{equation}
  x - y = 0
  \label{equa}
\end{equation}
...
\begin{equation}
  x = y
  \tag{\eqref{equa}}
\end{equation}
%%%% fin exemple %%%%

Remarque : \eqref remplace \ref pour les équations : la fonte
	   utilisée est toujours la même (c'est plus beau).

* Les environnements subequations (du package 'amsmath') et
subeqnarray (du package 'subeqnarray') permettent de référencer
différentes lignes d'un même groupe d'équations par des indices
(3.a), (3.b), etc.
+ Sous subequations, une référence à une ligne particulière
s'obtient alors par un \label placé sur cette ligne alors qu'une
référence au système d'équation s'obtient par un \label placé
immédiatement après \begin{subequations}.

Exemple :
\begin{subequations} \label{E:gp}
  \begin{gather}
    x_1 x_2 + x_1^2 x_2^2 + x_3 \label{E:gp1} \\
    x_1 x_3 + x_1^2 x_3^2 + x_2 \label{E:gp2} \\
    x_1 x_2 x_3 \label{E:gp3}
  \end{gather}
\end{subequations}

[...]

Voir le système~\ref{E-gp} et en particulier
l'équation~\ref{E-gp2}.
%%%% fin exemple %%%%

Remarque : c'est le \\ qui incrémente le compteur des
	   sous-références.

+ Sous subeqnarray une référence à une ligne particulière se
fait alors par \slabel au lieu de \label.

# 12.5 # Comment aligner des équations ?
----------------------------------------
* Pour aligner des équations sur un signe de relation, il suffit
sous LaTeX d'appeler l'environnement eqnarray avec ou sans la
commande \lefteqn ou si l'on dispose du package
'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/,
d'utiliser un des environnements split, multline, align ou
flalign.

Exemples :

\begin{align}
   f(x) & = & x^2 + 8x + 16 \\
   & = & (x+4)^2
\end{align}

\begin{eqnarray}
   \lefteqn{x + 3y - 6z} \\
   & = & -4a + 5b -7b \\
   & = & -4a - 2b
\end{eqnarray}

\begin{align}
   \begin{split}
      A &= B + C + D + E + F + G \\
      &\quad + H + I
   \end{split} \\
   F &= G + H
\end{align}
%%%% fin exemple %%%%

 * L'environnement equationarray du package 'eqnarray' associe
 les  avantages des environnements eqnarray et array. Il n'est
 pas  limité en nombre de colonnes.

* Pour produire le système d'équations suivant :
	 x  = y  + z
	 x1 = y1 + z1
on peut utiliser l'environnement alignat du package 'amsmath'.
Toutefois, il faut noter que cet environnement est alors
détourné de son utilisation normale. En effet, ce dernier est
prévu pour aligner des objets différents sur des colonnes
alternativement justifiées à droite puis à gauche. L'utilisation
de colonnes vides permet alors de choisir la justification
voulue. D'autre part l'utilisation de {} permet d'obtenir des
espacements "normaux".

Exemple :
\begin{alignat}{2}
   x & = y &&+ z\\
   x_1 & = y_1 &&+ z_1
\end{alignat}

\begin{alignat}{5}
    10a& ={}&  3x&& 3y& +{}& 18z&& 2w&\\
     6a& ={}& 17x&&   & +{}&  5z&& 19w&
\end{alignat}
%%%% fin exemple %%%%

* Le package 'mathenv' disponible sur CTAN propose un éventail
d'environnements mathématiques pour aligner des entités en
colonne.

# 12.6 # Comment générer des vecteurs ?
---------------------------------------
* Il suffit d'utiliser le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, et d'appeler la commande
\overrightarrow.

Exemple :
Le vecteur $\overrightarrow{u}$
%%%% fin exemple %%%%

* On peut également définir ses propres flèches notamment pour
régler leur hauteur par rapport aux lettres qu'elles surmontent.
La solution présentée ci-dessous utilise les packages 'amsmath',
'amssymb' et 'xy' :
%%%% debut macro %%%%
\newcommand{\xyflecheverladroite}
{\mbox{\xymatrix{*{\hphantom{OM}}\ar[]+L;[]+R}}}

\newcommand{\ra}[1]
{\mathchoice
{\overset{\mbox{\xymatrix{*{\hphantom{\displaystyle #1}}
\ar[]+L;[]+R}}}{\displaystyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\textstyle #1}}
\ar[]+L;[]+R}}}{\textstyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\scriptstyle #1}}
\ar[]+L;[]+R}}}{\scriptstyle #1}}%
{\overset{\mbox{\xymatrix{*{\hphantom{\scriptscriptstyle #1}}
\ar[]+L;[]+R}}}{\scriptscriptstyle #1}}% }

%Pour changer la distance de la flèche, on peut procéder ainsi.
%\renewcommand{\ra}[1]
%{\overset{\raisebox{-1pt}{\mbox{\xymatrix{*{\hphantom{#1}}
%\ar[]+L;[]+R}}}}{#1}}
%%%% fin macro %%%%

Exemples :
$$ \ra{OM} $$
$\ra{OM}$
$\ra{OM_i}$
$$ \ra{OM} _{\ra{OM}_{\ra{OM}}}$$
%%%% fin exemple %%%%

* Le package 'vector', de N. Efford, est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/vector/. Il offre notamment
un certain nombre de vecteurs utiles aux physiciens et des
commandes automatiques d'énumération des coordonnées.

Exemple :
$(\irvec[4]x)$

$\bvec{y} = \left[ \cvec{y}{0}{3} \right]$
%%%% fin exemple %%%%

* Le package 'easyvector' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet de définir des
vecteurs suivant une syntaxe de type C.

# 12.7 # Comment écrire du texte en mode mathématique ?
-------------------------------------------------------
* La commande \text{xxx} du package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet d'inclure du texte dans
une formule mathématique sans que les accents et les espacements
mathématiques ne soient nécessaires.

* La commande \textrm{xxx} du package 'amsmath' (ou amstext)
permet en outre de prendre en compte la taille de la fonte
courante.

Exemple :
La fonction~: $ f_{\textrm{tracage}}  $ sert au tracé de
courbes.
%%%% fin exemple %%%%

* Il est également possible d'utiliser la commande \mbox.

Remarque : aucune de ces commandes ne gère les retours à la
	   ligne en fin de ligne.

# 12.8 # Comment ajuster la taille de délimiteurs ?
---------------------------------------------------
* Pour ajuster la taille de délimiteurs tels que les
parenthèses, les accolades, etc, il suffit d'utiliser les
commandes \left et \right.

Remarque : si l'on veut utiliser un seul délimiteur (sans son
	   symétrique) il faut utiliser \right. en fermeture.

Exemples :
$\left( \frac{1}{2} \right)$

$\left \{ \mathrm{et} \right \}$

Résoudre le système~:
\[
\left \{
\begin{array}{ccc}
   x + y & = & 0 \\
   x - y & = & 0
\end{array}
\right.
\]
%%%% fin exemple %%%%

Remarque : Pour changer la taille des délimiteurs de façon
	   relative à la taille des données qu'ils encadrent,
	   c'est le paramètre \delimitershortfall qui est
	   utilisé. Lorsqu'il vaut 0pt, les délimiteurs qu'il
	   contrôle sont au plus aussi grands que le contenu
	   qu'ils encadrent ; pour que les délimiteurs puissent
	   être plus grands que leur contenu, il faut donner une
	   valeur négative à \delimitershortfall.

* Pour imposer son propre choix de taille de délimiteurs
notamment pour des délimiteurs imbriqués, il existe les
commandes \big, \Big, \bigg et \Bigg.

Exemples :
$\Big( (x+1) (x-1) \Big) ^{2}$

$\big\{\Big\{\bigg\{\Bigg\{$
%%%% fin exemple %%%%

# 12.9 # Comment changer de fonte en mode mathématique ?
--------------------------------------------------------
* Il faut utiliser les packages 'amsmath' ou 'amssymb' puis :
+ pour du gothique
\frak{Texte} en LaTeX2.09
\mathfrak{Texte} en LaTeX2e

+ pour du caligraphique gras :
\boldsymbol{\mathcal{TEXTE}}
on peut aussi générer tout l'alphabet correspondant :
\DeclareSymbolFont{boldsymbols}{OMS}{cmsy}{b}{n}
\DeclareSymbolFontAlphabet{\mathbfcal}{boldsymbols}
puis utiliser la commande \mathbfcal

Remarque : La commande \mathcal ne marche qu'avec des
	   majuscules.

+ pour du gras italique :
\DeclareMathAlphabet\mbi{OML}{cmm}{b}{it}
ou
\DeclareSymbolFont{mathbold}{OML}{cmm}{b}{it}
\DeclareMathSymbol{\biGamma}{\mathord}{mathbold}{0}

+ pour des symboles en gras :
\boldsymbol{\alpha}
ou
\DeclareSymbolFont{mathbold}{OML}{cmm}{b}{it}
\DeclareMathSymbol{\balpha}{\mathord}{mathbold}{11}

Remarque : si cela ne marche pas, c'est que les caractères gras
	   correspondants n'existent pas. Il faut alors soit
	   utiliser la commande \pmb{...} soit utiliser un
	   package supplémentaire tel que 'amsbsy'. Il existe
	   par ailleurs des versions postscript de fontes AMS
	   disponibles sur CTAN.

* Sous LaTeX2e, il existe un certain nombre de commandes de
changement de fonte. Il s'agit de :
+ mathcal pour du calligraphique (argument en majuscule),
+ mathrm pour du roman,
+ mathbf pour du gras,
+ mathsf pour du sans serif,
+ mathtt pour du typewriter (machine à écrire),
+ mathnormal pour revenir à la fonte par défaut,
+ mathit pour de l'italique.

* Pour écrire toute une formule en gras, on peut aussi utiliser
la commande \mathversion{xxx} de LaTeX2e. xxx peut valoir bold
ou normal.

Exemple :
Une formule importante~:
\mathversion{bold}
$$\sum_{i=0}^n u_i + v_i$$

Une formule moins importante~:
\mathversion{normal}
$$\sum_{i=0}^n v_i$$
%%%% fin exemple %%%%

* Le package 'bm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/bm/ permet de bien gérer les
symboles mathématiques en gras.

# 12.10 # Comment obtenir le L de la transformée de Laplace ?
-------------------------------------------------------------
Pour obtenir le L de la transformée de Laplace, il faut
utiliser le package 'mathrsfs' puis la commande
\renewcommand{\L}{\mathscr{L}}.

Remarque : ce package fait appel à des fontes particulières
	   qu'il faut également installer.

# 12.11 # Comment réaliser un tableau en mode mathématique ?
------------------------------------------------------------

Il faut utiliser l'environnement array.

Exemple :
Résultats~:
\[
\begin{array}{|c @=c|}
   \hline
   \alpha + \beta & 12 \\
   \hline
   \sqrt{\gamma} & 36 \\
   \hline
\end{array}
\]
%%%% fin exemple %%%%

# 12.12 # Comment obtenir d'autres symboles mathématiques ?
-----------------------------------------------------------
* LaTeX propose un grand nombre de commandes de symboles.

+ pour les opérateurs binaires :
   \pm       \cap       \diamond          \oplus
   \mp       \cup       \bigtriangleup    \ominus
   \times    \uplus     \bigtriangledown  \otimes
   \div      \sqcap     \triangleleft     \oslash
   \ast      \sqcup     \triangleright    \odot
   \star     \vee       \wedge            \bigcirc
   \dagger   \setminus  \amalg            \circ
   \ddagger  \cdot      \wr               \bullet
   \lhd      \rhd       \unlhd            \unrhd

+ pour les opérateurs de relation :
   \leq         \geq         \equiv   \models
   \prec        \succ        \sim     \perp
   \preceq      \succeq      \simeq   \mid
   \ll          \gg          \asymp   \parallel
   \subset      \supset      \approx  \bowtie
   \subseteq    \supseteq    \cong    \Join
   \sqsubset    \sqsupset    \neq     \smile
   \sqsubseteq  \sqsupseteq  \doteq   \frown
   \in          \ni          \propto
   \vdash       \dashv

+ pour les opérateurs fléchés :
   \leftarrow          \longleftarrow        \uparrow
   \Leftarrow          \Longleftarrow        \Uparrow
   \rightarrow         \longrightarrow       \downarrow
   \Rightarrow         \Longrightarrow       \Downarrow
   \leftrightarrow     \longleftrightarrow   \updownarrow
   \Leftrightarrow     \Longleftrightarrow   \Updownarrow
   \mapsto             \longmapsto           \nearrow
   \hookleftarrow      \hookrightarrow       \searrow
   \leftharpoonup      \rightharpoonup       \swarrow
   \leftharpoondown    \rightharpoondown     \nwarrow
   \rightleftharpoons  \leadsto

+ autres opérateurs :
   \sum      \bigcap      \bigodot
   \prod     \bigcup      \bigotimes
   \coprod   \bigsqcup    \bigoplus
   \int      \bigvee      \biguplus
   \oint     \bigwedge

+ autres symboles :
   \aleph   \prime      \forall      \infty
   \hbar    \emptyset   \exists      \Box
   \imath   \nabla      \neg         \Diamond
   \jmath   \surd       \flat        \triangle
   \ell     \top        \natural     \clubsuit
   \wp      \bot        \sharp       \diamondsuit
   \Re      \|          \backslash   \heartsuit
   \Im      \angle      \partial     \spadesuit
   \mho

* Des symboles mathématiques supplémentaires (en plus de ceux
offerts par amsmath) sont disponibles dans les packages
'stmaryrd' disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/stmaryrd/, et
'yhmath' également disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/yhmath/.

# 12.13 # Comment définir une fonction ?
----------------------------------------
* Il existe un certain nombre de fonctions définies par défaut.
Il  s'agit des fonctions :
 \arccos  \cos   \csc  \exp   \ker     \limsup  \min   \sinh
 \arcsin  \cosh  \deg  \gcd   \lg      \ln      \Pr    \sup
 \arctan  \cot   \det  \hom   \lim     \log     \sec   \tan
 \arg     \coth  \dim  \inf   \liminf  \max     \sin   \tanh

* On peut utiliser la commande \mathop :
\newcommand{\fonction}{\mathop{fonction}}
Si on utilise en plus la commande \nolimits, on peut déterminer
la gestion des indices et exposants de cette fonction.

Exemple :
\newcommand{\rad}{\mathop{\mathrm{rad}}}
\newcommand{\radn}{\mathop{\mathrm{rad}}\nolimits}

\begin{document}
\[
\alpha \rad_{t \rightarrow \infty} = 0
\]

\[
\alpha \radn_{t \rightarrow \infty} = 0
\]
\newcommand{\rad}{\mathop{\mathrm{rad}}}
\newcommand{\radn}{\mathop{\mathrm{rad}}\nolimits}

\begin{document}
\[
\alpha \rad_{t \rightarrow \infty} = 0
\]

\[
\alpha \radn_{t \rightarrow \infty} = 0
\]
\end{document}
%%%% fin exemple %%%%

* Sous LaTeX2e, le package 'amsopn' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/ et par ftp sur
ftp://e-math.ams.org/pub/tex/amslatex/inputs/.  Il permet
de déclarer de nouvelles fonctions qui seront gérées comme une
fonction mathématique (gestion de la fonte, disposition des
indices et exposants, etc).  Pour cela il faut déclarer une
commande du type : \DeclareMathOperator{\fonction}{fonction} dans
le préambule du document. Pour que les indices et exposants de la
nouvelle fonction puissent être géres comme ceux de la fonction
\sum , il faut alors plutot utiliser \DeclareMathOperator*.

* De même, le package 'amstex' (LaTeX2.09) définit les commandes
\operatorname et \operatornamewithlimits.

Exemple :
$\operatorname{rad}$
%%%% fin exemple %%%%

# 12.14 # Comment définir une matrice ?
---------------------------------------
* Il suffit de construire un tableau sans lignes avec
l'environnement array.

Exemple :
\[
\begin{array}{ccc}
   x_{11} & \cdots & x_{1p} \\
   \vdots & \ddots & \vdots \\
   x_{n1} & \cdots & x_{np}
\end{array}
\]
%%%% fin exemple %%%%

Pour encadrer cette matrice avec des délimiteurs, cf.
paragraphe 12.8.

* Le package 'amsmath',disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet de définir une matrice de manière
plus rapide qu'avec l'environnement array. Les environnements
disponibles sont :
+ matrix,
+ pmatrix pour une matrice encadrée par des parenthèses,
+ bmatrix pour une matrice encadrée par des crochets,
+ vmatrix pour une matrice encadrée par des lignes verticales,
+ Vmatrix pour une matrice encadrée par des doubles lignes
verticales.

Exemple :
\[
\begin{pmatrix}
         a & b \\
         c & d
\end{pmatrix}
\]
%%%% fin exemple %%%%

* Le package 'easybmat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement d'écrire
des matrices par bloc.

* Le package 'easymat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ facilite également
l'écriture de matrices.

# 12.15 # Comment encadrer des formules ?
-----------------------------------------
* Le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, offre la commande \boxed.

Exemple :
$$\boxed{a=b}$$
%%%% fin exemple %%%%

* Il existe également la commande \fbox.

Remarque : Avec les environnements multi-lignes de AMSTeX (comme
	   multline ou split), il peut être utile de les
	   encapsuler dans un math ou dans un displaymath.

Exemple :
\begin{equation}
   \fbox{$
   \begin{array}{rcl}
      x + y + z & = & 0 \\
      2x + 2y + 2z & = & 0
   \end{array}
   $}
\end{equation}
%%%% fin exemple %%%%

* Le package 'fancybox' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/seminar/inputs/ peut également être
utile.

Exemple :
\linethickness{3pt}
\Ovalbox{
\begin{Beqnarray}
ds^2&\,=\,& \displaystyle{\frac{\epsilon^{\prime 2}}{L^2}
\frac{12N}{(N+1)(N+2)}}
\end{Beqnarray}
}
%%%% fin exemple %%%%

* Une dernière solution consiste à mettre la formule dans un
tableau d'une seule cellule.

# 12.16 # Comment ajuster la longueur d'une flèche par rapport à un texte ?
---------------------------------------------------------------------------
Le package 'amsmath',disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, permet de générer des flèches dont la
longueur dépend de la longueur du texte qui est placé au dessus
ou en dessous (ou de la chaîne la plus longue lorsqu'il y a à la
fois un texte au dessus et un autre en dessous).

Exemple :
$\xrightarrow[\text{au dessus}]{\text{en dessous}}$
%%%% fin exemple %%%%

# 12.17 # Comment obtenir des indices ou exposants à gauche ?
-------------------------------------------------------------
* Les commandes \sideset \overset et \underset du
package 'amsmath' permettent de placer du texte à gauche, en
haut ou en bas.

Exemple, mettre dans le préambule :
\newcommand{\transposee}[1]{{\vphantom{#1}}^{\mathit t}{#1}}

puis, dans le corps du document :
 \[
\transposee{
\begin{pmatrix}
   a & b \\
   c & d \\
\end{pmatrix}
}
\]
%%%% fin exemple %%%%

Remarque : on peut également utiliser \sideset qui ne marche
	   que pour les opérateurs :
	   \newcommand{\transposee}[1]{\sideset{^{\mathit{t}}}{}
	   {#1}}

* A défaut, on peut utiliser ${}_{j}H$ ou  ${_jH}$

* Le package 'chemsym' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/chemsym/ peut également être utile.

# 12.18 # Comment tracer des diagrammes commutatifs ?
-----------------------------------------------------
* Xy-pic est un outil simple et puissant qui permet de réaliser
de tels diagrammes (cf. paragraphe 8.6).

Exemple :
\documentclass[a4paper,12pt]{article}
\usepackage[all]{xy}
\begin{document}
 \[\xymatrix{
  A \ar[d] \ar[r] \ar@{=}[rd] & B \ar[d] \\
  C \ar[r] & D }
\]
\end{document}
%%%% fin exemple %%%%

* On peut également utiliser le package 'amscd' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/amslatex/math/ ou plus
généralement le package 'amsmath' et l'environnement CD mais
son offre est plus limitée.

Exemple 1 (amscd) :
\[
\begin{CD}
   \mathcal{F} @>\otimes>> T\\
   @VdrVlfV @ViVjV\\
   \mathtt{f} @= t
\end{CD}
\]

\[
\begin{CD}
d @>>> e @>>> f \\
@AAA @. @AAA \\
a @>>> b @>>> c
\end{CD}
\]
%%%% fin exemple %%%%

Exemple 2 (amsmath) :
\[
\begin{array}{ccccc}
d & \longrightarrow & e & \longrightarrow &f \\
\uparrow &&&& \uparrow \\
a & \longrightarrow & b &\longrightarrow& c\\
\end{array}
\]
%%%% fin exemple %%%%

Remarque : dans la dernière version de amscd, la syntaxe
	   @>Exp1>Exp2> utilisée pour les flèches extensibles a
	   été abandonnée au profit des commandes \xleftarrow et
	   \xrightarrow.

	   Pour plus de détails consultez :
	   + "\amslatex/ Version 1.2\\User's Guide", dans le
	   fichier "amsldoc.tex"
	   + "Differences between \amslatex/ version 1.1 and
	   \amslatex/ version 1.2", dans le fichier "diff12.tex".

* Il existe le package 'cd' écrit pour LaTeX2.09 par D.
Hankerson. Ce package étend les capacités des fonction
AMS-TeX. Les longueurs de texte s'ajustent avec la longueur des
arguments.

Exemple (doc package) :
\documentstyle[12pt,cd]{article}
\newcommand{\cdrl}{\cd\rightleftarrows}
\newcommand{\cdlr}{\cd\leftrightarrows}
\newcommand{\cdr}{\cd\rightarrow}
\newcommand{\cdl}{\cd\leftarrow}
\newcommand{\cdu}{\cd\uparrow}
\newcommand{\cdd}{\cd\downarrow}
\newcommand{\cdud}{\cd\updownarrows}
\newcommand{\cddu}{\cd\downuparrows}
\begin{document}
\[\CD
G \cdrl {\gamma}{\delta} H \cdr {}{\Delta} K \\
\cd. \cdud {f}{g} \cd| {h}{k} \\
0 \cdr {}{} G' \cd= {\beta}{} H' \endCD
\]
\end{document}
%%%% fin exemple %%%%

* Le package 'catmac' définit un ensemble de macros pour tracer
des diagrammes commutatifs. Il propose par défaut un ensemble
de formes mais permet également via un certain nombre de
macros prédéfinies de composer ses propres formes.

Exemple :
\begin{center}
   \resetparms
   \square[A`B`C`D;f`g`h`k]
\end{center}
%%%% fin exemple %%%%

ATTENTION : ce package n'est pas compatible avec le package
	    french qui rend le ; actif.

# 12.19 # Comment ajuster la taille de certains opérateurs ?
------------------------------------------------------------
* Pour ajuster la taille de certains opérateurs, il faut
utiliser le package 'exscale' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/.

* Le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/, donne la même possibilité.

# 12.20 # Comment mettre en page des algorithmes ?
--------------------------------------------------
* Les packages 'algorithms' et 'algorithmic' disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/algorithms/, ont été
spécifiquement conçus pour mettre en forme des algorithmes.

* Il existe aussi le package 'alg' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/alg/.

* Le package 'newalg' est également disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/newalg/. Il propose un
environnement algorithm qui par défaut utilise le mode
mathématique et l'environnement array pour les alignements. La
commande \text est également disponible. Le package gère les
instructions : if-then-else, for, while, repeat, switch et
propose un certain nombre de macros telles que call, error,
algkey, return, nil.

Exemple :
\begin{algorithm}{StrictSup}{x, y}
   \begin{IF}{x > y}
      \RETURN x
   \ELSE
      \ERROR{x leq y}
  \end{IF}
\end{algorithm}
%%%% fin exemple %%%%

# 12.21 # Comment mettre en page des formules longues ?
-------------------------------------------------------
L. Lamport définit certaines conventions dans sa page WEB :
http://www.research.digital.com/SRC/personal/Leslie_Lamport/latex/latex.html.

# 12.22 # Comment créer des unités de mesure ?
----------------------------------------------
Le problème du mode mathématique est qu'il change
automatiquement de fonte et qu'il utilise une gestion
particulière des espaces. Le mieux pour écrire des unités de
mesures du type m/s sans avoir à taper systématiquement des
barbarismes du type \rm\,m/s\mit ou \,\textrm{m}/\textrm{s} est
de définir une commande spéciale dans le préambule du document.

Exemples :
\newcommand{\units}[2]{#1\textrm{\thinspace #2}}
cette commande nécessite le package 'amsmath'
utilisation : \units{10}{m/s}

ou plus rapide :
\newcommand{\ms}[1]{\units{#1}{m/s}}
utilisation : \ms{10}
%%%% fin exemple %%%%

# 12.23 # Comment écrire proprement a/b ?
-----------------------------------------
Pour qu'à l'impression le numérateur 'a' soit légèrement décalé
vers le haut et vers la gauche et que le dénominateur 'b' soit
légèrement décalé vers le bas et vers la droite, les deux étant
plus petits que la fonte courante, il existe la commande \sfrac
du package tugboat disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/tugboat/.

# 12.24 # Comment créer des notes de bas de page dans une formule mathématique ?
--------------------------------------------------------------------------------
* On peut utiliser directement la commande \footnote{} ou les
commandes spécifiques \footnotemark[] et \footnotetext[]{}
si l'on veut fixer soit même les compteurs. \footnotemark permet
de gérer le compteur de notes et \footnotetext permet d'insérer
le texte correspondant en bas de page.

Exemple :
\[
Place_{libre}\footnotemark[1] +
Place_{occup\acute ee}\footnotemark[2] +
Place_{d\acute efaillante} =
Capacit\acute e
\]
\footnotetext[1]{La place libre~\ldots}
\footnotetext[2]{La place occup\' ee~\ldots}
%%%% fin exemple %%%%

# 12.25 # Comment forcer le style d'un tableau à displaystyle ?
---------------------------------------------------------------
Le style par défaut dans un "array" est textstyle. Pour éviter
d'avoir à écrire \displaystyle dans chaque cellule, on peut
déclarer un tableau entièrement en mode displaystyle via la
macro:
%%%% debut macro %%%%
\newenvironment{disarray}%
 {\everymath{\displaystyle\everymath{}}\array}%
 {\endarray}
%%%% fin macro %%%%

# 12.26 # Comment réduire les espaces gérés par eqnarray ?
----------------------------------------------------------
Il suffit d'inclure la macro suivante dans le préambule de votre
document :

%%%% debut macro %%%%
\makeatletter
\newlength{\earraycolsep}
\setlength{\earraycolsep}{2pt}
\def\eqnarray{\stepcounter{equation}\let\@currentlabel%
\theequation
\global\@eqnswtrue\m@th
\global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr
$$\halign to\displaywidth\bgroup\@eqnsel\hskip\@centering
$\displaystyle\tabskip\z@{##}$&\global\@eqcnt\@ne
\hskip 2\earraycolsep \hfil$\displaystyle{##}$\hfil
&\global\@eqcnt\tw@ \hskip 2\earraycolsep
$\displaystyle\tabskip\z@{##}$\hfil
\tabskip\@centering&\llap{##}\tabskip\z@\cr}
\makeatother
%%%% fin macro %%%%

# 12.27 # Comment réduire la taille des indices ?
-------------------------------------------------
* Il faut utiliser la commande \DeclareMathSizes :
\DeclareMathSizes{10}{10}{6}{5}
\DeclareMathSizes{11}{11}{7}{5}
\DeclareMathSizes{12}{12}{7}{5}
Ces déclarations permettent de réduire la taille des indices des
fontes 10pt, 11pt et 12pt.

Exemple :
\documentclass[12pt]{report}
\usepackage{french}
\pagestyle{empty}
\DeclareMathSizes{12}{12}{7}{5}
\begin{document}
La capacité totale est définie par~:
\[
C_{libre} + C_{occup\acute ee} = C_{totale}
\]
\end{document}
%%%% fin exemple %%%%

* On peut aussi utiliser les commandes scriptstyle ou
scriptscriptstyle.

Exemple :
$\rho_{AB}$
$\rho_{\scriptstyle AB}$
$\rho_{\scriptscriptstyle AB}$
%%%% fin exemple %%%%

* En utilisant les caractères romans, on peut appliquer la
commande \small.

Exemple :
$\rho_{\textrm{\small AB}}$
%%%% fin exemple %%%%

# 12.28 # Comment aligner des indices ?
---------------------------------------
La commande \vphantom définit une boîte invisible dont la
hauteur est celle de son argument.

Exemple :
\[
f_{\vphantom{\widehat{ef}} d} = f_{\widehat{ef}} \mathrm{\ au \
lieu \ de~:} f_d = f_{\widehat{ef}}
\]
%%%% fin exemple %%%%

# 12.29 # Comment mettre en page des théorèmes ?
------------------------------------------------
* LaTeX offre la commande
\newtheorem{nom}[compteur]{texte}[section]
où nom est une clé pour identifier le théorème, et
texte le titre du théorème qui sera imprimé. compteur permet de
référencer un autre théorème pour obtenir la même numérotation.
section permet de préciser le niveau de numérotation voulu.

Exemple :
dans le préambule :
\newtheorem{th-imp}{Théorème important}[section]
\newtheorem{th-u}{Théorème}[subsection]

dans le texte :

\section{Introduction.}

   \begin{th-imp} \label{label-th-AA}
      BLA BLA
   \end{th-imp}

   \subsection{Bases.}

      \begin{th-u} \label{label-th-aaa}
	 bla bla bla
      \end{th-u}

      \begin{th-u}
	 bla ble
      \end{th-u}

\section{Conclusion}

   Le théorème important~\ref{label-th-AA} est à apprendre par
   c\oe{}ur, le théorème~\ref{label-th-aaa} peut être utile.
%%%% fin exemple %%%%

* Il existe pour cela le package 'thmmarks' disponible à
http://www.informatik.uni-freiburg.de/~may/thmmarks.html.

* Le package 'newthm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/newthm/ permet de générer une liste
des théorèmes apparaissant dans un document.

* Les trois packages suivants permettent de définir son propre style.

 ** Le package 'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN//fonts/ams/amslatex/,
  définit l'environnement proof en insérant un carré.
  Des exemples de théorèmes se trouvent dans le fichier thmtest.tex

 ** Le package 'theorem', disponible sur CTAN. Voir le fichier
  theorem.dvi

 ** Il existe également le package 'ntheorem' disponible sur CTAN
  ou sur
  http://www.informatik.uni-freiburg.de/~may/Ntheorem/ntheorem.html
  Il peut générer une liste des théoremes de la même manière que
  'listoffigures', est compatible avec amsmath, permet d'ajouter des
  symboles à la fin d'un théoreme 'carré, q.e.d.), permet la référence
  à d'autres théoremes. Voir le fichier ntheorem.dvi

** Voici un tableau récapitulatif :

  +------------------------------------+--------+---------+----------+
  |Package                             | amsthm | theorem | ntheorem |
  +------------------------------------+--------+---------+----------+
  |Retour à la ligne après le titre    |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Pas de numérotation d'un théoreme   |   x    |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Position du numéro du théoreme      |        |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Style de la numérotation            |        |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Ponctuation après le titre (:,.,etc)|   x    |         |    x     |
  +------------------------------------+--------+---------+----------+
  |Fonte du titre ou du corps          |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+
  |Indentation du titre                |   x    |         |          |
  +------------------------------------+--------+---------+----------+
  |Espace vertical autour du théorème  |   x    |    x    |    x     |
  +------------------------------------+--------+---------+----------+

# 12.30 # Comment changer la taille de la fonte ?
-------------------------------------------------
Voici une solution présentée par T. Bouche et S.A. Zaimi :

Exemple :
\documentclass{report}
\def\mathtitre#1{
\font\tenrm=cmr10   scaled \magstep#1
\font\sevenrm=cmr7  scaled \magstep#1
\font\fiverm=cmr5   scaled \magstep#1
\font\teni=cmmi10   scaled \magstep#1
\font\seveni=cmmi7  scaled \magstep#1
\font\fivei=cmmi5   scaled \magstep#1
\font\tensy=cmsy10  scaled \magstep#1
\font\sevensy=cmsy7 scaled \magstep#1
\font\fivesy=cmsy5  scaled \magstep#1
\font\tenex=cmex10  scaled \magstep#1
\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
\textfont1=\teni  \scriptfont1=\seveni  \scriptscriptfont1=\fivei
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
}

\begin{document}
	{\mathtitre0 $$A+B=C^{B^A}$$}
	{\mathtitre1 $$A+B=C^{B^A}$$}
	{\mathtitre2 $$A+B=C^{B^A}$$}
	{\mathtitre3 $$A+B=C^{B^A}$$}
	{\mathtitre4 $$A+B=C^{B^A}$$}
	{\mathtitre5 $$A+B=C^{B^A}$$}
\end{document}
%%%% fin exemple %%%%

ATTENTION : il ne faut pas que le bloc en police \mathtitreXX
	    se trouve à cheval sur deux pages... cela mettrait
	    le numéro de page (et les en-têtes-pieds de page)
	    dans ladite police...

# 12.31 # A quoi sert la commande \displaystyle ?
-------------------------------------------------
Elle permet de forcer LaTeX à gérer les indices et les exposants
comme si il était en mode mathématique isolé. Cela peut alors
induire une modification locale de l'interligne courant.

Exemple :
Elle permet de forcer \LaTeX à gérer les indices et les
exposants comme si il était en mode mathématique isolé
$\displaystyle{\sum_{i=0}^n x_i}$. Cela peut alors induire une
modification locale de l'interligne courant. Ce texte contient
un exemple probant. Le changement d'interligne est bien visible.
%%%% fin exemple %%%%

# 12.32 # Comment aligner des données sur le point décimal ?
------------------------------------------------------------
* Le package 'dcolumn' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ permet d'aligner les nombres d'un
tableau par rapport à leur point décimal.

* On peut également utiliser un tableau avec une virgule comme
séparateur de colonnes.

Exemple :
\[
\begin{array}{r @{,} l}
   1&2 \\
   233&456 \\
   x&y \\
\end{array}
\]
%%%% fin exemple %%%%

# 12.33 # Comment gérer les espaces en mode mathématique ?
----------------------------------------------------------
Voici les différents espaces prédéfinis :
\! réduit l'espace par défaut,
\, donne un petit espace,
\ suivit d'un espace, donne un espace de taille moyenne,
\quad donne un espace moyen,
\qquad donne un grand espace.

Exemple :
\[
\begin{array}{l}
   sin cos \\
   sin \! cos \\
   sin \, cos \\
   sin \  cos \\
   sin \quad cos \\
   sin \qquad cos \\
\end{array}
\]
%%%% fin exemple %%%%

# 12.34 # Comment obtenir des accolades horizontales ?
------------------------------------------------------
\overbrace et \underbrace.

Exemple :
\[
\overbrace{f(x)}^{=0} + \underbrace{g(y)}_{=0} = 0
\]
%%%% fin exemple %%%%

# 12.35 # Comment obtenir des points de suspensions ?
-----------------------------------------------------
En mode math, il existe différents types de points de suspension
suivant leur orientation :
+ \ldots pour des points horizontaux sur la ligne d'écriture
+ \cdots pour des points horizontaux au dessus de la ligne
d'écriture
+ \vdots pour des points verticaux
+ \ddots pour des points en diagonale

Exemple :
\[
\begin{array}{ccc}
   x_{11} & \cdots & x_{1p} \\
   \vdots & \ddots & \vdots \\
   x_{n1} & \cdots & x_{np}
\end{array}
\]
%%%% fin exemple %%%%

# 12.36 # Comment mettre en page un système d'équations ?
---------------------------------------------------------
* On peut utiliser les commandes \left délimiteur et \right.
  classiques devant un tableau.

Exemple :
\[
\left \{
\begin{array}{c @{=} c}
    x & \sin a \cos b \\
    y & \sin a \sin b \\
\end{array}
\right.
\]
%%%% fin exemple %%%%

* On peut utiliser le package 'mathenv', permettant de numéroter le
  système ou chaque équation du système, le compteur pouvant alors être
  personnalisé.

Exemples :

% numérotation du système
\begin{System}
  2x + y = 6 \\
  3x + y = 7
\end{System}

%numérotation de chaque équation du système
\begin{EqSystem}
  2x + y = 6 \\
  3x + y = 7
\end{EqSystem}
%%%% fin exemple %%%%

* On peut utiliser le package 'amsmath', permettant de placer des
  alternatives conditionnelles.

Exemple :
\begin{equation*}
  |x|=
     \begin{cases}
        -x & \text{si $x$ est impair} \\
        x  & \text{si $x$ est pair ou nul}
     \end{cases}
\end{equation*}
%%%% fin exemple %%%%

* Le package 'cases' disponible sur
  ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ gère les systèmes d'équations.

Exemple :
\begin{numcases}{|x|=}
    x, & for $x \geq 0$\\
    -x, & for $x < 0$
\end{numcases}
%%%% fin exemple %%%%

* Voici une adaptation de ce package par J. Laurens :
%%%% debut macro %%%%
%  fichier xtdeqnra.sty             ver 1.0    Decembre 1997
%
%  Copyright (C) 1997 by Jerome LAURENS
%
%  Ces macros peuvent e^tre librement transmises, sans modification aucune
%  tant que cette notice est intacte.
%  Base' sur le paquetage cases.sty de D.Arseneau
%  et la commande \eqnarray de Leslie Lamport et de l'e'quipe LaTeX3.
%
%  On rajoute un parame`tre optionnel a` l'environnement eqnarray qui
%  est un delimiteur gauche
%
%  Exemple : source
%
%  \begin{eqnarray}[\{]
%   x_1 & = & valeur_1 \\
%   x_2 & = & valeur_2 \\
%   x_3 & = & valeur_3
%  \end{eqnarray}
%
%  Re'sultat
%
%               /  x_1 = valeur_1           (1)
%               |
%               <  x_2 = valeur_2           (2)
%               |
%               \  x_3 = valeur_3           (3)
%
%  Pour utiliser ce paquetage,
%  inclure  "\usepackage{xtdeqnra}"  apre`s \documentclass.
%
%  On peut utiliser l'environnement subequations pour avoir (1a), (1b) et (1c)
% - - - - -
%

\ProvidesPackage{xtdeqnra}[1997/12/05 version 1.0 ]

%  - sauvegarde de l'environnement eqnarray
\let\x@eqnarray\eqnarray
\let\endx@eqnarray\endeqnarray
%
%  - environnement de remplacement
\def\eqnarray{\@ifnextchar[%
  {\let\endeqnarray\endy@eqnarray\y@eqnarray}
  {\let\endeqnarray\endx@eqnarray\x@eqnarray}}
%
%  - nouvel environnement avec un de'limiteur a` gauche
\def\y@eqnarray[#1]%
{ \gdef\@leftdelimiter{#1}
  \displaymath
  \setbox\tw@\vbox
    \bgroup
      \stepcounter{equation}%
      \def\@currentlabel{\p@equation\theequation}%
      \global\@eqnswtrue
      \m@th
      \everycr{}%
      \tabskip\@centering
      \let\\\@eqncr
      \halign to\displaywidth
        \bgroup
          \hskip \@ne\arraycolsep
          \hfil$\displaystyle
          \tabskip\z@skip{##}$%
          \@eqnsel
          &\global\@eqcnt\@ne
          \hskip \tw@\arraycolsep
          \hfil${##}$\hfil
          &\global\@eqcnt\tw@
          \hskip\tw@\arraycolsep
          $\displaystyle{##}$\hfil
          \unskip\hfil
          \tabskip\@centering% \unskip removes space if no explanations
      		  &\global\@eqcnt\thr@@
          \hb@xt@\z@\bgroup\hss##\egroup
          \tabskip\z@skip
          \cr
}
\def\endy@eqnarray{%
          \@@eqncr
        \egroup % end \halign, which does not contain brace
      \global\advance\c@equation\m@ne
      \unskip\unpenalty
      \unskip\unpenalty
      \setbox\z@\lastbox % grab last line
      \nointerlineskip
      \copy\z@ % then put it back
      \setbox\z@\hbox{\unhbox\z@}%
      \global\dimen@i\wd\z@
    \egroup% end \vbox (box\tw@, box\z@ is restored to LHS)
  \hbox to\displaywidth{%
    \m@th % assemble the whole equation
    \hskip\@centering
    \hbox to\dimen@i{%
      $\displaystyle%
      \dimen@\ht\tw@
      \advance\dimen@\dp\tw@ % get size of brace
      \setbox\z@\hbox{$\mathord{\left\@leftdelimiter\vcenter
to\dimen@{\vfil}\right.}$}%
      \dimen@\wd\z@
      \kern-\dimen@
      \box\z@%
      \n@space % make brace
      $\hfil}
    \hskip\@centering % finished first part (filled whole line)
    \kern-\displaywidth$%
    \vcenter{\box\tw@}$% overlay the alignment
  }% end the \hbox
  \enddisplaymath
  \global\@ignoretrue
}

\endinput

% fin du fichier xtdeqnra.sty
%%%% fin macro %%%%

* Le package 'delarray' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ peut également être utilisé dans
ce but.

# 12.37 # Comment mettre en page des diagrammes de Feynman ?
------------------------------------------------------------
Le package 'feynmf' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/feynmf/ permet de gérer la mise
en page de diagrammes de Feynman.

# 12.38 # Comment obtenir une fraction ?
----------------------------------------
LaTeX propose la commande \frac{arg1}{arg2} dont l'argument arg1
est le numérateur et arg2 dénominateur.

Exemple :
en formule~:
$$\frac{\alpha}{6 + \sqrt{2}}$$
ou dans le texte $\frac{\alpha}{6 + \sqrt{2}}$.
%%%% fin exemple %%%%

# 12.39 # Comment obtenir une racine ?
--------------------------------------
Il existe la commande \sqrt[n]{arg}, qui représente la racine
nième de arg. [n] est un paramètre optionnel.

Exemple :
$$ \sqrt[3]{\sqrt{\sqrt[\gamma]{x+y}}} $$
%%%% fin exemple %%%%

# 12.40 # Quels sont les délimiteurs disponibles ?
--------------------------------------------------
( ) [ ]  \{ \}
\uparrow \downarrow \updownarrow
\Uparrow \Downarrow \Updownarrow
\lfloor \rfloor \lceil \rceil
\langle \rangle
/ \backslash | \|

# 12.41 # Comment appeler les lettres grecques ?
------------------------------------------------
Il suffit de faire précéder leur nom en toutes lettres d'un
backslash :
+ minuscules :
\alpha \beta \gamma \delta \epsilon \varepsilon \zeta \eta
\theta \vartheta \iota \kappa \lambda \mu \nu \xi \pi \varpi
\rho \varrho \sigma \varsigma \tau \upsilon \phi \varphi \chi
\psi \omega

+ majuscules :
\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi
\Omega

# 12.42 # Quels sont les accents mathématique standards ?
---------------------------------------------------------
* Il en existe dix pour des lettres seules :
+ $\hat{a}$
+ $\check{a}$
+ $\breve{a}$
+ $\acute{a}$
+ $\grave{a}$
+ $\tilde{a}$
+ $\bar{a}$
+ $\vec{a}$
+ $\dot{a}$
+ $\ddot{a}$

Remarque : pour placer un accent sur un i ou un j, il faut
	   utiliser les commandes \imath et \jmath qui
	   permettent de supprimer le point par défaut.

* Il en existe également d'autres pour couvrir des ensembles de
lettres :
+ $\widehat{abc}$
+ $\widetilde{def}$
+ $\overrightarrow{ghi}$
+ $\overline{jkl}$
+ $\underline{mno}$
+ $\overbrace{pqr}$
+ $\underbrace{stu}$

# 12.43 # Comment superposer deux symboles ?
--------------------------------------------
Il existe pour cela la commande \stackrel{dessus}{dessous}

Exemple :
\[
A \stackrel{\theta}{\Rightarrow} B
\]
%%%% fin exemple %%%%

# 12.44 # Comment définir un nouvel opérateur ou symbole ?
----------------------------------------------------------
* Il existe pour cela la commande \DeclareMathOperator du
package 'amsmath', disponible sur ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/.
Elle s'utilise dans le préambule.

Exemple :
\DeclareMathOperator{\init}{init}

\[
\init f = 0 \mathrm{\ au \ lieu \ de~:} init f = 0
\]
%%%% fin exemple %%%%

* On peut également utiliser \newcommand, toujours dans le
préambule du document.

Exemple :
\newcommand{\affecte}{\mathrel{:=}}

$x \affecte 0$

$y \affecte 1$
%%%% fin exemple %%%%

* On peut utiliser \def.

Exemple :
\makeatletter
\def\log{\mathop{\operator@font log}\nolimits}
\makeatother

$\log 28 = 1.447158$
%%%% fin exemple %%%%

* Pour définir un nouveau symbole de plusieurs caractères, il
faut utiliser \mathit.

# 12.45 # Comment obtenir des lettres grecques en gras ?
--------------------------------------------------------
* On peut utiliser le package 'amsmath', disponible sur
ftp://ftp.fdn.org/pub/CTAN/fonts/ams/amslatex/ :

Exemple :
...
\usepackage{amsmath}
...
\begin{document}
...
$\boldsymbol{\alpha}$
%%%% fin exemple %%%%

* On peut également utiliser le package 'bm' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/bm/.

Exemple :
...
\usepackage{bm}
...
\begin{document}
...
$\bm{\alpha}$
%%%% fin exemple %%%%

# 12.46 # Comment tracer un tableau de variations ?
---------------------------------------------------

* Avec l'environnement array en mode mathématiques (cf. question
12.11).

Exemple:
$
\begin{array}{|c|ccccr|}
\hline
x     & -\infty  &    & 0  &     & +\infty  \\
\hline
f'(x) & 5         &  + & 0  & - &  -10 \\
\hline
 &  & & 10 & & \\       % ligne des valeurs "max"
f(x) &  &\nearrow   &  &\searrow  & \\   % flèches
& -\infty & & & & -10 \\          % ligne des valeurs "min"
\hline
\end{array}
$
%%%% fin exemple %%%%

* On peut faire de plus jolies flèches (redimensonnables) avec les commandes
graphiques.

Pour cela, il faut choisir une unité de longueur avant par:
        \unitlength=1cm
et remplacer par exemple \nearrow par (flèches de 2cm de large et de haut)

Exemple:
\begin{minipage}{2cm}
  \begin{picture}(2,2)
     \put(0,0){\vector(1,1){2}}
 \end{picture}
\end{minipage}
%%%% fin exemple %%%%

================================================================
[13] RÉFÉRENCES CROISÉES
================================================================

# 13.1 # Quelles sont les commandes de base ?
---------------------------------------------
* LaTeX permet de gérer automatiquement des références croisées
grâce aux commandes suivantes :
\label{} pour repérer la référence à rappeler
\ref{} pour faire appel à la référence décrite par la commande
\label
\pageref{} pour faire référence à la page de la référence
reperée par la commande \label
\cite{} pour faire référence à un document cité en
bibliographie.

L'utilisation de ces commandes nécessite alors plusieurs (deux
à trois) compilations successives, jusqu'à ce que toutes les
références croisées soient correctes.

ATTENTION : pour les figures et les tables, la commande \label
	    doit se situer juste après un \caption ou en faire
	    partie pour que les références soient correctes.

ATTENTION : lorsque l'on travaille avec une version inférieure à
	    3.6 du package babel et l'option french, sachant que
	    cette dernière redéfinit certains caractères de
	    ponctuation tels que :;?! pour gérer automatiquement
	    les espaces, il ne faut pas les utiliser dans des
	    noms de label : \label{section:Introduction} est
	    interdit.

Exemple :
Remplir la table~\ref{table-add}, page~\pageref{table-add}
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{c|c}
	 \hline
	  Question & Réponse  \\
	 \hline
	 1 + 12 & \\
	 45 + 76 & \\
      \end{tabular}
      \caption{Additions. \label{table-add}}
   \end{center}
\end{table}
%%%% fin exemple %%%%

* Le package 'prettyref' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/prettyref/ permet de définir ses
propres styles de référence.

# 13.2 # Comment obtenir un renvoi à une page ?
-----------------------------------------------
* Il suffit d'utiliser la commande \pageref présentée ci-dessus.

* Le package 'varioref', de F. Mittelbach, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, permet de n'appeler une
référence de page que si l'objet flottant auquel elle se
rattache n'est pas présent sur la page courante. Pour cela, ce
package définit la commande \vpageref qui ne fera apparaître le
numéro de la page référencée que si ce n'est pas la page
courante. Cette commande peut également introduire des
expressions du type "sur la page précédente", "sur cette même
page", etc. Dans ce cas, on précise la langue voulue en option
lors de l'appel du package.

Exemple:
\documentclass{report}
\usepackage{french}
\usepackage[french]{varioref}

\begin{document}
Remplir la table~\ref{table-add}~\vpageref{table-add}
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{c|c}
	 \hline
	  Question & Réponse  \\
	 \hline
	 1 + 12 & \\
	 45 + 76 & \\
      \end{tabular}
      \caption{Additions. \label{table-add}}
   \end{center}
\end{table}
\end{document}
%%%% fin exemple %%%%

Remarque : Ce package est incompatible avec les styles de page
	   sans numérotation (e.g. empty).

# 13.3 # Comment obtenir des références croisées à partir de plusieurs sources ?
--------------------------------------------------------------------------------
Le package 'xr', de D. Carlisle, permet de faire des références
d'un document à l'autre. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. Le document contenant les labels
est appelé dans le document contenant les références via la
commande \externaldocument.  La commande
\externaldocument[KEY]{DOCUMENT} permet même de gérer les
références de même nom.

Exemple :
* fichier essai.tex :
	\documentclass[a4paper,12pt]{book}

	\begin{document}
	   \section{Ma section.\label{ma-sect}}
	\end{document}

* fichier essai-ass.tex :
	\documentclass[11pt]{report}
	\usepackage{xr}
	\externaldocument{essai}

	\begin{document}
	Pour plus de détails, voir le document \textit{essai},
	paragraphe~\ref{ma-sect}
	\end{document}
%%%% fin exemple %%%%

# 13.4 # Comment définir des liens hypertexte sous LaTeX ?
----------------------------------------------------------
* Le package 'hyperref' de S. Rahtz disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/hyperref/ permet de définir des
liens hypertexte pour PDF. Il définit pour cela des commandes de
type \ref{}.

* Voir également les packages 'hyper' et 'hyperlatex'
disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/hyper/.

* La distribution Y&Y TeX System supporte des liens en TeX
debuggable dans le previewer qui seront automatiquement
convertis en liens PDF pour Adobe.

# 13.5 # Comment faire référence à ses propres compteurs ?
----------------------------------------------------------
Lorsque l'on définit son propre environnement avec ses popres
compteurs, pour que les commandes \label et \ref puissent les
prendre en compte, il suffit d'utiliser \refstepcounter au
lieu de \stepcounter pour incrémenter le compteur auquel on
fait référence.

================================================================
[14] TABLE DES MATIÈRES
================================================================

# 14.1 # Comment générer une table des matières ?
-------------------------------------------------
* LaTeX propose la commande \tableofcontents à appeler à
l'endroit où l'on veut insérer la table des matières.

# 14.2 # Comment générer plusieurs tables des matières ?
--------------------------------------------------------
* Le package 'french' propose la commande sommaire[n] qui permet
d'inclure une table des matière de niveau de profondeur n.

Remarque : dans ce cas \tableofcontents reste utilisable.

* Le package 'shorttoc' ci-dessous, de J.P. Drucbert, définit la
commande \shorttableofcontents{TITRE}{NIVEAU}.

Remarque : dans ce cas \tableofcontents reste également
	   utilisable.

%%%% debut macro %%%%
%shorttoc.sty
\ProvidesPackage{shorttoc}%
[1995/01/04 v1.0 Short table of contents package (JPFD)]
\def\@startshorttoc#1{\bgroup
  \makeatletter
  \@input{\jobname.#1}%
  \global\@nobreakfalse \egroup}

\def\shorttableofcontents#1#2{\bgroup\c@tocdepth=#2\@restonecolfalse
  \if@twocolumn\@restonecoltrue\onecolumn\fi
  \@ifundefined{chapter}%
  {\section*{{#1}
        \@mkboth{\uppercase{#1}}{\uppercase{#1}}}}%
  {\chapter*{{#1}
        \@mkboth{\uppercase{#1}}{\uppercase{#1}}}}%
  \@startshorttoc{toc}\if@restonecol\twocolumn\fi\egroup}
%%%% fin macro %%%%

* Le package 'minitoc', disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/minitoc/, permet de construire
une minitable des matières au début de chaque chapitre sous les
classes 'book' et 'report'. Pour l'utiliser, il faut appeler les
commandes \dominitoc avant la commande \tableofcontents
habituelle. La commande \faketableofcontents permet de ne garder
que les tables des matières locales et remplace alors la
commande \tableofcontents. La commande \minitoc doit être
appelée après chaque commande de début de chapitre \chapter dans
lequel on veut inclure une table locale. A chaque appel de
minitoc correspond un fichier .mtc<n> où n est le numéro du
chapitre.

Le compteur minitocdepth permet de fixer la profondeur des
tables des matières désirées.

Exemple :
\documentclass{report}
\usepackage{minitoc}
\usepackage{french}
\setcounter{minitocdepth}{1}
\begin{document}

\dominitoc
\tableofcontents

\chapter{Introduction.}
\minitoc

\section{Quelques rappels.}
   Texte.

   \subsection{La gravité.}

      Texte sur la gravité.

   \subsection{Loi de Newton.}

      Deux corps s'attirent en raison inverse du carré
      de leur distance et proportionnellement à leur
      masse.

\section{Nouveaux théorèmes.}

   Encore des résultats.

\section{Approfondissement.}

   Toujours plus loin.

pour ne faire apparaître que les titres de sections.
\end{document}
%%%% fin exemple %%%%

Le bon fonctionnement des numérotations peut nécessiter jusqu'à
trois compilations enchaînées.

ATTENTION : minitoc sait faire:
+ les tables des matières (liste des figures/tables) par partie,
+ par chapitre (classe book et report) et,
+ par section (classe article).

Par contre, il ne fait pas les tables des matières par section
(et en dessous) pour les classes book et report, ni les tables
des matières par sous-section (et en dessous) pour la classe
article.

# 14.3 # Comment ajouter une entrée dans la table des matières ?
----------------------------------------------------------------
Pour ajouter un titre de paragraphe qui n'apparaît pas par
défaut dans la table des matières, il faut utiliser la commande
\addcontentsline{1}{2}{3} où :
1 est l'extension du fichier contenant la table des matières
généralement 1 vaut toc,
2 est un niveau défini dans la table des matières; ce peut être
chapter, section, ... et,
3 est le texte que l'on veut voir apparaître dans la table.

Exemple :
\bibliography{sdf}
\addcontentsline{toc}{chapter}{Bibliographie.}
%%%% fin exemple %%%%

# 14.4 # Comment changer le titre de la table des matières ?
------------------------------------------------------------
On peut utiliser la commande :
\renewcommand{\contentsname}{Contenu du document.}

Remarque : suivant les packages utilisés, il faut placer cette
	   définition avant ou après le \begin{document}.

# 14.5 # Comment changer la profondeur de la table des matières ?
-----------------------------------------------------------------
Les sections sont numérotées si leur profondeur est inférieure à
secnumdepth.

Elles apparaissent dans la table des matières si leur profondeur
est inférieure à tocdepth.

Il suffit de changer les valeurs de ces deux compteurs. Il peut
alors être nécessaire d'enchaîner deux compilations LaTeX.

Exemple :
\documentclass[a4paper]{article}
\usepackage{french}
\pagestyle{empty}
% Profondeur de \subsubsection = 3
\setcounter{tocdepth}{3}     % Dans la table des matieres
\setcounter{secnumdepth}{3}  % Avec un numero.

\begin{document}
\tableofcontents
\vspace{.5cm}
\hrule

\part{Aaa.}
\section{aaa.}
   \subsection{bbb.}
      \subsubsection{ccc.}
\end{document}
%%%% fin exemple %%%%

# 14.6 # Comment gérer des chapitres de préface, d'introduction, et de conclusion non numérotés ?
-------------------------------------------------------------------------------------------------
* La classe book définit les commandes \frontmatter, \mainmatter
et \backmatter qui permettent de faire cela.

Exemple :
\documentclass[a4paper,12pt,openany]{book}
\usepackage{french}

\def\TEXTE{Bla bla bla...}

\begin{document}

\frontmatter

%\begin{abstract}  Bla, bla... \end{abstract}

\chapter{Préface} \TEXTE
\chapter{Introduction} \TEXTE

\mainmatter

\chapter{Début} \TEXTE
\chapter{Suite} \TEXTE
\chapter{Fin}  \TEXTE

\appendix
\chapter{Résultats élémentaires}
\chapter{Résultats compliqués}

\backmatter

\chapter{Conclusion}  \TEXTE

\tableofcontents
\end{document}
%%%% fin exemple %%%%

* L'autre solution consiste à définir ses propres commandes
\introduction, \preface, etc, à partir des définitions
de \chapter sans prendre en compte la numérotation.

* On peut également utiliser les commandes étoilées et gérer
soit même la table des matières et éventuellement les en-têtes
et bas de page.

Exemple :
\chapter*{Intro}
\addcontentsline{toc}{chapter}{Intro...}
%%%% fin exemple %%%%

# 14.7 # Comment enlever le numérotation des pages de tdm ?
-----------------------------------------------------------
Il suffit d'inclure les lignes suivantes dans le préambule du
document :
%%%% debut macro %%%%
\makeatletter
\def\addcontentsline@toc#1#2#3{%
   \addtocontents{#1}{\protect\thispagestyle{empty}}%
   \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
\def\addcontentsline#1#2#3{%
  \expandafter\@ifundefined{addcontentsline@#1}%
  {\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
  {\csname addcontentsline@#1\endcsname{#1}{#2}{#3}}}
\makeatother
%%%% fin macro %%%%

================================================================
[15] BIBLIOGRAPHIE SOUS LATEX
================================================================

# 15.1 # Comment construire une bibliographie ?
-----------------------------------------------
* Il existe deux techniques pour construire une bibliographie :
+ la première consiste à l'intégrer dans le corps même du
document (fichier.tex),
+ la seconde consiste à la définir dans un fichier particulier
(fichier.bib) puis à l'appeler dans le corps du document.

* Technique on-line :
Il suffit d'appeler l'environnement thebibliography et de
définir des bibitem.

Exemple :
\begin{thebibliography}{2}
   \bibitem[label]{cle} Auteur, TITRE, editeur, annee
   \bibitem[LAM94]{lam1} L. LAMPORT, {\it \LaTeX : A Document
   preparation system, Addison-Wesley, 1994}
\end{thebibliography}
%%%% fin exemple %%%%

[label] définit le label qui apparaîtra dans la bibliographie
et dans le texte après appel de la commande \cite{cle}.

* BibTeX permet de construire simplement une bibliographie. La
technique consiste alors à écrire un ou plusieurs fichiers.bib
qui seront appelés dans le document source par la commande
\bibliography{fichier1, fichier2,...}. BibTeX est disponible
sur ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex.

Le style de la bibliographie doit être défini par
\bibliographystyle{xxx} avec xxx valant généralement plain ou
alpha, mais il existe aussi d'autres styles. La commande
\bibliographystyle doit être appelée après \begin{document}.

Le contenu d'un fichier.bib est un ensemble de déclarations du
style :
@ARTICLE{cle,
author = "liste-noms-auteur",
title = "titre-article",
journal = "nom-journal",
year = "annee-parution",
}
% OPTIONAL FIELDS
% volume = "",
% number = "",
% pages =  "",
% month =  "",
% note =  "",

La syntaxe des différentes déclarations possibles peut se
trouver dans toute bonne documentation LaTeX ou dans les menus
des éditeurs tels que emacs ou Alpha.

Losqu'on utilise BibTeX, il faut alors enchaîner plusieurs
compilations pour que toutes les références soient exactes.
Généralement, il faut exécuter une passe LaTeX, une
passe Bibtex et encore deux passes LaTeX.

* Pour pouvoir inclure dans la bibliographie des références à
des documents qui ne sont pas cités explicitement par une
commande \cite, il suffit d'inclure la commande
\nocite{la-ref-non-citee} avant la commande
\bibliography{fichier_biblio}. Pour faire apparaître toutes les
références non citées sans toutes les énumérer, on peut utiliser
\nocite{*}.

* BIBDB, disponible sur CTAN, est un gestionnaire de
bibliographie BIBTEX, facile à manipuler qui tourne sous DOS.

* Bibview est un programme tournant sous X11 et permettant la
saisie et la consultation de fichiers bibtex.

# 15.2 # Comment gérer plusieurs bibliographies ?
-------------------------------------------------
* Le package 'chapterbib' permet d'inclure une bibliographie
par chapitre. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Les bibliographies
réparties peuvent alors apparaître comme section de ce chapitre
grâce à la commande : \usepackage[sectionbib]{chapterbib}.

* Le package 'bibunits', de A. Fernandez, permet de partager une
bibliographie en plusieurs unités, chacune attenante à une
section, ou à un chapitre d'un article ou d'un livre donné.

Exemple :

////////////// fichier rapport.tex /////////////
\documentclass[a4paper]{report}

\usepackage{bibunits}
\usepackage{french}

\begin{document}
\chapter{Algorithmes.}

Présentation d'algorithmes.

\nocite*
\bibliographystyle{alpha}
\bibliography{alg}

\chapter{Géométrie.}

Texte sur la géométrie.

\nocite*
\bibliographystyle{plain}
\bibliography{geom}
\end{document}

////////////// fichier alg.bib /////////////
@UNPUBLISHED{algg,
author = MPK,
title = Algorithmes et rythmes,
note = RAS,
}

////////////// fichier geom.bib /////////////
@INBOOK{geomm,
author = Me again,
title = Principes de géométrie,
chapter = Les droites,
publisher = Home publishing,
year = 1997,
}
%%%% fin exemple %%%%

* Le package 'bibtopics', de P. Basso, permet de contruire une
bibliographie générale comportant des rubriques diverses
(livres, articles, thèses, ...) ou des sujets divers (physique,
mathématiques, ...). Il est disponible par ftp sur
ftp://ftp.gutenberg.eu.org/pub/gut/contrib/.

Remarque : pour les versions récentes de LaTeX, il peut être
	   nécessaire d'inclure les lignes :
		\makeatletter
		\let\if@openbib\iffalse
		\makeatother
	   dans le préambule du document.

* Voici un petit fichier 'multibib.sty' de V. Henn, créé en
recopiant les définitions LaTeX des commandes relatives à la
gestion des bibliographies, et en les rendant paramétrables.

Les commandes qui ont été définies sont :
\newbibliographyGENE{biblio} pour déclarer une bibliographie
	biblio.
\citeGENE{biblio}{clé} pour appeler une référence.
\bibliographystyleGENE{biblio-x}{alpha} pour définir le style de
	biblio.
\bibliographyGENE{biblio}{fichier-biblio1} pour faire
	référence au fichier fichier-biblio1.bib qui contient
	les références.

%%%% debut macro %%%%
%% A sauver dans  multibib.sty
%%%%%% biblio generique %%%%%%%%

\newcommand\newbibliographyGENE[1]{%
\expandafter\expandafter\expandafter\newwrite\@nameuse{@#1aux}
\immediate\expandafter\expandafter\openout\@nameuse{@#1aux}=#1.aux
%\expandafter\expandafter\expandafter\show\@nameuse{@#1aux}
}

\def\citeGENE#1{\@ifnextchar [{\@tempswatrue\@citexGENE{#1}}%
{\@tempswafalse\@citexGENE{#1}[]}}

\def\@citexGENE#1[#2]#3{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\citation{#3}}\fi
 \let\@citea\@empty
 \@cite{\@for\@citeb:=#3\do
  {\@citea\def\@citea{,\penalty\@m\ }%
   \def\@tempa##1##2\@nil{\edef\@citeb{\if##1\space##2%
   \else##1##2\fi}}%
   \expandafter\@tempa\@citeb\@nil
   \@ifundefined{b@\@citeb}{{\reset@font\bf ?}\@warning
    {Citation `\@citeb' on page \thepage \space undefined}}%
   \hbox{\csname b@\@citeb\endcsname}}}{#2}}

\def\bibliographyGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\bibdata{#2}}\fi
  \@input{#1.bbl}}

\def\bibliographystyleGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}
    {\string\bibstyle{#2}}\fi}

\def\nociteGENE#1#2{\@bsphack
  \if@filesw\immediate\write\@nameuse{@#1aux}{\string%
  \citation{#2}}\fi
  \@esphack}
%%%% fin macro %%%%

Exemple d'utilisation :
Les fichiers gene.bib et speci.bib contiennent respectivement
une référence bibliographie de clé cle-gene et cle-speci.

\documentclass{report}
\usepackage{multibib}
\usepackage{french}

\begin{document}

\newbibliographyGENE{Toto}
\newbibliographyGENE{Titi}

\chapter{Introduction.}
 blabla bla \citeGENE{Toto}{cle-gene} et
\citeGENE{Titi}{cle-speci} rebla rebla rebla

\bibliographystyleGENE{Toto}{plain}
\bibliographyGENE{Toto}{gene}

\bibliographystyleGENE{Titi}{alpha}
\bibliographyGENE{Titi}{speci}

\end{document}

il faut alors compiler de la manière suivante :
latex fichier-source
bibtex Toto
bibtex Titi
latex fichier-source
latex fichier-source
%%%% fin exemple %%%%

# 15.3 # Comment changer de langue dans une bibliographie ?
-----------------------------------------------------------
* Il existe des versions francisées des styles bibliographiques
(fplain, falpha, fralpha, frealfullname...) qui ne sont pas
parfaits mais qui peuvent être modifiés facilement. Voir la
distribution GUTenberg.

Exemple :
\documentstyle{falpha}
%%%% fin exemple %%%%

* Sachant que les items d'une bibliographie sont des
paragraphes, ils peuvent commencer par la spécification d'une
langue. Si on utilise le package 'french', on dispose des
commandes \french et \english et si l'on utilise le package
'babel', il faut utiliser la commande \selectlanguage{} (cf.
paragraphe 11.1).

* Voir également le package 'frbib' pour les bibliographies
françaises.

* Le package 'mlbib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/mlbib/ permet de gérer des
bibliographies multilingues.

# 15.4 # Comment renvoyer une référence en note de bas de page ?
----------------------------------------------------------------
* Pour remplacer une référence insérée dans le texte par la
commande \cite, par un appel à une note de bas de page
contenant une référence succinte à un document (la référence
détaillée apparaissant toujours dans la bibliographie), il faut
redéfinir la commande \cite dans le préambule du document par :
%%%% debut macro %%%%
\makeatletter
\def\@cite#1#2{%
  \footnote{#1\if@tempswa, #2\fi}}
\makeatother
%%%% fin macro %%%%

Les informations reportées dans la note de bas de page
dépendent du style de bibliographie choisi.

* Le package 'overcite', de D. Arseneau, est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Il permet de faire
référence à des documents par un exposant.

Le problème qui se pose alors est de distinguer les références,
des notes de bas de page. Si le document contient moins de 10
notes de bas de page, on peut utiliser la commande
\renewcommand{\thefootnote}{\fnsymbol{footnote}}. Sinon pour
disposer de 10 notes de bas de page par page, il existe le
package 'footnote' de R. Fairbairns disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/.

Exemple :
\usepackage[perpage,symbol]{footnote}
%%%% fin exemple %%%%

* Le package 'camel' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/camel/, propose différents
styles de bibliographies renvoyant à des notes de bas de page.

* E. Domenjoud a également écrit le package 'footbib',
disponible sur CTAN, qui permet de faire cela.
Eric.Domenjoud@loria.fr.

# 15.5 # Comment faire référence à un document ?
------------------------------------------------
Il suffit d'utiliser la commande \cite avec en paramètre la clé
du document (cf. paragraphe 15.1). La commande \cite peut
prendre un texte en option.

Exemple :
Voir~: \cite[chapitre 1]{cle}.
%%%% fin exemple %%%%

# 15.6 # Comment grouper des références multiples ?
---------------------------------------------------
* Le package 'cite' de D. Arseneau est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/. Il permet de trier
et de grouper les références multiples. Par exemple, il permet
automatiquement de générer [1-6] au lieu de lister [1, 2, 3, 4,
5, 6].

* Il existe également les packages 'mcite' et 'rangecite' (pour
LaTeX2.09) disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/mcite/ et dans
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/.

# 15.7 # Comment changer le titre de la bibliographie ?
-------------------------------------------------------
Suivant la classe de document que l'on utilise (article,
book, report, ...), il faut redéfinir :
\renewcommand{\bibname}{R\'ef\'erences}
ou
\renewcommand{\refname}{R\'ef\'erences}
dans le préambule.

Remarque : avec certains packages comme french, il faut placer
	   cette nouvelle définition de commande après le
	   \begin{document}.

# 15.8 # Comment changer le style de la bibliographie ?
-------------------------------------------------------
* Il existe un certain nombre de style par défaut (alpha,
plain, unsrt, abbrrv) que l'on peut appeler par la commande
\bibliographystyle{xxx} placée après la commande
\begin{document}.

Remarque : Certains styles comme plain, acm ou apalike trient
	   alphabétiquement les références d'une bibliographie
	   suivant le premier auteur de chaque référence.
	   D'autres comme alpha utilisent la première lettre du
	   nom de chacun des auteurs multiples.

* Il existe également le package 'custom-bib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/supported/custom-bib/ qui permet de
définir ses propres styles sans avoir à se plonger dans le
language BibTeX. Le programme est interactif.

* De même le package 'natbib' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/natbib. Il
permet entre autres de classer la bibliographie de plusieurs
façons différentes, notamment par ordre alphabétique pour les
auteurs, par l'année de parution, etc.

* Pour remplacer la numérotation [1] par 1., on peut utiliser la
commande :
\makeatletter
\renewcommand{\@biblabel}[1]{\quad #1.}
\makeatother

* Pour supprimer toute numérotation, il faut utiliser de la même
manière :
\makeatletter
\renewcommand{\@biblabel}[1]{}
\makeatother

* Le package 'easybib' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet par une syntaxe
simple de définir ses propres styles bibliographiques.

# 15.9 # Comment construire une bibliographie à partir de plusieurs fichiers .bib ?
-----------------------------------------------------------------------------------
Pour cela il existe le package 'biblist' de J. chrod, disponible
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/biblist/.

Exemple :
\documentclass[12pt]{article}
\usepackage{biblist}
\begin{document}
\nocite{*}
\bibliographystyle{plain}
\bibliography{bibfile1,bibfile2,...}
\end{document}
%%%% fin exemple %%%%

# 15.10 # Comment utiliser la commande \cite dans un \caption ?
---------------------------------------------------------------
On peut mettre la commande \cite dans un \caption à condition de
la protéger : \protect\cite.

# 15.11 # Comment référencer une thèse française ou un mémoire ?
----------------------------------------------------------------
Il faut définir de nouvelles références. Pour cela, copier le
fichier .bst dans un autre fichier .bst avec un nom différent
et rechercher PhD thesis puis remplacer par Thèse de doctorat.

Exemple :
FUNCTION {thesedoc}
{ output.bibitem
format.authors "author" output.check
new.block
format.btitle "title" output.check
new.block
"Th\`ese de Doctorat" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
%%%% fin exemple %%%%

Idem pour les mémoires de DEA :

FUNCTION {memdea}
{ output.bibitem
  format.authors "author" output.check
  new.block
  format.title "title" output.check
  new.block
  "M\'emoire de D.E.A." format.thesis.type output.nonnull
  school "school" output.check
  address output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

# 15.12 # Comment supprimer la virgule supplémentaire dans une liste d'auteurs ?
--------------------------------------------------------------------------------
Par défaut, dans une liste d'auteurs le "et" qui introduit le
dernier auteur est précédé d'une virgule. Pour la supprimer, il
faut modifier la fonction format.names dans un nouveau fichier
.bst de la manière suivante :

%%%% debut macro %%%%
FUNCTION {format.names}
{ 's :=3D
  #1 'nameptr :=3D
  s num.names$ 'numnames :=3D
  numnames 'namesleft :=3D
    { namesleft #0 > }
    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=3D
      nameptr #1 >
	{ namesleft #1 >
	    { ", " * t * }
	    { namesleft #2 >
		{ "," * }
		'skip$
	      if$
	      t "others" =3D
		{ " et~al." * }
		{ " and " * t * }
	      if$
	    }
	  if$
	}
	't
      if$
      nameptr #1 + 'nameptr :=3D
      namesleft #1 - 'namesleft :=3D
    }
  while$
}
%%%% fin macro %%%%

# 15.13 # Comment configurer la commande \cite ?
------------------------------------------------
* Le package 'cite' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/cite/ offre certaines
possibilités.

Exemple :
\usepackage{cite}
\renewcommand\citepunct{;\penalty999\ }
%%%% fin exemple %%%%

* Pour afficher une clé à la place du label [??] dans le cas où
LaTeX/BibTex ne trouve pas la clé spécifiée dans la
bibliographie, on peut utiliser la macro suivante :

%%%% debut macro %%%%
\def\@citex[#1]#2{%
 \let\@citea\@empty
 \@cite{\@for\@citeb:=#2\do
  {\@citea\def\@citea{,\penalty\@m\ }%
   \edef\@citeb{\expandafter\@firstofone\@citeb}%
   \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}
   \fi
%%%% Ligne originale %%%%
%     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
%%%% Ligne modifiée %%%%
   \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries \@citeb}%
     \G@refundefinedtrue
     \@latex@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\hbox{\csname b@\@citeb\endcsname}}}}{#1}}
%%%% fin macro %%%%

# 15.14 # Comment construire une liste d'auteurs ?
--------------------------------------------------
Pour séparer les éléments d'une liste d'auteurs, il faut
utiliser "and".

Exemple :
Dewitt, D.J. and Naughton, J.
%%%% fin exemple %%%%

# 15.15 # Comment spécifier un tri dans une bibliographie ?
-----------------------------------------------------------
Il existe l'outil BibTool disponible sur
ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex/utils/bibtool/ ou sur
http://www.aber.ac.uk/~dbt93/Downloads/bibtool/. BibTool est un
outil de manipulation de bases de données BibTeX et il permet en
particulier de spécifier différents ordres de tri pour une
bibliographie.

Exemples :
* bibtool -s file.bib -o the_new_bibtex_file.bib
pour trier suivant les auteurs et les titres
* bibtool -s -- 'sort.format={%d(year)}' file.bib -o
the_new_bibtex_file.bib
pour trier par ordre croissant des années de parution
* bibtool -s -- 'sort.format={%s($type)%N(author)}' gn-publ.bib
pour trier par classe de document et par auteur.

L'appel du fichier ainsi trié se fait alors par exemple par :
\documentclass{article}
\begin{document}
\nocite{*}
\bibliographystyle{unsrt}
\bibliography{the_new_bibtex_file}
\end{document}
%%%% fin exemple %%%%

# 15.16 # Comment référencer les pages contenant des citations ?
----------------------------------------------------------------
Il faut utiliser le package 'backref' disponible sur CTAN.

# 15.17 # Où trouver des styles de bibliographie ?
--------------------------------------------------
* Le package 'biblist' de J. Schrod offre différents styles de
bibliographie prédéfinis. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/biblist/.

* Le package 'apacite' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/biblio/bibtex/contrib/.

* Le package 'bbtbase' disponible sur CTAN propose des styles
bibliographiques de base.

* De nombreux autres styles sont disponibles sur CTAN.

# 15.18 # Comment faire des références croisées ?
-------------------------------------------------
Il faut utiliser le champ crossref de bibtex.

Exemple :
@InProceedings{contejean96rta,
  author =      "Evelyne Contejean and Claude March\'e",
  title =       "{CiME: Completion Modulo $E$}",
  crossref =    "rta96",
  pages =       "416--419",
  year =        1996,
  note =        "System Description",
  ftp =         "ftp://ftp.lri.fr/LRI/art/march/cime-rta96.ps.gz",
  abstract =    "http://www.lri.fr/~marche/cime-rta96.html"
}

@Proceedings{rta96,
  title         = "7th International Conference on ...",
  booktitle     = "7th International Conference on ...",
  editor        = "Harald Ganzinger",
  publisher     = SV,
  year          = 1996,
  month         = jul,
  address       = "New Brunswick, NJ, USA",
  series        = LNCS,
  volume        = 1103,
}
%%%% fin exemple %%%%

ATTENTION : l'ordre de déclaration @InProceedings/@Proceedings
	    dans le fichier .bib est important.

# 15.19 # Comment citer une URL ?
---------------------------------
* Le style harvard propose un champ URL. Il est disponible à :
http://www.arch.su.edu.au/~peterw/latex/harvard/ ou sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/harvard/.

* Le style bibliographique 'utphys', de J. Distler, disponible à
http://xxx.lanl.gov/hypertex/bibstyles/ ajoute le champ eprint à
toutes les entrées BibTeX classiques.

* On peut également utiliser la macro @MISC et mettre la
référence URL dans le champ note.

* M. Moreau propose la solution suivante :
J'ai recupéré le fichier falpha.bst auquel j'ai ajouté :

FUNCTION {format.url}
{ url empty$
    {"empty"}
    { url emphasize }
  if$
}

FUNCTION {onTheNet}
{ output.bibitem
  format.authors output
  format.title "title" output.check
  new.block
  institution "institution" output.check
  format.date output
  new.block
  format.url "url" output.check
  fin.entry
}

Autrement dit, si on peut avoir des documents de type onTheNet avec
pour entrée obligatoire : title, institution, url et entrée
optionnelle : author, year, month, note. L'URL est indiquée en
italique.

# 15.20 # Comment définir des initiales à deux lettres ?
--------------------------------------------------------
En français, les prénoms commencant par Ch, Ph, Th... ont pour
initiales leurs deux premières lettres (Ex : Philippe --> Ph.).
Pour forcer BibTeX à considérer ces groupes de lettres, il faut
utiliser : {\relax Ph}ilippe. BibTeX prend alors tout le groupe
{..} pour une lettre. La commande \relax est considérée comme
une commande d'accent qui est supprimée lors du tri
alphabétique. Elle est nécessaire car lorsqu'un groupe apparaît
dans un nom, BibTeX s'attend à trouver une commande d'accent
juste après l'accolade ouvrante.

# 15.21 # Comment conserver les majuscules dans les titres ?
------------------------------------------------------------
Il suffit de mettre les majuscules entres accolades.

# 15.22 # Comment changer l'espace entre les item ?
---------------------------------------------------
Il faut copier la définition de l'environnement thebibliography
qui se trouve dans le fichier de style de la classe utilisée
(par exemple article.cls pour un article) dans un fichier de
style (qui sera appelé via une commande \usepackage) ou dans le
préambule de votre document (entre \makeatletter, \makeatother).
Il faut ensuite remplacer \newenvironment par \renewenvironment
et modifier la définition en ajoutant \setlength{\itemsep}{0pt}
après \list.

# 15.23 # Comment réaliser des fiches de lecture ?
--------------------------------------------------
* S. O. Genaud (genaud@galaad.u-strasbg.fr) a écrit un petit
logiciel de gestion des références bibliographiques au format
BibTeX, sous la forme d'une interface graphique. La version
actuelle n'est peut être pas exempte de tout bug. Elle tourne
sur Linux, SunOS et Solaris avec la librairie xview.

Pour récupérer l'exécutable ou avoir plus d'informations :
http://icps.u-strasbg.fr/~genaud/FRM/

Le programme bibfrm permet de lire un fichier BibTeX ou de créer
un fichier de références bibliographiques au format BibTeX et
d'associer à chaque référence un résumé. L'interface graphique
permet de savoir immédiatement quels sont les champs optionnels
et obligatoires pour un type de document donné. Le logiciel
permet de parcourir les différentes références du fichier, de
faire une recherche sur une chaîne, de trier les références par
nom d'auteur, année ou type de document. Pour chaque référence,
un résumé peut être saisi dans l'éditeur de texte incorporé dans
l'interface. Ce résumé peut être envoyé par mail à une liste de
diffusion prédéfinie.

* Le package 'abstbook' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ permet de mettre en page des
catalogues de résumés.

# 15.24 # Comment utiliser la commande \cite dans un item ?
-----------------------------------------------------------
Pour utiliser la commande \cite dans l'item d'un environnement
description, il suffit de l'encadrer dans des accolades.

Exemple :
\item[{\cite[\S3.1]{Author1}}]
%%%% fin exemple %%%%

# 15.25 # Comment générer l'expression et al automatiquement ?
--------------------------------------------------------------
Voici une fonction "format.names" (tirée de plain.bst) où V. Henn
a rajouté quelques lignes pour mettre un et al pour les auteurs
de numéro supérieurs à 4. N'importe quel style biblio utilise une
fonction avec une syntaxe similaire, il n'y a qu'à insérer les
nouvelles lignes dans la fonction format.names (juste avant la
fin du while) du fichier biblio qui vous plaît et le tour est
joué...

%%%% debut macro %%%%
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  { namesleft #0 > }
  { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    nameptr #1 >
    { namesleft #1 >
      { ", " * t * }
      { numnames #2 >
          { "," * }
          'skip$
        if$
        t "others" =
          { " et~al." * }
          { " and " * t * }
        if$
      }
      if$
    }   % fin du "si nameptr > 1"
    't  % "si nameptr = 1"
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=

% ------------------------------
% si à ce stade on se retrouve avec des noms à placer et que
% le pointeur nameptr est égal à 4 alors il faut
% 1. ajouter un "et al."
% 2. ne pas prendre en compte les auteurs suivants : nameleft:=0
    nameptr #4 =  namesleft #0 >  and
    {  " \emph{et~al.}" *
       #0 'namesleft :=
    }
    'skip$
    if$
% fin des ajouts
% ------------------------------

  }
  while$ % tant qu'il reste des nom à placer
}
%%%% fin macro %%%%

--
Benjamin Bayart
bayartb@edgard.fdn.fr