1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
|
RELEASE NOTES FOR VERSION 2.1
* Biber version 1.1 is required for biblatex 2.1
* Custom data models is now looked for in more places. See PDF
documentation. Custom data model conflicts are now better processed by
biber.
* Some improved localisation (Norwegian) and doc fixes.
RELEASE NOTES FOR VERSION 2.0
* Biber is now the default backend. Biblatex 2.0 requires biber
1.0. It will not work with any earlier release of biber due to
.bcf format changes required to support the new list-local sorting
feature.
* Biblatex with bibtex as the backend is now frozen at version 1.7. When
using biblatex with the option "backend=bibtex" (which must be
specified now, the default is backend=biber if no option is specified),
biblatex 1.7 will be automatically used. Apart from important bug fixes,
no more development will be done on the 1.7 branch which means that
users must switch to backend=biber (or don't specify the backend at all)
to get version 2.0 and future new features. All major new 2.0 features
require biber anyway so this is no real change for bibtex users.
* New options to enable counters which track different combinations of
information. Here is a summary which contains all tracking options,
including the new ones (row marked with with a star, table is also in
the PDF documentation):
Enabled Enabled Tracked
Option field counter information
-------------- ---------- -------------- -------------------
labelalpha labelalpha extraalpha label
labelyear labelyear extrayear labelname+labelyear
*labeltitle --- extratitle labelname+labeltitle
*labeltitleyear --- extratitleyear labeltitle+labelyear
The naming of the options and counters is a little unintuitive because
the original ones were named before requests for the new ones were made.
The "Tracked information" column makes clear which information is tracked
by the counters. The new counters will appear in the .bbl inside an entry
and can be used just like "extraalpha" and "extrayear". The new options
controlling the new counters are false by default and are not used by the
standard styles.
* The biblatex data model is now customisable using the \DeclareDatamodel*
macros. This allows the use of new entrytypes and fields, as long as the
style supports them.
* Controlling initials generation
A biblatex macro interface (\DeclareNoinit) is now available to declare
regular expressions to strip from names before generating initials for
them. This mirrors the Biber config file functionality on a per-document
basis. A common use, for example, might be to strip certain prefices
from names so that they do not end up as initials.
* Fine tuning sorting strings
A biblatex macro interface (\DeclareNosort) is now available to declare
regular expressions to strip from fields or types of fields for sorting
purposes. This mirrors the Biber config file functionality on a per-document
basis. A common use, for example, might be to strip "The " from titles for
sorting purposes.
* Sorting option for bibliography/shorthand lists
\printbibliography and \printshorthands now have a "sorting" option so
you can choose a sorting scheme for each bibliography/shorthand list
instead of using the global sorting scheme. This means that you can
issue \printbibliography or \printshorthands as many times as you need
to, anywhere in the document and have the resulting list sorted in the
way required.
* Dynamic datasource modification
A biblatex macro interface (\DeclareSourcemap) is now available to
allow users to dynamically modify data as it is read by Biber. This
can be used to do many things like remove unwanted fields,
regularise field contents, add new fields etc. all without write
access to the datasource. The biblatex manual has a large section
on this feature, with many examples. This feature is identical in
functionality to Biber's "sourcemap" option but having a macro
interface allows it to be used on a per-document basis. The default
mappings for datasource drivers are definable too, using
\DeclareDefaultSourcemap
* Customisable labels
A new macro interface is implemented (\DeclareLabelalphaTemplate)
which allows customisation of the label used in alphanumeric
styles. The previous static labels are now implemented in terms of
the new interface. The biblatex manual has a section on this
feature with examples. One edge-case has changed with the new
definition of the previous default label generation behaviour: a
name with a prefix will now include 3 characters after the prefix
instead of 2 ("van Rompel" will be "vRom" instead of "vRo"). The
previous behaviour was anomolous anyway. There are options to
auto-disambiguate labels in several ways.
* Related entries
A general method to support "related entries" is implemented. This
allows a localisable, flexible way to deal with relationships between
entries like "reprint of", "translation of", "reprinted in" etc.
Three new entry fields are available to support this - "related",
"relatedtype" and "relatedstring". Biber will automatically create
"dataonly" clones of the related entries so that their data can be
accessed in styles without having to cite them. Related entries may
also be cited themselves which does not interfere in any way with this
mechanism. The standard styles have been updated to support the new
fields. New punctuation macros are available to format the new fields
in the bibliography ("relatedpunct", "relateddelim", "related").
* Citation key aliases
It is now possible to include a new field "ids" in an entry which
is a comma-separated list of citation key aliases. The entry can be
cited by any of the aliases, which helps when you updated your
entry keys but don't want to change old documents.
* Option to sort names only using initials
The new option "sortfirstinits" allows users to specify that name
sorting only uses initials instead of the full name. Previously,
even if "firstinits" was true, sorting used full names.
* New citation commands
Starred variants of \citeyear and \citedate are now available which
include the extrayear information.
RELEASE NOTES FOR VERSION 1.7
* Biber update, new features
Biblatex 1.7 requires Biber 0.9.6. Biber is now based on Perl 5.14
with full Unicode 6.0 support. There's a bunch of other
improvements -- see the Biber manual for details.
* XDATA containers [Biber only]
This release introduces the new @xdata entry type and the
corresponding xdata field. Essentially, the idea is that you can
dump frequently used data into an @xdata entry and reference that
where needed. It's a bit like crossref but doesn't imply any
logical (parent/child) relation. Or, to put it differently, it's a
bit like @string but covers more than one field. See the changelog
for pointers.
* Extended option scoping [Biber only]
The package options related to name/list truncation and name
disambiguation are now conveniently settable globally/per-type/
per-entry. See the changelog for details. There's also a new
appendix with an overview of the scope of all options.
* Field formats for dates
\printdate and friends now support 'virtual' field formats for all
dates. So, even though there is no 'date' field on the LaTeX end
of the workflow (only year/month/day and endyear/endmonth/endday),
you may now say:
\DeclareFieldFormat{date}{\textbf{#1}}
to print the date in boldface, for example. Technically, this is
equivalent to:
\DeclareFieldFormat{date}{\textbf{#1}}
\printtext[date]{\printdate}
except that it is readily built into \printdate.
* Last-resort breakpoints for \url
URLs and DOIs consisting mostly or entirely of letters and numbers
may run into the margin if the \url command can't find suitable
breakpoints. I've introduced additional breakpoints after all
numbers and letters in the previous biblatex release in order to
deal with particularly nasty DOIS, but this turned out to be to
brute a solution.
To provide the best of both worlds, this release adds counters
which control the penalties associated with the additional
breakpoints. They are disabled by default but may be helpful (as a
last resort) if you need to deal with long and/or tricky DOIs. See
'biburlnumpenalty' etc. in the manual for details. If you want to
enable the additional breakpoints, use high penalties; e.g.:
\setcounter{biburlnumpenalty}{9000}
* Language support
Oleg Domanov contributed support for Russian. Note that the
Russian module requires UTF-8. Pieter Belmans updated the Dutch
language module.
RELEASE NOTES FOR VERSION 1.6
* Biber update, new mapping feature
Biblatex 1.6 requires Biber 0.9.4. It will not work with any
previous release. Biber now supports user-space field mapping.
This means that you can set up mapping rules in the Biber
configuration file to deal with non-standard field names in .bib
files by mapping them to known field names.
* Revised maxnames/minnames options
Biber now supports max/mincitenames and max/minbibnames as
separate values. This improvement has prompted a refactoring of
the corresponding package options. In previous versions, there
were three sets of values:
max/minnames -> backend+frontend default
max/mincitenames -> frontend only
max/minbibnames -> frontend only
The backend would get max/minnames, the other values were only
used on the LaTeX end, defaulting to max/minnames. Depending on
the citation style, this could lead to ambiguous citations if
max/minnames was out of sync with max/mincitenames. (This wasn't
really obvious from reading the manual.)
This can no longer happen. The new solution is simpler and
error-proof in this respect. The max/mincitenames and
max/minbibnames options do what their name indicates and are fully
supported by Biber. The max/minnames options now serve as master
options which set both max/minbibnames and max/mincitenames:
max/minnames -> max/mincitenames
-> max/minbibnames
max/mincitenames -> frontend+backend
max/minbibnames -> frontend+backend
We didn't bother to update the BibTeX backend as it is due to be
discontinued this fall anyway. The BibTeX backend will get the
max/mincitenames values only.
* [CAVEAT] Removed local max/minnames and max/minitems options
As part of the above change, I've removed the local max/minnames
and max/minitems options from \printbibliography and friends to
enforce consistency. Please use the global options instead.
* Added maxalphanames/minalphanames [Biber only]
With Biber, the 'labelalpha' field may now be configured
independently of max/mincitenames with the newly introduced
package options max/minalphanames.
* MD5 hashes, per-name hashes [Biber only]
With Biber, the hashes provided in the namehash/fullhash fields
are now standard MD5 hashes. This means that they are stable
across multiple runs, multiple refsections, and multiple
documents.
We've also added per-name hashes. Every name in every name list
gets an MD5 hash, which is available in the 'hash' field. Note
that this field is only available locally in name formatting
directives.
* Range compression/truncation
This release features a new command for range compression (i.e.,
format "123-128" as "123-8"). The command is configurable, can
handle lists of ranges separated by commas and/or semicolons, and
also normalizes the dashes. Note that combining this with
\mkpageprefix requires the field format to be set up in a specific
way. See \mkcomprange in the manual for details.
I've also overhauled the command which truncates ranges by only
printing the starting page of the range. The original
\mkpagefirst has been removed because of its awkward syntax. It is
superseded by \mkfirstpage. Note that this change is not
backwards-compatible because the syntax of the new command is
slightly different. You may need to update some format
definitions.
RELEASE NOTES FOR VERSION 1.5
* Biber update
Biblatex 1.5 requires Biber 0.9.3. It will not work with any
previous release.
* More name disambiguation modes [Biber only]
We've added some additional modes to the 'uniquename' and
'uniquelist' options. Roughly speaking, the new 'min*' modes aim
for unambiguous citations (mainly author-year) rather than
disambiguating names in a strict way. There's a section in the
manual which discusses all the details. See the changelog for
pointers to the relevant parts of the manual.
RELEASE NOTES FOR VERSION 1.4
* Biber update
Biblatex 1.4 requires Biber 0.9 or higher. It will not work with
any previous release.
* Advanced name disambiguation in citations [Biber only]
Name disambiguation in citations has been greatly improved and
extended in this release. We're pretty excited about this feature
because it has been in the pipeline for such a long time and
because Biblatex/Biber is, to the best of my knowledge, the only
bibliographic tool providing fully automated disambiguation of
names in citations.
There are now two options controlling name disambiguation,
'uniquename' and 'uniquelist'. You can use either option
stand-alone or combine both. This is best explained by way of
example. Consider the following data:
John Smith/John Doe 2011
John Smith/Jane Doe 2011
John Smith/Edward Doe 2011
Let's assume we're using the standard 'authoryear' style and set
uniquename=false. In this case, we would get the following
citations:
Smith and Doe 2011a
Smith and Doe 2011b
Smith and Doe 2011c
The extra letter appended to the year (that's the automatically
generated 'extrayear' field provided by the 'labelyear' option)
disambiguates the citations. Many style guides, however, mandate
that the extra letter be used to disambiguate works by the same
author(s) only, not works by different authors with the same last
name. In order to disambiguate the author's last name, you're
expected to add additional parts of the name, either as initials
or in full. This is what the 'uniquename' option does. Here are
the same citations with uniquename=init:
Smith and J. Doe 2011a
Smith and J. Doe 2011b
Smith and E. Doe 2011
'uniquename=init' restricts name disambiguation to initials. Since
the first two Does are still ambiguous at that point, we need to
fall back to 'extrayear'. With uniquename=full, names are printed
in full where required:
Smith and John Doe 2011
Smith and Jane Doe 2011
Smith and E. Doe 2011
In the past, this feature was of limited use since it only worked
for entries with a single author/editor. It now works for any name
at any point in the list. Since this is only possible with Biber,
the feature has been removed entirely from the BibTeX backend.
When it comes to lists of names, there's another aspect to
ambiguity. Let's call it list ambiguity. Consider the following
data:
Doe/Jones/Smith 2011
Smith/Johnson/Doe 2011
Smith/Doe/Edwards 2011
Smith/Doe/Jones 2011
Most author-year and author-title styles will truncate long
author/editor lists in citations. For example, with maxnames=1
we'd get:
Doe et al. 2011
Smith et al. 2011a
Smith et al. 2011b
Smith et al. 2011c
Since the author lists are ambiguous after truncation, the
'extrayear' marker is added by the style in order to ensure unique
citations. Here again, many style guides mandate that the extra
letter be used to disambiguate works by the same authors only. In
order to disambiguate author lists, you're typically required to
add more names, exceeding the maxnames/minnames truncation point.
The new 'uniquelist' feature introduced in this release does that
automatically. With maxnames=1 and uniquelist=true, we get:
Doe et al. 2011
Smith, Johnson et al. 2011
Smith, Doe and Edwards 2011
Smith, Doe and Jones 2011
As seen above, the 'uniquelist' option overrides the 'maxnames'
setting on a per-entry basis. Essentially, what happens is that
the "et al." parts of the citations get expanded to the point of
no ambiguity -- but no further than that.
'uniquename' and 'uniquelist' may also be combined. Consider the
following data:
John Doe/Jane Smith/William Jones 2011
John Doe/John Smith/William Jones 2011
John Doe/Edward Smith/William Jones 2011
John Doe/John Edwards/William Jones 2011
John Doe/John Edwards/Jack Johnson 2011
With maxnames=1:
Doe et al. 2011a
Doe et al. 2011b
Doe et al. 2011c
Doe et al. 2011d
Doe et al. 2011e
With maxnames=1, uniquename=true, uniquelist=true:
Doe, Jane Smith et al. 2011
Doe, John Smith et al. 2011
Doe, E. Smith et al. 2011
Doe, Edwards and Jones 2011
Doe, Edwards and Johnson 2011
If multiple disambiguation options are active, names are
disambiguated first and works last. The order is as follows:
1. uniquename
2. uniquelist
3. extrayear, singletitle
Adding this feature to existing styles is simple. The 'uniquename'
information needs to be evaluated in the name formatting directive
which controls the formatting of the 'labelname' list. The default
definition in biblatex.def is responsive to the 'uniquename'
option. If you're using that, just enable the package option and
that's it. If you're using a different format, check biblatex.def
on how to incorporate the 'uniquename' feature.
Adding support for 'uniquelist' is also trivial. If the second
optional argument of \printnames is omitted (i.e., no explicit
range is specified), \printnames{labelname} will print the
'labelname' list up to the truncation point defined with the
'maxnames'/'minnames' package options. If 'uniquelist' is enabled,
it will simply override 'maxnames' on a per-entry basis, i.e.,
\printnames will print the 'labelname' list up to point of no
ambiguity. Unless you're specifying explicit ranges, all you need
to do is enable the 'uniquelist' package option.
* Name disambiguation in standard styles [Biber only]
All standard author-year and author-title styles now enable
uniquename/uniquelist disambiguation. Of course this only works
when using Biber.
RELEASE NOTES FOR VERSION 1.3
The list of changes in Biblatex is fairly short this time. Most of
the big feature improvements are found in Biber.
* Biber 0.8.3, Biber in TeX Live main.
Update Biber to version 0.8.3 when upgrading to biblatex 1.3. Note
that Biber is now available from the main TeX Live repository.
This means that you don't need to point tlmgr to TLContrib any
more. It also implies that more architectures are supported.
* Experimental Zotero and EndNote import [Biber only]
Biber now features import support for the Zotero RDF/XML and
EndNote XML formats. See the Biber manual for details and caveats.
* Fine-grained name delimiter/spacing controls [Biber only]
The spacing between name parts and line breaks in names can now be
customized in great detail, especially with Biber. With BibTeX,
customization is much more limited but still possible to some
extent. See the manual for details.
* Added citation counter
As its name suggests, the new 'citecounter' feature counts
citations, i.e., it indicates how many times an entry is cited in
a reference section. The value of the 'citecounter' counter refers
to the total per-entry/per-refsection citation count.
The counter works much like the citation trackers. It is useful
for styles which handle initial and repeated citations
differently. For example, you may want to suppress the
introduction of a shorthand of an entry in the initial citation if
it is cited only once anyway.
* Added \smartcite command
I've added a new citation command called \smartcite (along with
\Smartcite, \smartcites, etc.). Essentially, this is a \footcite
command which behaves like \parencite when used in a footnote.
It's particularly useful in conjunction with autocite=footnote as
it makes \autocite even more versatile.
Style authors should note that the default setup for
autocite=footnote has been modified and now uses \smartcite
instead of \footcite. Providing a \smartcite command is
straightforward. In most cases, all you need to do in your style
is duplicate the definition of \footcite and adapt the wrapper
code like so:
\DeclareCiteCommand{\smartcite}
[\iffootnote{\mkbibparens}{\mkbibfootnote}]
{...}
{...}
{...}
{...}
RELEASE NOTES FOR VERSION 1.2
* Remote resources, experimental RIS import [Biber only]
Biber 0.8 features support for remote .bib files (HTTP/FTP) and
experimental RIS file import. See the Biber manual and
\addbibresource in the biblatex manual for details.
* \bibliography superseded by \addbibresource
As Biber development opens new possibilities, I've refactored the
user interface for specifying bibliographic resources.
\bibliography is superseded by \addbibresource. There are two
differences when using \addbibresource:
1) Always give the full file name, do not omit the .bib extension.
2) No comma-separated lists, use one \addbibresource per bib file.
For example, the old form:
\bibliography{file1,file2}
is superseded by:
\addbibresource{file1.bib}
\addbibresource{file2.bib}
\addbibresource also supports options:
\addbibresource[location=local,type=file,datatype=bibtex]{file1.bib}
You only need to specify options which differ from the defaults
(local/file/bibtex), e.g.:
\addbibresource[datatype=ris]{file.ris}
\addbibresource[location=remote]{ftp://192.168.3.57/~fred/file1.bib}
The change is fully backwards compatible since \bibliography is
still available. There is no need to update existing files but
\addbibresource is the recommended way for new files.
* Smart/customizable 'crossref' data inheritance [Biber only]
Biber has been supporting 'crossref' customization for some time
but the biblatex user interface was still missing. This release
finally adds a user interface. This means that you may configure
how the data is inherited from the entry the 'crossref' field
refers to. The manual has all the details, including the default
settings.
If you're using the 'crossref' field, this change is a significant
one since the smart data inheritance is set up by default. By
'smart' I mean a sensible parent/child field mapping which
replaces BibTeX's symmetric mapping. There is no need any more to
duplicate fields.
BibTeX crossref:
book -> inbook
-----------------------------------
title -> title
booktitle -> booktitle
Biber crossref:
book -> inbook
-----------------------------------
title -> booktitle
* New multi-volume entry types
There are four new entry types in this release: mvbook,
mvcollection, mvproceedings, mvreference. They are similar to the
established types without the 'mv' prefix but indicate a
multi-volume work explicitly.
This difference is crucial of you want to leverage Biber's
'crossref' support because titles are inherited differently in
this case:
book -> inbook
-----------------------------------
title -> booktitle
subtitle -> booksubtitle
titleaddon -> booktitleaddon
mvbook -> inbook
-----------------------------------
title -> maintitle
subtitle -> mainsubtitle
titleaddon -> maintitleaddon
RELEASE NOTES FOR VERSION 1.1
Starting with this release, we'll leverage the possibilities of Biber
to support features not possible with BibTeX. That's why most major
new features in this release are 'Biber only'.
* Biber update
Update Biber to version 0.7 when installing Biblatex 1.1. The
latest Biber is available from this location:
http://sourceforge.net/projects/biblatex-biber/files/
biblatex-biber/current/
Ready-to-run binaries are here:
http://sourceforge.net/projects/biblatex-biber/files/
biblatex-biber/current/binaries/
* Configurable sorting schemes [Biber only]
This release introduces configurable sorting schemes. With Biber,
you may now set up arbitrary sorting specs. The new custom sorting
specs are very powerful and come with a flexible user interface.
See \DeclareSortingScheme, \DeclareSortExclusion, and
\DeclarePresort in the manual for details. Like the predefined
sorting specs, new ones are activated with the 'sorting' option.
If you are using Biber, all known sorting schemes are still
available by default, but they are now defined in biblatex.def
instead of being hard-coded in the backend.
If you are using BibTeX, note that the old hard-coded schemes in
biblatex.bst have not been altered. They continue to work as they
did before, but you can't modify them or define new ones.
* Configurable 'labelname'/'labelyear' [Biber only]
The special fields 'labelname'/'labelyear' may now be customized
by style authors. In conjunction with the configurable sorting
schemes, this dramatically increases biblatex's flexibility,
especially with author-year, author-title, and verbose styles. See
\DeclareLabelname and \DeclareLabelyear in the manual for details.
* Introducing per-type package options
Starting with this release, certain package options may be set on
a per-type basis. Use the new optional argument of
\ExecuteBibliographyOptions to specify the type. Note that most
per-type options are 'Biber only'. For details, see the rather
lengthy list of per-type options in the changelog.
* Improved static entry sets [Biber only]
Static entry sets (i.e., @set entries in the bib file) are now
natively supported by Biber. This means that instead of the rather
convoluted old setup:
@Set{set1,
entryset = {key1,key2,key3},
crossref = {key1},
}
@Article{key1,
entryset = {set1},
author = {...},
title = {...},
...
}
@InCollection{key2,
entryset = {set1},
author = {...},
title = {...},
...
}
@Article{key3,
entryset = {set1},
author = {...},
title = {...},
...
}
defining a static set is now as simple as this:
@Set{set1,
entryset = {key1,key2,key3},
}
The 'crossref' in the @set head entry and the 'entryset' pointers
in the member entries are no longer required. Defining a static
set is now as simple as adding a @set entry with an 'entryset'
field specifying the set. That's all.
Since there are no 'entryset' pointers in the member entries, the
members may be part of a set in one document/refsection and
stand-alone references in another one, depending on the presence
of the @set entry. If the @set entry is cited, the set members are
grouped automatically. If not, they behave like regular entries.
* Introducing dynamic entry sets [Biber only]
Dynamic entry sets are a new way of grouping entries. They differ
from static ones in that they are not defined in the bib file but
declared in the document, i.e., they work on a per-document/
per-refsection basis. Instead of defining a set in the bib file:
@Set{set1,
entryset = {key1,key2,key3},
}
you declare it like that in the document:
\defbibentryset{set1}{key1,key2,key3}
This works anywhere in the document, including the document body.
Apart from that, dynamic entry sets work exactly like static ones.
See the manual for more information.
* mcite/mciteplus-like citation commands [Biber only]
Users of the mcite/mciteplus packages are already familiar with
the concept of a dynamic entry set. With mcite/mciteplus, sets are
defined as they are cited. To facilitate migration to biblatex,
this release comes with a special citation module which provides
mcite/mciteplus-like citation commands on top of the commands
provided by the main citation style. For example, the following
command:
\mcite{setA,*keyA1,*keyA2,*keyA3}
is equivalent to this:
\defbibentryset{setA}{keyA1,keyA2,keyA3}\cite{setA}
Note that there is a syntactical difference between biblatex's
dynamic entry sets and the citation grouping of mcite/mciteplus.
With mcite/mciteplus, the first set member plays double-duty as
group identifier. With biblatex, an entry set is an entity in its
own right which requires a unique entry key.
For example, an mcite citation group is declared like this:
\cite{keyA1,*keyA2,*keyA3}
In contrast to that, a dynamic entry set defined with one of the
commands provided by biblatex's 'mcite' package option is set up
like that:
\mcite{setA,*keyA1,*keyA2,*keyA3}
Note the extra identifier 'setA': this is the entry key assigned
to the set. See the manual for further details.
* Low-level bibliography filters
The \defbibfilter command and the 'filter' option of
\printbibliography are now supplemented by \defbibcheck and the
corresponding 'check' option.
Conceptually, a 'check' is like a filter controlling which entries
are included in a certain (sub-)bibliography. In contrast to
filters, however, the checks don't use a high-level syntax. Checks
are macros which directly employ the low-level conditionals of
biblatex's data interface. Here's an example 'check' which tests
if an entry has an abstract:
\defbibcheck{hasabstract}{%
\iffieldundef{abstract}{\skipentry}{}%
}
...
\printbibliography[check=hasabstract]
This will only print entries with an 'abstract' field. More complex
checks are possible as well. For example, this check will exclude
all entries published prior to the year 2000:
\defbibcheck{recent}{%
\iffieldint{year}
{\ifnumless{\thefield{year}}{2000}
{\skipentry}
{}}
{\skipentry}}
See the manual for further details.
* More flexible 'maxnames'/'minnames' controls
I've added some additional package options related to 'maxnames'/
'minnames'. See 'maxbibnames'/'minbibnames' and 'maxcitenames'/
'mincitenames' in the manual.
The new options don't introduce entirely new functionality. They
are rather convenience options which allow setting 'maxnames'/
'minnames' in a more flexible way. For example, setting the
'maxbibnames' option like this:
\usepackage[maxnames=3,maxbibnames=99]{biblatex}
is equivalent to:
\usepackage[maxnames=3]{biblatex}
\begin{document}
...
\printbibliography[maxnames=99]
'maxcitenames' does the same for all citations.
* Defining and resetting per-type formats
\DeclareFieldFormat and related commands support per-type
formatting directives. By default, biblatex uses this feature to
format the 'title' field depending on the entry type. For example,
book titles are printed in italics, article titles use quotes
instead. In previous releases, lines like the following ones were
found in biblatex.def:
\DeclareFieldFormat{title}{\mkbibemph{#1}}
\DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
\DeclareFieldFormat[inbook]{title}{\mkbibquote{#1}}
...
This release brings two new features related to that.
1) \DeclareFieldFormat and related commands now support a
comma-separated list of entry types. This facilitates the
definition of per-type formats:
\DeclareFieldFormat{title}{\mkbibemph{#1}}
\DeclareFieldFormat[article,inbook,...]{title}{\mkbibquote{#1}}
2) \DeclareFieldFormat and friends now come with a starred variant
which resets all type-specific formats. With previous releases,
removing or modifying the formatting could be tedious if you
didn't make that book/article distrinction. You had to change the
default plus all type-specific formats:
\DeclareFieldFormat{title}{#1}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[inbook]{title}{#1}
...
The new starred commands do that in one shot:
\DeclareFieldFormat*{title}{#1}
Note that the default formatting has not been altered. It's just a
bit easier to modify it now.
* New option 'mergedate' (authoryear style)
By popular request, I've added a 'mergedate' option to the
'authoryear' bibliography style. The option controls whether or
not the date label is merged with the date specification in the
bibliography.
For example, while mergedate=false outputs:
Doe, John (2008a). Article. In: Journal 23.5 (May 2008),
pp. 5-24.
mergedate=true will print:
Doe, John (May 2008a). Article. In: Journal 23.5, pp. 15-34.
Note that 'mergedate=true' is in fact the old behavior (and the
default setting). 'mergedate=false' is the new feature!
RELEASE NOTES FOR VERSION 1.0
Here it finally is, the long-awaited first stable release of
biblatex. As the 0.9* releases have proven to be very mature and
reliable, this release is essentially 0.9e with some localization
updates and minor tweaks. It concludes the 0.9 development cycle
rather than introducing completely new features.
The stable status basically has two consequences. 1) We'll try to be
more cautious in terms of backwards compatibility in the future and
2) Biblatex moves to a different location on CTAN. See below for
details.
* Development Roadmap
Over the course of the 1.x development cycle, you'll increasingly
see new features being added which are tagged as 'Biber only' in
the manual. The BibTeX backend of Biblatex will be maintained for
some more time but it won't receive any feature updates. There is
a simple reason for that: the kind of features we'll introduce
can't be handled by BibTeX (that's why we have Biber, after all).
While you can stay with the BibTeX backend for some more time,
it's highly advisable to switch to Biber fairly soon as BibTeX
support will be discontinued at some point. To give you an idea
of the timescale: we're talking months rather than years.
* New location on CTAN
The package moves from
tex-archive/macros/latex/exptl/biblatex/
to
tex-archive/macros/latex/contrib/biblatex/
The pre-bundled TDS archive moves from
tex-archive/install/macros/latex/exptl/
to
tex-archive/install/macros/latex/contrib/
* New contrib location on CTAN
There's also a new location for contributed styles:
tex-archive/macros/latex/contrib/biblatex-contrib/
The old exptl/biblatex-contrib/ directory is still available and
will keep being available as a staging area for styles which are
work in progress. If your style is considered stable, you may
want to move it to contrib/biblatex-contrib/. If it's
experimental, you may prefer exptl/biblatex-contrib/.
* Biber update
When updating Biblatex, make sure you also get the latest Biber
from this location:
http://sourceforge.net/projects/biblatex-biber/files/
biblatex-biber/current/
Ready-to-run binaries are here:
http://sourceforge.net/projects/biblatex-biber/files/
biblatex-biber/current/binaries/
* Modified 'bibencoding' package option, new default
I've renamed 'bibencoding=inputenc' to 'bibencoding=auto' to make
it clear that this option is not specific to the inputenc package
and also works with XeTeX/LuaTeX in native UTF-8 mode.
bibencoding=inputenc is still supported as an alias.
'bibencoding=auto' is the new package default. This means that
biblatex by default assumes that the workflow is transparent,
i.e., that the .bib files use the same encoding as the .tex file.
Note that it is the input encoding of the .tex (!) file which is
detected automatically. If the .bib files use a different
encoding, you always need to specify it explicitly.
If you prefer the old default, you can easily restore it by
adding the following like to your biblatex.cfg file:
\ExecuteBibliographyOptions{bibencoding=ascii}
The new default setting may trigger some warnings which have not
been triggered before. Consider this case:
\usepackage[latin1]{inputenc}
\usepackage{biblatex}
This will trigger a warning instructing you to switch to bibtex8
or Biber. That's because the defaults are 'backend=bibtex' and
'bibencoding=auto'. The latter implies that the .bib files are
Latin1 encoded but traditional BibTeX can't handle that, hence
the warning. If the .bib files do in fact use Latin1 encoding it's
a good idea to heed the advice:
\usepackage[latin1]{inputenc}
\usepackage[backend=bibtex8/biber]{biblatex}
If they're Ascii, set the encoding explicitly:
\usepackage[latin1]{inputenc}
\usepackage[bibencoding=ascii]{biblatex}
On the other hand, you may delete all old 'bibencoding=inputenc'
options as this is the default setting now.
RELEASE NOTES FOR VERSION 0.9e
* Biber update, options 'sortupper', 'sortlocale'
Biber has been updated to version 0.5.7. There are ready-to-run
binaries for the latest version. If you're using Biber, upgrade
to 0.5.7 or later when upgrading to biblatex 0.9e.
Biblatex now offers two package options which correspond to
Biber's command line options --sortupper and --sortlocale, the
point being that you can set them on a per-document basis. I've
also added some explanations concerning encodings and locale
settings. See the changelog for pointers.
* Improved backrefs for @set entries, 'backrefsetstyle' option
I've revised and improved the handling of back references related
to entry sets. Biblatex is now capable of tracking the @set head
entry and the set members separately, if so desired.
The new package option 'backrefsetstyle' controls the tracking
mode. By way of example, consider a set ("set1") with three
members ("memA", "memB", "memC") and the following input:
on page 1: \cite{set1}
on page 2: \cite{memA}
on page 3: \cite{memB}
on page 4: \cite{memC}
With backrefsetstyle=setonly, this will generate the following back
references:
set1: 1, 2, 3, 4
memA: -
memB: -
memC: -
With backrefsetstyle=memonly:
set1: -
memA: 1, 2
memB: 1, 3
memC: 1, 4
With backrefsetstyle=setormem:
set1: 1
memA: 2
memB: 3
memC: 4
With backrefsetstyle=setandmem:
set1: 1, 2, 3, 4
memA: 2
memB: 3
memC: 4
With backrefsetstyle=memandset:
set1: 1
memA: 1, 2
memB: 1, 3
memC: 1, 4
With backrefsetstyle=setplusmem:
set1: 1, 2, 3, 4
memA: 1, 2
memB: 1, 3
memC: 1, 4
To take advantage of that in custom styles, only a minor update
is required. Supporting the @set entry and the set members
separately is pretty intuitive. Any \printlist command in the
@set entry will see the 'pageref' list of the @set entry; the
\printlist commands in the regular drivers (which handle the set
members) will see the 'pageref' list of the respective member:
\DeclareBibliographyDriver{set}{%
\entryset{}{}%
\newunit\newblock % <- NEWLY ADDED
\printlist{pageref}% <- NEWLY ADDED
\finentry}
\DeclareBibliographyDriver{<entry type>}{%
...
\printlist{pageref}%
...
}
There are some bibmacros as well as a new \bibpagerefpunct
separator to help with that, hence the actual code in the
standard styles works like this:
\DeclareBibliographyDriver{set}{%
\entryset{}{}%
\newunit\newblock % <- NEWLY ADDED
\usebibmacro{setpageref}% <- NEWLY ADDED
\finentry}
\DeclareBibliographyDriver{<entry type>}{%
...
\setunit{\bibpagerefpunct}\newblock % <- MODIFIED
\usebibmacro{pageref}%
...
}
That's all. This will ensure that all tracking modes are
supported.
RELEASE NOTES FOR VERSION 0.9d
* Date formatting options
I've removed all '<date>=none' options as this feature seems to
be causing some confusion. Setting '<date>=none' was not
sufficient to suppress a certain date in all cases because date
specifications may also incorporate elements such as the 'issue'
field, be tied to the 'url' in a way that leads to erroneous
formatting if there is no date, etc. I'm afraid selectively
omitting dates really needs to be handled on the style level.
There's a new set of '<date>=iso8601' options which print
extended-format ISO-8601 dates. Not all of ISO-8601 is
implemented, only the core elements of the extended format which
are also used in .bib files, i.e., "yyyy-mm-dd" for individual
dates and "yyyy-mm-dd/yyyy-mm-dd" for ranges. Full-scale ISO-8601
date/time specs like "2005-08-09T18:31:42P3Y6M4DT12H30M17S"
wouldn't make much sense in a bibliography anyway. Note that
these options are language agnostic. They will override any
region-specific settings provided by .lbx files. That's the
whole point of ISO-8601, after all.
RELEASE NOTES FOR VERSION 0.9c
* Improved reencoding support
Biber 0.5.5 is capable of reencoding the data in bib files on the
fly. This solution is more robust than biblatex's macro-level
reencoding with inputenc. With 'backend=biber', biblatex will now
use Biber instead of inputenc. In addition to that, the biblatex
code which detects if the bib data needs to be reencoded to match
the encoding of the tex file is smarter now and should work
smoothly.
In practice, this simply means that you may always use the
'bibencoding' option to specify the encoding of your bib files
(there was some potential for spurious reencoding steps in
previous versions), with any backend. It is in fact highly
recommended to do so for two reasons: 1) the default value is
'ascii', and 2) biblatex will warn you if the bib encoding can't
be handled by the backend you selected.
You may put your platform default in biblatex.cfg; there is no
need to do that in each and every preamble (you may still
override all biblatex.cfg settings on a per-document basis in the
preamble, if required).
* UTF-8 encoded entry keys and bib filenames
Biber 0.5.5 supports UTF-8 encoded entry keys. Biblatex will work
with UTF-8 keys and filenames when running on an engine with
native UTF-8 support (i.e., XeTeX or LuaTeX). Macro-level UTF-8
support with inputenc/inputenx will not do.
* Improved arXiv support
I've added an additional eprint-related field plus two aliases to
better support arXiv references. The changelog includes pointers
to the relevant sections of the manual.
RELEASE NOTES FOR VERSION 0.9b
* Extended Biber interface
If you're using Biber as backend, make sure you update Biber as
well (to version 0.5.4 or higher) because the Biblatex -> Biber
interface has been extended.
The most obvious effect of this improvement is that Biber is now
capable of handling multiple refsections in a single pass. If you
have any 'refsection' environments in a document, you only need to
run Biber once.
* New dependency: logreq package
Starting with this release, biblatex will use the logreq package
to write machine-readable messages to an auxiliary log file. When
installing biblatex 0.9b, make sure to install the logreq package
as well. It is available from CTAN:
http://www.ctan.org/tex-archive/macros/latex/contrib/logreq/
A TDS archive is available as well:
http://www.ctan.org/tex-archive/install/macros/latex/logreq.tds.zip
* Modified \defbibfilter syntax
I've modified \defbibfilter such that it uses \ifboolexpr (from
etoolbox.sty) instead of \ifthenelse (from ifthen.sty)
internally. \ifboolexpr uses a slightly different syntax.
For example, this definition:
\defbibfilter{example}{%
\( \type{book} \or \type{inbook} \)
\and \keyword{abc}
\and \not \keyword{x y z}
}
becomes:
\defbibfilter{example}{%
( type=book or type=inbook )
and keyword=abc
and not keyword={x y z}
}
There is no need to update existing files since the old
\ifthenelse syntax is still supported. \defbibfilter will
implicitly 'translate' at definition time, if required.
* Renamed option 'defernums' to 'defernumbers'
The package option 'defernums' has been renamed to
'defernumbers'.
* Prefixed numerical citations, improved 'numeric' styles
I've added three options to \printbibliography which are related
to numerical citation schemes. They are called 'prefixnumbers',
'resetnumbers', and 'omitnumbers'. Note that these options
require that 'defernumbers' be set globally since they assign the
numeric labels as the bibliography is generated (as opposed to at
the beginning of the document body, as the data is read in).
The new options enable the numeric styles to support prefixed
numerical citations. The following may be accomplished by setting
'prefixnumbers' for each prefixed subbibliography:
REFERENCES
Printed References
[A1] ...
[A2] ...
Online References
[B1] ...
[B2] ...
It is also possible to mix one non-prefixed subbibliography with
one or more prefixed ones (set 'prefixnumbers' for each prefixed
subbib and 'resetnumbers' for the non-prefixed one) or even to
mix numerical citations with author-year or author-title
citations (set 'omitnumbers' for all non-numerical subbibs).
See the files '16-numeric-prefixed-1', '17-numeric-prefixed-2',
and '18-numeric-hybrid' in the 'examples' subdirectory for
practical examples.
Adding support for prefixed numerical citations to existing
numeric styles is trivial. The prefixes set in the argument to
\printbibliography are available in the 'prefixnumber' field. If
no prefix has been set, the field is undefined. Hence, in the cbx
file, simply replace:
\printfield{labelnumber}
with:
\printfield{prefixnumber}%
\printfield{labelnumber}
In the bbx file, the prefix needs to be incorporated in the
definition of the bibliography environment. Replace:
\defbibenvironment{bibliography}
{\list
{\printfield[labelnumberwidth]{labelnumber}}
{...}
{\endlist}
{\item}
with:
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{...}
{\endlist}
{\item}
The numeric styles which ship with biblatex support prefixed
labels out of the box.
* New author-title style
There's a new style which rounds off the selection of
author-title styles which ship with biblatex. It's called
'authortitle-ticomp' and, as you can tell by the name, it's a
variant of the 'authortitle-tcomp' style with an 'ibidem'
feature.
* Improved verbose styles, added 'citepages' option
By popular request, all verbose styles now offer a 'citepages'
option which deals with the 'pages' field in citations, in
particular in cases in which the postnote is numerical.
Note that style specific options are only mentioned briefly in
the manual. They are discussed in greater details in the example
file for the style (in the 'examples' subdirectory).
* Long + short bibliography strings available
Previous biblatex releases used to pick the long or the short
version of the strings in the lbx files at file load time,
depending on the setting of the global 'abbreviate' option.
Starting with this release, both versions are kept in memory.
In addition to \bibstring and friends, which print the long or
the short version of the string (depending on the 'abbreviate'
option), there are now commands like \biblstring and \bibsstring,
which force the long or the short version, respectively.
Note that the auxiliary macro \lbx@fromlang, which is used in lbx
files, has been split up into \lbx@lfromlang and \lbx@sfromlang.
* Automatically omit redundant language specifications
Some style guides require that authors indicate the language of all
foreign-language items in the bibliography. Biblatex's 'language'
field (which is in fact a list) helps to deal with this
requirement. If you are writing in more than one language and
reuse the same set of bib files in different contexts, it is
convenient to include this information whenever you add a new
entry to a bib file. However, this leads to redundant
information. It is rather odd to indicate "English" in the
reference to an English book cited in an English article.
The 'clearlang' option and \DeclareRedundantLanguages avoid such
redundant language specifications. \DeclareRedundantLanguages
maps languages as indicated in the 'language' field to the
language identifiers of the babel package. Given this
information, biblatex can omit the language if it matches the
language of the document. Technically, this means that the
'language' field will appear as undefined to styles, so it is
safe to simply use '\printlist{language}' in styles and let
biblatex sort out the rest.
The 'clearlang' option controls this feature globally.
\DeclareRedundantLanguages mappings are typically included in lbx
files (but may also be given on a per-document basis in the
preamble). All standard lbx files which ship with biblatex now
include such mappings and 'clearlang' is enabled by default.
RELEASE NOTES FOR VERSION 0.9a
This release adds a few changes and improvements which were
originally scheduled for biblatex 0.9 but somehow got lost in the
release process or didn't make it in time. Pay attention to all
changes tagged as "CAVEAT".
* [CAVEAT] Prenote placement with \cite, \textcite [numeric/alphabetic]
The placement of the prenote in all numeric and alphabetic styles
has been modified.
Old format:
\cite[see][15]{key} -> see [1, p. 15]
\parencite[see][15]{key} -> [see 1, p. 15]
\textcite[see][15]{key} -> see Doe [1, p. 15]
New format:
\cite[see][15]{key} -> [see 1, p. 15]
\parencite[see][15]{key} -> [see 1, p. 15]
\textcite[see][15]{key} -> Doe [see 1, p. 15]
As seen in the above examples, the new format places the prenote
inside the brackets. If you want the prenote outside of the
brackets, you can simply use:
see \cite[15]{key} -> see [1, p. 15]
see \textcite[15]{key} -> see Doe [1, p. 15]
which is similar to the old format.
* [CAVEAT] Prenote placement with \textcite [authoryear/authortitle]
The placement of the prenote in all authoryear and authortitle
styles has also been modified.
Old format:
\cite[see][15]{key} -> see Doe 2010, p. 15
\parencite[see][15]{key} -> (see Doe 2010, p. 15)
\textcite[see][15]{key} -> see Doe (2010, p. 15)
New format:
\cite[see][15]{key} -> see Doe 2010, p. 15
\parencite[see][15]{key} -> (see Doe 2010, p. 15)
\textcite[see][15]{key} -> Doe (see 2010, p. 15)
The new format places the prenote inside the brackets. If you
want the prenote outside of the brackets, you can simply use:
see \textcite[15]{key} -> see Doe (2010, p. 15)
which is similar to the old format.
* [CAVEAT] Introducing \defbibenvironment
I'm phasing out the thebibliography/theshorthands environments
and the corresponding commands \thebibitem and \thelositem.
Essentially, the old way of controlling the (high-level) layout
of the bibliography and the list of shorthands is replaced by a
new mechanism based on \defbibenvironment. It's not radically
different. For example, where a style has code like this:
\renewenvironment*{thebibliography}
{\list{}{...}}
{\endlist}
\renewcommand*{\thebibitem}{\item}
\renewenvironment*{theshorthands}
{\list{}{...}}
{\endlist}
\renewcommand*{\thelositem}{\item}
replace it with:
\defbibenvironment{bibliography}
{\list{}{...}}
{\endlist}
{\item}
\defbibenvironment{shorthands}
{\list{}{...}}
{\endlist}
{\item}
The new system is similar to \defbibheading: you use
\defbibenvironment to define the environment and the new 'env'
option of \printbibliography and \printshorthands to select it.
The point of the new system is that you can have different styles
for different (partial) bibliographies in a document. It's also
conceptually in line with \defbibheading now.
I've added some compatibility code to biblatex. Older styles
using thebibliography/thebibitem and theshorthands/thelositem
will continue to work until you use \defbibenvironment for the
first time to modify the default definition. From that point on,
the old environment will be ignored.
Updating old styles is of course highly recommended. The
compatibility code may be removed from biblatex after 1.0. The
standard styles have been updated to use the new syntax. They
will ignore any changes based on the old definitions.
* Added \printbibheading
\printbibheading is the heading part of \printbibliography. This
is useful for subdivided bibliographies. E.g., instead of
\chapter{\bibname}
\printbibliography[heading=subbibliography,type={...},...]
\printbibliography[heading=subbibliography,type={...},...]
...
you use:
\printbibheading % = \printbibheading[heading=bibliography]
\printbibliography[heading=subbibliography,type={...},...]
\printbibliography[heading=subbibliography,type={...},...]
...
The point is that the overall heading is in sync with the
subheadings.
* Smart parentheses and brackets
This release adds a new 'parenthesis tracker', i.e., if
parentheses and/or brackets are nested, biblatex alternates
between parentheses and brackets, depending on the nesting level.
E.g.:
\mkbibparens{text \mkbibparens{text} text}
\mkbibbrackets{text \mkbibbrackets{text} text}
yields
(text [text] text)
[text (text) text]
This also works with \bibopenparen + \bibcloseparen and
\bibopenbracket + \bibclosebracket as well as the new citation
commands \parentext and \brackettexts.
* Open ended date ranges
There's one thing I forgot to mention when introducing the new
date fields in the previous release. It is possible to specify an
open ended range by leaving the end date blank:
1988/1992 = 1988-1992
1988/ = 1988-today
1988 = 1988
Open ended ranges are represented by a defined but empty
"endyear" component on the level of the style interface:
date = {1988} -> day = undefined
month = undefined
year = "1988"
endday = undefined
endmonth = undefined
endyear = undefined
date = {1988/} -> day = undefined
month = undefined
year = "1988"
endday = undefined
endmonth = undefined
endyear = EMPTY
date = {1988/1992} -> day = undefined
month = undefined
year = "1988"
endday = undefined
endmonth = undefined
endyear = "1992"
All high-level date commands like \printdate detect and handle
open ended ranges autoamtically. Use
\iffieldequalstr{endyear}{}
{true}
{false}
if you want to test for open ended ranges explicitly.
* Extended language support: Finnish
This release comes with a finnish.lbx file. The translations
have been contributed by Hannu V\"ais\"anen.
* Updated language support: Greek
This release comes with an updated greek.lbx file contributed
by biblatex user Prokopis.
* Updated examples, some updates in the manual
Some of the examples which ship with biblatex were not completely
up to date in the 0.9 release. They have been updated now. I've
also corrected/added a few minor points in the manual.
RELEASE NOTES FOR VERSION 0.9
Several features on my 'to do' list have been deferred because they
introduce backwards compatibility issues. I wanted to implement them
all in one shot so that style authors only need to update their
styles once. This release finally takes that step. In other words:
THIS VERSION IS NOT FULLY BACKWARDS COMPATIBLE!
Style authors will most likely need to update their styles to make
them work with this release. You will find detailed hints about what
needs to be updated in the release notes below. Changes which raise
backwards compatibility issues are tagged as "CAVEAT". Users who
rely on styles found in:
macros/latex/exptl/biblatex-contrib/
on CTAN are advised to stick with biblatex 0.8 for the time being
and defer the upgrade to 0.9 until the styles they use have been
updated. If you have accidentally installed this release and find
out that you need to downgrade, you can get the previous biblatex
release from the project page on Sourceforge:
http://sourceforge.net/projects/biblatex/files/
CTAN always carries the latest version.
I have received many inquiries about why biblatex is not yet
included in TeX Live and MikTeX and why I was maintaining that nasty
do-not-distribute clause. There seems to be some confusion about
what the term 'stable' means. The point typically brought up was
that biblatex runs well and is thus 'stable'. Well, in that sense,
biblatex has been pretty stable since version 0.1. However, it has
not been stable in the sense of maintaining backwards compatibility
since version 0.1. This release, however, is finally considered
suitable for wider distribution.
* Distributing biblatex
This release should be a reasonable target for TeX distributions,
even though biblatex is still tagged as 'beta' and located in the
experimental branch on CTAN. I will make the move to the stable
branch when it hits 1.0. Given the number of changes and new
features in this release, it's quite possible that some bugs
slipped in. If you start packaging biblatex now, be prepared for
some maintenance releases (i.e., 0.9a, 0.9b, etc.) in the
upcoming weeks.
A few more notes to distributors:
- See the README file for requirements and dependencies.
- The *.csf files in doc/resources go into TEXMF/bibtex/csf/.
The names will not conflict with the *.csf files shipping with
biblatex8. Biblatex uses names like latin1.csf while biblatex8
uses 88591lat.csf.
- It would be nice to have two copies of biblatex-examples.bib
installed, one in TEXMF/doc for users looking for documentation
in the usual place and a second copy in TEXMF/bibtex/bib/.
Since users are encouraged to use this database in minimal
examples, it's handy to have it readily available.
- Biber is the next-generation backend of biblatex. It would be
very welcome to have a Biber package as well. See the project
page on http://biblatex-biber.sourceforge.net/ for details.
Note that biblatex currently supports three backends: BibTeX
(i.e., traditional 7-bit BibTeX), bibtex8, and Biber.
BibTeX/bibtex8 support will be discontinued in biblatex 2.x.
- A package for the contributed styles found in
macros/latex/exptl/biblatex-contrib/
is also welcome because some of these styles are already very
popular. However, wait for the styles in to be updated to
biblatex 0.9 before packaging them.
* Contributing to biblatex
Localizing biblatex heavily depends on user contributions. I've
added a new tracker named 'Contrib' to the project page which
will hopefully help to organize this process:
http://sourceforge.net/tracker2/?group_id=244752
There is one item for each language supported by biblatex. The
status of the item reflects the localization status of the
corresponding language. If the status is "open", the localization
module is incomplete or in need of peer review by a native
speaker. If the status is "closed", the module is complete and
there are no known issues (you can still post comments to closed
items and upload files if you want to suggest improvements).
If you have updates for a language module, upload the updated
*.lbx file in the appropriate thread. If you want to contribute
support for a new language, simply open a new tracker item.
* Updating existing biblatex styles
As usual, the full list of changes is found in the biblatex
manual. The release notes you are just reading mention all
changes which are not backwards compatible. Pay attention to all
"CAVEAT" points.
When you update your style, it may be a good idea to add some
code which checks that the style is running under biblatex 0.9 or
later. You can use the standard LaTeX \@ifpackagelater test for
this purpose. Here's some sample code (where 'YYYY/MM/DD' needs
to be replaced with the real release date of biblatex 0.9 and
'MYSTYLE' with the name of your style):
\@ifpackagelater{biblatex}{YYYY/MM/DD}
{}
{\PackageError{biblatex}
{Outdated 'biblatex' package}
{The 'MYSTYLE' style requires biblatex v0.9 or later.\MessageBreak
You are using: '\csuse{ver@biblatex.sty}'.\MessageBreak
This is a fatal error. I'm aborting now.}%
\endinput}
Since \@ifpackagelater is in fact a 'greater than or equal' test,
you can simply replace YYYY/MM/DD with the date found in the
\ProvidesPackage declaration at the top of biblatex.sty.
* New Biber interface
Biber is the next-generation database backend of biblatex. It is
available from:
http://biblatex-biber.sourceforge.net/
If you decide to use Biber, set 'backend=biber' (preferably in
biblatex.cfg) and upgrade to Biber 0.5 or higher. Biblatex 0.9
uses a new interface to talk to Biber hence you must specify
backend=biber and use the latest Biber version.
Note that biblatex and Biber use separate bug trackers. If you're
using Biber and find a bug, try your example with a different
backend. If the problem persists, report it as a biblatex bug. If
not, report it as a Biber bug.
* [CAVEAT] Revised and expanded date fields
All date fields have been expanded such that they support ranges
in 'start/end' format. Of course it is still possible to specify
a single date and you may also truncate dates at the end. In sum,
the following examples are all valid date specifications:
1850
1967-02
2009-01-31
1988/1992 <- this is a range (from 1988 until 1992)
2002-01/2002-02
1995-01-31/1995-02-05
This format is supported by the following fields: 'date',
'origdate', 'eventdate', 'urldate' (for the sake of consistency
in the case of 'urldate'). I have also removed or modified some
of the fields for date components (e.g., 'day', 'urlday', etc.):
* [CAVEAT] The field 'day' has been removed. Use the 'date' field
instead to specify full dates.
* [CAVEAT] The field 'year' is no longer a range field but a
literal field. Year ranges should be given in the 'date' field
instead.
* [CAVEAT] I've removed the field 'origyear' and added 'origdate'
as a replacement. 'origdate' is similar to 'date', i.e., it
takes a date specification in 'yyyy-mm-dd' format and supports
date ranges in 'start/end' format.
* [CAVEAT] The fields 'urlday', 'urlmonth', 'urlyear' have been
removed. Use 'urldate' instead.
* I've added an 'eventdate' field. This is also a date range
field.
USERS: You will probably need to update your bib files. The
changes which are most likely to cause incompatibilities are the
removal of the 'day' field and the modification of 'year'. Use
'date' instead were required. The removal/renaming of 'origyear'
may also require a few changes. I doubt than many users are
specifying access dates using urlday+urlmonth+urlyear. Since
'urldate' has been extended but not modified in an incompatible
way, this change should be fairly transparent.
AUTHORS: The way the date components are made available to styles
has not changed. For example, the components of the publication
date are available as day/month/year no matter whether they were
given in the 'date' field or in 'year' and 'month'. In sum,
'date'-like fields are split up as follows:
*.bib file style interface
------------------ ------------------
date day
month
year
endday
endmonth
endyear
origdate origday
origmonth
origyear
origendday
origendmonth
origendyear
eventdate eventday
eventmonth
eventyear
eventendday
eventendmonth
eventendyear
urldate urlday
urlmonth
urlyear
urlendday
urlendmonth
urlendyear
Fields related to date components which are not available are
undefined. E.g.:
date = {1988} -> day = undefined
month = undefined
year = "1988"
endday = undefined
endmonth = undefined
endyear = undefined
urldate = {2009-01-31}
-> urlday = "31"
urlmonth = "01"
urlyear = "2009"
urlendday = undefined
urlendmonth = undefined
urlendyear = undefined
origdate = {2002-01/2002-02}
-> origday = undefined
origmonth = "01"
origyear = "2002"
origendday = undefined
origendmonth = "02"
origendyear = "2002"
eventdate = {1995-01-31/1995-02-05}
-> eventday = "31"
eventmonth = "01"
eventyear = "1995"
eventendday = "05"
eventendmonth = "02"
eventendyear = "1995"
If there is no 'date' field, biblatex will consider the legacy
fields 'month' and 'year'. E.g.:
year = {1988} -> day = undefined
month = undefined
year = "1988"
endday = undefined
endmonth = undefined
endyear = undefined
year = {1993} -> day = undefined
month = {5} month = "05"
year = "1993"
endday = undefined
endmonth = undefined
endyear = undefined
When printing a single date component in a style, use the field
names listed in the 'style interface' column above (e.g.,
"\printfield{origmonth}"). There is no 'date' field on the style
level. However, there is normally no need to fiddle with the date
component fields directly. See the next point for details.
* [CAVEAT] Modified date interface
The high-level date interface has been revised. The commands
\bibdate and \biburldate have been renamed and improved. Here's a
list of the new high-level commands:
\printdate
\printurldate
\printorigdate
\printeventdate
These commands print the respective date, handle ranges, and
localize the output format. For example, if the publication date
is a plain year, then \printdate will only print the year. If
it's a full date, it will print all date components which are
available. If it's a range, it will format the range. The
high-level commands need not be wrapped in a \printtext command.
USERS: The change is relevant for style authors only. The standard
styles have been updated.
AUTHORS: Where your style has code like:
\bibdate
or \printtext{\bibdate}
and
\biburldate
or \printtext{\biburldate}
use
\printdate
and
\printurldate
instead. Use \printorigdate and \printeventdate to handle the new
'origdate' and 'eventdate' fields.
* [CAVEAT] Modified 'labelyear'
Adding support for date ranges has prompted a refactoring of the
'labelyear' mechanism. Essentially, I've renamed the existing
'labelyear' field to 'extrayear' and re-added a new 'labelyear'
field with a different role. The 'maxlabelyear' counter has been
renamed to 'maxextrayear'. The new mechanism is consistent with
labelalpha/extraalpha, e.g., 'labelyear' holds the bare year (or
year range) and 'extrayear' indicates the extra letter used for
disambiguation (as an integer).
The new 'labelyear' field holds the year components of the 'date'
field, readily formatted using \bibdatedash as a range separator.
Identical year components in a date range are detected
automatically. If there is no 'date' field, the 'year' field will
be considered instead. Here are some examples:
date = {2003}
-> labelyear = "2003"
date = {1995-01-31/1995-02-05}
-> labelyear = "1995"
date = {1995/1998}
-> labelyear = "1995\bibdatedash 1998"
date = {1998-12-27/1999-01-03}
-> labelyear = "1998\bibdatedash 1999"
year = {2005}
-> labelyear = "2005"
If there is neither a 'date' nor a 'year' field then 'labelyear'
will be undefined.
USERS: The change is relevant for style authors only. The standard
styles have been updated.
AUTHORS: Where your style has code like:
\printfield{year}%
\printfield{labelyear}%
use this:
\printfield{labelyear}%
\printfield{extrayear}%
instead. If you want to concatenate 'extrayear' and the (full)
publication date in the bibliography, use:
\printdateextra
\printdateextra is similar to \printdate but incorporates the
'extrayear' in the date specification.
* [CAVEAT] Revised date localization
The way date specifications are localized in lbx files has been
refactored. Only \DeclareBibliographyExtras declarations in *.lbx
files are affected by this change.
Basically, the commands:
\bibdatelong
\bibdateshort
\biburldatelong
\biburldateshort
have been removed and are replaced by the generic commands:
\mkbibdatelong
\mkbibdateshort
The new commands take three arguments (three field names) and
arrange them as required by the respective language/locale. The
new system is more easily extensible.
USERS: The change is relevant for style authors only. The standard
styles have been updated.
AUTHORS: Even though this point is tagged as 'caveat', it's
rather unlikely that it will cause any trouble. The change is
only relevant for style authors who a) ship custom lbx files (or
users who have adapted some of the stock lbx files) and b) have
modified the 'extras' (as opposed to inheriting them form the
stock modules).
* Added/extended package options for date formats
There are now four date formats to choose from: short, long,
terse, comp. terse and comp are like short and long but render
date ranges in a more compact format.
* Support for multiple editorial roles
This release adds three additional fields (data type: name list)
for secondary editors: 'editora', 'editorb', 'editorc'. There are
also matching 'editor*type' fields. Biblatex now supports up to
four distinct editoral roles, e.g.:
editor = {Eddy Editor}
editora = {Freddy Founder}
editoratype = {founder}
editorb = {Cory Continuator}
editorbtype = {continuator}
editorc = {Rudy Redactor}
editorctype = {redactor}
USERS: The new fields are fully supported by the standard styles.
AUTHORS: The catch-all 'byeditor+others' macro in biblatex.def
has been updated to incorporate the new fields. The 'byeditor'
macro will consider them as well. There's also a dedicated
'byeditorx' macro which processes the 'editor[a-c]' lists. In
other words: if your style relies of the ready-made macros in
biblatex.def, it will consider the new fields automatically. If
not, have a look at biblatex.def to get an idea of how to
incorporate them in your style.
* [CAVEAT] 'redactor' now an editorial role
The field 'redactor' has been removed because the redactor is now
an editorial role, i.e.:
editor = {Eddy Editor}
redactor = {Rudy Redactor}
becomes:
editor = {Eddy Editor}
editora = {Rudy Redactor}
editoratype = {redactor}
USERS: You may need to update some of your bib files.
AUTHORS: The 'byredactor' macro has been removed from
biblatex.def because this role is now handled by the
editor-related macros mentioned above.
* [CAVEAT] Revised lbx files, simplyfied role concatenation
I've simplyfied the role concatenation somewhat. Concatenation is
now only supported if the primary role is 'editor' (i.e., if the
'editortype' field is undefined or holds the string 'editor'). It
turned out to be too painful to support concatenation for all
kinds of editorial roles (compiler, redactor, founder, etc.) in
all languages. This will also make the lbx files much more
readable and the whole apparatus easier to understand.
It's all a bit difficult to describe but fairly easy to grasp if
you take a look at the strings in the lbx files. Essentially,
biblatex 0.8 would define fragmentary type* and bytype* snippets:
typeeditor = {{editor}{...}},
typecompiler = {{compiler}{...}},
bytypeeditor = {{edited}{...}},
bytypecompiler = {{compiled}{...}},
The full strings would then be assembled by auxiliary macros
which insert the type* and bytype* snippets into the string
definitions:
editor = {{\lbx@typeeditor}{...}},
editortr = {{\lbx@typeeditor\ and translator}{...}},
byeditor = {{\lbx@bytypeeditor\ by}{...}},
byeditortr = {{\lbx@bytypeeditor\ and translated \lbx@fromlang\ by}{...}},
These are the simplified strings in biblatex >=0.9:
editor = {{editor}{...}},
compiler = {{compiler}{...}},
editortr = {{editor and translator}{...}},
byeditor = {{edited by}{...}},
bycompiler = {{compiled by}{...}},
byeditortr = {{edited and translated \lbx@fromlang\ by}{...}},
The old scheme was admittedly more elegant but it simply didn't
work quite right in all languages.
* Notes on the basic structure of role processing in biblatex.def
The following hints may help you to find your way around the
ready-made macros and definitions in biblatex.def.
Essentially, a role like 'editor' may be expressed as a function
or as an action, e.g.:
Bernard Bookmaker, editor, Title, ... [function]
... Title, edited by Bernard Bookmaker [action]
Roles which are related to supplementary material in a book, such
as a commentary or annotations, may also be expressed as an
object:
... Title, annotated by Edward Expert [action]
... Title, with annotations by Edward Expert [object]
In biblatex.def, the names of the ready-made macros correspond to
name formats and localization keys:
Macros like editor/translator print a role as a function.
They use
- name formats like editor/translator and
- strings like editor/translator.
Macros like byeditor/bytranslator print a role as an action.
They use
- name formats like byeditor/bytranslator and
- strings like byeditor/bytranslator.
Macros like withcommentator/withannotator print a role as an
object. They use
- name formats like withcommentator/withannotator and
- strings like withcommentator/withannotator.
For example, the bibmacro 'editor' essentially boils down to the
following code:
\printnames{editor} = \printnames[editor]{editor}
\bibstring{editor}
The 'byeditor' macro boils down to:
\bibstring{byeditor}
\printnames[byeditor]{editor}
and the 'withannotator' macro to:
\bibstring{withannotator}
\printnames[withannotator]{annotator}
The real code is more complex because it needs to take
punctuation and additional parameters into account (such as the
'editortype' field, role concatenation, etc.) but this is the
basic idea.
* [CAVEAT] Revised indexing controls
The way the indexing facilities are configured has been revised
and modified. In previous releases, the 'indexing' option would
enable and disable commands like \indexfield on a low level.
Starting with this release, the indexing commands are always
operational. The 'indexing' option controls two new tests called
\ifciteindex and \ifbibindex which should be used as explicit
tests.
In the standard styles, indexing is handled by two bibmacros
called 'citeindex' and 'bibindex'. The old definition was:
\newbibmacro*{citeindex}{%
\indexnames{labelname}%
\indexfield{indextitle}}
\newbibmacro*{bibindex}{%
\indexnames{labelname}%
\indexfield{indextitle}}
The new one is:
\newbibmacro*{bibindex}{%
\ifbibindex
{\indexnames{labelname}%
\indexfield{indextitle}}
{}}
\newbibmacro*{citeindex}{%
\ifciteindex
{\indexnames{labelname}%
\indexfield{indextitle}}
{}}
The point of this change is to make commands like \indexfield
useable in a more flexible way, regardless of the setting of the
'indexing' option. Since they are always operational now, you can
use them for tasks which require access to the bibliographic data
but do not print anything, such as setting page headers or
writing data to some external file.
It is not advisable to use commands like \printfield for this
purpose because they interface with the punctuation tracker. Use
\printfield if you really want to print a field and \indexfield
for other tasks, indexing obviously being the most common
application.
USERS: From a user's point of view, the new mechanism works like
the old one.
AUTHORS: Standard citation commands like \cite should always use
the above bibmacros (citeindex/bibindex) anyway so no change is
required. You may need to incorporate the \ifciteindex and
\ifbibindex tests into text citation commands (i.e., commands
like \citeauthor and \citetitle) if you have redefined the
standard ones or provide additional ones. All predefined commands
in biblatex.def have been updated.
* Fallback drivers
Biblatex now supports the fallback entry type "*". If you use the
asterisk as the type argument of \DeclareBibliographyDriver or
\DeclareBibliographyAlias, the driver or alias will be used as a
fallback if no specific driver for a certain type has been
defined. E.g.:
\DeclareBibliographyDriver{*}{<driver code>}
\DeclareBibliographyAlias{*}{misc}
* Manual language selection
By default, biblatex detects the babel package if it is loaded
and can adjust to the selected babel language automatically.
Using the new 'language' package option, you can now force
biblatex to load support for a certain language. This will
implicitly disable babel support and on-the-fly language
switching. The 'babel' package option is ignored in this case.
This is mainly useful if you can't use babel for some reason.
Using the automatic babel interface is usually preferable.
* Improved \defbibheading, introducing 'title' option
I've extended \defbibheading and added a 'title' option to
\printbibliography and \printshorthands. These extensions are
mainly useful for subdivided bibliographies.
This is best explained by example. With previous biblatex
releases, subdivided bibliographies required one heading
definition for each subsection since the heading definition
included both the format and the text of the heading:
\defbibheading{books}{\section*{Books}}
\defbibheading{articles}{\section*{Articles}}
\defbibheading{online}{\section*{Online Resources}}
\chapter{\bibname}
\printbibliography[type=book,heading=books]
\printbibliography[type=article,heading=articles]
\printbibliography[type=online,heading=online]
When using the extended syntax of \defbibheading, the heading
definition only controls the format but the title may be
specified by using the 'title' option of \printbibliography and
\printshorthands. The value of this option will be passed to the
heading definition as paramater #1. The new optional argument of
\defbibheading defines the default text which is passed as #1 if
there is no 'title' option.
\defbibheading{subdiv}[\bibname]{\section*{#1}}
\chapter{\bibname}
\printbibliography[type=book,heading=subdiv,title={Books}]
\printbibliography[type=article,heading=subdiv,title={Articles}]
\printbibliography[type=online,heading=subdiv,title={Online Resources}]
Since biblatex provides a predefined heading called
'subbibliography' you don't even need \defbibheading in this
case. You can simply use 'heading=subbibliography', specify
'title={...}', and rely on the predefined heading definitions
provided by biblatex which support the standard LaTeX classes,
the KOMA-Script classes, and the memoir class automatically.
The extensions are backwards-compatible. It is still possible to
use the parameterless form of \defbibheading. Such headings will
work as expected but the 'title' option of \printbibliography and
\printshorthands will obviously be ignored in this case.
* More options for \printshorthands, subdivided LOS
I've added more options to \printshorthands. It now supports the
same options as \printbibliography. This is useful for a
subdivided list of shorthands.
* Improved author-title and author-year citation styles
I've improved the compact citation styles authortitle-comp,
authortitle-icomp, authortitle-tcomp, and authoryear-comp. The
compact format is now supported in multicite commands as well.
* New verbose-trad3 style
This style is similar in concept to verbose-trad2 with a slightly
different treatment of ibidem and op. cit.
* Eprint support for Google Books/JSTOR/PubMed
I've added eprint handlers for Google Books, JSTOR, and PubMed.
This means that, instead of
url = {http://books.google.com/books?id=XXu4AkRVBBoC},
you may also use:
eprint = {XXu4AkRVBBoC},
eprinttype = {googlebooks},
PubMed support is similar. Instead of specifying the full URL
(where <pmid> is the unique and stable PubMed ID):
url = {http://www.ncbi.nlm.nih.gov/pubmed/<pmid>},
you may also say:
eprint = {<pmid>},
eprinttype = {pubmed},
By default, this will be printed as "PMID: <pmid>" in the
bibliography. If hyperref support is enabled, the <pmid> will be
a clickable link to PubMed.
JSTOR support works exactly like PubMed. When using JSTOR's
export feature to export citations in BibTeX format, JSTOR uses
the 'url' field by default (where <number> is a unique
and stable identifier):
url = {http://www.jstor.org/stable/<number>}
While this will work as expected, full URLs tend to clutter the
bibliography. You may also use:
eprint = {<number>},
eprinttype = {jstor},
to get the more readable "JSTOR: <number>" format which also
supports hyperlinks (the <number> becomes a clickable link).
* More styles for compressed back references
See 'backrefstyle' in the changelog.
* Improved endnotes, added \pagenote support
The \pagenote command, which is provided by the pagenote package
and the memoir class, is now supported by \mkbibendnote.
\mkbibendnote prioritizes as follows:
1) check for \endnote and use it if available
2) check for \pagenote and use it if available
3) issue a warning and fall back to \footnote
There is also a new 'notetype' option which you may use to
convert footnotes to endnotes and vice versa (provided that
they are generated with \mkbibfootnote and \mkbibendnote,
respectively; the standard \footnote and \endnote commands will
not be modified).
* Compatibility with UCS package
Previous releases of biblatex were comptabile with inputenc's
standard UTF-8 module but wouldn't work with the ucs package. This
release also supports ucs. XeLaTeX's native UTF-8 support should
also work fine. If you're using UTF-8 encoding you should be
using Biber instead of BibTeX as a backend.
* Dutch support
This release comes with a dutch.lbx file. The translations have
been contributed by Alexander van Loon.
* Greek support
As of this release, biblatex speaks Greek, too. The translations
have been contributed by Apostolos Syropoulos. Note that the
greek.lbx file requires UTF-8 support. Biblatex generally works
with
1) LaTeX and inputenc:
\usepackage[utf8]{inputenc}
2) LaTeX and inputenc+ucs:
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
3) XeLaTeX
Since inputenc's standard utf8 module has no glyph mappings for
Greek, this leaves Greek users with a choice of 2) or 3). If you
choose 2), make sure to preload the Greek Unicode range:
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\PreloadUnicodePage{3}
You may also use \PrerenderUnicode if you prefer that. See the
section about "Known problems" in the UCS (!) manual for
explanation. You may also need to load additional packages which
set up Greek fonts. As a rule of thumb, any setup which works with
regular Greek documents should also work with biblatex.
However, there is one fundamental limitation. As of this writing,
biblatex has no support for mixing scripts. Bibliographies in
Greek should work fine, provided that you use Biber as a backend,
but English and other titles in the bibliography may be rendered
in Greek letters.
The problem with using LaTeX and macro-level UTF-8 support via
inputenc/ucs is that processing still happens in an 8-bit
environment. The inputenc/ucs packages can decode all of UTF-8,
but in order to typeset Unicode all input needs to be mapped to
segments of 256 glyphs each because LaTeX only supports 8-bit
output encodings. If you need multi-script bibliographies,
XeLaTeX is the only sensible choice since XeTeX uses Unicode all
the way from input to output.
RELEASE NOTES FOR VERSION 0.8i
This is a bug fix release. There are no new features and the manual
has not been updated.
RELEASE NOTES FOR VERSION 0.8h
This is a bug fix release. There are no new features and the manual
has not been updated.
RELEASE NOTES FOR VERSION 0.8g
This is a bug fix release. There are no new features and the manual
has not been updated.
RELEASE NOTES FOR VERSION 0.8f
This is a bug fix release. There are no new features and the manual
has not been updated.
RELEASE NOTES FOR VERSION 0.8e
* Improved concatenation of roles
The standard styles (and the ready-made macros in biblatex.def)
have been supporting the concatenation of (editorial and other)
roles for some time. For example, if the editor and the
translator of a book are the same person, the roles are
concatenated and the name is given only once:
Author, Title, ed. and trans. by Editor, ...
However, if there is no author and the editor moves to the first
position, the name was, until now, printed twice:
Editor, ed., Title, trans. by Editor, ...
The improved bibliography styles now support concatenation in
this case as well:
Editor, ed. and trans., Title, ...
Since the macros which handle the concatenation are defined in
biblatex.def, adding this feature to existing styles is simple.
Where your style has code like:
\usebibmacro{editor}
\usebibmacro{author/editor}
simply replace that with:
\usebibmacro{editor+others}
\usebibmacro{author/editor+others}
The improvements also cover additional roles of the translator.
To take advantage of that, replace code like:
\usebibmacro{translator}
\usebibmacro{author/translator}
\usebibmacro{author/editor/translator}
with:
\usebibmacro{translator+others}
\usebibmacro{author/translator+others}
\usebibmacro{author/editor+others/translator+others}
On a related note, it is safe to use code like this:
\usebibmacro{editor+others}%
\newunit
\printfield{title}%
\newunit
\usebibmacro{byeditor+others}%
because macros like 'editor+others' macro will use \clearname to
clear all name lists already processed. For example, if the
'editor+others' macro prints 'ed. and trans.', it locally clears
the 'editor' and 'translator' lists afterwards. The
'byeditor+others' macro will not print them a second time. It
simply takes care of any names/roles not covered yet
(commentator, annotator, etc.), if there are any left.
* Added some new localization keys, removed some existing ones
The above concatenation requires a whole set of new localization
keys (see the manual for details). These keys are initialized by
default. English and German translations are already available,
the other localization modules need an update.
The new strings are also useful for styles which use the 'first
position' format in all cases, i.e., styles which print:
Editor, ed. and trans., Title, ...
Author, Title, in: Editor, ed. and trans., Book, ...
instead of:
Editor, ed. and trans., Title, ...
Author, Title, in: Book, ed. and trans. by Editor, ...
Since the number of localization keys keeps increasing, I've
removed some of the rarely used 'country...', 'patent...', and
'patreq...' keys. Only about half a dozen keys in each of these
groups is left, mainly to illustrate the underlying scheme.
* New auxiliary macros for ordinals
In the past, some localization modules have been redefining the
field formats 'edition' and 'series' because they require
ordinals and need to be adapted to use either \mkbibmascord or
\mkbibfemord if ordinals are gender specific in the respective
language. However, having lbx files redefine field formats is
rather intrusive.
Starting with this release, there's a new, non-intrusive
solution. Biblatex provides two new macros, \mkbibordedition and
\mkbibordseries, which should be used in the respective field
formats. Where required (typically in Romanic languages), these
macros are redefined by localization modules such that they point
to \mkbibmascord or \mkbibfemord.
* Extended language support: Brazilian Portuguese, Swedish revised
This release adds support for Brazilian Portuguese and
preliminary support for Portuguese/Portugal. The translations
have been contributed by Augusto Ritter Stoffel.
The Portuguese support in portuguese.lbx is mostly inherited from
brazilian.lbx. This file needs review by a native speaker from
Portugal.
I've also added some revised Swedish translations which Per
Starb\"ack sent in some time ago to the Swedish module.
* German localization now using "Hrsg."
By popular request, the German module now uses the abbreviations
"Hrsg./hrsg. von" instead of "Hg./hg. von". Both forms are valid,
but most users seem to prefer the more traditional "Hrsg".
RELEASE NOTES FOR VERSION 0.8d
* Biber beta release
Biber is a BibTeX replacement written in Perl. It features
Unicode support and has been designed with the requirements of
biblatex in mind. See:
http://biblatex-biber.sourceforge.net/
for details. Beta testers are invited to try it out and report
any bugs on Biber's SourceForge project page.
* Package option 'bibtex8' superseded by 'backend'
The package option 'bibtex8' is superseded by a new option called
'backend'. The old option is not mentioned in the manual any
more, but it is still supported for the sake of backwards
compatibility. In new documents, however, replace it as follows:
bibtex8=false -> backend=bibtex (default setting, omissible)
bibtex8=true -> backend=bibtex8
RELEASE NOTES FOR VERSION 0.8c
* Added 'idem' tracker
I've added an 'idem' tracker which is similar in concept to the
'ibidem' tracker except that it checks for recurrent author/
editor names. See the 'idemtracker' package option and the
\ifciteidem test in the manual.
RELEASE NOTES FOR VERSION 0.8b
* Added 'usetranslator' option
The 'usetranslator' option is similar in concept to 'useauthor'
and 'useeditor' hence usage should be fairly obvious. Style
authors should note that styles derived from the standard ones
will support this option if you replace
\usebibmacro{author}
\usebibmacro{author/editor}
with
\usebibmacro{author/translator}
\usebibmacro{author/editor/translator}
in all relevant drivers.
RELEASE NOTES FOR VERSION 0.8a
* SourceForge bug/feature trackers
The user base of biblatex has been growing steadily, reaching a
point where managing bug reports and feature requests by a
combination of private email messages and Usenet postings has
become impractical. I've therefore set up a project page on
SourceForge:
http://sourceforge.net/projects/biblatex/
There's no code on that site and most tools offered by
SourceForge (like cvs/subversion, web-based forums, etc.) are
currently disabled. The interesting thing are the trackers:
http://sourceforge.net/tracker2/?group_id=244752
I've set up two trackers, 'Bugs' for bug reports and 'Features'
for feature requests. Please use these trackers to report bugs
and submit feature requests.
I've also added all open bug reports and feature requests sitting
in my email inbox but I may have missed some messages posted in
public forums. If you've reported anything which doesn't show up
on the project page, you can now add it yourself by selecting the
appropriate tracker and clicking on "Add new artifact".
* Custom localization modules
This release adds support for custom localization modules. The
point is that styles may ship modified lbx files. See
\DeclareLanguageMapping and the changelog for further hints.
* Configurable punctuation tracker
The behavior of punctuation commands like \addcomma is now
configurable. See \DeclarePunctuationPairs in the manual.
* Improved 'American-style' punctuation
I've improved the 'American-style' punctuation feature.
american.lbx now uses \DeclarePunctuationPairs to adapt the
punctuation tracker and \mkbibquote supports nested quotes even
if American punctuation is enabled.
* Sentence case vs. title case
By popular request, I've added a macro which converts a string to
sentence case. See \MakeSentenceCase, \MakeSentenceCase*, and
\DeclareCaseLangs in the manual. \MakeSentenceCase supports the
BibTeX convention that anything wrapped in braces is not altered
when changing the case.
Style authors who make use of the bibmacros in biblatex.def should
note the following. Saying:
\DeclareFieldFormat{title}{\MakeSentenceCase{#1}}
will not work as expected. That's because biblatex uses macros
like this one by default:
\newbibmacro*{title}{%
\ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}
{}
{\printtext[title]{%
\printfield[noformat]{title}%
\setunit{\subtitlepunct}%
\printfield[noformat]{subtitle}}%
\newunit}%
\printfield{titleaddon}}
The 'title' format is applied by a \printtext command which
encloses both the title and the subtitle. \MakeSentenceCase would
therefore see \printfield commands rather than the field
contents. If you want to convert all titles to sentence case,
\MakeSentenceCase must be applied on the inner level, by the
\printfield commands. To facilitate that, I've modified this and
similar bibmacros slightly:
\newbibmacro*{title}{%
\ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\newunit}%
\printfield{titleaddon}}
Instead of 'noformat', the nested \printfield commands now use
'titlecase' on the inner level. These formats are defined like
this:
\DeclareFieldFormat{titlecase}{#1}
\DeclareFieldFormat{noformat}{#1}
In other words, the default behavior remains unchanged but
converting all titles to sentence case is as easy as saying:
\DeclareFieldFormat{titlecase}{\MakeSentenceCase{#1}}
You can apply additional formats on a higher level as usual:
\DeclareFieldFormat{title}{\mkbibemph{#1}}
\DeclareFieldFormat{title}{\mkbibquote{#1}}
Just make sure that \MakeSentenceCase always hooks in on the
innermost level such that it sees the raw field contents rather
then data commands or other formatting commands.
RELEASE NOTES FOR VERSION 0.8
As usual, the full changelog is included in biblatex.pdf. What
follows are comments concerning changes 'under the hood' which are
not mentioned in the changelog, things which may break backwards
compatibility, improvements which may not be immediately obvious
from looking at the changelog, and new major features which pertain
to a set of entries in the changelog rather than a single one.
The changelog and the release notes include changes made in the
0.7a-g maintenance releases. If you have been tracking the
development closely, some things may sound familiar.
Note that there have been changes in the LaTeX<->BibTeX data
interface. You may want to delete all the old *.bbl and
<jobname>-blx.bib files before you start using the new version. In
fact biblatex should be able to handle the update on its own but
this will require an additional LaTeX+BibTeX cycle. In other words,
you need to go through one LaTeX/BibTeX/LaTeX cycle to update all
auxiliary files. You can ignore any warnings printed in this
process. After that, the output should stabilize as usual.
* Hints for style developers
I'm delighted to see that the first custom biblatex styles start
showing up on CTAN.
One general note to style authors: unless your style is only a
minor modification of one of the standard styles which ship with
biblatex, it's a good idea to make sure it's self-contained,
i.e., that it doesn't employ \RequireCitationStyle and/or
\RequireBibliographyStyle to load code from the default styles
(but feel free to incorporate code by copying it to your style).
While the core of biblatex is stable by now, there's still
potential for modifications in the standard styles (see below for
examples). Having said that, loading standard.bbx should be a
safe thing to do and you can also rely on code in biblatex.def
because this file is part of the core of biblatex.
* New citation and bibliography styles
I've added some new styles: 'authoryear-ibid' (an author-year
style with an 'ibidem' feature), 'draft' (which is a, well, draft
style), and 'reading' (a style for annotated bibliographies and
personal reading lists with abstracts, annotations, etc.).
* Overhaul of all citation and bibliography styles
I've overhauled all styles such that they use LaTeX (=etoolbox)
rather than plain TeX syntax for the boolean switches. E.g.,
instead of:
\newif\ifcbx@bool
\cbx@booltrue
\ifcbx@bool ...\else ...\fi
they now use:
\newbool{cbx:bool}
\booltrue{cbx:bool}
\ifbool{cbx:bool}{...}{...}
This LaTeX frontend is provided by the etoolbox package.
* Improved authoryear styles
The authoryear styles have been improved such that they will
consider the '(short)title' field if the author/editor is
missing (or useauthor/useeditor=false is set). Note that these
styles also consider the 'label' field, if available. In sum,
the fallback chain in citations used to be:
author -> editor -> label -> [issue warning]
and the new chain works as follows:
author -> editor -> label -> shorttitle -> title
The 'shorthand' field, if defined, always takes precedence over
any other data.
* Improved verbose-note styles
The styles verbose-note and verbose-inote can now add a page
number to the reference pointing to the initial, full citation.
There is a style option named 'pageref' which enables this
feature. The page reference is only printed if the initial
citation is located on a different page or page spread (depending
on the setting of the 'pagetracker' option).
* Improved numeric styles
The numeric styles now support citations referring to set
members. See the note about reference sets below, the manual, and
the examples for details.
* Introducing reference sets
This release introduces the concept of a reference or entry set.
A reference set is a group of entries which are cited as a single
reference and listed as a single item in the bibliography. I'm
told that this is a matter of particular interest for users in
physics, chemistry, and possibly some other fields. See the 'set'
type, the 'entryset' field, and the special field 'entrysetcount'
in the manual. Also see \entryset and the pointers in the
changelog.
If you are familiar with this concept, you may have used the
mcite or the mciteplus package before. The mcite and mciteplus
manuals call this type of reference a "collapsed citation". They
also talk about "grouping citations". The biblatex manual calls
it "reference set" and "entry set". It's the same thing but note
that the approach is different. With mcite(plus), sets are
defined as they are cited for the first time. Essentially, a
citation like
\cite{key1,*key2,*key3}
defines a set consisting of three entries (key1, key2, key3). The
first entry key serves as identifier of the entire set, which may
subsequently be cited as \cite{key1}. With biblatex, you declare
sets in the bib file using the @set type, the 'entryset' field,
and 'entryset' reverse pointers in the child entries:
@Set{set1,
entryset = {key1,key2,key3},
crossref = {key1},
}
@Article{key1,
entryset = {set1},
...
}
@InCollection{key2,
entryset = {set1},
...
}
@InProceedings{key3,
entryset = {set1},
...
}
See the pointers in the changelog for further explanation.
* Support for electronic publishing information (eprint)
See the 'eprint' and 'eprinttype' fields and related pointers in
the manual. Support for electronic publishing information has
been added to all standard bibliography styles.
This release comes with dedicated support for arXiv references
which is usable out of the box and also serves as a model for
adding support for other resources and online archives.
* Modified 'labelyear' field
The 'labelyear' field is no longer a string but an integer. The
conversion of the integer to a string now takes places on the
LaTeX side of the workflow, i.e., you'll usually have a
formatting directive like this:
\DeclareFieldFormat{labelyear}{\mknumalph{#1}}
The \mknumalph command takes an integer in the range 1-702 as
its argument and converts it to a string as used in author-year
citations like "Jones 1995a". The format is:
\mknumalph{1} -> a
\mknumalph{26} -> z
\mknumalph{27} -> aa
\mknumalph{702} -> zz
There is also a 'maxlabelyear' counter which holds the highest
number found in any 'labelyear' field. This may be useful if you
want to print the 'labelyear' field as a number and pad it out
with leading zeros.
* Modified 'labelalpha' field
There is a similar change concerning the 'labelalpha' field,
which has been split up into 'labelalpha' and 'extraalpha'. With
a label like "Jon95a", 'labelalpha' holds "Jon95" while the extra
letter is handled by 'extraalpha'. 'extraalpha' is similar to
'labelyear' in that it holds an integer. The conversion of the
integer to a string takes places on the LaTeX side of the
workflow, i.e., you'll usually have a formatting directive like
this:
\DeclareFieldFormat{extraalpha}{\mknumalph{#1}}
There is also a 'maxextraalpha' counter which holds the highest
number found in any 'extraalpha' field.
* Modified/extended name hashes
Starting with this release, there are two name hash fields,
'namehash' and 'fullhash'. See the manual for details.
Essentially, the difference is that the 'namehash' is derived
from the visible 'labelname' list (subject to the 'maxnames' and
'minnames' options) whereas 'fullhash' is always derived from the
full list.
Note that the original behavior of 'namehash' in previous
releases used to be similar to the current behavior of
'fullhash'. This has caused some confusion. The 'namehash' should
now be in line with the expectations of most users and style
authors. Those who actually want the original behavior may still
use the 'fullhash' field.
* 'edition' field now more flexible/controllable by styles
In previous biblatex releases, 'edition' was an integer-only
field. The integer test was performed on the BibTeX side of the
workflow, in biblatex.bst. Starting with this release, the test
is performed on the LaTeX side, i.e., in the format definition:
\DeclareFieldFormat{edition}{%
\ifinteger{#1}
{\mkbibordinal{#1}~\bibstring{edition}}
{#1}%
}
As you can see, the edition is printed as "Nth edition" if the
edition field holds an integer, and as a literal string if not.
This means that you can now put things like "5th, revised and
expanded edition" in the 'edition' field without having to resort
to the 'note' field. It also implies that styles get full control
over the 'edition' field.
Style authors who adapt this formatting directive should note
that ordinals are gender-specific in Romanic languages ('edition'
is a feminine noun in French, Italian, and Spanish, hence the
ordinal must be feminine as well). In addition to the default
definition in biblatex.def, the 'edition' field is therefore
adapted in french.lbx, italian.lbx, and spanish.lbx.
* Support for bibliographic data in external TeX files
This release add a \printfile command which is similar to
\printtext but gets the text from an external file, i.e.,
\printfile{file.tex} boils down to \printtext{\input{file.tex}}
but does nothing if the file does not exist. The point of all
this is that styles which print the fields 'abstract' and/or
'annotation' may support an alternative way of adding abstracts
or annotations to the bibliography. biblatex.def provides the
following code for that:
\newcommand*{\bibabstractprefix}{bibabstract-}
\newcommand*{\bibannotationprefix}{bibannotation-}
\newbibmacro*{annotation}{%
\iffieldundef{annotation}
{\printfile[annotation]{\bibannotationprefix
\thefield{entrykey}.tex}}%
{\printfield{annotation}}}
\newbibmacro*{abstract}{%
\iffieldundef{abstract}
{\printfile[abstract]{\bibabstractprefix
\thefield{entrykey}.tex}}%
{\printfield{abstract}}}
Instead of including the text in the bib file, it may now be
stored in an external LaTeX file. For example, instead of saying
@Article{key1,
abstract = {This is an abstract of entry `key1'.}
...
in the bib file, you create a file named 'bibabstract-key1.tex'
and put the abstract in this file. The name of the external file
must be the entry key prefixed with 'bibabstract-' or
'bibannotation-', respectively. The 'reading' style makes use of
this. Also note that, when using the reference code above, a field
in the bib file takes precedence over external files. E.g., the
'reading' style will not look for 'bibabstract-key1.tex' if the
'key1' entry in the bib file has an 'abstract' field.
Note that this feature needs to be enabled explicitly by setting
the package option 'loadfiles'. The option is disabled by default
for performance reasons. Using external files is strongly
recommended if you have long abstracts or a lot of annotations
since this may increase memory requirements significantly. See
the changelog for more pointers.
* Support for 'American-style' punctuation
Biblatex finally supports 'American-style' punctuation, i.e.,
certain punctuation marks placed after a closing quote can be
moved inside the quotes automatically.
See \DeclareQuotePunctuation and \mkbibquote in the manual. The
'american' and 'canadian' localization modules enable this
feature for periods and commas. See the hints in the manual for
details.
* \DeclareCapitalPunctuation replaces \(Enable|Disable)CapitalAfter
The configuration commands \EnableCapitalAfter and
\DisableCapitalAfter have been removed and are superseded by
\DeclareQuotePunctuation.
\DeclareQuotePunctuation works like \EnableCapitalAfter except
that it takes a list of characters as its argument. The function
of \DisableCapitalAfter is now implicit (all characters not
included in the list will not trigger capitalization).
The change affects the configuration interface only. The default
user-level behavior of biblatex has not changed (capitalization
after periods, exclamation marks, questions marks; with the
'(n)german' and '(n)austrian' localization modules also after
colons).
* Hyphenation exceptions in bibliography strings
This release adds an interface for definining hyphenation
exceptions in lbx files and/or the document preamble. See
\DeclareHyphenationExceptions and \DefineHyphenationExceptions
in the manual.
* Configurable number tests
The number tests \ifnumeral and \ifnumerals, which are also used
by \mkpageprefix and \mkpagetotal, may be adapted. See the
commands \DeclareNumChars, \DeclareRangeChars, and
\DeclareRangeCommands for details.
* Added 'firstinits' package option
By popular request, I've added a package option which switches
all first names to initials. Use the \iffirstinits test to query
its state. The test has already been incorporated into the
formatting directives in biblatex.def. However, authors of custom
styles using redefined name formatting directives may want to
incorporate it into their style, too.
* Added high-level '\bibpagespunct' macro
\bibpagespunct is a high-level user macro similar to
\labelnamepunct and \subtitlepunct. As with the 'firstinits'
package option, it's incorporated in the standard styles so you
may want to do the same in custom styles.
* Added some expert entry options
See the entry options 'skipbib', 'skiplos', 'skiplab', and
'dataonly' in the manual.
Note that 'skiplab' and 'dataonly' are intended for hacking only!
* Improved KOMA-Script and Memoir support
The headings 'bibliography' and 'shorthands' are responsive to
the 'bibtotoc' and 'bibtotocnumbered' class options of the 'KOMA'
classes now. See also \ifkomabibtotoc, \ifkomabibtotocnumbered,
and \ifmemoirbibintoc.
* Improved natbib compatibility style
I've added some missing features to the natbib compatibility
style. Most notably, citation aliasing is now possible. Note that
this is intended for legacy files only. In newly created files,
it is preferable to use biblatex's 'shorthand' field.
* Spaces in file names
Whether file names may or may not contain spaces generally
depends on whether or not the underlying TeX binary supports
that. This is beyond biblatex's control. If the underlying engine
supports it, biblatex should not have any problems with spaces in
a file name.
However, neither traditional BibTeX nor bibtex8 seem to be
capable of handling .bib files with spaces in their name. For
.bib files which supply bibliographic data, there is no fix short
of avoiding spaces in the file name. For the auxiliary .bib file
automatically generated by biblatex this release adds a
workaround. Spaces in the name of this file, which is only used
internally, will be converted to underscores.
* New language-specific csf files for bibtex8
I've added some csf file for use with bibtex8 to the 'resources'
subdirectory. They implement the proper sorting order for German,
Danish, Norwegian, and Swedish in Latin 1, Latin 9, and Windows
Ansi encoding.
German users should note that even bibtex8 is not able to handle
the German letter \ss properly. You may need to resort to fields
like 'sortname' and 'sorttitle' even when using these csf files.
* Extended manual
In addition to the usual manual updates related to new features,
I've also added some new material to the 'hints and caveats'
section in the author guide of the manual.
RELEASE NOTES FOR VERSION 0.7
The changelog of this release is the longest list of changes in any
biblatex release so far. Skimming the full list in biblatex.pdf is
highly recommended. In the following, I will focus on changes 'under
the hood' which are not mentioned in the changelog, point out things
which may break backwards compatibility, and comment on some
improvements which may not be immediately obvious from looking at
the changelog because they pertain to a set of changes rather than a
single one.
* User and author interface stable
Starting with this release, the user and author interface of this
package may be considered as stable. This means that I will try
to refrain from making syntactically or functionally incompatible
changes to the core package, unless I'm forced to do so because
of a bug or because one of the most recently added features turns
out to be really awkward. Essentially, citation and bibliography
styles written for this version should work with biblatex 1.0
with no or at most minor modifications.
Please note that this is a development aim, but there is no
guarantee. Also note that the definitions in biblatex.def (mainly
the formatting directives) are not guaranteed to be stable at
this point. In other words: if you use the default definitions,
your style will inherit possible improvements in future versions.
If you use modified formatting directives, you may need to update
them to integrate new functions. That should be fairly easy,
though.
* CTAN staging area for biblatex styles
There's a new location for contributed biblatex styles, it's:
macros/latex/exptl/biblatex-contrib/
Contributed styles should go into a subdirectory of the above
location. E.g., a style called 'MLA' would go into:
macros/latex/exptl/biblatex-contrib/mla/
Note that the exptl/ subtree is intended for experimental or beta
code. As soon as biblatex hits 1.0 and moves out of exptl/ to
macros/latex/biblatex/
there's be a corresponding biblatex-contrib. At this point, all
contributed styles should be considered experimental because the
core package is still in beta.
* Removed biblatex.cbx and biblatex.bbx
I've removed the files biblatex.cbx and biblatex.bbx from the
distribution. The code formerly found in biblatex.cbx has been
moved to biblatex.def. The code formerly found in biblatex.bbx
has been split up. The most generic parts have been moved to
biblatex.def. The less generic parts, which are closely tied to
biblatex's standard bibliography style, are now part of
standard.bbx.
I've also rearranged some of the bibmacros formerly found in the
above files and renamed some of them. If you have been using some
of that code in a custom bibliography style, don't worry, all the
code is still there, but parts of it may be arranged differently
(e.g., a bibmacro may have been split up into two macros or two
macro may have been merged into one) and the names of some
bibmacros may have changed.
Note that biblatex.def is always loaded, but standard.bbx is not.
If you have been using code which is now part of standard.bbx in
a custom bibliography style, you need to copy the relevant parts
to your style.
* New dependency on etoolbox.sty
Some of the most generic parts of biblatex.sty have been moved to
an independent package called 'etoolbox', which is now required.
The package is available from CTAN and may also be useful for
style authors.
* Type-specific formatting directives
All formatting directives may now be defined on a per-type basis;
e.g.:
\DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
would define the format of the 'title' field of @article entries
only. The fallback mechanism for formats now works as follows.
The command \printfield{title}, when used in an @article driver,
would check for the following formats (in this order):
title [article]
title
default
This also applies to cases where a specific formatting directive
is requested explicitly, i.e. \printfield[myformat]{title}, would
check for these formats:
myformat [article]
myformat
default
The point is that you can override formats on a per-type basis
without having to hack any drivers.
* Truncation with 'and others' now supported by literal lists
Truncating a list with 'and others' in the .bib file is now
supported by both name lists and literal lists. This used to be
specific to name lists. See \ifandothers and \ifmoreitems as well
as \finallistdelim and \andmoredelim for details.
* Introducing entry options and style-specific options
This release introduces the concept of an entry option and a new
'options' field. The 'useprefix' field has been replaced by an
entry option. Instead of:
useprefix = {true}
you now use
options = {useprefix=true}
There are two more predefined entry options called 'useauthor' and
'useeditor'. These options may still be used globally to set the
default behavior.
In addition to that, Bibliography and citation styles may define
additional package and entry options. See \DeclareEntryOption and
\DeclareBibliographyOption for details.
* Introducing multicite commands
This release introduces an entirely new class of citation
commands called 'multicite' commands. The point of a multicite
command is that its argument may be a fully qualified list of
citations where each key has its own pre- and postnote. The syntax
is straightforward. Instead of:
\cite[See][55]{key1}; \cite[12]{key2}; \cite[93]{key3}
you can now say:
\cites[See][55]{key1}[12]{key2}[93]{key3}
This is particularly useful with parenthetical citations and
citations given in footnotes. It's also possible to assign a pre-
and/or postnote to the entire list. These global notes are given
in parentheses:
\footcites(See)(and chapter 3)[55]{key1}[12]{key2}[93]{key3}
See \cites, \parencites, \footcites, etc. in the manual. There is
also an \autocites command (a multicite version of \autocite).
Defining new multicite commands is very easy because they are
based on the regular citation commands. See the documentation of
\DeclareMultiCiteCommand for details.
* Improved trackers and tracking control
The 'trackers' provided by biblatex have been greatly improved
and extended. This release also adds new trackers which
correspond to the requirements of some common citation styles.
See the package options 'pagetracker', 'citetracker',
'ibidtracker', 'opcittracker', and 'loccittracker' for all the
gory details. Also see \ifciteibid, \ifopcit, and \ifloccit.
It's possible to control tracking in the document, see
\pagetrackertrue/false and \citetrackertrue/false for details.
Note that text commands like \citetitle are now exluded from
tracking by default. See also the point below.
* Tracker reset support
It's possible to reset trackers and citation styles and several
different levels. For the built-in trackers, see the package
option 'citereset' as well as the user-level command \citereset.
For style-specific reset support, see \InitializeCitationStyle,
\InitializeBibliographyStyle, \OnManualCitation, and the
user-level command \mancite.
* New entry types, more custom entry types
This release adds the entry types 'periodical' and 'patent',
which are fully supported by the standard styles. Several new
custom types have also been added. The custom types are not
supported by default, but they may be useful in custom styles.
* New field/list subtype: key field/list
I've introduced a new field/list data subtype called key
field/key list. They may hold printable data or localization keys
and work as follows: A test is performed to determine whether the
value of the field is a known localization key. If so, the
localized string is printed. If not, the value is printed as is.
* Improved postnote handling, alternative pagination schemes
The handling of page numbers in the 'pages' field and in the
postnote argument to citation commands has been improved
significantly. Biblatex does range detection now and recognizes
Roman numerals as numbers. It also supports alternative
'pagination' schemes (columns, line or verse numbers, etc.).
See the fields 'pagination' and 'bookpagination' and related
pointers in the changelog. See also \mkpageprefix, \ppspace,
\pno, \ppno, \nopp, \psq, \psqq.
* Support for unique names in citations
This release introduces support for unique names in citations.
Some author-year and author-title citation styles require
unambiguous names in citations. For example, with entries such as
John Smith 1995
Edward Smith 1995
citations would be rendered as
J. Smith 1995
E. Smith 1995
rather than
Smith 1995a
Smith 1995b
See the package option 'uniquename' and the special counter
'uniquename' for details. Note that this feature is now enabled
by default in the following styles: authoryear, authoryear-comp,
authortitle-terse, authortitle-tcomp.
* Improved support for numeric labels
The 'defernums' package option addresses the problem of
discontinuous numbering when using a numeric style in combination
with bibliography filters. If this option is enabled, the numeric
labels are assigned the first time an entry is printed in any
bibliography. This is similar to the traditional algorithm used
by LaTeX to assign numeric labels.
* Alternative, non-inheriting cross-referencing mechanism
This release introduces an alternative cross-referencing
mechanism which does not inherit any data. It's useful in styles
which format cross-referenced entries differently. See the
description of the field 'xref' and related pointers in the
manual.
* Support for different encodings
Biblatex is now capable of handling .bib files with an encoding
which is different from the encoding of the .tex file. See the
'bibencoding' package option for details.
* More robust handling of citation keys
This release adds some normalization code which deals with
special characters in citation keys. A typical example are keys
which contain an underscore. This should be much more robust now.
* Renamed fields
The 'journal' field has been renamed to 'journaltitle' but the
old name is still supported as an alias. There's also a
'journalsubtitle' field and fields for the title and the subtitle
of a single issue. In other words, article entries now support a
complete set of titles similar to inbook-like entry types:
journaltitle/issuetitle/title essentially correspond to
maintitle/booktitle/title.
The field name 'id' turned out to be incompatible with JabRef.
Apart from that, the name is a bit too generic for what this
field holds anyway. It's called 'eid' now (electronic ID) and
holds an article ID used by online journals or journals which are
also available online.
* 'labelctitle' replaced by 'singletitle'
The 'labelctitle' field has removed in favor of a different
mechanism using a test called \ifsingletitle. The package option
'labelctitle' has also been renamed to 'singletitle'.
* Alphabetic label now configurable
The alphabetic label provided in the 'labelalpha' field is now
configurable to a certain extend. It is responsive to the global
package options 'maxnames' and 'minnames'. It's also possible to
influence the handling of truncated labels by redefining
\labelalphaothers.
* Name types
This release introduces the concept of a name type. This is best
explained by example. Suppose a book has a compiler rather than
an editor. In previous versions of this package, there was no way
to override the string 'editor' and 'edited by'. Starting with
this release, you may specify 'compiler' as an editor type:
@book{...,
editor = {...},
editortype = {compiler},
Supported editor types are 'editor' (the default) and 'compiler'.
Note that this mechanism is hooked up to bibliography strings
hence it may be extended. See the fields 'authortype',
'editortype', and 'name[a-c]type' in the manual.
* Consistent set of wrappers
I've completed the generic wrapper commands provided by biblatex
so that they form a complete set. Instead of using the solution
in the left column of the following list, use the wrapper in the
right column:
(...) -> \mkbibparens{...}
[...] -> \mkbibbrackets{...}
\footnote{...} -> \mkbibfootnote{...}
\textsuperscript{...} -> \mkbibsuperscript{...}
\emph{...} -> \mkbibemph{...}
\enquote{...} -> \mkbibquote{...}
``...'' -> \mkbibquote{...}
The wrappers integrate much better with biblatex and they also
provide additional features.
* New citation styles, some styles renamed
I've renamed all verbose citation styles from 'authortitle-*' to
'verbose-*' and added some new styles. See the changelog for
details.
* natbib compatibility style
To facilitate the move from natbib to biblatex, this release adds
a special natbib compatibility style which maps natbib's core
citation commands to equivalent biblatex commands. See the
package option 'natbib' for details.
* All citation commands scan ahead for punctuation
Starting with this release, all citation commands scan ahead for
punctuation to avoid double punctuation at the end of a citation.
This used to be a feature exclusive to \autocite. The 'autopunct'
package option and the \DeclareAutoPunctuation command will now
affect all citation commands, not only \autocite.
* Support for font style adaptation of punctuation
This release implements an alternative way of dealing with
punctuation after a field printed in a different font (for
example, a title printed in italics). The standard (La)TeX way of
dealing with this problem is to add a small amount of space (the
so-called italic correction) to avoid clashes between the final
letter of a word in italics and the following (upright)
punctuation mark.
Biblatex is now capable of adapting the punctuation to the font
of the preceeding field. See '\mkbibemph' and '\setpunctfont' for
details. Note that this feature is experimental. It may very well
have a few quirks. Also note that it is disabled by default. Use
the 'punctfont' package option to enable it.
* Extended language support: Norwegian, Danish
This release comes with a norsk.lbx and a danish.lbx file. The
translations have been contributed by Johannes Wilm.
RELEASE NOTES FOR VERSION 0.6
* Style-independent citations
This release introduces a special command for style-independent
citations. The idea behind the \autocite command is to provide
higher-level citation markup which makes global switching from
inline citations to citations given in footnotes (or as
superscripts) possible.
The \autocite command is built on top of lower-level commands
like \parencite and \footcite. The citation style provides an
\autocite definition by way of \DeclareAutoCiteCommand. This
definition may be activated by way of the 'autocite' package
option. See the documentation of \autocite in the manual for
further details.
* Forcing capitalized name prefixes
One thing that's been on my personal wishlist for some time is an
equivalent to natbib's \Citet command. This release finally
introduces additional citation commands which force capitalized
name prefixes (provided that there is a prefix and that it is to
be printed as part of the citation, i.e. the 'useprefix' option
is enabled). The new citation commands are defined as follows in
biblatex.cbx:
\newcommand*{\Cite}{\bibsentence\cite}
\newcommand*{\Textcite}{\bibsentence\textcite}
\newcommand*{\Parencite}{\bibsentence\parencite}
\newcommand*{\Footcite}{\bibsentence\footcite}
\newcommand*{\Citeauthor}{\bibsentence\citeauthor}
Here's how it works. Biblatex's punctuation tracker is based on
TeX's space factor. All the \bibsentence command does is setting
the space factor to a special sentinel value which is detected by
\bibstring. The name formatting directive used by all citation
commands now incorporates the new \ifcapital test. This test is
true if the punctuation tracker would capitalize a bibliography
string at this point. If the formatting directive detects the
sentinel value, it will capitalize the name prefix (if
applicable). A handy side-effect of this approach is that a
possible 'prenote' argument is taken into account automatically.
For example:
'\cite{vandoren}' prints 'van Doren 1995'
and
'\Cite{vandoren}' prints 'Van Doren 1995'
but
'\Cite[See]{vandoren}' prints 'See van Doren 1995'.
This also works in conjunction with bibliography strings. For
example, if the citation style replaces the standard citation by
something like '\bibstring{ibid}', then
'\cite{vandoren}' prints 'ibid.'
but
'\Cite{vandoren}' prints 'Ibid.'.
In other words, unless the citation style is doing something very
unusual, there is no need to define \Cite et al. explicitly with
\DeclareCiteCommand. The default definitions should work fine in
all normal cases. If the style doesn't print any names but rather
numerical or alphabetic citations then nothing is capitalized, so
that's no problem either.
* Custom filters for \printbibliography
See \defbibfilter and the 'filter' option of \printbibliography
in the manual.
* Support for unsorted bibliographies
See the package option 'sorting=none'.
* Automatic truncation of literal lists
This release introduces the package options 'maxitems' and
'minitems' which are similar to 'maxnames' and 'minnames' but
affect literal lists. There are also corresponding (local)
options for \printbibliography, \printshorthands, and so on.
* Improved support for corporate authors and editors
There are two new name lists ('shortauthor' and 'shorteditor')
which may be helpful when dealing with corporate authors and
editors. Basically, 'author' and 'editor' are used in the
bibliography whereas 'shortauthor' and 'shorteditor' are used in
citations. The point is that you can give a short form of the name
for use in citations. For example:
@Type{key,
author = {{National Aeronautics and Space Administration (NASA)}},
shortauthor = {NASA},
...
}
This will print "NASA" in citations but "National Aeronautics and
Space Administration (NASA)" in the bibliography. Note that
'shortauthor' and 'shorteditor' are name lists, not literal
fields. This means that corporate names must be wrapped in an
additional pair of curly braces.
* Improved support for articles: journal series and electronic ID
Journal series and article IDs are now catered for by the
standard styles (entry type 'article'). Note that the 'articleid'
field has been renamed to 'eid'. See the annotated bibliography
in the 'examples' directory for examples.
* DOI support
The 'doi' field is now catered for by the standard styles
(complete with hyperlinks). See the annotated bibliography in the
'examples' directory for examples.
* Fine-grained control of title formatting
Previous versions of this package provided two formatting
directives for the title field: 'title' (for entry types like
'book', 'collection', etc.) and 'titlein' (for 'article',
'inbook', 'incollection', etc.). I've enhanced this scheme such
that the format of the title may be defined on a per-type basis.
In biblatex.def you'll find the following directives for the
bibliography:
\DeclareFieldFormat{title:book}{\emph{#1}\isdot}
\DeclareFieldFormat{title:inbook}{\enquote{#1}\midsentence}
...
as well as dedicated directives for the titles in citations:
\DeclareFieldFormat{citetitle:book}{\emph{#1}\isdot}
\DeclareFieldFormat{citetitle:inbook}{\enquote{#1}\midsentence}
...
and in the list of shorthands:
\DeclareFieldFormat{lostitle:book}{\emph{#1}\isdot}
\DeclareFieldFormat{lostitle:inbook}{\enquote{#1}\midsentence}
...
I've updated all generic definitions in biblatex.cbx,
biblatex.bbx, and standard.bbx accordingly. Note that the
'title:type' directives are used for both the 'title' and the
'subtitle' field (which are wrapped in a \printtext command
controlling the formatting, see the 'title+stitle' bibmacro in
biblatex.bbx for an example of how it works). In other words:
redefining the 'subtitle' field formatting directive has no
effect.
* Rearranged localization keys
I've rearranged and extended the localization keys quite a bit.
This also implies several changes in biblatex.bbx.
* Support for KOMA-Script and Memoir
The default definitions of the bibliography headings (as defined
in biblatex.def) are now automatically adapted for the
KOMA-Script classes and the Memoir class.
* Improved Spanish support
The Spanish localization module now handles the Spanish word
'and' properly ('y' or 'e', depending on the context).
* Italian support
This release comes with a new italian.lbx file. The translations
have been contributed by Enrico Gregorio.
RELEASE NOTES FOR VERSION 0.5
My original plan for 0.5 was to make minor changes only and focus
on fixing bugs. Since only a few issues turned up (memory issues
in biblatex.bst), I ended up implementing new things from the
wishlist. Please note that the wishlist is closed until after
version 1.0.
* New author-title citation styles
I've added some verbose author-title styles which may be of
interest for users in the humanities. The styles are called
'authortitle-verb' and 'authortitle-cverb'. The 'traditional
style has been renamed to 'authortitle-trad' and there is an
additional new style called 'authortitle-strad'. The styles
support shorthands and are fully hyperlinked. The links point to
the first, verbose citation instead of the bibliography so these
styles may be used without a bibliography, if desired.
I've also added a matching 'dummy' bibliography style for every
citation style. The dummy style will simply load one of the more
generic backend styles. For example, the 'authortitle-verb' style
loads the 'authortitle' style. The point is that you may simply
use the 'style' package option instead of 'citestyle' plus
'bibstyle'.
* Conditional special fields, optimizations in biblatex.bst
The special fields 'labelalpha', 'labelctitle', 'labelnumber',
and 'labelyear' are conditional now. If a style requires one of
those fields, it needs to request them by setting the
corresponding package option. E.g., all numeric styles include
the line
\ExecuteBibliographyOptions{labelnumber}
This will instruct biblatex to provide the 'labelnumber' field
which is undefined by default now. Making these fields
conditional allows for some memory-related optimizations in
biblatex.bst.
* Author-level support for full citations
This version adds an author-level command which makes it possible
to execute a bibliography driver in a citation command. See
'\rundriver' in the manual.
* Page tracker
I've implemented a page tracker. The page tracker records the
real page on which citations, entries in the bibliography, and
entries in the list of shorthands end up. It can work on a per
page basis or per double page spread. The page tracker is
disabled by default. See the package option 'pagetracker' and the
commands '\iffirstonpage' and '\ifsamepage' in the manual.
* Unique indentification of reference instances
Every 'instance' of a reference is now uniquely identified by a
value of the 'citecount' counter. In other words: this counter is
incremented for every key processed by any citation command, for
every item in the bibliography and for every item in the list of
shorthands. This is required by the page tracker but it's also
useful if you need to generate a unique anchor name for
hyperlinks.
* Extended support for hyperlinks
I've renamed '\bibhyperlink' to '\bibhyperref' and added generic
'\bibhypertarget' and '\bibhyperlink' commands. '\bibhyperref'
creates a link from a citation to the corresponding item in the
bibliography. '\bibhypertarget' and '\bibhyperlink' are more
generic and correspond to the '\hypertarget' and '\hyperlink'
commands of the hyperref package. The point here is that you
don't need an explicit '\ifhyperref' check. If hyperlinks are
disabled, these wrappers will simply pass on their text argument.
As an additional benefit, they also provide better anchor
placement. The anchors created by '\hypertarget' seem to be
located at the baseline, i.e. if you click on a link you get the
impression that your PDF viewer jumps to the line of text just
below the one you mean.
* More name lists
See the 'annotator', 'commentator', 'introduction', 'foreword',
and 'afterword' lists in the annotated example.
* Special fields for indexing
See the 'indextitle' and 'indexsorttitle' fields in the annotated
example and the indexing examples.
* Spanish support
This release comes with a preliminary spanish.lbx file. The
translations have been contributed by Ignacio Fern\'andez
Galv\'an. Some advanced features are missing from this file
because they are still under scrutiny but it should nevertheless
be perfectly funtional.
* Examples
I've added a biblatex showcase with some example files in the
'examples' subdirectory. There's an example for every citation
style and some generic examples demonstrating multiple
bibliographies, split bibliographies, indexing, and so on.
RELEASE NOTES FOR VERSION 0.4
* Wishlist closed
As of this release, the wishlist is closed until after version
1.0. There are already more wishes in the pipeline than I can
implement in time for 1.0...
RELEASE NOTES FOR VERSION 0.3
The changelog for this release is shockingly long so I'll just
point out the general developments behind the individual entries
in the changelog. See the full changelog for all the gory
details. Note that styles written for version 0.2 will not work
with 0.3.
* New data type: literal list
This release introduces a new data type for literal lists. The
point of a literal list is that the list is split up at the 'and'
but the individual items are not dissected further. This is
intended for fields such as 'location' and 'publisher' since they
may contain a list of items but these items are not personal
names.
I have modified the macro names of the entire data interface for
lists to match the change. All macros with the term 'list' in
their name are renamed such that 'list' is replaced by 'name(s)'.
For example, \printlist is now \printnames, \DeclareListFormat is
\DeclareNameFormat, and so on. The old names are used for new
macros which deal with literal lists. The complete list of
affected macros is given in the changelog. Note that the names of
the macros which dump the unformatted data have changes as well
(\biblist -> \thename; \thelist (new); \bibfield -> \thefield).
These changes will require updates to all custom citation and
bibliography styles. However, the changes are only a matter of
some search & replace commands. I'm sorry about the inconvenience
but I think the new naming scheme is better than having macro
names like \printliterallist. I've decided to go for it now since
biblatex is still in beta.
As part of these changes, the data type of the following fields
has been changed from 'literal field' to 'literal list':
location, origlocation, publisher, institution, organization.
* Support for hyperref
Hyperref support is available now. This means that citations may
be transformed into links pointing to the bibliography. All
standard citation styles support that out of the box, custom
styles need to use the new hyperref interface. It works like
this: the anchor (i.e. the target of the link) is set
automatically by biblatex hence the bibliography style does not
need to do anything special. The citation style is responsible
for marking the link area. This is just a matter of passing the
relevant part of the citation to a special macro or formatting
directive doing the low-level work. See the changelog for
pointers to the relevant sections of the manual.
* Support for back references
I've added support for back references. The page numbers are
provided in the 'pageref' field which uses the new literal list
data type. Printing them is just a matter of \printlist{pageref}.
Note that you need to enable the 'backref' package option to get
any back reference data. There is also a bibmacro called
'pageref' in biblatex.bbx which adds a label. Bibliography styles
should print the list via \usebibmacro{pageref}. There are two
related list formatting directives in biblatex.def. The default
directive just prints the list as is, using a comma as a
separator. The directive 'pageref:comp' prints a sequence of more
than two consecutive pages as a range. The easiest way to try it
out is: \DeclareListAlias{pageref}{pageref:comp}.
The references are restricted to page numbers, back references to
sections are not supported. This is a deliberate decision. I
haven't bothered implementing back references to sections because
LaTeX's referencing mechanism is notoriously unreliable in this
respect. It essentially provides two pieces of information: the
formatted value of the last counter incremented by way of
\refstepcounter and the page number. The latter value is usually
unambiguous but the former could refer to just about everything.
The implications of this become obvious when you're using the
backref package with its 'ref' option (rather than 'pageref') and
put \cite commands in footnotes. The bibliography will then
include something like 'sections 1, 2, 3', but these numbers do
not refer to sections, these are footnote numbers!
Getting back references to sections right would require
reimplementing LaTeX's entire referencing mechanism (or
interfacing with a package doing that) and I don't want to get
into that business just yet. I may look into support for the zref
package later, but that's something for a post-1.0 release of
biblatex.
* Rearranged author-title citation styles
I've rearranged the author-title citation styles because most
people seem to expect the behavior of the old 'authortitle-verb'
style from the plain 'authortitle' style. So 'authortitle-verb'
is the plain 'authortitle' style now. The style formerly known as
'authortitle' has been renamed to 'authortitle-terse',
'authortitle-comp' is 'authortitle-cterse' now. I've also added a
new 'authortitle-comp' style to round off this subset of styles.
* Handling of thebibliography/theshorthands streamlined
The handling of thebibliography and theshorthands as well as some
related facilities has been overhauled and streamlined. See the
changelog and section 4.2.2 of the manual for details.
* Handling of 'and others' simplified
The way biblatex handles the string 'and others', which is used
in bib files to truncate a list of names, has been overhauled and
simplified. Essentially, I have removed 'moreauthor' and similar
fields since biblatex handles this internally now. All style
authors need to do is use \ifandothers and/or \ifmorenames. See
the manual for details.
* Improved \addtocategory
\addtocategory now cycles its arguments through the aux file.
This means that it may be used in the preamble and anywhere in
the document body, even after \printbibliography.
RELEASE NOTES FOR VERSION 0.2
* Internal changes in bibliography styles
I have rearranged all bibliography styles. It should be more
obvious now how many code is shared by the bibliography styles,
namely all 'driver' code. The shared code has been moved to
standard.bbx, so think of that as the biblatex standard style.
This code is used by numeric.bbx, alphabetic.bbx,
authortitle.bbx, and authoryear.bbx; standard.bbx is not meant to
be used stand-alone. A few bibmacros have also been moved to
biblatex.bbx.
* Internal changes in citation styles
There is only one change affecting the citation styles. The
'postnote' bibmacro in biblatex.cbx now automatically inserts a
prefix like 'p.' or 'pp.' where applicable.
* Optional argument for \printtext
\printtext takes an optional argument now. The point is that you
can use \printtext as a formatting hook. The advantage of this
approach is that \printtext integrates with the punctuation
tracking. I have revised biblatex.bbx to use this approach where
applicable.
* New fields
There are several new fields, some of which are supported by the
standard styles. This has lead to further changes in
biblatex.bbx, including changes to the names of existing
bibmacros.
|