summaryrefslogtreecommitdiff
path: root/help/LaTeX-FAQ-francaise/part3
blob: ff8ae0d91362ce873daec03d6906492afd3dde28 (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
Path: tempo.univ-lyon1.fr!univ-lyon1.fr!news.imp.ch!fr.clara.net!heighliner.fr.clara.net!maredsous.noc.fr.clara.net!victor.teaser.fr!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 7 a 11
Message-ID: <faq-fctt-p320010608133118@edgard.fdn.fr>
X-Posted-By: poste.sh version 1.1
From: bayartb@edgard.fdn.fr (Nono le robot)
Supersedes: <faq-fctt-p320010501143416@edgard.fdn.fr>
Expires: 08 Jul 2001 13:31:17 +0200
Followup-To: poster
Organization: French Data Network
Approved: bayartb@edgard.fdn.fr
Lines: 2477
Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23523 fr.usenet.reponses:20389

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

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]).
================================================================

================================================================
[7] GESTION DES TABLEAUX
================================================================

# 7.1 # Comment faire un tableau ?
----------------------------------
En mode texte, il faut utiliser l'environnement tabular. Chaque
colonne est ensuite décrite par r, l ou c pour obtenir une
colonne de texte justifié à droite, à gauche ou centré. Chaque
déclaration de colonne peut être délimitée par une séparation
verticale : | ou rien. Une ligne horizontale entre deux lignes
s'obtient par la commande \hline. Le contenu de chaque colonne
est séparé de celui de la suivante par le symbole &. Le
changement de ligne est obtenu par la commande \\.

Lorsque plusieurs colonnes adjacentes ont la même définition, on
peut grouper leurs déclarations avec la commande
*{nb_colonnes}{déclaration}

Exemple :
\begin{tabular}{|*{2}{c|}l r|}
   \hline
   une & deux & trois & quatre \\
   case centrée & encore centrée & à gauche & à droite \\
   \hline
\end{tabular}
%%%% fin exemple %%%%

# 7.2 # Comment gérer les tableaux de plus d'une page ?
-------------------------------------------------------
* Le package 'supertabular' permet de gérer automatiquement (ou
presque) les coupures de tableaux. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/supertabular/.
Il calcule la longueur du tableau à chaque \\ et vérifie si la
fin de page est atteinte. Si oui, il coupe le tableau. Les
commandes à utiliser sont :
+ \tablefirsthead{...} pour définir le contenu de la première
occurrence de la tête du tableau. Cette commande est optionnelle.
+ \tablehead{...} pour définir le contenu de la tête des
tableaux suivants.
+ \tabletail{...} définit le contenu de la ligne qui doit être
ajoutée avant une coupure
+ \tablelasttail{...} définit le contenu de la dernière ligne
du tableau. Cette commande est optionnelle.
+ \topcaption{...}, \bottomcaption{...} et \tablecaption{...}
permettent de nommer un tableau soit au début ou à la fin du
tableau. \tablecaption{...} est l'option par défaut.

Exemple :
\begin{center}
   \tablefirsthead{\hline  \multicolumn{1}{|c}{Nombre}
   & \multicolumn{1}{c}{Nombre$^2$}
   & Nombre$^4$
   & \multicolumn{1}{c|}{Nombre!} \\ \hline}
   \tablehead{\hline \multicolumn{4}{|l|}{\small\sl continued
   from previous page}\\
   \hline \multicolumn{1}{|c}{ Nombre}
   & \multicolumn{1}{c}{Nombre$^2$}
   & Nombre$^4$
   & \multicolumn{1}{c|}{Nombre!} \\ \hline}
   \tabletail{\hline\multicolumn{4}{|r|}{\small\sl Suite page
   suivante~\ldots}\\\hline} \tablelasttail{\hline}
   \bottomcaption{Fin.}
   \par
   \begin{supertabular}{| r@{\hspace{6.5mm}}|
      r@{\hspace{5.5mm}}| r | r|}
      1   &     1  &        1  &           1    \\
      2   &     4  &       16  &           2    \\
      3   &     9  &       81  &           6    \\
      4   &    16  &      256  &          24    \\
      5   &    25  &      625  &         120    \\
      6   &    36  &     1296  &         720    \\
      7   &    49  &     2401  &        5040    \\
      8   &    64  &     4096  &       40320    \\
      9   &    81  &     6561  &      362880    \\
      10  &   100  &    10000  &     3628800    \\
      11  &   121  &    14641  &    39916800    \\
      12  &   144  &    20736  &   479001600    \\
      13  &   169  &    28561  &  6.22702080E+9 \\
      14  &   196  &    38416  &  8.71782912E+10\\
      15  &   225  &    50625  &  1.30767437E+12\\
      16  &   256  &    65536  &  2.09227899E+13\\
      17  &   289  &    83521  &  3.55687428E+14\\
      18  &   324  &   104976  &  6.40237370E+15\\
      19  &   361  &   130321  &  1.21645100E+17\\
      20  &   400  &   160000  &  2.43290200E+18\\
      \hline
      1   &     1  &        1  &           1    \\
      2   &     4  &       16  &           2    \\
      3   &     9  &       81  &           6    \\
      4   &    16  &      256  &          24    \\
      5   &    25  &      625  &         120    \\
      6   &    36  &     1296  &         720    \\
      7   &    49  &     2401  &        5040    \\
      8   &    64  &     4096  &       40320    \\
      9   &    81  &     6561  &      362880    \\
      10  &   100  &    10000  &     3628800    \\
      11  &   121  &    14641  &    39916800    \\
      12  &   144  &    20736  &   479001600    \\
      13  &   169  &    28561  &  6.22702080E+9 \\
      14  &   196  &    38416  &  8.71782912E+10\\
      15  &   225  &    50625  &  1.30767437E+12\\
      16  &   256  &    65536  &  2.09227899E+13\\
      17  &   289  &    83521  &  3.55687428E+14\\
      18  &   324  &   104976  &  6.40237370E+15\\
      19  &   361  &   130321  &  1.21645100E+17\\
      20  &   400  &   160000  &  2.43290200E+18\\
      \hline
      1   &     1  &        1  &           1    \\
      2   &     4  &       16  &           2    \\
      3   &     9  &       81  &           6    \\
      4   &    16  &      256  &          24    \\
      5   &    25  &      625  &         120    \\
   \end{supertabular}
\end{center}
%%%% fin exemple %%%%

* Le package 'longtable', de D. Carlisle, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, fonctionne de la même
manière mais mieux et permet de définir une taille de tableau
commune sur toutes les pages. Les commandes associées à ce
package sont \endfirsthead, \endhead, \endfoot et \endlastfoot.

\begin{longtable}
   {|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|}
   \hline
   Premiere colonne & Deuxieme & Troisieme \endfirsthead
   \hline
   Premiere & Deuxieme & Troisieme \\
   \multicolumn{3}{|p{0.6666\linewidth}|}{Suite ... } \\
   \endhead
   \hline
   \multicolumn{3}{|p{0.6666\linewidth}|}{Suite page suivante}
   \\ \hline \endfoot \hline
   \multicolumn{3}{|p{0.6666\linewidth}|}{C'est fini} \\
   \hline
   \endlastfoot \hline
   1   &     1  &        1  \\
   2   &     4  &       16  \\
   3   &     9  &       81  \\
   1   &     1  &        1  \\
   2   &     4  &       16  \\
   3   &     9  &       81  \\
   1   &     1  &        1  \\
   2   &     4  &       16  \\
   3   &     9  &       81  \\
   1   &     1  &        1  \\
   2   &     4  &       16  \\
   3   &     9  &       81  \\
\end{longtable}

au lieu de faire des calculs de largeurs de colonne, on peut
aussi mettre un \setlongtables dans le préambule et déclarer
ses tableaux comme à l'habitude en \begin{longtable}{|c|c|c|}
et LaTeX se charge du reste. Dans ce cas, l'ajustement des
colonnes peut nécessiter plusieurs (jusqu'à trois) compilations
enchaînées.

* Le package 'ltxtable' de D. Carlisle, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/carlisle/ permet de
profiter des fonctionnalités de tabularx et de longtable.

# 7.3 # Comment modifier l'orientation d'un tableau ?
-----------------------------------------------------
* On peut utiliser la commande \rotatebox du package 'graphics'
de D. Carlisle. Ce package est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/.

Exemple :
\rotatebox{90}{
\begin{tabular}{|c|c|}
   \hline
    salut & coucou \\
   \hline
\end{tabular}
}
%%%% fin exemple %%%%

* Le style 'lscape' de D. Carlisle marche aussi avec
l'environnement longtable (du même).

* De même l'environnement sidewaystable du package 'rotating'
permet d'inclure des tableaux en mode landscape. Le sens de
rotation peut être changé par l'option counterclockwise.

Exemple :
\documentclass{report}
\usepackage[counterclockwise]{rotating}
\usepackage{french}
\pagestyle{empty}
\begin{document}
\rotatebox{90}{
\begin{tabular}{|c|c|}
   \hline
    vu & à voir \\
    de Latour & Van Gogh \\
   \hline
\end{tabular}
}
\end{document}
%%%% fin exemple %%%%

* Le package 'rotfloat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotfloat/ permet de gérer
la rotation des flottants.

# 7.4 # Comment nommer un tableau ?
-----------------------------------
Pour pouvoir associer une légende (\caption) à un tableau, il
suffit de l'encapsuler dans un environnement table.

Exemple :
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{|c|c|}
	 \hline
	 un & deux \\
	 \hline
	 trois & quatre \\
	 \hline
      \end{tabular}
      \caption{Nom du tableau. \label{table-nom}}
   \end{center}
\end{table}
%%%% fin exemple %%%%

# 7.5 # Comment modifier l'épaisseur des lignes d'un tableau ?
--------------------------------------------------------------
* Pour obtenir des lignes horizontales fines ou épaisses dans un
tableau, il faut utiliser les commandes
\setlength{\doublerulesep}{\arrayrulewidth} dans l'entête du
document puis dans le tableau
\\\hline         pour une ligne fine
\\\hline\hline   pour une ligne épaisse

* Autre solution : la macro de A. Kessi (alain.kessi@psi.ch)

%%%% debut macro %%%%
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%%%% fin macro %%%%

Exemple :
\begin{tabular}{|l|r|}    \hline
     premier &   1     \\ \hline
     second  &   2     \\ \hlinewd{5pt}
     total   &   3     \\ \hline
\end{tabular}
%%%% fin exemple %%%%

Même chose pour les lignes verticales.
%%%% debut macro %%%%
  \begin{tabular}{@{\,\vrule width 5pt\,}c|c|}
%%%% fin macro %%%%

* Le package 'easytable' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ propose différents
styles de lignes de séparation des cellules d'un tableau.

# 7.6 # Comment griser des cellules d'un tableau ?
--------------------------------------------------
* Le package 'colortab' disponible par ftp sur
ftp://ftp.princeton.edu/pub/tvz/ ou sur
ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/generic/ (accompagné de sa doc dans
ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/origdoc/) permet de griser ou de mettre en
couleur certaines parties de tableau.

Remarque : colortab n'est pas actuellement maintenu par Van
	   Zandt et l'extension longtable, avec laquelle il
	   était compatible, ne fonctionne plus.
AL: c'est toujours vrai, ça ?

* Il est possible également d'utiliser le package 'shade'
disponible sur {macros/generic/}.

* D. Carlisle propose également le package 'colortbl' sur
ftp://ftp.fdn.org/pub/CTAN/macros/contrib/supported/carlisle/. Ce package permet
non seulement de gérer de la couleur mais il est en outre
compatible avec le package 'longtable'. Il nécessite les
packages 'array' et 'color'.

Exemple :
\begin{tabular}{|>{\columncolor[gray]{.8}}l%
|>{\color{white}\columncolor[gray]{.2}}r|}
   \hline
   UN & DEUX \\
   TROIS & QUATRE \\
   \hline
\end{tabular}
%%%% fin exemple %%%%

# 7.7 # Comment changer la fonte d'une colonne ?
------------------------------------------------
Pour préciser une fonte spécifique dans une colonne d'un
tableau, on peut utiliser le package 'array'. Ce dernier est
disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/.

Exemple :
\begin{tabular}{>{\bfseries}l >{\slshape}r c}
     gras & penché & normal \\
\end{tabular}
%%%% fin exemple %%%%

# 7.8 # Comment créer des notes de bas de page dans un tableau ?
----------------------------------------------------------------
* Il suffit d'encapsuler le tableau dans un environnement
minipage et pour supprimer le trait de séparation des notes de
bas de page de déclarer : \renewcommand{\footnoterule}{}.

Exemple :
\begin{minipage}[t]{5cm}
   \renewcommand{\footnoterule}{} % permet de supprimer le
   				  % trait de séparation
   \begin{tabular}{|c|c|}
      \hline
      Air & Terre\footnote{Feu}\\
      \hline
   \end{tabular}
\end{minipage}
%%%% fin exemple %%%%

Remarque : dans ce cas, la note apparaît juste après le tableau,
	   dans l'environnement minipage.

* On peut également utiliser :
\footnote[cptr]{texte.}
toujours dans un environnement minipage, et gérer soi-même ses
compteurs (cptr est un entier alors que les marques qui
apparaissent dans le tableau sont les lettres de l'alphabet).

Remarque : ici aussi la note apparaît en dessous du tableau.

* Il existe également deux commandes spécifiques \footnotemark[]
et \footnotetext[]{}. \footnotemark permet de gérer le compteur
de notes et \footnotetext permet d'insérer le texte
correspondant en bas de page.

Exemple :
\begin{tabular}{|c|c|}
   \hline
   donnee1\footnotemark[1] & donnee2\footnotemark[2] \\
   \hline
\end{tabular}
\footnotetext[1]{Note associ\'ee \`a la donn\'ee 1.}
\footnotetext[2]{Note associ\'ee \`a la donn\'ee 2.}
%%%% fin exemple %%%%

Remarque : ici les notes apparaissent bien dans le bas de page.

# 7.9 # Comment écrire un texte sur plusieurs colonnes ?
--------------------------------------------------------
Il faut utiliser la commande :
\multicolumn{nb_colonnes}{alignement}{Texte}

Exemple :
\begin{tabular}[b]{|l|c|}
   \hline
   \multicolumn{2}{|c|}{Texte sur 2 colonnes} \\
   \hline \hline
   donnée1 & donnée2 \\
   A & B \\
   \hline
\end{tabular}
%%%% fin exemple %%%%

Remarque : dans le cas où le nombre de colonnes à couvrir est
	   égal à 1, cette commande peut être utilisée pour
	   modifier l'alignement (c, l, r, |, etc) d'une
	   cellule.

# 7.10 # Comment passer certaines cellules en reverse vidéo ?
-------------------------------------------------------------
Le package 'color' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/ permet entre autres de le
faire. En fait, il permet de définir des couleurs de texte et de
fond de page.

Exemples :
\tabcolsep=30pt
\begin{tabular}{|c|c|c|}
\hline
1&&\\
&\colorbox{black}{\strut{\color{white}Coucou}}&\\
&&2\\
\hline
\end{tabular}

ou (\LaTeXe)

\newlength\Coucoulength
\settowidth\Coucoulength{Coucou Coucou Coucou}

\begin{tabular}{|c|c|c|}
\hline
1&Coucou Coucou Coucou &\\
&\colorbox{black}{\makebox[\Coucoulength][c]{\color{white}Coucou}}
&\\
&&2\\
\hline
\end{tabular}
%%%% fin exemple %%%%

# 7.11 # Comment fixer la largeur d'une colonne ?
-------------------------------------------------
* p{largeur} dans les descripteurs de colonne permet de fixer la
largeur d'une colonne. Dans ce cas par défaut le texte est
justifié à gauche. Les commandes \centering et \raggedright
permettent respectivement de le centrer ou de le justifier à
droite.

Exemple :
\begin{center}
   \begin{tabular}{|c|l|p{4cm}|r|}
      \hline
      centré & à gauche & largeur fixe & à droite \\
      bla bla bla & bla bla bla &  bla bla bla &  bla bla bla \\
      \hline
   \end{tabular}
\end{center}
%%%% fin exemple %%%%

* Avec le package 'array', disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, il faut utiliser l'option
m{largeur}.

* Le package 'easytable' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement d'écrire
des tableaux dont les colonnes ont une largeur fixe.

# 7.12 # Comment écrire un texte sur plusieurs lignes ?
-------------------------------------------------------
Il existe le package 'multirow' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/. Il permet d'écrire un texte à
cheval sur deux lignes.

Exemple :
\begin{table}[htbp]
   \begin{center}
      \begin{tabular}{|c|c||c|c|}
	 \hline
	 \multirow{2}{0.5cm}{k} & \multirow{2}{0.5cm}{$p_G$} &
	 \multicolumn{2}{c|}{test} \\
	 \cline{3-4}
	 & & DADWRD & RARWRD \\
	 \hline
	 2 & $1$ & 90 n & 228 n \\
	 3 & $p_d$ & 202 n & 449 n \\
	 4 & $p_d^2$ & 424 n & 891 n \\
	 5 & $p_d^3$ & 866 n  & 1774 n \\
	 \hline
      \end{tabular}
      \caption{Nombre d'opération par cellule des tests
      pseudo-aléatoires de fautes de type k-coupling.
      \label{table-compar}}
   \end{center}
\end{table}
%%%% fin exemple %%%%

# 7.13 # Comment diviser une cellule par une diagonale ?
--------------------------------------------------------
Il faut utiliser le package 'slashbox' disponible par ftp sur
ftp://ftp.tohoku.ac.jp/pub/TeX/latex-styles/bear_collections/style-files/.

Exemple (de la doc) :
\begin{tabular}{|l||*{5}{c|}}\hline
\backslashbox{Room}{Date}
&\makebox[3em]{5/31}&\makebox[3em]{6/1}&\makebox[3em]{6/2}
&\makebox[3em]{6/3}&\makebox[3em]{6/4}\\\hline\hline
Meeting Room &&&&&\\\hline
Auditorium &&&&&\\\hline
Seminar Room &&&&&\\\hline
\end{tabular}
%%%% fin exemple %%%%

# 7.14 # Comment définir une colonne en mode mathématique dans un tableau ?
---------------------------------------------------------------------------
Avec le package 'array' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, il suffit de déclarer
\begin{tabular}{>{$}c<{$}cc} pour avoir une colonne en mode
mathématique et deux colonnes de texte.

# 7.15 # Comment modifier le nombre de tableaux par page ?
----------------------------------------------------------
cf. question 8.4.

# 7.16 # Comment mettre deux tableaux côte à côte ?
---------------------------------------------------
cf. question 8.3.

# 7.17 # Comment définir un séparateur de colonne ?
---------------------------------------------------
@{symbole} entre deux descripteurs de colonnes permet de définir
"symbole" comme séparateur de colonnes. Cela remplace |.

Exemple :
\begin{tabular}{|l @{\textbf{ est }} l|}
   \hline
   Le lion & féroce. \\
   Le chien & fidèle. \\
   \hline
\end{tabular}
%%%% fin exemple %%%%

# 7.18 # Comment obtenir des lignes partielles dans un tableau ?
----------------------------------------------------------------
La commande \cline{ColonneDebut-ColonneFin} est faite pour ça.

Exemple :
\begin{center}
   \begin{tabular}{|c|c|c||c|c|c|c|c|c|c||c|}
      \hline \hline
      a & b & c & d & e & f & g & h & i & j & k \\
      \cline{1-4} \cline{6-6} \cline{8-9}
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\
      \hline
   \end{tabular}
\end{center}
%%%% fin exemple %%%%

# 7.19 # Comment éviter que du texte de grande taille n'atteigne le cadre des cellules ?
----------------------------------------------------------------------------------------
* Il faut pour cela utiliser la commande \strut qui simule un
objet vertical invisible,  après le changement de fonte.

Exemple :
\begin{tabular}{|l|}
   \hline
   {\large  HELLO} dfg \\
   \hline
\end{tabular}
\begin{tabular}{|l|}
   \hline
   {\large\strut  HELLO} dfg \\
   \hline
\end{tabular}
%%%% fin exemple %%%%

* Il existe l'équivalent mathématique : \mathstrut.

* On peut également agrandir la hauteur des lignes avec la
commande \arraystretch :
 \renewcommand{\arraystretch}{1.5}

# 7.20 # Comment fixer la largeur d'un tableau ?
------------------------------------------------
* Le package 'tabularx' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ permet de définir une largeur
de tableau.

* Le package 'easytable' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement de
fixer des largeur de colonnes ou de lignes.

# 7.21 # Comment tracer des traits discontinus ?
------------------------------------------------
Il faut utiliser les packages 'hvdashln' et 'array'.

Exemple :
dans le préambule du document :
\usepackage{hvdashln,array}
\setlength{\hdashlinewidth}{.5pt}
\setlength{\hdashlinegap}{2pt}

dans le texte :
\[
\left[ \begin{array}{ccc@{}>{\vdashline}c}
        a_1 & b_1 & c_1 & d_1 \\
        a_2 & b_2 & c_2 & d_2 \\
        a_3 & b_3 & c_3 & d_3 \\
        a_4 & b_4 & c_4 & d_4
\end{array} \right]
\]
%%%% fin exemple %%%%

# 7.22 # Comment fixer la taille et justifier une colonne ?
-----------------------------------------------------------
Le problème qui se pose lorsqu'on utilise :
\begin{tabular}{|>{\raggedright}p{0.33\textwidth}<{}|
   >{\raggedleft}p{0.66\textwidth}<{}|}
   A& \\
   B&C \\
\end{tabular}
vient du fait que \\ est redéfini par tabular et les commandes
ragged. On ne peut donc plus utiliser \\ dans un texte.

Il existe différentes solutions pour pallier ce problème :
* on peut corriger ce problème en incluant les lignes suivantes
dans le préambule du document :
\makeatletter
\newtoks\fintableau
\let\fintableau\@arraycr
\makeatother

* avec le package 'array', il suffit d'utiliser
la commande \tabularnewline[<vertical space>] à la place de la
commande \\.

Exemple :
\begin{tabular}{|r|r|>{\raggedleft}m{190pt}|}
   \hline
   col1 & col 2 & col3 \tabularnewline
   une & deux & trois \\ quatre \tabularnewline
   \hline
\end{tabular}
%%%% fin exemple %%%%

* on peut également inclure la nouvelle commande suivante dans
le préambule du document :
\newcommand\PreserveBackSlash[1]{\let\temp=\\#1\let\\=\temp}
puis en utilisant :
\begin{tabular}{|r|r|>{\PreserveBackSlash\raggedleft}m{190pt}|}

# 7.23 # Comment faire une liste de tableaux ?
----------------------------------------------
Il suffit d'inclure la commande \listoftables à l'endroit où
l'on veut inclure cette liste. Sachant que cette liste fait
référence aux pages où apparaissent les tableaux, il faut
enchaîner au moins deux compilations LaTeX pour que toutes les
références soient exactes.

================================================================
[8] GESTION DES FIGURES
================================================================

# 8.1 # Comment inclure une figure ?
------------------------------------
Remarque : A. K. Goel a écrit un long document concernant les
	   problèmes de gestion de figures et d'images dans
	   LaTeX. Ce dernier est disponible par ftp anonyme sur
	   ftp://math.uwaterloo.ca/pub/figsInLatex.ps.Z ou sur
	   ftp://ftp.fdn.org/pub/CTAN/info/figsinltx.ps

	   De même, K. Reckdahl a écrit "Using EPS Graphics in
	   LaTeX2e Documents". Ce document est disponible sur
	   ftp://ftp.fdn.org/pub/CTAN/info/epslatex.ps.

* Sous LaTeX2e, il faut utiliser l'un des packages :
'graphics' ou 'graphicx' et la commande \includegraphics. Cette
commande accepte des options telles que dvips ou oztex (cf.
documentation pour plus de détails).
Le package 'graphicx' a pour majeure différence avec 'graphics'
d'en simplifier les commandes. Ces packages sont disponibles sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. Pour plus de
détails, consulter http://www.loria.fr/services/tex/packages.html.

Exemple :
\begin{figure}[htbp]
   \begin{center}
      \includegraphics{images/fig1.ps}
   \end{center}
   \caption{\footnotesize blah blah blah}
\end{figure}
%%%% fin exemple %%%%

La commande \includegraphics du package 'graphicx' peut prendre
comme paramètres angle, width, height, scale, clip et draft.

Exemple :
\includegraphics[width=\linewidth, draft=true]{figure.eps}
%%%% fin exemple %%%%

* Sous LaTeX2.09, pour pouvoir appeler un fichier postscript,
il suffit de mettre l'option epsf dans le \documentstyle.
La figure peut ensuite être appelée par la commande
\epsfbox{nom-figure.(e)ps}

Une jolie façon d'inclure une figure dans un source LaTeX2.09
est d'utiliser la macro :

\begin{figure}[htbp]
   \centerline{\epsfxsize=10cm \epsfbox{nom-figure.format}}
   \caption{.  \label{fig-}}
\end{figure}

* Il y a aussi le package 'epsfig' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/ (LaTeX2.09 mais utilisable
avec LaTeX2e).

Exemple :
\begin{figure}[p]
   \centerline{\epsfig{file=nom_figure.eps,
   width=largeur,
   height=hauteur}}
   \caption{Titre.}
   \label{nom_label}
\end{figure}
%%%% fin exemple %%%%

* Une figure au format tex picture, tex picture + epic, tex
picture + eepic, ... peut être appelée directement par une
commande \input. En outre, si vous utilisez un format epic ou
eepic, il faut penser à rajouter 'epic' ou 'eepic' à la ligne
documentstyle ou d'inclure les packages 'epic' ou 'eepic'.

# 8.2 # Comment nommer une figure ?
-----------------------------------
C'est la commande \caption qui permet de faire cela. Par défaut
le titre de la figure apparaîtra en dessous. Cf exemples
ci-dessus. Pour que le titre apparaisse au-dessus, il faut
redéfinir les longueurs suivantes.

Exemple :
\setlength\abovecaptionskip{0pt}
\setlength\belowcaptionskip{10pt}
puis appeler :
\begin{figure}
\caption{... ... ...}
\includegraphics{dessin.eps}
\end{figure}
%%%% fin exemple %%%%

# 8.3 # Comment placer des figures côte à côte ?
------------------------------------------------
* Sous LaTeX2e, il faut utiliser le package 'graphics' ou
'graphicx' disponibles sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/.

Exemples :
\begin{figure}
   \begin{minipage}[c]{.46\linewidth}
      \includegraphics{figure1.format}
   \end{minipage} \hfill
   \begin{minipage}[c]{.46\linewidth}
      \includegraphics{figure2.format}
   \end{minipage}
\end{figure}

\begin{figure}
\includegraphics[width=5cm]{fig1.eps}\hfill
\includegraphics[width=5cm]{fig2.eps}
\caption{Titre commun}\label{fig:somefiglabel}
\end{figure}
%%%% fin exemple %%%%

* Une autre solution consiste à mettre chaque figure dans une
case d'un tableau.

Exemple (avec le package graphics ou graphicx) :
\begin{tabular}{cc}
   \includegraphics{figure1.eps} &
   \includegraphics{figure2.eps} \\
\end{tabular}
%%%% fin exemple %%%%

* LaTeX2.09. Pour mettre des figures côte à côte, il suffit
d'encapsuler leur appel dans des minipages.

Exemples :
+ avec le package 'epsf'
\begin{minipage}[t]{.46\linewidth}
   \center\epsfxsize= 5cm \epsfbox{fig1.eps}
\end{minipage} % ne pas sauter de ligne
\begin{minipage}[t]{.46\linewidth}
   \center\epsfxsize= 5cm \epsfbox{fig2.eps}
\end{minipage}

ou si l'on veut attacher des titres aux figures :

+ avec le package 'epsfig'
\begin{figure}
 \begin{minipage}[b]{.46\linewidth}
  \centering\epsfig{figure=fig1.ps,width=\linewidth}
  \caption{premiere figure \label{fig1}}
 \end{minipage} \hfill
 \begin{minipage}[b]{.46\linewidth}
  \centering\epsfig{figure=fig2.ps,width=\linewidth}
  \caption{deuxieme figure \label{fig2}}
 \end{minipage}
\end{figure}
%%%% fin exemple %%%%

* Si l'on veut un seul titre pour plusieurs figures voir le
package 'subfigure' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/subfigure/.

Exemple :
\begin{figure}[ht]
\begin{center}
  \subfigure[I]{\epsfig{figure=st1.ps,width=6.58cm}}\quad
  \subfigure[II]{\epsfig{figure=st2.ps,width=5.0cm}}\\
  \subfigure[III]{\epsfig{figure=st3.ps,width=5.0cm}}
\end{center}
\caption{Impermeable surface treatments}
\label{fig:inf}
\end{figure}
%%%% fin exemple %%%%

* Une autre possibilité pour obtenir un titre par figure est
d'utiliser le package 'epslatex' disponible sur
ftp://ftp.fdn.org/pub/CTAN/info/.

# 8.4 # Comment modifier le nombre de figures par page ?
--------------------------------------------------------
En fait, on ne peut agir que globalement sur le nombre de
flottants autorisé par page. Il n'y a pas de sélection
figure/tables/....

Il arrive fréquemment que lorsqu'un flottant dépasse 60% d'une
page, LaTeX préfère changer de page plutôt que d'utiliser les
40% de l'espace restant.

La commande \floatpagefraction permet de redéfinir l'espace
minimum que peuvent occuper des flottants. Cela permet de
limiter le "blanc" sur une page contenant des flottants.

Exemple :
\renewcommand{\floatpagefraction}{.9}
utilisée avec la commande :
\renewcommand{\textfraction}{.1}
permet de dire que le texte peut n'occuper que 10% d'une
page, et donc que des flottants peuvent occuper les 90% restant.
%%%% fin exemple %%%%

Il y a d'autres paramètres intéressants :
\setcounter{totalnumber}{4}
qui détermine le nombre de flottants autorisés par page,
\renewcommand{\topfraction}{.8} et
\renewcommand{\bottomfraction}{.8}
qui indiquent la fraction maximum du haut ou du bas de la page
que peuvent occuper des flottants.

Remarque : Il est recommandé de ne jamais mettre 100% comme
	   paramètre.

# 8.5 # Comment superposer du texte sur des figures ?
-----------------------------------------------------
* PSFrag (disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/psfrag/) donne cette possibilité.
La solution consiste en fait à :
1+ faire le graphique .ps AVEC des textes et légendes MAIS
approximatifs
2+ utiliser PSfrag pour qu'il remplace les textes approximatifs
par des textes << LaTeX >>
(3-) l'écriture << par dessus >> (le remplacement en fait) est
fait par PSfrag.
Pour plus de détails, consulter le document "Using EPS Graphics
in LaTeX2e Documents" disponible sur ftp://ftp.fdn.org/pub/CTAN/info/epslatex.ps.

* On peut également générer une courbe dans un fichier .eps,
qui peux ensuite être inclu dans un environnement "picture",
dans lequel il est ensuite possible d'ajouter du texte avec des
\put. Cela demande pas mal de mises au point.

Exemple :
\setlength\unitlength{1cm}
\begin{picture}(10,10)
\put(0,0){\includegraphics{mondessin.eps}}
\put(10,10){Mon commentaire \LaTeX{} avec des $maths$}
\end{picture}
%%%% fin exemple %%%%

Cette technique permet de conserver la puissance de LaTeX et
d'avoir une typographie homogène mais elle a l'inconvenient
d'être assez lourde.

* PSTricks est un ensemble de macros TeX, disponible sur
ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/, qui permet également de faire cela. Il
nécessite un gros investissement (il y a une centaine de pages
de documentation). Cependant, si l'on se limite à des commandes
simples (comme par exemple écrire un programme en C qui trace le
dessin, avec simplement des points, des droites, et un peu de
texte), la liste sommaire des commandes suffit (6 pages).

* Xfig offre une autre solution. Après avoir inclu un fichier
postscript généré par un autre programme, on peut rajouter
du texte ou des commandes LaTeX dessus.
xfig -sp
Sauvegarder comme "combined PS/LaTeX"

* Metapost est un langage graphique très proche de Metafont,
mais qui génère du postscript. Il permet de produire des figures
avec du texte et est bien interfacé avec TeX (Knuth
l'utilise). Metapost est integré dans web2c 7.0. Metapost a
déjà été porté sous MS-DOS et Mac (CMacTeX). Pour plus
d'informations, vous pouvez consulter la page de D. Roegel :
http://www.loria.fr/~roegel/metapost.html.

* pstoedit permet également de visualiser des fichiers
postscript (sans bitmaps) et d'ajouter du texte ou des figures
par dessus.

# 8.6 # Comment réaliser des captures d'écran ?
-----------------------------------------------
* Un outil très utile pour effectuer des captures d'écran sous
Unix est xv. xv est un éditeur d'images écrit par  J. Bradley
disponible sous unix. xv est capable de gérer différents
formats d'image (encodage PS, GIF, JPEG, TIFF,...). Il
permet de visualiser des images et aussi de réaliser des
captures d'écran, soit partielles définies à la souris, soit
par fenêtre X Window. Il suffit ensuite de sauvegarder la
saisie d'écran de xv en format postscript et de l'appeler sous
LaTeX.

xv est accessible par ftp sur ftp://ftp.lip6.fr/.

* Sur PC il y a pcxdump disponible sur
http://micros.hensa.ac.uk/. Le package 'verbtext', disponible sur
CTAN, permet ensuite d'appeler la saisie réalisée.

* De même, le package 'scrdumps' et l'utilitaire scr2tex.exe
sous DOS permettent d'inclure des saisies d'écran dans un
document LaTeX.

# 8.7 # Comment tracer une courbe ?
-----------------------------------
* Xgraphic est un outil de tracé de courbes simple
d'utilisation (les options sont accessibles en interactif) mais
limité aux courbes 2D. Il est disponible avec une doc française
à http://blanche.polytechnique.fr/ et
ftp://barbes.polytechnique.fr/pub/Xgraphic/.

* xmgr marche également très bien.

* GNUplot est disponible sous Unix, sous Dos, sous Windows et
sous macOS
(http://www.ee.gatech.edu/users/schooley/gnuplot.html). Il
possède une sortie LaTeX (eepic). Il permet de tracer des
courbes (2D et 3D) à partir de valeurs ou d'une fonction. Les
formats de sortie sont LaTeX ou postscript.

En outre, sous Unix, il est possible de récupérer des fichiers
GNUplot exportés par
	set terminal fig
	set output "graph.fig"
puis de les modifier.

La FAQ GNUplot est disponible à
http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/.

* Xy-pic compatible plain TeX, LaTeX2.09 et LaTeX2e permet de
tracer des courbes, de réaliser des diagrammes commutatifs, des
automates, et plein d'autres choses. Pour plus de
renseignements, consulter :
ftp://ftp.mpce.mq.edu.au/pub/maths/TeX/ ou
http://www.mpce.mq.edu.au/~ross/Xy-pic.html ou
http://www.brics.dk/~krisrose/Xy-pic.html
Le package 'xypic' est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/generic/diagrams/xypic/.

* Sur PC grapher et surfer permettent également de tracer des
courbes et des surfaces (ils sont indépendants de LaTeX, mais
une saisie d'écran est toujours possible).

* Le package 'curves' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/curves/ permet de définir des
courbes dans l'environnement picture.

* Mathematica est également utilisable pour tracer des courbes
2D et 3D.

# 8.8 # Comment est géré le positionnement des figures ?
--------------------------------------------------------
Comme mentionné précédemment (8.1), il existe différentes
options de placement des figures. Les plus classiques sont
\begin{figure}[htbp] pour laisser à LaTeX la possibilité de
placer les figures suivant ses critères de beauté. (h) impose
si possible le placement de la figure à l'appel de la macro
ci-dessus. Sinon la figure sera placée en haut de la page
suivante (t) ou en bas (b), voire sur une page seule (p).

En revanche, pour forcer (dans la mesure du possible) LaTeX à
placer une figure là où elle a été appelée, il faut utiliser le
package 'float', de A. Lingnau, (\usepackage{float}) et l'option
H (\begin{figure}[H]). Ce package permet de définir un tel
placement par défaut via la commande \floatplacement{figure}{H}.
Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/float/. Voir la question 6.34
pour un exemple d'utilisation de ce package.

De même l'utilisation du caractère ! devant une option de
placement permet de forcer LaTeX2e à effectuer son placement au
plus tôt (suivant l'option choisie).

Remarque (D.Barbier) : si un flottant ne peut pas être placé
	avec les paramètres indiqués , celui-ci et tous les
	flottants qui viennent après seront mis à la fin du
	chapitre (en fait, ils seront insérés grâce à la
	commande \clearpage).

Le package 'placeins' de D. Arsenau permet de mettre des
garde-fous dans le texte. Par exemple, lorsqu'on place une
figure en dur avec une commande du style :
%%%% debut macro %%%%
\makeatletter
\newenvironment{figureH}{\begin{center}
   \newcommand{\@captype}{figure}}{\end{center}}
\makeatother
%%%% fin macro %%%%
l'utilisation de \FloatBarrier juste avant, permet de vider le
buffer de flottants actuellement stockés.

# 8.9 # Comment placer une légende à côté d'une figure ?
--------------------------------------------------------
* Pour placer une légende à côté d'une figure, il faut utiliser
l'environnement minipage.

Exemple (extrait du cahier GUTenberg 22 pour l'article sur
esperluette) :
+ mettre dans le préambule :

%%%% debut macro %%%%
\newlength\jataille
\newcommand{\figgauche}[3]%
{\jataille=\textwidth\advance\jataille by -#1
\advance\jataille by -.5cm
\begin{minipage}[c]{#1}
   \includegraphics[width=#1]{#2}
\end{minipage}\hfill
\begin{minipage}[c]{\jataille}
   \footnotesize #3 \normalsize
\end{minipage}}
%%%% fin macro %%%%

+ puis utiliser :
\figgauche{5cm}{totor.eps}{Titre.}

* On peut également utiliser des parbox.

Exemple :
\begin{figure}
\parbox{7cm}{...figure}\parbox{7cm}{\caption{---}}
\end{figure}
%%%% fin exemple %%%%

# 8.10 # Comment insérer des figures dans multicol ?
----------------------------------------------------

On ne peut insérer que des figures de la largeur de la page,
et pas de la lageur d'une colonne, donc des figure* (resp.
table*). Un flottant n'apparaîtra pas sur la page où il
est defini, mais, au mieux, sur la page d'après. Le positionnement
[h] n'a donc pas de sens.

Exemple (avec le package 'graphicx') :
\begin{figure*}
    \includegraphics[width=3cm]{totor.eps}
\end{figure*}
%%%% fin exemple %%%%

Remarque : dans ce cas la gestion de \caption semble ne pas être
	   correcte.

# 8.11 # Comment faire apparaître toutes les figures en fin de document ?
-------------------------------------------------------------------------
Le package 'endfloat', disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/endfloat/, permet de
reporter toutes les figures en fin de document.

ATTENTION : les classes AMS ne définissent pas les
	    environnements figure* et table*. En
	    outre, le package 'endfloat' a le mauvais goût de
	    supposer qu'ils sont définis. Un remède est de
	    faire :
	    \documentclass[a4paper,11pt]{amsart}
	    \newenvironment{figure*}{\figure}{\endfigure}
	    \usepackage{endfloat}

# 8.12 # Comment insérer des images Mathematica ?
-------------------------------------------------
* Sous Unix ou sous DOS, il faut, à partir de Mathematica,
demander : Display["machin",truc]
qui sauve l'image truc dans le fichier machin dans un Postscript
embryonnaire, puis
!psfix -epsf machin > machin.eps
et on a un fichier EPS comme il faut.

* Sous Windows, après avoir sélectionné l'image désirée, il
faut, dans le menu "Fichier" de Mathematica, "Exporter" vers un
format qui peut être .EPS (PostScript Encapsulé). L'appel de ce
fichier .eps sous LaTeX se fait alors de manière classique (cf.
paragraphe 8.1).

Il est également possible d'extraire par copier/coller l'image
(.WMF) et de l'envoyer vers Ghostscript pour Windows, et 
là-dedans de l'enregistrer dans un fichier PostScript. L'avantage
de cette solution est qu'elle peut permettre de retravailler
l'image (avant collage dans GS au moyen de CorelDraw, par
exemple).

A noter que Y&Y TeX system supporte les images WMF (Windows
MetaFile) aussi bien que les TIFF ou EPSF. Mathematica est l'un
des seuls logiciels pour Windows qui utilise un format WMF
plutôt que TIFF.

* Dernière solution (multi-système) : se servir du notebook
intitulé "GnuDisplay.m"(disponible sur MathSource chez Wolfram).
Celui-ci permet d'exporter une image Mathematica en image
GNUplot. Dans GNUplot, on peut alors exporter une image de deux
façons :
+ vers un fichier ".mf" qui contient l'image sous forme de
fonte. Avantage : on utilise MetaFont pour générer la fonte qui
contiendra l'image et l'insérer dans le texte, ce qui permet sa
prévisualisation immédiate par "dviscr", sans passer par "dvips"
puis GhostScript ou GhostView ;
+ vers un fichier au format LaTeX eepic, que l'on insère
facilement par la suite (commande \special).

# 8.13 # Comment modifier la taille d'une bounding box ?
--------------------------------------------------------
En format eps (encapsulated postscript), la `bounding box`
permet de préciser la taille d'une image. La syntaxe est la
suivante :
%%BoundingBox: 0 0 507 257
Les coordonnées correspondent dans l'ordre :
- coordonnée horizontale du point en bas à gauche de la figure;
- coordonnée verticale du point en bas à gauche;
- coordonnée horizontale du point en haut à droite;
- coordonnée verticale du point en haut à droite.
Les coordonnées verticales étant prises à partir du bas, et
celles horizontales à partir de la gauche.

De plus ces coordonnées sont exprimées en points PostScript,
c'est-à-dire en soixante-douzième de pouce, i.e.:
1 pt PS = 1/72 pouce = 2.54/72 cm.

Malheureusement, il arrive parfois que la taille de la bounding
box soit supérieure à celle de la taille réelle du dessin
qu'elle contient (il n'y a pas de mise à l'échelle). Le package
'boxedepsf', de L. Siebenmann, offre les commandes \Trim qui
permettent de résoudre le probleme.

A. J. Carr a adapté ce package à LaTeX2e. Son package s'appelle
'boxedeps'. Ce dernier est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/generic/boxed/ ou sur
ftp://matups.math.u-psud.fr/pub/TeX/Graphics.dir/ArtIntegration.dir/boxedeps.dir/.

Exemple :
\TrimTop{15pct}\BoxedEPSF{toto}
avec pct = pourcentage de la hauteur.
%%%% fin exemple %%%%

# 8.14 # Comment obtenir une figure avec un titre non numéroté ?
----------------------------------------------------------------
Il faut utiliser la commande \unnumberedcaption dont voici la
définition :
%%%% debut macro %%%%
\makeatletter    % <=== in a .sty file delete this

\newcommand{\unnumberedcaption}%
	{\@dblarg{\@unnumberedcaption\@captype}}

\newcommand{\@unnumberedcaption}{}% undefined yet
\long\def\@unnumberedcaption#1[#2]#3{\par
  \addcontentsline{\csname ext@#1\endcsname}{#1}{%
    % orig: \protect\numberline{\csname the#1\endcsname}%
    %{\ignorespaces #2}
    \protect\numberline{}{\ignorespaces #2}%
    }%
  \begingroup
    \@parboxrestore
    \normalsize
    % orig: \@makecaption{\csname fnum@#1\endcsname}%
    %{\ignorespaces #3}\par
    \@makeunnumberedcaption{\ignorespaces #3}\par
  \endgroup}

% redefine \@makeunnumberedcaption (like \@makecaption)
% for your own layout
\newcommand{\@makeunnumberedcaption}[1]{%
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1}%
  \ifdim \wd\@tempboxa >\hsize
    #1\par
  \else
    \global \@minipagefalse
    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \vskip\belowcaptionskip}

% for LaTeX 2.09 compatibility, define \above/belowcaptionskip:
\@ifundefined{abovecaptionskip}{%
  \newlength{\abovecaptionskip}%
  \setlength{\abovecaptionskip}{10pt}%
}{}
\@ifundefined{belowcaptionskip}{%
  \newlength{\belowcaptionskip}%
  \setlength{\belowcaptionskip}{0pt}%
}{}

\makeatother    % <=== in a .sty file delete this
%%%% fin macro %%%%

Remarque : le package 'french' V3,49 inclut cette macro.

# 8.15 # Comment redéfinir le style de caption ?
------------------------------------------------
* Par exemple pour changer la fonte de Figure : en gras, il
faut utiliser :

%%%% debut macro %%%%
\makeatletter
\renewcommand{\fnum@figure}{\small\textbf{\figurename~\thefigure}}
\makeatother
%%%% fin macro %%%%

* Pour agir sur les espaces horizontaux de part et d'autre de la
légende d'un flottant, on peut utiliser caption2.sty, et définir
la longueur \captionmargin qui sera insérée à gauche et à droite
de la légende.

# 8.16 # Comment fondre une image dans du texte ?
-------------------------------------------------
* Le package 'floatfig', de T. Kneser, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatfig/, permet d'entourer
une figure de texte de manière très efficace grâce à
l'environnement floatingfigure. Ce package a été conçu pour
LaTeX2.09, pour des documents sans colonnes.

Exemple :
\begin{floatingfigure}[l]{4cm}
   \includegraphics[width=4cm]{dessin}
   \caption{Titre}
\end{floatingfigure}
%%%% fin exemple %%%%

Remarque : le [l] du \begin{float...} sert à mettre la figure à
	   gauche. [r] permet de l'avoir à droite, [p] la met
	   à gauche sur une page de gauche et à droite sur une
	   page de droite.

* Le package 'floatflt', de T. Kneser et M. Dahlgren, disponible
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatflt/, a été écrit
pour LaTeX2e. Il étend les possibilités de floatfig par de
nombreuses options et est utilisable pour les figures et les
tableaux.

Exemple :
\begin{floatingfigure}[options]{width of figure}
   figure contents
\end{floatingfigure}
%%%% fin exemple %%%%

* Le package 'picinpar' pour LaTeX2.09 est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/picinpar/ et sur
ftp://ftp.fdn.org/pub/CTAN/systems/msdos/4alltex/disk04/. Il permet de définir un nombre
de lignes avant lequel la figure pourra être insérée dans le
texte. La taille de la figure dépend de son contenu, sa position
est variable, et peut s'étaler sur plusieurs paragraphes.

ATTENTION : Ce package n'est pas compatible avec amstex.

Exemple :
\begin{window}[#lines before, l|r|c, picture contents, caption}
   ... paragraph text ...
\end{window}
%%%% fin exemple %%%%

* Mieux que le précédent, le package 'picins' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/picins/ permet d'inclure des
figures dans des paragraphes.

Exemple :
\parpic(width,height)(x-off,y-off)[Options][Position]{Picture}
    Paragraph text....
%%%% fin exemple %%%%

* Le package 'wrapfig' permet de définir la hauteur de la
figure, celle-ci ci peut apparaître à droite ou à gauche dans le
texte ou encore dans une marge. Ce package n'est pas compatible
avec les environnements de liste.

Exemple :
\begin{wrapfigure}[height in lines]{l|r}[overhang]{width}
   {figure, caption etc.}
\end{wrapfigure}
%%%% fin exemple %%%%

* Le package 'flow' met obligatoirement la figure dans une boîte
avec un cadre et ne permet pas de définir de caption.

Exemple :
\flow[L|R]{paragraph text}{figure box}
%%%% fin exemple %%%%

* Le package 'window' de E. Schaluck, permet également
d'intégrer une figure dans un paragraphe mais il n'est plus
maintenu. Il a été écrit pour LaTeX2.09 mais il est compatible
LaTeX2e.

Exemple :
\windowbox[toplines][inwindow: contents][ratio: l r]
... paragraph text ... \par
%%%% fin exemple %%%%

Voici les résultats d'un test comparatif effectué par P. van
Oostrum :
            A B C D E F G H I J K
picinipar  |+|+|+| |+|+| |+| | | |
wrapfig    |+|+|+|+| | |+|H|-|+| |
flow       |-|-|+| | | | |+| | | |
floatfig   |+|-|-|+| | |+| | |-| |
floatflt   |+|+|+|+| | |+| |-| |+|
window     |-|-|+| |+|+| |+| | | |
picins     |+|-|+|+| | | |+|+| | |

avec :
A: figure captions/counting/list of figures
B: table captions/counting/list of tables
C: Left/right possible (+ = both)
D: Alternating left/right for twosided docs
E: can be placed in the middle of text with twosided flowing
F: possible to start after the beginning of paragraph
G: can (more or less) float in the text
H: auto detection of size of figure (H=height only)
I: works with list environments
J: works with twocolumn
K: works with multicol

Les meilleurs packages semblent être :
picins, floatflt et wrapfig.

* Voici également une macro de C. Mercat :

%%%% debut macro %%%%
\def\textdess#1#2 % #1={blabla} #2=\dessin{monbodessin}
{\hbox{

\setbox2=\hbox{#2} %c'est le dessin

\count2=\wd2 %c'est la largeur du dessin.
%\showthe\count2
\multiply\count2 by-1
\advance\count2 by\hsize %count2 vaut le reste de la page
\advance\count2 by-2000000  %c'est pour la marge droite
\count1=\count2
\advance\count2 by-2000000  %c'est pour la marge du milieu
\setbox1=\hbox to\count1sp{     %c'est le texte
\vbox{\hsize=\count2sp  %c'est la largeur
#1
}\hfill}
\count1=\ht1  %c'est la hauteur
\advance\count1 \dp1

\count2=\ht2
\advance\count0 \dp2

\ifnum\count2<\count1 \count2=\count1 \fi
%c'est la + grde des 2 hauteurs
\vtop to \count2sp {\vfill \box1 \vfill}
\vtop to \count2sp {\vfill \box2 \vfill}
}}

%%%% fin macro %%%%

# 8.17 # Comment réaliser des diagrammes en bâtons ?
----------------------------------------------------
Il existe le package 'bar', disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/, qui offre un environnement
barenv.

# 8.18 # Comment faire un organigramme ?
----------------------------------------
Il existe plusieurs contributions (toutes assez anciennes),
disponibles sur CTAN,  dédiées spécifiquement à la réalisation
de différents types d'organigrammes :
* ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/nassflow/
* ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/rail/
* ftp://ftp.fdn.org/pub/CTAN/support/flow/
A priori, le dernier est le plus évolué et est basé sur un
pré-processeur écrit en langage C, ce qui fait qu'il offre une
interface souple et puissante.

# 8.19 # Comment centrer une figure très large ?
------------------------------------------------
Le package 'bigcenter' ci-dessous permet de centrer des figures
très larges sans message d'erreur de type overful.

%%%% debut macro %%%%
%%% ----------debut de bigcenter.sty--------------

%%% nouvel environnement bigcenter
%%% pour centrer sur toute la page (sans overfull)

\newskip\@bigflushglue \@bigflushglue = -100pt plus 1fil

\def\bigcenter{\trivlist \bigcentering\item\relax}
\def\bigcentering{\let\\\@centercr\rightskip\@bigflushglue%
\leftskip\@bigflushglue
\parindent\z@\parfillskip\z@skip}
\def\endbigcenter{\endtrivlist}

%%% ----------fin de bigcenter.sty--------------
%%%% fin macro %%%%

# 8.20 # Comment passer de ps à eps ?
-------------------------------------
* S. Heiden :
Pour faire ce travail de transformation il faut interpréter TOUT
le code PostScript d'un fichier PS (être une imprimante PS en
gros), identifier la boîte englobante de ce qui est composé sur
UNE page et insérer vers le début ou la fin du fichier PS
original la fameuse ligne de la forme :
	%%BoundingBox: 72 246 522 597
qui renseigne les macros graphics, donc dvips, donc l'imprimante
sur cette fenêtre de clipping.

Syntaxe: %%BoundingBox: llx lly urx ury
Qui sont deux points (lower left)(x,y) et (upper right)(x,y)
définissant la fenêtre. Si on n'est pas, soi-meme, une
imprimante PostScript on peut faire interpréter le code PS
original par une imprimante qui produira une page. On peut alors
mesurer la boîte englobante et la position de la figure dans la
page (la portion de toner qui nous intéresse) et composer la
ligne %%BoundingBox en s'exprimant en points d'1/72 de pouces
et sachant que le système de coordonnées est :
- en bas à gauche de la page ;
- vers la droite et vers le haut ;
- légèrement décalé vers le centre. En effet, une imprimante
n'imprime jamais sur le bord réel d'une page. Il y a une fenêtre
de clipping systématique matérielle plus petite que la page A4
et centrée. L'origine du système correspond au coin de la
feuille ; le décalage du système de coordonnées arrive surtout
sur les coordonnées Y qui dépendent de l'avancement du papier
contrairement aux X, calés par les bords (qui n'a pas connu de
vieille imprimante LaserWriter pouvant louper de 5 cm le bord
inférieur d'une feuille A4 ?-).

Si on fait calculer et imprimer la bbox par l'imprimante (par le
code de bbfig par ex.), ce problème ne se pose plus. Sans parler
de ps2epsi qui est la meilleure solution mais alors il faut
distinguer l'environnement de chaque système d'exploitation (Unix,
Mac, PC) et les outils correspondants.

Remarque : Si on a plus d'une figure, que l'on s'intéresse à la
	   forêt amazonnienne ou que l'on est un peu riche, on
	   peut acheter Adobe Distiller ou autre pour faire ce
	   genre de travail. Par ailleurs Ghostview peut jouer
	   le rôle de l'imprimante si l'écran est correctement
	   calibré (à vérifier avec xdpyinfo et une règle...).
	   En gros il faut un outil qui sait composer du
	   PostScript. Après, tout dépend de ce qu'il propose.

Suggestions :
- utiliser l'option "draft" pour que TeX visualise les boîtes
englobantes des figures (calculées à partir de %%BoundingBox).
- générer du EPSF natif à partir de l'outil de dessin plutôt que
de passer par PS->EPSF.

* Le document "Using EPS graphics in LaTeX2e documents" de K.
Reckdahl répond également à cette question cf section 3.1
Converting PS files to EPS.

*  ps2epsi, qui est livré avec GhostScript permet de convertir
du postscript en postscript encapsulé.

# 8.21 # Comment changer l'orientation d'une figure ?
-----------------------------------------------------
* Le package 'rotfloat' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotfloat/ permet de gérer la
rotation des flottants.

* On peut utiliser la commande \rotatebox du package 'graphics'
de D. Carlisle. Ce package est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/.

Exemple :
\rotatebox{90}{
\includegraphics{dessin1.eps}
}
%%%% fin exemple %%%%

* La commande \includegraphics du package 'graphicx' peut prendre
comme paramètre un angle de rotation.

Exemple :
\begin{figure}
   \centering
      \includegraphics[angle=90,width=\textwidth]{dessin.eps}
\end{figure}
%%%% fin exemple %%%%

# 8.22 # Comment gérer des sous-figures sur plusieurs pages ?
-------------------------------------------------------------
Un seul environnement figure ne peut pas s'étendre sur plusieurs
pages, il faut donc gérer le problème à la main en instanciant
les numéros "à la main".

Exemple :
\documentclass{article}
\usepackage{graphicx,subfigure}
\begin{document}

  \begin{figure}
    \centering
    \subfigure[First Part]{%
       \label{fig:graphics:a}% label for subfigure
       \includegraphics[width=\textwidth]{box.eps}}%
    \caption{Large Graphics}%
    \label{fig:graphics}% label for figure
  \end{figure}

  \addtocounter{figure}{-1}
  \begin{figure}
    \addtocounter{subfigure}{1}
    \centering
    \subfigure[Second Part]{%
       \label{fig:graphics:b}% label for subfigure
       \includegraphics[width=\textwidth]{box.eps}}%
    \caption{Large Graphics (con't)}%
  \end{figure}

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

# 8.23 # Comment générer une liste des figures d'un document ?
--------------------------------------------------------------
Il existe pour cela la commande \listoffigures. Elle collecte
tous les numéros de figures ainsi que leur titre et le numéro
de la page où elles apparaissent.

Remarque : une bonne mise à jour de cette liste nécessite au
	   moins deux compilations successives.

# 8.24 # Comment faire une figure sous LaTeX ?
----------------------------------------------
* On distingue deux techniques majeures :
+ soit on utilise un logiciel de dessin et on inclut une figure
sous un format défini (en général PostScript ou Encapsulated
PostScript). Pour une liste de logiciels, voir la question 25.1.
+ on utilise les commandes LaTeX disponibles. L'environnement
picture permet ainsi de composer des figures comprenant du
texte, des segments de droites, des cercles et des figures
géométriques.

Les commandes LaTeX les plus courantes pour le dessin sont :
+ \put(x, y){objet}
+ multiput
+ \line(x,y){longueur}
+ \vector
+ \shortstack
+ \circle
+ \circle*

Exemple :
\begin{picture}(largeur, hauteur)
   \put(0,0){\line(1,0){3}}
   \put(0,3){\line(1,1){4}}
\end{picture}
%%%% fin exemple %%%%

* Le package epic définit un ensemble de commandes plus
complet que l'ensemble par défaut de LaTeX. Il s'agit des
commandes : \multiputlist, \matrixput, \grid, \dottedline,
\dashline, \drawline, \jput, \picsquare et \putfile,
ainsi que des environnements : dottedjoin, dashjoin et drawjoin.

Exemple :
\matrixput(0,0)(10,0){6}(0,10){3}{\circle{4}}
\matrixput(2,0)(10,0){5}(0,10){3}{\line(1,0){6}}
\matrixput(0,2)(10,0){6}(0,10){2}{\line(0,1){6}}
%%%% fin exemple %%%%

* PSTricks de T. Van Zandt propose un ensemble très complet de
macros TeX qui permettent de jouer avec des dessins
(dessin, couleur, rotation, superposition, ...). L'ensemble
PSTricks est composé de plusieurs packages : pstricks, pst-plot,
multido, pst-node, pst-coil, gradient, colortab, textpath,
charpath et pst2eps. Une documentation d'une centaine de page
est également fournie et nécessaire.

ATTENTION : PSTricks fait appel à des macros postscript qui ne
	    sont donc pas toujours visibles dans les previewer
	    de .dvi.

Exemple :
\psellipse(.5,0)(1.5,1)

\parametricplot[plotstyle=dots,plotpoints=13]%
	{-6}{6}{1.2 t exp 1.2 t neg exp}

\psshadowbox{\textbf Grest!!}

\pszigzag[coilarm=.5,linearc=.1{<->}(4,0)
%%%% fin exemple %%%%

# 8.25 # Comment mettre un commentaire à côté d'une figure ?
------------------------------------------------------------
Pour mettre un commentaire à côté d'une figure et pour que le
texte soit centré verticalement par rapport à la figure, il
faut utiliser des \parbox.

Exemple :
\begin{tabular}{lc}
$M=0{,}01$ & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6a.eps}} \\
$M=0{,}1$  & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6b.eps}}
% etc...
\end{tabular}
%%%% fin exemple %%%%
================================================================
[9] INCLUSION DE FICHIERS
================================================================

# 9.1 # Comment inclure des fichiers en mode verbatim ?
-------------------------------------------------------
* Le package 'verbatim', de R. Schopf, permet via la commande
\verbatiminput, qui prend en argument un nom de fichier,
d'inclure un fichier en mode verbatim. Ce package est disponible
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/distribs/ ou ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/.

* L'environnement alltt du package du même nom (package dû à J.
Braams) permet la même prouesse tout en gardant active
l'interprétation des commandes LaTeX dont le nom commence par le
caractère \ (le "backslash" reste actif). Il est disponible dans
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/misc/ ou sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/.

Exemple :
\begin{alltt}
   Notez la différence subtile entre $f(x)$ et \(f(x)\) grâce à
   l'utilisation du "backslash".
\end{alltt}
%%%% fin exemple %%%%

* Les commandes \listinginput et \verbatimtabinput du package
'moreverb' (disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/) permettent d'inclure des
documents en mode verbatim avec ou sans numérotation des lignes
du fichier inclu.

Exemple :
{
\small
\listinginput[5]{10}{totor.c}
}
Les paramètres [5] et {10} indiquent que la numérotation des
lignes doit se faire de 5 en 5 en commençant à 10.
%%%% fin exemple %%%%

* Il existe aussi le package 'verbtext' disponible sur CTAN.

* Le package 'fancyvrb' est également disponible sur CTAN.

* Pour insérer du code lisp dans un document LaTeX, il existe le
package 'lispcode' disponible par ftp sur
ftp://ki-server.informatik.uni-wuerzburg.de/pub/tex/.

* On peut aussi essayer le package 'verbasef' (verbatim
automatic segmentation of external files) disponible sur CTAN.
Il utilise l'environnement figure.

* Encore un autre, le package 'cprog' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/ permet d'inclure des morceaux de
code dans un document et de les gérer comme des flottants.

* Le package 'sverb' de M. Wooding propose un environnement
listing.

# 9.2 # Comment gérer un document par parties ?
-----------------------------------------------
Pour travailler sur un gros document, il est plus agréable de le
découper en plusieurs fichiers. Il y aura quoiqu'il en soit un
fichier principal (celui qui comprend le préambule et les
commandes \begin{document} et \end{document}).

\input{fichier} permet d'inclure le fichier "fichier" dans le
fichier principal. Cette commande réalise une importation pure
et simple. Elle est plutôt réservée à l'importation de fichiers
de macros.

\include{chapitre} permet d'intégrer le fichier "chapitre.tex"
dans le document principal en commençant une nouvelle page.
Cette commande réinitialise la numérotation des titres. Utilisée
avec la commande \includeonly{chapitre}, cette commande  mise
dans le préambule, permet de ne recompiler le fichier principal
que sur les parties indiquées.

Remarque : la commande \include ne permet pas d'intégrer un
	   fichier contenant lui-même une commande \include.

Exemple :
\documentclass{report}
\includeonly{chap1, chap3}
\begin{document}
\include{chap1}
\include{chap2}
\include{chap3}
\end{document}
%%%% fin exemple %%%%

Remarque : avec le package 'french', pour que la numérotation
	   des chapitres ne soit pas réinitialisée lorsqu'on
	   change de partie, il faut ajouter la commande
	   \noresetatpart  en début de document après le
	   \begin{document}

# 9.3 # Comment isoler une partie d'un fichier ps ou dvi ?
----------------------------------------------------------
Il faut utiliser un outil qui permet de découper en page :
+ un fichier postscript,
* il s'agit des outils PSnup, PStoPS, PSSelect, qui ont été portés
sur Mac, aussi bien pour MPW qu'en "stand-alone" (dans la
distribution CMacTeX)
* on peut également utiliser ghostview (save marked pages)
disponible par ftp sur
ftp://iphthf.physik.uni-mainz.de/pub/gv/

+ un fichier dvi ?
DVIDVI pour MPW (utilitaire qui fait bien d'autres choses que
de découper) doit permettre de faire cela.

# 9.4 # Comment inclure un fichier PICT ?
-----------------------------------------
On peut utiliser la commande \special{pictfile mondessin.pict}
ou \put(0,0){\special{pict=Mondessin}}.

# 9.5 # Comment spécifier un chemin pour les fichiers à inclure ?
-----------------------------------------------------------------
* Il suffit d'utiliser la commande \import{chemin}{fichier}.
Elle évite de préciser le chemin où se trouvent les fichiers
appelés par la commande \input à chaque appel.

%%%% debut macro %%%%
% import.sty: allows input of a file from another directory:
%
% \import{path}{file}

\def\import{\begingroup
  \protected@edef\@tempa{\endgroup
    \noexpand\@import{\@ifundefined{input@path}{}{\input@path}}%
    {\@ifundefined{Ginput@path}{}{\Ginput@path}}}%
  \@tempa}
\def\@import#1#2#3#4{%
  \def\input@path{{#3}#1}\def\Ginput@path{{#3}#2}%
  \input{#4}%
  \def\input@path{#1}\ifx\input@path\@empty \let\input@path\@undefined \fi
  \def\Ginput@path{#2}\ifx\Ginput@path\@empty \let\Ginput@path\@undefined \fi
}
%%%% fin macro %%%%

Exemple :
\import{Chapitres/}{chapitre1}
%%%% fin exemple %%%%

* Pour les figures, la package 'graphicx' propose la commande
\graphicspath à utiliser en tête de document.

Exemple :
\graphicspath{{Chapitre1/gfx/}{Chapitre2/gfx/}}
%%%% fin exemple %%%%

* On peut également modifier certaines variables
d'environnement lorsqu'elles existent.

Exemple (UNIX) :
setenv TEXINPUTS= /home/figures/:"$TEXINPUTS"
%%%% fin exemple %%%%

================================================================
[10] HAUTS ET BAS DE PAGES
================================================================

# 10.1 # Comment définir les hauts et bas de page ?
---------------------------------------------------

Remarque : lorsque le haut ou bas de page défini est trop grand,
	   on voit apparaître des messages d'erreur du style
	   "Overfull \vbox". Il faut alors redimensionner la
	   longueur correspondante.

	   Exemple (dans le préambule) :
	   \addtolength{\headheight}{1.5pt}
	   %%%% fin exemple %%%%

* Par défaut, LaTeX offre la numérotation des pages en bas de
page (style plain). Mais, il propose également 3 autres  styles
de mise en page. Il s'agit des styles :
+ empty (hauts et bas de pages vides),
+ headings(la numérotation des pages apparaît en haut ainsi que
différentes informations suivant la classe de document), et
+ myheadings (les commandes \markboth et \markright permettent
de définir les informations qui devront apparaître dans le haut
de page. \markboth{entête gauche}{entête droite} s'utilise pour
un document recto-verso alors que \markright{entête}
s'applique à toutes les pages d'un document en simple recto).

L'appel d'un style pour tout le document se fait via la commande
\pagestyle{style}. La commande \thispagestyle{} permet d'appeler
un style sur une page particulière.

Remarque : malgré une déclaration globale de style de page, il
	   se peut que des déclarations locales de style soient
	   également nécessaires, puisque certaines commandes
	   LaTeX réinitialisent le style de la page sur laquelle
	   elles apparaîssent.

* Le package 'fancyheadings', de P. van Oostrum, est disponible
sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/fancyheadings/. Il est
compatible LaTeX2.09 et LaTeX2e. Il permet de définir des entêtes
et des pieds de page relativement facilement. La définition des
pages spéciales se fait par : \thispagestyle{xxx} ou xxx peut
être fancy (utilise les définitions ci-dessous sur une page en
respectant le style plain pour les autres ), plain (style TeX)
ou fancyplain(permet de redéfinir le style plain et donc de
disposer de deux styles : fancy et plain). L'application d'un
style à toutes les pages d'un document s'obtient par
\pagestyle{nom_style}.

Les macros principales sont :
+ pour les entêtes
\lhead[paire gauche]{impaire gauche}
\rhead[paire droit]{impaire droit}
\chead{centre}
+ pour les pieds de page
\lfoot[paire gauche]{impaire gauche}
\rfoot[paire droit]{impaire droit}
\cfoot{centre}

On distingue les styles fancy et plain par :
\lhead[\fancyplain{paire gauche plain}{paire gauche fancy}]
{\fancyplain{paire gauche plain}{paire gauche fancy}}
Le style par défaut est alors plain.

Ce package définit quatre nouvelles longueurs :
+ \headrulewidth
+ \footrulewidth
+ \plainheadrulewidth
+ \plainfootrulewidth

Exemple :
\documentclass{article}
\usepackage{fancyheadings}
\pagestyle{fancy}
\usepackage{graphicx}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\rfoot{\leftmark\\\rightmark}
\lhead{\includegraphics[width=0.5cm]{foobar.ps}}

\begin{document}

   \section{Première section.}
      Intro.
      \subsection{Sous-section.}
	 Texte.
\end{document}
%%%% fin exemple %%%%

Remarque : sur certaines pages où le style de page est
	   réinitialisé par certaines commandes (telles que
	   \tableofcontents), il faut repréciser le style voulu
	   via la commande \thispagestyle.

Exemple :
\addtocontents{toc}{\protect\thispagestyle{fancyplain}}
%%%% fin exemple %%%%

* Le package 'fancyhdr' est le successeur du package
'fancyheadings' pour LaTeX2e. Il est disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/fancyhdr/.

# 10.2 # Comment obtenir une note de bas de page ?
--------------------------------------------------
* La commande \footnote{texte} permet très facilement d'obtenir
des notes de bas de page sans se préoccuper de leur mise en
page.

* Le package 'ftn' disponible sur CTAN dans
ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/ permet d'étendre la commande
footnote à tous les environnements non flottants.

# 10.3 # Comment mettre les notes de bas de page en fin de document ?
---------------------------------------------------------------------
Le package 'endnotes', de J. Lavagnino, disponible sur CTAN
permet de faire cela.

# 10.4 # Comment réduire les rappels de titres dans un haut ou bas de page ?
----------------------------------------------------------------------------
Pour éviter que des titres trop longs n'apparaissent dans les
entêtes ou les pieds de pages, il suffit de passer un titre
plus court en option des commandes de structuration de
document.

Remarque : dans ce cas, ce sont les titres courts qui
	   apparaîtront dans la table des matières.

Exemple :
\documentclass{article}
\usepackage{fancyheadings}
\pagestyle{fancy}
\usepackage{graphicx}
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\rfoot{\leftmark\\\rightmark}
\lhead{\includegraphics[width=0.5cm]{foobar.ps}}

\begin{document}

   \section[Titre résumé.]{Un titre trop long pour les rappels.}
      Intro.
      \subsection{Sous-section.}
	 Texte.
\end{document}
%%%% fin exemple %%%%

# 10.5 # Comment référencer une note de bas de page ?
-----------------------------------------------------
Il suffit simplement de définir un label à l'intérieur de la
commande \footnote et de la référencer par \ref.

Exemple :
bla bla bla\footnote{Notons que ce bla l\`a est diff\'erent des
pr\'ec\'edents\label{footnote-bla}}...

[...]

..., comme l'indique la note~\ref{footnote-bla}, ...
%%%% fin exemple %%%%

# 10.6 # Comment supprimer la numérotation des pages ?
------------------------------------------------------
* Pour supprimer la numérotation des pages, il faut utiliser la
commande \pagestyle{empty}. Si elle ne suffit pas, il faut en
plus utiliser \thispagestyle{empty} sur les pages où la
numérotation subsiste. Ce comportement se justifie par le
fait que certaines commandes comme \tableofcontents ou \chapter
réinitialisent le style de page sur laquelle ils apparaissent.

* On peut également redéfinir le style plain à empty
\let\ps@plain=\ps@empty.

* Le package 'nopageno' de D. Carlisle, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/carlisle/, de supprimer la
numérotation de toutes les pages même celles qui réinitialisent
le style de page.

# 10.7 # Comment numéroter les pages par rapport à la dernière ?
----------------------------------------------------------------
Pour pouvoir référencer les pages d'un document par rapport à la
dernière page (e.g. page 54/345), il faut utiliser le package
'lastpage' (disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/lastpage/).

Exemple :
\documentclass{report}
\usepackage{french}
\usepackage{lastpage}

\makeatletter
\renewcommand{\@evenfoot}%
	{\hfil \upshape page {\thepage} de \pageref{LastPage}}
\renewcommand{\@oddfoot}{\@evenfoot}
\makeatother

\begin{document}
Texte.
\end{document}
%%%% fin exemple %%%%

Si l'on ne dispose pas du package 'lastpage', on peut définir ce
label "à la main" en ajoutant \label{LastPage} juste avant
\end{document} ou encore en utilisant la commande
\AtEndDocument{\label{LastPage}} dans le préambule du document.

# 10.8 # Comment supprimer le trait de séparation des notes de bas de page ?
----------------------------------------------------------------------------
Il suffit de mettre dans le préambule :
\renewcommand{\footnoterule}{}

# 10.9 # Comment modifier la numérotation des pages ?
-----------------------------------------------------
* Il faut modifier la commande \thepage.

Exemple (P. van Oostrum) :
\documentclass{report}
\usepackage{french}

\makeatletter
\renewcommand{\thepage}{\thechapter-\arabic{page}}
% chapter-page numbering
\@addtoreset{page}{chapter}
% reset page number when chapter is stepped
% The next magic makes the page counter be reset to one rather
% than zero
\def\@stpelt#1{\global\csname c@#1\endcsname
               \expandafter\ifx \csname#1\endcsname \page
                  \@ne
               \else
                  \z@ \fi}
\makeatother
\begin{document}
\chapter{Introduction}
Texte.
\end{document}
%%%% fin exemple %%%%

* Il existe également le package ci-dessous de A. Kielhorn.
%%%% debut macro %%%%
%%
%% This is page-per-chapter-package
%% version 2.0
%%
%% Don't use it with refrep!
%% Refrep has these commands already implemented
%%
%% This version forces openright!!
%%
%% Index-commands should work in chapters and appedices,
%% they will not work as expected in the preface when the
%% pagenumbering is not arabic. (MakeIndex can't sort roman-
%% numbers)
%%
%% Bugs:
%%       The index is sortet according to the pagenumber
%%       without looking at the chapternumber.
%%       I don't think MakeIndex could handle that.
%%

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pagepc}[1995/05/13]

\@ifundefined{chapter}
{\PackageError{pagepc}{%
  You can't number your pages per chapter\MessageBreak when you
  have no chapters
  }{%
  Use ``report'' or ``book'' instead.
  }
}%
{}

%% Reset the pagecounter to 1 at the start of a new chapter
%%
\let\ppchapter=\@chapter
\def\@chapter{\if@pageperchapter\setcounter{page}{1}\fi
                    \ppchapter}

%% Force a pagebreak at the start of the appendix, otherwise
%% the number of the page right before the appendix comes
%% out wrong
%%
\let\ppappendix=\appendix
\def\appendix{\if@pageperchapter\newpage\fi\ppappendix}

\newif\if@pageperchapter \@pageperchapterfalse

%% This command enables Page-per-Chapter, it is *not* on by
%% default to allow roman pagenumbers in the preface
%% (see sample-document)
%%
\newcommand{\pageperchapter}
    {\@pageperchaptertrue
     \@openrighttrue
     % Remember old setting for chapter 0 = preface
     \let\ppthepage=\thepage
     % The new number needs more space
     \renewcommand\@pnumwidth{2.55em}
     % Here it comes :-)
     \renewcommand\thepage{%
       \ifnum \c@chapter = \z@
          \ppthepage
       \else
          \thechapter\ -- \arabic{page}
       \fi
       }
     }

%% This is a hack to make MakeIndex happy :-(
%% You can't use the |-form of an indexentry because
%% it is used to store the chapternumber.
%%
\def\@wrindex#1{%
   \ifnum \c@chapter = \z@
      \protected@write\@indexfile{}%
      {\string\indexentry{#1}{\arabic{page}}}%
      % The above is wrong if pagenumbering!=arabic,
      % but I think this is better than nothing.
   \else
       \protected@write\@indexfile{}%
      {\string\indexentry{#1|ppc{\thechapter}}{\arabic{page}}}%
   \fi
 \endgroup
 \@esphack
}

%% This prints the pagenumber in the index
%%
\def\ppc#1#2{#1 -- #2}

\endinput
%%%% fin macro %%%%

* Pour changer la valeur du compteur de page, il suffit
d'utiliser :
\setcounter{page}{17}.

# 10.10 # Comment supprimer les entêtes et bas de page de pages vierges ?
-------------------------------------------------------------------------
Lorsqu'on utilise l'option 'openright' pour faire débuter un
nouveau chapitre sur une page de droite dans un document
recto-verso, pour ne pas afficher les entêtes et bas de page sur
une page de gauche restée vierge, on peut utiliser la commande
suivante (cf. LaTeX Companion) :

\newcommand{\clearemptydoublepage}{%
	\newpage{\pagestyle{empty}\cleardoublepage}}

Il est alors nécessaire d'utiliser cette commande avant
la commande \chapter.

# 10.11 # Comment gérer des en-têtes avec des environnements verbatim multi-pages ?
-----------------------------------------------------------------------------------
Le problème consiste à inclure un fichier avec la commande
\input dans un haut ou bas de page alors que le corps du
document comprend des environnements verbatim qui s'étalent sur
plus d'une page. Dans ce cas, LaTeX au lieu d'interpréter la
commande \input fait un copier-coller du contenu du fichier
appelé par la commande \input (c'est comme s'il était en mode
verbatim au moment de traiter le \input).

La solution consiste à utiliser une boîte via \savebox.

Remarque : cela ne marche que si les informations à imprimer ne
	   varient pas au fil des pages.

Exemple :
\newsavebox{\logo}
\savebox{\logo}[2cm][c]{\input{logo-late.pstex_t}}
%%%% fin exemple %%%%

# 10.12 # Comment utiliser \footnote dans un titre ?
----------------------------------------------------
* Il faut utiliser la commande \protect.

Exemple :
   \section{Titre de section\protect\footnote{Commentaire sur
      ce titre.}.}
%%%% fin exemple %%%%

ATTENTION : le problème dans ce cas est que la note apparaîtra
	    aussi bien dans l'en-tête si l'en-tête rappelle le
	    titre des sections que dans la table des matières.
	    Pour supprimer ces apparitions il faut alors
	    utiliser la même technique que pour les titres
	    résumés :
	    \section[foo]{foo\protect\footnote{foooo}}

* Il existe également le package 'stblftnt' de R. Fairbairns
disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ qui
gère le problème énoncé ci-dessus sans avoir à réécrire tout
le titre.

# 10.13 # Comment placer les notes de bas de page les unes à côté des autres ?
------------------------------------------------------------------------------
Il faut utiliser le package 'footnote', de R. Fairbairns,
disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/ avec l'option para :
\usepackage[para]{footnote}.

# 10.14 # Comment réinitialiser le compteur de note de bas de page à chaque page ?
----------------------------------------------------------------------------------
* Il faut utiliser le package 'footnote', de R. Fairbairns,
disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/ avec l'option
perpage : \usepackage[perpage]{footnote}

* Le package 'footnpag' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnpag/ permet également de
faire cela.

# 10.15 # Comment modifier le style des notes de bas de page ?
--------------------------------------------------------------
* Le package 'footmisc' disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footmisc/ permet de définir son
propre style de note de bas de page.

* Le package 'ftnright' de F. Mittelbach redéfinit le placement
des notes de bas de page dans un document multi-colonnes. Lors
de l'utilisation de ce package, les notes de bas de page
appelées dans une page seront réunies et placées à la fin de la
dernière colonne de cette page.

Remarque : Lorsque plusieurs packages sont utilisés
	   simultanément dans un même document, ftnright doit,
	   si possible, être appelé en dernier.

# 10.16 # Comment utiliser le mode verbatim dans une note de bas de page ?
--------------------------------------------------------------------------
Par défaut, le mode verbatim n'est pas accessible dans une note
de bas de page (et de manière générale inutilisable dans un
argument d'une autre commande).
* On peut alors le forcer par :
\DeclareRobustCommand\espacement{{\fontencoding{OT1}
\selectfont \texttt{\char32}}}
* ou utiliser
\tt sous LaTeX2.09
\texttt sous LaTeX2e

# 10.17 # Comment éviter qu'une note de bas de page s'étale sur plusieurs pages ?
---------------------------------------------------------------------------------
* La commande \samepage peut permettre de forcer LaTeX à ne
pas couper le contenu d'une note de bas de page.

Exemple sans la commande :
Texte texte texte (1). Texte texte texte (2). Texte texte texte
(3). Texte texte texte (4). Texte texte texte (5). Un autre
texte\footnote{Un long long long long long long long long long
long long long long long long long long long long long long long
long long long long long long long long long long long long long
long long long long long commentaire sur cet autre texte.}.
Texte texte texte (6). Texte texte texte (7). Texte texte texte
(8). Texte texte texte (9). Texte texte texte (10). Texte texte
texte (11). Texte texte texte (12). Texte texte texte (13).
Texte texte texte (14). Texte texte texte (15). Texte texte
texte (16). Texte texte texte (17). Texte texte texte (18).
Texte texte texte (19). Texte texte texte (20). Texte texte
texte (21). Texte texte texte (22).
%%%% fin exemple %%%%

Exemple  avec :
Texte texte texte (1). Texte texte texte (2). Texte texte texte
(3). Texte texte texte (4). Texte texte texte (5). Un autre
texte\samepage\footnote{Un long long long long long long long
long long long long long long long long long long long long long
long long long long long long long long long long long long long
long long long long long long long commentaire sur cet autre
texte.}. Texte texte texte (6). Texte texte texte (7). Texte
texte texte (8). Texte texte texte (9). Texte texte texte (10).
Texte texte texte (11). Texte texte texte (12). Texte texte
texte (13). Texte texte texte (14). Texte texte texte (15).
Texte texte texte (16). Texte texte texte (17). Texte texte
texte (18). Texte texte texte (19). Texte texte texte (20).
Texte texte texte (21). Texte texte texte (22).
%%%% fin exemple %%%%

* On peut également utiliser une \parbox mais cela peut modifier
la structure de la page (empiètement du bas de page).

Exemple :
\footnote{\parbox[t]{0.94\linewidth}{This is a footnote ...}
%%%% fin exemple %%%%

* L'emploi de la commande \enlargethispage peut également
suffire.

* Une solution plus globale (et non pas au cas par cas comme les
solutions précédentes) consiste à redéfinir la pénalité associée
à \interfootnotelinepenalty. Cela permet de relâcher le critère
de beauté associé au placement des bas de page.

Exemple :
Mettre dans le préambule \interfootnotelinepenalty=10000.
%%%% fin exemple %%%%

Remarque : \raggedbottom permet en plus à LaTeX de ne pas
	   s'inquiéter si le corps de la note n'apparaît pas
	   sur la même page que son appel.

================================================================
[11] LATEX, LE FRANÇAIS ET LES AUTRES LANGUES
================================================================

# 11.1 # Comment franciser un document LaTeX ?
----------------------------------------------
* 'babel' version 3.6 disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/babel/, est un package de J. Braams.
babel permet de composer des documents multilingues. Son appel
sous LaTeX2e se fait par \usepackage[langue_1, langue_2, ...,
langue_n]{babel}.

Parmi les langues actuellement disponibles, on peut citer
english, german, italian, french, français. Le changement de
langue se fait via la commande  \selectlanguage.

Exemple :
\selectlanguage{spanish}
%%%% fin exemple %%%%

La langue par défaut est la dernière de la liste passée en
paramètre à babel (langue_n dans l'exemple précédent).

Ce package est le plus courant sur le plan international mais il
est souvent contesté en France. On lui préfère alors le package
'french'.

* Le package 'french' de B. Gaulle est disponible par ftp sur
ftp://ftp.gutenberg.eu.org/pub/gut/french/ ou sur
ftp://ftp.loria.fr/pub/ctan/language/french/.

Lors de l'installation, respectez les instructions d'installation
accompagnant french.sty (une FAQ est également disponible). Le
fichier des motifs de césure est désormais unique (frhyph.tex),
que l'on travaille avec le codage de fontes T1 ou OT1 (avec
option MlTeX).

Vous pouvez également utiliser la série de commandes
suivantes, gentiment envoyées par Denis Barbier:

---------- citation ----------
  make -f Makefile.unx ALLTEXPATH=/usr/share/texmf \
     install-hyphen install-config install-base install-index
  texhash

Puis modifier le fichier /usr/share/texmf/web2c/fmtutil.cnf et
ajouter
la ligne ci-dessous:
frlatex tex     language.dat    -mltex frlatex.ini

Taper ensuite
  fmtutil --byfmt frlatex
  texlinks

La commande pour compiler du LaTeX avec french est alors
frlatex.
------------- fin -------------

Remarque : Dans un fichier source (.tex), il est conseillé de
	   charger french après tous les autres packages.

french prend notamment en charge la mise en page, la traduction
des balises LaTeX visibles dans le document final (Chapitre,
Table des matières, ...), ....

ATTENTION : ces deux options (french et babel) ne sont pas
	    toujours parfaitement compatibles (les dernières
	    versions le sont french3,49 et babel 3.6).
AL: A vérifier...

	    + \usepackage[francais]{babel} et
	    \usepackage[frenchb]{babel} font appel à l'option
	    frenchb maintenue par D. Flipo.
	    + \usepackage[french]{babel} fait appel au package
	    french de B. Gaulle à condition que french ait été
	    installé (et plus particulièrement french.ldf)
	    + les versions de tous ces packages sont très
	    importantes  (babel, frenchb, french) pour une bonne
	    coexistence. Une version 3.6 beta de Babel est sur
	    CTAN mais il paraît  qu'il y avait un problème avec
	    french. Babel 3.5e et french V3.46 collaborent assez
	    bien dans tous les sens.
	    + les fichiers de césure sont les mêmes pour babel
	    et pour french.

ATTENTION : les dernières distributions de french (V4 et
	    post) ne sont plus compatibles LaTeX 2.09 !

# 11.2 # Comment corriger les coupures de mots accentués ?
----------------------------------------------------------
* Une solution consiste à utiliser MlTeX (multilingual TeX).
C'est le moteur TeX de M. Ferguson. Il permet en particulier de
gérer les coupures de mots accentués. Certaines des idées
utilisées dans ce moteur ont d'ailleurs été reprises par la
suite dans TeX V3.

* Suivant la fonte avec laquelle on travaille (i.e. suivant
qu'elle dispose des caractères accentués ou non), il peut
exister des problèmes d'interaction entre les lettres accentuées
et les règles de coupure des mots. En effet, l'utilisation d'une
fonte 7 bits impose que les caractères accentués soient
fabriqués par la macro \accent de TeX qui inhibe toute coupure
pour la suite du mot.

En LaTeX2e l'utilisation de fontes respectant la norme T1
(codage de Cork + 8 bits) permet d'éviter ces problèmes. Il faut
alors faire appel au package 'fontenc' :
\usepackage[T1]{fontenc}
Ce package nécessite que des fontes encodées T1 (suffisamment
récentes) aient été installées (fontes dc par exemple).

Il faut en outre utiliser des modèles de coupure de mot encodées
T1. Il existe pour cela deux fichiers disponibles sur CTAN.  Il
s'agit des fichiers fr8hyph.dc (ou mieux f8hyph, beaucoup plus
récent) pour un codage 8 bits (fonte avec caractères accentués
telle que dc) et fr7hyph (respectivement f7hyph) pour un codage
7 bits (accents TeX). L'association GUTenberg propose également
de tels fichiers (cf. french paragraphe 11.1).

* Il peut y avoir également un problème de versions,
l'algorithme de coupure des mots a changé entre les versions
2.9 et 3.0. Ainsi si vous utilisez Tex V.3.0 ou plus, il faut
veiller à ce que les fichiers plain.tex et lplain.tex soient
également en version 3.0 ou plus.

# 11.3 # Comment utiliser les lettres accentuées ?
--------------------------------------------------
* Les accents disponibles sous LaTeX sont présentés à la
question 29.57.

* Pour éviter ces commandes barbares d'accentuation des
caractères, on peut utiliser une fonte contenant toutes les
lettres accentuées nécessaires (code 8 bits). Si besoin, il faut
préciser un codage d'entrée via l'instruction :
\usepackage[codage d'entrée]{inputenc}

L'option est rendue nécessaire par le fait que les codes de
caractères au-delà de 127 sont différents sous Dos, MacOS et
Unix... Ainsi, le codage à preciser est latin1 pour un système
Unix ou un PC sous Windows, applemac sous Mac adapté au français
ou encore cp850 pour le code-page 850 sur PC (sous MS-DOS). Il
existe également ansinew, cp438, latin2 selon les systèmes.

Exemple :
\usepackage[applemac]{inputenc}
%%%% fin exemple %%%%

ATTENTION : inputenc.sty « casse » les efforts faits par mlTeX
	    lorsqu'on utilise les fontes codées OT1 (fontes CMR
	    ou PostScript).

* mapcodes de M. Piotrowski autorise également un grand nombre
de codages de caractères (iso8859-1 (latin1), iso8859-2
(latin2), ibm850 ou 852, hproman8, etc).

# 11.4 # Comment composer du texte en grec moderne ou classique ?
-----------------------------------------------------------------
Il suffit d'utiliser l'option greek du package babel disponible sur CTAN. Son
site primaire est ftp://obelix.ee.duth.gr/pub/TeX/. La version 1.0 fournie
avec babel ne supporte pas les accents ni les marques de respirations par
contre la toute nouvelle version 1.1 les supporte.

On trouvera un fichier de césure de mots dans
ftp://obelix.ee.duth.gr/pub/TeX/hyphen.greek.

# 11.5 # Comment composer du texte en hébreu moderne ou classique ?
-------------------------------------------------------------------
Il suffit d'utiliser le package ArabTeX 3.05 disponible sur CTAN. Son site
primaire est ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/.
Ce package permet la vocalisation mais pas les marques de
cantillation.

Exemple:
\documentclass{article}
\usepackage{arabtex,hebtex}
\setcode{standard}
\sethebrew

\begin{document}
Voici du texte en hébreu
\begin{arabtext}
yOm tOb
\end{arabtex}
Fin du texte en hébreu
\end{document}
%%%% fin exemple %%%%

# 11.6 # Comment composer du texte en arabe ?
---------------------------------------------
Il suffit d'utiliser le package ArabTeX 3.05 disponible sur CTAN. Son site
primaire est ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/.

# 11.7 # Comment définir les césures de groupes de mots conjugués avec un trait d'union ?
-----------------------------------------------------------------------------------------
(B. Gaulle) Par défaut, TeX coupe tout mot composé à l'endroit
exact du trait d'union et uniquement à cet endroit. Mais cela
peut se modifier. Dans ce but, j'ai  ajouté à french (V4,02) une
commande \allowhyphens qui permet de laisser à TeX le choix des
autres coupures dans le mot.

Remarque : la commande \hypenation ne permet pas d'intégrer un
	   trait d'union car ce caractère sert à indiquer un
	   point de coupure et uniquement cela.

Voici donc la solution :
\showhyphens{{définissez\allowhyphens-le}
donne alors comme points de coupure : dé-fi-nis-sez-le

--
Benjamin Bayart
bayartb@edgard.fdn.fr