From 7b6cdf4c23e6ed232601dabc70f5553a8dee9c9b Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 19 Oct 2022 03:01:25 +0000 Subject: CTAN sync 202210190301 --- FILES.byname | 770 ++-- FILES.byname.gz | Bin 2461661 -> 2466490 bytes FILES.last07days | 710 +++- biblio/ctan-bibdata/biblatex-ctan/ctan.bbx | 21 +- biblio/ctan-bibdata/ctan.bib | 1077 ++--- biblio/ctan-bibdata/ctan.pdf | Bin 3593366 -> 3617632 bytes fonts/cooperhewitt/README | 69 + fonts/cooperhewitt/doc/OFL.txt | 45 + fonts/cooperhewitt/doc/cooperhewitt-samples.pdf | Bin 0 -> 23234 bytes fonts/cooperhewitt/doc/cooperhewitt-samples.tex | 31 + fonts/cooperhewitt/enc/cphwt_4je6jj.enc | 63 + fonts/cooperhewitt/enc/cphwt_kvtx4d.enc | 63 + fonts/cooperhewitt/enc/cphwt_psuovm.enc | 63 + fonts/cooperhewitt/enc/cphwt_r6y6f6.enc | 63 + fonts/cooperhewitt/enc/cphwt_sz67he.enc | 63 + fonts/cooperhewitt/enc/cphwt_tjvrzf.enc | 63 + fonts/cooperhewitt/enc/cphwt_vrwj46.enc | 63 + fonts/cooperhewitt/latex/CooperHewitt.sty | 121 + fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd | 214 + fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd | 214 + fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd | 214 + fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd | 214 + fonts/cooperhewitt/latex/T1CpHwt-Sup.fd | 214 + fonts/cooperhewitt/latex/T1CpHwt-TLF.fd | 214 + fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd | 214 + fonts/cooperhewitt/map/CooperHewitt.map | 100 + fonts/cooperhewitt/opentype/CooperHewitt-Bold.otf | Bin 0 -> 89976 bytes .../opentype/CooperHewitt-BoldItalic.otf | Bin 0 -> 92092 bytes fonts/cooperhewitt/opentype/CooperHewitt-Book.otf | Bin 0 -> 89696 bytes .../opentype/CooperHewitt-BookItalic.otf | Bin 0 -> 92352 bytes fonts/cooperhewitt/opentype/CooperHewitt-Heavy.otf | Bin 0 -> 89652 bytes .../opentype/CooperHewitt-HeavyItalic.otf | Bin 0 -> 92056 bytes fonts/cooperhewitt/opentype/CooperHewitt-Light.otf | Bin 0 -> 89336 bytes .../opentype/CooperHewitt-LightItalic.otf | Bin 0 -> 92308 bytes .../cooperhewitt/opentype/CooperHewitt-Medium.otf | Bin 0 -> 89836 bytes .../opentype/CooperHewitt-MediumItalic.otf | Bin 0 -> 92244 bytes .../opentype/CooperHewitt-Semibold.otf | Bin 0 -> 90296 bytes .../opentype/CooperHewitt-SemiboldItalic.otf | Bin 0 -> 92384 bytes fonts/cooperhewitt/opentype/CooperHewitt-Thin.otf | Bin 0 -> 88996 bytes .../opentype/CooperHewitt-ThinItalic.otf | Bin 0 -> 89256 bytes .../cooperhewitt/tfm/CpHwt-Bold-sup-ly1--base.tfm | Bin 0 -> 1600 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1.tfm | Bin 0 -> 1604 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ot1.tfm | Bin 0 -> 1104 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1--base.tfm | Bin 0 -> 1604 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1.tfm | Bin 0 -> 1612 bytes .../cooperhewitt/tfm/CpHwt-Bold-tlf-ly1--base.tfm | Bin 0 -> 1600 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1.tfm | Bin 0 -> 10592 bytes .../cooperhewitt/tfm/CpHwt-Bold-tlf-ot1--base.tfm | Bin 0 -> 1100 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1.tfm | Bin 0 -> 5508 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1--base.tfm | Bin 0 -> 1600 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1.tfm | Bin 0 -> 16596 bytes .../cooperhewitt/tfm/CpHwt-Bold-tlf-ts1--base.tfm | Bin 0 -> 1264 bytes fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1.tfm | Bin 0 -> 1284 bytes .../tfm/CpHwt-BoldItalic-sup-ly1--base.tfm | Bin 0 -> 1720 bytes .../cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1.tfm | Bin 0 -> 1724 bytes .../cooperhewitt/tfm/CpHwt-BoldItalic-sup-ot1.tfm | Bin 0 -> 1212 bytes .../tfm/CpHwt-BoldItalic-sup-t1--base.tfm | Bin 0 -> 1716 bytes fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1.tfm | Bin 0 -> 1724 bytes .../tfm/CpHwt-BoldItalic-tlf-ly1--base.tfm | Bin 0 -> 1704 bytes .../cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1.tfm | Bin 0 -> 10696 bytes .../tfm/CpHwt-BoldItalic-tlf-ot1--base.tfm | Bin 0 -> 1184 bytes .../cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1.tfm | Bin 0 -> 5592 bytes .../tfm/CpHwt-BoldItalic-tlf-t1--base.tfm | Bin 0 -> 1688 bytes fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1.tfm | Bin 0 -> 16684 bytes .../tfm/CpHwt-BoldItalic-tlf-ts1--base.tfm | Bin 0 -> 1300 bytes .../cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1.tfm | Bin 0 -> 1320 bytes .../cooperhewitt/tfm/CpHwt-Book-sup-ly1--base.tfm | Bin 0 -> 1592 bytes fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1.tfm | Bin 0 -> 1596 bytes fonts/cooperhewitt/tfm/CpHwt-Book-sup-ot1.tfm | Bin 0 -> 1104 bytes fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1--base.tfm | Bin 0 -> 1600 bytes fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1.tfm | Bin 0 -> 1608 bytes .../cooperhewitt/tfm/CpHwt-Book-tlf-ly1--base.tfm | Bin 0 -> 1592 bytes fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1.tfm | Bin 0 -> 10584 bytes .../cooperhewitt/tfm/CpHwt-Book-tlf-ot1--base.tfm | Bin 0 -> 1100 bytes fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1.tfm | Bin 0 -> 5508 bytes fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1--base.tfm | Bin 0 -> 1596 bytes fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1.tfm | Bin 0 -> 16592 bytes .../cooperhewitt/tfm/CpHwt-Book-tlf-ts1--base.tfm | Bin 0 -> 1260 bytes fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1.tfm | Bin 0 -> 1280 bytes .../tfm/CpHwt-BookItalic-sup-ly1--base.tfm | Bin 0 -> 1684 bytes .../cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1.tfm | Bin 0 -> 1688 bytes .../cooperhewitt/tfm/CpHwt-BookItalic-sup-ot1.tfm | Bin 0 -> 1196 bytes .../tfm/CpHwt-BookItalic-sup-t1--base.tfm | Bin 0 -> 1684 bytes fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1.tfm | Bin 0 -> 1692 bytes .../tfm/CpHwt-BookItalic-tlf-ly1--base.tfm | Bin 0 -> 1664 bytes .../cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1.tfm | Bin 0 -> 10656 bytes .../tfm/CpHwt-BookItalic-tlf-ot1--base.tfm | Bin 0 -> 1164 bytes .../cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1.tfm | Bin 0 -> 5572 bytes .../tfm/CpHwt-BookItalic-tlf-t1--base.tfm | Bin 0 -> 1652 bytes fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1.tfm | Bin 0 -> 16648 bytes .../tfm/CpHwt-BookItalic-tlf-ts1--base.tfm | Bin 0 -> 1280 bytes .../cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1.tfm | Bin 0 -> 1300 bytes .../cooperhewitt/tfm/CpHwt-Heavy-sup-ly1--base.tfm | Bin 0 -> 1500 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1.tfm | Bin 0 -> 1504 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ot1.tfm | Bin 0 -> 1032 bytes .../cooperhewitt/tfm/CpHwt-Heavy-sup-t1--base.tfm | Bin 0 -> 1516 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1.tfm | Bin 0 -> 1524 bytes .../cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1--base.tfm | Bin 0 -> 1504 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1.tfm | Bin 0 -> 10492 bytes .../cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1--base.tfm | Bin 0 -> 1032 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1.tfm | Bin 0 -> 5436 bytes .../cooperhewitt/tfm/CpHwt-Heavy-tlf-t1--base.tfm | Bin 0 -> 1516 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1.tfm | Bin 0 -> 16512 bytes .../cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1--base.tfm | Bin 0 -> 1256 bytes fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1.tfm | Bin 0 -> 1272 bytes .../tfm/CpHwt-HeavyItalic-sup-ly1--base.tfm | Bin 0 -> 1640 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1.tfm | Bin 0 -> 1644 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ot1.tfm | Bin 0 -> 1156 bytes .../tfm/CpHwt-HeavyItalic-sup-t1--base.tfm | Bin 0 -> 1644 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1.tfm | Bin 0 -> 1652 bytes .../tfm/CpHwt-HeavyItalic-tlf-ly1--base.tfm | Bin 0 -> 1628 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1.tfm | Bin 0 -> 10616 bytes .../tfm/CpHwt-HeavyItalic-tlf-ot1--base.tfm | Bin 0 -> 1128 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1.tfm | Bin 0 -> 5532 bytes .../tfm/CpHwt-HeavyItalic-tlf-t1--base.tfm | Bin 0 -> 1624 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1.tfm | Bin 0 -> 16620 bytes .../tfm/CpHwt-HeavyItalic-tlf-ts1--base.tfm | Bin 0 -> 1304 bytes .../cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1.tfm | Bin 0 -> 1320 bytes .../cooperhewitt/tfm/CpHwt-Light-sup-ly1--base.tfm | Bin 0 -> 1484 bytes fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1.tfm | Bin 0 -> 1488 bytes fonts/cooperhewitt/tfm/CpHwt-Light-sup-ot1.tfm | Bin 0 -> 1024 bytes .../cooperhewitt/tfm/CpHwt-Light-sup-t1--base.tfm | Bin 0 -> 1476 bytes fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1.tfm | Bin 0 -> 1484 bytes .../cooperhewitt/tfm/CpHwt-Light-tlf-ly1--base.tfm | Bin 0 -> 1484 bytes fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1.tfm | Bin 0 -> 10472 bytes .../cooperhewitt/tfm/CpHwt-Light-tlf-ot1--base.tfm | Bin 0 -> 1020 bytes fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1.tfm | Bin 0 -> 5428 bytes .../cooperhewitt/tfm/CpHwt-Light-tlf-t1--base.tfm | Bin 0 -> 1472 bytes fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1.tfm | Bin 0 -> 16472 bytes .../cooperhewitt/tfm/CpHwt-Light-tlf-ts1--base.tfm | Bin 0 -> 1244 bytes fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1.tfm | Bin 0 -> 1264 bytes .../tfm/CpHwt-LightItalic-sup-ly1--base.tfm | Bin 0 -> 1576 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1.tfm | Bin 0 -> 1580 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-sup-ot1.tfm | Bin 0 -> 1104 bytes .../tfm/CpHwt-LightItalic-sup-t1--base.tfm | Bin 0 -> 1568 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-sup-t1.tfm | Bin 0 -> 1576 bytes .../tfm/CpHwt-LightItalic-tlf-ly1--base.tfm | Bin 0 -> 1552 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1.tfm | Bin 0 -> 10540 bytes .../tfm/CpHwt-LightItalic-tlf-ot1--base.tfm | Bin 0 -> 1072 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1.tfm | Bin 0 -> 5480 bytes .../tfm/CpHwt-LightItalic-tlf-t1--base.tfm | Bin 0 -> 1536 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1.tfm | Bin 0 -> 16536 bytes .../tfm/CpHwt-LightItalic-tlf-ts1--base.tfm | Bin 0 -> 1260 bytes .../cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1.tfm | Bin 0 -> 1280 bytes .../tfm/CpHwt-Medium-sup-ly1--base.tfm | Bin 0 -> 1596 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1.tfm | Bin 0 -> 1600 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ot1.tfm | Bin 0 -> 1108 bytes .../cooperhewitt/tfm/CpHwt-Medium-sup-t1--base.tfm | Bin 0 -> 1592 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1.tfm | Bin 0 -> 1600 bytes .../tfm/CpHwt-Medium-tlf-ly1--base.tfm | Bin 0 -> 1596 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1.tfm | Bin 0 -> 10588 bytes .../tfm/CpHwt-Medium-tlf-ot1--base.tfm | Bin 0 -> 1104 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1.tfm | Bin 0 -> 5512 bytes .../cooperhewitt/tfm/CpHwt-Medium-tlf-t1--base.tfm | Bin 0 -> 1588 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1.tfm | Bin 0 -> 16584 bytes .../tfm/CpHwt-Medium-tlf-ts1--base.tfm | Bin 0 -> 1260 bytes fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1.tfm | Bin 0 -> 1280 bytes .../tfm/CpHwt-MediumItalic-sup-ly1--base.tfm | Bin 0 -> 1708 bytes .../tfm/CpHwt-MediumItalic-sup-ly1.tfm | Bin 0 -> 1712 bytes .../tfm/CpHwt-MediumItalic-sup-ot1.tfm | Bin 0 -> 1212 bytes .../tfm/CpHwt-MediumItalic-sup-t1--base.tfm | Bin 0 -> 1708 bytes .../cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1.tfm | Bin 0 -> 1716 bytes .../tfm/CpHwt-MediumItalic-tlf-ly1--base.tfm | Bin 0 -> 1676 bytes .../tfm/CpHwt-MediumItalic-tlf-ly1.tfm | Bin 0 -> 10668 bytes .../tfm/CpHwt-MediumItalic-tlf-ot1--base.tfm | Bin 0 -> 1168 bytes .../tfm/CpHwt-MediumItalic-tlf-ot1.tfm | Bin 0 -> 5576 bytes .../tfm/CpHwt-MediumItalic-tlf-t1--base.tfm | Bin 0 -> 1664 bytes .../cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1.tfm | Bin 0 -> 16660 bytes .../tfm/CpHwt-MediumItalic-tlf-ts1--base.tfm | Bin 0 -> 1284 bytes .../tfm/CpHwt-MediumItalic-tlf-ts1.tfm | Bin 0 -> 1304 bytes .../tfm/CpHwt-Semibold-sup-ly1--base.tfm | Bin 0 -> 1604 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1.tfm | Bin 0 -> 1608 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ot1.tfm | Bin 0 -> 1112 bytes .../tfm/CpHwt-Semibold-sup-t1--base.tfm | Bin 0 -> 1612 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1.tfm | Bin 0 -> 1620 bytes .../tfm/CpHwt-Semibold-tlf-ly1--base.tfm | Bin 0 -> 1604 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1.tfm | Bin 0 -> 10596 bytes .../tfm/CpHwt-Semibold-tlf-ot1--base.tfm | Bin 0 -> 1108 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1.tfm | Bin 0 -> 5516 bytes .../tfm/CpHwt-Semibold-tlf-t1--base.tfm | Bin 0 -> 1608 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1.tfm | Bin 0 -> 16604 bytes .../tfm/CpHwt-Semibold-tlf-ts1--base.tfm | Bin 0 -> 1260 bytes fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1.tfm | Bin 0 -> 1280 bytes .../tfm/CpHwt-SemiboldItalic-sup-ly1--base.tfm | Bin 0 -> 1732 bytes .../tfm/CpHwt-SemiboldItalic-sup-ly1.tfm | Bin 0 -> 1736 bytes .../tfm/CpHwt-SemiboldItalic-sup-ot1.tfm | Bin 0 -> 1224 bytes .../tfm/CpHwt-SemiboldItalic-sup-t1--base.tfm | Bin 0 -> 1724 bytes .../tfm/CpHwt-SemiboldItalic-sup-t1.tfm | Bin 0 -> 1732 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ly1--base.tfm | Bin 0 -> 1704 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ly1.tfm | Bin 0 -> 10696 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ot1--base.tfm | Bin 0 -> 1188 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ot1.tfm | Bin 0 -> 5596 bytes .../tfm/CpHwt-SemiboldItalic-tlf-t1--base.tfm | Bin 0 -> 1688 bytes .../tfm/CpHwt-SemiboldItalic-tlf-t1.tfm | Bin 0 -> 16684 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ts1--base.tfm | Bin 0 -> 1284 bytes .../tfm/CpHwt-SemiboldItalic-tlf-ts1.tfm | Bin 0 -> 1304 bytes .../cooperhewitt/tfm/CpHwt-Thin-sup-ly1--base.tfm | Bin 0 -> 1524 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1.tfm | Bin 0 -> 1528 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ot1.tfm | Bin 0 -> 1072 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1--base.tfm | Bin 0 -> 1516 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1.tfm | Bin 0 -> 1524 bytes .../cooperhewitt/tfm/CpHwt-Thin-tlf-ly1--base.tfm | Bin 0 -> 1524 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1.tfm | Bin 0 -> 10516 bytes .../cooperhewitt/tfm/CpHwt-Thin-tlf-ot1--base.tfm | Bin 0 -> 1068 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1.tfm | Bin 0 -> 5476 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1--base.tfm | Bin 0 -> 1512 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1.tfm | Bin 0 -> 16512 bytes .../cooperhewitt/tfm/CpHwt-Thin-tlf-ts1--base.tfm | Bin 0 -> 1252 bytes fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1.tfm | Bin 0 -> 1276 bytes .../tfm/CpHwt-ThinItalic-sup-ly1--base.tfm | Bin 0 -> 1624 bytes .../cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1.tfm | Bin 0 -> 1628 bytes .../cooperhewitt/tfm/CpHwt-ThinItalic-sup-ot1.tfm | Bin 0 -> 1144 bytes .../tfm/CpHwt-ThinItalic-sup-t1--base.tfm | Bin 0 -> 1616 bytes fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1.tfm | Bin 0 -> 1624 bytes .../tfm/CpHwt-ThinItalic-tlf-ly1--base.tfm | Bin 0 -> 1600 bytes .../cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1.tfm | Bin 0 -> 10592 bytes .../tfm/CpHwt-ThinItalic-tlf-ot1--base.tfm | Bin 0 -> 1112 bytes .../cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1.tfm | Bin 0 -> 5520 bytes .../tfm/CpHwt-ThinItalic-tlf-t1--base.tfm | Bin 0 -> 1584 bytes fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1.tfm | Bin 0 -> 16584 bytes .../tfm/CpHwt-ThinItalic-tlf-ts1--base.tfm | Bin 0 -> 1264 bytes .../cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1.tfm | Bin 0 -> 1288 bytes fonts/cooperhewitt/type1/CpHwt-Bold.pfb | Bin 0 -> 46394 bytes fonts/cooperhewitt/type1/CpHwt-BoldItalic.pfb | Bin 0 -> 49061 bytes fonts/cooperhewitt/type1/CpHwt-Book.pfb | Bin 0 -> 45623 bytes fonts/cooperhewitt/type1/CpHwt-BookItalic.pfb | Bin 0 -> 48713 bytes fonts/cooperhewitt/type1/CpHwt-Heavy.pfb | Bin 0 -> 45193 bytes fonts/cooperhewitt/type1/CpHwt-HeavyItalic.pfb | Bin 0 -> 48265 bytes fonts/cooperhewitt/type1/CpHwt-Light.pfb | Bin 0 -> 45768 bytes fonts/cooperhewitt/type1/CpHwt-LightItalic.pfb | Bin 0 -> 48220 bytes fonts/cooperhewitt/type1/CpHwt-Medium.pfb | Bin 0 -> 45804 bytes fonts/cooperhewitt/type1/CpHwt-MediumItalic.pfb | Bin 0 -> 48592 bytes fonts/cooperhewitt/type1/CpHwt-Semibold.pfb | Bin 0 -> 47003 bytes fonts/cooperhewitt/type1/CpHwt-SemiboldItalic.pfb | Bin 0 -> 48911 bytes fonts/cooperhewitt/type1/CpHwt-Thin.pfb | Bin 0 -> 45547 bytes fonts/cooperhewitt/type1/CpHwt-ThinItalic.pfb | Bin 0 -> 47393 bytes fonts/cooperhewitt/vf/CpHwt-Bold-sup-ly1.vf | Bin 0 -> 1644 bytes fonts/cooperhewitt/vf/CpHwt-Bold-sup-t1.vf | Bin 0 -> 1688 bytes fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Bold-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ts1.vf | Bin 0 -> 488 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-t1.vf | Bin 0 -> 1696 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ly1.vf | Bin 0 -> 1740 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ot1.vf | Bin 0 -> 1344 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ts1.vf | Bin 0 -> 496 bytes fonts/cooperhewitt/vf/CpHwt-Book-sup-ly1.vf | Bin 0 -> 1644 bytes fonts/cooperhewitt/vf/CpHwt-Book-sup-t1.vf | Bin 0 -> 1688 bytes fonts/cooperhewitt/vf/CpHwt-Book-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Book-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Book-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Book-tlf-ts1.vf | Bin 0 -> 488 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-t1.vf | Bin 0 -> 1696 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ly1.vf | Bin 0 -> 1740 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ot1.vf | Bin 0 -> 1344 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ts1.vf | Bin 0 -> 496 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-sup-ly1.vf | Bin 0 -> 1644 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-sup-t1.vf | Bin 0 -> 1688 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ts1.vf | Bin 0 -> 492 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-t1.vf | Bin 0 -> 1696 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ly1.vf | Bin 0 -> 1744 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ot1.vf | Bin 0 -> 1348 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ts1.vf | Bin 0 -> 496 bytes fonts/cooperhewitt/vf/CpHwt-Light-sup-ly1.vf | Bin 0 -> 1644 bytes fonts/cooperhewitt/vf/CpHwt-Light-sup-t1.vf | Bin 0 -> 1688 bytes fonts/cooperhewitt/vf/CpHwt-Light-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Light-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Light-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Light-tlf-ts1.vf | Bin 0 -> 492 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-t1.vf | Bin 0 -> 1696 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ly1.vf | Bin 0 -> 1744 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ot1.vf | Bin 0 -> 1348 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ts1.vf | Bin 0 -> 496 bytes fonts/cooperhewitt/vf/CpHwt-Medium-sup-ly1.vf | Bin 0 -> 1648 bytes fonts/cooperhewitt/vf/CpHwt-Medium-sup-t1.vf | Bin 0 -> 1692 bytes fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Medium-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ts1.vf | Bin 0 -> 492 bytes .../cooperhewitt/vf/CpHwt-MediumItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-t1.vf | Bin 0 -> 1696 bytes .../cooperhewitt/vf/CpHwt-MediumItalic-tlf-ly1.vf | Bin 0 -> 1744 bytes .../cooperhewitt/vf/CpHwt-MediumItalic-tlf-ot1.vf | Bin 0 -> 1348 bytes fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-t1.vf | Bin 0 -> 1740 bytes .../cooperhewitt/vf/CpHwt-MediumItalic-tlf-ts1.vf | Bin 0 -> 496 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-sup-ly1.vf | Bin 0 -> 1648 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-sup-t1.vf | Bin 0 -> 1692 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ly1.vf | Bin 0 -> 1740 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ot1.vf | Bin 0 -> 1344 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ts1.vf | Bin 0 -> 492 bytes .../vf/CpHwt-SemiboldItalic-sup-ly1.vf | Bin 0 -> 1656 bytes .../cooperhewitt/vf/CpHwt-SemiboldItalic-sup-t1.vf | Bin 0 -> 1700 bytes .../vf/CpHwt-SemiboldItalic-tlf-ly1.vf | Bin 0 -> 1744 bytes .../vf/CpHwt-SemiboldItalic-tlf-ot1.vf | Bin 0 -> 1348 bytes .../cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-t1.vf | Bin 0 -> 1740 bytes .../vf/CpHwt-SemiboldItalic-tlf-ts1.vf | Bin 0 -> 500 bytes fonts/cooperhewitt/vf/CpHwt-Thin-sup-ly1.vf | Bin 0 -> 1644 bytes fonts/cooperhewitt/vf/CpHwt-Thin-sup-t1.vf | Bin 0 -> 1688 bytes fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ly1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ot1.vf | Bin 0 -> 1340 bytes fonts/cooperhewitt/vf/CpHwt-Thin-tlf-t1.vf | Bin 0 -> 1732 bytes fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ts1.vf | Bin 0 -> 488 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-ly1.vf | Bin 0 -> 1652 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-t1.vf | Bin 0 -> 1696 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ly1.vf | Bin 0 -> 1740 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ot1.vf | Bin 0 -> 1344 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-t1.vf | Bin 0 -> 1736 bytes fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ts1.vf | Bin 0 -> 496 bytes macros/latex/contrib/docshots/DEPENDS.txt | 2 + macros/latex/contrib/docshots/docshots.dtx | 93 +- macros/latex/contrib/docshots/docshots.pdf | Bin 334497 -> 336674 bytes macros/latex/contrib/ifoddpage/DEPENDS.txt | 1 + macros/latex/contrib/ifoddpage/README | 18 - macros/latex/contrib/ifoddpage/README.txt | 18 + macros/latex/contrib/ifoddpage/ifoddpage.dtx | 47 +- macros/latex/contrib/ifoddpage/ifoddpage.pdf | Bin 133988 -> 144874 bytes macros/latex/contrib/mfirstuc/CHANGES | 52 + macros/latex/contrib/mfirstuc/README | 14 +- macros/latex/contrib/mfirstuc/mfirstuc-code.pdf | Bin 266637 -> 352549 bytes macros/latex/contrib/mfirstuc/mfirstuc-manual.html | 3101 +++++++-------- macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf | Bin 301928 -> 294879 bytes macros/latex/contrib/mfirstuc/mfirstuc-manual.tex | 2495 ++++++++---- macros/latex/contrib/mfirstuc/mfirstuc.dtx | 2030 +++++++--- macros/latex/contrib/mfirstuc/mfirstuc.ins | 10 +- macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf | Bin 121084 -> 122108 bytes macros/latex/contrib/mfirstuc/sample-mfirstuc.tex | 292 -- support/chktex/ChkTeX.c | 91 +- support/chktex/ChkTeX.h | 24 +- support/chktex/ChkTeX.pdf | Bin 0 -> 409006 bytes support/chktex/ChkTeX.tex.in | 127 +- support/chktex/FindErrs.c | 317 +- support/chktex/FindErrs.h | 12 +- support/chktex/MakeChkTeXRC.pl | 71 + support/chktex/Makefile.in | 32 +- support/chktex/NEWS | 42 + support/chktex/OpSys.c | 88 +- support/chktex/OpSys.h | 34 +- support/chktex/Resource.c | 263 +- support/chktex/Resource.h | 6 +- support/chktex/Test.nore.out | 108 +- support/chktex/Test.pcre.out | 111 +- support/chktex/Test.posix-ere.out | 93 +- support/chktex/Test.tex | 81 +- support/chktex/Utility.c | 53 +- support/chktex/Utility.h | 8 +- support/chktex/aclocal.m4 | 6 +- support/chktex/chktexrc | 802 ---- support/chktex/chktexrc.in | 989 +++++ support/chktex/config.h.in | 12 +- support/chktex/configure | 4161 ++++++++++++-------- support/chktex/configure.ac | 193 + support/chktex/configure.in | 193 - support/chktex/input/file | 8 + support/chktex/install-sh | 174 +- support/chktex/m4/ax_append_flag.m4 | 50 + support/chktex/m4/ax_cflags_strict_prototypes.m4 | 153 +- support/chktex/m4/ax_require_defined.m4 | 37 + support/chktex/tests/main.expected | 27 + support/chktex/tests/main.tex | 14 + support/chktex/tests/run-tests.sh | 137 + support/chktex/tests/sub1/file.tex | 8 + support/chktex/tests/sub1/subsub/subsubfile.tex | 2 + support/chktex/tests/sub2/file1.tex | 7 + support/chktex/tests/sub2/file2.tex | 2 + support/sty2dtx/README | 155 - support/sty2dtx/README.txt | 162 + support/sty2dtx/sty2dtx.1 | 54 +- support/sty2dtx/sty2dtx.pdf | Bin 140340 -> 156538 bytes support/sty2dtx/sty2dtx.pl | 35 +- .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 1 - systems/texlive/tlnet/tlpkg/texlive.tlpdb | 631 ++- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2418984 -> 2421460 bytes systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 8 +- timestamp | 2 +- 390 files changed, 14758 insertions(+), 7908 deletions(-) create mode 100644 fonts/cooperhewitt/README create mode 100644 fonts/cooperhewitt/doc/OFL.txt create mode 100644 fonts/cooperhewitt/doc/cooperhewitt-samples.pdf create mode 100644 fonts/cooperhewitt/doc/cooperhewitt-samples.tex create mode 100644 fonts/cooperhewitt/enc/cphwt_4je6jj.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_kvtx4d.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_psuovm.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_r6y6f6.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_sz67he.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_tjvrzf.enc create mode 100644 fonts/cooperhewitt/enc/cphwt_vrwj46.enc create mode 100644 fonts/cooperhewitt/latex/CooperHewitt.sty create mode 100644 fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd create mode 100644 fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd create mode 100644 fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd create mode 100644 fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd create mode 100644 fonts/cooperhewitt/latex/T1CpHwt-Sup.fd create mode 100644 fonts/cooperhewitt/latex/T1CpHwt-TLF.fd create mode 100644 fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd create mode 100644 fonts/cooperhewitt/map/CooperHewitt.map create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Bold.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-BoldItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Book.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-BookItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Heavy.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-HeavyItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Light.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-LightItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Medium.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-MediumItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Semibold.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-SemiboldItalic.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-Thin.otf create mode 100644 fonts/cooperhewitt/opentype/CooperHewitt-ThinItalic.otf create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1--base.tfm create mode 100644 fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1.tfm create mode 100644 fonts/cooperhewitt/type1/CpHwt-Bold.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-BoldItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Book.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-BookItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Heavy.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-HeavyItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Light.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-LightItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Medium.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-MediumItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Semibold.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-SemiboldItalic.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-Thin.pfb create mode 100644 fonts/cooperhewitt/type1/CpHwt-ThinItalic.pfb create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Book-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Light-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ts1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ly1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ot1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-t1.vf create mode 100644 fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ts1.vf create mode 100644 macros/latex/contrib/ifoddpage/DEPENDS.txt delete mode 100644 macros/latex/contrib/ifoddpage/README create mode 100644 macros/latex/contrib/ifoddpage/README.txt delete mode 100644 macros/latex/contrib/mfirstuc/sample-mfirstuc.tex create mode 100644 support/chktex/ChkTeX.pdf create mode 100755 support/chktex/MakeChkTeXRC.pl delete mode 100644 support/chktex/chktexrc create mode 100644 support/chktex/chktexrc.in create mode 100644 support/chktex/configure.ac delete mode 100644 support/chktex/configure.in create mode 100644 support/chktex/input/file create mode 100644 support/chktex/m4/ax_append_flag.m4 create mode 100644 support/chktex/m4/ax_require_defined.m4 create mode 100644 support/chktex/tests/main.expected create mode 100644 support/chktex/tests/main.tex create mode 100755 support/chktex/tests/run-tests.sh create mode 100644 support/chktex/tests/sub1/file.tex create mode 100644 support/chktex/tests/sub1/subsub/subsubfile.tex create mode 100644 support/chktex/tests/sub2/file1.tex create mode 100644 support/chktex/tests/sub2/file2.tex delete mode 100644 support/sty2dtx/README create mode 100644 support/sty2dtx/README.txt diff --git a/FILES.byname b/FILES.byname index b629664964..e5bd2944cb 100644 --- a/FILES.byname +++ b/FILES.byname @@ -2035,12 +2035,12 @@ 2022/09/23 | 1673 | biblio/citation-style-language/README.md 2022/09/23 | 11958 | biblio/citation-style-language/vancouver.csl 2022/09/23 | 591448 | biblio/citation-style-language.zip -2022/10/08 | 1476 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2022/10/18 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx -2022/10/17 | 2603471 | biblio/ctan-bibdata/ctan.bib -2022/10/17 | 3595046 | biblio/ctan-bibdata/ctan.pdf +2022/10/18 | 2738615 | biblio/ctan-bibdata/ctan.bib +2022/10/18 | 3592997 | biblio/ctan-bibdata/ctan.pdf 2022/10/08 | 1415 | biblio/ctan-bibdata/README -2022/10/17 | 3982059 | biblio/ctan-bibdata.zip +2022/10/18 | 3984099 | biblio/ctan-bibdata.zip 2022/02/06 | 3110 | biblio/pbibtex/pbibtex-base/cpp.awk 2022/02/06 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh 2022/02/06 | 22422 | biblio/pbibtex/pbibtex-base/jabbrv.bst @@ -5414,7 +5414,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2022/10/17 | 118173 | FILES.last07days +2022/10/18 | 129715 | FILES.last07days 2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs 2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf 2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf @@ -26580,6 +26580,321 @@ 1999/03/18 | 1512 | fonts/concrete/tfm/ccslc9.tfm 1999/03/18 | 1488 | fonts/concrete/tfm/ccti10.tfm 2005/05/20 | 35092 | fonts/concrete.zip +2022/10/18 | 23234 | fonts/cooperhewitt/doc/cooperhewitt-samples.pdf +2022/10/18 | 427 | fonts/cooperhewitt/doc/cooperhewitt-samples.tex +2022/10/18 | 4422 | fonts/cooperhewitt/doc/OFL.txt +2022/10/18 | 2874 | fonts/cooperhewitt/enc/cphwt_4je6jj.enc +2022/10/18 | 3210 | fonts/cooperhewitt/enc/cphwt_kvtx4d.enc +2022/10/18 | 2835 | fonts/cooperhewitt/enc/cphwt_psuovm.enc +2022/10/18 | 2964 | fonts/cooperhewitt/enc/cphwt_r6y6f6.enc +2022/10/18 | 2919 | fonts/cooperhewitt/enc/cphwt_sz67he.enc +2022/10/18 | 2792 | fonts/cooperhewitt/enc/cphwt_tjvrzf.enc +2022/10/18 | 2917 | fonts/cooperhewitt/enc/cphwt_vrwj46.enc +2022/10/18 | 3359 | fonts/cooperhewitt/latex/CooperHewitt.sty +2022/10/18 | 4479 | fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd +2022/10/18 | 4420 | fonts/cooperhewitt/latex/T1CpHwt-Sup.fd +2022/10/18 | 4420 | fonts/cooperhewitt/latex/T1CpHwt-TLF.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd +2022/10/18 | 13036 | fonts/cooperhewitt/map/CooperHewitt.map +2022/10/18 | 92092 | fonts/cooperhewitt/opentype/CooperHewitt-BoldItalic.otf +2022/10/18 | 89976 | fonts/cooperhewitt/opentype/CooperHewitt-Bold.otf +2022/10/18 | 92352 | fonts/cooperhewitt/opentype/CooperHewitt-BookItalic.otf +2022/10/18 | 89696 | fonts/cooperhewitt/opentype/CooperHewitt-Book.otf +2022/10/18 | 92056 | fonts/cooperhewitt/opentype/CooperHewitt-HeavyItalic.otf +2022/10/18 | 89652 | fonts/cooperhewitt/opentype/CooperHewitt-Heavy.otf +2022/10/18 | 92308 | fonts/cooperhewitt/opentype/CooperHewitt-LightItalic.otf +2022/10/18 | 89336 | fonts/cooperhewitt/opentype/CooperHewitt-Light.otf +2022/10/18 | 92244 | fonts/cooperhewitt/opentype/CooperHewitt-MediumItalic.otf +2022/10/18 | 89836 | fonts/cooperhewitt/opentype/CooperHewitt-Medium.otf +2022/10/18 | 92384 | fonts/cooperhewitt/opentype/CooperHewitt-SemiboldItalic.otf +2022/10/18 | 90296 | fonts/cooperhewitt/opentype/CooperHewitt-Semibold.otf +2022/10/18 | 89256 | fonts/cooperhewitt/opentype/CooperHewitt-ThinItalic.otf +2022/10/18 | 88996 | fonts/cooperhewitt/opentype/CooperHewitt-Thin.otf +2022/10/18 | 2286 | fonts/cooperhewitt/README +2022/10/18 | 1720 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1--base.tfm +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1.tfm +2022/10/18 | 1212 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ot1.tfm +2022/10/18 | 1716 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1--base.tfm +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1.tfm +2022/10/18 | 1704 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1--base.tfm +2022/10/18 | 10696 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1.tfm +2022/10/18 | 1184 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1--base.tfm +2022/10/18 | 5592 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1--base.tfm +2022/10/18 | 16684 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1.tfm +2022/10/18 | 1300 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1--base.tfm +2022/10/18 | 1320 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1--base.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ot1.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1--base.tfm +2022/10/18 | 1612 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1--base.tfm +2022/10/18 | 10592 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1.tfm +2022/10/18 | 1100 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1--base.tfm +2022/10/18 | 5508 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1--base.tfm +2022/10/18 | 16596 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1--base.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1.tfm +2022/10/18 | 1684 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1--base.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1.tfm +2022/10/18 | 1196 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ot1.tfm +2022/10/18 | 1684 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1--base.tfm +2022/10/18 | 1692 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1.tfm +2022/10/18 | 1664 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1--base.tfm +2022/10/18 | 10656 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1.tfm +2022/10/18 | 1164 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1--base.tfm +2022/10/18 | 5572 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1.tfm +2022/10/18 | 1652 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1--base.tfm +2022/10/18 | 16648 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1--base.tfm +2022/10/18 | 1300 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1--base.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ot1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1--base.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1--base.tfm +2022/10/18 | 10584 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1.tfm +2022/10/18 | 1100 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1--base.tfm +2022/10/18 | 5508 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1--base.tfm +2022/10/18 | 16592 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1--base.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1.tfm +2022/10/18 | 1640 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1--base.tfm +2022/10/18 | 1644 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1.tfm +2022/10/18 | 1156 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ot1.tfm +2022/10/18 | 1644 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1--base.tfm +2022/10/18 | 1652 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1.tfm +2022/10/18 | 1628 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1--base.tfm +2022/10/18 | 10616 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1.tfm +2022/10/18 | 1128 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1--base.tfm +2022/10/18 | 5532 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1--base.tfm +2022/10/18 | 16620 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1.tfm +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1--base.tfm +2022/10/18 | 1320 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1.tfm +2022/10/18 | 1500 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1--base.tfm +2022/10/18 | 1504 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1.tfm +2022/10/18 | 1032 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ot1.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1--base.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1.tfm +2022/10/18 | 1504 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1--base.tfm +2022/10/18 | 10492 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1.tfm +2022/10/18 | 1032 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1--base.tfm +2022/10/18 | 5436 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1--base.tfm +2022/10/18 | 16512 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1.tfm +2022/10/18 | 1256 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1--base.tfm +2022/10/18 | 1272 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1.tfm +2022/10/18 | 1576 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1--base.tfm +2022/10/18 | 1580 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ot1.tfm +2022/10/18 | 1568 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1--base.tfm +2022/10/18 | 1576 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1.tfm +2022/10/18 | 1552 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1--base.tfm +2022/10/18 | 10540 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1.tfm +2022/10/18 | 1072 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1--base.tfm +2022/10/18 | 5480 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1.tfm +2022/10/18 | 1536 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1--base.tfm +2022/10/18 | 16536 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1--base.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1--base.tfm +2022/10/18 | 1488 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1.tfm +2022/10/18 | 1024 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ot1.tfm +2022/10/18 | 1476 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1--base.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1--base.tfm +2022/10/18 | 10472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1.tfm +2022/10/18 | 1020 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1--base.tfm +2022/10/18 | 5428 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1.tfm +2022/10/18 | 1472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1--base.tfm +2022/10/18 | 16472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1.tfm +2022/10/18 | 1244 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1--base.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1.tfm +2022/10/18 | 1708 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1--base.tfm +2022/10/18 | 1712 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1.tfm +2022/10/18 | 1212 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ot1.tfm +2022/10/18 | 1708 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1--base.tfm +2022/10/18 | 1716 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1.tfm +2022/10/18 | 1676 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1--base.tfm +2022/10/18 | 10668 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1.tfm +2022/10/18 | 1168 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1--base.tfm +2022/10/18 | 5576 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1.tfm +2022/10/18 | 1664 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1--base.tfm +2022/10/18 | 16660 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1--base.tfm +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1.tfm +2022/10/18 | 1108 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ot1.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1--base.tfm +2022/10/18 | 10588 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1--base.tfm +2022/10/18 | 5512 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1.tfm +2022/10/18 | 1588 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1--base.tfm +2022/10/18 | 16584 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1--base.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1.tfm +2022/10/18 | 1732 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1--base.tfm +2022/10/18 | 1736 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1.tfm +2022/10/18 | 1224 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ot1.tfm +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1--base.tfm +2022/10/18 | 1732 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1.tfm +2022/10/18 | 1704 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1--base.tfm +2022/10/18 | 10696 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1.tfm +2022/10/18 | 1188 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1--base.tfm +2022/10/18 | 5596 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1--base.tfm +2022/10/18 | 16684 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1--base.tfm +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1--base.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1.tfm +2022/10/18 | 1112 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ot1.tfm +2022/10/18 | 1612 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1--base.tfm +2022/10/18 | 1620 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1--base.tfm +2022/10/18 | 10596 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1.tfm +2022/10/18 | 1108 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1--base.tfm +2022/10/18 | 5516 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1--base.tfm +2022/10/18 | 16604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1--base.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1--base.tfm +2022/10/18 | 1628 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1.tfm +2022/10/18 | 1144 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ot1.tfm +2022/10/18 | 1616 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1--base.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1--base.tfm +2022/10/18 | 10592 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1.tfm +2022/10/18 | 1112 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1--base.tfm +2022/10/18 | 5520 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1.tfm +2022/10/18 | 1584 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1--base.tfm +2022/10/18 | 16584 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1--base.tfm +2022/10/18 | 1288 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1--base.tfm +2022/10/18 | 1528 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1.tfm +2022/10/18 | 1072 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ot1.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1--base.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1--base.tfm +2022/10/18 | 10516 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1.tfm +2022/10/18 | 1068 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1--base.tfm +2022/10/18 | 5476 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1.tfm +2022/10/18 | 1512 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1--base.tfm +2022/10/18 | 16512 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1.tfm +2022/10/18 | 1252 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1--base.tfm +2022/10/18 | 1276 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1.tfm +2022/10/18 | 49061 | fonts/cooperhewitt/type1/CpHwt-BoldItalic.pfb +2022/10/18 | 46394 | fonts/cooperhewitt/type1/CpHwt-Bold.pfb +2022/10/18 | 48713 | fonts/cooperhewitt/type1/CpHwt-BookItalic.pfb +2022/10/18 | 45623 | fonts/cooperhewitt/type1/CpHwt-Book.pfb +2022/10/18 | 48265 | fonts/cooperhewitt/type1/CpHwt-HeavyItalic.pfb +2022/10/18 | 45193 | fonts/cooperhewitt/type1/CpHwt-Heavy.pfb +2022/10/18 | 48220 | fonts/cooperhewitt/type1/CpHwt-LightItalic.pfb +2022/10/18 | 45768 | fonts/cooperhewitt/type1/CpHwt-Light.pfb +2022/10/18 | 48592 | fonts/cooperhewitt/type1/CpHwt-MediumItalic.pfb +2022/10/18 | 45804 | fonts/cooperhewitt/type1/CpHwt-Medium.pfb +2022/10/18 | 48911 | fonts/cooperhewitt/type1/CpHwt-SemiboldItalic.pfb +2022/10/18 | 47003 | fonts/cooperhewitt/type1/CpHwt-Semibold.pfb +2022/10/18 | 47393 | fonts/cooperhewitt/type1/CpHwt-ThinItalic.pfb +2022/10/18 | 45547 | fonts/cooperhewitt/type1/CpHwt-Thin.pfb +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ly1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ts1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Bold-sup-ly1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Bold-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-t1.vf +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ts1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ly1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ts1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Book-sup-ly1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Book-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-t1.vf +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ts1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-t1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ly1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ts1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Heavy-sup-ly1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Heavy-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-t1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ts1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-t1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ly1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ts1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Light-sup-ly1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Light-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-t1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ts1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-t1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ly1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ot1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ts1.vf +2022/10/18 | 1648 | fonts/cooperhewitt/vf/CpHwt-Medium-sup-ly1.vf +2022/10/18 | 1692 | fonts/cooperhewitt/vf/CpHwt-Medium-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-t1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ts1.vf +2022/10/18 | 1656 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-ly1.vf +2022/10/18 | 1700 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-t1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ly1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ot1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-t1.vf +2022/10/18 | 500 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ts1.vf +2022/10/18 | 1648 | fonts/cooperhewitt/vf/CpHwt-Semibold-sup-ly1.vf +2022/10/18 | 1692 | fonts/cooperhewitt/vf/CpHwt-Semibold-sup-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ly1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-t1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ts1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-ly1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ly1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ot1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-t1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ts1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Thin-sup-ly1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Thin-sup-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ly1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ot1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-t1.vf +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ts1.vf +2022/10/18 | 1743963 | fonts/cooperhewitt.zip 2019/12/11 | 153427 | fonts/cormorantgaramond/doc/cormorantgaramond.pdf 2019/12/11 | 1000 | fonts/cormorantgaramond/doc/cormorantgaramond.tex 2022/09/15 | 4413 | fonts/cormorantgaramond/doc/OFL.txt @@ -189200,6 +189515,7 @@ 2019/06/24 | 1223758 | install/fonts/comfortaa.tds.zip 2020/04/26 | 1498480 | install/fonts/comicneue.tds.zip 2013/12/19 | 329529 | install/fonts/comicsans.tds.zip +2022/10/18 | 1771321 | install/fonts/cooperhewitt.tds.zip 2022/09/16 | 9133494 | install/fonts/cormorantgaramond.tds.zip 2022/09/30 | 5269694 | install/fonts/crimsonpro.tds.zip 2022/09/30 | 1688859 | install/fonts/crimson.tds.zip @@ -189507,7 +189823,6 @@ 2009/04/05 | 198256 | install/macros/latex/contrib/IEEEconf.tds.zip 2018/04/16 | 41342 | install/macros/latex/contrib/ifmtarg.tds.zip 2011/06/27 | 237481 | install/macros/latex/contrib/ifnextok.tds.zip -2016/04/23 | 140462 | install/macros/latex/contrib/ifoddpage.tds.zip 2017/10/13 | 159470 | install/macros/latex/contrib/ifplatform.tds.zip 2016/10/15 | 542116 | install/macros/latex/contrib/imakeidx.tds.zip 2019/03/04 | 176811 | install/macros/latex/contrib/impnattypo.tds.zip @@ -189554,7 +189869,7 @@ 2022/08/04 | 7385937 | install/macros/latex/contrib/media9.tds.zip 2022/07/29 | 3655356 | install/macros/latex/contrib/memoir.tds.zip 2020/08/06 | 24409080 | install/macros/latex/contrib/mercatormap.tds.zip -2021/10/15 | 722347 | install/macros/latex/contrib/mfirstuc.tds.zip +2022/10/18 | 815562 | install/macros/latex/contrib/mfirstuc.tds.zip 2022/06/23 | 3038638 | install/macros/latex/contrib/microtype.tds.zip 2016/07/03 | 499067 | install/macros/latex/contrib/milog.tds.zip 2013/06/21 | 285067 | install/macros/latex/contrib/minibox.tds.zip @@ -214227,13 +214542,13 @@ 2012/03/22 | 988 | macros/latex/contrib/docmute/docmute.sty 2012/03/22 | 350 | macros/latex/contrib/docmute/README 2012/03/22 | 150730 | macros/latex/contrib/docmute.zip -2022/10/17 | 74 | macros/latex/contrib/docshots/DEPENDS.txt -2022/10/17 | 16888 | macros/latex/contrib/docshots/docshots.dtx -2022/10/17 | 2634 | macros/latex/contrib/docshots/docshots.ins -2022/10/17 | 334497 | macros/latex/contrib/docshots/docshots.pdf -2022/10/17 | 1083 | macros/latex/contrib/docshots/LICENSE.txt -2022/10/17 | 1298 | macros/latex/contrib/docshots/README.md -2022/10/17 | 335351 | macros/latex/contrib/docshots.zip +2022/10/18 | 99 | macros/latex/contrib/docshots/DEPENDS.txt +2022/10/18 | 18575 | macros/latex/contrib/docshots/docshots.dtx +2022/10/18 | 2634 | macros/latex/contrib/docshots/docshots.ins +2022/10/18 | 336674 | macros/latex/contrib/docshots/docshots.pdf +2022/10/18 | 1083 | macros/latex/contrib/docshots/LICENSE.txt +2022/10/18 | 1298 | macros/latex/contrib/docshots/README.md +2022/10/18 | 337775 | macros/latex/contrib/docshots.zip 2014/06/27 | 39453 | macros/latex/contrib/doctools/doctools.dtx 2014/06/27 | 1134 | macros/latex/contrib/doctools/doctools.ins 2014/06/27 | 605871 | macros/latex/contrib/doctools/doctools.pdf @@ -219999,11 +220314,12 @@ 2011/06/27 | 16686 | macros/latex/contrib/ifnextok/testIfNT.pdf 2011/06/26 | 16686 | macros/latex/contrib/ifnextok/testINT.pdf 2011/06/27 | 250047 | macros/latex/contrib/ifnextok.zip -2016/04/23 | 10806 | macros/latex/contrib/ifoddpage/ifoddpage.dtx -2016/04/23 | 172 | macros/latex/contrib/ifoddpage/ifoddpage.ins -2016/04/23 | 133988 | macros/latex/contrib/ifoddpage/ifoddpage.pdf -2016/04/23 | 1023 | macros/latex/contrib/ifoddpage/README -2016/04/23 | 137868 | macros/latex/contrib/ifoddpage.zip +2022/10/18 | 58 | macros/latex/contrib/ifoddpage/DEPENDS.txt +2022/10/18 | 12550 | macros/latex/contrib/ifoddpage/ifoddpage.dtx +2022/10/18 | 172 | macros/latex/contrib/ifoddpage/ifoddpage.ins +2022/10/18 | 144874 | macros/latex/contrib/ifoddpage/ifoddpage.pdf +2022/10/18 | 1098 | macros/latex/contrib/ifoddpage/README.txt +2022/10/18 | 148155 | macros/latex/contrib/ifoddpage.zip 2017/10/13 | 14345 | macros/latex/contrib/ifplatform/ifplatform.dtx 2017/10/13 | 1693 | macros/latex/contrib/ifplatform/ifplatform.ins 2017/10/13 | 151398 | macros/latex/contrib/ifplatform/ifplatform.pdf @@ -223266,17 +223582,16 @@ 1996/09/01 | 91 | macros/latex/contrib/mff/test.bat 1996/09/01 | 287 | macros/latex/contrib/mff/test.tex 2007/07/21 | 231956 | macros/latex/contrib/mff.zip -2021/10/15 | 2101 | macros/latex/contrib/mfirstuc/CHANGES -2021/10/15 | 266637 | macros/latex/contrib/mfirstuc/mfirstuc-code.pdf -2021/10/15 | 39846 | macros/latex/contrib/mfirstuc/mfirstuc.dtx -2021/10/15 | 1267 | macros/latex/contrib/mfirstuc/mfirstuc.ins -2021/10/15 | 80414 | macros/latex/contrib/mfirstuc/mfirstuc-manual.html -2021/10/15 | 301928 | macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf -2021/10/15 | 27833 | macros/latex/contrib/mfirstuc/mfirstuc-manual.tex -2021/10/15 | 1321 | macros/latex/contrib/mfirstuc/README -2021/10/15 | 121084 | macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf -2021/10/15 | 7811 | macros/latex/contrib/mfirstuc/sample-mfirstuc.tex -2021/10/15 | 714224 | macros/latex/contrib/mfirstuc.zip +2022/10/18 | 3826 | macros/latex/contrib/mfirstuc/CHANGES +2022/10/18 | 352549 | macros/latex/contrib/mfirstuc/mfirstuc-code.pdf +2022/10/18 | 63972 | macros/latex/contrib/mfirstuc/mfirstuc.dtx +2022/10/18 | 1432 | macros/latex/contrib/mfirstuc/mfirstuc.ins +2022/10/18 | 225676 | macros/latex/contrib/mfirstuc/mfirstuc-manual.html +2022/10/18 | 294879 | macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf +2022/10/18 | 62430 | macros/latex/contrib/mfirstuc/mfirstuc-manual.tex +2022/10/18 | 1452 | macros/latex/contrib/mfirstuc/README +2022/10/18 | 122108 | macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf +2022/10/18 | 800756 | macros/latex/contrib/mfirstuc.zip 1999/03/18 | 883 | macros/latex/contrib/mflogo/CATALOGUE 1999/03/18 | 2432 | macros/latex/contrib/mflogo/Makefile 1999/03/18 | 15309 | macros/latex/contrib/mflogo/mflogo.dtx @@ -272354,47 +272669,59 @@ 2019/11/05 | 1424 | support/chklref/release.sh 2019/11/05 | 6 | support/chklref/VERSION 2019/11/05 | 310066 | support/chklref.zip -2016/09/10 | 752 | support/chktex/aclocal.m4 -2008/07/16 | 1126 | support/chktex/autogen.sh -2012/05/15 | 3154 | support/chktex/chktex.1 -2016/02/02 | 29165 | support/chktex/ChkTeX.c -2016/09/10 | 10823 | support/chktex/ChkTeX.h -2016/02/03 | 23700 | support/chktex/chktexrc -2016/02/03 | 73990 | support/chktex/ChkTeX.tex.in -2003/06/14 | 194 | support/chktex/ChkTeX.texrc -2012/06/10 | 1313 | support/chktex/chkweb -2006/11/01 | 2904 | support/chktex/chkweb.1 -2013/03/30 | 4350 | support/chktex/config.h.in -2016/09/10 | 175454 | support/chktex/configure -2016/09/10 | 5556 | support/chktex/configure.in -2008/09/04 | 18883 | support/chktex/COPYING -2008/09/04 | 3013 | support/chktex/deweb.1 -2015/09/24 | 2876 | support/chktex/deweb.in -2016/09/10 | 60597 | support/chktex/FindErrs.c -2016/02/02 | 6368 | support/chktex/FindErrs.h -2003/05/03 | 60 | support/chktex/input.tex -2016/09/10 | 14675 | support/chktex/install-sh -2008/09/04 | 975 | support/chktex/lacheck -2008/07/16 | 6881 | support/chktex/m4/ax_cflags_strict_prototypes.m4 -2003/05/03 | 3908 | support/chktex/m4/vl_prog_cc_warnings.m4 -2016/09/10 | 8867 | support/chktex/Makefile.in -2008/09/04 | 254 | support/chktex/MakeHTML.pl -2016/09/10 | 8102 | support/chktex/NEWS -2012/10/27 | 11670 | support/chktex/OpSys.c -2010/12/18 | 6178 | support/chktex/OpSys.h -2012/05/29 | 1021 | support/chktex/README -2012/10/27 | 14679 | support/chktex/Resource.c -2014/05/10 | 2509 | support/chktex/Resource.h -2008/08/14 | 815 | support/chktex/rmeheader.in -2016/09/10 | 10 | support/chktex/stamp-h.in -2016/02/02 | 25754 | support/chktex/Test.nore.out -2016/02/02 | 26223 | support/chktex/Test.pcre.out -2016/02/02 | 26222 | support/chktex/Test.posix-ere.out -2015/12/08 | 5421 | support/chktex/Test.tex -2004/04/03 | 249 | support/chktex/types.h -2016/09/10 | 20168 | support/chktex/Utility.c -2012/10/27 | 5042 | support/chktex/Utility.h -2016/09/10 | 177347 | support/chktex.zip +2022/10/18 | 828 | support/chktex/aclocal.m4 +2022/10/18 | 1126 | support/chktex/autogen.sh +2022/10/18 | 3154 | support/chktex/chktex.1 +2022/10/18 | 31008 | support/chktex/ChkTeX.c +2022/10/18 | 10953 | support/chktex/ChkTeX.h +2022/10/18 | 409006 | support/chktex/ChkTeX.pdf +2022/10/18 | 31376 | support/chktex/chktexrc.in +2022/10/18 | 76529 | support/chktex/ChkTeX.tex.in +2022/10/18 | 194 | support/chktex/ChkTeX.texrc +2022/10/18 | 1313 | support/chktex/chkweb +2022/10/18 | 2904 | support/chktex/chkweb.1 +2022/10/18 | 4495 | support/chktex/config.h.in +2022/10/18 | 193216 | support/chktex/configure +2022/10/18 | 5573 | support/chktex/configure.ac +2022/10/18 | 18883 | support/chktex/COPYING +2022/10/18 | 3013 | support/chktex/deweb.1 +2022/10/18 | 2876 | support/chktex/deweb.in +2022/10/18 | 66845 | support/chktex/FindErrs.c +2022/10/18 | 6643 | support/chktex/FindErrs.h +2022/10/18 | 307 | support/chktex/input/file +2022/10/18 | 60 | support/chktex/input.tex +2022/10/18 | 15358 | support/chktex/install-sh +2022/10/18 | 975 | support/chktex/lacheck +2022/10/18 | 1552 | support/chktex/m4/ax_append_flag.m4 +2022/10/18 | 3566 | support/chktex/m4/ax_cflags_strict_prototypes.m4 +2022/10/18 | 1218 | support/chktex/m4/ax_require_defined.m4 +2022/10/18 | 3908 | support/chktex/m4/vl_prog_cc_warnings.m4 +2022/10/18 | 1506 | support/chktex/MakeChkTeXRC.pl +2022/10/18 | 9370 | support/chktex/Makefile.in +2022/10/18 | 254 | support/chktex/MakeHTML.pl +2022/10/18 | 10683 | support/chktex/NEWS +2022/10/18 | 13898 | support/chktex/OpSys.c +2022/10/18 | 7033 | support/chktex/OpSys.h +2022/10/18 | 1021 | support/chktex/README +2022/10/18 | 15347 | support/chktex/Resource.c +2022/10/18 | 2604 | support/chktex/Resource.h +2022/10/18 | 815 | support/chktex/rmeheader.in +2022/10/18 | 10 | support/chktex/stamp-h.in +2022/10/18 | 28879 | support/chktex/Test.nore.out +2022/10/18 | 30180 | support/chktex/Test.pcre.out +2022/10/18 | 29116 | support/chktex/Test.posix-ere.out +2022/10/18 | 629 | support/chktex/tests/main.expected +2022/10/18 | 177 | support/chktex/tests/main.tex +2022/10/18 | 3478 | support/chktex/tests/run-tests.sh +2022/10/18 | 75 | support/chktex/tests/sub1/file.tex +2022/10/18 | 28 | support/chktex/tests/sub1/subsub/subsubfile.tex +2022/10/18 | 90 | support/chktex/tests/sub2/file1.tex +2022/10/18 | 27 | support/chktex/tests/sub2/file2.tex +2022/10/18 | 7066 | support/chktex/Test.tex +2022/10/18 | 249 | support/chktex/types.h +2022/10/18 | 21274 | support/chktex/Utility.c +2022/10/18 | 4879 | support/chktex/Utility.h +2022/10/18 | 594607 | support/chktex.zip 2020/05/20 | 69146 | support/classpack/classpack.dtx 2020/05/20 | 2206 | support/classpack/classpack.ins 2020/05/20 | 148774 | support/classpack/classpack.pdf @@ -276866,11 +277193,11 @@ 2015/10/25 | 4167 | support/srcredact/twain2-uppercase.tex 2015/05/28 | 4060 | support/srcredact/twain-edited.tex 2015/10/25 | 729747 | support/srcredact.zip -2012/11/07 | 5256 | support/sty2dtx/README -2012/11/07 | 11190 | support/sty2dtx/sty2dtx.1 -2012/11/07 | 140340 | support/sty2dtx/sty2dtx.pdf -2012/11/07 | 30595 | support/sty2dtx/sty2dtx.pl -2012/11/07 | 154381 | support/sty2dtx.zip +2022/10/18 | 5431 | support/sty2dtx/README.txt +2022/10/18 | 11531 | support/sty2dtx/sty2dtx.1 +2022/10/18 | 156538 | support/sty2dtx/sty2dtx.pdf +2022/10/18 | 30802 | support/sty2dtx/sty2dtx.pl +2022/10/18 | 168168 | support/sty2dtx.zip 2010/02/16 | 722 | support/style_showcase/build_web_page.sh 2010/02/14 | 3266 | support/style_showcase/math.text 2010/02/14 | 316 | support/style_showcase/plain.text @@ -277603,7 +277930,7 @@ 2021/05/03 | 629 | support/TeX4ht/doc/README 2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex 2021/05/11 | 262 | support/TeX4ht/README -2022/10/11 | 203664 | support/TeX4ht/source/ChangeLog +2022/10/17 | 204029 | support/TeX4ht/source/ChangeLog 2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua 2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex 2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex @@ -277615,7 +277942,7 @@ 2021/05/03 | 1121 | support/TeX4ht/source/README 2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua 2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex -2022/10/04 | 1133410 | support/TeX4ht/source/tex4ht-4ht.tex +2022/10/17 | 1133473 | support/TeX4ht/source/tex4ht-4ht.tex 2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex 2021/05/16 | 1539 | support/TeX4ht/source/tex4ht-bibtex2.tex 2022/06/05 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex @@ -277657,7 +277984,7 @@ 2021/05/03 | 22748 | support/TeX4ht/source/tex4ht-jsmath.tex 2021/05/03 | 104631 | support/TeX4ht/source/tex4ht-jsml.tex 2021/05/03 | 90707 | support/TeX4ht/source/tex4ht-jsml-xtpipes.tex -2022/10/07 | 6126 | support/TeX4ht/source/tex4ht-mathjax.tex +2022/10/17 | 6171 | support/TeX4ht/source/tex4ht-mathjax.tex 2021/05/03 | 102444 | support/TeX4ht/source/tex4ht-mathltx.tex 2022/10/05 | 145166 | support/TeX4ht/source/tex4ht-mathml.tex 2021/05/03 | 8860 | support/TeX4ht/source/tex4ht-mathplayer.tex @@ -279435,7 +279762,6 @@ 2015/04/26 | 2061 | systems/doc/aleph/News 2006/01/09 | 197 | systems/doc/aleph/readme.txt 2019/06/21 | 1297 | systems/doc/aleph.zip -2019/01/04 | 355998 | systems/doc/chktex/ChkTeX.pdf 2020/06/21 | 267377 | systems/doc/dvipdfmx/dvipdfmx.pdf 2015/03/30 | 179950 | systems/doc/dvipdfmx/dvipdfmx-special.pdf 2015/03/30 | 28136 | systems/doc/dvipdfmx/dvipdfmx-special.tex @@ -281603,9 +281929,9 @@ 2022/05/18 | 312532 | systems/texlive/tlnet/archive/adjmulticol.doc.r63320.tar.xz 2022/05/18 | 3080 | systems/texlive/tlnet/archive/adjmulticol.r63320.tar.xz 2022/05/18 | 7400 | systems/texlive/tlnet/archive/adjmulticol.source.r63320.tar.xz -2020/09/08 | 719424 | systems/texlive/tlnet/archive/adjustbox.doc.r56291.tar.xz -2020/09/08 | 13596 | systems/texlive/tlnet/archive/adjustbox.r56291.tar.xz -2020/09/08 | 49556 | systems/texlive/tlnet/archive/adjustbox.source.r56291.tar.xz +2022/10/18 | 739224 | systems/texlive/tlnet/archive/adjustbox.doc.r64731.tar.xz +2022/10/18 | 13600 | systems/texlive/tlnet/archive/adjustbox.r64731.tar.xz +2022/10/18 | 49568 | systems/texlive/tlnet/archive/adjustbox.source.r64731.tar.xz 2019/08/01 | 2169892 | systems/texlive/tlnet/archive/adobemapping.r51787.tar.xz 2019/02/28 | 690600 | systems/texlive/tlnet/archive/adrconv.doc.r46817.tar.xz 2019/02/28 | 2812 | systems/texlive/tlnet/archive/adrconv.r46817.tar.xz @@ -282880,9 +283206,9 @@ 2019/02/28 | 362388 | systems/texlive/tlnet/archive/bitelist.doc.r25779.tar.xz 2019/02/28 | 5352 | systems/texlive/tlnet/archive/bitelist.r25779.tar.xz 2019/02/28 | 6228 | systems/texlive/tlnet/archive/bitelist.source.r25779.tar.xz -2022/10/05 | 953148 | systems/texlive/tlnet/archive/bithesis.doc.r64619.tar.xz -2022/10/05 | 20580 | systems/texlive/tlnet/archive/bithesis.r64619.tar.xz -2022/10/05 | 37960 | systems/texlive/tlnet/archive/bithesis.source.r64619.tar.xz +2022/10/18 | 959396 | systems/texlive/tlnet/archive/bithesis.doc.r64727.tar.xz +2022/10/18 | 21036 | systems/texlive/tlnet/archive/bithesis.r64727.tar.xz +2022/10/18 | 38396 | systems/texlive/tlnet/archive/bithesis.source.r64727.tar.xz 2019/02/28 | 175700 | systems/texlive/tlnet/archive/bitpattern.doc.r39073.tar.xz 2019/02/28 | 2156 | systems/texlive/tlnet/archive/bitpattern.r39073.tar.xz 2019/02/28 | 6764 | systems/texlive/tlnet/archive/bitpattern.source.r39073.tar.xz @@ -283732,14 +284058,14 @@ 2020/09/08 | 221632 | systems/texlive/tlnet/archive/collcell.doc.r56291.tar.xz 2020/09/08 | 2252 | systems/texlive/tlnet/archive/collcell.r56291.tar.xz 2020/09/08 | 7536 | systems/texlive/tlnet/archive/collcell.source.r56291.tar.xz -2020/09/08 | 270912 | systems/texlive/tlnet/archive/collectbox.doc.r56291.tar.xz -2020/09/08 | 2876 | systems/texlive/tlnet/archive/collectbox.r56291.tar.xz -2020/09/08 | 8064 | systems/texlive/tlnet/archive/collectbox.source.r56291.tar.xz +2022/10/18 | 165956 | systems/texlive/tlnet/archive/collectbox.doc.r64730.tar.xz +2022/10/18 | 2864 | systems/texlive/tlnet/archive/collectbox.r64730.tar.xz +2022/10/18 | 8096 | systems/texlive/tlnet/archive/collectbox.source.r64730.tar.xz 2021/05/11 | 624 | systems/texlive/tlnet/archive/collection-basic.r59159.tar.xz 2022/08/24 | 1276 | systems/texlive/tlnet/archive/collection-bibtexextra.r64180.tar.xz 2022/09/20 | 964 | systems/texlive/tlnet/archive/collection-binextra.r64447.tar.xz 2020/03/04 | 596 | systems/texlive/tlnet/archive/collection-context.r54074.tar.xz -2022/10/16 | 1984 | systems/texlive/tlnet/archive/collection-fontsextra.r64712.tar.xz +2022/10/18 | 1988 | systems/texlive/tlnet/archive/collection-fontsextra.r64734.tar.xz 2020/03/04 | 560 | systems/texlive/tlnet/archive/collection-fontsrecommended.r54074.tar.xz 2021/12/03 | 536 | systems/texlive/tlnet/archive/collection-fontutils.r61207.tar.xz 2022/02/27 | 584 | systems/texlive/tlnet/archive/collection-formatsextra.r62226.tar.xz @@ -284722,9 +285048,9 @@ 2019/02/28 | 3156 | systems/texlive/tlnet/archive/docmute.source.r25741.tar.xz 2019/02/28 | 1508 | systems/texlive/tlnet/archive/doc-pictex.doc.r24927.tar.xz 2019/02/28 | 468 | systems/texlive/tlnet/archive/doc-pictex.r24927.tar.xz -2022/10/17 | 289040 | systems/texlive/tlnet/archive/docshots.doc.r64722.tar.xz -2022/10/17 | 2236 | systems/texlive/tlnet/archive/docshots.r64722.tar.xz -2022/10/17 | 4376 | systems/texlive/tlnet/archive/docshots.source.r64722.tar.xz +2022/10/18 | 328996 | systems/texlive/tlnet/archive/docshots.doc.r64729.tar.xz +2022/10/18 | 2420 | systems/texlive/tlnet/archive/docshots.r64729.tar.xz +2022/10/18 | 6004 | systems/texlive/tlnet/archive/docshots.source.r64729.tar.xz 2021/12/31 | 260928 | systems/texlive/tlnet/archive/docsurvey.doc.r61447.tar.xz 2021/12/31 | 548 | systems/texlive/tlnet/archive/docsurvey.r61447.tar.xz 2019/02/28 | 603152 | systems/texlive/tlnet/archive/doctools.doc.r34474.tar.xz @@ -286241,9 +286567,9 @@ 2019/02/28 | 41296 | systems/texlive/tlnet/archive/frederika2016.r42157.tar.xz 2019/02/28 | 142332 | systems/texlive/tlnet/archive/frege.doc.r27417.tar.xz 2019/02/28 | 4528 | systems/texlive/tlnet/archive/frege.r27417.tar.xz -2020/11/04 | 478856 | systems/texlive/tlnet/archive/frenchmath.doc.r56847.tar.xz -2020/11/04 | 1872 | systems/texlive/tlnet/archive/frenchmath.r56847.tar.xz -2020/11/04 | 8276 | systems/texlive/tlnet/archive/frenchmath.source.r56847.tar.xz +2022/10/18 | 480560 | systems/texlive/tlnet/archive/frenchmath.doc.r64728.tar.xz +2022/10/18 | 1972 | systems/texlive/tlnet/archive/frenchmath.r64728.tar.xz +2022/10/18 | 8412 | systems/texlive/tlnet/archive/frenchmath.source.r64728.tar.xz 2020/10/20 | 191432 | systems/texlive/tlnet/archive/frimurer.doc.r56704.tar.xz 2020/10/20 | 15456 | systems/texlive/tlnet/archive/frimurer.r56704.tar.xz 2020/10/20 | 4184 | systems/texlive/tlnet/archive/frimurer.source.r56704.tar.xz @@ -291282,8 +291608,8 @@ 2022/07/07 | 5492 | systems/texlive/tlnet/archive/pst-magneticfield.r63821.tar.xz 2019/05/03 | 20207432 | systems/texlive/tlnet/archive/pst-marble.doc.r50925.tar.xz 2019/05/03 | 8560 | systems/texlive/tlnet/archive/pst-marble.r50925.tar.xz -2019/02/28 | 176140 | systems/texlive/tlnet/archive/pst-math.doc.r49425.tar.xz -2019/02/28 | 5172 | systems/texlive/tlnet/archive/pst-math.r49425.tar.xz +2022/10/18 | 172288 | systems/texlive/tlnet/archive/pst-math.doc.r64732.tar.xz +2022/10/18 | 5196 | systems/texlive/tlnet/archive/pst-math.r64732.tar.xz 2021/09/15 | 6784012 | systems/texlive/tlnet/archive/pst-mirror.doc.r60506.tar.xz 2021/09/15 | 12192 | systems/texlive/tlnet/archive/pst-mirror.r60506.tar.xz 2021/09/04 | 8296868 | systems/texlive/tlnet/archive/pst-moire.doc.r60411.tar.xz @@ -291982,6 +292308,8 @@ 2020/03/09 | 424 | systems/texlive/tlnet/archive/scheme-minimal.r54191.tar.xz 2020/03/09 | 636 | systems/texlive/tlnet/archive/scheme-small.r54191.tar.xz 2021/06/27 | 732 | systems/texlive/tlnet/archive/scheme-tetex.r59715.tar.xz +2022/10/18 | 485732 | systems/texlive/tlnet/archive/schola-otf.doc.r64734.tar.xz +2022/10/18 | 2340 | systems/texlive/tlnet/archive/schola-otf.r64734.tar.xz 2022/02/02 | 341700 | systems/texlive/tlnet/archive/scholax.doc.r61836.tar.xz 2022/02/02 | 1884328 | systems/texlive/tlnet/archive/scholax.r61836.tar.xz 2022/01/24 | 905936 | systems/texlive/tlnet/archive/schooldocs.doc.r61719.tar.xz @@ -292875,8 +293203,8 @@ 2019/02/28 | 75500 | systems/texlive/tlnet/archive/termcal.doc.r22514.tar.xz 2019/02/28 | 2616 | systems/texlive/tlnet/archive/termcal.r22514.tar.xz 2019/02/28 | 7624 | systems/texlive/tlnet/archive/termcal.source.r22514.tar.xz -2022/10/16 | 246408 | systems/texlive/tlnet/archive/termes-otf.doc.r64712.tar.xz -2022/10/16 | 2260 | systems/texlive/tlnet/archive/termes-otf.r64712.tar.xz +2022/10/18 | 464160 | systems/texlive/tlnet/archive/termes-otf.doc.r64733.tar.xz +2022/10/18 | 2320 | systems/texlive/tlnet/archive/termes-otf.r64733.tar.xz 2019/02/28 | 160640 | systems/texlive/tlnet/archive/termlist.doc.r18923.tar.xz 2019/02/28 | 1232 | systems/texlive/tlnet/archive/termlist.r18923.tar.xz 2019/02/28 | 4356 | systems/texlive/tlnet/archive/termlist.source.r18923.tar.xz @@ -292919,14 +293247,14 @@ 2022/02/27 | 108804 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r62206.tar.xz 2022/02/27 | 87364 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r62220.tar.xz 2022/04/21 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r63092.tar.xz -2022/10/12 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64682.tar.xz +2022/10/18 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64735.tar.xz 2022/03/01 | 58328 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r62282.tar.xz 2022/02/27 | 93760 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r62206.tar.xz 2022/02/27 | 91280 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r62210.tar.xz 2022/02/27 | 76200 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r62220.tar.xz 2022/02/27 | 83964 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r62206.tar.xz -2022/10/12 | 944748 | systems/texlive/tlnet/archive/tex4ht.r64682.tar.xz -2022/10/12 | 1269348 | systems/texlive/tlnet/archive/tex4ht.source.r64682.tar.xz +2022/10/18 | 944756 | systems/texlive/tlnet/archive/tex4ht.r64735.tar.xz +2022/10/18 | 1273956 | systems/texlive/tlnet/archive/tex4ht.source.r64735.tar.xz 2022/02/28 | 184748 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r62258.tar.xz 2022/02/27 | 57768 | systems/texlive/tlnet/archive/tex4ht.win32.r62199.tar.xz 2022/03/01 | 58016 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r62279.tar.xz @@ -293180,7 +293508,7 @@ 2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz -2022/10/17 | 422176 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64720.tar.xz +2022/10/18 | 422228 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64726.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz 2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz 2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz @@ -293204,7 +293532,7 @@ 2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz -2022/10/17 | 113664 | systems/texlive/tlnet/archive/texlive-scripts.r64720.tar.xz +2022/10/18 | 113688 | systems/texlive/tlnet/archive/texlive-scripts.r64726.tar.xz 2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz 2022/04/19 | 36296 | systems/texlive/tlnet/archive/texlive-scripts.win32.r63068.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz @@ -295051,16 +295379,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2022/07/17 | 124404 | systems/texlive/tlnet/install-tl -2022/10/17 | 5834586 | systems/texlive/tlnet/install-tl-unx.tar.gz -2022/10/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2022/10/17 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/10/18 | 5834383 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/10/18 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/10/18 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2022/10/17 | 20436274 | systems/texlive/tlnet/install-tl-windows.exe -2022/10/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/10/17 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/10/17 | 25518508 | systems/texlive/tlnet/install-tl.zip -2022/10/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2022/10/17 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/10/18 | 20435689 | systems/texlive/tlnet/install-tl-windows.exe +2022/10/18 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/10/18 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/10/18 | 25518522 | systems/texlive/tlnet/install-tl.zip +2022/10/18 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/10/18 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2022/04/03 | 1229 | systems/texlive/tlnet/README.md 2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022 2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -295070,7 +295398,7 @@ 2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2022/10/09 | 49938 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2022/10/16 | 7119 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2022/10/17 | 7174 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/10/13 | 225403 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -295113,12 +295441,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2022/10/17 | 17700266 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2022/10/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/10/18 | 17701296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/10/18 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2022/10/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2022/10/17 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/10/17 | 2419960 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/10/18 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/10/18 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/10/18 | 2418984 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2022/10/04 | 42404 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -300518,7 +300846,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2022/10/17 | 668430 | systems/win32/miktex/tm/packages/files.csv.lzma +2022/10/18 | 668430 | systems/win32/miktex/tm/packages/files.csv.lzma 2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma 2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma 2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma @@ -302250,9 +302578,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2022/07/26 | 39695 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2022/10/15 | 43540 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2022/10/17 | 299852 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2022/10/17 | 1507755 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2022/10/17 | 1384985 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2022/10/18 | 299827 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2022/10/18 | 1507985 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2022/10/18 | 1386130 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2022/07/26 | 13519 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2022/10/15 | 14426 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma 2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma @@ -302501,102 +302829,102 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2022/10/17 | 668584 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2022/10/17 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2022/10/17 | 1161750 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2022/10/17 | 31587 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2022/10/17 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2022/10/17 | 65129 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2022/10/17 | 95467 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2022/10/17 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2022/10/17 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2022/10/17 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2022/10/17 | 37051 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2022/10/17 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2022/10/17 | 270467 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2022/10/17 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2022/10/17 | 103247 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2022/10/17 | 24212 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2022/10/17 | 481894 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2022/10/17 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2022/10/17 | 325979 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2022/10/17 | 45795 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2022/10/17 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2022/10/17 | 1458152 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2022/10/17 | 112979 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2022/10/17 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2022/10/17 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2022/10/17 | 63240 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2022/10/17 | 155432 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2022/10/17 | 79065 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2022/10/17 | 81449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2022/10/17 | 295945 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2022/10/17 | 25118 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2022/10/17 | 112878 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2022/10/17 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2022/10/17 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2022/10/17 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2022/10/17 | 565081 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2022/10/17 | 247206 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma -2022/10/17 | 169678 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2022/10/17 | 109651 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2022/10/17 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2022/10/17 | 30571 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2022/10/17 | 682216 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2022/10/17 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2022/10/17 | 527569 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2022/10/17 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2022/10/17 | 2023133 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2022/10/17 | 74100 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2022/10/17 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2022/10/17 | 8826 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2022/10/17 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2022/10/17 | 286685 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2022/10/17 | 104922 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2022/10/17 | 140012 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2022/10/17 | 325483 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2022/10/17 | 181725 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2022/10/17 | 55319 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2022/10/17 | 35231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2022/10/17 | 43617 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2022/10/17 | 48038 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2022/10/17 | 52370 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2022/10/17 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2022/10/17 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2022/10/17 | 824996 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2022/10/17 | 203421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2022/10/17 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2022/10/17 | 88483 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2022/10/17 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2022/10/17 | 23951 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2022/10/17 | 37508 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2022/10/17 | 72977 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2022/10/17 | 58634 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2022/10/17 | 769652 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma -2022/10/17 | 1503054 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2022/10/17 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2022/10/17 | 63802 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2022/10/17 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2022/10/17 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2022/10/17 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2022/10/17 | 173177 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2022/10/17 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2022/10/17 | 107437 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2022/10/17 | 2821670 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2022/10/17 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2022/10/17 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2022/10/17 | 33861 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2022/10/17 | 73686 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2022/10/17 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2022/10/17 | 57502 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2022/10/17 | 630433 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2022/10/17 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2022/10/17 | 299867 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2022/10/17 | 1508565 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2022/10/17 | 1386695 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2022/10/17 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2022/10/18 | 668584 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2022/10/18 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2022/10/18 | 1161750 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2022/10/18 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2022/10/18 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2022/10/18 | 65130 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2022/10/18 | 95469 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2022/10/18 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2022/10/18 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2022/10/18 | 394142 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2022/10/18 | 37050 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2022/10/18 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2022/10/18 | 270466 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2022/10/18 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2022/10/18 | 103246 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2022/10/18 | 24212 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2022/10/18 | 481895 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2022/10/18 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2022/10/18 | 325978 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2022/10/18 | 45795 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2022/10/18 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2022/10/18 | 1458153 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2022/10/18 | 112979 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2022/10/18 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2022/10/18 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2022/10/18 | 63240 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2022/10/18 | 155432 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2022/10/18 | 79063 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2022/10/18 | 81449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2022/10/18 | 295943 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2022/10/18 | 25118 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2022/10/18 | 112879 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2022/10/18 | 73261 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2022/10/18 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2022/10/18 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2022/10/18 | 565081 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2022/10/18 | 247205 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma +2022/10/18 | 169677 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2022/10/18 | 109651 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2022/10/18 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2022/10/18 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2022/10/18 | 682213 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2022/10/18 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2022/10/18 | 527569 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2022/10/18 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2022/10/18 | 2023132 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2022/10/18 | 74099 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2022/10/18 | 32073 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2022/10/18 | 8825 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2022/10/18 | 209138 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2022/10/18 | 286684 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2022/10/18 | 104920 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2022/10/18 | 140014 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2022/10/18 | 325483 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2022/10/18 | 181723 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2022/10/18 | 55318 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2022/10/18 | 35229 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2022/10/18 | 43617 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2022/10/18 | 48037 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2022/10/18 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2022/10/18 | 213846 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2022/10/18 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2022/10/18 | 824994 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2022/10/18 | 203420 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2022/10/18 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2022/10/18 | 88484 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2022/10/18 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2022/10/18 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2022/10/18 | 37507 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2022/10/18 | 72979 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2022/10/18 | 58633 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2022/10/18 | 769650 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma +2022/10/18 | 1503053 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2022/10/18 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2022/10/18 | 63801 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2022/10/18 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2022/10/18 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2022/10/18 | 70938 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2022/10/18 | 173176 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2022/10/18 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2022/10/18 | 107437 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2022/10/18 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2022/10/18 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2022/10/18 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2022/10/18 | 33863 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2022/10/18 | 73687 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2022/10/18 | 352463 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2022/10/18 | 57501 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2022/10/18 | 630431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2022/10/18 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2022/10/18 | 299911 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2022/10/18 | 1507793 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2022/10/18 | 1385746 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2022/10/18 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2022/10/17 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini +2022/10/18 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini 2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma 2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma 2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma @@ -303113,7 +303441,7 @@ 2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2022/10/17 | 959 | systems/win32/miktex/tm/packages/pr.ini +2022/10/18 | 959 | systems/win32/miktex/tm/packages/pr.ini 2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma 2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma 2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma @@ -305099,7 +305427,7 @@ 2014/07/05 | 611 | systems/win32/yandy/README 2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz 2014/07/05 | 1012416 | systems/win32/yandy.zip -2022/10/18 | 186 | timestamp +2022/10/19 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index ac092d2714..a1461d1ba2 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index 0d31f50cfc..8a72fb20a9 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,16 +1,555 @@ +2022/10/18 | 99 | macros/latex/contrib/docshots/DEPENDS.txt +2022/10/18 | 975 | support/chktex/lacheck +2022/10/18 | 959 | systems/win32/miktex/tm/packages/pr.ini +2022/10/18 | 959396 | systems/texlive/tlnet/archive/bithesis.doc.r64727.tar.xz +2022/10/18 | 95469 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2022/10/18 | 944756 | systems/texlive/tlnet/archive/tex4ht.r64735.tar.xz +2022/10/18 | 9370 | support/chktex/Makefile.in +2022/10/18 | 92384 | fonts/cooperhewitt/opentype/CooperHewitt-SemiboldItalic.otf +2022/10/18 | 92352 | fonts/cooperhewitt/opentype/CooperHewitt-BookItalic.otf +2022/10/18 | 92308 | fonts/cooperhewitt/opentype/CooperHewitt-LightItalic.otf +2022/10/18 | 92244 | fonts/cooperhewitt/opentype/CooperHewitt-MediumItalic.otf +2022/10/18 | 92092 | fonts/cooperhewitt/opentype/CooperHewitt-BoldItalic.otf +2022/10/18 | 92056 | fonts/cooperhewitt/opentype/CooperHewitt-HeavyItalic.otf +2022/10/18 | 90 | support/chktex/tests/sub2/file1.tex +2022/10/18 | 90296 | fonts/cooperhewitt/opentype/CooperHewitt-Semibold.otf +2022/10/18 | 89976 | fonts/cooperhewitt/opentype/CooperHewitt-Bold.otf +2022/10/18 | 89836 | fonts/cooperhewitt/opentype/CooperHewitt-Medium.otf +2022/10/18 | 89696 | fonts/cooperhewitt/opentype/CooperHewitt-Book.otf +2022/10/18 | 89652 | fonts/cooperhewitt/opentype/CooperHewitt-Heavy.otf +2022/10/18 | 89336 | fonts/cooperhewitt/opentype/CooperHewitt-Light.otf +2022/10/18 | 89256 | fonts/cooperhewitt/opentype/CooperHewitt-ThinItalic.otf +2022/10/18 | 88996 | fonts/cooperhewitt/opentype/CooperHewitt-Thin.otf +2022/10/18 | 88484 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2022/10/18 | 8825 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2022/10/18 | 8412 | systems/texlive/tlnet/archive/frenchmath.source.r64728.tar.xz +2022/10/18 | 828 | support/chktex/aclocal.m4 +2022/10/18 | 824994 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2022/10/18 | 815 | support/chktex/rmeheader.in +2022/10/18 | 815562 | install/macros/latex/contrib/mfirstuc.tds.zip +2022/10/18 | 81449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2022/10/18 | 8096 | systems/texlive/tlnet/archive/collectbox.source.r64730.tar.xz +2022/10/18 | 800756 | macros/latex/contrib/mfirstuc.zip +2022/10/18 | 79063 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2022/10/18 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2022/10/18 | 769650 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma +2022/10/18 | 76529 | support/chktex/ChkTeX.tex.in +2022/10/18 | 75 | support/chktex/tests/sub1/file.tex +2022/10/18 | 74099 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2022/10/18 | 739224 | systems/texlive/tlnet/archive/adjustbox.doc.r64731.tar.xz +2022/10/18 | 73687 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2022/10/18 | 73261 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2022/10/18 | 72979 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2022/10/18 | 70938 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2022/10/18 | 7066 | support/chktex/Test.tex +2022/10/18 | 7033 | support/chktex/OpSys.h +2022/10/18 | 682213 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2022/10/18 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2022/10/18 | 668584 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2022/10/18 | 66845 | support/chktex/FindErrs.c +2022/10/18 | 668430 | systems/win32/miktex/tm/packages/files.csv.lzma +2022/10/18 | 6643 | support/chktex/FindErrs.h +2022/10/18 | 65130 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2022/10/18 | 63972 | macros/latex/contrib/mfirstuc/mfirstuc.dtx +2022/10/18 | 63801 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2022/10/18 | 63240 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2022/10/18 | 630431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2022/10/18 | 629 | support/chktex/tests/main.expected +2022/10/18 | 62430 | macros/latex/contrib/mfirstuc/mfirstuc-manual.tex +2022/10/18 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2022/10/18 | 60 | support/chktex/input.tex +2022/10/18 | 6004 | systems/texlive/tlnet/archive/docshots.source.r64729.tar.xz +2022/10/18 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2022/10/18 | 594607 | support/chktex.zip +2022/10/18 | 58 | macros/latex/contrib/ifoddpage/DEPENDS.txt +2022/10/18 | 58633 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2022/10/18 | 5834383 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/10/18 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2022/10/18 | 57501 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2022/10/18 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2022/10/18 | 565081 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2022/10/18 | 5596 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1.tfm +2022/10/18 | 5592 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1.tfm +2022/10/18 | 5576 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1.tfm +2022/10/18 | 5573 | support/chktex/configure.ac +2022/10/18 | 5572 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1.tfm +2022/10/18 | 5532 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1.tfm +2022/10/18 | 55318 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2022/10/18 | 5520 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1.tfm +2022/10/18 | 5516 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1.tfm +2022/10/18 | 5512 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1.tfm +2022/10/18 | 5508 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1.tfm +2022/10/18 | 5508 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1.tfm +2022/10/18 | 5480 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1.tfm +2022/10/18 | 5476 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1.tfm +2022/10/18 | 5436 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1.tfm +2022/10/18 | 5431 | support/sty2dtx/README.txt +2022/10/18 | 5428 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1.tfm +2022/10/18 | 527569 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2022/10/18 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2022/10/18 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2022/10/18 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2022/10/18 | 5196 | systems/texlive/tlnet/archive/pst-math.r64732.tar.xz +2022/10/18 | 500 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ts1.vf +2022/10/18 | 496 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ts1.vf +2022/10/18 | 49568 | systems/texlive/tlnet/archive/adjustbox.source.r64731.tar.xz +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ts1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ts1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ts1.vf +2022/10/18 | 492 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ts1.vf +2022/10/18 | 49061 | fonts/cooperhewitt/type1/CpHwt-BoldItalic.pfb +2022/10/18 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/10/18 | 48911 | fonts/cooperhewitt/type1/CpHwt-SemiboldItalic.pfb +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ts1.vf +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ts1.vf +2022/10/18 | 488 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ts1.vf +2022/10/18 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2022/10/18 | 4879 | support/chktex/Utility.h +2022/10/18 | 48713 | fonts/cooperhewitt/type1/CpHwt-BookItalic.pfb +2022/10/18 | 48592 | fonts/cooperhewitt/type1/CpHwt-MediumItalic.pfb +2022/10/18 | 485732 | systems/texlive/tlnet/archive/schola-otf.doc.r64734.tar.xz +2022/10/18 | 48265 | fonts/cooperhewitt/type1/CpHwt-HeavyItalic.pfb +2022/10/18 | 48220 | fonts/cooperhewitt/type1/CpHwt-LightItalic.pfb +2022/10/18 | 481895 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2022/10/18 | 480560 | systems/texlive/tlnet/archive/frenchmath.doc.r64728.tar.xz +2022/10/18 | 48037 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2022/10/18 | 47393 | fonts/cooperhewitt/type1/CpHwt-ThinItalic.pfb +2022/10/18 | 47003 | fonts/cooperhewitt/type1/CpHwt-Semibold.pfb +2022/10/18 | 464160 | systems/texlive/tlnet/archive/termes-otf.doc.r64733.tar.xz +2022/10/18 | 46394 | fonts/cooperhewitt/type1/CpHwt-Bold.pfb +2022/10/18 | 45804 | fonts/cooperhewitt/type1/CpHwt-Medium.pfb +2022/10/18 | 45795 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2022/10/18 | 45768 | fonts/cooperhewitt/type1/CpHwt-Light.pfb +2022/10/18 | 45623 | fonts/cooperhewitt/type1/CpHwt-Book.pfb +2022/10/18 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/10/18 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/10/18 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/10/18 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/10/18 | 45547 | fonts/cooperhewitt/type1/CpHwt-Thin.pfb +2022/10/18 | 45193 | fonts/cooperhewitt/type1/CpHwt-Heavy.pfb +2022/10/18 | 4495 | support/chktex/config.h.in +2022/10/18 | 4479 | fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd +2022/10/18 | 4479 | fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd +2022/10/18 | 4422 | fonts/cooperhewitt/doc/OFL.txt +2022/10/18 | 4420 | fonts/cooperhewitt/latex/T1CpHwt-TLF.fd +2022/10/18 | 4420 | fonts/cooperhewitt/latex/T1CpHwt-Sup.fd +2022/10/18 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2022/10/18 | 43617 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2022/10/18 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2022/10/18 | 427 | fonts/cooperhewitt/doc/cooperhewitt-samples.tex +2022/10/18 | 422228 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64726.tar.xz +2022/10/18 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2022/10/18 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2022/10/18 | 409006 | support/chktex/ChkTeX.pdf +2022/10/18 | 3984099 | biblio/ctan-bibdata.zip +2022/10/18 | 394142 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2022/10/18 | 3908 | support/chktex/m4/vl_prog_cc_warnings.m4 +2022/10/18 | 38396 | systems/texlive/tlnet/archive/bithesis.source.r64727.tar.xz +2022/10/18 | 3826 | macros/latex/contrib/mfirstuc/CHANGES +2022/10/18 | 37507 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2022/10/18 | 37050 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2022/10/18 | 3592997 | biblio/ctan-bibdata/ctan.pdf +2022/10/18 | 3566 | support/chktex/m4/ax_cflags_strict_prototypes.m4 +2022/10/18 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2022/10/18 | 352549 | macros/latex/contrib/mfirstuc/mfirstuc-code.pdf +2022/10/18 | 352463 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2022/10/18 | 35229 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2022/10/18 | 3478 | support/chktex/tests/run-tests.sh +2022/10/18 | 33863 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2022/10/18 | 337775 | macros/latex/contrib/docshots.zip +2022/10/18 | 336674 | macros/latex/contrib/docshots/docshots.pdf +2022/10/18 | 3359 | fonts/cooperhewitt/latex/CooperHewitt.sty +2022/10/18 | 328996 | systems/texlive/tlnet/archive/docshots.doc.r64729.tar.xz +2022/10/18 | 325978 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2022/10/18 | 325483 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2022/10/18 | 3210 | fonts/cooperhewitt/enc/cphwt_kvtx4d.enc +2022/10/18 | 32073 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2022/10/18 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2022/10/18 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2022/10/18 | 3154 | support/chktex/chktex.1 +2022/10/18 | 31376 | support/chktex/chktexrc.in +2022/10/18 | 31008 | support/chktex/ChkTeX.c +2022/10/18 | 30802 | support/sty2dtx/sty2dtx.pl +2022/10/18 | 307 | support/chktex/input/file +2022/10/18 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2022/10/18 | 30180 | support/chktex/Test.pcre.out +2022/10/18 | 3013 | support/chktex/deweb.1 +2022/10/18 | 299911 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2022/10/18 | 299827 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2022/10/18 | 2964 | fonts/cooperhewitt/enc/cphwt_r6y6f6.enc +2022/10/18 | 295943 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2022/10/18 | 294879 | macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf +2022/10/18 | 2919 | fonts/cooperhewitt/enc/cphwt_sz67he.enc +2022/10/18 | 2917 | fonts/cooperhewitt/enc/cphwt_vrwj46.enc +2022/10/18 | 29116 | support/chktex/Test.posix-ere.out +2022/10/18 | 2904 | support/chktex/chkweb.1 +2022/10/18 | 28 | support/chktex/tests/sub1/subsub/subsubfile.tex +2022/10/18 | 28879 | support/chktex/Test.nore.out +2022/10/18 | 2876 | support/chktex/deweb.in +2022/10/18 | 2874 | fonts/cooperhewitt/enc/cphwt_4je6jj.enc +2022/10/18 | 286684 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2022/10/18 | 2864 | systems/texlive/tlnet/archive/collectbox.r64730.tar.xz +2022/10/18 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2022/10/18 | 2835 | fonts/cooperhewitt/enc/cphwt_psuovm.enc +2022/10/18 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2022/10/18 | 27 | support/chktex/tests/sub2/file2.tex +2022/10/18 | 2792 | fonts/cooperhewitt/enc/cphwt_tjvrzf.enc +2022/10/18 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2022/10/18 | 2738615 | biblio/ctan-bibdata/ctan.bib +2022/10/18 | 270466 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2022/10/18 | 2634 | macros/latex/contrib/docshots/docshots.ins +2022/10/18 | 2604 | support/chktex/Resource.h +2022/10/18 | 25518522 | systems/texlive/tlnet/install-tl.zip +2022/10/18 | 254 | support/chktex/MakeHTML.pl +2022/10/18 | 25118 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2022/10/18 | 249 | support/chktex/types.h +2022/10/18 | 247205 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma +2022/10/18 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2022/10/18 | 24212 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2022/10/18 | 2420 | systems/texlive/tlnet/archive/docshots.r64729.tar.xz +2022/10/18 | 2418984 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/10/18 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2022/10/18 | 2340 | systems/texlive/tlnet/archive/schola-otf.r64734.tar.xz +2022/10/18 | 23234 | fonts/cooperhewitt/doc/cooperhewitt-samples.pdf +2022/10/18 | 2320 | systems/texlive/tlnet/archive/termes-otf.r64733.tar.xz +2022/10/18 | 2286 | fonts/cooperhewitt/README +2022/10/18 | 225676 | macros/latex/contrib/mfirstuc/mfirstuc-manual.html +2022/10/18 | 213846 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2022/10/18 | 21274 | support/chktex/Utility.c +2022/10/18 | 21036 | systems/texlive/tlnet/archive/bithesis.r64727.tar.xz +2022/10/18 | 209138 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2022/10/18 | 20435689 | systems/texlive/tlnet/install-tl-windows.exe +2022/10/18 | 203420 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2022/10/18 | 2023132 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2022/10/18 | 1988 | systems/texlive/tlnet/archive/collection-fontsextra.r64734.tar.xz +2022/10/18 | 1972 | systems/texlive/tlnet/archive/frenchmath.r64728.tar.xz +2022/10/18 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2022/10/18 | 194 | support/chktex/ChkTeX.texrc +2022/10/18 | 193216 | support/chktex/configure +2022/10/18 | 18883 | support/chktex/COPYING +2022/10/18 | 18575 | macros/latex/contrib/docshots/docshots.dtx +2022/10/18 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2022/10/18 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2022/10/18 | 181723 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2022/10/18 | 177 | support/chktex/tests/main.tex +2022/10/18 | 1771321 | install/fonts/cooperhewitt.tds.zip +2022/10/18 | 17701296 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ly1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ly1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ly1.vf +2022/10/18 | 1744 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ly1.vf +2022/10/18 | 1743963 | fonts/cooperhewitt.zip +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ly1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ly1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-t1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ly1.vf +2022/10/18 | 1740 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ly1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-t1.vf +2022/10/18 | 1736 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1.tfm +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-t1.vf +2022/10/18 | 1732 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1.tfm +2022/10/18 | 1732 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ly1--base.tfm +2022/10/18 | 173176 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2022/10/18 | 172 | macros/latex/contrib/ifoddpage/ifoddpage.ins +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-t1--base.tfm +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1.tfm +2022/10/18 | 1724 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1.tfm +2022/10/18 | 172288 | systems/texlive/tlnet/archive/pst-math.doc.r64732.tar.xz +2022/10/18 | 1720 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ly1--base.tfm +2022/10/18 | 1716 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1.tfm +2022/10/18 | 1716 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-t1--base.tfm +2022/10/18 | 1712 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1.tfm +2022/10/18 | 1708 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-t1--base.tfm +2022/10/18 | 1708 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ly1--base.tfm +2022/10/18 | 1704 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1--base.tfm +2022/10/18 | 1704 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1--base.tfm +2022/10/18 | 1700 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-t1.vf +2022/10/18 | 1696 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-t1.vf +2022/10/18 | 169677 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2022/10/18 | 1692 | fonts/cooperhewitt/vf/CpHwt-Semibold-sup-t1.vf +2022/10/18 | 1692 | fonts/cooperhewitt/vf/CpHwt-Medium-sup-t1.vf +2022/10/18 | 1692 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Thin-sup-t1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Light-sup-t1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Heavy-sup-t1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Book-sup-t1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/vf/CpHwt-Bold-sup-t1.vf +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1--base.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1.tfm +2022/10/18 | 1688 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1--base.tfm +2022/10/18 | 1684 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-t1--base.tfm +2022/10/18 | 1684 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ly1--base.tfm +2022/10/18 | 168168 | support/sty2dtx.zip +2022/10/18 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2022/10/18 | 1676 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1--base.tfm +2022/10/18 | 16684 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-t1.tfm +2022/10/18 | 16684 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-t1.tfm +2022/10/18 | 16660 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1.tfm +2022/10/18 | 1664 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-t1--base.tfm +2022/10/18 | 1664 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1--base.tfm +2022/10/18 | 16648 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1.tfm +2022/10/18 | 16620 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1.tfm +2022/10/18 | 16604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1.tfm +2022/10/18 | 16596 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1.tfm +2022/10/18 | 165956 | systems/texlive/tlnet/archive/collectbox.doc.r64730.tar.xz +2022/10/18 | 16592 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1.tfm +2022/10/18 | 16584 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1.tfm +2022/10/18 | 16584 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1.tfm +2022/10/18 | 1656 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-sup-ly1.vf +2022/10/18 | 16536 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1.tfm +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-LightItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-BookItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-sup-ly1.vf +2022/10/18 | 1652 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1.tfm +2022/10/18 | 1652 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-t1--base.tfm +2022/10/18 | 16512 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1.tfm +2022/10/18 | 16512 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1.tfm +2022/10/18 | 1648 | fonts/cooperhewitt/vf/CpHwt-Semibold-sup-ly1.vf +2022/10/18 | 1648 | fonts/cooperhewitt/vf/CpHwt-Medium-sup-ly1.vf +2022/10/18 | 16472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1.tfm +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Thin-sup-ly1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Light-sup-ly1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Heavy-sup-ly1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Book-sup-ly1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/vf/CpHwt-Bold-sup-ly1.vf +2022/10/18 | 1644 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-t1--base.tfm +2022/10/18 | 1644 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1.tfm +2022/10/18 | 1640 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ly1--base.tfm +2022/10/18 | 1628 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1.tfm +2022/10/18 | 1628 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1--base.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ly1--base.tfm +2022/10/18 | 1624 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-t1--base.tfm +2022/10/18 | 1620 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1.tfm +2022/10/18 | 1616 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-t1--base.tfm +2022/10/18 | 1612 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-t1--base.tfm +2022/10/18 | 1612 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-t1--base.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1.tfm +2022/10/18 | 1608 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1--base.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ly1--base.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-t1--base.tfm +2022/10/18 | 1604 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-t1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-t1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1--base.tfm +2022/10/18 | 1600 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ly1--base.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1--base.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ly1--base.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-t1--base.tfm +2022/10/18 | 1596 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-t1--base.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1--base.tfm +2022/10/18 | 1592 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ly1--base.tfm +2022/10/18 | 1588 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-t1--base.tfm +2022/10/18 | 1584 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-t1--base.tfm +2022/10/18 | 1580 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1.tfm +2022/10/18 | 1576 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1.tfm +2022/10/18 | 1576 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ly1--base.tfm +2022/10/18 | 1568 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-t1--base.tfm +2022/10/18 | 156538 | support/sty2dtx/sty2dtx.pdf +2022/10/18 | 155432 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2022/10/18 | 1552 | support/chktex/m4/ax_append_flag.m4 +2022/10/18 | 1552 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1--base.tfm +2022/10/18 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/10/18 | 1536 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-t1--base.tfm +2022/10/18 | 15358 | support/chktex/install-sh +2022/10/18 | 15347 | support/chktex/Resource.c +2022/10/18 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/10/18 | 1528 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1--base.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ly1--base.tfm +2022/10/18 | 1524 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-t1--base.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-t1--base.tfm +2022/10/18 | 1516 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-t1--base.tfm +2022/10/18 | 1512 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-t1--base.tfm +2022/10/18 | 1507985 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2022/10/18 | 1507793 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2022/10/18 | 1506 | support/chktex/MakeChkTeXRC.pl +2022/10/18 | 1504 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1--base.tfm +2022/10/18 | 1504 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1.tfm +2022/10/18 | 1503053 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2022/10/18 | 1500 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ly1--base.tfm +2022/10/18 | 1488 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1--base.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1.tfm +2022/10/18 | 1484 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ly1--base.tfm +2022/10/18 | 148155 | macros/latex/contrib/ifoddpage.zip +2022/10/18 | 1476 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-t1--base.tfm +2022/10/18 | 1472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-t1--base.tfm +2022/10/18 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/10/18 | 1458153 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2022/10/18 | 1452 | macros/latex/contrib/mfirstuc/README +2022/10/18 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/10/18 | 144874 | macros/latex/contrib/ifoddpage/ifoddpage.pdf +2022/10/18 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2022/10/18 | 1432 | macros/latex/contrib/mfirstuc/mfirstuc.ins +2022/10/18 | 140014 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2022/10/18 | 13898 | support/chktex/OpSys.c +2022/10/18 | 1386130 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2022/10/18 | 1385746 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2022/10/18 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64735.tar.xz +2022/10/18 | 13600 | systems/texlive/tlnet/archive/adjustbox.r64731.tar.xz +2022/10/18 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-SemiboldItalic-tlf-ot1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-MediumItalic-tlf-ot1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-LightItalic-tlf-ot1.vf +2022/10/18 | 1348 | fonts/cooperhewitt/vf/CpHwt-HeavyItalic-tlf-ot1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-ThinItalic-tlf-ot1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-Semibold-tlf-ot1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-BookItalic-tlf-ot1.vf +2022/10/18 | 1344 | fonts/cooperhewitt/vf/CpHwt-BoldItalic-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Thin-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Medium-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Light-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Heavy-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Book-tlf-ot1.vf +2022/10/18 | 1340 | fonts/cooperhewitt/vf/CpHwt-Bold-tlf-ot1.vf +2022/10/18 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2022/10/18 | 1320 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1.tfm +2022/10/18 | 1320 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1.tfm +2022/10/18 | 1313 | support/chktex/chkweb +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1.tfm +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1.tfm +2022/10/18 | 1304 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ts1--base.tfm +2022/10/18 | 13036 | fonts/cooperhewitt/map/CooperHewitt.map +2022/10/18 | 1300 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1.tfm +2022/10/18 | 1300 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ts1--base.tfm +2022/10/18 | 1298 | macros/latex/contrib/docshots/README.md +2022/10/18 | 1288 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ts1--base.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ts1--base.tfm +2022/10/18 | 1284 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1.tfm +2022/10/18 | 1280 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ts1--base.tfm +2022/10/18 | 1276 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1.tfm +2022/10/18 | 1273956 | systems/texlive/tlnet/archive/tex4ht.source.r64735.tar.xz +2022/10/18 | 1272 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ts1--base.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1.tfm +2022/10/18 | 1264 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ts1--base.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ts1--base.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ts1--base.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ts1--base.tfm +2022/10/18 | 1260 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ts1--base.tfm +2022/10/18 | 1256 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ts1--base.tfm +2022/10/18 | 12550 | macros/latex/contrib/ifoddpage/ifoddpage.dtx +2022/10/18 | 1252 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ts1--base.tfm +2022/10/18 | 1244 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ts1--base.tfm +2022/10/18 | 1224 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-sup-ot1.tfm +2022/10/18 | 122108 | macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf +2022/10/18 | 1218 | support/chktex/m4/ax_require_defined.m4 +2022/10/18 | 1212 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-sup-ot1.tfm +2022/10/18 | 1212 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-sup-ot1.tfm +2022/10/18 | 1196 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-sup-ot1.tfm +2022/10/18 | 1188 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ot1--base.tfm +2022/10/18 | 1184 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ot1--base.tfm +2022/10/18 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini +2022/10/18 | 1168 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ot1--base.tfm +2022/10/18 | 1164 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ot1--base.tfm +2022/10/18 | 1161750 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2022/10/18 | 1156 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-sup-ot1.tfm +2022/10/18 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2022/10/18 | 11531 | support/sty2dtx/sty2dtx.1 +2022/10/18 | 1144 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-sup-ot1.tfm +2022/10/18 | 113688 | systems/texlive/tlnet/archive/texlive-scripts.r64726.tar.xz +2022/10/18 | 112979 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2022/10/18 | 1128 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ot1--base.tfm +2022/10/18 | 112879 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2022/10/18 | 1126 | support/chktex/autogen.sh +2022/10/18 | 1112 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ot1--base.tfm +2022/10/18 | 1112 | fonts/cooperhewitt/tfm/CpHwt-Semibold-sup-ot1.tfm +2022/10/18 | 1108 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ot1--base.tfm +2022/10/18 | 1108 | fonts/cooperhewitt/tfm/CpHwt-Medium-sup-ot1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ot1--base.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-sup-ot1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Book-sup-ot1.tfm +2022/10/18 | 1104 | fonts/cooperhewitt/tfm/CpHwt-Bold-sup-ot1.tfm +2022/10/18 | 1100 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ot1--base.tfm +2022/10/18 | 1100 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ot1--base.tfm +2022/10/18 | 10 | support/chktex/stamp-h.in +2022/10/18 | 1098 | macros/latex/contrib/ifoddpage/README.txt +2022/10/18 | 109651 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2022/10/18 | 10953 | support/chktex/ChkTeX.h +2022/10/18 | 1083 | macros/latex/contrib/docshots/LICENSE.txt +2022/10/18 | 107437 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2022/10/18 | 1072 | fonts/cooperhewitt/tfm/CpHwt-Thin-sup-ot1.tfm +2022/10/18 | 1072 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ot1--base.tfm +2022/10/18 | 10696 | fonts/cooperhewitt/tfm/CpHwt-SemiboldItalic-tlf-ly1.tfm +2022/10/18 | 10696 | fonts/cooperhewitt/tfm/CpHwt-BoldItalic-tlf-ly1.tfm +2022/10/18 | 1068 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ot1--base.tfm +2022/10/18 | 10683 | support/chktex/NEWS +2022/10/18 | 10668 | fonts/cooperhewitt/tfm/CpHwt-MediumItalic-tlf-ly1.tfm +2022/10/18 | 10656 | fonts/cooperhewitt/tfm/CpHwt-BookItalic-tlf-ly1.tfm +2022/10/18 | 10616 | fonts/cooperhewitt/tfm/CpHwt-HeavyItalic-tlf-ly1.tfm +2022/10/18 | 10596 | fonts/cooperhewitt/tfm/CpHwt-Semibold-tlf-ly1.tfm +2022/10/18 | 10592 | fonts/cooperhewitt/tfm/CpHwt-ThinItalic-tlf-ly1.tfm +2022/10/18 | 10592 | fonts/cooperhewitt/tfm/CpHwt-Bold-tlf-ly1.tfm +2022/10/18 | 10588 | fonts/cooperhewitt/tfm/CpHwt-Medium-tlf-ly1.tfm +2022/10/18 | 10584 | fonts/cooperhewitt/tfm/CpHwt-Book-tlf-ly1.tfm +2022/10/18 | 10540 | fonts/cooperhewitt/tfm/CpHwt-LightItalic-tlf-ly1.tfm +2022/10/18 | 10516 | fonts/cooperhewitt/tfm/CpHwt-Thin-tlf-ly1.tfm +2022/10/18 | 10492 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ly1.tfm +2022/10/18 | 104920 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2022/10/18 | 10472 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ly1.tfm +2022/10/18 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2022/10/18 | 1032 | fonts/cooperhewitt/tfm/CpHwt-Heavy-tlf-ot1--base.tfm +2022/10/18 | 1032 | fonts/cooperhewitt/tfm/CpHwt-Heavy-sup-ot1.tfm +2022/10/18 | 103246 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2022/10/18 | 1024 | fonts/cooperhewitt/tfm/CpHwt-Light-sup-ot1.tfm +2022/10/18 | 1021 | support/chktex/README +2022/10/18 | 1020 | fonts/cooperhewitt/tfm/CpHwt-Light-tlf-ot1--base.tfm 2022/10/17 | 99391 | macros/latex/contrib/glossaries/samples/sampleAcrDesc.pdf 2022/10/17 | 975276 | macros/unicodetex/latex/bithesis/bithesis.pdf 2022/10/17 | 969 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example030.tex 2022/10/17 | 968 | macros/latex/contrib/proflycee/doc/cap.csv -2022/10/17 | 959 | systems/win32/miktex/tm/packages/pr.ini -2022/10/17 | 95467 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma 2022/10/17 | 945 | macros/latex/contrib/collectbox/README.txt 2022/10/17 | 9443 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example008.png 2022/10/17 | 930967 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf 2022/10/17 | 9066 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example030.png 2022/10/17 | 8856 | macros/latex/contrib/glossaries/samples/samplexdy3.tex -2022/10/17 | 88483 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2022/10/17 | 8826 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma 2022/10/17 | 87965 | macros/latex/contrib/glossaries/samples/sample-custom-acronym.pdf 2022/10/17 | 8774 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example007.png 2022/10/17 | 873 | macros/latex/contrib/glossaries/samples/sample-dual.tex @@ -18,82 +557,52 @@ 2022/10/17 | 86116 | macros/latex/contrib/glossaries/samples/sampleaccsupp.pdf 2022/10/17 | 83536 | systems/texlive/tlnet/archive/lutabulartools.doc.r64724.tar.xz 2022/10/17 | 827620 | macros/latex/contrib/adjustbox.zip -2022/10/17 | 824996 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma 2022/10/17 | 8172 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example002.png -2022/10/17 | 81449 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma 2022/10/17 | 80852 | macros/latex/contrib/adjustbox/trimclip.dtx 2022/10/17 | 7938 | macros/latex/contrib/glossaries/makeglossaries.1 2022/10/17 | 7935 | macros/latex/contrib/glossaries/samples/sampleEqPg.tex -2022/10/17 | 79065 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma 2022/10/17 | 785 | macros/latex/contrib/glossaries/samples/sample4col.tex -2022/10/17 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma 2022/10/17 | 7702 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example005.png 2022/10/17 | 7702 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example004.png 2022/10/17 | 7702 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example003.png -2022/10/17 | 769652 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma 2022/10/17 | 758 | graphics/pstricks/contrib/pst-math/tex/pst-math.tex 2022/10/17 | 7587 | macros/latex/contrib/glossaries/makeglossaries-lite.1 -2022/10/17 | 74 | macros/latex/contrib/docshots/DEPENDS.txt -2022/10/17 | 74100 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma 2022/10/17 | 736 | macros/latex/contrib/proflycee/doc/perroquet.csv -2022/10/17 | 73686 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2022/10/17 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma 2022/10/17 | 73171 | macros/latex/contrib/glossaries/samples/samplexdy2.pdf -2022/10/17 | 72977 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma 2022/10/17 | 724 | graphics/pstricks/contrib/pst-math/Changes 2022/10/17 | 720 | systems/texlive/tlnet/archive/collection-langeuropean.r64723.tar.xz 2022/10/17 | 718 | macros/latex/contrib/glossaries/samples/sample-entryfmt.tex +2022/10/17 | 7174 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/10/17 | 716 | macros/latex/contrib/glossaries/samples/sample-FnDesc.tex 2022/10/17 | 71576 | macros/latex/contrib/glossaries/samples/sample-noidxapp.pdf -2022/10/17 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2022/10/17 | 706 | macros/latex/contrib/glossaries/samples/database2.tex 2022/10/17 | 69919 | macros/latex/contrib/glossaries/samples/sampleSec.pdf 2022/10/17 | 68914 | macros/latex/contrib/glossaries/samples/sampleAcr.pdf 2022/10/17 | 6850 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example006.png -2022/10/17 | 682216 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2022/10/17 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma 2022/10/17 | 671 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example025.png 2022/10/17 | 6712 | systems/texlive/tlnet/archive/lutabulartools.r64724.tar.xz -2022/10/17 | 668584 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2022/10/17 | 668430 | systems/win32/miktex/tm/packages/files.csv.lzma 2022/10/17 | 65 | macros/latex/contrib/glossaries/DEPENDS.txt -2022/10/17 | 65129 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma 2022/10/17 | 6434 | macros/latex/contrib/glossaries/samples/glossary-lipsum-examples.tex 2022/10/17 | 64302 | macros/latex/contrib/glossaries/samples/sampletree.pdf 2022/10/17 | 63848 | macros/latex/contrib/glossaries/samples/sample-FnDesc.pdf -2022/10/17 | 63802 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma 2022/10/17 | 6358 | macros/latex/contrib/glossaries/samples/sampleEq.tex -2022/10/17 | 63240 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2022/10/17 | 630433 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma 2022/10/17 | 62536 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example008.pdf -2022/10/17 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma 2022/10/17 | 621 | macros/latex/contrib/glossaries/samples/sample-ignored.tex +2022/10/17 | 6171 | support/TeX4ht/source/tex4ht-mathjax.tex 2022/10/17 | 615 | macros/latex/contrib/glossaries/samples/mwe-acr-desc.tex 2022/10/17 | 6142 | macros/latex/contrib/glossaries/samples/sample.tex 2022/10/17 | 60867 | macros/latex/contrib/glossaries/samples/sample-crossref.pdf -2022/10/17 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma 2022/10/17 | 590 | macros/latex/contrib/glossaries/samples/sampleDB.tex -2022/10/17 | 58634 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2022/10/17 | 5834586 | systems/texlive/tlnet/install-tl-unx.tar.gz -2022/10/17 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2022/10/17 | 57502 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma 2022/10/17 | 57372 | macros/latex/contrib/glossaries/samples/sample-chap-hyperfirst.pdf -2022/10/17 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2022/10/17 | 565081 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma 2022/10/17 | 56061 | macros/latex/contrib/glossaries/samples/sample-dot-abbr.pdf 2022/10/17 | 553 | macros/latex/contrib/glossaries/samples/sample-si.tex -2022/10/17 | 55319 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma 2022/10/17 | 551 | macros/latex/contrib/glossaries/samples/mwe-acr.tex 2022/10/17 | 54893 | macros/latex/contrib/glossaries/samples/sample-font-abbr.pdf 2022/10/17 | 54101 | macros/latex/contrib/glossaries/makeglossaries 2022/10/17 | 5385 | macros/latex/contrib/glossaries/samples/sample-custom-acronym.tex 2022/10/17 | 536 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example024.tex 2022/10/17 | 529 | macros/latex/contrib/proflycee/doc/testscript.py -2022/10/17 | 527569 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2022/10/17 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2022/10/17 | 52370 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma 2022/10/17 | 52292 | macros/latex/contrib/glossaries/samples/minimalgls.pdf -2022/10/17 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma 2022/10/17 | 5148 | macros/latex/contrib/glossaries/samples/sample-inline.tex 2022/10/17 | 51302 | macros/latex/contrib/glossaries/samples/sampleDB.pdf 2022/10/17 | 50963 | macros/latex/contrib/glossaries/samples/sampleDesc.pdf @@ -101,14 +610,10 @@ 2022/10/17 | 505739 | fonts/schola-otf/doc/schola-otf-doc.pdf 2022/10/17 | 49998 | macros/latex/contrib/glossaries/samples/samplePeople.pdf 2022/10/17 | 4965728 | macros/latex/contrib/glossaries/glossaries-user.pdf -2022/10/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2022/10/17 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma 2022/10/17 | 48818 | macros/latex/contrib/glossaries/samples/sample-prefix.pdf 2022/10/17 | 486532 | fonts/schola-otf.zip 2022/10/17 | 485 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example023.tex 2022/10/17 | 485750 | fonts/termes-otf/doc/termes-otf-doc.pdf -2022/10/17 | 481894 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2022/10/17 | 48038 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma 2022/10/17 | 479 | macros/latex/contrib/glossaries/samples/mwe-gls.tex 2022/10/17 | 47779 | macros/latex/contrib/glossaries/samples/sampleutf8.pdf 2022/10/17 | 4692 | systems/texlive/tlnet/archive/huaz.r64723.tar.xz @@ -117,45 +622,29 @@ 2022/10/17 | 465427 | fonts/termes-otf.zip 2022/10/17 | 4642622 | macros/latex/contrib/glossaries/glossaries-user.html 2022/10/17 | 45914 | macros/latex/contrib/glossaries/samples/sample-index.pdf -2022/10/17 | 45795 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2022/10/17 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/10/17 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2022/10/17 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/10/17 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2022/10/17 | 45043 | macros/latex/contrib/glossaries/samples/sample-nomathhyper.pdf 2022/10/17 | 44614 | macros/latex/contrib/glossaries/samples/sample-numberlist.pdf 2022/10/17 | 44185 | macros/latex/contrib/mismath/mismath.dtx -2022/10/17 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2022/10/17 | 4376 | systems/texlive/tlnet/archive/docshots.source.r64722.tar.xz 2022/10/17 | 436 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example022.tex -2022/10/17 | 43617 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2022/10/17 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma 2022/10/17 | 43160 | systems/texlive/tlnet/archive/eplain.r64721.tar.xz 2022/10/17 | 42398 | macros/latex/contrib/glossaries/samples/sample-storage-abbr-desc.pdf -2022/10/17 | 422176 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64720.tar.xz 2022/10/17 | 41705 | macros/latex/contrib/glossaries/samples/sample-langdict.pdf 2022/10/17 | 41702 | macros/latex/contrib/glossaries/samples/sample-newkeys.pdf 2022/10/17 | 4124 | macros/latex/contrib/glossaries/INSTALL -2022/10/17 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2022/10/17 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma 2022/10/17 | 40462 | macros/latex/contrib/glossaries/samples/mwe-acr-desc.pdf 2022/10/17 | 40166 | macros/latex/contrib/glossaries/samples/sample-storage-abbr.pdf 2022/10/17 | 400 | fonts/schola-otf/README.md 2022/10/17 | 39 | fonts/schola-otf/Changes -2022/10/17 | 3982059 | biblio/ctan-bibdata.zip 2022/10/17 | 39704 | macros/latex/contrib/glossaries/samples/sampleacronyms.pdf -2022/10/17 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma 2022/10/17 | 39338 | macros/latex/contrib/glossaries/samples/sample-entrycount.pdf 2022/10/17 | 393152 | macros/latex/contrib/adjustbox/adjustbox.pdf 2022/10/17 | 38960 | macros/latex/contrib/glossaries/samples/sample-dual.pdf 2022/10/17 | 385141 | macros/latex/contrib/glossaries/glossariesbegin.pdf -2022/10/17 | 37508 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma 2022/10/17 | 374081 | macros/latex/contrib/mismath.zip 2022/10/17 | 37407 | macros/latex/contrib/glossaries/samples/sample-entryfmt.pdf 2022/10/17 | 3724 | macros/latex/contrib/glossaries/samples/sampleCustomAcr.tex 2022/10/17 | 3720 | macros/unicodetex/latex/bithesis/bithesis.ins 2022/10/17 | 37155 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example007.pdf -2022/10/17 | 37051 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma 2022/10/17 | 3683 | macros/latex/contrib/glossaries/samples/sample-noidxapp-utf8.tex 2022/10/17 | 36694 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example002.pdf 2022/10/17 | 36443 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example005.pdf @@ -165,68 +654,37 @@ 2022/10/17 | 36154 | macros/latex/contrib/glossaries/samples/mwe-acr.pdf 2022/10/17 | 3608 | macros/latex/contrib/glossaries/README.md 2022/10/17 | 360639 | macros/latex/contrib/mismath/mismath.pdf -2022/10/17 | 3595046 | biblio/ctan-bibdata/ctan.pdf 2022/10/17 | 3566 | macros/latex/contrib/glossaries/samples/sample-storage-abbr.tex 2022/10/17 | 35660 | macros/latex/contrib/glossaries/glossary2glossaries.tex -2022/10/17 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma 2022/10/17 | 3525 | macros/latex/contrib/glossaries/samples/sample-noidxapp.tex -2022/10/17 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2022/10/17 | 35231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma 2022/10/17 | 34318 | macros/latex/contrib/glossaries/samples/sample-ignored.pdf -2022/10/17 | 33861 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma 2022/10/17 | 336017 | macros/latex/contrib/glossaries/glossariesbegin.html -2022/10/17 | 335351 | macros/latex/contrib/docshots.zip -2022/10/17 | 334497 | macros/latex/contrib/docshots/docshots.pdf 2022/10/17 | 32 | macros/latex/contrib/proflycee/doc/basique.csv 2022/10/17 | 328 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example025.tex 2022/10/17 | 328068 | systems/texlive/tlnet/archive/huaz.doc.r64723.tar.xz -2022/10/17 | 325979 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2022/10/17 | 325483 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma 2022/10/17 | 32447 | macros/latex/contrib/glossaries/samples/mwe-gls.pdf 2022/10/17 | 32352 | macros/latex/contrib/collectbox/collectbox.dtx -2022/10/17 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2022/10/17 | 31587 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2022/10/17 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2022/10/17 | 30571 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2022/10/17 | 299867 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2022/10/17 | 299852 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma 2022/10/17 | 2989 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example001.png -2022/10/17 | 295945 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma 2022/10/17 | 2902 | macros/latex/contrib/glossaries/makeglossaries-lite.pod -2022/10/17 | 289040 | systems/texlive/tlnet/archive/docshots.doc.r64722.tar.xz 2022/10/17 | 287948 | systems/texlive/tlnet/archive/eplain.source.r64721.tar.xz -2022/10/17 | 286685 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma 2022/10/17 | 28661 | macros/latex/contrib/glossaries/samples/samplexdy-mc.xdy 2022/10/17 | 2852 | graphics/pstricks/contrib/pst-math/latex/pst-math.sty -2022/10/17 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma 2022/10/17 | 2846 | macros/latex/contrib/glossaries/samples/minimalgls.tex 2022/10/17 | 2838 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example023.png 2022/10/17 | 2825 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example024.png -2022/10/17 | 2821670 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma 2022/10/17 | 28091 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example030.pdf 2022/10/17 | 2773 | macros/latex/contrib/glossaries/samples/sampleSort.tex 2022/10/17 | 2750 | macros/latex/contrib/glossaries/samples/sampleAcr.tex -2022/10/17 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2022/10/17 | 270467 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2022/10/17 | 2651420 | systems/win32/miktex/setup/windows-x64/miktexsetup-5.2.0+b8f430f-x64.zip 2022/10/17 | 26489 | fonts/termes-otf/doc/termes-otf-doc.tex 2022/10/17 | 2643 | macros/unicodetex/latex/bithesis/contributing-zh.md -2022/10/17 | 2634 | macros/latex/contrib/docshots/docshots.ins -2022/10/17 | 2603471 | biblio/ctan-bibdata/ctan.bib 2022/10/17 | 26024 | fonts/schola-otf/doc/schola-otf-doc.tex -2022/10/17 | 25518508 | systems/texlive/tlnet/install-tl.zip 2022/10/17 | 2544 | macros/latex/contrib/glossaries/samples/sampleFnAcrDesc.tex 2022/10/17 | 25391880 | systems/win32/miktex/setup/windows-x64/setup-5.3.1+b8f430f-x64.exe 2022/10/17 | 253736 | macros/latex/contrib/glossaries/samples/glossary-lipsum-examples.pdf -2022/10/17 | 25118 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma 2022/10/17 | 2509 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example022.png -2022/10/17 | 247206 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma -2022/10/17 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma 2022/10/17 | 2442 | macros/latex/contrib/glossaries/samples/sampleAcrDesc.tex -2022/10/17 | 24212 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2022/10/17 | 2419960 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2022/10/17 | 2410 | macros/latex/contrib/glossaries/samples/sampleNtn.tex -2022/10/17 | 23951 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma 2022/10/17 | 23904 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example001.pdf 2022/10/17 | 2363 | macros/latex/contrib/glossaries/samples/sampleaccsupp.tex 2022/10/17 | 23392 | macros/latex/contrib/glossaries/samples/sample-si.pdf @@ -237,43 +695,30 @@ 2022/10/17 | 226479 | macros/latex/contrib/gensymb.zip 2022/10/17 | 225437 | macros/latex/contrib/adjustbox/trimclip.pdf 2022/10/17 | 2237746 | macros/latex/contrib/glossaries/glossaries-code.pdf -2022/10/17 | 2236 | systems/texlive/tlnet/archive/docshots.r64722.tar.xz 2022/10/17 | 219979 | macros/latex/contrib/gensymb/gensymb.pdf 2022/10/17 | 2190 | macros/latex/contrib/glossaries/samples/sample-dot-abbr.tex 2022/10/17 | 214739 | macros/latex/contrib/adjustbox/adjustbox.dtx -2022/10/17 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma 2022/10/17 | 2099 | macros/latex/contrib/glossaries/samples/sampletree.tex -2022/10/17 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2022/10/17 | 20436274 | systems/texlive/tlnet/install-tl-windows.exe -2022/10/17 | 203421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2022/10/17 | 2023133 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2022/10/17 | 204029 | support/TeX4ht/source/ChangeLog 2022/10/17 | 19 | macros/latex/contrib/collectbox/DEPENDS.txt 2022/10/17 | 1993 | macros/unicodetex/latex/bithesis/README.md 2022/10/17 | 1987 | macros/latex/contrib/mismath/mismath.ins 2022/10/17 | 1969 | macros/latex/contrib/glossaries/samples/sampleSec.tex -2022/10/17 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma 2022/10/17 | 1929 | macros/latex/contrib/glossaries/samples/samplexdy2.tex 2022/10/17 | 190 | fonts/termes-otf/Changes 2022/10/17 | 190704 | macros/latex/contrib/glossaries/samples/samplexdy3.pdf 2022/10/17 | 185984 | graphics/pstricks/contrib/pst-math.zip -2022/10/17 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma 2022/10/17 | 185080 | macros/unicodetex/latex/bithesis/bithesis.dtx -2022/10/17 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma 2022/10/17 | 1825013 | macros/latex/contrib/glossaries/glossaries.dtx 2022/10/17 | 181791 | macros/latex/contrib/glossaries/samples/sampleEqPg.pdf -2022/10/17 | 181725 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma 2022/10/17 | 179272 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex 2022/10/17 | 1784 | macros/latex/contrib/adjustbox/README.txt 2022/10/17 | 17777 | macros/latex/contrib/glossaries/samples/samplexdy-mc207.xdy -2022/10/17 | 17700266 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2022/10/17 | 1757 | macros/latex/contrib/glossaries/samples/README-samples 2022/10/17 | 1753 | macros/latex/contrib/glossaries/samples/sample-newkeys.tex 2022/10/17 | 1751 | macros/latex/contrib/glossaries/samples/sample-font-abbr.tex 2022/10/17 | 173586 | macros/latex/contrib/collectbox.zip -2022/10/17 | 173177 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma 2022/10/17 | 17081 | macros/latex/contrib/adjustbox/adjcalc.dtx -2022/10/17 | 169678 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2022/10/17 | 16888 | macros/latex/contrib/docshots/docshots.dtx 2022/10/17 | 1686 | macros/latex/contrib/glossaries/samples/sample-index.tex 2022/10/17 | 16860 | macros/latex/contrib/gensymb/gensymb.dtx 2022/10/17 | 167771 | macros/latex/contrib/glossaries/samples/sampleEq.pdf @@ -283,37 +728,21 @@ 2022/10/17 | 160559 | macros/latex/contrib/glossaries/samples/sampleCustomAcr.pdf 2022/10/17 | 158227 | macros/latex/contrib/glossaries/samples/sampleFnAcrDesc.pdf 2022/10/17 | 157855 | macros/latex/contrib/glossaries/samples/sample-inline.pdf -2022/10/17 | 155432 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma 2022/10/17 | 1545 | macros/latex/contrib/glossaries/samples/samplePeople.tex -2022/10/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/10/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 2022/10/17 | 1508 | macros/latex/contrib/glossaries/samples/sample-crossref.tex 2022/10/17 | 1508 | macros/latex/contrib/glossaries/samples/sample-chap-hyperfirst.tex 2022/10/17 | 15087 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example022.pdf -2022/10/17 | 1508565 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2022/10/17 | 1507755 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2022/10/17 | 1503054 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma 2022/10/17 | 1500 | macros/latex/contrib/glossaries/samples/sample-langdict.tex 2022/10/17 | 1498 | macros/latex/contrib/glossaries/samples/sampleutf8.tex 2022/10/17 | 1496393 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma -2022/10/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2022/10/17 | 1458152 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2022/10/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2022/10/17 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2022/10/17 | 144016 | macros/latex/contrib/glossaries/samples/samplexdy.pdf 2022/10/17 | 14263 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example024.pdf 2022/10/17 | 14255 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example023.pdf 2022/10/17 | 140991 | macros/latex/contrib/glossaries/glossary2glossaries.pdf -2022/10/17 | 140012 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2022/10/17 | 1386695 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2022/10/17 | 1384985 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2022/10/17 | 1376 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example002.tex 2022/10/17 | 1361742 | macros/latex/contrib/glossaries/glossaries-user.tex -2022/10/17 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma 2022/10/17 | 13469 | macros/latex/contrib/glossaries/makeglossaries-lite.lua -2022/10/17 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma 2022/10/17 | 13027850 | install/macros/latex/contrib/glossaries.tds.zip -2022/10/17 | 1298 | macros/latex/contrib/docshots/README.md 2022/10/17 | 127985 | macros/latex/contrib/glossaries/samples/sample.pdf 2022/10/17 | 12733347 | macros/latex/contrib/glossaries.zip 2022/10/17 | 1272 | macros/latex/contrib/adjustbox/adjustbox.ins @@ -324,30 +753,19 @@ 2022/10/17 | 1198 | macros/latex/contrib/glossaries/samples/sampleacronyms.tex 2022/10/17 | 118342 | macros/latex/contrib/glossaries/glossariesbegin.tex 2022/10/17 | 1180 | macros/latex/contrib/glossaries/samples/sample-entrycount.tex -2022/10/17 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini -2022/10/17 | 1161750 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2022/10/17 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2022/10/17 | 113664 | systems/texlive/tlnet/archive/texlive-scripts.r64720.tar.xz -2022/10/17 | 112979 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2022/10/17 | 112878 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2022/10/17 | 1133473 | support/TeX4ht/source/tex4ht-4ht.tex 2022/10/17 | 11162 | fonts/schola-otf/latex/schola-otf.sty 2022/10/17 | 11144 | fonts/termes-otf/latex/termes-otf.sty -2022/10/17 | 109651 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma 2022/10/17 | 108845 | macros/latex/contrib/proflycee/tex/ProfLycee.sty 2022/10/17 | 1084 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example006.tex -2022/10/17 | 1083 | macros/latex/contrib/docshots/LICENSE.txt 2022/10/17 | 1079070 | macros/latex/contrib/proflycee.zip -2022/10/17 | 107437 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma 2022/10/17 | 1071 | macros/latex/contrib/glossaries/samples/sample-nomathhyper.tex 2022/10/17 | 1071 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example008.tex 2022/10/17 | 105898 | macros/latex/contrib/glossaries/samples/sampleNtn.pdf -2022/10/17 | 104922 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma 2022/10/17 | 1048 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example005.tex 2022/10/17 | 1048452 | systems/texlive/tlnet/archive/eplain.doc.r64721.tar.xz 2022/10/17 | 1046 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example004.tex 2022/10/17 | 1036 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example007.tex -2022/10/17 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2022/10/17 | 103247 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma 2022/10/17 | 102907 | macros/latex/contrib/glossaries/samples/sample-noidxapp-utf8.pdf 2022/10/17 | 1024 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example001.tex 2022/10/17 | 101 | macros/latex/contrib/adjustbox/DEPENDS.txt @@ -367,7 +785,6 @@ 2022/10/16 | 775348 | macros/eplain/doc/eplain.pdf 2022/10/16 | 725721 | macros/eplain/doc/eplain.html 2022/10/16 | 724 | systems/texlive/tlnet/archive/nlctdoc.doc.r64708.tar.xz -2022/10/16 | 7119 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/10/16 | 688 | macros/latex/contrib/huaz/README 2022/10/16 | 6788 | systems/texlive/tlnet/archive/collection-latexextra.r64716.tar.xz 2022/10/16 | 657 | macros/eplain/doc/AUTHORS @@ -391,20 +808,17 @@ 2022/10/16 | 2692476 | systems/texlive/tlnet/archive/simpleicons.r64711.tar.xz 2022/10/16 | 258094 | macros/eplain/source/eplain-source-3.13.zip 2022/10/16 | 2493 | macros/eplain/doc/util/trimsee -2022/10/16 | 246408 | systems/texlive/tlnet/archive/termes-otf.doc.r64712.tar.xz 2022/10/16 | 24487 | macros/eplain/tex/arrow.tex 2022/10/16 | 23920 | systems/texlive/tlnet/archive/nlctdoc.r64708.tar.xz 2022/10/16 | 2349112 | systems/texlive/tlnet/archive/circuit-macros.doc.r64713.tar.xz 2022/10/16 | 2332 | systems/texlive/tlnet/archive/pagella-otf.r64705.tar.xz 2022/10/16 | 22710 | macros/latex/contrib/frenchmath/frenchmath.dtx -2022/10/16 | 2260 | systems/texlive/tlnet/archive/termes-otf.r64712.tar.xz 2022/10/16 | 21927176 | systems/texlive/tlnet/archive/pst-fractal.doc.r64714.tar.xz 2022/10/16 | 21740 | macros/latex/contrib/huaz/huaz.tex 2022/10/16 | 2173 | macros/eplain/doc/demo/lscommnt.tex 2022/10/16 | 2168 | systems/texlive/tlnet/archive/iexec.r64707.tar.xz 2022/10/16 | 20294 | macros/latex/contrib/huaz/huaz.sty 2022/10/16 | 1996 | macros/latex/contrib/frenchmath/frenchmath.ins -2022/10/16 | 1984 | systems/texlive/tlnet/archive/collection-fontsextra.r64712.tar.xz 2022/10/16 | 1976784 | systems/texlive/tlnet/archive/simpleicons.doc.r64711.tar.xz 2022/10/16 | 187986 | macros/eplain/source/xeplain.tex 2022/10/16 | 186 | macros/eplain/tex/eplain.aux @@ -1377,7 +1791,6 @@ 2022/10/12 | 9601 | macros/latex/contrib/koma-script/MANIFEST.md 2022/10/12 | 9589 | macros/latex/contrib/koma-script/doc/common-dictum-en.tex 2022/10/12 | 95730 | macros/latex/contrib/koma-script/doc/scrbase-de.tex -2022/10/12 | 944748 | systems/texlive/tlnet/archive/tex4ht.r64682.tar.xz 2022/10/12 | 94362 | macros/latex/contrib/koma-script/scrlayer-scrpage.dtx 2022/10/12 | 9387 | macros/latex/contrib/koma-script/doc/common-fontsize-de.tex 2022/10/12 | 93786 | macros/latex/contrib/koma-script/doc/scrlayer-de.tex @@ -1608,14 +2021,12 @@ 2022/10/12 | 1371 | macros/latex/contrib/koma-script/doc/scrguide-de.tex 2022/10/12 | 13715 | macros/latex/contrib/koma-script/doc/scrwfile-de.tex 2022/10/12 | 13641706 | macros/latex/contrib/profcollege.zip -2022/10/12 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64682.tar.xz 2022/10/12 | 135452 | macros/latex/contrib/koma-script/doc/scrlayer-notecolumn-example-en.pdf 2022/10/12 | 13393 | macros/latex/contrib/koma-script/doc/scrlttr2-examples.dtx 2022/10/12 | 13221 | macros/latex/contrib/koma-script/scrdoc.cls 2022/10/12 | 13210 | macros/latex/contrib/koma-script/doc/scrdate-en.tex 2022/10/12 | 13094 | macros/latex/contrib/koma-script/doc/scrdate-de.tex 2022/10/12 | 129092 | macros/latex/contrib/koma-script/doc/tocbasic-en.tex -2022/10/12 | 1269348 | systems/texlive/tlnet/archive/tex4ht.source.r64682.tar.xz 2022/10/12 | 12457 | macros/latex/contrib/koma-script/doc/scrwfile-en.tex 2022/10/12 | 12409 | macros/latex/contrib/koma-script/scrkernel-pseudolengths.dtx 2022/10/12 | 12139 | macros/latex/contrib/koma-script/doc/common-parmarkup-de.tex @@ -1632,30 +2043,3 @@ 2022/10/12 | 101157 | macros/latex/contrib/koma-script/doc/scrbookreportarticle-experts-de.tex 2022/10/12 | 101021 | macros/latex/contrib/koma-script/doc/typearea-de.tex 2022/10/12 | 10005 | macros/latex/contrib/koma-script/scrlfile.dtx -2022/10/11 | 87 | graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.ist -2022/10/11 | 698872 | systems/texlive/tlnet/archive/japanese-mathformulas.doc.r64678.tar.xz -2022/10/11 | 6329162 | graphics/pgf/contrib/pgf-periodictable.zip -2022/10/11 | 489892 | systems/texlive/tlnet/archive/tikz-ext.doc.r64670.tar.xz -2022/10/11 | 448 | systems/texlive/tlnet/archive/mcf2graph.r64671.tar.xz -2022/10/11 | 44332 | systems/texlive/tlnet/archive/exam-n.source.r64674.tar.xz -2022/10/11 | 429124 | systems/texlive/tlnet/archive/exam-n.doc.r64674.tar.xz -2022/10/11 | 38588 | systems/texlive/tlnet/archive/standalone.source.r64677.tar.xz -2022/10/11 | 377577 | macros/texinfo/latest/texinfo.tex -2022/10/11 | 3748 | systems/texlive/tlnet/archive/currfile.r64673.tar.xz -2022/10/11 | 35388 | systems/texlive/tlnet/archive/pdfpages.source.r64676.tar.xz -2022/10/11 | 322700 | systems/texlive/tlnet/archive/pdfpages.doc.r64676.tar.xz -2022/10/11 | 278396 | systems/texlive/tlnet/archive/standalone.doc.r64677.tar.xz -2022/10/11 | 27330 | support/TeX4ht/source/Makefile -2022/10/11 | 22376 | systems/texlive/tlnet/archive/tikz-ext.r64670.tar.xz -2022/10/11 | 22132 | systems/texlive/tlnet/archive/japanese-mathformulas.r64678.tar.xz -2022/10/11 | 203664 | support/TeX4ht/source/ChangeLog -2022/10/11 | 185497 | graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty -2022/10/11 | 180748 | systems/texlive/tlnet/archive/currfile.doc.r64673.tar.xz -2022/10/11 | 1716 | systems/texlive/tlnet/archive/centeredline.doc.r64672.tar.xz -2022/10/11 | 14112 | systems/texlive/tlnet/archive/exam-n.r64674.tar.xz -2022/10/11 | 14064 | systems/texlive/tlnet/archive/pdfpages.r64676.tar.xz -2022/10/11 | 11904 | systems/texlive/tlnet/archive/standalone.r64677.tar.xz -2022/10/11 | 11756 | systems/texlive/tlnet/archive/currfile.source.r64673.tar.xz -2022/10/11 | 1146 | graphics/pgf/contrib/pgf-periodictable/README -2022/10/11 | 1053472 | systems/texlive/tlnet/archive/mcf2graph.doc.r64671.tar.xz -2022/10/11 | 1024 | systems/texlive/tlnet/archive/centeredline.r64672.tar.xz diff --git a/biblio/ctan-bibdata/biblatex-ctan/ctan.bbx b/biblio/ctan-bibdata/biblatex-ctan/ctan.bbx index ed1a53070d..e7d6b6ca86 100644 --- a/biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +++ b/biblio/ctan-bibdata/biblatex-ctan/ctan.bbx @@ -1,17 +1,19 @@ -\ProvidesFile{ctan.bbx}[2022/10/08 v0.01] +\ProvidesFile{ctan.bbx}[2022/10/18 v0.01] \RequireBibliographyStyle{authortitle} -\DeclareDatamodelFields[type=field,datatype=literal]{pkgurl} +\DeclareDatamodelFields[type=field,datatype=literal]{mirror} \DeclareDatamodelFields[type=field,datatype=literal]{license} +\DeclareDatamodelFields[type=field,datatype=literal]{label} -\DeclareFieldFormat{pkgurl}{\textsc{pkg-url}: \url{#1}} +\DeclareFieldFormat{mirror}{\textsc{Mirror}: \url{#1}} \DeclareFieldFormat{license}{\textsc{License}: #1} +\DeclareFieldFormat{label}{#1} -\newbibmacro*{pkgurl}{% - \iffieldundef{pkgurl}% +\newbibmacro*{mirror}{% + \iffieldundef{mirror}% {} - {\printfield{pkgurl}}} + {\printfield{mirror}}} \newbibmacro*{license}{% \iffieldundef{license}% @@ -43,7 +45,7 @@ \newunit \usebibmacro{license}% \newunit - \printfield{note}% + \printfield{annotation}% \newunit\newblock \printlist{organization}% \newunit\newblock @@ -58,9 +60,12 @@ \newline \usebibmacro{url}% \newline - \usebibmacro{pkgurl}% + \usebibmacro{mirror}% % \usebibmacro{pageref}% % \usebibmacro{finentry} +%%%% the \label is only for the documenation ctan.pdf! + \phantomsection\label{\thefield{entrykey}}% +%%% } \endinput diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib index 887ba213b8..b78dc5ce67 100644 --- a/biblio/ctan-bibdata/ctan.bib +++ b/biblio/ctan-bibdata/ctan.bib @@ -1,7 +1,7 @@ %% bib file of all CTAN packages %% (C) Herbert Voß %% -%% created at 18-10-2022, 02:00:35 +%% created at 19-10-2022, 02:01:17 %% %% This file is provided under the terms of the LPPL v1.3 or @@ -118,7 +118,7 @@ @manual{ctan-aalok, title = {The \texttt{Aalok} package}, - subtitle = {LaTeX class file for the Marathi journal ‘Aalok’}, + subtitle = {\LaTeX{} class file for the Marathi journal ‘Aalok’}, author = {{Unknown}}, date = {2022-01-21}, version = {0.6}, @@ -222,7 +222,7 @@ @manual{ctan-abntexto, title = {The \texttt{abntexto} package}, - subtitle = {LaTeX class for formatting academic papers in ABNT standards}, + subtitle = {\LaTeX{} class for formatting academic papers in ABNT standards}, author = {Elayson Abreu}, date = {2022-10-13}, version = {1.2.1-alpha}, @@ -682,7 +682,7 @@ @manual{ctan-acs, title = {The \texttt{acs} package}, - subtitle = {LaTeX 2.09 support for Advances in Control Systems}, + subtitle = {\LaTeX{} 2.09 support for Advances in Control Systems}, author = {{Unknown}}, date = {2016-06-24}, version = {}, @@ -833,7 +833,7 @@ @manual{ctan-adforn, title = {The \texttt{adforn} package}, - subtitle = {OrnementsADF font with \TeX{}/LaTeX support}, + subtitle = {OrnementsADF font with \TeX{}/\LaTeX{} support}, author = {Clea F. Rees}, date = {2020-08-29}, version = {1.1b}, @@ -844,7 +844,7 @@ @manual{ctan-adfsymbols, title = {The \texttt{adfsymbols} package}, - subtitle = {SymbolsADF with \TeX{}/LaTeX support}, + subtitle = {SymbolsADF with \TeX{}/\LaTeX{} support}, author = {Clea F. Rees}, date = {2020-08-29}, version = {1.2b}, @@ -1215,7 +1215,7 @@ @manual{ctan-afterpage, title = {The \texttt{afterpage} package}, subtitle = {Execute command after the next page break}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.08}, license = {lppl1.3c}, @@ -1344,7 +1344,7 @@ @manual{ctan-albatross, title = {The \texttt{albatross} package}, subtitle = {Find fonts that contain a given glyph}, - author = {{Island of TeX}}, + author = {{Island of \TeX{}}}, date = {2021-11-27}, version = {0.4.0}, license = {bsd3}, @@ -1368,7 +1368,7 @@ @manual{ctan-aleph, title = {The \texttt{aleph} package}, subtitle = {Extended \TeX{}}, - author = {Giuseppe Bilotta and {The TeX Live Team}}, + author = {Giuseppe Bilotta and {The \TeX{} Live Team}}, date = {2020-08-30}, license = {gpl}, url = {https://ctan.org/pkg/aleph}, @@ -1401,7 +1401,7 @@ @manual{ctan-alg, title = {The \texttt{alg} package}, - subtitle = {LaTeX environments for typesetting algorithms}, + subtitle = {\LaTeX{} environments for typesetting algorithms}, author = {Staffan Ulfberg}, date = {2016-06-24}, version = {}, @@ -1558,7 +1558,7 @@ @manual{ctan-alltt, title = {The \texttt{alltt} package}, subtitle = {Everything in tt font, but obey commands and line endings}, - author = {Leslie Lamport and Johannes L. Braams and {The LaTeX Project Team}}, + author = {Leslie Lamport and Johannes L. Braams and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.0g}, license = {lppl1.3c}, @@ -1718,7 +1718,7 @@ multiple choices questionnaires in a table with two columns. The aim is to provide some useful macros to build QCM in tables. These macros may be used by only \LaTeX{} \TeX{} users. The package  works with utf8, pdfLaTeX, - LuaLaTeX and \XeLaTeX{} (with some languages). The documentation is in English.}, + Lua\LaTeX{} and \XeLaTeX{} (with some languages). The documentation is in English.}, } @manual{ctan-altfont, @@ -1866,7 +1866,7 @@ @manual{ctan-amsart, title = {The \texttt{amsart} package}, - subtitle = {LaTeX document class for AMS math journal articles}, + subtitle = {\LaTeX{} document class for AMS math journal articles}, author = {{The American Mathematical Society}}, date = {2020-06-01}, version = {2.20.6}, @@ -1877,7 +1877,7 @@ @manual{ctan-amsbook, title = {The \texttt{amsbook} package}, - subtitle = {LaTeX document class for AMS books}, + subtitle = {\LaTeX{} document class for AMS books}, author = {{The American Mathematical Society}}, date = {2020-06-01}, version = {2.20.6}, @@ -1898,7 +1898,7 @@ @manual{ctan-amsbsy, title = {The \texttt{amsbsy} package}, subtitle = {Produce bold math symbols (AMS-LaTeX)}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.2d}, license = {lppl1.3c}, @@ -1908,8 +1908,8 @@ @manual{ctan-amscd, title = {The \texttt{amscd} package}, - subtitle = {AMS-LaTeX commutative diagrams}, - author = {{The LaTeX Project Team}}, + subtitle = {AMS-\LaTeX{} commutative diagrams}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.1}, license = {lppl1.3c}, @@ -1987,7 +1987,7 @@ @manual{ctan-amslatexdoc-vietnamese, title = {The \texttt{amslatexdoc-vietnamese} package}, - subtitle = {Vietnamese translation of AMSLaTeX documentation}, + subtitle = {Vietnamese translation of AMS\LaTeX{} documentation}, author = {Ky-Anh Huynh}, date = {2020-03-19}, version = {2.0}, @@ -2025,7 +2025,7 @@ @manual{ctan-amsmath, title = {The \texttt{amsmath} package}, subtitle = {AMS mathematical facilities for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {2.17n}, license = {lppl1.3c}, @@ -2047,7 +2047,7 @@ @manual{ctan-amsopn, title = {The \texttt{amsopn} package}, subtitle = {Typeset mathematical operator names}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {2.04}, license = {lppl1.3c}, @@ -2095,7 +2095,7 @@ @manual{ctan-amsproc, title = {The \texttt{amsproc} package}, - subtitle = {LaTeX document class for AMS conference proceedings}, + subtitle = {\LaTeX{} document class for AMS conference proceedings}, author = {{The American Mathematical Society}}, date = {2020-06-01}, version = {2.20.6}, @@ -2129,7 +2129,7 @@ @manual{ctan-amstext, title = {The \texttt{amstext} package}, subtitle = {Typeset text fragments in mathematics}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-11-12}, version = {2.01}, license = {lppl1.3c}, @@ -2242,7 +2242,7 @@ annotation = {This package provides commands that make it easy to highlight terms in equations and add annotation labels using . - It should work with pdfLaTeX as well as LuaLaTeX.}, + It should work with pdf\LaTeX{} as well as LuaLaTeX.}, } @manual{ctan-annotate, @@ -2445,7 +2445,7 @@ @manual{ctan-anufinalexam, title = {The \texttt{ANUfinalexam} package}, - subtitle = {LaTeX document shell for ANU final exam}, + subtitle = {\LaTeX{} document shell for ANU final exam}, author = {Timothy Kam}, date = {2018-01-06}, license = {gpl}, @@ -3142,7 +3142,7 @@ @manual{ctan-array, title = {The \texttt{array} package}, subtitle = {Extending the array and tabular environments}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {2.5f}, license = {lppl1.3}, @@ -3257,7 +3257,7 @@ @manual{ctan-article, title = {The \texttt{article} package}, subtitle = {Default class for composing an article}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.4n}, license = {lppl1.3c}, @@ -3267,7 +3267,7 @@ @manual{ctan-articleingud, title = {The \texttt{articleingud} package}, - subtitle = {LaTeX class for articles published in INGENIERIA review}, + subtitle = {\LaTeX{} class for articles published in INGENIERIA review}, author = {Omar Salazar Morales}, date = {2016-06-24}, version = {0.3}, @@ -3424,7 +3424,7 @@ @manual{ctan-ascmac, title = {The \texttt{ascmac} package}, subtitle = {Boxes and picture macros with Japanese vertical writing support}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2020-01-15}, version = {2.1}, license = {bsd3}, @@ -3525,7 +3525,7 @@ @manual{ctan-association-matrix, title = {The \texttt{association-matrix} package}, - subtitle = {LaTeX support for creating association matrices}, + subtitle = {\LaTeX{} support for creating association matrices}, author = {{Unknown}}, date = {2021-08-26}, version = {1.0}, @@ -3928,7 +3928,7 @@ @manual{ctan-auto-pst-pdf-lua, title = {The \texttt{auto-pst-pdf-lua} package}, - subtitle = {Using LuaLaTeX together with PostScript code}, + subtitle = {Using Lua\LaTeX{} together with PostScript code}, author = {Herbert Voß}, date = {2018-12-09}, version = {0.03}, @@ -3950,7 +3950,7 @@ @manual{ctan-auto1, title = {The \texttt{auto1} package}, - subtitle = {LaTeX support for Underware Auto 1 fonts}, + subtitle = {\LaTeX{} support for Underware Auto 1 fonts}, author = {Nico Schlömer}, date = {2018-01-06}, version = {0.2}, @@ -4087,7 +4087,7 @@ mirror = {https://mirror.ctan.org/macros/latex/contrib/autopdf}, url = {https://ctan.org/pkg/autopdf}, annotation = {The package facilitates the on-the-fly conversion of various - graphics formats to formats supported by pdfLaTeX (e.g. PDF). It + graphics formats to formats supported by pdf\LaTeX{} (e.g. PDF). It uses a range of external programs, and therefore requires that the \LaTeX{} run starts with enabled.}, } @@ -4095,7 +4095,7 @@ @manual{ctan-autopict, title = {The \texttt{autopict} package}, subtitle = {The \LaTeX{} picture mode, for use with Plain \TeX{}}, - author = {{The LaTeX Project Team} and David Carlisle}, + author = {{The \LaTeX{} Project Team} and David Carlisle}, date = {2021-11-15}, version = {1.1k}, license = {lppl}, @@ -4253,7 +4253,7 @@ @manual{ctan-b1encoding, title = {The \texttt{b1encoding} package}, - subtitle = {LaTeX encoding tools for Bookhands fonts}, + subtitle = {\LaTeX{} encoding tools for Bookhands fonts}, author = {Peter R. Wilson}, date = {2016-06-24}, version = {1.0}, @@ -4663,7 +4663,7 @@ @manual{ctan-babel-japanese, title = {The \texttt{babel-japanese} package}, subtitle = {Babel support for Japanese}, - author = {{Ing} and {Japanese TeX Development Community}}, + author = {{Ing} and {Japanese \TeX{} Development Community}}, date = {2021-02-13}, version = {}, license = {lppl1.3}, @@ -4801,7 +4801,7 @@ url = {https://ctan.org/pkg/babel-portuges}, annotation = {The package provides the language definition file for support of Portuguese and Brazilian Portuguese in . Some shortcuts are defined, as well - as translations to Portuguese of standard “LaTeX namesâ€.}, + as translations to Portuguese of standard “\LaTeX{} namesâ€.}, } @manual{ctan-babel-romanian, @@ -4815,7 +4815,7 @@ url = {https://ctan.org/pkg/babel-romanian}, annotation = {The package provides the language definition file for support of Romanian in . Translations to - Romanian of standard “LaTeX names†are provided.}, + Romanian of standard “\LaTeX{} names†are provided.}, } @manual{ctan-babel-romansh, @@ -4866,7 +4866,7 @@ annotation = {The package provides the language definition file for support of Gaidhlig (Scottish Gaelic) in . Some shortcuts are defined, as well as translations of standard - “LaTeX namesâ€.}, + “\LaTeX{} namesâ€.}, } @manual{ctan-babel-serbian, @@ -4921,7 +4921,7 @@ annotation = {The package provides the language definition file for support of Slovenian in . Several shortcuts are defined, as well as translations to Slovenian of standard - “LaTeX namesâ€.}, + “\LaTeX{} namesâ€.}, } @manual{ctan-babel-sorbian, @@ -4936,7 +4936,7 @@ annotation = {The package provides language definitions file for support of both Upper and Lower Sorbian, in . Some shortcuts are defined, as well as translations to the relevant - language of standard “LaTeX namesâ€.}, + language of standard “\LaTeX{} namesâ€.}, } @manual{ctan-babel-spanglish, @@ -5387,7 +5387,7 @@ @manual{ctan-bardiag, title = {The \texttt{bardiag} package}, - subtitle = {LaTeX package for drawing bar diagrams}, + subtitle = {\LaTeX{} package for drawing bar diagrams}, author = {R. Stepanyan}, date = {2018-09-15}, version = {0.4a}, @@ -5515,7 +5515,7 @@ @manual{ctan-baskervaldadf, title = {The \texttt{baskervaldadf} package}, - subtitle = {Baskervald ADF fonts collection with \TeX{}/LaTeX support}, + subtitle = {Baskervald ADF fonts collection with \TeX{}/\LaTeX{} support}, author = {Clea F. Rees}, date = {2017-04-18}, version = {1.016}, @@ -5670,7 +5670,7 @@ @manual{ctan-bbm-macros, title = {The \texttt{bbm-macros} package}, - subtitle = {LaTeX support for "blackboard-style" cm fonts}, + subtitle = {\LaTeX{} support for "blackboard-style" cm fonts}, author = {Torsten Hilbrich}, date = {2016-06-24}, license = {lppl}, @@ -6248,7 +6248,7 @@ @manual{ctan-begingreek, title = {The \texttt{begingreek} package}, - subtitle = {Greek environment to be used with pdfLaTeX only}, + subtitle = {Greek environment to be used with pdf\LaTeX{} only}, author = {Claudio Beccari}, date = {2022-05-16}, version = {1.7}, @@ -6256,7 +6256,7 @@ mirror = {https://mirror.ctan.org/macros/latex/contrib/begingreek}, url = {https://ctan.org/pkg/begingreek}, annotation = {This simple package defines a greek environment to be used with - pdfLaTeX only, that accepts an optional Greek font family name + pdf\LaTeX{} only, that accepts an optional Greek font family name to type its contents with. A similar command does a similar action for shorter texts.}, } @@ -6359,7 +6359,7 @@ @manual{ctan-berenisadf, title = {The \texttt{berenisadf} package}, - subtitle = {Berenis ADF fonts and \TeX{}/LaTeX support}, + subtitle = {Berenis ADF fonts and \TeX{}/\LaTeX{} support}, author = {Clea F. Rees and Hirwen Harendal}, date = {2016-06-24}, version = {1.004}, @@ -6805,7 +6805,7 @@ @manual{ctan-biber-ms, title = {The \texttt{biber-ms} package}, - subtitle = {A BibTeX replacement for users of BibLaTeX (multiscript version)}, + subtitle = {A BibTeX replacement for users of Bib\LaTeX{} (multiscript version)}, author = {Philip Kime and François Charette}, date = {2022-08-24}, version = {4.0}, @@ -6967,7 +6967,7 @@ @manual{ctan-biblatex-abnt, title = {The \texttt{biblatex-abnt} package}, - subtitle = {BibLaTeX style for Brazil's ABNT rules}, + subtitle = {Bib\LaTeX{} style for Brazil's ABNT rules}, author = {Daniel B. Marques}, date = {2018-11-17}, version = {3.4}, @@ -6980,7 +6980,7 @@ @manual{ctan-biblatex-ajc2020unofficial, title = {The \texttt{biblatex-ajc2020unofficial} package}, - subtitle = {BibLaTeX style for the Australasian Journal of Combinatorics}, + subtitle = {Bib\LaTeX{} style for the Australasian Journal of Combinatorics}, author = {Nikolai Avdeev}, date = {2020-04-11}, version = {0.2.0}, @@ -7006,7 +7006,7 @@ @manual{ctan-biblatex-apa, title = {The \texttt{biblatex-apa} package}, - subtitle = {BibLaTeX citation and reference style for APA}, + subtitle = {Bib\LaTeX{} citation and reference style for APA}, author = {Philip Kime}, date = {2022-06-23}, version = {9.16}, @@ -7017,7 +7017,7 @@ @manual{ctan-biblatex-apa6, title = {The \texttt{biblatex-apa6} package}, - subtitle = {BibLaTeX citation and reference style for APA 6th Edition}, + subtitle = {Bib\LaTeX{} citation and reference style for APA 6th Edition}, author = {Philip Kime}, date = {2020-08-29}, version = {8.5}, @@ -7028,7 +7028,7 @@ @manual{ctan-biblatex-archaeology, title = {The \texttt{biblatex-archaeology} package}, - subtitle = {A collection of BibLaTeX styles for German prehistory}, + subtitle = {A collection of Bib\LaTeX{} styles for German prehistory}, author = {Ingram Braun}, date = {2019-12-31}, version = {2.2}, @@ -7053,7 +7053,7 @@ @manual{ctan-biblatex-arthistory-bonn, title = {The \texttt{biblatex-arthistory-bonn} package}, - subtitle = {BibLaTeX citation style covers the citation and bibliography guidelines for art historians}, + subtitle = {Bib\LaTeX{} citation style covers the citation and bibliography guidelines for art historians}, author = {Lukas C. Bossert and Thorsten Kemper}, date = {2018-02-13}, version = {1.2}, @@ -7084,7 +7084,7 @@ recurring author/year in multiple-reference-citations) and authoryear-ibid (replacement of repeated citations by the abbreviation ibidem). The implementation relies heavily on - unmodified BibLaTeX macros, and no attempt has been made to + unmodified Bib\LaTeX{} macros, and no attempt has been made to add further features not present in core BibLaTeX.}, } @@ -7097,7 +7097,7 @@ license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-bath}, url = {https://ctan.org/pkg/biblatex-bath}, - annotation = {This package provides a BibLaTeX style to format reference + annotation = {This package provides a Bib\LaTeX{} style to format reference lists in the recommended by the University of Bath Library.}, } @@ -7121,7 +7121,7 @@ license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-bookinother}, url = {https://ctan.org/pkg/biblatex-bookinother}, - annotation = {This package provides new BibLaTeX entry types and fields + annotation = {This package provides new Bib\LaTeX{} entry types and fields for book edited in other types, like for instance . It offers more types than the older package @@ -7130,7 +7130,7 @@ @manual{ctan-biblatex-bwl, title = {The \texttt{biblatex-bwl} package}, - subtitle = {BibLaTeX citations for FU Berlin}, + subtitle = {Bib\LaTeX{} citations for FU Berlin}, author = {Herbert Voß}, date = {2016-06-24}, version = {0.02}, @@ -7173,7 +7173,7 @@ @manual{ctan-biblatex-chem, title = {The \texttt{biblatex-chem} package}, - subtitle = {A set of BibLaTeX implementations of chemistry-related bibliography styles}, + subtitle = {A set of Bib\LaTeX{} implementations of chemistry-related bibliography styles}, author = {Joseph Wright}, date = {2021-02-24}, version = {1.1z}, @@ -7232,7 +7232,7 @@ @manual{ctan-biblatex-enc, title = {The \texttt{biblatex-enc} package}, - subtitle = {BibLaTeX style for the École nationale des chartes (Paris)}, + subtitle = {Bib\LaTeX{} style for the École nationale des chartes (Paris)}, author = {Jean-Baptiste Camps}, date = {2017-06-19}, version = {1.0}, @@ -7243,7 +7243,7 @@ @manual{ctan-biblatex-ext, title = {The \texttt{biblatex-ext} package}, - subtitle = {Extended BibLaTeX standard styles}, + subtitle = {Extended Bib\LaTeX{} standard styles}, author = {Moritz Wemheuer}, date = {2022-06-18}, version = {0.16}, @@ -7254,7 +7254,7 @@ @manual{ctan-biblatex-fiwi, title = {The \texttt{biblatex-fiwi} package}, - subtitle = {BibLaTeX styles for use in German humanities}, + subtitle = {Bib\LaTeX{} styles for use in German humanities}, author = {Simon Spiegel}, date = {2017-11-21}, version = {1.7}, @@ -7265,14 +7265,14 @@ (version 3.5 is required, currently). It was designed for citations in German Humanities, especially film studies, and offers some features that are not - provided by the standard BibLaTeX styles. The style is highly + provided by the standard Bib\LaTeX{} styles. The style is highly optimized for documents written in German, and the main documentation is only available in German.}, } @manual{ctan-biblatex-gb7714-2015, title = {The \texttt{biblatex-gb7714-2015} package}, - subtitle = {A BibLaTeX implementation of the GBT7714-2015 bibliography style for Chinese users}, + subtitle = {A Bib\LaTeX{} implementation of the GBT7714-2015 bibliography style for Chinese users}, author = {Hu Zhenzhen}, date = {2022-08-29}, version = {1.1j}, @@ -7294,7 +7294,7 @@ @manual{ctan-biblatex-gost, title = {The \texttt{biblatex-gost} package}, - subtitle = {BibLaTeX support for GOST standard bibliographies}, + subtitle = {Bib\LaTeX{} support for GOST standard bibliographies}, author = {Oleg Domanov}, date = {2021-05-08}, version = {1.22}, @@ -7307,7 +7307,7 @@ @manual{ctan-biblatex-historian, title = {The \texttt{biblatex-historian} package}, - subtitle = {A BibLaTeX style}, + subtitle = {A Bib\LaTeX{} style}, author = {Sander Gliboff}, date = {2016-06-24}, version = {0.4}, @@ -7329,19 +7329,19 @@ @manual{ctan-biblatex-ijsra, title = {The \texttt{biblatex-ijsra} package}, - subtitle = {BibLaTeX style for the International Journal of Student Research in Archaeology}, + subtitle = {Bib\LaTeX{} style for the International Journal of Student Research in Archaeology}, author = {Lukas C. Bossert}, date = {2016-07-07}, version = {0.1}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-ijsra}, url = {https://ctan.org/pkg/biblatex-ijsra}, - annotation = {BibLaTeX style used for the journal .}, + annotation = {Bib\LaTeX{} style used for the journal .}, } @manual{ctan-biblatex-iso690, title = {The \texttt{biblatex-iso690} package}, - subtitle = {BibLaTeX style for ISO 690 standard}, + subtitle = {Bib\LaTeX{} style for ISO 690 standard}, author = {Michal Hoftich}, date = {2022-03-21}, version = {0.4.1}, @@ -7351,14 +7351,14 @@ annotation = {The package provides a bibliography and citation style which conforms to the latest revision of the international standard ISO 690:2010. - The implementation follows BibLaTeX conventions and requires + The implementation follows Bib\LaTeX{} conventions and requires ≥ 3.4 and ≥ 2.5.}, } @manual{ctan-biblatex-jura, title = {The \texttt{biblatex-jura} package}, - subtitle = {BibLaTeX stylefiles for German legal literature}, + subtitle = {Bib\LaTeX{} stylefiles for German legal literature}, author = {Ben E. Hard}, date = {2016-06-24}, version = {0.1.1}, @@ -7383,7 +7383,7 @@ @manual{ctan-biblatex-juradiss, title = {The \texttt{biblatex-juradiss} package}, - subtitle = {BibLaTeX stylefiles for German law theses}, + subtitle = {Bib\LaTeX{} stylefiles for German law theses}, author = {Tobias Schwan and Herbert Voß}, date = {2020-10-01}, version = {0.23}, @@ -7414,14 +7414,14 @@ @manual{ctan-biblatex-lncs, title = {The \texttt{biblatex-lncs} package}, - subtitle = {BibLaTeX style for Springer Lecture Notes in Computer Science}, + subtitle = {Bib\LaTeX{} style for Springer Lecture Notes in Computer Science}, author = {Merlin Göttlinger}, date = {2022-03-26}, version = {0.5}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-lncs}, url = {https://ctan.org/pkg/biblatex-lncs}, - annotation = {This is a BibLaTeX style for + annotation = {This is a Bib\LaTeX{} style for Springer Lecture Notes in Computer Science (LNCS). It extends the standard model by an entry.}, @@ -7440,7 +7440,7 @@ @manual{ctan-biblatex-luh-ipw, title = {The \texttt{biblatex-luh-ipw} package}, - subtitle = {BibLaTeX styles for social sciences}, + subtitle = {Bib\LaTeX{} styles for social sciences}, author = {Oliver Heins}, date = {2016-06-24}, version = {0.3}, @@ -7478,7 +7478,7 @@ @manual{ctan-biblatex-morenames, title = {The \texttt{biblatex-morenames} package}, - subtitle = {New names for standard BibLaTeX entry type}, + subtitle = {New names for standard Bib\LaTeX{} entry type}, author = {Maïeul Rouquette}, date = {2017-04-18}, version = {1.3.1}, @@ -7514,7 +7514,7 @@ @manual{ctan-biblatex-musuos, title = {The \texttt{biblatex-musuos} package}, - subtitle = {A BibLaTeX style for citations in musuos.cls}, + subtitle = {A Bib\LaTeX{} style for citations in musuos.cls}, author = {Tobias Weh}, date = {2016-06-24}, version = {1.0}, @@ -7528,7 +7528,7 @@ @manual{ctan-biblatex-nature, title = {The \texttt{biblatex-nature} package}, - subtitle = {BibLaTeX support for Nature}, + subtitle = {Bib\LaTeX{} support for Nature}, author = {Joseph Wright}, date = {2020-12-30}, version = {1.3d}, @@ -7542,7 +7542,7 @@ @manual{ctan-biblatex-nejm, title = {The \texttt{biblatex-nejm} package}, - subtitle = {BibLaTeX style for the New England Journal of Medicine (NEJM)}, + subtitle = {Bib\LaTeX{} style for the New England Journal of Medicine (NEJM)}, author = {Dilum Aluthge and Marco Daniel}, date = {2019-01-22}, version = {0.5.0}, @@ -7577,7 +7577,7 @@ @manual{ctan-biblatex-oxref, title = {The \texttt{biblatex-oxref} package}, - subtitle = {BibLaTeX styles inspired by the Oxford Guide to Style}, + subtitle = {Bib\LaTeX{} styles inspired by the Oxford Guide to Style}, author = {Alex Ball}, date = {2021-01-19}, version = {2.2}, @@ -7588,7 +7588,7 @@ @manual{ctan-biblatex-philosophy, title = {The \texttt{biblatex-philosophy} package}, - subtitle = {Styles for using BibLaTeX for work in philosophy}, + subtitle = {Styles for using Bib\LaTeX{} for work in philosophy}, author = {Ivan Valbusa}, date = {2022-09-16}, version = {1.9.8g}, @@ -7599,7 +7599,7 @@ @manual{ctan-biblatex-phys, title = {The \texttt{biblatex-phys} package}, - subtitle = {A BibLaTeX implementation of the AIP and APS bibliography style}, + subtitle = {A Bib\LaTeX{} implementation of the AIP and APS bibliography style}, author = {Joseph Wright}, date = {2020-06-21}, version = {1.1b}, @@ -7610,7 +7610,7 @@ @manual{ctan-biblatex-publist, title = {The \texttt{biblatex-publist} package}, - subtitle = {BibLaTeX bibliography support for publication lists}, + subtitle = {Bib\LaTeX{} bibliography support for publication lists}, author = {Jürgen Spitzmüller}, date = {2022-10-03}, version = {1.27}, @@ -7654,7 +7654,7 @@ @manual{ctan-biblatex-science, title = {The \texttt{biblatex-science} package}, - subtitle = {BibLaTeX implementation of the Science bibliography style}, + subtitle = {Bib\LaTeX{} implementation of the Science bibliography style}, author = {Joseph Wright}, date = {2018-10-19}, version = {1.2}, @@ -7690,7 +7690,7 @@ @manual{ctan-biblatex-software, title = {The \texttt{biblatex-software} package}, - subtitle = {BibLaTeX stylefiles for software products}, + subtitle = {Bib\LaTeX{} stylefiles for software products}, author = {Roberto Di Cosmo}, date = {2022-08-02}, version = {1.2-5}, @@ -7721,7 +7721,7 @@ @manual{ctan-biblatex-spbasic, title = {The \texttt{biblatex-spbasic} package}, - subtitle = {A BibLaTeX style emulating Springer’s old spbasic.bst}, + subtitle = {A Bib\LaTeX{} style emulating Springer’s old spbasic.bst}, author = {Herbert Voß}, date = {2021-12-29}, version = {0.04}, @@ -7773,7 +7773,7 @@ @manual{ctan-biblatex-true-citepages-omit, title = {The \texttt{biblatex-true-citepages-omit} package}, - subtitle = {Correction of some limitation of the citepages=omit option of BibLaTeX styles}, + subtitle = {Correction of some limitation of the citepages=omit option of Bib\LaTeX{} styles}, author = {Maïeul Rouquette}, date = {2017-06-20}, version = {2.0.0}, @@ -7784,14 +7784,14 @@ @manual{ctan-biblatex-unified, title = {The \texttt{biblatex-unified} package}, - subtitle = {BibLaTeX implementation of the unified stylesheet for linguistics journals}, + subtitle = {Bib\LaTeX{} implementation of the unified stylesheet for linguistics journals}, author = {Kai von Fintel}, date = {2022-02-05}, version = {1.10}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-unified}, url = {https://ctan.org/pkg/biblatex-unified}, - annotation = {BibLaTeX-unified is an opinionated BibLaTeX implementation of the}, + annotation = {BibLaTeX-unified is an opinionated Bib\LaTeX{} implementation of the}, } @manual{ctan-biblatex-vancouver, @@ -8085,7 +8085,7 @@ @manual{ctan-bibtex8, title = {The \texttt{bibtex8} package}, subtitle = {A fully 8-bit adaptation of BibTeX 0.99}, - author = {Niel Kempson and {The TeX Live Team}}, + author = {Niel Kempson and {The \TeX{} Live Team}}, date = {2022-09-20}, version = {3.72}, license = {gpl}, @@ -8118,7 +8118,7 @@ @manual{ctan-bibtexu, title = {The \texttt{bibtexu} package}, subtitle = {An adaptation of BibTeX 0.99 that supports Unicode via ICU}, - author = {Yannis Haralambous and {Japanese TeX Development Community} and {The TeX Live Team}}, + author = {Yannis Haralambous and {Japanese \TeX{} Development Community} and {The \TeX{} Live Team}}, date = {2022-10-08}, version = {3.72}, license = {gpl}, @@ -8553,7 +8553,7 @@ @manual{ctan-biolinum-type1, title = {The \texttt{biolinum-type1} package}, - subtitle = {(pdf)LaTeX support for the Biolinum family of fonts}, + subtitle = {(pdf)\LaTeX{} support for the Biolinum family of fonts}, author = {Bob Tennent}, date = {2016-06-24}, version = {5.3.0}, @@ -8903,7 +8903,7 @@ @manual{ctan-bm, title = {The \texttt{bm} package}, subtitle = {Access bold symbols in maths mode}, - author = {David Carlisle and Frank Mittelbach and {The LaTeX Project Team}}, + author = {David Carlisle and Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.2f}, license = {lppl1.3c}, @@ -9159,7 +9159,7 @@ @manual{ctan-book, title = {The \texttt{book} package}, subtitle = {A class for typesetting books}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.4n}, license = {lppl1.3c}, @@ -9202,7 +9202,7 @@ @manual{ctan-bookform, title = {The \texttt{bookform} package}, - subtitle = {LaTeX 2.08 style for MIL STD 490 documents}, + subtitle = {\LaTeX{} 2.08 style for MIL STD 490 documents}, author = {Kent McPherson}, date = {2016-06-24}, version = {}, @@ -9671,7 +9671,7 @@ @manual{ctan-brief-t, title = {The \texttt{brief-t} package}, - subtitle = {LaTeX support for the brief editor}, + subtitle = {\LaTeX{} support for the brief editor}, author = {PL Hedne}, date = {2019-02-03}, version = {}, @@ -9922,7 +9922,7 @@ @manual{ctan-bxcjkjatype, title = {The \texttt{bxcjkjatype} package}, - subtitle = {Typeset Japanese with pdfLaTeX and CJK}, + subtitle = {Typeset Japanese with pdf\LaTeX{} and CJK}, author = {Takayuki Yato}, date = {2019-10-22}, version = {0.3}, @@ -10044,7 +10044,7 @@ annotation = {This package provides an extended version of the Japanese document class collection provided by . - While the original version supports only pLaTeX and upLaTeX, + While the original version supports only p\LaTeX{} and upLaTeX, the extended version also supports pdfLaTeX, \XeLaTeX{} and LuaLaTeX, with the aid of suitable packages that provide capability of Japanese typesetting.}, @@ -10280,7 +10280,7 @@ @manual{ctan-calc, title = {The \texttt{calc} package}, subtitle = {Simple arithmetic in \LaTeX{} commands}, - author = {{The LaTeX Project Team} and Kresten Krab Thorup and Frank Jensen}, + author = {{The \LaTeX{} Project Team} and Kresten Krab Thorup and Frank Jensen}, date = {2021-06-01}, version = {4.3}, license = {lppl1.3c}, @@ -10518,7 +10518,7 @@ @manual{ctan-cantarell, title = {The \texttt{cantarell} package}, - subtitle = {LaTeX support for the Cantarell font family}, + subtitle = {\LaTeX{} support for the Cantarell font family}, author = {Mohamed El Morabity}, date = {2019-06-24}, version = {3.2}, @@ -10692,7 +10692,7 @@ @manual{ctan-cartonaugh, title = {The \texttt{cartonaugh} package}, - subtitle = {A LuaLaTeX package for drawing karnaugh maps with up to 6 variables}, + subtitle = {A Lua\LaTeX{} package for drawing karnaugh maps with up to 6 variables}, author = {Jamal Bouajjaj}, date = {2021-07-17}, version = {1.0}, @@ -11013,7 +11013,7 @@ @manual{ctan-cbfonts-fd, title = {The \texttt{cbfonts-fd} package}, - subtitle = {LaTeX font description files for the CB Greek fonts}, + subtitle = {\LaTeX{} font description files for the CB Greek fonts}, author = {Claudio Beccari}, date = {2019-07-18}, version = {1.2}, @@ -11063,7 +11063,7 @@ license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/contrib/ccfonts}, url = {https://ctan.org/pkg/ccfonts}, - annotation = {LaTeX font definition files for the Concrete fonts and a + annotation = {\LaTeX{} font definition files for the Concrete fonts and a \LaTeX{} package for typesetting documents using Concrete as the default font family. The files support OT1, T1, TS1, and Concrete mathematics including AMS fonts (Ulrik Vieth's @@ -11083,7 +11083,7 @@ @manual{ctan-ccicons, title = {The \texttt{ccicons} package}, - subtitle = {LaTeX support for Creative Commons icons}, + subtitle = {\LaTeX{} support for Creative Commons icons}, author = {Michael Ummels}, date = {2018-01-06}, version = {1.6}, @@ -11353,7 +11353,7 @@ @manual{ctan-cfgguide, title = {The \texttt{cfgguide} package}, subtitle = {Documentation of \LaTeX{} configuration options}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -11362,7 +11362,7 @@ @manual{ctan-cfr-initials, title = {The \texttt{cfr-initials} package}, - subtitle = {LaTeX packages for use of initials}, + subtitle = {\LaTeX{} packages for use of initials}, author = {Clea F. Rees}, date = {2021-08-26}, version = {1.01}, @@ -11584,7 +11584,7 @@ @manual{ctan-checkcites, title = {The \texttt{checkcites} package}, subtitle = {Check citation commands in a document}, - author = {Paulo Roberto Massa Cereda and {Island of TeX} and Enrico Gregorio}, + author = {Paulo Roberto Massa Cereda and {Island of \TeX{}} and Enrico Gregorio}, date = {2022-08-20}, version = {2.6}, license = {lppl1.3}, @@ -11958,7 +11958,7 @@ @manual{ctan-chet, title = {The \texttt{chet} package}, - subtitle = {LaTeX layout inspired by harvmac}, + subtitle = {\LaTeX{} layout inspired by harvmac}, author = {Andreas Stergiou}, date = {2017-08-19}, version = {2.2}, @@ -12185,9 +12185,9 @@ title = {The \texttt{chktex} package}, subtitle = {Check for errors in \LaTeX{} documents}, author = {Jens T. Berger Thielemann and Ivan Andrus}, - date = {2019-01-06}, - version = {1.7.6}, - license = {gpl2}, + date = {2022-10-18}, + version = {1.7.8}, + license = {gpl2+}, mirror = {https://mirror.ctan.org/support/chktex}, url = {https://ctan.org/pkg/chktex}, annotation = {The program reports typographic and other errors in \LaTeX{} @@ -12346,7 +12346,7 @@ @manual{ctan-cinzel, title = {The \texttt{cinzel} package}, - subtitle = {LaTeX support for Cinzel and Cinzel Decorative fonts}, + subtitle = {\LaTeX{} support for Cinzel and Cinzel Decorative fonts}, author = {Bob Tennent}, date = {2022-09-29}, version = {}, @@ -12547,7 +12547,7 @@ @manual{ctan-cje, title = {The \texttt{cje} package}, - subtitle = {LaTeX document class for CJE articles}, + subtitle = {\LaTeX{} document class for CJE articles}, author = {Kim Nesbitt}, date = {2018-02-23}, version = {1.06}, @@ -12660,7 +12660,7 @@ @manual{ctan-classes, title = {The \texttt{classes} package}, subtitle = {The source of \LaTeX{}’s standard classes}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.4n}, license = {lppl1.3c}, @@ -12883,7 +12883,7 @@ @manual{ctan-cloze, title = {The \texttt{cloze} package}, - subtitle = {A LuaLaTeX package for creating cloze texts}, + subtitle = {A Lua\LaTeX{} package for creating cloze texts}, author = {Josef Friedrich}, date = {2020-06-30}, version = {1.6}, @@ -12947,7 +12947,7 @@ @manual{ctan-clsguide, title = {The \texttt{clsguide} package}, subtitle = {Documentation of \LaTeX{} class and package writing}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -13199,7 +13199,7 @@ @manual{ctan-cmcyralt-ltx, title = {The \texttt{cmcyralt-ltx} package}, - subtitle = {LaTeX support for the cmcyralt fonts}, + subtitle = {\LaTeX{} support for the cmcyralt fonts}, author = {Alexander Harin and Vadim V. Zhytnikov}, date = {2016-06-24}, version = {1.0}, @@ -13244,7 +13244,7 @@ @manual{ctan-cmextra-latex, title = {The \texttt{cmextra-latex} package}, subtitle = {Install macros for “standard†fonts not used by \LaTeX{} itself}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/base/cmextra.ins}, @@ -13477,7 +13477,7 @@ @manual{ctan-cnltx, title = {The \texttt{cnltx} package}, - subtitle = {LaTeX tools and documenting facilities}, + subtitle = {\LaTeX{} tools and documenting facilities}, author = {Clemens Niederberger}, date = {2020-05-09}, version = {0.15}, @@ -13589,7 +13589,7 @@ @manual{ctan-codedoc, title = {The \texttt{codedoc} package}, - subtitle = {LaTeX code and documentation in \LaTeX{}-format file}, + subtitle = {\LaTeX{} code and documentation in \LaTeX{}-format file}, author = {Paul Isambert and Yuri Robbers}, date = {2019-07-25}, version = {0.3}, @@ -13774,7 +13774,7 @@ @manual{ctan-color, title = {The \texttt{color} package}, subtitle = {Colour control for \LaTeX{} documents}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.3d}, license = {lppl1.3c}, @@ -14022,7 +14022,7 @@ @manual{ctan-combinedgraphics, title = {The \texttt{combinedgraphics} package}, - subtitle = {Include graphic (EPS or PDF)/LaTeX combinations}, + subtitle = {Include graphic (EPS or PDF)/\LaTeX{} combinations}, author = {Christian Schneider}, date = {2016-06-24}, version = {0.2.2}, @@ -14030,7 +14030,7 @@ mirror = {https://mirror.ctan.org/macros/latex/contrib/combinedgraphics}, url = {https://ctan.org/pkg/combinedgraphics}, annotation = {This package provides a macro () - for the inclusion of combined EPS/LaTeX and PDF/LaTeX graphics (an + for the inclusion of combined EPS/\LaTeX{} and PDF/\LaTeX{} graphics (an export format of , , and maybe other programs). Instead of including the graphics with a simple , @@ -14039,7 +14039,7 @@ @manual{ctan-combofont, title = {The \texttt{combofont} package}, - subtitle = {Add NFSS-declarations of combo fonts to LuaLaTeX documents}, + subtitle = {Add NFSS-declarations of combo fonts to Lua\LaTeX{} documents}, author = {Ulrike Fischer}, date = {2019-06-08}, version = {0.3}, @@ -15183,6 +15183,17 @@ url = {https://ctan.org/pkg/coop-writing}, } +@manual{ctan-cooperhewitt, + title = {The \texttt{cooperhewitt} package}, + subtitle = {LaTeX, pdfLaTeX, \XeLaTeX{} and Lua\LaTeX{} support for the Cooper Hewitt family of sans serif fonts}, + author = {Bob Tennent}, + date = {2022-10-18}, + version = {}, + license = {ofl,lppl}, + mirror = {https://mirror.ctan.org/fonts/cooperhewitt}, + url = {https://ctan.org/pkg/cooperhewitt}, +} + @manual{ctan-coordsys, title = {The \texttt{coordsys} package}, subtitle = {Draw cartesian coordinate systems}, @@ -15479,7 +15490,7 @@ @manual{ctan-covington, title = {The \texttt{covington} package}, - subtitle = {LaTeX macros for Linguistics}, + subtitle = {\LaTeX{} macros for Linguistics}, author = {Jürgen Spitzmüller and Michael Covington and Robin Fairbairns}, date = {2022-08-30}, version = {2.8}, @@ -15548,7 +15559,7 @@ @manual{ctan-cqubeamer, title = {The \texttt{CQUBeamer} package}, - subtitle = {LaTeX Beamer Template for Chongqing University}, + subtitle = {\LaTeX{} Beamer Template for Chongqing University}, author = {Zhen Wan}, date = {2018-05-12}, version = {1.0}, @@ -15559,7 +15570,7 @@ @manual{ctan-cquthesis, title = {The \texttt{CQUThesis} package}, - subtitle = {LaTeX Thesis Template for Chongqing University}, + subtitle = {\LaTeX{} Thesis Template for Chongqing University}, author = {Li Zhennan}, date = {2020-06-23}, version = {1.50}, @@ -15860,7 +15871,7 @@ @manual{ctan-csbulletin, title = {The \texttt{csbulletin} package}, - subtitle = {LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)}, + subtitle = {\LaTeX{} class for articles submitted to the CSTUG Bulletin (Zpravodaj)}, author = {Vít Novotný and ZdenÄ›k Wagner}, date = {2020-03-20}, version = {}, @@ -15906,7 +15917,7 @@ @manual{ctan-cslatex, title = {The \texttt{cslatex} package}, - subtitle = {LaTeX support for Czech/Slovak typesetting}, + subtitle = {\LaTeX{} support for Czech/Slovak typesetting}, author = {Jiří ZlatuÅ¡ka and ZdenÄ›k Wagner and Jaroslav Snajdr}, date = {2017-04-18}, license = {gpl}, @@ -16086,7 +16097,7 @@ @manual{ctan-ctablestack, title = {The \texttt{ctablestack} package}, subtitle = {Catcode table stable support}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2016-06-24}, version = {1.0}, license = {lppl1.3}, @@ -16098,7 +16109,7 @@ title = {The \texttt{ctan-bibdata} package}, subtitle = {Bibliography data for all CTAN packages}, author = {Herbert Voß}, - date = {2022-10-16}, + date = {2022-10-18}, version = {0.01}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/biblio/ctan-bibdata}, @@ -16173,7 +16184,7 @@ @manual{ctan-ctex-faq, title = {The \texttt{ctex-faq} package}, - subtitle = {LaTeX FAQ by the Chinese \TeX{} Society (ctex.org)}, + subtitle = {\LaTeX{} FAQ by the Chinese \TeX{} Society (ctex.org)}, author = {LingYun Wu}, date = {2022-02-09}, version = {}, @@ -16187,7 +16198,7 @@ @manual{ctan-ctex, title = {The \texttt{ctex} package}, - subtitle = {LaTeX classes and packages for Chinese typesetting}, + subtitle = {\LaTeX{} classes and packages for Chinese typesetting}, author = {Qing Lee and Leo Liu and Liam Huang and Xiangdong Zeng and Zeping Lee and Yukai Chou and Ruixi Zhang and LingYun Wu and Jiang Jiang and Yue Wang and Yanrui Li and Zhichu Chen}, date = {2022-07-14}, version = {2.5.10}, @@ -16378,7 +16389,7 @@ license = {cc-by-sa-4}, mirror = {https://mirror.ctan.org/graphics/pgf/contrib/customdice}, url = {https://ctan.org/pkg/customdice}, - annotation = {The package for \LaTeX{}, LuaLaTeX and XeTeX that provides functionality + annotation = {The package for \LaTeX{}, Lua\LaTeX{} and XeTeX that provides functionality for drawing dice. The aim is to provide highly-customisable but simple-to-use commands, allowing:}, } @@ -16416,7 +16427,7 @@ @manual{ctan-cv4tw, title = {The \texttt{cv4tw} package}, - subtitle = {LaTeX CV class, with extended details}, + subtitle = {\LaTeX{} CV class, with extended details}, author = {Geoffrey Gouez}, date = {2017-04-18}, version = {0.2}, @@ -16556,7 +16567,7 @@ @manual{ctan-cyrguide, title = {The \texttt{cyrguide} package}, subtitle = {Documentation of \LaTeX{} Cyrillic-alphabet features}, - author = {Vladimir Volovich and Werner Lemberg and {The LaTeX Project Team}}, + author = {Vladimir Volovich and Werner Lemberg and {The \LaTeX{} Project Team}}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -17519,7 +17530,7 @@ @manual{ctan-dcolumn, title = {The \texttt{dcolumn} package}, subtitle = {Align on the decimal point of numbers in tabular columns}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.06}, license = {lppl1.3c}, @@ -17584,7 +17595,7 @@ @manual{ctan-decimal, title = {The \texttt{decimal} package}, - subtitle = {LaTeX package for the English raised decimal point}, + subtitle = {\LaTeX{} package for the English raised decimal point}, author = {Apostolos Syropoulos and Dick Nickalls}, date = {2016-06-24}, license = {lppl1}, @@ -17741,7 +17752,7 @@ @manual{ctan-dejavu, title = {The \texttt{dejavu} package}, - subtitle = {LaTeX support for the DejaVu fonts}, + subtitle = {\LaTeX{} support for the DejaVu fonts}, author = {Pavel Farar}, date = {2017-10-02}, version = {2.34}, @@ -17753,7 +17764,7 @@ @manual{ctan-delarray, title = {The \texttt{delarray} package}, subtitle = {Delimiters for arrays}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-01-03}, version = {1.01}, license = {lppl1.3c}, @@ -18353,7 +18364,7 @@ @manual{ctan-divine, title = {The \texttt{divine} package}, - subtitle = {LaTeX support for the divine font}, + subtitle = {\LaTeX{} support for the divine font}, author = {Boris Veytsman}, date = {2020-08-29}, version = {1.0}, @@ -18485,7 +18496,7 @@ @manual{ctan-doc, title = {The \texttt{doc} package}, subtitle = {Format \LaTeX{} documentation}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2022-06-16}, version = {3}, license = {lppl1.3c}, @@ -18538,7 +18549,7 @@ @manual{ctan-docmfp, title = {The \texttt{docmfp} package}, - subtitle = {Document non-LaTeX code}, + subtitle = {Document non-\LaTeX{} code}, author = {Will Robertson and Peter R. Wilson}, date = {2016-06-24}, version = {1.2d}, @@ -18546,7 +18557,7 @@ mirror = {https://mirror.ctan.org/macros/latex/contrib/docmfp}, url = {https://ctan.org/pkg/docmfp}, annotation = {Extends the package to cater for - documenting non-LaTeX code, such as Metafont or MetaPost, or + documenting non-\LaTeX{} code, such as Metafont or MetaPost, or other programming languages.}, } @@ -18568,8 +18579,8 @@ title = {The \texttt{docshots} package}, subtitle = {TeX samples next to their PDF Snapshots}, author = {Yegor Bugayenko}, - date = {2022-10-17}, - version = {0.0.3}, + date = {2022-10-18}, + version = {0.0.4}, license = {mit}, mirror = {https://mirror.ctan.org/macros/latex/contrib/docshots}, url = {https://ctan.org/pkg/docshots}, @@ -18578,7 +18589,7 @@ @manual{ctan-docstrip, title = {The \texttt{docstrip} package}, subtitle = {Remove comments from file}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.6a}, license = {lppl1.3c}, @@ -19151,7 +19162,7 @@ @manual{ctan-droid, title = {The \texttt{droid} package}, - subtitle = {LaTeX support for the Droid font families}, + subtitle = {\LaTeX{} support for the Droid font families}, author = {Mohamed El Morabity and Steve Matteson}, date = {2020-02-08}, version = {3.2}, @@ -19173,7 +19184,7 @@ @manual{ctan-drop, title = {The \texttt{drop} package}, - subtitle = {Dropped capitals at the start of a paragraph (LaTeX 2.09)}, + subtitle = {Dropped capitals at the start of a paragraph (\LaTeX{} 2.09)}, author = {David G. Cantor and Dominik Wujastyk}, date = {2016-06-24}, version = {}, @@ -19376,14 +19387,14 @@ @manual{ctan-duerer-latex, title = {The \texttt{duerer-LaTeX} package}, - subtitle = {LaTeX support for the Duerer fonts}, + subtitle = {\LaTeX{} support for the Duerer fonts}, author = {Palle Jørgensen}, date = {2016-06-24}, version = {1.1}, license = {gpl}, mirror = {https://mirror.ctan.org/macros/latex/contrib/duerer-latex}, url = {https://ctan.org/pkg/duerer-latex}, - annotation = {LaTeX support for Hoenig’s + annotation = {\LaTeX{} support for Hoenig’s fonts, using their standard names.}, } @@ -19614,7 +19625,7 @@ @manual{ctan-dvidvi, title = {The \texttt{dvidvi} package}, subtitle = {Convert one DVI file into another}, - author = {Tom Rokicki and Esteban Zimanyi and {The TeX Live Team}}, + author = {Tom Rokicki and Esteban Zimanyi and {The \TeX{} Live Team}}, date = {2016-06-24}, license = {other-free}, mirror = {https://mirror.ctan.org/dviware/dvidvi}, @@ -19657,7 +19668,7 @@ @manual{ctan-dviljk, title = {The \texttt{dviljk} package}, subtitle = {DVI to Laserjet output}, - author = {Karl Berry and Joachim Schrod and {The TeX Live Team}}, + author = {Karl Berry and Joachim Schrod and {The \TeX{} Live Team}}, date = {2016-06-24}, license = {gpl}, mirror = {https://mirror.ctan.org/dviware/dviljk}, @@ -19726,7 +19737,7 @@ @manual{ctan-dvipdfmx-def, title = {The \texttt{dvipdfmx-def} package}, subtitle = {Configuration file for dvipdfmx graphics}, - author = {Jin-Hwan Cho and Shunsaku Hirata and {The LaTeX Project Team}}, + author = {Jin-Hwan Cho and Shunsaku Hirata and {The \LaTeX{} Project Team}}, date = {2022-09-23}, version = {5.0m}, license = {lppl1.3c}, @@ -19737,7 +19748,7 @@ @manual{ctan-dvipdfmx, title = {The \texttt{dvipdfmx} package}, subtitle = {An extended version of dvipdfm}, - author = {Jin-Hwan Cho and Matthias Franz and Shunsaku Hirata and Mark A. Wicks and Khaled Hosny and Peter Breitenlohner and {The TeX Live Team}}, + author = {Jin-Hwan Cho and Matthias Franz and Shunsaku Hirata and Mark A. Wicks and Khaled Hosny and Peter Breitenlohner and {The \TeX{} Live Team}}, date = {2022-01-27}, license = {gpl}, url = {https://ctan.org/pkg/dvipdfmx}, @@ -19783,7 +19794,7 @@ @manual{ctan-dvips, title = {The \texttt{dvips} package}, subtitle = {A DVI to PostScript driver}, - author = {Tom Rokicki and {The TeX Live Team}}, + author = {Tom Rokicki and {The \TeX{} Live Team}}, date = {2021-08-26}, license = {other-free}, url = {https://ctan.org/pkg/dvips}, @@ -19858,7 +19869,7 @@ @manual{ctan-dvisvgm-def, title = {The \texttt{dvisvgm-def} package}, subtitle = {Colour and Graphics support for dvisvgm}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-23}, version = {1.6}, license = {lppl1.3c}, @@ -20245,7 +20256,7 @@ @manual{ctan-ebgaramond-maths, title = {The \texttt{ebgaramond-maths} package}, - subtitle = {LaTeX support for EBGaramond fonts in mathematics}, + subtitle = {\LaTeX{} support for EBGaramond fonts in mathematics}, author = {Clea F. Rees}, date = {2021-08-26}, version = {1.2}, @@ -20256,7 +20267,7 @@ @manual{ctan-ebgaramond, title = {The \texttt{ebgaramond} package}, - subtitle = {LaTeX support for EBGaramond fonts}, + subtitle = {\LaTeX{} support for EBGaramond fonts}, author = {Bob Tennent}, date = {2022-09-11}, version = {}, @@ -20447,7 +20458,7 @@ @manual{ctan-ecobiblatex, title = {The \texttt{ecobiblatex} package}, - subtitle = {Global Ecology and Biogeography BibLaTeX styles for the Biber backend}, + subtitle = {Global Ecology and Biogeography Bib\LaTeX{} styles for the Biber backend}, author = {Norbert Balak}, date = {2016-06-24}, version = {1.0}, @@ -20531,7 +20542,7 @@ @manual{ctan-ecothesis, title = {The \texttt{ecothesis} package}, - subtitle = {LaTeX thesis template for the Universidade Federal de Viçosa (UFV), Brazil}, + subtitle = {\LaTeX{} thesis template for the Universidade Federal de Viçosa (UFV), Brazil}, author = {Vinícius Barros Rodrigues}, date = {2018-06-20}, version = {1.2}, @@ -20740,7 +20751,7 @@ @manual{ctan-egameps, title = {The \texttt{egameps} package}, - subtitle = {LaTeX package for typesetting extensive games}, + subtitle = {\LaTeX{} package for typesetting extensive games}, author = {Martin J. Osborne}, date = {2018-09-15}, version = {1.1}, @@ -20796,7 +20807,7 @@ @manual{ctan-eiad-ltx, title = {The \texttt{eiad-ltx} package}, - subtitle = {LaTeX support for the eiad font}, + subtitle = {\LaTeX{} support for the eiad font}, author = {Uwe Münch}, date = {2016-06-24}, version = {1.0}, @@ -20902,7 +20913,7 @@ license = {gpl3+,fdl}, mirror = {https://mirror.ctan.org/macros/luatex/latex/ekdosis}, url = {https://ctan.org/pkg/ekdosis}, - annotation = {is a LuaLaTeX package designed for multilingual + annotation = {is a Lua\LaTeX{} package designed for multilingual critical editions. It can be used to typeset texts and different layers of critical notes in any direction accepted by LuaTeX. Texts can be arranged in running paragraphs or on facing pages, @@ -21303,7 +21314,7 @@ @manual{ctan-empheq, title = {The \texttt{empheq} package}, subtitle = {EMPHasizing EQuations}, - author = {Morten Høgholm and Lars Madsen and {The LaTeX Project Team} and Will Robertson and Joseph Wright}, + author = {Morten Høgholm and Lars Madsen and {The \LaTeX{} Project Team} and Will Robertson and Joseph Wright}, date = {2020-03-24}, version = {2.16}, license = {lppl1.3}, @@ -21388,7 +21399,7 @@ @manual{ctan-encguide, title = {The \texttt{encguide} package}, subtitle = {Documentation of \LaTeX{} font encodings}, - author = {{The LaTeX Project Team} and Werner Lemberg}, + author = {{The \LaTeX{} Project Team} and Werner Lemberg}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -21532,7 +21543,7 @@ used with Japanese documents. It can be used on , , and - LuaLaTeX ().}, + Lua\LaTeX{} ().}, } @manual{ctan-endofproofwd, @@ -21654,7 +21665,7 @@ @manual{ctan-enumerate, title = {The \texttt{enumerate} package}, subtitle = {Enumerate with redefinable labels}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {3.00}, license = {lppl1.3c}, @@ -21946,7 +21957,7 @@ @manual{ctan-epsfig, title = {The \texttt{epsfig} package}, subtitle = {Include Encapsulated PostScript in \LaTeX{} documents}, - author = {Sebastian Rahtz and David Carlisle and {The LaTeX Project Team}}, + author = {Sebastian Rahtz and David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.7b}, license = {lppl1.3c}, @@ -22311,7 +22322,7 @@ license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/eqparbox}, url = {https://ctan.org/pkg/eqparbox}, - annotation = {LaTeX users sometimes need to ensure that two or more + annotation = {\LaTeX{} users sometimes need to ensure that two or more blocks of text occupy the same amount of horizontal space on the page. To that end, the eqparbox package defines a new command, , which works just like @@ -22664,7 +22675,7 @@ @manual{ctan-etex-pkg, title = {The \texttt{etex-pkg} package}, subtitle = {E-TeX support package}, - author = {David Carlisle and Peter Breitenlohner and {The LaTeX Project Team}}, + author = {David Carlisle and Peter Breitenlohner and {The \LaTeX{} Project Team}}, date = {2017-04-18}, version = {2.7}, license = {lppl1.3}, @@ -22675,7 +22686,7 @@ @manual{ctan-etex, title = {The \texttt{e-TeX} package}, subtitle = {An extended version of \TeX{}, from the NTS project}, - author = {Peter Breitenlohner and {The TeX Live Team}}, + author = {Peter Breitenlohner and {The \TeX{} Live Team}}, date = {2020-08-30}, license = {knuth}, url = {https://ctan.org/pkg/etex}, @@ -22722,7 +22733,7 @@ @manual{ctan-ethiop, title = {The \texttt{ethiop} package}, - subtitle = {LaTeX macros and fonts for typesetting Amharic}, + subtitle = {\LaTeX{} macros and fonts for typesetting Amharic}, author = {Berhanu Beyene and Manfred Kudlec and Olaf Kummer and Jochen Metzinger}, date = {2017-04-18}, version = {0.7}, @@ -22993,7 +23004,7 @@ @manual{ctan-euroitc, title = {The \texttt{euroitc} package}, - subtitle = {LaTeX interface for the ITC euro font symbols}, + subtitle = {\LaTeX{} interface for the ITC euro font symbols}, author = {Robert Schlicht}, date = {2016-06-24}, version = {1.1}, @@ -23196,7 +23207,7 @@ @manual{ctan-exam-zh, title = {The \texttt{exam-zh} package}, - subtitle = {LaTeX template for Chinese exams}, + subtitle = {\LaTeX{} template for Chinese exams}, author = {Lijun Guo and Kangwei Xia}, date = {2022-09-18}, version = {0.1.20}, @@ -23218,7 +23229,7 @@ @manual{ctan-exam209, title = {The \texttt{exam209} package}, - subtitle = {Process exam questions and answers (LaTeX 2.09)}, + subtitle = {Process exam questions and answers (\LaTeX{} 2.09)}, author = {George Greenwade}, date = {2016-06-24}, version = {}, @@ -23229,7 +23240,7 @@ @manual{ctan-examdesign, title = {The \texttt{Exam design} package}, - subtitle = {LaTeX class for typesetting exams}, + subtitle = {\LaTeX{} class for typesetting exams}, author = {Jason Alexander}, date = {2016-06-24}, version = {1.101}, @@ -23509,7 +23520,7 @@ @manual{ctan-expl3, title = {The \texttt{expl3} package}, subtitle = {Wrapper package for experimental \LaTeX{}3}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-29}, version = {}, license = {lppl1.3c}, @@ -23553,7 +23564,7 @@ @manual{ctan-exscale, title = {The \texttt{exscale} package}, subtitle = {Implements scaling of the 'cmex' fonts}, - author = {Frank Mittelbach and Rainer Schöpf and {The LaTeX Project Team}}, + author = {Frank Mittelbach and Rainer Schöpf and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.1i}, license = {lppl1.3c}, @@ -23881,7 +23892,7 @@ @manual{ctan-fancyhdrboxed, title = {The \texttt{fancyhdrboxed} package}, - subtitle = {Elaborate page headers, specified in a non-LaTeX language}, + subtitle = {Elaborate page headers, specified in a non-\LaTeX{} language}, author = {Manuel Gutierrez Algaba}, date = {2018-09-15}, version = {1.0}, @@ -24273,7 +24284,7 @@ @manual{ctan-fduthesis, title = {The \texttt{fduthesis} package}, - subtitle = {LaTeX thesis template for Fudan University}, + subtitle = {\LaTeX{} thesis template for Fudan University}, author = {Xiangdong Zeng}, date = {2022-09-04}, version = {0.8}, @@ -24868,11 +24879,11 @@ annotation = {The package provides macros to read and compare the modification dates of files. The files may be files, images or other files (as long as they can be found by \LaTeX{}). It uses - the primitive of pdfLaTeX to find the + the primitive of pdf\LaTeX{} to find the file modification date as PDF date string, parses the string and returns the value to the user. The package will also work for output with recent versions of the \LaTeX{} compiler - which uses pdfLaTeX in mode. The functionality is + which uses pdf\LaTeX{} in mode. The functionality is provided by purely expandable macros or by faster but non-expandable ones.}, } @@ -25097,7 +25108,7 @@ @manual{ctan-fix-cm, title = {The \texttt{fix-cm} package}, subtitle = {Permit Computer Modern fonts at arbitrary sizes}, - author = {Walter A. Schmidt and {The LaTeX Project Team}}, + author = {Walter A. Schmidt and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.1t}, license = {lppl1.3c}, @@ -25160,7 +25171,7 @@ annotation = {Provides a command to provide a single command for a frequently-used footnote. The package ensures that only one instance of the footnote text appears on - each page (LaTeX needs to be run several times to achieve this).}, + each page (\LaTeX{} needs to be run several times to achieve this).}, } @manual{ctan-fixjfm, @@ -25191,7 +25202,7 @@ @manual{ctan-fixltx2e, title = {The \texttt{fixltx2e} package}, subtitle = {Patches for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.1a}, license = {lppl1.3c}, @@ -25792,7 +25803,7 @@ @manual{ctan-fntguide, title = {The \texttt{fntguide} package}, subtitle = {Docmentation of \LaTeX{} font commands}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-08-26}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -25946,7 +25957,7 @@ by and released under the SIL OFL 1.1 license. The commercial “Pro†version is also supported, if it is - installed and \XeLaTeX{} or LuaLaTeX is used.}, + installed and \XeLaTeX{} or Lua\LaTeX{} is used.}, } @manual{ctan-fontaxes, @@ -26029,7 +26040,7 @@ @manual{ctan-fontenc, title = {The \texttt{fontenc} package}, subtitle = {Standard package for selecting font encodings}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2016-06-24}, license = {lppl}, url = {https://ctan.org/pkg/fontenc}, @@ -26212,7 +26223,7 @@ @manual{ctan-fontspec, title = {The \texttt{fontspec} package}, subtitle = {Advanced font selection in \XeLaTeX{} and LuaLaTeX}, - author = {Will Robertson and {The LaTeX Project Team}}, + author = {Will Robertson and {The \LaTeX{} Project Team}}, date = {2022-05-18}, version = {2.8a}, license = {lppl1.3c}, @@ -27019,7 +27030,7 @@ @manual{ctan-ftn, title = {The \texttt{ftn} package}, - subtitle = {LaTeX footnotes anywhere}, + subtitle = {\LaTeX{} footnotes anywhere}, author = {Kresten Krab Thorup}, date = {2016-06-24}, version = {}, @@ -27035,7 +27046,7 @@ @manual{ctan-ftnright, title = {The \texttt{ftnright} package}, subtitle = {Footnotes in two column documents in one column only}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.1f}, license = {lppl1.3c}, @@ -27181,7 +27192,7 @@ @manual{ctan-fundus-outline, title = {The \texttt{fundus-outline} package}, - subtitle = {LaTeX support for CM outline fonts}, + subtitle = {\LaTeX{} support for CM outline fonts}, author = {Gerd Neugebauer}, date = {2016-06-24}, version = {1.1}, @@ -27225,7 +27236,7 @@ @manual{ctan-fundus-twcal, title = {The \texttt{fundus-twcal} package}, - subtitle = {LaTeX support for the twcal handwriting font}, + subtitle = {\LaTeX{} support for the twcal handwriting font}, author = {Gerd Neugebauer}, date = {2016-06-24}, version = {1.2}, @@ -27636,7 +27647,7 @@ @manual{ctan-gckanbun, title = {The \texttt{gckanbun} package}, - subtitle = {Kanbun typesetting for (u)pLaTeX and LuaLaTeX}, + subtitle = {Kanbun typesetting for (u)p\LaTeX{} and LuaLaTeX}, author = {Munehiro Yamamoto}, date = {2022-01-17}, version = {1.2}, @@ -27953,7 +27964,7 @@ @manual{ctan-geschichtsfrkl, title = {The \texttt{geschichtsfrkl} package}, - subtitle = {BibLaTeX style for historians}, + subtitle = {Bib\LaTeX{} style for historians}, author = {Jonathan Zachhuber}, date = {2016-09-21}, version = {1.4}, @@ -28311,7 +28322,7 @@ @manual{ctan-gitinfo, title = {The \texttt{gitinfo} package}, subtitle = {Access metadata from the git distributed version control system}, - author = {Brent Longborough and {The LaTeX Project Team}}, + author = {Brent Longborough and {The \LaTeX{} Project Team}}, date = {2021-12-20}, version = {1.0}, license = {lppl1.3}, @@ -28322,7 +28333,7 @@ @manual{ctan-gitinfo2, title = {The \texttt{gitinfo2} package}, subtitle = {Access metadata from the git distributed version control system}, - author = {Brent Longborough and {The LaTeX Project Team}}, + author = {Brent Longborough and {The \LaTeX{} Project Team}}, date = {2021-12-20}, version = {2.0.7}, license = {lppl1.3}, @@ -28333,7 +28344,7 @@ @manual{ctan-gitlog, title = {The \texttt{gitlog} package}, subtitle = {Typesetting git changelogs}, - author = {Brent Longborough and {The LaTeX Project Team}}, + author = {Brent Longborough and {The \LaTeX{} Project Team}}, date = {2021-12-20}, version = {0.0.beta}, license = {lppl1.3}, @@ -28386,7 +28397,7 @@ @manual{ctan-gladtex, title = {The \texttt{GladTeX} package}, - subtitle = {LaTeX equations in HTML}, + subtitle = {\LaTeX{} equations in HTML}, author = {Martin G. Gulbrandsen and Sebastian Humenda}, date = {2018-09-19}, version = {3.0.0}, @@ -29189,7 +29200,7 @@ @manual{ctan-graphics-cfg, title = {The \texttt{graphics-cfg} package}, subtitle = {Sample configuration files for \LaTeX{} color and graphics}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2017-04-18}, version = {}, license = {pd}, @@ -29200,7 +29211,7 @@ @manual{ctan-graphics-def, title = {The \texttt{graphics-def} package}, subtitle = {Colour and graphics option files}, - author = {{The LaTeX Project Team} and Joseph Wright}, + author = {{The \LaTeX{} Project Team} and Joseph Wright}, date = {2022-09-23}, version = {}, license = {lppl1.3c}, @@ -29222,7 +29233,7 @@ @manual{ctan-graphics, title = {The \texttt{graphics} package}, subtitle = {Standard \LaTeX{} graphics}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.4e}, license = {lppl1.3c}, @@ -29255,7 +29266,7 @@ @manual{ctan-graphicx, title = {The \texttt{graphicx} package}, subtitle = {Enhanced support for graphics}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-11-12}, version = {1.2d}, license = {lppl1.3c}, @@ -29310,7 +29321,7 @@ @manual{ctan-graphpap, title = {The \texttt{graphpap} package}, subtitle = {For producing graph paper}, - author = {Leslie Lamport and {The LaTeX Project Team}}, + author = {Leslie Lamport and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.0c}, license = {lppl1.3c}, @@ -29501,7 +29512,7 @@ @manual{ctan-greektex-fd, title = {The \texttt{greektex-fd} package}, - subtitle = {LaTeX font definition files for GreekTeX}, + subtitle = {\LaTeX{} font definition files for GreekTeX}, author = {Andrej Brodnik}, date = {2016-06-24}, license = {lppl}, @@ -29604,7 +29615,7 @@ @manual{ctan-grfguide, title = {The \texttt{grfguide} package}, - subtitle = {LaTeX standard graphics and color packages documentation}, + subtitle = {\LaTeX{} standard graphics and color packages documentation}, author = {David Carlisle}, date = {2021-06-01}, version = {}, @@ -30066,13 +30077,13 @@ license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/gzt}, url = {https://ctan.org/pkg/gzt}, - annotation = {This bundle provides two classes and BibLaTeX styles for the + annotation = {This bundle provides two classes and Bib\LaTeX{} styles for the French journal :}, } @manual{ctan-h2020proposal, title = {The \texttt{h2020proposal} package}, - subtitle = {LaTeX class and template for EU H2020 RIA proposal}, + subtitle = {\LaTeX{} class and template for EU H2020 RIA proposal}, author = {Giacomo Indiveri}, date = {2018-01-06}, version = {1.0}, @@ -30157,7 +30168,7 @@ @manual{ctan-halloweenmath, title = {The \texttt{halloweenmath} package}, - subtitle = {Scary and creepy math symbols with AMS-LaTeX integration}, + subtitle = {Scary and creepy math symbols with AMS-\LaTeX{} integration}, author = {Gustavo Mezzetti}, date = {2019-11-01}, version = {0.11}, @@ -30556,7 +30567,7 @@ @manual{ctan-helvet, title = {The \texttt{helvet} package}, subtitle = {Load Helvetica, scaled}, - author = {Walter A. Schmidt and {The LaTeX Project Team}}, + author = {Walter A. Schmidt and {The \LaTeX{} Project Team}}, date = {2021-12-07}, version = {9.2a}, license = {lppl1.2}, @@ -30887,7 +30898,7 @@ @manual{ctan-hfutthesis, title = {The \texttt{hfutthesis} package}, - subtitle = {LaTeX Thesis Template for Hefei University of Technology}, + subtitle = {\LaTeX{} Thesis Template for Hefei University of Technology}, author = {Zhenhao Yin}, date = {2022-08-02}, version = {1.0.4}, @@ -31054,7 +31065,7 @@ @manual{ctan-historische-zeitschrift, title = {The \texttt{historische-zeitschrift} package}, - subtitle = {BibLaTeX style for the journal 'Historische Zeitschrift'}, + subtitle = {Bib\LaTeX{} style for the journal 'Historische Zeitschrift'}, author = {Dominik Waßenhoven}, date = {2016-12-02}, version = {1.2}, @@ -31140,7 +31151,7 @@ @manual{ctan-hktex, title = {The \texttt{hktex} package}, - subtitle = {A \TeX{}/LaTeX equivalent for Android}, + subtitle = {A \TeX{}/\LaTeX{} equivalent for Android}, author = {Kwanleung Tse}, date = {2016-06-24}, version = {2.04}, @@ -31150,7 +31161,7 @@ } @manual{ctan-hlatex-fonts, - title = {The \texttt{HLaTeX fonts} package}, + title = {The \texttt{H\LaTeX{} fonts} package}, subtitle = {A collection of Korean (Hangul) fonts}, author = {Koaunghi Un}, date = {2016-06-24}, @@ -31422,7 +31433,7 @@ @manual{ctan-hrlatex, title = {The \texttt{hrlatex} package}, - subtitle = {LaTeX support for Croatian documents}, + subtitle = {\LaTeX{} support for Croatian documents}, author = {Marcel Maretić}, date = {2018-01-06}, version = {0.23}, @@ -31470,7 +31481,7 @@ @manual{ctan-hu-berlin-bundle, title = {The \texttt{hu-berlin-bundle} package}, - subtitle = {LaTeX classes for the Humboldt-Universität zu Berlin}, + subtitle = {\LaTeX{} classes for the Humboldt-Universität zu Berlin}, author = {Lukas C. Bossert}, date = {2021-01-31}, version = {1.1.1}, @@ -31913,7 +31924,7 @@ @manual{ctan-hyperref, title = {The \texttt{hyperref} package}, subtitle = {Extensive support for hypertext in \LaTeX{}}, - author = {Heiko Oberdiek and Sebastian Rahtz and {Oberdiek Package Support Group} and {The LaTeX Project Team}}, + author = {Heiko Oberdiek and Sebastian Rahtz and {Oberdiek Package Support Group} and {The \LaTeX{} Project Team}}, date = {2022-09-22}, version = {7.00t}, license = {lppl1.3}, @@ -31956,7 +31967,7 @@ @manual{ctan-hyphen-accent, title = {The \texttt{hyphen-accent} package}, - subtitle = {LaTeX 2.09 code for using DC fonts}, + subtitle = {\LaTeX{} 2.09 code for using DC fonts}, author = {Daniel Taupin}, date = {2016-06-24}, version = {}, @@ -32098,7 +32109,7 @@ @manual{ctan-ibarra, title = {The \texttt{ibarra} package}, - subtitle = {LaTeX support for the Ibarra Real Nova family of fonts}, + subtitle = {\LaTeX{} support for the Ibarra Real Nova family of fonts}, author = {Bob Tennent}, date = {2022-10-01}, version = {}, @@ -32209,7 +32220,7 @@ license = {gpl3+,cc-by-sa-4}, mirror = {https://mirror.ctan.org/macros/latex/contrib/icite}, url = {https://ctan.org/pkg/icite}, - annotation = {The package is designed to produce from BibTeX or BibLaTeX bibliographical databases + annotation = {The package is designed to produce from BibTeX or Bib\LaTeX{} bibliographical databases the different indices of authors and works cited which are called indices locorum citatorum. It relies on a specific command and can operate with either BibTeX or BibLaTeX.}, } @@ -32478,7 +32489,7 @@ @manual{ctan-ifetex, title = {The \texttt{ifetex} package}, subtitle = {Provides \textbackslash{}ifetex switch}, - author = {{The LaTeX Project Team} and Martin Scharrer}, + author = {{The \LaTeX{} Project Team} and Martin Scharrer}, date = {2020-10-01}, version = {1.3}, license = {lppl1.3c}, @@ -32511,7 +32522,7 @@ @manual{ctan-ifluatex, title = {The \texttt{ifluatex} package}, subtitle = {Provides the \textbackslash{}ifluatex switch}, - author = {{The LaTeX Project Team} and Heiko Oberdiek}, + author = {{The \LaTeX{} Project Team} and Heiko Oberdiek}, date = {2022-02-05}, version = {1.5}, license = {lppl1.3c}, @@ -32564,8 +32575,8 @@ title = {The \texttt{ifoddpage} package}, subtitle = {Determine if the current page is odd or even}, author = {Martin Scharrer}, - date = {2020-08-27}, - version = {1.1}, + date = {2022-10-18}, + version = {1.2}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/ifoddpage}, url = {https://ctan.org/pkg/ifoddpage}, @@ -32580,7 +32591,7 @@ @manual{ctan-ifpdf, title = {The \texttt{ifpdf} package}, subtitle = {Provides the \textbackslash{}ifpdf conditional}, - author = {{The LaTeX Project Team} and Heiko Oberdiek}, + author = {{The \LaTeX{} Project Team} and Heiko Oberdiek}, date = {2022-02-05}, version = {3.4}, license = {lppl1.3c}, @@ -32629,7 +32640,7 @@ @manual{ctan-iftex, title = {The \texttt{iftex} package}, subtitle = {Am I running under pdfTeX, XeTeX or LuaTeX?}, - author = {{The LaTeX Project Team} and Vafa Khalighi}, + author = {{The \LaTeX{} Project Team} and Vafa Khalighi}, date = {2022-02-05}, version = {1.0f}, license = {lppl1.3c}, @@ -32640,7 +32651,7 @@ @manual{ctan-ifthen, title = {The \texttt{ifthen} package}, subtitle = {Conditional commands in \LaTeX{} documents}, - author = {Leslie Lamport and David Carlisle and {The LaTeX Project Team}}, + author = {Leslie Lamport and David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.1d}, license = {lppl1.3c}, @@ -32662,7 +32673,7 @@ @manual{ctan-ifvtex, title = {The \texttt{ifvtex} package}, subtitle = {Detects use of VTeX and its facilities}, - author = {{The LaTeX Project Team} and Heiko Oberdiek}, + author = {{The \LaTeX{} Project Team} and Heiko Oberdiek}, date = {2022-02-05}, version = {1.7}, license = {lppl1.3c}, @@ -32673,7 +32684,7 @@ @manual{ctan-ifxetex, title = {The \texttt{ifxetex} package}, subtitle = {Am I running under XeTeX?}, - author = {{The LaTeX Project Team} and Will Robertson}, + author = {{The \LaTeX{} Project Team} and Will Robertson}, date = {2022-02-05}, version = {0.7}, license = {lppl1.3c}, @@ -32754,7 +32765,7 @@ @manual{ctan-ijmart, title = {The \texttt{ijmart} package}, - subtitle = {LaTeX Class for the Israel Journal of Mathematics}, + subtitle = {\LaTeX{} Class for the Israel Journal of Mathematics}, author = {Boris Veytsman}, date = {2016-06-24}, version = {1.7}, @@ -32786,7 +32797,7 @@ @manual{ctan-ijsra, title = {The \texttt{ijsra} package}, - subtitle = {LaTeX document class for the International Journal of Student Research in Archaeology}, + subtitle = {\LaTeX{} document class for the International Journal of Student Research in Archaeology}, author = {Lukas C. Bossert}, date = {2017-07-24}, version = {1.1}, @@ -33004,7 +33015,7 @@ @manual{ctan-indentfirst, title = {The \texttt{indentfirst} package}, subtitle = {Indent first paragraph after section header}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.03}, license = {lppl1.3c}, @@ -33218,7 +33229,7 @@ @manual{ctan-inputenc, title = {The \texttt{inputenc} package}, subtitle = {Accept different input encodings}, - author = {Alan Jeffrey and Frank Mittelbach and {The LaTeX Project Team}}, + author = {Alan Jeffrey and Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.3d}, license = {lppl1.3c}, @@ -33406,7 +33417,7 @@ license = {ofl,lppl}, mirror = {https://mirror.ctan.org/fonts/inter}, url = {https://ctan.org/pkg/inter}, - annotation = {This package provides \LaTeX{}, pdfLaTeX, \XeLaTeX{} and LuaLaTeX support for the + annotation = {This package provides \LaTeX{}, pdfLaTeX, \XeLaTeX{} and Lua\LaTeX{} support for the Inter Sans family of fonts (version 3.015), designed by Rasmus Andersson. Inter is a typeface specially designed for user interfaces with focus on high legibility of small-to-medium sized text on computer screens. @@ -33629,7 +33640,7 @@ @manual{ctan-ipa, title = {The \texttt{ipa} package}, - subtitle = {LaTeX macros for using WSUIPA fonts}, + subtitle = {\LaTeX{} macros for using WSUIPA fonts}, author = {Denis B. Roegel and Andrej Brodnik}, date = {2019-06-21}, version = {1.0}, @@ -34124,7 +34135,7 @@ @manual{ctan-japanese-otf-uptex, title = {The \texttt{japanese-otf-uptex} package}, subtitle = {Support for Japanese OTF files in upLaTeX}, - author = {Takuji Tanaka and Norbert Preining and {Japanese TeX Development Community}}, + author = {Takuji Tanaka and Norbert Preining and {Japanese \TeX{} Development Community}}, date = {2022-08-01}, license = {bsd3}, mirror = {https://mirror.ctan.org//macros/jptex/latex/japanese-otf}, @@ -34136,13 +34147,13 @@ @manual{ctan-japanese-otf, title = {The \texttt{japanese-otf} package}, subtitle = {Advanced font selection for platex and its friends}, - author = {Norbert Preining and {Japanese TeX Development Community} and Takuji Tanaka}, + author = {Norbert Preining and {Japanese \TeX{} Development Community} and Takuji Tanaka}, date = {2022-07-31}, version = {}, license = {bsd3}, mirror = {https://mirror.ctan.org/macros/jptex/latex/japanese-otf}, url = {https://ctan.org/pkg/japanese-otf}, - annotation = {The package contains pLaTeX support files and virtual fonts for + annotation = {The package contains p\LaTeX{} support files and virtual fonts for supporting a wide variety of fonts in \LaTeX{} using the .}, } @@ -34677,7 +34688,7 @@ @manual{ctan-jsclasses, title = {The \texttt{jsclasses} package}, subtitle = {Classes tailored for use with Japanese}, - author = {Haruhiko Okumura and {Japanese TeX Development Community}}, + author = {Haruhiko Okumura and {Japanese \TeX{} Development Community}}, date = {2022-09-14}, version = {}, license = {bsd}, @@ -34919,7 +34930,7 @@ @manual{ctan-karnaugh-map, title = {The \texttt{karnaugh-map} package}, - subtitle = {LaTeX package for drawing karnaugh maps with up to 6 variables}, + subtitle = {\LaTeX{} package for drawing karnaugh maps with up to 6 variables}, author = {Mattias Jacobsson}, date = {2022-01-15}, version = {2.0}, @@ -34984,7 +34995,7 @@ @manual{ctan-kbordermatrix, title = {The \texttt{kbordermatrix} package}, - subtitle = {LaTeX version of \textbackslash{}bordermatrix}, + subtitle = {\LaTeX{} version of \textbackslash{}bordermatrix}, author = {Kim C Border}, date = {2016-06-24}, version = {}, @@ -35178,7 +35189,7 @@ @manual{ctan-keyval, title = {The \texttt{keyval} package}, subtitle = {Process 'key=value' schemes}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.15}, license = {lppl1.3c}, @@ -35227,7 +35238,7 @@ @manual{ctan-kile, title = {The \texttt{kile} package}, - subtitle = {A user friendly \TeX{}/LaTeX editor for KDE}, + subtitle = {A user friendly \TeX{}/\LaTeX{} editor for KDE}, author = {Jeroen Wijnhout and Pascal Brachet}, date = {2017-04-18}, version = {2.0}, @@ -35576,7 +35587,7 @@ @manual{ctan-komacv-rg, title = {The \texttt{komacv-rg} package}, - subtitle = {LaTeX packages that aid in creating CVs based on the komacv class and creating related documents}, + subtitle = {\LaTeX{} packages that aid in creating CVs based on the komacv class and creating related documents}, author = {Richard Grewe}, date = {2018-11-03}, version = {0.9.2}, @@ -35662,7 +35673,7 @@ @manual{ctan-kpathsea, title = {The \texttt{kpathsea} package}, subtitle = {Path searching library for \TeX{}-related files}, - author = {{The TeX Live Team} and Olaf Weber}, + author = {{The \TeX{} Live Team} and Olaf Weber}, date = {2022-01-28}, license = {lgpl2.1}, url = {https://ctan.org/pkg/kpathsea}, @@ -35846,7 +35857,7 @@ @manual{ctan-l2a, title = {The \texttt{l2a} package}, - subtitle = {LaTeX to ASCII}, + subtitle = {\LaTeX{} to ASCII}, author = {Gisle Hannemyr}, date = {2018-01-06}, version = {1.0}, @@ -35857,7 +35868,7 @@ @manual{ctan-l2picfaq, title = {The \texttt{l2picfaq} package}, - subtitle = {LaTeX pictures "how-to" (German)}, + subtitle = {\LaTeX{} pictures "how-to" (German)}, author = {Dominik Bischoff}, date = {2016-06-24}, version = {1.50}, @@ -35933,7 +35944,7 @@ @manual{ctan-l2x, title = {The \texttt{l2x} package}, - subtitle = {LaTeX to ASCII}, + subtitle = {\LaTeX{} to ASCII}, author = {Henning Schulzrinne}, date = {2016-06-24}, version = {1.4}, @@ -35945,7 +35956,7 @@ @manual{ctan-l3backend, title = {The \texttt{l3backend} package}, subtitle = {LaTeX3 backend drivers}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-29}, version = {}, license = {lppl1.3c}, @@ -35956,7 +35967,7 @@ @manual{ctan-l3build, title = {The \texttt{l3build} package}, subtitle = {A testing and building system for (La)TeX}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-15}, version = {}, license = {lppl1.3c}, @@ -35967,7 +35978,7 @@ @manual{ctan-l3docstrip, title = {The \texttt{l3docstrip} package}, subtitle = {Strip documentation in \LaTeX{}3 source}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-29}, version = {}, license = {lppl1.3c}, @@ -35978,7 +35989,7 @@ @manual{ctan-l3experimental, title = {The \texttt{l3experimental} package}, subtitle = {Experimental \LaTeX{}3 concepts}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-04-20}, version = {}, license = {lppl1.3c}, @@ -35989,7 +36000,7 @@ @manual{ctan-l3kernel, title = {The \texttt{l3kernel} package}, subtitle = {LaTeX3 programming conventions}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-29}, version = {}, license = {lppl1.3c}, @@ -36000,7 +36011,7 @@ @manual{ctan-l3keys2e, title = {The \texttt{l3keys2e} package}, subtitle = {LaTeX2e option processing using \LaTeX{}3 keys}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-22}, version = {}, license = {lppl1.3c}, @@ -36011,7 +36022,7 @@ @manual{ctan-l3packages, title = {The \texttt{l3packages} package}, subtitle = {High-level \LaTeX{}3 concepts}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-22}, version = {}, license = {lppl1.3c}, @@ -36022,7 +36033,7 @@ @manual{ctan-l3regex, title = {The \texttt{l3regex} package}, subtitle = {Regular expression facilities for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-29}, version = {}, license = {lppl1.3c}, @@ -36188,8 +36199,8 @@ @manual{ctan-lacheck, title = {The \texttt{lacheck} package}, - subtitle = {LaTeX checker}, - author = {Kresten Krab Thorup and Per Abrahamsen and {The TeX Live Team}}, + subtitle = {\LaTeX{} checker}, + author = {Kresten Krab Thorup and Per Abrahamsen and {The \TeX{} Live Team}}, date = {2017-06-27}, license = {gpl}, mirror = {https://mirror.ctan.org/support/lacheck}, @@ -36448,7 +36459,7 @@ @manual{ctan-latex-amsmath-dev, title = {The \texttt{latex-amsmath-dev} package}, subtitle = {Development pre-release of the \LaTeX{} amsmath bundle}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-17}, version = {2022-11-01 pre-release 0}, license = {lppl1.3c}, @@ -36464,7 +36475,7 @@ @manual{ctan-latex-amsmath, title = {The \texttt{latex-amsmath} package}, subtitle = {AMS mathematical facilities for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {}, license = {lppl1.3c}, @@ -36475,7 +36486,7 @@ @manual{ctan-latex-base-dev, title = {The \texttt{latex-base-dev} package}, subtitle = {Development pre-release of the \LaTeX{} kernel}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-26}, version = {2022-11-01 pre-release 2}, license = {lppl1.3c}, @@ -36493,7 +36504,7 @@ @manual{ctan-latex-base, title = {The \texttt{latex-base} package}, subtitle = {Base sources of \LaTeX{}}, - author = {{The LaTeX Project Team} and Frank Mittelbach}, + author = {{The \LaTeX{} Project Team} and Frank Mittelbach}, date = {2022-07-05}, version = {2022-06-01-PL5}, license = {lppl1.3c}, @@ -36530,7 +36541,7 @@ @manual{ctan-latex-bnf, title = {The \texttt{latex-bnf} package}, - subtitle = {LaTeX macros for typing BNF specifications}, + subtitle = {\LaTeX{} macros for typing BNF specifications}, author = {Martin J. Osborne}, date = {2016-06-24}, version = {1.1a}, @@ -36572,7 +36583,7 @@ @manual{ctan-latex-cyrillic, title = {The \texttt{cyrillic} package}, subtitle = {Support for Cyrillic fonts in \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-16}, version = {2022-06-01-PL1}, license = {lppl1.3}, @@ -36594,7 +36605,7 @@ @manual{ctan-latex-doc, title = {The \texttt{latex-doc} package}, subtitle = {Documentation supplied as part of the \LaTeX{} distribution}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-07-06}, version = {2022-06-01-PL5}, license = {lppl1.3c}, @@ -36636,7 +36647,7 @@ @manual{ctan-latex-firstaid-dev, title = {The \texttt{latex-firstaid-dev} package}, subtitle = {Development pre-release of the \LaTeX{} firstaid package}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-10-03}, version = {1.0s}, license = {lppl1.3c}, @@ -36652,7 +36663,7 @@ @manual{ctan-latex-firstaid, title = {The \texttt{latex-firstaid} package}, subtitle = {First aid for external \LaTeX{} files and packages that need updating}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.0r}, license = {lppl1.3c}, @@ -36695,7 +36706,7 @@ @manual{ctan-latex-graphics-dev, title = {The \texttt{latex-graphics-dev} package}, subtitle = {Development pre-release of the \LaTeX{} graphics bundle}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-17}, version = {2022-11-01 pre-release 0}, license = {lppl1.3c}, @@ -36711,7 +36722,7 @@ @manual{ctan-latex-graphics, title = {The \texttt{latex-graphics} package}, subtitle = {The \LaTeX{} standard graphics bundle}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {}, license = {lppl1.3c}, @@ -36743,8 +36754,8 @@ @manual{ctan-latex-lab-dev, title = {The \texttt{latex-lab-dev} package}, - subtitle = {LaTeX laboratory: Development pre-release}, - author = {{The LaTeX Project Team}}, + subtitle = {\LaTeX{} laboratory: Development pre-release}, + author = {{The \LaTeX{} Project Team}}, date = {2022-05-19}, version = {2022-06-01 pre-release 4}, license = {lppl1.3c}, @@ -36761,8 +36772,8 @@ @manual{ctan-latex-lab, title = {The \texttt{latex-lab} package}, - subtitle = {LaTeX laboratory}, - author = {{The LaTeX Project Team}}, + subtitle = {\LaTeX{} laboratory}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-13}, version = {}, license = {lppl1.3c}, @@ -36826,7 +36837,7 @@ @manual{ctan-latex-pro-pragmatiky, title = {The \texttt{latex-pro-pragmatiky} package}, - subtitle = {LaTeX for pragmatists}, + subtitle = {\LaTeX{} for pragmatists}, author = {Pavel Satrapa}, date = {2016-06-24}, version = {1.1}, @@ -36837,7 +36848,7 @@ @manual{ctan-latex-referenz, title = {The \texttt{LaTeX-Referenz} package}, - subtitle = {Examples from the book "LaTeX Referenz"}, + subtitle = {Examples from the book "\LaTeX{} Referenz"}, author = {Herbert Voß}, date = {2020-06-07}, version = {2}, @@ -36848,7 +36859,7 @@ @manual{ctan-latex-refsheet, title = {The \texttt{latex-refsheet} package}, - subtitle = {LaTeX Reference Sheet for a thesis with KOMA-Script}, + subtitle = {\LaTeX{} Reference Sheet for a thesis with KOMA-Script}, author = {Marion Lammarsch and Elke Schubert}, date = {2017-08-21}, version = {1.2}, @@ -36865,7 +36876,7 @@ @manual{ctan-latex-sciences-humaines, title = {The \texttt{latex-sciences-humaines} package}, - subtitle = {(Xe)LaTeX Appliqué aux sciences humaines}, + subtitle = {(Xe)\LaTeX{} Appliqué aux sciences humaines}, author = {Maïeul Rouquette}, date = {2016-06-24}, version = {}, @@ -36876,7 +36887,7 @@ @manual{ctan-latex-tabellen, title = {The \texttt{latex-tabellen} package}, - subtitle = {LaTeX Tabellen}, + subtitle = {\LaTeX{} Tabellen}, author = {Herbert Voß}, date = {2020-06-07}, version = {}, @@ -36899,7 +36910,7 @@ @manual{ctan-latex-tools-dev, title = {The \texttt{latex-tools-dev} package}, subtitle = {Development pre-release of the \LaTeX{} tools bundle}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-26}, version = {2022-11-01 pre-release 2}, license = {lppl1.3c}, @@ -36915,7 +36926,7 @@ @manual{ctan-latex-tools, title = {The \texttt{latex-tools} package}, subtitle = {The \LaTeX{} standard tools bundle}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {}, license = {lppl1.3c}, @@ -36953,7 +36964,7 @@ @manual{ctan-latex-uni8, title = {The \texttt{latex-uni8} package}, - subtitle = {Universal inputenc, fontenc, and babel for pdfLaTeX and LuaLaTeX}, + subtitle = {Universal inputenc, fontenc, and babel for pdf\LaTeX{} and LuaLaTeX}, author = {Péter Szabó}, date = {2019-01-20}, version = {0.03}, @@ -36968,7 +36979,7 @@ (English language by default), hyphenation, underline (with ), default text and math fonts (Computer Modern or Times), - and paper sizes correctly with both pdfLaTeX and LuaLaTeX.}, + and paper sizes correctly with both pdf\LaTeX{} and LuaLaTeX.}, } @manual{ctan-latex-veryshortguide, @@ -36996,7 +37007,7 @@ @manual{ctan-latex, title = {The \texttt{latex} package}, subtitle = {A \TeX{} macro package that defines \LaTeX{}}, - author = {{The LaTeX Project Team} and Leslie Lamport}, + author = {{The \LaTeX{} Project Team} and Leslie Lamport}, date = {2022-07-06}, version = {2022-06-01-PL5}, license = {lppl1.3c}, @@ -37126,7 +37137,7 @@ @manual{ctan-latex4wp-it, title = {The \texttt{latex4wp-it} package}, - subtitle = {LaTeX guide for word processor users, in Italian}, + subtitle = {\LaTeX{} guide for word processor users, in Italian}, author = {Guido Gonzato}, date = {2016-06-24}, version = {1.0.10}, @@ -37173,7 +37184,7 @@ @manual{ctan-latexbug, title = {The \texttt{latexbug} package}, subtitle = {Bug-classification for \LaTeX{} related bugs}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-14}, version = {1.0n}, license = {lppl1.3c}, @@ -37393,7 +37404,7 @@ @manual{ctan-latexmake, title = {The \texttt{latexmake} package}, - subtitle = {LaTeX Makefile}, + subtitle = {\LaTeX{} Makefile}, author = {Evan McLean and David J. Musliner and Tong Sun}, date = {2016-06-24}, version = {2.0}, @@ -37470,7 +37481,7 @@ @manual{ctan-latexpix, title = {The \texttt{LaTeXPiX} package}, - subtitle = {LaTeX picture editor for Windows}, + subtitle = {\LaTeX{} picture editor for Windows}, author = {N. J. H. M. van Beurden}, date = {2016-06-24}, version = {}, @@ -37481,8 +37492,8 @@ @manual{ctan-latexrelease, title = {The \texttt{latexrelease} package}, - subtitle = {LaTeX release emulation}, - author = {{The LaTeX Project Team}}, + subtitle = {\LaTeX{} release emulation}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.0o}, license = {lppl1.3c}, @@ -37577,7 +37588,7 @@ @manual{ctan-latino-sine-flexione, title = {The \texttt{latino-sine-flexione} package}, - subtitle = {LaTeX support for documents written in Peano’s Interlingua}, + subtitle = {\LaTeX{} support for documents written in Peano’s Interlingua}, author = {Victore Leve}, date = {2020-01-21}, version = {1.2}, @@ -37616,7 +37627,7 @@ @manual{ctan-layout, title = {The \texttt{layout} package}, subtitle = {View the layout of a document}, - author = {Kent McPherson and Johannes L. Braams and Hideo Umeki and {The LaTeX Project Team}}, + author = {Kent McPherson and Johannes L. Braams and Hideo Umeki and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.2e}, license = {lppl1.3c}, @@ -37775,7 +37786,7 @@ @manual{ctan-leawood, title = {The \texttt{leawood} package}, - subtitle = {LaTeX support for use of ITC Leawood font family}, + subtitle = {\LaTeX{} support for use of ITC Leawood font family}, author = {Scott Pakin}, date = {2016-06-24}, license = {lppl}, @@ -37981,7 +37992,7 @@ @manual{ctan-letter, title = {The \texttt{letter} package}, subtitle = {The standard \LaTeX{}2e letter document class}, - author = {Leslie Lamport and Frank Mittelbach and Rainer Schöpf and {The LaTeX Project Team}}, + author = {Leslie Lamport and Frank Mittelbach and Rainer Schöpf and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.3c}, license = {lppl1.3c}, @@ -38108,7 +38119,7 @@ @manual{ctan-lexend, title = {The \texttt{lexend} package}, - subtitle = {The Lexend fonts for \XeLaTeX{} and LuaLaTeX through fontspec}, + subtitle = {The Lexend fonts for \XeLaTeX{} and Lua\LaTeX{} through fontspec}, author = {Yannick Schinko}, date = {2021-01-30}, version = {1.1.0.70}, @@ -38221,7 +38232,7 @@ @manual{ctan-lgreek, title = {The \texttt{lgreek} package}, - subtitle = {LaTeX macros for using Silvio Levy's Greek fonts}, + subtitle = {\LaTeX{} macros for using Silvio Levy's Greek fonts}, author = {Timothy Murphy}, date = {2016-06-24}, version = {}, @@ -38297,7 +38308,7 @@ @manual{ctan-libertine-type1, title = {The \texttt{libertine-type1} package}, - subtitle = {(pdf)LaTeX support for the Libertine family of fonts}, + subtitle = {(pdf)\LaTeX{} support for the Libertine family of fonts}, author = {Bob Tennent}, date = {2016-06-24}, version = {5.3.0}, @@ -38462,7 +38473,7 @@ @manual{ctan-librefranklin, title = {The \texttt{librefranklin} package}, - subtitle = {LaTeX support for the Libre-Franklin family of fonts}, + subtitle = {\LaTeX{} support for the Libre-Franklin family of fonts}, author = {Bob Tennent}, date = {2022-09-19}, version = {}, @@ -38580,14 +38591,14 @@ @manual{ctan-limecv, title = {The \texttt{limecv} package}, - subtitle = {A (Xe/Lua)LaTeX document class for curriculum vitæ}, + subtitle = {A (Xe/Lua)\LaTeX{} document class for curriculum vitæ}, author = {Olivier Pieters}, date = {2021-12-01}, version = {0.1.12}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/limecv}, url = {https://ctan.org/pkg/limecv}, - annotation = {is a (Xe/Lua)LaTeX document class to write + annotation = {is a (Xe/Lua)\LaTeX{} document class to write curriculum vitæ. It is designed with the following design rules: simple, elegant and clean. To this end, it offers several environments and macros for convenience.}, @@ -38749,7 +38760,7 @@ @manual{ctan-lion-msc, title = {The \texttt{lion-msc} package}, - subtitle = {LaTeX class for B.Sc. and M.Sc. reports at Leiden Institute of Physics (LION)}, + subtitle = {\LaTeX{} class for B.Sc. and M.Sc. reports at Leiden Institute of Physics (LION)}, author = {Michiel de Dood}, date = {2020-06-04}, version = {0.30}, @@ -39078,7 +39089,7 @@ @manual{ctan-llncsconf, title = {The \texttt{llncsconf} package}, - subtitle = {LaTeX package extending Springer's llncs class}, + subtitle = {\LaTeX{} package extending Springer's llncs class}, author = {Achim D. Brucker}, date = {2022-04-25}, version = {1.2.0}, @@ -39138,7 +39149,7 @@ @manual{ctan-lms, title = {The \texttt{lms} package}, - subtitle = {LaTeX 2.09 style for LMS journals}, + subtitle = {\LaTeX{} 2.09 style for LMS journals}, author = {Ben Garling and Rod Mulvey and Alison Woollatt}, date = {2016-06-24}, version = {0.6}, @@ -39413,7 +39424,7 @@ @manual{ctan-longtable, title = {The \texttt{longtable} package}, subtitle = {Allow tables to flow over page boundaries}, - author = {David Carlisle and David Kastrup and {The LaTeX Project Team}}, + author = {David Carlisle and David Kastrup and {The \LaTeX{} Project Team}}, date = {2021-11-12}, version = {4.17}, license = {lppl1.3c}, @@ -39556,7 +39567,7 @@ @manual{ctan-lroundrect, title = {The \texttt{lroundrect} package}, - subtitle = {LaTeX macros for utilizing the roundrect MetaPost routines}, + subtitle = {\LaTeX{} macros for utilizing the roundrect MetaPost routines}, author = {Donald P. Goodman}, date = {2016-06-24}, version = {1.0}, @@ -39596,7 +39607,7 @@ @manual{ctan-lscape, title = {The \texttt{lscape} package}, subtitle = {Place selected parts of a document in landscape}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {3.02}, license = {lppl1.3c}, @@ -39708,7 +39719,7 @@ @manual{ctan-lshort-italian, title = {The \texttt{lshort-italian} package}, subtitle = {Introduction to \LaTeX{} in Italian}, - author = {{GuIT (Gruppo Utilizzatori Italiani di TeX)} and Claudio Beccari and Giuseppe Bilotta}, + author = {{GuIT (Gruppo Utilizzatori Italiani di \TeX{})} and Claudio Beccari and Giuseppe Bilotta}, date = {2020-11-30}, version = {6.2}, license = {gpl}, @@ -40103,7 +40114,7 @@ @manual{ctan-ltnews, title = {The \texttt{ltnews} package}, subtitle = {The latest \LaTeX{} news}, - author = {Frank Mittelbach and Chris Rowley and {The LaTeX Project Team}}, + author = {Frank Mittelbach and Chris Rowley and {The \LaTeX{} Project Team}}, date = {2020-02-02}, version = {1.06}, license = {lppl1.3c}, @@ -40124,7 +40135,7 @@ @manual{ctan-ltt, title = {The \texttt{ltt} package}, - subtitle = {Example code for "LaTeX Tipps und Tricks" book}, + subtitle = {Example code for "\LaTeX{} Tipps und Tricks" book}, author = {Ingo Klöckl}, date = {2016-06-24}, version = {}, @@ -40212,7 +40223,7 @@ @manual{ctan-ltxdoc, title = {The \texttt{ltxdoc} package}, subtitle = {Class for documented \LaTeX{} macro files}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-06-16}, version = {2.1g}, license = {lppl1.3c}, @@ -40370,7 +40381,7 @@ @manual{ctan-ltxutil, title = {The \texttt{ltxutil} package}, - subtitle = {LaTeX utility macros}, + subtitle = {\LaTeX{} utility macros}, author = {Arthur Ogawa}, date = {2020-10-06}, version = {4.1h}, @@ -40504,7 +40515,7 @@ @manual{ctan-luabibentry, title = {The \texttt{luabibentry} package}, - subtitle = {Repeat BibTeX entries in a LuaLaTeX document body}, + subtitle = {Repeat BibTeX entries in a Lua\LaTeX{} document body}, author = {Oliver Kopp}, date = {2020-06-28}, version = {0.1a}, @@ -40580,7 +40591,7 @@ @manual{ctan-luahyphenrules, title = {The \texttt{luahyphenrules} package}, - subtitle = {Loading patterns in LuaLaTeX with language.dat}, + subtitle = {Loading patterns in Lua\LaTeX{} with language.dat}, author = {Javier Bezos López}, date = {2020-08-28}, version = {1.1}, @@ -40659,7 +40670,7 @@ @manual{ctan-lualatex-doc-de, title = {The \texttt{lualatex-doc-de} package}, - subtitle = {Guide to LuaLaTeX (German translation)}, + subtitle = {Guide to Lua\LaTeX{} (German translation)}, author = {Manuel Pégourié-Gonnard and Christine Römer}, date = {2016-06-24}, version = {1.0}, @@ -40687,7 +40698,7 @@ @manual{ctan-lualatex-math, title = {The \texttt{lualatex-math} package}, - subtitle = {Fixes for mathematics-related LuaLaTeX issues}, + subtitle = {Fixes for mathematics-related Lua\LaTeX{} issues}, author = {Philipp Stephani}, date = {2022-01-01}, version = {1.12}, @@ -40698,7 +40709,7 @@ and packages to be more compatible with the LuaTeX engine. It is only meaningful for - LuaLaTeX documents containing mathematical formulas, and does not + Lua\LaTeX{} documents containing mathematical formulas, and does not exhibit any new functionality. The fixes are mostly moved from the package to this package since they are not directly related to Unicode mathematics @@ -40733,7 +40744,7 @@ @manual{ctan-lualibs, title = {The \texttt{lualibs} package}, subtitle = {Additional Lua functions for LuaTeX macro programmers}, - author = {Élie Roux and Philipp Gesang and {The LaTeX Project Team}}, + author = {Élie Roux and Philipp Gesang and {The \LaTeX{} Project Team}}, date = {2022-10-04}, version = {2.75}, license = {gpl2}, @@ -40780,7 +40791,7 @@ @manual{ctan-luaotfload, title = {The \texttt{luaotfload} package}, subtitle = {OpenType ‘loader’ for Plain \TeX{} and \LaTeX{}}, - author = {Élie Roux and Khaled Hosny and Manuel Pégourié-Gonnard and Will Robertson and Philipp Gesang and {The LaTeX Project Team} and Ulrike Fischer and Marcel Krüger}, + author = {Élie Roux and Khaled Hosny and Manuel Pégourié-Gonnard and Will Robertson and Philipp Gesang and {The \LaTeX{} Project Team} and Ulrike Fischer and Marcel Krüger}, date = {2022-10-03}, version = {3.23}, license = {gpl2}, @@ -40820,7 +40831,7 @@ mirror = {https://mirror.ctan.org/graphics/pstricks/contrib/luapstricks}, url = {https://ctan.org/pkg/luapstricks}, annotation = {This package enables the use of - directly in LuaLaTeX documents, without invoking external programmes, + directly in Lua\LaTeX{} documents, without invoking external programmes, by implementing a PostScript interpreter in Lua. Therefore it does not require shell escape to be enabled or special environments, and instead allows PSTricks to be used @@ -40867,7 +40878,7 @@ @manual{ctan-luatex-def, title = {The \texttt{luatex-def} package}, subtitle = {LuaTeX option file for color and graphics}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2022-09-23}, version = {1.2d}, license = {lppl1.3c}, @@ -40896,7 +40907,7 @@ @manual{ctan-luatex85, title = {The \texttt{luatex85} package}, subtitle = {pdfTeX aliases for LuaTeX}, - author = {David Carlisle and Joseph Wright and {The LaTeX Project Team}}, + author = {David Carlisle and Joseph Wright and {The \LaTeX{} Project Team}}, date = {2016-06-24}, version = {1.4}, license = {lppl1.3}, @@ -40950,7 +40961,7 @@ @manual{ctan-luatodonotes, title = {The \texttt{luatodonotes} package}, - subtitle = {Add editing annotations in a LuaLaTeX document}, + subtitle = {Add editing annotations in a Lua\LaTeX{} document}, author = {Fabian Lipp}, date = {2020-02-17}, version = {0.5}, @@ -41072,7 +41083,7 @@ mirror = {https://mirror.ctan.org/macros/luatex/generic/lutabulartools}, url = {https://ctan.org/pkg/lutabulartools}, annotation = {This package provides some useful commands for tabular matter. - It uses LuaLaTeX and offers the ability to combine the facilities + It uses Lua\LaTeX{} and offers the ability to combine the facilities of and with an easy to use syntax. It also adds some enhanced rules @@ -41149,7 +41160,7 @@ @manual{ctan-lyluatex, title = {The \texttt{lyluatex} package}, - subtitle = {Commands to include lilypond scores within a (Lua)LaTeX document}, + subtitle = {Commands to include lilypond scores within a (Lua)\LaTeX{} document}, author = {Jacques Peron and {The Gregorio Project}}, date = {2019-05-28}, version = {1.0f}, @@ -41476,7 +41487,7 @@ @manual{ctan-make-latex, title = {The \texttt{make\_latex} package}, - subtitle = {LaTeX Makefile}, + subtitle = {\LaTeX{} Makefile}, author = {David Beasley}, date = {2016-06-24}, version = {}, @@ -41651,7 +41662,7 @@ @manual{ctan-makeidx, title = {The \texttt{makeidx} package}, subtitle = {Standard \LaTeX{} package for creating indexes}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, version = {1.0m}, license = {lppl,lppl1.3c}, @@ -41679,7 +41690,7 @@ @manual{ctan-makeindexk, title = {The \texttt{makeindexk} package}, subtitle = {Makeindex development sources}, - author = {Pehong Chen and {The TeX Live Team}}, + author = {Pehong Chen and {The \TeX{} Live Team}}, date = {2016-06-24}, license = {other-free}, mirror = {https://mirror.ctan.org/indexing/makeindexk}, @@ -41790,7 +41801,7 @@ @manual{ctan-malayalam-latex, title = {The \texttt{malayalam-latex} package}, - subtitle = {LaTeX for Malayalam}, + subtitle = {\LaTeX{} for Malayalam}, author = {A. J. Alex}, date = {2018-01-06}, version = {0.9.7}, @@ -41866,7 +41877,7 @@ @manual{ctan-manfnt, title = {The \texttt{manfnt} package}, - subtitle = {LaTeX support for the \TeX{} book symbols}, + subtitle = {\LaTeX{} support for the \TeX{} book symbols}, author = {Axel Kielhorn}, date = {2020-04-03}, license = {lppl}, @@ -42499,7 +42510,7 @@ @manual{ctan-mathptmx, title = {The \texttt{mathptmx} package}, subtitle = {Use Times as default text font, and provide maths support}, - author = {Walter A. Schmidt and Alan Jeffrey and Sebastian Rahtz and Ulrik Vieth and {The LaTeX Project Team}}, + author = {Walter A. Schmidt and Alan Jeffrey and Sebastian Rahtz and Ulrik Vieth and {The \LaTeX{} Project Team}}, date = {2021-12-07}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/required/psnfss}, @@ -42644,7 +42655,7 @@ @manual{ctan-mathtime-ltx, title = {The \texttt{mathtime-ltx} package}, - subtitle = {LaTeX macros for using MathTime and MathTime Plus}, + subtitle = {\LaTeX{} macros for using MathTime and MathTime Plus}, author = {Frank Mittelbach and David Carlisle}, date = {2022-05-13}, license = {lppl}, @@ -42677,7 +42688,7 @@ @manual{ctan-mathtools, title = {The \texttt{mathtools} package}, subtitle = {Mathematical tools to use with amsmath}, - author = {Morten Høgholm and Lars Madsen and {The LaTeX Project Team} and Will Robertson and Joseph Wright}, + author = {Morten Høgholm and Lars Madsen and {The \LaTeX{} Project Team} and Will Robertson and Joseph Wright}, date = {2022-06-30}, version = {1.29}, license = {lppl1.3c}, @@ -43184,7 +43195,7 @@ license = {noinfo}, mirror = {https://mirror.ctan.org/macros/latex209/contrib/memo2}, url = {https://ctan.org/pkg/memo2}, - annotation = {A small document style (LaTeX 2.09) which produces a presentable + annotation = {A small document style (\LaTeX{} 2.09) which produces a presentable memorandum layout. The style will work under \LaTeX{} 2e (subject to the usual complaints), but requires the package.}, @@ -43248,7 +43259,7 @@ @manual{ctan-mendex-doc, title = {The \texttt{mendex-doc} package}, subtitle = {Documentation for Mendex index processor}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2022-04-05}, version = {}, license = {bsd3}, @@ -43779,8 +43790,8 @@ title = {The \texttt{mfirstuc} package}, subtitle = {Uppercase the first letter of a word}, author = {Nicola Talbot}, - date = {2021-10-15}, - version = {2.07}, + date = {2022-10-18}, + version = {2.08}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/mfirstuc}, url = {https://ctan.org/pkg/mfirstuc}, @@ -43808,14 +43819,14 @@ @manual{ctan-mflogo, title = {The \texttt{mflogo} package}, - subtitle = {LaTeX support for Metafont logo fonts}, + subtitle = {\LaTeX{} support for Metafont logo fonts}, author = {Ulrik Vieth}, date = {2016-06-24}, version = {2.0}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/contrib/mflogo}, url = {https://ctan.org/pkg/mflogo}, - annotation = {LaTeX package and font definition file to access the Knuthian + annotation = {\LaTeX{} package and font definition file to access the Knuthian fonts described in ‘The Metafontbook’ and to typeset Metafont logos in \LaTeX{} documents.}, @@ -43837,7 +43848,7 @@ @manual{ctan-mfnfss, title = {The \texttt{mfnfss} package}, subtitle = {Packages to typeset oldgerman and pandora fonts in \LaTeX{}}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2020-01-19}, version = {}, license = {lppl}, @@ -43984,7 +43995,7 @@ @manual{ctan-mhsetup, title = {The \texttt{mhsetup} package}, subtitle = {The mathtools “setup†function}, - author = {Lars Madsen and {The LaTeX Project Team} and Will Robertson and Joseph Wright and Morten Høgholm}, + author = {Lars Madsen and {The \LaTeX{} Project Team} and Will Robertson and Joseph Wright and Morten Høgholm}, date = {2021-04-12}, version = {1.4}, license = {lppl1.3c}, @@ -44211,7 +44222,7 @@ @manual{ctan-milsymb, title = {The \texttt{MilSymb} package}, - subtitle = {LaTeX package for TikZ based drawing of military symbols as per NATO APP-6(C)}, + subtitle = {\LaTeX{} package for TikZ based drawing of military symbols as per NATO APP-6(C)}, author = {Damian Crosby}, date = {2020-03-15}, version = {1.02}, @@ -44375,7 +44386,7 @@ @manual{ctan-minimal, title = {The \texttt{minimal} package}, subtitle = {A trivial class, for use when testing}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, version = {}, license = {lppl1.3c}, @@ -44411,7 +44422,7 @@ @manual{ctan-minionpro, title = {The \texttt{minionpro} package}, - subtitle = {LaTeX support for Adobe MinionPro fonts}, + subtitle = {\LaTeX{} support for Adobe MinionPro fonts}, author = {Achim Blumensath}, date = {2016-06-24}, version = {2.1}, @@ -44480,7 +44491,7 @@ @manual{ctan-mintspirit, title = {The \texttt{mintspirit} package}, - subtitle = {LaTeX support for MintSpirit font families}, + subtitle = {\LaTeX{} support for MintSpirit font families}, author = {Bob Tennent}, date = {2022-09-22}, version = {}, @@ -44687,7 +44698,7 @@ @manual{ctan-mlacls, title = {The \texttt{mlacls} package}, - subtitle = {LaTeX class for MLA papers}, + subtitle = {\LaTeX{} class for MLA papers}, author = {Seth Price}, date = {2021-09-14}, version = {1.0}, @@ -44757,7 +44768,7 @@ @manual{ctan-mltex-ltx, title = {The \texttt{mltex-ltx} package}, - subtitle = {LaTeX support for MLTeX}, + subtitle = {\LaTeX{} support for MLTeX}, author = {Bernd Raichle}, date = {2016-06-24}, license = {lppl}, @@ -45001,7 +45012,7 @@ @manual{ctan-modguide, title = {The \texttt{modguide} package}, subtitle = {The rules about modifying \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -45166,7 +45177,7 @@ @manual{ctan-moredefs, title = {The \texttt{moredefs} package}, - subtitle = {LaTeX defining, expansion, and debugging commands}, + subtitle = {\LaTeX{} defining, expansion, and debugging commands}, author = {Matt Swift}, date = {2016-06-24}, version = {1.8}, @@ -45261,15 +45272,15 @@ @manual{ctan-morisawa, title = {The \texttt{morisawa} package}, - subtitle = {Enables selection of 5 standard Japanese fonts for pLaTeX + dvips}, - author = {{Japanese TeX Development Community}}, + subtitle = {Enables selection of 5 standard Japanese fonts for p\LaTeX{} + dvips}, + author = {{Japanese \TeX{} Development Community}}, date = {2021-11-15}, version = {}, license = {bsd}, mirror = {https://mirror.ctan.org/fonts/morisawa}, url = {https://ctan.org/pkg/morisawa}, annotation = {The package enables selection of 5 standard Japanese fonts - for pLaTeX + dvips. It was originally written by + for p\LaTeX{} + dvips. It was originally written by Haruhiko Okumura as part of bundle, and the TFM/VF files were previously distributed as part of the package.}, @@ -45742,7 +45753,7 @@ @manual{ctan-multicol, title = {The \texttt{multicol} package}, subtitle = {Intermix single and multiple columns}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-11-12}, version = {1.9b}, license = {lppl1.3c}, @@ -45871,7 +45882,7 @@ @manual{ctan-multiple-choice, title = {The \texttt{multiple-choice} package}, - subtitle = {LaTeX package for multiple-choice questions}, + subtitle = {\LaTeX{} package for multiple-choice questions}, author = {Seiied-Mohammad-Javad Razavian}, date = {2022-06-27}, version = {0.2}, @@ -46244,7 +46255,7 @@ @manual{ctan-mynsfc, title = {The \texttt{mynsfc} package}, - subtitle = {XeLaTeX template for writing the main body of NSFC proposals}, + subtitle = {Xe\LaTeX{} template for writing the main body of NSFC proposals}, author = {Fei Qi}, date = {2021-08-19}, version = {1.30}, @@ -46925,7 +46936,7 @@ @manual{ctan-nevelok, title = {The \texttt{nevelok} package}, - subtitle = {LaTeX package for automatic definite articles for Hungarian}, + subtitle = {\LaTeX{} package for automatic definite articles for Hungarian}, author = {Zalan Bodo}, date = {2016-06-24}, version = {1.03}, @@ -47259,7 +47270,7 @@ @manual{ctan-nfssfont, title = {The \texttt{nfssfont} package}, subtitle = {Typesetting font tables using \LaTeX{}’s NFSS notation}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.2e}, license = {lppl1.3c}, @@ -47367,7 +47378,7 @@ @manual{ctan-nidanfloat, title = {The \texttt{nidanfloat} package}, subtitle = {Bottom placement option for double float in two column mode (nidan-kumi)}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2018-07-28}, version = {}, license = {bsd3}, @@ -47464,7 +47475,7 @@ @manual{ctan-njuthesis, title = {The \texttt{njuthesis} package}, - subtitle = {LaTeX thesis template for Nanjing University}, + subtitle = {\LaTeX{} thesis template for Nanjing University}, author = {Yichen Zhao and Yu Xiong}, date = {2019-01-01}, version = {1.0.0}, @@ -47823,7 +47834,7 @@ @manual{ctan-nostarch, title = {The \texttt{nostarch} package}, - subtitle = {LaTeX class for No Starch Press}, + subtitle = {\LaTeX{} class for No Starch Press}, author = {Boris Veytsman}, date = {2017-04-18}, version = {1.3}, @@ -48052,7 +48063,7 @@ @manual{ctan-ntg-maps, title = {The \texttt{ntg-maps} package}, subtitle = {The NTG's journal MAPS}, - author = {{Nederlandstalige TeX Gebruikersgroep}}, + author = {{Nederlandstalige \TeX{} Gebruikersgroep}}, date = {2016-06-24}, version = {}, license = {other-nonfree}, @@ -48271,7 +48282,7 @@ @manual{ctan-numline, title = {The \texttt{numline} package}, - subtitle = {LaTeX macros for numbering lines}, + subtitle = {\LaTeX{} macros for numbering lines}, author = {Michal Jaegermann and James Fortune}, date = {2019-06-21}, version = {1.3}, @@ -48355,7 +48366,7 @@ license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/nwejm}, url = {https://ctan.org/pkg/nwejm}, - annotation = {The bundle includes \LaTeX{} classes and BibLaTeX styles files + annotation = {The bundle includes \LaTeX{} classes and Bib\LaTeX{} styles files dedicated to the new journal :}, } @@ -48501,7 +48512,7 @@ @manual{ctan-ocherokee, title = {The \texttt{ocherokee} package}, - subtitle = {LaTeX Support for the Cherokee language}, + subtitle = {\LaTeX{} Support for the Cherokee language}, author = {Apostolos Syropoulos}, date = {2016-06-24}, license = {lppl}, @@ -48548,7 +48559,7 @@ @manual{ctan-ocr-latex, title = {The \texttt{ocr-latex} package}, - subtitle = {LaTeX support for ocr fonts}, + subtitle = {\LaTeX{} support for ocr fonts}, author = {Palle Jørgensen}, date = {2016-06-24}, version = {}, @@ -48665,7 +48676,7 @@ @manual{ctan-oinuit, title = {The \texttt{oinuit} package}, - subtitle = {LaTeX Support for the Inuktitut Language}, + subtitle = {\LaTeX{} Support for the Inuktitut Language}, author = {Apostolos Syropoulos}, date = {2016-06-24}, license = {lppl}, @@ -49161,7 +49172,7 @@ @manual{ctan-oscola, title = {The \texttt{oscola} package}, - subtitle = {BibLaTeX style for the Oxford Standard for the Citation of Legal Authorities}, + subtitle = {Bib\LaTeX{} style for the Oxford Standard for the Citation of Legal Authorities}, author = {Paul Stanley}, date = {2020-03-15}, version = {1.7}, @@ -49227,7 +49238,7 @@ @manual{ctan-otfinst, title = {The \texttt{otfinst} package}, - subtitle = {Install OpenType fonts for use in \TeX{}/LaTeX systems}, + subtitle = {Install OpenType fonts for use in \TeX{}/\LaTeX{} systems}, author = {John Owens}, date = {2018-01-06}, version = {1.0.3}, @@ -49236,7 +49247,7 @@ url = {https://ctan.org/pkg/otfinst}, annotation = {Otfinst takes a list of OpenType font files as input, uses Eddie Kohler's to install - them into a \TeX{}/LaTeX system, and builds and installs the + them into a \TeX{}/\LaTeX{} system, and builds and installs the necessary font description and style files. Otfinst was formerly known as otftex\_install and is written in Python. It has similar capabilities to Marc Penninga's @@ -49759,7 +49770,7 @@ @manual{ctan-pandora-latex, title = {The \texttt{pandora-latex} package}, - subtitle = {LaTeX support for the Pandora fonts}, + subtitle = {\LaTeX{} support for the Pandora fonts}, author = {Palle Jørgensen}, date = {2016-06-24}, version = {1.1}, @@ -49901,7 +49912,7 @@ @manual{ctan-paratype, title = {The \texttt{paratype} package}, - subtitle = {LaTeX support for free fonts by ParaType}, + subtitle = {\LaTeX{} support for free fonts by ParaType}, author = {Pavel Farar}, date = {2016-06-24}, version = {}, @@ -50134,7 +50145,7 @@ @manual{ctan-patgen, title = {The \texttt{patgen} package}, subtitle = {Generate hyphenation patterns}, - author = {Franklin M. Liang and Peter Breitenlohner and {The TeX Live Team} and Tom Rokicki}, + author = {Franklin M. Liang and Peter Breitenlohner and {The \TeX{} Live Team} and Tom Rokicki}, date = {2020-04-24}, version = {2.4}, license = {pd}, @@ -50232,7 +50243,7 @@ @manual{ctan-pbibtex-base, title = {The \texttt{pbibtex-base} package}, subtitle = {Bibliography styles and miscellaneous files for pBibTeX}, - author = {Kazuki Maeda and {Japanese TeX Development Community}}, + author = {Kazuki Maeda and {Japanese \TeX{} Development Community}}, date = {2022-02-06}, version = {}, license = {bsd3}, @@ -50243,7 +50254,7 @@ @manual{ctan-pbibtex-manual, title = {The \texttt{pbibtex-manual} package}, subtitle = {Documentation files for (u)pBibTeX}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2022-04-05}, version = {}, license = {bsd3}, @@ -50312,7 +50323,7 @@ @manual{ctan-pcarl, title = {The \texttt{pcarl} package}, - subtitle = {LaTeX Support for Adobe Caslon Open Face}, + subtitle = {\LaTeX{} Support for Adobe Caslon Open Face}, author = {Boris Veytsman}, date = {2021-09-11}, version = {1.0a}, @@ -50619,8 +50630,8 @@ @manual{ctan-pdfmanagement-testphase, title = {The \texttt{pdfmanagement-testphase} package}, - subtitle = {LaTeX PDF management testphase bundle}, - author = {{The LaTeX Project Team}}, + subtitle = {\LaTeX{} PDF management testphase bundle}, + author = {{The \LaTeX{} Project Team}}, date = {2022-09-26}, version = {0.95s}, license = {lppl1.3c}, @@ -50845,7 +50856,7 @@ @manual{ctan-pdftex, title = {The \texttt{pdftex} package}, subtitle = {A \TeX{} extension for direct creation of PDF}, - author = {Hàn Thế Thành and {The pdfTeX Team} and {The TeX Live Team}}, + author = {Hàn Thế Thành and {The pdfTeX Team} and {The \TeX{} Live Team}}, date = {2022-01-31}, license = {gpl}, url = {https://ctan.org/pkg/pdftex}, @@ -50854,7 +50865,7 @@ including , and include pdfTeX (Plain \TeX{}) and - pdfLaTeX (LaTeX), among many other formats based on the pdfTeX engine.}, + pdf\LaTeX{} (LaTeX), among many other formats based on the pdfTeX engine.}, } @manual{ctan-pdftexcmds, @@ -50954,14 +50965,14 @@ @manual{ctan-penlight, title = {The \texttt{penlight} package}, - subtitle = {Penlight Lua libraries made available to LuaLaTeX users}, + subtitle = {Penlight Lua libraries made available to Lua\LaTeX{} users}, author = {Kale Ewasiuk}, date = {2022-10-15}, version = {}, license = {mit}, mirror = {https://mirror.ctan.org/macros/luatex/generic/penlight}, url = {https://ctan.org/pkg/penlight}, - annotation = {This LuaLaTeX package provides a wrapper to use + annotation = {This Lua\LaTeX{} package provides a wrapper to use the Lua libraries with LuaLaTeX, with some extra functionality added.}, } @@ -51062,7 +51073,7 @@ @manual{ctan-petri-nets, title = {The \texttt{Petri-nets} package}, - subtitle = {A set \TeX{}/LaTeX packages for drawing Petri nets}, + subtitle = {A set \TeX{}/\LaTeX{} packages for drawing Petri nets}, author = {Franck Pommereau}, date = {2016-06-24}, license = {gpl}, @@ -51083,7 +51094,7 @@ @manual{ctan-pfarrei, title = {The \texttt{pfarrei} package}, - subtitle = {LaTeX support of pastors’ and priests’ work}, + subtitle = {\LaTeX{} support of pastors’ and priests’ work}, author = {Markus Kohm}, date = {2016-06-24}, version = {r36}, @@ -51245,7 +51256,7 @@ license = {gpl}, mirror = {https://mirror.ctan.org/graphics/pgf/contrib/pgf-umlsd}, url = {https://ctan.org/pkg/pgf-umlsd}, - annotation = {LaTeX macros to draw UML diagrams using}, + annotation = {\LaTeX{} macros to draw UML diagrams using}, } @manual{ctan-pgf, @@ -51332,7 +51343,7 @@ @manual{ctan-pgfopts, title = {The \texttt{pgfopts} package}, - subtitle = {LaTeX package options with pgfkeys}, + subtitle = {\LaTeX{} package options with pgfkeys}, author = {Joseph Wright}, date = {2016-06-24}, version = {2.1a}, @@ -51945,7 +51956,7 @@ @manual{ctan-pifont, title = {The \texttt{pifont} package}, subtitle = {Access to PostScript standard Symbol and Dingbats fonts}, - author = {Walter A. Schmidt and {The LaTeX Project Team} and Sebastian Rahtz}, + author = {Walter A. Schmidt and {The \LaTeX{} Project Team} and Sebastian Rahtz}, date = {2021-12-07}, version = {9.2a}, license = {lppl1.2}, @@ -52129,7 +52140,7 @@ @manual{ctan-pkuthss, title = {The \texttt{pkuthss} package}, - subtitle = {LaTeX template for dissertations in Peking University}, + subtitle = {\LaTeX{} template for dissertations in Peking University}, author = {Casper Ti. Vector}, date = {2022-05-04}, version = {1.9.2}, @@ -52141,7 +52152,7 @@ @manual{ctan-pkware, title = {The \texttt{pkware} package}, subtitle = {Utility programs for use with PK bitmap fonts}, - author = {Tom Rokicki and {The TeX Live Team}}, + author = {Tom Rokicki and {The \TeX{} Live Team}}, date = {2020-04-26}, version = {}, license = {pd}, @@ -52184,7 +52195,7 @@ license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/luatex/latex/placeat}, url = {https://ctan.org/pkg/placeat}, - annotation = {The package provides commands so that the user of LuaLaTeX may + annotation = {The package provides commands so that the user of Lua\LaTeX{} may position arbitrary content at any position specified by absolute coordinates on the page. The package draws a grid on each page of the document, to aid positioning (the grid may be disabled, for @@ -52348,7 +52359,7 @@ @manual{ctan-platex-tools, title = {The \texttt{platex-tools} package}, - subtitle = {pLaTeX standard tools bundle}, + subtitle = {p\LaTeX{} standard tools bundle}, author = {Hironobu Yamashita}, date = {2022-07-31}, version = {}, @@ -52369,7 +52380,7 @@ @manual{ctan-platex, title = {The \texttt{platex} package}, subtitle = {pLaTeX2e and miscellaneous macros for pTeX}, - author = {Kazuki Maeda and {Japanese TeX Development Community}}, + author = {Kazuki Maeda and {Japanese \TeX{} Development Community}}, date = {2022-07-31}, version = {}, license = {bsd3}, @@ -52561,7 +52572,7 @@ @manual{ctan-pm-isomath, title = {The \texttt{pm-isomath} package}, - subtitle = {Poor man ISO math for pdfLaTeX users}, + subtitle = {Poor man ISO math for pdf\LaTeX{} users}, author = {Claudio Beccari}, date = {2021-08-26}, version = {1.2.00}, @@ -52594,7 +52605,7 @@ @manual{ctan-pmcstex, title = {The \texttt{pmcstex} package}, - subtitle = {LaTeX in emTeX IDE/FrontEnd for EPM}, + subtitle = {\LaTeX{} in emTeX IDE/FrontEnd for EPM}, author = {Petr Mikulik}, date = {2017-04-18}, version = {}, @@ -52857,7 +52868,7 @@ mirror = {https://mirror.ctan.org/macros/unicodetex/latex/polyglossia}, url = {https://ctan.org/pkg/polyglossia}, annotation = {This package provides a complete - replacement for users of LuaLaTeX and \XeLaTeX{}; it relies on the + replacement for users of Lua\LaTeX{} and \XeLaTeX{}; it relies on the package, version 2.0 at least.}, } @@ -53431,7 +53442,7 @@ @manual{ctan-proc, title = {The \texttt{proc} package}, subtitle = {Class for producing “proceedingsâ€}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {1.3m}, license = {lppl1.3c}, @@ -53666,7 +53677,7 @@ @manual{ctan-prosper, title = {The \texttt{prosper} package}, - subtitle = {LaTeX class for high quality slides}, + subtitle = {\LaTeX{} class for high quality slides}, author = {Frederic Goualard}, date = {2017-04-18}, version = {1.0h}, @@ -53693,7 +53704,7 @@ @manual{ctan-protex, title = {The \texttt{protex} package}, subtitle = {Literate programming package}, - author = {{The TeX4ht Team} and Eitan M. Gurari}, + author = {{The \TeX{}4ht Team} and Eitan M. Gurari}, date = {2018-01-06}, version = {}, license = {lppl}, @@ -53799,7 +53810,7 @@ @manual{ctan-ps2pk, title = {The \texttt{ps2pk} package}, subtitle = {Generate a PK font from an Adobe Type 1 font}, - author = {Piet Tutelaers and Pierre A. MacKay and {The TeX Live Team}}, + author = {Piet Tutelaers and Pierre A. MacKay and {The \TeX{} Live Team}}, date = {2016-06-24}, license = {other-free}, mirror = {https://mirror.ctan.org/fonts/utilities/ps2pk}, @@ -53830,7 +53841,7 @@ @manual{ctan-ps4pdf, title = {The \texttt{ps4pdf} package}, - subtitle = {Use PostScript commands inside a pdfLaTeX document}, + subtitle = {Use PostScript commands inside a pdf\LaTeX{} document}, author = {Rolf Niepraschk}, date = {2021-08-26}, version = {0.6i}, @@ -53911,7 +53922,7 @@ @manual{ctan-pseudocode, title = {The \texttt{pseudocode} package}, - subtitle = {LaTeX environment for specifying algorithms in a natural way}, + subtitle = {\LaTeX{} environment for specifying algorithms in a natural way}, author = {Donald L. Kreher}, date = {2019-06-25}, license = {lppl}, @@ -54010,7 +54021,7 @@ url = {https://ctan.org/pkg/psfragger}, annotation = {PSFragger is a Win32 application with which one can perform replacements and even transform - resulting EPS files into PDF files (useful if pdfLaTeX is to be + resulting EPS files into PDF files (useful if pdf\LaTeX{} is to be used). PSFragger can also act as a simple EPS bounding box correction tool and as an EPS to PDF conversion utility.}, } @@ -54039,7 +54050,7 @@ @manual{ctan-psgreek, title = {The \texttt{psgreek} package}, - subtitle = {LaTeX support for Greek Type 1 fonts}, + subtitle = {\LaTeX{} support for Greek Type 1 fonts}, author = {Alexey Kryukov and Christian Justen}, date = {2016-06-24}, version = {0.6}, @@ -54096,7 +54107,7 @@ @manual{ctan-psnfss, title = {The \texttt{psnfss} package}, subtitle = {Font support for common PostScript fonts}, - author = {Walter A. Schmidt and Keiran Harcombe and {The LaTeX Project Team} and Sebastian Rahtz}, + author = {Walter A. Schmidt and Keiran Harcombe and {The \LaTeX{} Project Team} and Sebastian Rahtz}, date = {2021-12-08}, version = {9.3}, license = {lppl}, @@ -55683,7 +55694,7 @@ @manual{ctan-ptex-base, title = {The \texttt{ptex-base} package}, subtitle = {Plain \TeX{} format for pTeX and e-pTeX}, - author = {{Japanese TeX Development Community} and Kazuki Maeda}, + author = {{Japanese \TeX{} Development Community} and Kazuki Maeda}, date = {2022-07-31}, version = {}, license = {bsd3}, @@ -55696,7 +55707,7 @@ @manual{ctan-ptex-fontmaps, title = {The \texttt{ptex-fontmaps} package}, subtitle = {Font maps and configuration tools for Japanese/Chinese/Korean fonts with (u)ptex}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2021-10-22}, version = {20210625.0}, license = {pd,gpl3}, @@ -55707,7 +55718,7 @@ @manual{ctan-ptex-fonts, title = {The \texttt{ptex-fonts} package}, subtitle = {Fonts for use with pTeX}, - author = {{Japanese TeX Development Community} and Kazuki Maeda}, + author = {{Japanese \TeX{} Development Community} and Kazuki Maeda}, date = {2022-09-10}, version = {}, license = {bsd3}, @@ -55718,7 +55729,7 @@ @manual{ctan-ptex-manual, title = {The \texttt{ptex-manual} package}, subtitle = {Japanese pTeX manual}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2022-04-05}, version = {}, license = {bsd3}, @@ -55729,7 +55740,7 @@ @manual{ctan-ptex-texmf, title = {The \texttt{ptex-texmf} package}, subtitle = {Macro and other extensions for use with PTeX}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2020-03-01}, license = {bsd3}, url = {https://ctan.org/pkg/ptex-texmf}, @@ -55743,7 +55754,7 @@ @manual{ctan-ptex, title = {The \texttt{ptex} package}, subtitle = {A \TeX{} system for publishing in Japanese}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2022-02-05}, license = {bsd3}, url = {https://ctan.org/pkg/ptex}, @@ -55752,7 +55763,7 @@ @manual{ctan-ptex2pdf, title = {The \texttt{ptex2pdf} package}, subtitle = {Convert Japanese \TeX{} documents to PDF}, - author = {{Japanese TeX Development Community}}, + author = {{Japanese \TeX{} Development Community}}, date = {2022-07-31}, version = {20200520.0}, license = {gpl2}, @@ -55850,7 +55861,7 @@ @manual{ctan-punk-latex, title = {The \texttt{Punk-LaTeX} package}, - subtitle = {LaTeX support for punk fonts}, + subtitle = {\LaTeX{} support for punk fonts}, author = {Palle Jørgensen}, date = {2016-06-24}, version = {1.1}, @@ -55945,7 +55956,7 @@ @manual{ctan-pxchfon, title = {The \texttt{pxchfon} package}, - subtitle = {Japanese font setup for pLaTeX and upLaTeX}, + subtitle = {Japanese font setup for p\LaTeX{} and upLaTeX}, author = {Takayuki Yato}, date = {2022-07-31}, version = {1.9}, @@ -55956,7 +55967,7 @@ @manual{ctan-pxcjkcat, title = {The \texttt{pxcjkcat} package}, - subtitle = {LaTeX interface for the CJK category codes of upTeX}, + subtitle = {\LaTeX{} interface for the CJK category codes of upTeX}, author = {Takayuki Yato}, date = {2022-07-20}, version = {1.4}, @@ -56312,7 +56323,7 @@ @manual{ctan-qobitree, title = {The \texttt{qobitree} package}, - subtitle = {LaTeX macros for typesetting trees}, + subtitle = {\LaTeX{} macros for typesetting trees}, author = {Jeffrey Siskind}, date = {2016-06-24}, version = {}, @@ -56455,7 +56466,7 @@ @manual{ctan-quicktype, title = {The \texttt{quicktype} package}, - subtitle = {LaTeX package for quick typesetting}, + subtitle = {\LaTeX{} package for quick typesetting}, author = {Xandru Mifsud}, date = {2016-10-08}, version = {0.1}, @@ -56851,7 +56862,7 @@ @manual{ctan-rawfonts, title = {The \texttt{rawfonts} package}, subtitle = {Low level font compatibility mode for \LaTeX{}}, - author = {Alan Jeffrey and {The LaTeX Project Team}}, + author = {Alan Jeffrey and {The \LaTeX{} Project Team}}, date = {2020-10-02}, version = {0.01}, license = {lppl1.3c}, @@ -57467,7 +57478,7 @@ @manual{ctan-report, title = {The \texttt{report} package}, subtitle = {Typeset a multi-chapter report}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.4n}, license = {lppl1.3c}, @@ -57481,7 +57492,7 @@ @manual{ctan-required, title = {The \texttt{required} package}, subtitle = {Packages "required" of a \LaTeX{} distribution}, - author = {{The LaTeX Project Team} and Sebastian Rahtz and Walter A. Schmidt and Vladimir Volovich}, + author = {{The \LaTeX{} Project Team} and Sebastian Rahtz and Walter A. Schmidt and Vladimir Volovich}, date = {2016-06-24}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/required}, @@ -57589,7 +57600,7 @@ like an simple, semi-automatic grid typesetting. It does more or less what the existing   package does. The main differences to  are that -  works also with LuaLaTeX and that it has +  works also with Lua\LaTeX{} and that it has also a command to do some horizontal movements to get to "tab" positions.}, } @@ -57965,7 +57976,7 @@ @manual{ctan-romaniantex, title = {The \texttt{romaniantex} package}, - subtitle = {LaTeX support for Romanian}, + subtitle = {\LaTeX{} support for Romanian}, author = {Adrian Rezus}, date = {2016-06-24}, version = {1.3R}, @@ -58042,7 +58053,7 @@ @manual{ctan-rotating, title = {The \texttt{rotating} package}, subtitle = {Rotation tools, including rotated full-page floats}, - author = {Robin Fairbairns and Sebastian Rahtz and {The LaTeX Project Team}}, + author = {Robin Fairbairns and Sebastian Rahtz and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.16d}, license = {lppl1.3c}, @@ -58471,7 +58482,7 @@ @manual{ctan-russ, title = {The \texttt{russ} package}, - subtitle = {LaTeX in Russian, without babel}, + subtitle = {\LaTeX{} in Russian, without babel}, author = {Sergey Shashkov}, date = {2016-06-24}, version = {}, @@ -58482,7 +58493,7 @@ @manual{ctan-russian-help, title = {The \texttt{russian-help} package}, - subtitle = {LaTeX help in Russian}, + subtitle = {\LaTeX{} help in Russian}, author = {Yuri Lubenets}, date = {2016-06-18}, license = {pd}, @@ -59050,7 +59061,7 @@ title = {The \texttt{schola-otf} package}, subtitle = {Using the OpenType fonts \TeX{} Gyre schola}, author = {Herbert Voß}, - date = {2022-10-17}, + date = {2022-10-18}, version = {0.01}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/fonts/schola-otf}, @@ -59382,7 +59393,7 @@ license = {noinfo}, mirror = {https://mirror.ctan.org/dviware/screenview/vms/screen.sty}, url = {https://ctan.org/pkg/screen}, - annotation = {A small package designed to set geometry to prepare a (LaTeX 2.09) + annotation = {A small package designed to set geometry to prepare a (\LaTeX{} 2.09) document for viewing with something like .}, } @@ -59688,7 +59699,7 @@ @manual{ctan-sdaps, title = {The \texttt{sdaps} package}, - subtitle = {LaTeX support files for SDAPS}, + subtitle = {\LaTeX{} support files for SDAPS}, author = {Benjamin Berg}, date = {2021-11-10}, version = {1.9.10}, @@ -59816,7 +59827,7 @@ @manual{ctan-sectionbreak, title = {The \texttt{sectionbreak} package}, - subtitle = {LaTeX support for section breaks}, + subtitle = {\LaTeX{} support for section breaks}, author = {Michal Hoftich}, date = {2019-03-11}, version = {0.1d}, @@ -60307,7 +60318,7 @@ @manual{ctan-seuthesis, title = {The \texttt{seuthesis} package}, - subtitle = {LaTeX template for theses at Southeastern University}, + subtitle = {\LaTeX{} template for theses at Southeastern University}, author = {Xu Yuan}, date = {2018-04-05}, version = {2.1.2}, @@ -60318,7 +60329,7 @@ @manual{ctan-seuthesix, title = {The \texttt{seuthesix} package}, - subtitle = {LaTeX class for theses at Southeast University, Nanjing, China}, + subtitle = {\LaTeX{} class for theses at Southeast University, Nanjing, China}, author = {James Fan}, date = {2017-04-18}, version = {1.0.1}, @@ -60428,7 +60439,7 @@ @manual{ctan-sgame, title = {The \texttt{sgame} package}, - subtitle = {LaTeX style for typesetting strategic games}, + subtitle = {\LaTeX{} style for typesetting strategic games}, author = {Martin J. Osborne}, date = {2017-04-18}, version = {2.15}, @@ -60496,7 +60507,7 @@ @manual{ctan-shading, title = {The \texttt{shading} package}, - subtitle = {LaTeX package for putting text on a shaded background}, + subtitle = {\LaTeX{} package for putting text on a shaded background}, author = {Art Mulder}, date = {2016-06-24}, version = {1.3}, @@ -60611,7 +60622,7 @@ @manual{ctan-shellesc, title = {The \texttt{shellesc} package}, subtitle = {Unified shell escape interface for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2021-01-03}, version = {1.0c}, license = {lppl1.3c}, @@ -60642,7 +60653,7 @@ @manual{ctan-shlatex, title = {The \texttt{shlatex} package}, - subtitle = {LaTeX compilation script for Linux (written in Bash)}, + subtitle = {\LaTeX{} compilation script for Linux (written in Bash)}, author = {Mael Hilléreau}, date = {2016-06-24}, version = {1.2b}, @@ -60722,7 +60733,7 @@ @manual{ctan-shortvrb, title = {The \texttt{shortvrb} package}, subtitle = {Abbreviated verbatim commands}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-16}, version = {3.0j}, license = {lppl1.3c}, @@ -61521,7 +61532,7 @@ @manual{ctan-slatex, title = {The \texttt{slatex} package}, - subtitle = {LaTeX support for writing Swedish}, + subtitle = {\LaTeX{} support for writing Swedish}, author = {Sven Mattison}, date = {2016-06-24}, license = {lppl}, @@ -61581,7 +61592,7 @@ @manual{ctan-slides, title = {The \texttt{slides} package}, subtitle = {Class for creating slides}, - author = {Frank Mittelbach and Rainer Schöpf and {The LaTeX Project Team}}, + author = {Frank Mittelbach and Rainer Schöpf and {The \LaTeX{} Project Team}}, date = {2022-06-08}, version = {2.4b}, license = {lppl1.3c}, @@ -61841,7 +61852,7 @@ @manual{ctan-softmaker-alteschwabacher, title = {The \texttt{softmaker-alteschwabacher} package}, - subtitle = {LaTeX Support files for the SoftMaker Alte Schwabacher font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Alte Schwabacher font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61852,7 +61863,7 @@ @manual{ctan-softmaker-artistic, title = {The \texttt{softmaker-artistic} package}, - subtitle = {LaTeX Support files for the SoftMaker Artistic font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Artistic font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -61863,7 +61874,7 @@ @manual{ctan-softmaker-baskervillenova, title = {The \texttt{softmaker-baskervillenova} package}, - subtitle = {LaTeX Support files for the SoftMaker Baskerville Nova fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Baskerville Nova fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -61874,7 +61885,7 @@ @manual{ctan-softmaker-bonita, title = {The \texttt{softmaker-bonita} package}, - subtitle = {LaTeX Support files for SoftMaker Bonita}, + subtitle = {\LaTeX{} Support files for SoftMaker Bonita}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61885,7 +61896,7 @@ @manual{ctan-softmaker-broadway, title = {The \texttt{softmaker-broadway} package}, - subtitle = {LaTeX Support files for the SoftMaker Broadway fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Broadway fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61896,7 +61907,7 @@ @manual{ctan-softmaker-canossa, title = {The \texttt{softmaker-canossa} package}, - subtitle = {LaTeX Support files for the SoftMaker Canossa fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Canossa fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.2}, @@ -61907,7 +61918,7 @@ @manual{ctan-softmaker-congress, title = {The \texttt{softmaker-congress} package}, - subtitle = {LaTeX Support files for the SoftMaker Congress fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Congress fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -61918,7 +61929,7 @@ @manual{ctan-softmaker-delanocaps, title = {The \texttt{softmaker-delanocaps} package}, - subtitle = {LaTeX Support files for the SoftMaker Delano Caps font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Delano Caps font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -61929,7 +61940,7 @@ @manual{ctan-softmaker-digital, title = {The \texttt{softmaker-digital} package}, - subtitle = {LaTeX Support files for the SoftMaker Digital fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Digital fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61940,7 +61951,7 @@ @manual{ctan-softmaker-egyptiennestd, title = {The \texttt{softmaker-egyptiennestd} package}, - subtitle = {LaTeX Support files for the SoftMaker EgyptienneStd fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker EgyptienneStd fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61951,7 +61962,7 @@ @manual{ctan-softmaker-flagstaff, title = {The \texttt{softmaker-flagstaff} package}, - subtitle = {LaTeX Support files for the SoftMaker Flagstaff font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Flagstaff font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -61962,7 +61973,7 @@ @manual{ctan-softmaker-grenoble, title = {The \texttt{softmaker-grenoble} package}, - subtitle = {LaTeX Support files for the SoftMaker Grenoble fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Grenoble fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61973,7 +61984,7 @@ @manual{ctan-softmaker-helium, title = {The \texttt{softmaker-helium} package}, - subtitle = {LaTeX Support files for the SoftMaker Helium fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Helium fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.1}, @@ -61984,7 +61995,7 @@ @manual{ctan-softmaker-heliumtwo, title = {The \texttt{softmaker-heliumtwo} package}, - subtitle = {LaTeX Support files for the SoftMaker Helium fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Helium fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -61995,7 +62006,7 @@ @manual{ctan-softmaker-henderson, title = {The \texttt{softmaker-henderson} package}, - subtitle = {LaTeX Support files for the SoftMaker Henderson font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Henderson font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -62006,7 +62017,7 @@ @manual{ctan-softmaker-iceberg, title = {The \texttt{softmaker-iceberg} package}, - subtitle = {LaTeX Support files for the SoftMaker Iceberg font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Iceberg font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -62017,7 +62028,7 @@ @manual{ctan-softmaker-inverserif, title = {The \texttt{softmaker-inverserif} package}, - subtitle = {LaTeX Support files for the SoftMaker Inverserif font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Inverserif font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62028,7 +62039,7 @@ @manual{ctan-softmaker-jugendstil, title = {The \texttt{softmaker-jugendstil} package}, - subtitle = {LaTeX Support files for the SoftMaker Jugendstil font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Jugendstil font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -62039,7 +62050,7 @@ @manual{ctan-softmaker-marseille, title = {The \texttt{softmaker-marseille} package}, - subtitle = {LaTeX Support files for the SoftMaker Marseille fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Marseille fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62050,7 +62061,7 @@ @manual{ctan-softmaker-moab, title = {The \texttt{softmaker-moab} package}, - subtitle = {LaTeX Support files for the SoftMaker Moab font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Moab font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62061,7 +62072,7 @@ @manual{ctan-softmaker-nevada, title = {The \texttt{softmaker-nevada} package}, - subtitle = {LaTeX Support files for the SoftMaker Nevada fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Nevada fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62072,7 +62083,7 @@ @manual{ctan-softmaker-newcastle, title = {The \texttt{softmaker-newcastle} package}, - subtitle = {LaTeX Support files for the SoftMaker Newcastle fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Newcastle fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62083,7 +62094,7 @@ @manual{ctan-softmaker-oldblackletter, title = {The \texttt{softmaker-oldblackletter} package}, - subtitle = {LaTeX Support files for the SoftMaker Old Blackletter font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Old Blackletter font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -62094,7 +62105,7 @@ @manual{ctan-softmaker-quadrat, title = {The \texttt{softmaker-quadrat} package}, - subtitle = {LaTeX Support files for the SoftMaker Quadrat fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Quadrat fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62105,7 +62116,7 @@ @manual{ctan-softmaker-stonehand, title = {The \texttt{softmaker-stonehand} package}, - subtitle = {LaTeX Support files for the SoftMaker Stone Handwriting font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Stone Handwriting font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.3}, @@ -62116,7 +62127,7 @@ @manual{ctan-softmaker-sunset, title = {The \texttt{softmaker-sunset} package}, - subtitle = {LaTeX Support files for the SoftMaker Sunset fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Sunset fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.2}, @@ -62127,7 +62138,7 @@ @manual{ctan-softmaker-tampa, title = {The \texttt{softmaker-tampa} package}, - subtitle = {LaTeX Support files for the SoftMaker Congress fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Congress fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62138,7 +62149,7 @@ @manual{ctan-softmaker-vagrounded, title = {The \texttt{softmaker-vagrounded} package}, - subtitle = {LaTeX Support files for the SoftMaker VAGRounded font}, + subtitle = {\LaTeX{} Support files for the SoftMaker VAGRounded font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.1}, @@ -62149,7 +62160,7 @@ @manual{ctan-softmaker-velo, title = {The \texttt{softmaker-velo} package}, - subtitle = {LaTeX Support files for the SoftMaker Velo font}, + subtitle = {\LaTeX{} Support files for the SoftMaker Velo font}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62160,7 +62171,7 @@ @manual{ctan-softmaker-veracruz, title = {The \texttt{softmaker-veracruz} package}, - subtitle = {LaTeX Support files for the SoftMaker Veracruz fonts}, + subtitle = {\LaTeX{} Support files for the SoftMaker Veracruz fonts}, author = {Josef Kleber}, date = {2016-08-23}, version = {1.0}, @@ -62183,7 +62194,7 @@ @manual{ctan-somedefs, title = {The \texttt{somedefs} package}, subtitle = {Save loading all of another package}, - author = {Alan Jeffrey and {The LaTeX Project Team}}, + author = {Alan Jeffrey and {The \LaTeX{} Project Team}}, date = {2020-10-02}, version = {0.03}, license = {lppl1.3c}, @@ -62312,7 +62323,7 @@ @manual{ctan-source2e, title = {The \texttt{source2e} package}, subtitle = {LaTeX2e kernel documentation for the entire system as one document}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2017-04-18}, version = {}, license = {lppl}, @@ -62524,7 +62535,7 @@ @manual{ctan-sphdthesis, title = {The \texttt{sphdthesis} package}, - subtitle = {LaTeX template for writing PhD Thesis}, + subtitle = {\LaTeX{} template for writing PhD Thesis}, author = {Saurabh Garg}, date = {2017-04-18}, version = {1.0}, @@ -64162,7 +64173,7 @@ @manual{ctan-syntonly, title = {The \texttt{syntonly} package}, subtitle = {Run a document through \LaTeX{} for syntax checking}, - author = {Frank Mittelbach and Rainer Schöpf and {The LaTeX Project Team}}, + author = {Frank Mittelbach and Rainer Schöpf and {The \LaTeX{} Project Team}}, date = {2019-10-04}, version = {2.1e}, license = {lppl1.3c}, @@ -64260,7 +64271,7 @@ @manual{ctan-t1enc, title = {The \texttt{t1enc} package}, subtitle = {Standard package for activating ec fonts}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2016-06-24}, version = {}, license = {lppl}, @@ -64683,7 +64694,7 @@ @manual{ctan-tabularx, title = {The \texttt{tabularx} package}, subtitle = {Tabulars with adjustable-width columns}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.11c}, license = {lppl1.3c}, @@ -64736,7 +64747,7 @@ @manual{ctan-tagging, title = {The \texttt{tagging} package}, subtitle = {Document configuration with tags}, - author = {Brent Longborough and {The LaTeX Project Team}}, + author = {Brent Longborough and {The \LaTeX{} Project Team}}, date = {2021-12-20}, version = {1.1.0.1}, license = {lppl1.3}, @@ -64757,7 +64768,7 @@ @manual{ctan-tagpdf, title = {The \texttt{tagpdf} package}, - subtitle = {Tools for experimenting with tagging using pdfLaTeX and LuaLaTeX}, + subtitle = {Tools for experimenting with tagging using pdf\LaTeX{} and LuaLaTeX}, author = {Ulrike Fischer}, date = {2022-08-24}, version = {0.97}, @@ -64961,7 +64972,7 @@ @manual{ctan-tcltexed, title = {The \texttt{tcltexed} package}, - subtitle = {LaTeX editor written in TCL}, + subtitle = {\LaTeX{} editor written in TCL}, author = {Martin Strauß}, date = {2016-06-24}, version = {}, @@ -65226,7 +65237,7 @@ @manual{ctan-tengwarscript, title = {The \texttt{TengwarScript} package}, - subtitle = {LaTeX support for using Tengwar fonts}, + subtitle = {\LaTeX{} support for using Tengwar fonts}, author = {Ignacio Fernández Galván}, date = {2016-06-24}, version = {1.3.1}, @@ -65401,7 +65412,7 @@ @manual{ctan-testmath, title = {The \texttt{testmath} package}, - subtitle = {Examples of the AMS-LaTeX package}, + subtitle = {Examples of the AMS-\LaTeX{} package}, author = {{The American Mathematical Society}}, date = {2017-09-08}, version = {2.0}, @@ -65879,7 +65890,7 @@ @manual{ctan-tex2ltx, title = {The \texttt{tex2ltx} package}, - subtitle = {AMS-TeX to AMS-LaTeX converter}, + subtitle = {AMS-TeX to AMS-\LaTeX{} converter}, author = {Pedro Fortuny}, date = {2016-06-24}, license = {gpl}, @@ -65931,7 +65942,7 @@ @manual{ctan-tex2word, title = {The \texttt{tex2word} package}, - subtitle = {Convert \TeX{}/LaTeX to MSWord}, + subtitle = {Convert \TeX{}/\LaTeX{} to MSWord}, author = {Kirill A Chikrii}, date = {2017-04-18}, version = {2.0}, @@ -65958,7 +65969,7 @@ @manual{ctan-tex4ht, title = {The \texttt{TeX4ht} package}, subtitle = {Convert (La)TeX to HTML/XML}, - author = {{The TeX4ht Team} and Eitan M. Gurari}, + author = {{The \TeX{}4ht Team} and Eitan M. Gurari}, date = {2021-10-11}, license = {lppl}, mirror = {https://mirror.ctan.org/support/TeX4ht}, @@ -66171,7 +66182,7 @@ @manual{ctan-texdoc, title = {The \texttt{texdoc} package}, subtitle = {Documentation access for \TeX{} Live}, - author = {Takuto Asakura and Thomas Esser and Manuel Pégourié-Gonnard and {The TeX Live Team}}, + author = {Takuto Asakura and Thomas Esser and Manuel Pégourié-Gonnard and {The \TeX{} Live Team}}, date = {2022-03-19}, version = {3.4.1}, license = {gpl}, @@ -66395,7 +66406,7 @@ @manual{ctan-texlab, title = {The \texttt{TeXLab} package}, - subtitle = {LaTeX Language Server}, + subtitle = {\LaTeX{} Language Server}, author = {Eric Förster}, date = {2022-07-03}, version = {4.2.0}, @@ -66417,7 +66428,7 @@ @manual{ctan-texlipse, title = {The \texttt{texlipse} package}, - subtitle = {LaTeX plugin for Eclipse}, + subtitle = {\LaTeX{} plugin for Eclipse}, author = {Boris von Loesch and Taavi Hupponen and Kimmo Karlsson and Jani Laitinen and Oskar Ojala and Antti Pirinen and Esa Seuranen and Laura Takkinen}, date = {2017-04-18}, version = {1.5.0}, @@ -66511,7 +66522,7 @@ @manual{ctan-texlive-repo, title = {The \texttt{texlive-repo} package}, subtitle = {A mirror of the \TeX{} Live repository}, - author = {{The TeX Live Team}}, + author = {{The \TeX{} Live Team}}, date = {2021-08-26}, version = {2016}, license = {other-free}, @@ -66522,7 +66533,7 @@ @manual{ctan-texlive-source, title = {The \texttt{TeX Live source tree} package}, subtitle = {Sources of the \TeX{} Live distribution}, - author = {{The TeX Live Team}}, + author = {{The \TeX{} Live Team}}, date = {2021-08-26}, license = {other-free}, mirror = {https://mirror.ctan.org/systems/texlive/Source}, @@ -66532,7 +66543,7 @@ @manual{ctan-texlive, title = {The \texttt{texlive} package}, subtitle = {A comprehensive distribution of \TeX{} and friends}, - author = {{The TeX Live Team}}, + author = {{The \TeX{} Live Team}}, date = {2022-04-04}, version = {2022}, license = {other-free}, @@ -67010,7 +67021,7 @@ @manual{ctan-textcomp, title = {The \texttt{textcomp} package}, - subtitle = {LaTeX support for the Text Companion fonts}, + subtitle = {\LaTeX{} support for the Text Companion fonts}, author = {Sebastian Rahtz}, date = {2016-06-24}, license = {lppl}, @@ -67409,7 +67420,7 @@ @manual{ctan-theorem, title = {The \texttt{theorem} package}, subtitle = {Manipulate theorem environments}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {2.2c}, license = {lppl1.3c}, @@ -67601,7 +67612,7 @@ @manual{ctan-threecolumn, title = {The \texttt{threecolumn} package}, - subtitle = {LaTeX output in three columns}, + subtitle = {\LaTeX{} output in three columns}, author = {George Greenwade}, date = {2016-06-24}, version = {}, @@ -69530,7 +69541,7 @@ @manual{ctan-tpic2pdftex, title = {The \texttt{tpic2pdftex} package}, subtitle = {Use tpic commands in pdfTeX}, - author = {Hartmut Henkel and {The TeX Live Team}}, + author = {Hartmut Henkel and {The \TeX{} Live Team}}, date = {2017-06-27}, license = {gpl}, mirror = {https://mirror.ctan.org/graphics/tpic2pdftex}, @@ -69596,7 +69607,7 @@ @manual{ctan-trace, title = {The \texttt{trace} package}, subtitle = {Make sensible use of \TeX{} tracing in \LaTeX{}}, - author = {Frank Mittelbach and {The LaTeX Project Team}}, + author = {Frank Mittelbach and {The \LaTeX{} Project Team}}, date = {2021-08-26}, version = {1.1f}, license = {lppl1.3c}, @@ -69988,7 +69999,7 @@ @manual{ctan-trig, title = {The \texttt{trig} package}, subtitle = {Simple trigonometric functions}, - author = {David Carlisle and {The LaTeX Project Team}}, + author = {David Carlisle and {The \LaTeX{} Project Team}}, date = {2021-11-12}, version = {1.11}, license = {lppl1.3c}, @@ -70106,7 +70117,7 @@ license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/luatex/latex/truthtable}, url = {https://ctan.org/pkg/truthtable}, - annotation = {This LuaLaTeX package permits to automatically generate + annotation = {This Lua\LaTeX{} package permits to automatically generate truth tables given a table header. It supports a number of logical operations which can be combined as needed. It is built upon the @@ -70115,7 +70126,7 @@ @manual{ctan-try, title = {The \texttt{TrY} package}, - subtitle = {Automation of \TeX{}/LaTeX compilation}, + subtitle = {Automation of \TeX{}/\LaTeX{} compilation}, author = {Ajabu Tex}, date = {2016-06-24}, version = {4.0}, @@ -70123,7 +70134,7 @@ mirror = {https://mirror.ctan.org/support/try}, url = {https://ctan.org/pkg/try}, annotation = {The package offers a script that automates the compilation of - \TeX{}/LaTeX documents. TrY reads commands from the comment lines of + \TeX{}/\LaTeX{} documents. TrY reads commands from the comment lines of the document and executes them automatically. TrY may be compared to , but is simpler. TrY has been written for Linux and works on Linux.}, @@ -70296,7 +70307,7 @@ @manual{ctan-tuda-ci, title = {The \texttt{tuda-ci} package}, - subtitle = {LaTeX templates of Technische Universität Darmstadt}, + subtitle = {\LaTeX{} templates of Technische Universität Darmstadt}, author = {Marei Peischl}, date = {2022-08-03}, version = {3.27}, @@ -70354,7 +70365,7 @@ @manual{ctan-tugboat, title = {The \texttt{tugboat} package}, - subtitle = {LaTeX macros for TUGboat articles}, + subtitle = {\LaTeX{} macros for TUGboat articles}, author = {Robin Fairbairns and Karl Berry}, date = {2022-05-22}, version = {2.27}, @@ -70404,7 +70415,7 @@ @manual{ctan-turkish, title = {The \texttt{turkish} package}, - subtitle = {LaTeX Support for Typesetting Turkish}, + subtitle = {\LaTeX{} Support for Typesetting Turkish}, author = {Pierre A. MacKay}, date = {2019-06-09}, license = {lppl}, @@ -70935,7 +70946,7 @@ @manual{ctan-ucalgmthesis, title = {The \texttt{ucalgmthesis} package}, - subtitle = {LaTeX thesis class for University of Calgary Faculty of Graduate Studies}, + subtitle = {\LaTeX{} thesis class for University of Calgary Faculty of Graduate Studies}, author = {Richard Zach}, date = {2019-10-24}, version = {}, @@ -71027,7 +71038,7 @@ @manual{ctan-ucthesis209, title = {The \texttt{ucthesis209} package}, - subtitle = {LaTeX 2.09 document style for UC Theses}, + subtitle = {\LaTeX{} 2.09 document style for UC Theses}, author = {Ethan V. Munson}, date = {2016-06-24}, version = {2.7}, @@ -71236,7 +71247,7 @@ @manual{ctan-uktug-bask, title = {The \texttt{uktug-bask} package}, subtitle = {Old copies and sources of Baskerville}, - author = {{UK TeX Users Group}}, + author = {{UK \TeX{} Users Group}}, date = {2017-04-18}, version = {}, license = {noinfo}, @@ -71480,7 +71491,7 @@ @manual{ctan-undergradmath, title = {The \texttt{undergradmath} package}, - subtitle = {LaTeX Math for Undergraduates cheat sheet}, + subtitle = {\LaTeX{} Math for Undergraduates cheat sheet}, author = {Jim Hefferon}, date = {2021-01-03}, version = {}, @@ -71685,7 +71696,7 @@ @manual{ctan-unicode-data, title = {The \texttt{unicode-data} package}, subtitle = {Unicode data and loaders for \TeX{}}, - author = {Joseph Wright and {The LaTeX Project Team}}, + author = {Joseph Wright and {The \LaTeX{} Project Team}}, date = {2022-09-17}, version = {1.16}, license = {lppl1.3c}, @@ -71741,7 +71752,7 @@ @manual{ctan-unigrazpub, title = {The \texttt{unigrazpub} package}, - subtitle = {LaTeX templates for University of Graz Library Publishing Services}, + subtitle = {\LaTeX{} templates for University of Graz Library Publishing Services}, author = {Marei Peischl}, date = {2022-10-16}, version = {1.00}, @@ -71781,7 +71792,7 @@ license = {gpl3+,fdl}, mirror = {https://mirror.ctan.org/macros/unicodetex/latex/unisc}, url = {https://ctan.org/pkg/unisc}, - annotation = {LaTeX produces small caps with + annotation = {\LaTeX{} produces small caps with or . Neither of these commands produce small caps in Unicode. If the output text is copied and pasted somewhere @@ -71789,7 +71800,7 @@ This package aims to internally convert all the characters provided to the commands mentioned above. It assumes that the file using this package is compiled - with Lua/XeLaTeX and a good Unicode font which has the + with Lua/Xe\LaTeX{} and a good Unicode font which has the small caps characters, e.g., .}, } @@ -71828,7 +71839,7 @@ annotation = {A(n obsolete) package which used to provide a LuaLaTeX based code for converting Unicode IPA input to T3 encoded TIPA typefaces, but it is recommended to use - with Xe/LuaLaTeX instead + with Xe/Lua\LaTeX{} instead for a better output.}, } @@ -71940,7 +71951,7 @@ @manual{ctan-unpacked, title = {The \texttt{unpacked} package}, subtitle = {Unpacked copy of the \LaTeX{} sources}, - author = {{The LaTeX Project Team} and Frank Mittelbach and Leslie Lamport}, + author = {{The \LaTeX{} Project Team} and Frank Mittelbach and Leslie Lamport}, date = {2017-04-18}, version = {}, license = {lppl}, @@ -72051,7 +72062,7 @@ @manual{ctan-uplatex, title = {The \texttt{uplatex} package}, subtitle = {pLaTeX2e and miscellaneous macros for upTeX}, - author = {Kazuki Maeda and {Japanese TeX Development Community}}, + author = {Kazuki Maeda and {Japanese \TeX{} Development Community}}, date = {2022-07-31}, version = {}, license = {bsd3}, @@ -72117,7 +72128,7 @@ @manual{ctan-uptex-base, title = {The \texttt{uptex-base} package}, subtitle = {Plain \TeX{} formats and documents for upTeX}, - author = {Kazuki Maeda and Takuji Tanaka and {Japanese TeX Development Community}}, + author = {Kazuki Maeda and Takuji Tanaka and {Japanese \TeX{} Development Community}}, date = {2022-07-31}, version = {}, license = {bsd3}, @@ -72130,7 +72141,7 @@ @manual{ctan-uptex-fonts, title = {The \texttt{uptex-fonts} package}, subtitle = {Fonts for use with upTeX}, - author = {Kazuki Maeda and {Japanese TeX Development Community} and Takuji Tanaka}, + author = {Kazuki Maeda and {Japanese \TeX{} Development Community} and Takuji Tanaka}, date = {2022-03-10}, version = {}, license = {bsd3}, @@ -72404,7 +72415,7 @@ @manual{ctan-usrguide, title = {The \texttt{usrguide} package}, subtitle = {User-mode documentation for \LaTeX{}}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2019-10-04}, license = {lppl}, mirror = {https://mirror.ctan.org/macros/latex/base}, @@ -72610,7 +72621,7 @@ @manual{ctan-uwthesis209, title = {The \texttt{uwthesis209} package}, - subtitle = {LaTeX 2.09 style for University of Washington theses}, + subtitle = {\LaTeX{} 2.09 style for University of Washington theses}, author = {Jim Fox}, date = {2016-06-24}, version = {1.5}, @@ -72841,7 +72852,7 @@ @manual{ctan-vector, title = {The \texttt{vector} package}, - subtitle = {LaTeX macros for vectors}, + subtitle = {\LaTeX{} macros for vectors}, author = {Nick Efford}, date = {2016-06-24}, version = {1.0}, @@ -72940,7 +72951,7 @@ @manual{ctan-verbatim, title = {The \texttt{verbatim} package}, subtitle = {Reimplementation of and extensions to \LaTeX{} verbatim}, - author = {Rainer Schöpf and {The LaTeX Project Team}}, + author = {Rainer Schöpf and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.5u}, license = {lppl1.3c}, @@ -73830,7 +73841,7 @@ @manual{ctan-wasysym, title = {The \texttt{wasysym} package}, - subtitle = {LaTeX support for the wasy fonts}, + subtitle = {\LaTeX{} support for the wasy fonts}, author = {Axel Kielhorn}, date = {2020-02-02}, version = {2.4}, @@ -73890,7 +73901,7 @@ @manual{ctan-web2c, title = {The \texttt{Web2C} package}, subtitle = {Conversion programs and supporting code to compile \TeX{} in C}, - author = {Olaf Weber and {The TeX Live Team}}, + author = {Olaf Weber and {The \TeX{} Live Team}}, date = {2022-01-17}, license = {gpl}, url = {https://ctan.org/pkg/web2c}, @@ -74158,7 +74169,7 @@ license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/biblatex-contrib/windycity}, url = {https://ctan.org/pkg/windycity}, - annotation = {Windy City is a style for BibLaTeX that formats notes, + annotation = {Windy City is a style for Bib\LaTeX{} that formats notes, bibliographies, parenthetical citations, and reference lists according to the 17th edition of .}, } @@ -74304,14 +74315,14 @@ @manual{ctan-wnri-latex, title = {The \texttt{wnri-latex} package}, - subtitle = {LaTeX support for wnri fonts}, + subtitle = {\LaTeX{} support for wnri fonts}, author = {Anshuman Pandey}, date = {2018-01-06}, version = {1.0b}, license = {gpl2}, mirror = {https://mirror.ctan.org/macros/latex/contrib/wnri-latex}, url = {https://ctan.org/pkg/wnri-latex}, - annotation = {LaTeX support for the fonts.}, + annotation = {\LaTeX{} support for the fonts.}, } @manual{ctan-wnri, @@ -74568,7 +74579,7 @@ @manual{ctan-wsemclassic, title = {The \texttt{wsemclassic} package}, - subtitle = {LaTeX class for Bavarian school w-seminar papers}, + subtitle = {\LaTeX{} class for Bavarian school w-seminar papers}, author = {Johannes Rosenberger}, date = {2017-04-18}, version = {1.0.1}, @@ -74705,7 +74716,7 @@ annotation = {This package provides an Unicode Math font meant to be used together with - (extension of Bitstream Charter) in LuaLaTeX or \XeLaTeX{} documents.}, + (extension of Bitstream Charter) in Lua\LaTeX{} or \XeLaTeX{} documents.}, } @manual{ctan-xcharter, @@ -74772,7 +74783,7 @@ @manual{ctan-xcoffins, title = {The \texttt{xcoffins} package}, subtitle = {Rich boxed material for \LaTeX{} 3}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-04-20}, version = {}, license = {lppl1.3c}, @@ -74815,7 +74826,7 @@ @manual{ctan-xcolor, title = {The \texttt{xcolor} package}, subtitle = {Driver-independent color extensions for \LaTeX{} and pdfLaTeX}, - author = {Uwe Kern and {The LaTeX Project Team}}, + author = {Uwe Kern and {The \LaTeX{} Project Team}}, date = {2022-06-12}, version = {2.14}, license = {lppl1.3c}, @@ -74881,7 +74892,7 @@ @manual{ctan-xduthesis, title = {The \texttt{xduthesis} package}, - subtitle = {XeLaTeX template for writing Xidian University Thesis}, + subtitle = {Xe\LaTeX{} template for writing Xidian University Thesis}, author = {Fei Qi}, date = {2022-04-09}, version = {1.00}, @@ -75109,7 +75120,7 @@ @manual{ctan-xetex-def, title = {The \texttt{xetex-def} package}, subtitle = {Colour and graphics support for XeTeX}, - author = {Ross Moore and Jonathan Kew and {The LaTeX Project Team}}, + author = {Ross Moore and Jonathan Kew and {The \LaTeX{} Project Team}}, date = {2022-09-23}, version = {5.0n}, license = {lppl1.3c}, @@ -75179,7 +75190,7 @@ @manual{ctan-xetex, title = {The \texttt{xetex} package}, subtitle = {An extended variant of \TeX{} for use with Unicode sources}, - author = {Jonathan Kew and Arthur Rosendahl and Khaled Hosny and {The TeX Live Team}}, + author = {Jonathan Kew and Arthur Rosendahl and Khaled Hosny and {The \TeX{} Live Team}}, date = {2022-01-25}, license = {x11}, url = {https://ctan.org/pkg/xetex}, @@ -75269,7 +75280,7 @@ @manual{ctan-xfp, title = {The \texttt{xfp} package}, subtitle = {Interface to the \LaTeX{}3 floating point unit}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-22}, version = {}, license = {lppl1.3c}, @@ -75291,7 +75302,7 @@ @manual{ctan-xgalley, title = {The \texttt{xgalley} package}, subtitle = {Control text feeding onto the page}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-04-20}, version = {}, license = {lppl1.3c}, @@ -75519,7 +75530,7 @@ @manual{ctan-xlatex, title = {The \texttt{xlatex} package}, - subtitle = {A \TeX{}/LaTeX shell for X-windows}, + subtitle = {A \TeX{}/\LaTeX{} shell for X-windows}, author = {Mario Dragone}, date = {2016-06-24}, version = {3.3c}, @@ -75662,7 +75673,7 @@ @manual{ctan-xparse, title = {The \texttt{xparse} package}, subtitle = {A generic document command parser}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-22}, version = {}, license = {lppl1.3c}, @@ -75804,7 +75815,7 @@ @manual{ctan-xr, title = {The \texttt{xr} package}, subtitle = {References to other \LaTeX{} documents}, - author = {David Carlisle and Jean-Pierre Drucbert and {The LaTeX Project Team}}, + author = {David Carlisle and Jean-Pierre Drucbert and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {5.06}, license = {lppl1.3c}, @@ -75864,7 +75875,7 @@ @manual{ctan-xspace, title = {The \texttt{xspace} package}, subtitle = {Define commands that appear not to eat spaces}, - author = {David Carlisle and Morten Høgholm and {The LaTeX Project Team}}, + author = {David Carlisle and Morten Høgholm and {The \LaTeX{} Project Team}}, date = {2021-06-01}, version = {1.13}, license = {lppl1.3c}, @@ -75927,7 +75938,7 @@ @manual{ctan-xtemplate, title = {The \texttt{xtemplate} package}, subtitle = {A high-level interface for declaring document commands}, - author = {{The LaTeX Project Team}}, + author = {{The \LaTeX{} Project Team}}, date = {2022-06-22}, version = {}, license = {lppl1.3c}, @@ -76526,7 +76537,7 @@ @manual{ctan-zblbuild, title = {The \texttt{zblbuild} package}, - subtitle = {Help with the choice of a BibLaTeX style and options}, + subtitle = {Help with the choice of a Bib\LaTeX{} style and options}, author = {Guido Milanese}, date = {2019-08-28}, version = {0.1c}, diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf index 7d138f2943..65d884185a 100644 Binary files a/biblio/ctan-bibdata/ctan.pdf and b/biblio/ctan-bibdata/ctan.pdf differ diff --git a/fonts/cooperhewitt/README b/fonts/cooperhewitt/README new file mode 100644 index 0000000000..bd9ecfb48c --- /dev/null +++ b/fonts/cooperhewitt/README @@ -0,0 +1,69 @@ +This is the README for the CooperHewitt package, version 2022-10-18. + +This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX +support for the Cooper Hewitt family of sans serif fonts, +designed by Chester Jenkins. + +Cooper Hewitt is a contemporary sans serif, with characters +composed of modified-geometric curves and arches. Initially +commissioned by Pentagram to evolve his Polaris Condensed +typeface, Chester Jenkins created a new digital form to +support the newly transformed Smithsonian Design Museum. + +To install this package on a TDS-compliant +TeX system download the file +"tex-archive"/install/fonts/cooperhewitt.tds.zip, +where the preferred URL for "tex-archive" is +http://mirror.ctan.org. Unzip the archive at the root of +an appropriate texmf tree, likely a personal or local +tree. If necessary, update the file-name database (e.g., +texhash). Update the font-map files by enabling the Map file +CooperHewitt.map. + +To use, add + +\usepackage{CooperHewitt} + +to the preamble of your document. This makes Cooper Hewitt +the default sans family. To also set Cooper Hewitt as the +main text font, use + +\usepackage[sfdefault]{CooperHewitt} + +LuaLaTeX and xeLaTeX users who might prefer type1 fonts or +who wish to avoid fontspec may use the type1 option. + +Other options include: + +semibold +heavy + +medium +light +thin + +Defaults are book and bold. + +Options scaled= or scale= may be used to adjust +fontsizes to match a serifed font. + +Slanted variants are not supported; the designed italic +variants will be automatically substituted. The only figure +style supported is tabular-lining. Font encodings supported +are OT1, T1, TS1, LY1. + +Macro \cooperhewitt selects the Cooper Hewitt font family. + +The original fonts are available at +https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/ + +and are licensed under the SIL Open Font License, +(version 1.1); the text may be found in the doc directory. +The type1 versions were created using cfftot1 and re-named +in accordance with the Reserved Font Name clause of the +licence. + +The support files were created using autoinst +and are licensed under the terms of the LaTeX Project Public +License. The maintainer of this package is Bob Tennent (rdt +at cs.queensu.ca) diff --git a/fonts/cooperhewitt/doc/OFL.txt b/fonts/cooperhewitt/doc/OFL.txt new file mode 100644 index 0000000000..fd6c6858b3 --- /dev/null +++ b/fonts/cooperhewitt/doc/OFL.txt @@ -0,0 +1,45 @@ +Copyright (c) 2014, Cooper Hewitt Smithsonian Design Museum (cooperhewitt.org), with Reserved Font Name Cooper Hewitt. + + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the copyright statement(s). + +"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. + +5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/cooperhewitt/doc/cooperhewitt-samples.pdf b/fonts/cooperhewitt/doc/cooperhewitt-samples.pdf new file mode 100644 index 0000000000..64d04d87f4 Binary files /dev/null and b/fonts/cooperhewitt/doc/cooperhewitt-samples.pdf differ diff --git a/fonts/cooperhewitt/doc/cooperhewitt-samples.tex b/fonts/cooperhewitt/doc/cooperhewitt-samples.tex new file mode 100644 index 0000000000..39c239f1b1 --- /dev/null +++ b/fonts/cooperhewitt/doc/cooperhewitt-samples.tex @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage[T1]{fontenc} +\usepackage[sfdefault]{CooperHewitt} +\usepackage{textcomp} +\usepackage{lipsum} +\begin{document} + +\subsection*{Regular} +\lipsum[1] + +\subsection*{Italic} +\textit{\lipsum[2]} + +\subsection*{Bold} + +\textbf{\lipsum[3]} + +\subsection*{Bold Italic} + +\textbf{\textit{\lipsum[4]}} + +\subsection*{Numbers} + +0123456789 + +\subsection*{Superior Numbers} + +X\textsu{1234567890} + + +\end{document} diff --git a/fonts/cooperhewitt/enc/cphwt_4je6jj.enc b/fonts/cooperhewitt/enc/cphwt_4je6jj.enc new file mode 100644 index 0000000000..5b77ecbe67 --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_4je6jj.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_4je6jjhrg5rho5ondun56s3l5g +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_4je6jjhrg5rho5ondun56s3l5g [ +%00 + /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron + /breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright +%10 + /quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /period.T + /comma.T /dotlessi /dotlessj /colon.T /semicolon.T /.notdef /.notdef /.notdef +%20 + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +%30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde /hyphen +%80 + /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve + /Lacute /Lcaron /Lslash /Nacute /Ncaron /Eng /Ohungarumlaut /Racute +%90 + /Rcaron /Sacute /Scaron /Scedilla /Tcaron /Tcommaaccent /Uhungarumlaut /Uring + /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section +%A0 + /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve + /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute +%B0 + /rcaron /sacute /scaron /scedilla /tcaron /tcommaaccent /uhungarumlaut /uring + /ydieresis /zacute /zcaron /zdotaccent /ij /exclamdown /questiondown /sterling +%C0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +%D0 + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef +%E0 + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +%F0 + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls +] def +% Command line: 'otftotfm --automatic --encoding=fontools_t1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=EXTENDED TEX FONT ENCODING - LATIN --feature=kern +% --feature=tnum CpHwt-BoldItalic.otf CpHwt-BoldItalic-tlf-t1' diff --git a/fonts/cooperhewitt/enc/cphwt_kvtx4d.enc b/fonts/cooperhewitt/enc/cphwt_kvtx4d.enc new file mode 100644 index 0000000000..4b214671e5 --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_kvtx4d.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_kvtx4dqkzszapznbigqwwrppgc +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_kvtx4dqkzszapznbigqwwrppgc [ +%00 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /cedilla /ogonek /quotesinglbase /asterisk /C +%10 + /bar /endash /quotedblbase /.notdef /.notdef /.notdef /.notdef /.notdef + /arrowleft /arrowright /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%20 + /.notdef /.notdef /.notdef /.notdef /dollar /.notdef /.notdef /quotesingle + /.notdef /.notdef /.notdef /.notdef /comma /.notdef /period /fraction +%30 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /minus /.notdef /.notdef +%40 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%50 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /arrowup /arrowdown +%60 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%70 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%80 + /.notdef /.notdef /.notdef /.notdef /dagger /daggerdbl /.notdef /perthousand + /bullet /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%90 + /.notdef /.notdef /.notdef /.notdef /interrobang /interrobangdown /.notdef /trademark + /.notdef /.notdef /.notdef /numero /.notdef /.notdef /.notdef /servicemark +%A0 + /.notdef /.notdef /cent /sterling /.notdef /yen /brokenbar /section + /.notdef /copyright /ordfeminine /.notdef /logicalnot /.notdef /registered /.notdef +%B0 + /degree /plusminus /twosuperior /threesuperior /.notdef /.notdef /paragraph /periodcentered + /.notdef /onesuperior /ordmasculine /.notdef /onequarter /onehalf /threequarters /Euro +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /multiply /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /divide /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def +% Command line: 'otftotfm --automatic --encoding=fontools_ts1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=TEX TEXT COMPANION SYMBOLS 1---TS1 --feature=tnum +% CpHwt-BoldItalic.otf CpHwt-BoldItalic-tlf-ts1' diff --git a/fonts/cooperhewitt/enc/cphwt_psuovm.enc b/fonts/cooperhewitt/enc/cphwt_psuovm.enc new file mode 100644 index 0000000000..e3acc7f5c8 --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_psuovm.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_psuovm3gjjamdhizenqb7sazic +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_psuovm3gjjamdhizenqb7sazic [ +%00 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%10 + /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring + /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +%20 + /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright + /uni207D /uni207E /asterisk /uni207A /comma /hyphen /period /slash +%30 + /uni2070 /onesuperior /twosuperior /threesuperior /uni2074 /uni2075 /uni2076 /uni2077 + /uni2078 /uni2079 /colon /semicolon /exclamdown /uni207C /questiondown /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis +%80 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /Lslash /.notdef /.notdef /.notdef /.notdef /.notdef +%90 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%A0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /lslash /.notdef /.notdef /.notdef /.notdef /.notdef +%B0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def +% Command line: 'otftotfm --automatic --encoding=fontools_ot1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=TEX TEXT --feature=sups --ligkern=* {KL} * +% CpHwt-BoldItalic.otf CpHwt-BoldItalic-sup-ot1' diff --git a/fonts/cooperhewitt/enc/cphwt_r6y6f6.enc b/fonts/cooperhewitt/enc/cphwt_r6y6f6.enc new file mode 100644 index 0000000000..c5b1aa6636 --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_r6y6f6.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_r6y6f6kbhcmqrww7ktm24rvweb +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_r6y6f6kbhcmqrww7ktm24rvweb [ +%00 + /.notdef /Euro /.notdef /.notdef /fraction /dotaccent /hungarumlaut /ogonek + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%10 + /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring + /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +%20 + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright + /uni207D /uni207E /asterisk /uni207A /comma /hyphen /period /slash +%30 + /uni2070 /onesuperior /twosuperior /threesuperior /uni2074 /uni2075 /uni2076 /uni2077 + /uni2078 /uni2079 /colon /semicolon /less /uni207C /greater /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /tilde /dieresis +%80 + /Lslash /quotesingle /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /uni207B +%90 + /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright /oe /zcaron /asciitilde /Ydieresis +%A0 + /nbspace /exclamdown /cent /sterling /.notdef /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /macron +%B0 + /degree /plusminus /twosuperior /threesuperior /acute /.notdef /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown +%C0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +%D0 + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls +%E0 + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +%F0 + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis +] def +% Command line: 'otftotfm --automatic --encoding=fontools_ly1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=sups +% --ligkern=* {KL} * CpHwt-BoldItalic.otf CpHwt-BoldItalic-sup-ly1' diff --git a/fonts/cooperhewitt/enc/cphwt_sz67he.enc b/fonts/cooperhewitt/enc/cphwt_sz67he.enc new file mode 100644 index 0000000000..3423ccbd7c --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_sz67he.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_sz67heartqwluzyqi65ifbmpba +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_sz67heartqwluzyqi65ifbmpba [ +%00 + /period.T /Euro /comma.T /colon.T /fraction /dotaccent /hungarumlaut /ogonek + /semicolon.T /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%10 + /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring + /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +%20 + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +%30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /tilde /dieresis +%80 + /Lslash /quotesingle /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft /OE /Zcaron /asciicircum /minus +%90 + /lslash /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright /oe /zcaron /asciitilde /Ydieresis +%A0 + /nbspace /exclamdown /cent /sterling /.notdef /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /uni00AD /registered /macron +%B0 + /degree /plusminus /twosuperior /threesuperior /acute /.notdef /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown +%C0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +%D0 + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls +%E0 + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +%F0 + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis +] def +% Command line: 'otftotfm --automatic --encoding=fontools_ly1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=TEX TYPEWRITER AND WINDOWS ANSI --feature=kern +% --feature=tnum CpHwt-BoldItalic.otf CpHwt-BoldItalic-tlf-ly1' diff --git a/fonts/cooperhewitt/enc/cphwt_tjvrzf.enc b/fonts/cooperhewitt/enc/cphwt_tjvrzf.enc new file mode 100644 index 0000000000..9d9b7c20eb --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_tjvrzf.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_tjvrzfjktdse4xvrynccsg3p5f +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_tjvrzfjktdse4xvrynccsg3p5f [ +%00 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%10 + /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring + /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash +%20 + /space /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +%30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis +%80 + /period.T /comma.T /colon.T /semicolon.T /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /Lslash /.notdef /.notdef /.notdef /.notdef /.notdef +%90 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%A0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /lslash /.notdef /.notdef /.notdef /.notdef /.notdef +%B0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%C0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%D0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%E0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +%F0 + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def +% Command line: 'otftotfm --automatic --encoding=fontools_ot1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=TEX TEXT --feature=kern --feature=tnum +% CpHwt-BoldItalic.otf CpHwt-BoldItalic-tlf-ot1' diff --git a/fonts/cooperhewitt/enc/cphwt_vrwj46.enc b/fonts/cooperhewitt/enc/cphwt_vrwj46.enc new file mode 100644 index 0000000000..ffa7e81b3f --- /dev/null +++ b/fonts/cooperhewitt/enc/cphwt_vrwj46.enc @@ -0,0 +1,63 @@ +% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT + +%%AutoEnc_vrwj46cosxt3klcjg4yn2zodlg +% Encoding created by otftotfm on Tue Oct 18 11:30:58 2022 +% Command line follows encoding +/AutoEnc_vrwj46cosxt3klcjg4yn2zodlg [ +%00 + /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron + /breve /macron /dotaccent /cedilla /ogonek /quotesinglbase /guilsinglleft /guilsinglright +%10 + /quotedblleft /quotedblright /quotedblbase /guillemotleft /guillemotright /endash /emdash /.notdef + /.notdef /dotlessi /dotlessj /.notdef /.notdef /.notdef /.notdef /.notdef +%20 + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright + /uni207D /uni207E /asterisk /uni207A /comma /hyphen /period /slash +%30 + /uni2070 /onesuperior /twosuperior /threesuperior /uni2074 /uni2075 /uni2076 /uni2077 + /uni2078 /uni2079 /colon /semicolon /less /uni207C /greater /question +%40 + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O +%50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +%60 + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o +%70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde /hyphen +%80 + /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve + /Lacute /Lcaron /Lslash /Nacute /Ncaron /Eng /Ohungarumlaut /Racute +%90 + /Rcaron /Sacute /Scaron /Scedilla /Tcaron /Tcommaaccent /Uhungarumlaut /Uring + /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dcroat /section +%A0 + /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve + /lacute /lcaron /lslash /nacute /ncaron /eng /ohungarumlaut /racute +%B0 + /rcaron /sacute /scaron /scedilla /tcaron /tcommaaccent /uhungarumlaut /uring + /ydieresis /zacute /zcaron /zdotaccent /ij /exclamdown /questiondown /sterling +%C0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +%D0 + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef +%E0 + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +%F0 + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls +] def +% Command line: 'otftotfm --automatic --encoding=fontools_t1 +% --tfm-directory=texmf/fonts/tfm/public/cooperhewitt +% --vf-directory=texmf/fonts/vf/public/cooperhewitt +% --type1-directory=texmf/fonts/type1/public/cooperhewitt +% --encoding-directory=texmf/fonts/enc/dvips/cooperhewitt +% --map-file=texmf/fonts/map/dvips/cooperhewitt/CpHwt.map --no-updmap +% --force --coding-scheme=EXTENDED TEX FONT ENCODING - LATIN --feature=sups +% --ligkern=* {KL} * CpHwt-BoldItalic.otf CpHwt-BoldItalic-sup-t1' diff --git a/fonts/cooperhewitt/latex/CooperHewitt.sty b/fonts/cooperhewitt/latex/CooperHewitt.sty new file mode 100644 index 0000000000..3b3c965ff0 --- /dev/null +++ b/fonts/cooperhewitt/latex/CooperHewitt.sty @@ -0,0 +1,121 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{CooperHewitt} + [2022/10/18 (Bob Tennent) Supports Cooper Hewitt fonts for all LaTeX engines.] + +\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} +\newif\ifcphwt@otf +\ifxetex + \cphwt@otftrue +\else\ifluatex + \cphwt@otftrue +\else % [pdf]LaTeX + \cphwt@otffalse +\fi\fi + +\newif\ifcphwt@default \cphwt@defaultfalse +\newif\ifcphwt@semibold \cphwt@semiboldfalse +\newif\ifcphwt@medium \cphwt@mediumfalse +\newif\ifcphwt@heavy \cphwt@heavyfalse +\newif\ifcphwt@thin \cphwt@thinfalse +\newif\ifcphwt@light \cphwt@lightfalse + +\newcommand*{\CpHwt@scale}{1} +\DeclareOptionX{scale}{\renewcommand*{\CpHwt@scale}{#1}} +\DeclareOptionX{scaled}{\renewcommand*{\CpHwt@scale}{#1}} + +\DeclareOptionX{default}{\cphwt@defaulttrue} +\DeclareOptionX{sfdefault}{\cphwt@defaulttrue} +\DeclareOptionX{type1}{\cphwt@otffalse} + +\DeclareOptionX{semibold}{\cphwt@semiboldtrue} +\DeclareOptionX{heavy}{\cphwt@heavytrue} +\DeclareOptionX{medium}{\cphwt@mediumtrue} +\DeclareOptionX{thin}{\cphwt@thintrue} +\DeclareOptionX{light}{\cphwt@lighttrue} + +\ProcessOptionsX\relax + +\ifcphwt@otf + + \def\cphwt@boldstyle{Bold} + \ifcphwt@semibold\def\cphwt@boldstyle{SemiBold}\fi + \ifcphwt@heavy\def\cphwt@boldstyle{Heavy}\fi + \def\cphwt@regstyle{Book} + \ifcphwt@medium\def\cphwt@regstyle{Medium}\fi + \ifcphwt@thin\def\cphwt@regstyle{Thin}\fi + \ifcphwt@light\def\cphwt@regstyle{Light}\fi + +\else % type1 + +\IfFileExists{fontaxes.sty}{ + \RequirePackage{fontaxes} + \fa@naming@exception{figures}{{superior}{proportional}}{Sup} + \fa@naming@exception{figures}{{superior}{tabular}}{Sup} + \def\supfigures{\@nomath\supfigures + \fontfigurestyle{superior}\selectfont} + \let\sufigures\supfigures + \let\textsu\textsup + \let\textsuperior\textsup + +}{} + + \def\bfseries@sf{bold} + \ifcphwt@semibold\def\bfseries@sf{semibold}\fi + \ifcphwt@heavy\def\bfseries@sf{heavy}\fi + \def\mdseries@sf{book} + \ifcphwt@medium\def\mdseries@sf{medium}\fi + \ifcphwt@thin\def\mdseries@sf{thin}\fi + \ifcphwt@light\def\mdseries@sf{light}\fi +\fi + +\ifcphwt@otf + \RequirePackage{fontspec} +\else + \RequirePackage{fontenc,fontaxes,mweights} +\fi + +\ifcphwt@otf + + \defaultfontfeatures{ + Ligatures = TeX , + Scale = \CpHwt@scale , + Extension = .otf } + \setsansfont + [ UprightFont = *-\cphwt@regstyle , + ItalicFont = *-\cphwt@regstyle Italic , + BoldFont = *-\cphwt@boldstyle , + BoldItalicFont = *-\cphwt@boldstyle Italic ] + {CooperHewitt} + +% grab current family in case of subsequent change: + \let\cphwtfamily\sfdefault + \ifcphwt@default\renewcommand*\familydefault{\cphwtfamily}\fi + + \newfontfamily\cooperhewitt + [ UprightFont = *-\cphwt@regstyle , + ItalicFont = *-\cphwt@regstyle Italic , + BoldFont = *-\cphwt@boldstyle , + BoldItalicFont = *-\cphwt@boldstyle Italic ] + {CooperHewitt} + + \providecommand\sufigures{\addfontfeatures{VerticalPosition=Superior}} + + +\else % type1 + + \def\cphwtfamily{CpHwt-TLF} + \newcommand*\cooperhewitt{\fontfamily{\cphwtfamily}\selectfont} + \def\sfdefault{\cphwtfamily} + \ifcphwt@default\edef\familydefault{\sfdefault}\edef\seriesdefault{\mdseries@sf}\fi + +\fi + +\DeclareTextFontCommand{\textsu}{\sufigures} + +\ifcphwt@otf +% turn off defaults in case other fonts are selected: + \defaultfontfeatures{} +\fi + + +\endinput diff --git a/fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd b/fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd new file mode 100644 index 0000000000..cfd4d82d57 --- /dev/null +++ b/fonts/cooperhewitt/latex/LY1CpHwt-Sup.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{LY1CpHwt-Sup.fd} + [2022/10/18 (autoinst) Font definitions for LY1/CpHwt-Sup.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{LY1}{CpHwt-Sup}{} + + +% ---- el = thin ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{thin}{n}{ + <-> alias * CpHwt-Sup/el/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{thin}{it}{ + <-> alias * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{el}{sl}{ + <-> ssub * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{thin}{sl}{ + <-> ssub * CpHwt-Sup/thin/it +}{} + + +% ---- l = light ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{light}{it}{ + <-> alias * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{light}{n}{ + <-> alias * CpHwt-Sup/l/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{l}{sl}{ + <-> ssub * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{light}{sl}{ + <-> ssub * CpHwt-Sup/light/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{medium}{sl}{ + <-> ssub * CpHwt-Sup/medium/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{bold}{n}{ + <-> alias * CpHwt-Sup/b/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{bold}{it}{ + <-> alias * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{b}{sl}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{bold}{sl}{ + <-> ssub * CpHwt-Sup/bold/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{semibold}{it}{ + <-> alias * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{semibold}{n}{ + <-> alias * CpHwt-Sup/sb/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{sb}{sl}{ + <-> ssub * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{semibold}{sl}{ + <-> ssub * CpHwt-Sup/semibold/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{heavy}{it}{ + <-> alias * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{heavy}{n}{ + <-> alias * CpHwt-Sup/eb/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{eb}{sl}{ + <-> ssub * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{heavy}{sl}{ + <-> ssub * CpHwt-Sup/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{book}{n}{ + <-> alias * CpHwt-Sup/m/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-sup-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{book}{it}{ + <-> alias * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{m}{sl}{ + <-> ssub * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{book}{sl}{ + <-> ssub * CpHwt-Sup/book/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{LY1}{CpHwt-Sup}{bx}{n}{ + <-> ssub * CpHwt-Sup/b/n +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{bx}{sl}{ + <-> ssub * CpHwt-Sup/b/sl +}{} + +\DeclareFontShape{LY1}{CpHwt-Sup}{bx}{it}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd b/fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd new file mode 100644 index 0000000000..91826a2ddc --- /dev/null +++ b/fonts/cooperhewitt/latex/LY1CpHwt-TLF.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{LY1CpHwt-TLF.fd} + [2022/10/18 (autoinst) Font definitions for LY1/CpHwt-TLF.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{LY1}{CpHwt-TLF}{} + + +% ---- b = bold ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{bold}{it}{ + <-> alias * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{bold}{n}{ + <-> alias * CpHwt-TLF/b/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{b}{sl}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{bold}{sl}{ + <-> ssub * CpHwt-TLF/bold/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{medium}{sl}{ + <-> ssub * CpHwt-TLF/medium/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{heavy}{n}{ + <-> alias * CpHwt-TLF/eb/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{heavy}{it}{ + <-> alias * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{eb}{sl}{ + <-> ssub * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{heavy}{sl}{ + <-> ssub * CpHwt-TLF/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{book}{n}{ + <-> alias * CpHwt-TLF/m/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{book}{it}{ + <-> alias * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{m}{sl}{ + <-> ssub * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{book}{sl}{ + <-> ssub * CpHwt-TLF/book/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{semibold}{it}{ + <-> alias * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{semibold}{n}{ + <-> alias * CpHwt-TLF/sb/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{sb}{sl}{ + <-> ssub * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{semibold}{sl}{ + <-> ssub * CpHwt-TLF/semibold/it +}{} + + +% ---- el = thin ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{thin}{it}{ + <-> alias * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{thin}{n}{ + <-> alias * CpHwt-TLF/el/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{el}{sl}{ + <-> ssub * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{thin}{sl}{ + <-> ssub * CpHwt-TLF/thin/it +}{} + + +% ---- l = light ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{light}{n}{ + <-> alias * CpHwt-TLF/l/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-tlf-ly1 +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{light}{it}{ + <-> alias * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{l}{sl}{ + <-> ssub * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{light}{sl}{ + <-> ssub * CpHwt-TLF/light/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{LY1}{CpHwt-TLF}{bx}{n}{ + <-> ssub * CpHwt-TLF/b/n +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{bx}{sl}{ + <-> ssub * CpHwt-TLF/b/sl +}{} + +\DeclareFontShape{LY1}{CpHwt-TLF}{bx}{it}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd b/fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd new file mode 100644 index 0000000000..0e4efff113 --- /dev/null +++ b/fonts/cooperhewitt/latex/OT1CpHwt-Sup.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{OT1CpHwt-Sup.fd} + [2022/10/18 (autoinst) Font definitions for OT1/CpHwt-Sup.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{OT1}{CpHwt-Sup}{} + + +% ---- l = light ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{light}{n}{ + <-> alias * CpHwt-Sup/l/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{light}{it}{ + <-> alias * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{l}{sl}{ + <-> ssub * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{light}{sl}{ + <-> ssub * CpHwt-Sup/light/it +}{} + + +% ---- el = thin ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{thin}{n}{ + <-> alias * CpHwt-Sup/el/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{thin}{it}{ + <-> alias * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{el}{sl}{ + <-> ssub * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{thin}{sl}{ + <-> ssub * CpHwt-Sup/thin/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{semibold}{it}{ + <-> alias * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{semibold}{n}{ + <-> alias * CpHwt-Sup/sb/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{sb}{sl}{ + <-> ssub * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{semibold}{sl}{ + <-> ssub * CpHwt-Sup/semibold/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{book}{n}{ + <-> alias * CpHwt-Sup/m/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{book}{it}{ + <-> alias * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{m}{sl}{ + <-> ssub * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{book}{sl}{ + <-> ssub * CpHwt-Sup/book/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{heavy}{n}{ + <-> alias * CpHwt-Sup/eb/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{heavy}{it}{ + <-> alias * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{eb}{sl}{ + <-> ssub * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{heavy}{sl}{ + <-> ssub * CpHwt-Sup/heavy/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{medium}{sl}{ + <-> ssub * CpHwt-Sup/medium/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{bold}{n}{ + <-> alias * CpHwt-Sup/b/n +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-sup-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{bold}{it}{ + <-> alias * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{b}{sl}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{bold}{sl}{ + <-> ssub * CpHwt-Sup/bold/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{OT1}{CpHwt-Sup}{bx}{it}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{bx}{sl}{ + <-> ssub * CpHwt-Sup/b/sl +}{} + +\DeclareFontShape{OT1}{CpHwt-Sup}{bx}{n}{ + <-> ssub * CpHwt-Sup/b/n +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd b/fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd new file mode 100644 index 0000000000..af59c64c22 --- /dev/null +++ b/fonts/cooperhewitt/latex/OT1CpHwt-TLF.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{OT1CpHwt-TLF.fd} + [2022/10/18 (autoinst) Font definitions for OT1/CpHwt-TLF.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{OT1}{CpHwt-TLF}{} + + +% ---- l = light ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{light}{it}{ + <-> alias * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{light}{n}{ + <-> alias * CpHwt-TLF/l/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{l}{sl}{ + <-> ssub * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{light}{sl}{ + <-> ssub * CpHwt-TLF/light/it +}{} + + +% ---- el = thin ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{thin}{n}{ + <-> alias * CpHwt-TLF/el/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{thin}{it}{ + <-> alias * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{el}{sl}{ + <-> ssub * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{thin}{sl}{ + <-> ssub * CpHwt-TLF/thin/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{heavy}{it}{ + <-> alias * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{heavy}{n}{ + <-> alias * CpHwt-TLF/eb/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{eb}{sl}{ + <-> ssub * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{heavy}{sl}{ + <-> ssub * CpHwt-TLF/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{book}{n}{ + <-> alias * CpHwt-TLF/m/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{book}{it}{ + <-> alias * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{m}{sl}{ + <-> ssub * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{book}{sl}{ + <-> ssub * CpHwt-TLF/book/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{semibold}{n}{ + <-> alias * CpHwt-TLF/sb/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{semibold}{it}{ + <-> alias * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{sb}{sl}{ + <-> ssub * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{semibold}{sl}{ + <-> ssub * CpHwt-TLF/semibold/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{bold}{n}{ + <-> alias * CpHwt-TLF/b/n +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{bold}{it}{ + <-> alias * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{b}{sl}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{bold}{sl}{ + <-> ssub * CpHwt-TLF/bold/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-tlf-ot1 +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{medium}{sl}{ + <-> ssub * CpHwt-TLF/medium/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{OT1}{CpHwt-TLF}{bx}{sl}{ + <-> ssub * CpHwt-TLF/b/sl +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{bx}{it}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{OT1}{CpHwt-TLF}{bx}{n}{ + <-> ssub * CpHwt-TLF/b/n +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/T1CpHwt-Sup.fd b/fonts/cooperhewitt/latex/T1CpHwt-Sup.fd new file mode 100644 index 0000000000..a563d32139 --- /dev/null +++ b/fonts/cooperhewitt/latex/T1CpHwt-Sup.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{T1CpHwt-Sup.fd} + [2022/10/18 (autoinst) Font definitions for T1/CpHwt-Sup.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{T1}{CpHwt-Sup}{} + + +% ---- el = thin ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{thin}{n}{ + <-> alias * CpHwt-Sup/el/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{thin}{it}{ + <-> alias * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{el}{sl}{ + <-> ssub * CpHwt-Sup/el/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{thin}{sl}{ + <-> ssub * CpHwt-Sup/thin/it +}{} + + +% ---- l = light ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{light}{it}{ + <-> alias * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{light}{n}{ + <-> alias * CpHwt-Sup/l/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{l}{sl}{ + <-> ssub * CpHwt-Sup/l/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{light}{sl}{ + <-> ssub * CpHwt-Sup/light/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{medium}{sl}{ + <-> ssub * CpHwt-Sup/medium/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{bold}{it}{ + <-> alias * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{bold}{n}{ + <-> alias * CpHwt-Sup/b/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{b}{sl}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{bold}{sl}{ + <-> ssub * CpHwt-Sup/bold/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{semibold}{n}{ + <-> alias * CpHwt-Sup/sb/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{semibold}{it}{ + <-> alias * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{sb}{sl}{ + <-> ssub * CpHwt-Sup/sb/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{semibold}{sl}{ + <-> ssub * CpHwt-Sup/semibold/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{heavy}{it}{ + <-> alias * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{heavy}{n}{ + <-> alias * CpHwt-Sup/eb/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{eb}{sl}{ + <-> ssub * CpHwt-Sup/eb/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{heavy}{sl}{ + <-> ssub * CpHwt-Sup/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{book}{it}{ + <-> alias * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-sup-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{book}{n}{ + <-> alias * CpHwt-Sup/m/n +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{m}{sl}{ + <-> ssub * CpHwt-Sup/m/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{book}{sl}{ + <-> ssub * CpHwt-Sup/book/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{T1}{CpHwt-Sup}{bx}{it}{ + <-> ssub * CpHwt-Sup/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{bx}{sl}{ + <-> ssub * CpHwt-Sup/b/sl +}{} + +\DeclareFontShape{T1}{CpHwt-Sup}{bx}{n}{ + <-> ssub * CpHwt-Sup/b/n +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/T1CpHwt-TLF.fd b/fonts/cooperhewitt/latex/T1CpHwt-TLF.fd new file mode 100644 index 0000000000..304b524995 --- /dev/null +++ b/fonts/cooperhewitt/latex/T1CpHwt-TLF.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{T1CpHwt-TLF.fd} + [2022/10/18 (autoinst) Font definitions for T1/CpHwt-TLF.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{T1}{CpHwt-TLF}{} + + +% ---- medium ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{medium}{sl}{ + <-> ssub * CpHwt-TLF/medium/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{bold}{it}{ + <-> alias * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{bold}{n}{ + <-> alias * CpHwt-TLF/b/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{b}{sl}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{bold}{sl}{ + <-> ssub * CpHwt-TLF/bold/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{semibold}{n}{ + <-> alias * CpHwt-TLF/sb/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{semibold}{it}{ + <-> alias * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{sb}{sl}{ + <-> ssub * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{semibold}{sl}{ + <-> ssub * CpHwt-TLF/semibold/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{heavy}{n}{ + <-> alias * CpHwt-TLF/eb/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{heavy}{it}{ + <-> alias * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{eb}{sl}{ + <-> ssub * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{heavy}{sl}{ + <-> ssub * CpHwt-TLF/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{book}{it}{ + <-> alias * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{book}{n}{ + <-> alias * CpHwt-TLF/m/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{m}{sl}{ + <-> ssub * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{book}{sl}{ + <-> ssub * CpHwt-TLF/book/it +}{} + + +% ---- el = thin ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{thin}{n}{ + <-> alias * CpHwt-TLF/el/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{thin}{it}{ + <-> alias * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{el}{sl}{ + <-> ssub * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{thin}{sl}{ + <-> ssub * CpHwt-TLF/thin/it +}{} + + +% ---- l = light ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{light}{n}{ + <-> alias * CpHwt-TLF/l/n +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-tlf-t1 +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{light}{it}{ + <-> alias * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{l}{sl}{ + <-> ssub * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{light}{sl}{ + <-> ssub * CpHwt-TLF/light/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{T1}{CpHwt-TLF}{bx}{sl}{ + <-> ssub * CpHwt-TLF/b/sl +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{bx}{it}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{T1}{CpHwt-TLF}{bx}{n}{ + <-> ssub * CpHwt-TLF/b/n +}{} + +\endinput diff --git a/fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd b/fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd new file mode 100644 index 0000000000..6ca171701f --- /dev/null +++ b/fonts/cooperhewitt/latex/TS1CpHwt-TLF.fd @@ -0,0 +1,214 @@ +%% Generated by autoinst on 2022/10/18 +%% +\ProvidesFile{TS1CpHwt-TLF.fd} + [2022/10/18 (autoinst) Font definitions for TS1/CpHwt-TLF.] + +\ifcsname s@fct@alias\endcsname\else +\gdef\s@fct@alias{\sub@sfcnt\@font@aliasinfo} +\gdef\@font@aliasinfo#1{% + \@font@info{Font\space shape\space `\curr@fontshape'\space will + \space be\space aliased\MessageBreak to\space `\mandatory@arg'}% +} +\fi + +\expandafter\ifx\csname CpHwt@scale\endcsname\relax + \let\CpHwt@@scale\@empty +\else + \edef\CpHwt@@scale{s*[\csname CpHwt@scale\endcsname]}% +\fi + +\DeclareFontFamily{TS1}{CpHwt-TLF}{} + + +% ---- l = light ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{l}{it}{ + <-> \CpHwt@@scale CpHwt-LightItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{light}{it}{ + <-> alias * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{l}{n}{ + <-> \CpHwt@@scale CpHwt-Light-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{light}{n}{ + <-> alias * CpHwt-TLF/l/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{l}{sl}{ + <-> ssub * CpHwt-TLF/l/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{light}{sl}{ + <-> ssub * CpHwt-TLF/light/it +}{} + + +% ---- el = thin ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{el}{n}{ + <-> \CpHwt@@scale CpHwt-Thin-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{thin}{n}{ + <-> alias * CpHwt-TLF/el/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{el}{it}{ + <-> \CpHwt@@scale CpHwt-ThinItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{thin}{it}{ + <-> alias * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{el}{sl}{ + <-> ssub * CpHwt-TLF/el/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{thin}{sl}{ + <-> ssub * CpHwt-TLF/thin/it +}{} + + +% ---- eb = heavy ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{eb}{it}{ + <-> \CpHwt@@scale CpHwt-HeavyItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{heavy}{it}{ + <-> alias * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{eb}{n}{ + <-> \CpHwt@@scale CpHwt-Heavy-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{heavy}{n}{ + <-> alias * CpHwt-TLF/eb/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{eb}{sl}{ + <-> ssub * CpHwt-TLF/eb/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{heavy}{sl}{ + <-> ssub * CpHwt-TLF/heavy/it +}{} + + +% ---- m = book ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{m}{n}{ + <-> \CpHwt@@scale CpHwt-Book-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{book}{n}{ + <-> alias * CpHwt-TLF/m/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{m}{it}{ + <-> \CpHwt@@scale CpHwt-BookItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{book}{it}{ + <-> alias * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{m}{sl}{ + <-> ssub * CpHwt-TLF/m/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{book}{sl}{ + <-> ssub * CpHwt-TLF/book/it +}{} + + +% ---- sb = semibold ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{sb}{it}{ + <-> \CpHwt@@scale CpHwt-SemiboldItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{semibold}{it}{ + <-> alias * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{sb}{n}{ + <-> \CpHwt@@scale CpHwt-Semibold-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{semibold}{n}{ + <-> alias * CpHwt-TLF/sb/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{sb}{sl}{ + <-> ssub * CpHwt-TLF/sb/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{semibold}{sl}{ + <-> ssub * CpHwt-TLF/semibold/it +}{} + + +% ---- b = bold ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{b}{n}{ + <-> \CpHwt@@scale CpHwt-Bold-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{bold}{n}{ + <-> alias * CpHwt-TLF/b/n +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{b}{it}{ + <-> \CpHwt@@scale CpHwt-BoldItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{bold}{it}{ + <-> alias * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{b}{sl}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{bold}{sl}{ + <-> ssub * CpHwt-TLF/bold/it +}{} + + +% ---- medium ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{medium}{n}{ + <-> \CpHwt@@scale CpHwt-Medium-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{medium}{it}{ + <-> \CpHwt@@scale CpHwt-MediumItalic-tlf-ts1 +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{medium}{sl}{ + <-> ssub * CpHwt-TLF/medium/it +}{} + + +% ---- Extra 'ssub' rules to map 'bx' to 'b' ---- + +\DeclareFontShape{TS1}{CpHwt-TLF}{bx}{it}{ + <-> ssub * CpHwt-TLF/b/it +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{bx}{sl}{ + <-> ssub * CpHwt-TLF/b/sl +}{} + +\DeclareFontShape{TS1}{CpHwt-TLF}{bx}{n}{ + <-> ssub * CpHwt-TLF/b/n +}{} + +\endinput diff --git a/fonts/cooperhewitt/map/CooperHewitt.map b/fonts/cooperhewitt/map/CooperHewitt.map new file mode 100644 index 0000000000..35d82d1388 --- /dev/null +++ b/fonts/cooperhewitt/map/CooperHewitt.map @@ -0,0 +1,100 @@ +% Automatically maintained by otftotfm or other programs. Do not edit. + +CpHwt-BoldItalic-tlf-ot1--base CpHwt-BoldItalic "AutoEnc_tjvrzfjktdse4xvrynccsg3p5f ReEncodeFont" <[cphwt_tjvrzf.enc \NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{docshots} %<*package> -[2022-10-17 0.0.3 TeX Samples Next to Their PDF Snapshots in DTX] +[2022-10-18 0.0.4 TeX Samples Next to Their PDF Snapshots in DTX] % %<*driver> \documentclass{ltxdoc} @@ -306,6 +306,52 @@ Hello, world! % %\fi +% \DescribeMacro{log} +% With |log| option you can make us print all possible logs to the main \TeX{} log. +% By default, we don't do this and you won't see the output of |pdflatex| compilation, for example. +% Just use it like this: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage[log]{docshot} +\end{verbatim} +%\iffalse +% +%\fi + +% \DescribeMacro{inputminted} +% By default, we render the verbatim text using |\VerbatimInput| command. You +% can change that and make us use |\inputminted| +% from \href{https://ctan.org/pkg/minted}{minted} package instead, for example: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage{minted} +\setminted[java]{frame=lines,framesep=2mm} +\usepackage[inputminted=java]{docshot} +\end{verbatim} +%\iffalse +% +%\fi + +% \DescribeMacro{lstinputlisting} +% By default, we render the verbatim text using |\VerbatimInput| command. You +% can change that and make us use |\lstinputlisting| from +% \href{https://ctan.org/pkg/listings}{listings} package instead, for example: +%\iffalse +%<*verb> +%\fi +\begin{verbatim} +\usepackage{listings} +\lstset{basicstyle=\small} +\usepackage[lstinputlisting]{docshot} +\end{verbatim} +%\iffalse +% +%\fi + % \section{Prerequisites} % \DescribeMacro{\docshotPrerequisite} @@ -402,6 +448,10 @@ Hello, world! \pgfkeys{ /docshots/.cd, dtx/.store in=\docshots@dtx, + log/.store in=\docshots@log, + log/.default=, + lstinputlisting/.store in=\docshots@lstinputlisting, + inputminted/.store in=\docshots@inputminted, tmpdir/.store in=\docshots@tmpdir, tmpdir/.default=_docshots, small/.store in=\docshots@small, @@ -422,24 +472,24 @@ Hello, world! left/.default=.3\linewidth, right/.store in=\docshots@right, right/.default=.55\linewidth, - tmpdir,pdflatex,gs,pdfcrop,margin,hspace,left,right,runs + tmpdir,pdflatex,gs,pdfcrop,margin,hspace,left,right,runs,log } \ProcessPgfOptions{/docshots} % \end{macrocode} % Then, we print the version of |pdflatex| to \TeX{} log: % \begin{macrocode} -\iexec[log,quiet]{\docshots@pdflatex\space --version}% +\iexec[\docshots@log,quiet]{\docshots@pdflatex\space --version}% % \end{macrocode} % Then, we print the version of \href{https://ctan.org/pkg/pdfcrop}{pdfcrop} to \TeX{} log: % \begin{macrocode} -\iexec[log,quiet]{\docshots@pdfcrop\space --version}% +\iexec[\docshots@log,quiet]{\docshots@pdfcrop\space --version}% % \end{macrocode} % Then, we print the version of |ghostscript| to \TeX{} log: % \begin{macrocode} -\iexec[log,quiet]{\docshots@gs\space --version}% +\iexec[\docshots@log,quiet]{\docshots@gs\space --version}% % \end{macrocode} % Then, we make a directory where all temporary files will be kept: @@ -464,7 +514,8 @@ Hello, world! % \end{macrocode} % We calculate MD5 hashsum of the file content: % \begin{macrocode} - \def\hash{\pdfmdfivesum file {\docshots@tmpdir/\jobname/verbatim.tex}}% + \def\hash{\pdfmdfivesum file + {\docshots@tmpdir/\jobname/verbatim.tex}}% % \end{macrocode} % If the PDF with the required name already exists, we ignore this step. % Otherwise, we copy |verbatim.tex| into new file and run |pdflatex|: @@ -472,10 +523,10 @@ Hello, world! \IfFileExists{\docshots@tmpdir/\jobname/\hash.pdf} {\message{docshots: won't render, the PDF already exists (\docshots@tmpdir/\jobname/\hash.pdf)^^J}} - {\iexec[log,quiet]{cp \docshots@tmpdir/\jobname/verbatim.tex + {\iexec[\docshots@log,quiet]{cp \docshots@tmpdir/\jobname/verbatim.tex \docshots@tmpdir/\jobname/\hash.tex}% \foreach \n in {1,...,\docshots@runs}{ - \iexec[log,quiet]{cd \docshots@tmpdir/\jobname; + \iexec[\docshots@log,quiet]{cd \docshots@tmpdir/\jobname; \docshots@pdflatex\space -interaction=errorstopmode -halt-on-error @@ -483,16 +534,16 @@ Hello, world! \hash.tex} \message{docshots: pdflatex run no.\n^^J} \IfFileExists{\docshots@tmpdir/\jobname/after.sh} - {\iexec[log,quiet]{chmod a+x + {\iexec[\docshots@log,quiet]{chmod a+x \docshots@tmpdir/\jobname/after.sh} - \iexec[log,quiet]{cd \docshots@tmpdir/\jobname; + \iexec[\docshots@log,quiet]{cd \docshots@tmpdir/\jobname; ./after.sh \n\space \hash\space \hash.tex}} {}}}% % \end{macrocode} % Here we delete |after.sh| which may exist here after the last % compilation of |pdflatex|: % \begin{macrocode} - \iexec[log,quiet]{rm -f \docshots@tmpdir/\jobname/after.sh} + \iexec[\docshots@log,quiet]{rm -f \docshots@tmpdir/\jobname/after.sh} % \end{macrocode} % If a cropped version of the PDF with the required name already exists, we ignore this step. % Otherwise, we ask |pdfcrop| to crop the PDF: @@ -500,7 +551,7 @@ Hello, world! \IfFileExists{\docshots@tmpdir/\jobname/\hash.crop.pdf} {\message{docshots: on't pdfcrop, the PDF already exists (\docshots@tmpdir/\jobname/\hash.crop.pdf)^^J}} - {\iexec[log,quiet]{\docshots@pdfcrop\space + {\iexec[\docshots@log,quiet]{\docshots@pdfcrop\space --margins \docshots@margin\space \docshots@tmpdir/\jobname/\hash.pdf \docshots@tmpdir/\jobname/\hash.crop.pdf}}% @@ -509,7 +560,7 @@ Hello, world! % \begin{macrocode} \fvset{numbers=left,numbersep=3pt}% \fvset{frame=leftline,framerule=.4pt,rulecolor=\color{gray}}% - \fvset{samepage=true,baselinestretch=1}% + \fvset{samepage=true}% \fvset{baselinestretch=1}% \ifdefined\docshots@small% \fvset{fontsize=\small}% @@ -529,7 +580,14 @@ Hello, world! \hspace{\docshots@hspace}% \begin{minipage}[t]{\docshots@right}% \vspace{0pt}% - \VerbatimInput{\docshots@tmpdir/\jobname/\hash.tex}% + \ifdefined\docshots@lstinputlisting% + \lstinputlisting{\docshots@tmpdir/\jobname/\hash.tex}% + \else\ifdefined\docshots@inputminted% + \inputminted{\docshots@inputminted} + {\docshots@tmpdir/\jobname/\hash.tex}% + \else% + \VerbatimInput{\docshots@tmpdir/\jobname/\hash.tex}% + \fi\fi% \vspace{0pt}% \end{minipage}% \par% @@ -542,7 +600,7 @@ Hello, world! % Then, we define |\docshotPrerequisite| command: % \begin{macrocode} \newcommand\docshotPrerequisite[1]{ - \iexec[log,quiet]{cp #1 \docshots@tmpdir/\jobname}% + \iexec[\docshots@log,quiet]{cp #1 \docshots@tmpdir/\jobname}% \message{docshots: file #1 copied to \docshots@tmpdir/\jobname/#1^^J}% } @@ -553,9 +611,10 @@ Hello, world! % Finally, we define |\docshotAfter| command: % \begin{macrocode} \newcommand\docshotAfter[1]{ - \iexec[log,quiet]{/bin/echo -n '\detokenize{#1}' + \iexec[\docshots@log,quiet]{/bin/echo -n '\detokenize{#1}' > \docshots@tmpdir/\jobname/after.sh}% - \message{docshots: file \docshots@tmpdir/\jobname/after.sh created^^J}% + \message{docshots: file + \docshots@tmpdir/\jobname/after.sh created^^J}% } % \end{macrocode} % \end{macro} diff --git a/macros/latex/contrib/docshots/docshots.pdf b/macros/latex/contrib/docshots/docshots.pdf index b4a800febd..fbec067a70 100644 Binary files a/macros/latex/contrib/docshots/docshots.pdf and b/macros/latex/contrib/docshots/docshots.pdf differ diff --git a/macros/latex/contrib/ifoddpage/DEPENDS.txt b/macros/latex/contrib/ifoddpage/DEPENDS.txt new file mode 100644 index 0000000000..0fc4d1f756 --- /dev/null +++ b/macros/latex/contrib/ifoddpage/DEPENDS.txt @@ -0,0 +1 @@ +soft ydoc # for compiling the package documentation only diff --git a/macros/latex/contrib/ifoddpage/README b/macros/latex/contrib/ifoddpage/README deleted file mode 100644 index b71473ec4d..0000000000 --- a/macros/latex/contrib/ifoddpage/README +++ /dev/null @@ -1,18 +0,0 @@ -LaTeX package 'ifoddpage' -~~~~~~~~~~~~~~~~~~~~~~~~ -Copyright (c) 2011 by Martin Scharrer -WWW: http://latex.scharrer-online.de/ -CTAN: http://www.ctan.org/pkg/ifoddpage -Code repository: https://bitbucket.org/martin_scharrer/ifoddpage - -This LaTeX package provides a \ifoddpage conditional to determine if the current page is odd or even. -The macro \checkoddpage must be used direct before to check the page number using a label. -Two compiler runs are therefore required to achieve correct results. -In addition the conditional \ifoddpageoronside is provided which is also true in oneside mode where -all pages use the odd page layout. - -This package got inspired from the 'changepage' package which provides (and uses) the same macros (\checkoddpage and -\ifoddpage) for its main function of changing the page design mid-way in the document. Both packages can be used -together, but the 'ifoddpage' should be loaded last in this case, otherwise the \ifoddpageoroneside conditional will -stop working. - diff --git a/macros/latex/contrib/ifoddpage/README.txt b/macros/latex/contrib/ifoddpage/README.txt new file mode 100644 index 0000000000..d276e3a5c2 --- /dev/null +++ b/macros/latex/contrib/ifoddpage/README.txt @@ -0,0 +1,18 @@ +LaTeX package 'ifoddpage' +~~~~~~~~~~~~~~~~~~~~~~~~~ +Copyright (c) 2011-2022 by Martin Scharrer +License: LaTeX Project Public License, v1.3 or later: http://www.latex-project.org/lppl.txt +Repository: https://github.com/MartinScharrer/ifoddpage +Issues: https://github.com/MartinScharrer/ifoddpage/issues + +This LaTeX package provides a \ifoddpage conditional to determine if the current page is odd or even. +The macro \checkoddpage must be used direct before to check the page number using a label. +Two compiler runs are therefore required to achieve correct results. +In addition the conditional \ifoddpageoronside is provided which is also true in oneside mode where +all pages use the odd page layout. + +This package got inspired from the 'changepage' package which provides (and uses) the same macros (\checkoddpage and +\ifoddpage) for its main function of changing the page design mid-way in the document. Both packages can be used +together, but the 'ifoddpage' should be loaded last in this case, otherwise the \ifoddpageoroneside conditional will +stop working. + diff --git a/macros/latex/contrib/ifoddpage/ifoddpage.dtx b/macros/latex/contrib/ifoddpage/ifoddpage.dtx index fe0720777a..699bf54d0a 100644 --- a/macros/latex/contrib/ifoddpage/ifoddpage.dtx +++ b/macros/latex/contrib/ifoddpage/ifoddpage.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment %<=*COPYRIGHT> -%% Copyright (C) 2011-2012 by Martin Scharrer -%% ---------------------------------------------------------------------- +%% Copyright (c) 2011-2022 by Martin Scharrer +%% ------------------------------------------------------------------- %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. @@ -24,10 +24,10 @@ %<*driver> \ProvidesFile{ifoddpage.dtx}[% %<=*DATE> - 2016/04/23 + 2022/10/18 %<=/DATE> %<=*VERSION> - v1.1 + v1.2 %<=/VERSION> DTX file for ifoddpage package] \documentclass{ydoc} @@ -65,14 +65,15 @@ % % \changes{v1.0}{2011/09/13}{First version.} % \changes{v1.1}{2016/04/23}{Fixed misspelled macro name.} +% \changes{v1.2}{2022/10/18}{Updated documentation.} % % % \DoNotIndex{\newcommand,\newenvironment} % % \GetFileInfo{ifoddpage.dtx} % \author{Martin Scharrer} -% \email{martin@scharrer.me} -% \repository{https://bitbucket.org/martin_scharrer/ifoddpage} +% \email{martin.scharrer@web.de} +% \repository{https://github.com/MartinScharrer/ifoddpage} % \maketitle % % \section{Introduction} @@ -178,20 +179,36 @@ Conditionals for odd/even page detection] % \end{macrocode} % -% +% \begin{macro}{\c@checkoddpage} +% Counter |checkoddpage| is needed to give each use of \Macro\checkoddpage an unique ID for % \begin{macrocode} \newcount\c@checkoddpage % \end{macrocode} +% \end{macro} % % \begin{macro}{\thecheckoddpage} +% Expands to the value of |checkoddpage|, i.e. ID of last used \Macro\checkoddpage. % \begin{macrocode} \def\thecheckoddpage{\number\c@checkoddpage} % \end{macrocode} % \end{macro} % +% \begin{macro}{\ifoddpage} +% Conditional: true if used on odd page after \Macro\checkoddpage. % \begin{macrocode} \newif\ifoddpage +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifoddpageoroneside} +% Conditional: true if used on odd page after \Macro\checkoddpage. +% Always true if used in a |oneside| document. +% \begin{macrocode} \newif\ifoddpageoroneside +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} \let\oddpage@checkpage\relax % \end{macrocode} % @@ -203,6 +220,8 @@ % % % \begin{macro}{\oddpage@label} +% Produces a LaTeX label using the |checkoddpage| counter. +% An internal LaTeX macro is used for this. % \begin{macrocode} \def\oddpage@label{% \@newl@bel{checkoddpage}% @@ -213,6 +232,8 @@ % % % \begin{macro}{\oddpage@checkpage} +% Writes the oddpage label with the current page number to the AUX file, +% so it can be read back during the following \LaTeX{} runs. % \begin{macrocode} \def\oddpage@checkpage#1{% \@bsphack @@ -224,6 +245,9 @@ % % % \begin{macro}{\oddpage@page} +% Returns the page number of the last \Macro\checkoddpage macro. +% If there is no label for it defined in the AUX file, e.g.\ first compile run, +% then the current page number is used instead as a fallback. % \begin{macrocode} \def\oddpage@page{% \expandafter\ifx\csname checkoddpage@\thecheckoddpage\endcsname\relax @@ -237,6 +261,13 @@ % % % \begin{macro}{\checkoddpage} +% User macro to check if the current page has an odd page number. +% Increases |checkoddpage| counter to produce an unique ID for this macro usage. +% Calls \Macro\oddpage@checkpage to produce a reference entry in the AUX file. +% Then checks if the \Macro\oddpage@page is odd and sets +% \Macro{ifoddpage} and \Macro{ifoddpageoroneside} accordantly. +% Finally checks if the |twoside| setting is active and set \Macro{ifoddpageoroneside} +% to |true| if so. % \begin{macrocode} \DeclareRobustCommand\checkoddpage{% \stepcounter{checkoddpage}% @@ -257,6 +288,7 @@ % % % \begin{macro}{\@ifoddpage} +% Wrapper around \Macro{ifoddpage}. Will expand to the next token if odd, to the second token if not. % \begin{macrocode} \def\@ifoddpage{% \ifoddpage @@ -270,6 +302,7 @@ % % % \begin{macro}{\@ifoddpageoroneside} +% Wrapper around \Macro{ifoddpageoroneside}. Will expand to the next token if odd, to the second token if not. % \begin{macrocode} \def\@ifoddpageoroneside{% \iftwosideoddside diff --git a/macros/latex/contrib/ifoddpage/ifoddpage.pdf b/macros/latex/contrib/ifoddpage/ifoddpage.pdf index 3c487f795e..d5c6c142a3 100644 Binary files a/macros/latex/contrib/ifoddpage/ifoddpage.pdf and b/macros/latex/contrib/ifoddpage/ifoddpage.pdf differ diff --git a/macros/latex/contrib/mfirstuc/CHANGES b/macros/latex/contrib/mfirstuc/CHANGES index a78e049ba9..d1cc1e183a 100644 --- a/macros/latex/contrib/mfirstuc/CHANGES +++ b/macros/latex/contrib/mfirstuc/CHANGES @@ -1,5 +1,57 @@ mfirstuc change log: +v2.08 (2022-10-14): + + * Reimplemented \makefirstuc in LaTeX3. This change supports + UTF-8 with pdflatex. + + Rollback to v2.07 provided: + + \usepackage{mfirstuc}[=v2.07] + + * New command \MFUsentencecase + + This just uses \text_titlecase_first:n + + Principle features of \MFUsentencecase vs \makefirstuc are + listed in Table 1 of the manual. + + * \makefirstuc has been rewritten to internally use + \MFUsentencecase (via \glsmakefirstuc), but it still parses + its argument as in previous versions. + + * New command \MFUexcl{} + + This adds a command to the case-changing exclusion list. + Both \MFUsentencecase and \makefirstuc will skip the + identified command and its argument, and apply sentence-casing + to the content that follows. + + For example, glossaries.sty v4.50 implements \MFUexcl{\glsadd} + + * New command \MFUblocker{} + + This adds a command to the blocker list. This is used by + \makefirstuc but not \MFUsentencecase. If the command is encountered + no case-change will be applied. This is designed for commands + that automatically implement a case-change that may have been nested. + + For example, glossaries.sty v4.50 implements \MFUblocker{\Gls} + + * New command \MFUaddmap{}{} + + Adds a mapping. This is used by \makefirstuc but not + \MFUsentencecase. If the first command is encountered + it will be replaced with the second . No case change + will be applied. (The case-change, if appropriate, + should be dealt with by the replacement command.) + + For example, glossaries.sty v4.50 implements \MFUaddmap{\gls}{\Gls} + + Order of precedence: map, blocker, exclusion + + * New commands \MFUsaveatend and \MFUsave + v2.07 (2021-10-15): * new commands: diff --git a/macros/latex/contrib/mfirstuc/README b/macros/latex/contrib/mfirstuc/README index 95e632cfc7..e7ba4933d8 100644 --- a/macros/latex/contrib/mfirstuc/README +++ b/macros/latex/contrib/mfirstuc/README @@ -1,6 +1,6 @@ -LaTeX Package : mfirstuc v2.07 +LaTeX Package : mfirstuc v2.08 -Last Modified : 2021-10-15 +Last Modified : 2022-10-14 Author : Nicola Talbot @@ -26,10 +26,12 @@ package. LaTeX2HTML -This package comes with a LaTeX2HTML style file mfirstuc.perl which -should be placed in the relevant LaTeX2HTML styles directory, but -note that some commands may not be implemented or may be implemented -in a different way. +This package comes with a LaTeX2HTML style file mfirstuc.l2h which +should be placed in the relevant LaTeX2HTML styles directory and may +need to have the file extension changed, but note that some commands +may not be implemented or may be implemented in a different way. +There's no guarantee that it will continue to work with new +versions of LaTeX2HTML. LICENCE diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf b/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf index f02689d526..7da4d79d1d 100644 Binary files a/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf and b/macros/latex/contrib/mfirstuc/mfirstuc-code.pdf differ diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.html b/macros/latex/contrib/mfirstuc/mfirstuc-manual.html index be92120e8f..b2c121f28d 100644 --- a/macros/latex/contrib/mfirstuc/mfirstuc-manual.html +++ b/macros/latex/contrib/mfirstuc/mfirstuc-manual.html @@ -1,1720 +1,1393 @@ - - - - - - - - - - + + + + + + mfirstuc.sty v2.08: +sentence and title casing - -

-

- - - -

- - - -

-
-

-

mfirstuc.sty v2.07: uppercasing first letter -

-
+ +
+
mfirstuc.sty v2.08: sentence and title casing
Nicola L.C. Talbot
+ + Dickimaw Books
+ + dickimaw-books.com
2022-10-14

+

+

+The mfirstuc package was originally part of the glossaries bundle (added to glossaries v1.12 in 2008) for use with commands like \Gls, which need to have the first letter converted to uppercase (sentence-case), but as the commands provided by mfirstuc may be used without glossaries, the two were split into separately maintained packages in 2015 (mfirstuc v2.0 and glossaries v4.18).
+

+Version 2.08 has reimplemented \makefirstuc using LaTeX3 commands. If there are any compatibility issues, you can rollback to v2.07:

\usepackage{mfirstuc}[=2.07]
+

+

+ + + +

+

1. Sentence-Case

+

+There are two sentence-case commands provided: \MFUsentencecase and \makefirstuc. A summary of the principle features of the two commands is given in Table 1.1.

+

+ + + + + + + + + + + + + + + + + + +
Table 1: Principle features of \MFUsentencecase and \makefirstuc
Feature \MFUsentencecase \makefirstuc
Can expand? ✔ ✖
Supports exclusions? ✔ ✔
Supports blockers? ✖ ✔
Supports mappings? ✖ ✔
Semantic commands must be robust? ✔ ✖
+

+ + + +

+

1.1. Examples

+

+Text only (leading UTF-8 now supported):

+

+

+\makefirstuc{élite} /
+\MFUsentencecase{élite}
+
Élite / Élite

+

+Leading punctuation is ignored:

+

+

+\makefirstuc{`word'} /
+\MFUsentencecase{`word'}
+
‘Word’ / ‘Word’

+ However, if the punctuation character is followed by a blocker or mapping command, the punctuation will need to be excluded otherwise the command will be treated as an exclusion. If possible, use semantic markup instead of directly including the punctuation.

+Fragile commands need to be protected with \MFUsentencecase:

\newcommand{\alert}[1]{\textcolor{red}{\textbf{#1}}}
+\makefirstuc{\alert{élite}} /
+\MFUsentencecase{\protect\alert{élite}}
+
+ Élite / Élite
+

+Exclusions are supported by both \makefirstuc and \MFUsentencecase:

\MFUexcl{\index}
+\makefirstuc{\index{word}example} /
+\MFUsentencecase{\index{word}example}
+
+ Example / Example
+

+Blockers are only supported by \makefirstuc. They are treated as exclusions with \MFUsentencecase, which produces a different result:

\MFUblocker{\nameref}
+\makefirstuc{\nameref{sec:sentencecase} section} /
+\MFUsentencecase{\nameref{sec:sentencecase} section}
+
+

+Mappings are only supported by \makefirstuc. They are treated as exclusions with \MFUsentencecase, which produces a different result:

\newrobustcmd{\secref}[1]{section~\ref{#1}}
+\newrobustcmd{\Secref}[1]{Section~\ref{#1}}
+\MFUaddmap{\secref}{\Secref}
+\makefirstuc{\secref{sec:sentencecase} example} /
+\MFUsentencecase{\secref{sec:sentencecase} example}
+
+ Section 1 example / section 1 Example
+

+Argument expansion: \MFUsentencecase expands its argument and then skips exclusions whereas \makefirstuc parses its argument without expansion and then passes the relevant content to \glsmakefirstuc. Note that different results will occur with the expanded and unexpanded package options. For example:

\usepackage[expanded]{mfirstuc}
+\newcommand{\testa}{sample}
+\newcommand{\testb}{\testa\ test}
+\begin{document}
+\makefirstuc{\testb} / \xmakefirstuc{\testb} /
+\emakefirstuc{\testb} / \MFUsentencecase{\testb}
+\end{document}
+
+Sample test / Sample test / Sample test / Sample test
+ With the default unexpanded option the result is:
+ sample test / sample Test / Sample test / Sample test
+ Note that this is different from the result in earlier versions of mfirstuc.
\usepackage{mfirstuc}[=v2.07]
+\newcommand{\testa}{sample}
+\newcommand{\testb}{\testa\ test}
+\begin{document}
+\makefirstuc{\testb} / \xmakefirstuc{\testb} /
+\emakefirstuc{\testb}
+\end{document}
+
This produces:
+SAMPLE TEST / SAMPLE test / Sample test
+ If this old result is required, either use rollback or try the grabfirst option.

+Argument expansion with mappings (and the default unexpanded option):

\newrobustcmd{\secref}[1]{section~\ref{#1}}
+\newrobustcmd{\Secref}[1]{Section~\ref{#1}}
+\MFUaddmap{\secref}{\Secref}
+\newcommand{\testa}{\secref{sec:sentencecase}}
+\newcommand{\testb}{\testa\ example}
+\makefirstuc{\testb} / \xmakefirstuc{\testb} /
+\emakefirstuc{\testb} / \MFUsentencecase{\testb}
+
+ section 1 example / section 1 Example / Section 1 example / section 1 Example
+

+ +

+ +
+

1.2. Sentence Case Commands

+

+

+\MFUsentencecase{〈text〉}
+ This simply uses \text_titlecase_first:n, which is provided by the LaTeX3 kernel. Note that this fully expands the argument. If you use this command, ensure that your semantic commands are robust. For example:
\newrobustcmd{\alert}[1]{\textcolor{red}{\textbf{#1}}}
+\MFUsentencecase{\alert{sample} text}
+
+ Sample text
+ Note that the following will fail:
\newcommand{\alert}[1]{\textcolor{red}{\textbf{#1}}}
+\MFUsentencecase{\alert{sample} text}
+
This is because the expansion that’s performed before the case-change will result in:
\textcolor{Red}{\textbf{sample}} text
+
This triggers an error since Red isn’t a recognised colour name.

+

+\makefirstuc{〈text〉}
+ This is the original command provided by mfirstuc, which was written to assist sentence-casing in the glossaries package and had to take markup into account. It parses its argument to try to determine which part needs the case-change. The actual case-change is performed by \glsmakefirstuc.

+As from v2.08, the definition of \makefirstuc has been updated to use LaTeX3 code, but the argument is still parsed, which allows for non-robust semantic commands, and now also takes blockers and mappings into account. For example:

\newcommand{\alert}[1]{\textcolor{red}{\textbf{#1}}}
+\makefirstuc{\alert{sample} text}
+
+ Sample text
+

+The rules used when parsing \makefirstuc{〈text〉} are as follows: +

    +
  1. 1.if 〈text〉 is empty do nothing;

    +

  2. 2.if 〈text〉 consists of a single item or starts with a group do \glsmakefirstuc{〈text〉};

    +

  3. 3.if 〈text〉 starts with a command 〈cs〉:

    + +

      +
    1. (a)if 〈cs〉 is \protect, skip it and continue to the next step where the command 〈cs〉 under inspection is now the one that follows \protect:

      +

    2. (b)if 〈cs〉 has been identified as a blocker, just do 〈text〉 (that is, no case-change is applied);

      +

    3. (c)if 〈cs〉 isn’t followed by a group then do \glsmakefirstuc{〈text〉};

      +

    4. (d)otherwise assume the format is 〈cs〉{〈arg〉}〈following〉 (where 〈following〉 may be empty) and then:

      + +

        +
      1. i.if 〈cs〉 has been mapped to 〈Cs〉 then do 〈Cs〉{〈arg〉}〈following〉;

        +

      2. ii.if 〈cs〉 has been identified as an exclusion, do 〈cs〉{〈arg〉}\makefirstuc{〈following〉};

        +

      3. iii.otherwise do 〈cs〉{\makefirstuc{〈arg〉}}〈following〉. +
      +

      + +

    +

    +

  4. 4.otherwise do \glsmakefirstuc{〈text〉}. +
+

+Note that the above algorithm uses recursion. The termination points are: don’t implement a change, replace a command with another command, or apply the case-change via \glsmakefirstuc.

+For convenience, the following commands are also provided:

+\xmakefirstuc{〈text〉}
+ This is simply a shortcut for:
\expandafter\makefirstuc\expandafter{〈text〉}
+
This ensures the first token in 〈text〉 is expanded before being passed to \makefirstuc.

+

+\emakefirstuc{〈text〉}
+ This fully expands its argument before passing it to \makefirstuc. For example:
\newcommand{\test}[1]{sample #1}
+\newcommand{\tmp}{\test{text}}
+\makefirstuc{\tmp} /
+\xmakefirstuc{\tmp} /
+\emakefirstuc{\tmp}
+
+ sample text / sample Text / Sample text
+ If you don’t have any mappings or blockers set up, it’s simpler to use \MFUsentencecase instead of \emakefirstuc.

+

+With \emakefirstuc, mappings and blockers will only be detected if they are robust or protected, otherwise they will expand too soon to be detected.
+

+

+\glsmakefirstuc{〈text〉}
+ This command is used by \makefirstuc to perform the case-change. The “gls†prefix is for historical reasons as the original code was part of the glossaries package. With the default unexpanded option, this command is defined as:
\MFUsentencecase{\unexpanded{〈text〉}}
+
The use of \unexpanded inhibits the expansion of 〈text〉 that would otherwise occur. This allows \makefirstuc to maintain as much backward-compatibility with version 2.07 as possible. This is particularly important when using the glossaries package with a style that automatically converts the description to sentence-case, as there may well be documents with complex descriptions that contain fragile commands.

+The expanded package option will redefine \glsmakefirstuc to use \MFUsentencecase without \unexpanded. The grabfirst package option will redefine \glsmakefirstuc to use \mfugrabfirstuc to emulates the behaviour of \glsmakefirstuc in v2.07 and below without using rollback.

+

+\mfugrabfirstuc{〈text〉}

+

avoid where possible
+
+ This robust command is provided to emulate v2.07 and its use is discouraged. Note that you may still have different results compared to v2.07, so you may need to use rollback instead. (Note that the grabfirst option additionally redefines \mfirstucMakeUppercase to \MakeUppercase, which you will also need.)

+This applies \mfirstucMakeUppercase to the first token in 〈text〉 and leaves the remainder unchanged. This won’t work if 〈text〉 starts with a UTF-8 character unless you use XeLaTeX or LuaLaTeX, so avoid using this method where possible. For example:

\renewcommand{\mfirstucMakeUppercase}[1]{% 
+  \MakeUppercase{#1}% 
+}
+\mfugrabfirstuc{sample}
+
This is equivalent to:
\mfirstucMakeUppercase{s}ample
+
Whereas
\renewcommand{\mfirstucMakeUppercase}[1]{% 
+  \MakeUppercase{#1}% 
+}
+\mfugrabfirstuc{élite}
+
only works with XeLaTeX or LuaLaTeX.

+

+As with earlier implementations of \makefirstuc that tried to only apply the case-change to the first token, this won’t produce the desired result if the argument starts with a punctuation character.
+

+For example:

\mfugrabfirstuc{`sample'}
+
This is equivalent to:
\mfirstucMakeUppercase{`}sample'
+
so no case-change is applied.

+ +

+ +
+

1.3. Exclusions

+

+

+Exclusions will apply to all LaTeX3 case-changing commands, so will also affect \mfirstucMakeUppercase, but this is generally desirable.
+

+

+\MFUexcl{〈cs〉}
+ Identifies the text-block command 〈cs〉{〈arg〉} as an exclusion. That is, one that should have its argument excluded from a case-change.

+Internally, \MFUexcl adds 〈cs〉 to LaTeX3’s exclusion list \l_text_case_exclude_arg_tl, which means that \MFUsentencecase will skip the command and its argument and apply the case-change to the following content. Some common commands (\begin \cite \end \label and \ref) are automatically added by the LaTeX3 kernel. The exclusions are also recognised by \makefirstuc when it parses its argument.

+

+The command \NoCaseChange is automatically treated as an exclusion by the LaTeX3 case-changing commands with recent LaTeX kernels. You may want to add it as a blocker for \makefirstuc and keep \MFUskippunc for exclusions.

+Note that \ensuremath is added as an exclusion by mfirstuc otherwise \makefirstuc will pass its argument to \MFUsentencecase, which will cause a problem.

+

+Another way of identifying content that should be excluded with \makefirstuc is to encapsulate it with:

+\MFUskippunc{〈content〉}
+ This is a robust command that simply does its argument and is automatically added to the exclusion list. This may be used for cases where the excluded command isn’t a simple text-block command that only has one mandatory argument or where leading punctuation is followed by a blocker or mapping.

+The command name stems from earlier versions where leading punctuation needed to be skipped. This is no longer necessary, but the command remains as a general purpose robust exclusion command.

+For example, \glsadd (provided by glossaries) should have its argument skipped, since its argument is a label, so the following will ensure that \glsadd{〈label〉} will be skipped, and the case-change will be applied to the following text for both \MFUsentencecase and \makefirstuc.

\MFUexcl{\glsadd}
+\makefirstuc{\glsadd{ex}some text}
+\MFUsentencecase{\glsadd{ex}some text}
+
This will be equivalent to:
\glsadd{ex}Some text
+
However, \glsadd can take an optional argument which, if present, will cause a problem. For example:
\MFUexcl{\glsadd}
+\makefirstuc{\glsadd[counter=section]{ex}some text}
+\MFUsentencecase{\glsadd[counter=section]{ex}some text}
+
Both commands will cause the following error:
! Package glossaries Error: Glossary entry `[' has not been defined.
+
This is because the open square bracket is assumed to be the argument of \glsadd, so this effectively becomes:
\glsadd{[}Counter=section] exsome text
+\glsadd{[}Counter=section] exsome text
+
which means that now [ is considered the label and everything that follows is just text.

+For this situation to work, you need to encapsulate the problematic content with an exclusion command, such as \NoCaseChange or \MFUskippunc:

\makefirstuc{\MFUskippunc{\glsadd[counter=section]{ex}}some text}
+
This will also work with \MFUsentencecase because mfirstuc automatically adds \MFUskippunc to the exclusion list.

+

+As from glossaries v4.50, \glsadd is automatically added as an exclusion, but be aware of the problem with using the optional argument, as described above.
+

+Punctuation characters are skipped by \MFUsentencecase. For example:

+

+

+\MFUsentencecase{`word'}
+
‘Word’

+ However, leading punctuation will result in \makefirstuc passing its entire argument to \MFUsentencecase (since the argument doesn’t start with 〈cs〉{〈arg〉}), which means that \makefirstuc won’t detect any blocker or mapping.

+For example:

\MFUblocker{\nameref}
+\newcommand*{\qt}[1]{``#1''}
+\makefirstuc{``\nameref{sec:sentencecase} section''} /
+\makefirstuc{\MFUskippunc{``}\nameref{sec:sentencecase} section''} /
+\makefirstuc{\qt{\nameref{sec:sentencecase} section}}
+
+ “Sentence-Case Section’’ / “Sentence-Case section’’ / “Sentence-Case sectionâ€
+ If you are using a package such as csquotes, bear in mind that if the command is followed by an asterisk (a “starred commandâ€) or an optional argument then it won’t fit the expected 〈cs〉{〈arg〉} format and unexpected results will occur.

+ +

+ +
+

1.4. Blockers

+

+A blocker is a command that prevents any case-change if it occurs at the start of \makefirstuc or after the argument of an exclusion. Blockers are not supported by \MFUsentencecase but are instead treated as exclusions.

+

+\MFUblocker{〈cs〉}
+ Identifies 〈cs〉 as a blocker. Since blockers aren’t supported by \MFUsentencecase, this automatically implements \MFUexcl{〈cs〉} to protect its argument from \MFUsentencecase, but it won’t prevent subsequent content from being changed.

+For example:

\MFUblocker{\nameref}
+\makefirstuc{\nameref{sec:sentencecase} section} 
+
+

+In the following, the blocker isn’t detected by \makefirstuc because the content doesn’t start with 〈cs〉{〈arg〉} or \protect〈cs〉{〈arg〉}. This means that the entire content is passed to \MFUsentencecase which treats \nameref as an exclusion:

\MFUblocker{\nameref}
+\makefirstuc{\relax\nameref{sec:sentencecase} section} 
+
+

+

+If a blocking command is inside the definition of another command, it won’t be visible to \makefirstuc unless the other command is expanded before applying \makefirstuc. For example, by using \xmakefirstuc or \emakefirstuc. If it doesn’t get expanded until after it has been passed to \MFUsentencecase, then it will be treated as an exclusion instead.
+

+Recent LaTeX kernels provide \NoCaseChange and automatically add it as an exclusion. You may want to add it as a blocker for \makefirstuc. For example:

\makefirstuc{\ensuremath{\alpha}-particle} /
+\makefirstuc{$\alpha$-particle} /
+\MFUsentencecase{\ensuremath{\alpha}-particle} /
+\MFUsentencecase{$\alpha$-particle}
+
+\MFUblocker{\NoCaseChange}% 
+\makefirstuc{\ensuremath{\alpha}-particle} /
+\makefirstuc{\NoCaseChange{$\alpha$}-particle} /
+\MFUsentencecase{\ensuremath{\alpha}-particle} /
+\MFUsentencecase{\NoCaseChange{$\alpha$}-particle}
+
Note that mfirstuc adds \ensuremath as an exclusion so \makefirstuc will skip it. Whereas the example above that starts with $ will have the entire argument passed to \MFUsentencecase, which skips the maths content. In the first paragraph, \NoCaseChange is only an exclusion, but in the second paragraph it’s also a blocker.
+Exclusion: ð›¼-Particle / ð›¼-Particle / ð›¼-Particle / ð›¼-Particle

+Blocker: ð›¼-Particle / ð›¼-particle / ð›¼-Particle / ð›¼-Particle

+

+ +

+ +
+

1.5. Mappings

+

+A mapping indicates that one command should be substituted for another, instead of applying a case-change. The assumption is that the substituted command should perform the case-change instead. Mappings are not supported by \MFUsentencecase but are instead treated as exclusions.

+

+\MFUaddmap{〈cs1〉}{〈cs2〉}
+ Identifies a mapping which indicates that \makefirstuc should replace 〈cs1〉 with 〈cs2〉 and not apply a case-change. This automatically implements:
\MFUexcl{〈cs1〉}\MFUblocker{〈cs2〉}
+
This means that 〈cs2〉 is identified as a blocker (since it’s assumed to already be a sentence-case command) and 〈cs1〉 is identified as an exclusion to protect its argument from \MFUsentencecase, which doesn’t support mappings.

+

+If either 〈cs1〉 or 〈cs2〉 is empty, no mapping is established, but an exclusion or blocker will be set for the non-empty argument.
+

+For example (with glossaries):

\MFUaddmap{\gls}{\Gls}
+\makefirstuc{\gls{ex} some text}
+
This will be converted to:
\Gls{ex} some text
+
Note that this and similar mappings are automatically added in glossaries v4.50+ and glossaries-extra v1.49+.

+

+If a mapped command is inside the definition of another command, it won’t be visible to \makefirstuc unless the other command is expanded before applying \makefirstuc. For example, by using \xmakefirstuc or \emakefirstuc. If it doesn’t get expanded until after it has been passed to \MFUsentencecase, then it will be treated as an exclusion instead.
+

+ +

+ +
+

1.6. Package Options

+

+

+expanded
+ Redefines \glsmakefirstuc to simply use \MFUsentencecase.

+

+unexpanded
+ Redefines \glsmakefirstuc to use \MFUsentencecase without expanding its argument.

+

+grabfirst

+

avoid where possible
+
+ Redefines \glsmakefirstuc to use \mfugrabfirstuc and also redefines \mfirstucMakeUppercase to use \MakeUppercase.

+This option is best avoided and is only provided to emulate the v2.07 behaviour of \glsmakefirstuc. However, you may still have different results compared to v2.07, so you may need to use rollback instead.

+ +

+ +
+

2. Title-Case

+

+The title-case commands are designed to convert the first letter of each word in a phrase to uppercase. These commands are robust.

+\capitalisewords{〈text〉}
+ This command applies a sentence-case command to each word in 〈text〉 where the space character is used as the word separator. Note that it has to be an ordinary space character, not another form of space, such as ~ or \space. Note that no expansion is performed on 〈text〉. For example: +

+

+\capitalisewords{a sample phrase}
+
A Sample Phrase

+ See §2.1 for excluding words (such as “ofâ€) from the case-changing.

+

+This isn’t the same as the LaTeX3 command \text_titlecase:n, which converts the first letter to uppercase and all other letters to lowercase.
+

+For convenience, there are shortcut commands if expansion is required before parsing the argument:

+\xcapitalisewords{〈text〉}
+ This is a shortcut for:
\expandafter\capitalisewords\expandafter{〈text〉}
+
+\ecapitalisewords{〈text〉}
+ This fully expands 〈text〉 before passing it to \capitalisewords.

+The parser used by \capitalisewords first splits up the text on each space character. Each of these space-separated words may actually be a compound, so further parsing is performed on each “wordâ€. The divisions within the compound word should be marked up with:

+\MFUwordbreak{〈text〉}
+ For example: +

+

+\capitalisewords{a 
+big\MFUwordbreak{/}small idea}
+
A Big/Small Idea

+ Each sub-word within the compound word is encapsulated with:

+\MFUcapword{〈text〉}
+ Since it’s inconvenient to have to markup every hyphen, \MFUcapword can be enabled to check for hyphens.
+\ifMFUhyphen 〈true〉\else 〈false〉\fiinitial: \iffalse
+ This conditional determines whether or not \MFUcapword should consider a hyphen a word break. If this conditional is true, then \MFUcapword will encapsulate its argument with:
+\MFUhyphencapword{〈text〉}
+ This will parse 〈text〉 for hyphen characters and apply the case change to each hyphen-separated word. Otherwise \MFUcapword will treat its argument as a single word.

+The conditional can be set to true with:

+\MFUhyphentrue
+ and switched back off with:
+\MFUhyphenfalse
+

+For example:

\capitalisewords{server-side includes} /
+\MFUhyphentrue
+\capitalisewords{server-side includes}
+
+Server-side Includes / Server-Side Includes
+

+The actual case-change of each word is performed with:

+\MFUcapwordfirstuc{〈word〉}
+ This defaults to \makefirstuc{〈word〉} but may be redefined to use \MFUsentencecase, if preferred.

+

+Hyphens and \MFUwordbreak must be visible to the parser that searches for word breaks. This means they won’t be detected if they are within a group or in the definition of a command.
+

+Formatting for the entire phrase must go outside \capitalisewords (unlike \makefirstuc). For example:

\capitalisewords{\emph{a sample phrase}} /
+\emph{\capitalisewords{a sample phrase}}
+
+A sample phrase / A Sample Phrase
+

+If your phrase is likely to contain formatting commands, you can instead use:

+\capitalisefmtwords{〈text〉}modifier: *
+ where 〈text〉 may be just words (as with \capitalisewords):
\capitalisefmtwords{〈words〉}
+
or may be entirely enclosed in a formatting command in the form:
\capitalisefmtwords{〈cs〉{〈words〉}}
+
or contain formatted sub-phrases:
\capitalisefmtwords{〈words〉 〈cs〉{〈sub-phrase〉} 〈words〉}
+
The starred form only permits a text-block command at the start of the phrase. See §2.3 for examples.

+

+Avoid declarations, such as \bfseries or \em.
+

+If expansion is required, you can use:

+\xcapitalisefmtwords{〈text〉}modifier: *
+ which is a shortcut for:
\expandafter\capitalisefmtwords\expandafter{〈text〉}
+
(The star modifier will be applied with \xcapitalisefmtwords* in an appropriate manner.)

+

+\ecapitalisefmtwords{〈text〉}modifier: *
+ This will fully expand its argument before passing it to \capitalisefmtwords. Again, the star modifier may be used.

+

+The unstarred \capitalisefmtwords is only designed for phrases that contain text-block commands with a single argument, which should be a word or sub-phrase. Anything more complicated is likely to break. Instead, use the starred form or \capitalisewords.
+

+ +

+ +
+

2.1. Excluding Words From Case-Changing

+

+Some words typically shouldn’t have their case changed unless they occur at the start. These words can be identified with:

+\MFUnocap{〈word〉}
+ This only has a local effect. The global version is:
+\gMFUnocap{〈word〉}
+ The list of words that shouldn’t be capitalised can be cleared using:
+\MFUclear
+

+For example:

\capitalisewords{the wind in the willows}
+
+\MFUnocap{in}% 
+\MFUnocap{the}% 
+
+\capitalisewords{the wind in the willows}
+
+The Wind In The Willows

+

+The Wind in the Willows

+

+Since the case-change is ultimately performed by \makefirstuc, you can also use an exclusion to prevent an individual word from being changed. For example:

\newcommand{\NoChange}[1]{#1}
+\MFUexcl{\NoChange}
+\MFUclear
+\capitalisewords{the \NoChange{wind} in the willows}
+
+ The wind In The Willows
+ This can also work if you redefine \MFUcapwordfirstuc to use \MFUsentencecase provided the exclusion command doesn’t expand (so \NoChange would need to be protected or made robust in the above example).

+

+Exceptions only apply to (non-leading) whole words or words separated with \MFUwordbreak but not to parts of a hyphenated word that are split by \MFUhyphencapword.
+

+Examples: +

    +
  1. 1.Exceptions aren’t applied if \MFUwordbreak occurs before the first space.
    \MFUnocap{a}\MFUnocap{the}% 
    +\capitalisewords{a\MFUwordbreak{/}the something}
    +
    +A/The Something
    +

    +

  2. 2.Exceptions are applied for non-leading words:
    \MFUnocap{and}\MFUnocap{or}% 
    +\capitalisewords{one and\MFUwordbreak{/}or another}
    +
    +One and/or Another
    +

    +

  3. 3.Exceptions aren’t applied for hyphenated parts:
    \MFUhyphentrue
    +\MFUnocap{and}\MFUnocap{or}% 
    +\capitalisewords{one and-or another}
    +
    +One And-Or Another
    -> Nicola L.C. Talbot Dickimaw Books -http://www.dickimaw-books.com/ -
-

2021-10-15

- - - -

Contents

- - - - -

1. Introduction

-

The mfirstuc package was originally part of the glossaries bundle for use with commands -like \Gls, but as the commands provided by mfirstuc may be used without glossaries, the two -have been split into separately maintained packages. -

The commands described here all have limitations. To minimise problems, use text-block -style semantic commands with one argument (the text that requires case-changing), and avoid -scoped declarations.
-

-

Here are some examples of semantic commands: -

    -
  1. -

    Quoted material: - - - -

    -
    -     \newcommand{\qt}[1]{``#1''}
    -
    -

    (or use the csquotes package). With this, the following works: - - - -

    -
    -     \makefirstuc{\qt{word}}
    -
    -

    This produces: -
    “Word” -
    - Whereas - - - -

    -
    -     \makefirstuc{``word''}
    -
    -

    fails (no case-change and double open quote becomes two single open quotes): - -
    ‘‘word” -
    -

  2. -
  3. -

    Font styles or colours: - - - -

    -
    -     \newcommand*{\alert}[1]{\textcolor{red}{#1}}
    -
    -

    Now the following is possible: - - - -

    -
    -     \makefirstuc{\alert{word}}
    -
    -

    This produces -
    Word -
    - Note that \makefirstuc{\textcolor{red}{word}} fails (with an error) because the - case-changing interferes with the label.

-

Define these semantic commands robustly if you intend using any of the commands -that fully expand their argument (\emakefirstuc, \ecapitalisewords and -\ecapitalisefmtwords). - - - -

-

-

Top

2. Capitalising the First Letter of a Word

-

A simple word can be capitalised just using the standard LaTeX upper casing command. -For example, - - - -

-
-\MakeUppercase word
-
-

but for commands like \Gls the word may be embedded within the argument of another -command, such as a font changing command. This makes things more complicated for -a general purpose solution, so the mfirstuc package provides: -


\makefirstuc  \makefirstuc{stuff}

-

-This makes the first object of ⟨stuff ⟩ upper case unless ⟨stuff ⟩ starts with a control sequence -followed by a non-empty group, in which case the first object in the group is converted to -upper case. No expansion is performed on the argument. -

If ⟨stuff ⟩ starts with punctuation that should be skipped over, use: -


\MFUskippunc  \MFUskippunc{punctuation}

-

-

If ⟨stuff ⟩ starts with a control sequence that takes more than one argument, the -case-changing will always be applied to the first argument. If the text that requires the case -change is in one of the other arguments, you must hide the earlier arguments in a wrapper -command. For example, instead of \textcolor{red}{text} you need to define, say, \red as -\color{red} and use \red{text}.
-

-

Examples:

-
    -
  • -

    \makefirstuc{abc} produces Abc. -

  • -
  • -

    \makefirstuc{\emph{abc}} produces Abc (\MakeUppercase has been applied to the - letter “a” rather than \emph). Note however that - - - -

    -
    -     \makefirstuc{{\em abc}}
    -
    -

    produces ABC (first object is {\em abc} so this is equivalent to \MakeUppercase{\em abc}), - and - - - -

    -
    -     {\makefirstuc{\em abc}}
    -
    -

    produces abc (\em doesn’t have an argument therefore first object is \em and so is - equivalent to {\MakeUppercase{\em}abc}). -

  • -
  • -

    \makefirstuc{{\’a}bc} produces Ábc. -

  • -
  • -

    \makefirstuc{\ae bc} produces Æbc. -

  • -
  • -

    \makefirstuc{{\ae}bc} produces Æbc. -

  • -
  • -

    \makefirstuc{{ä}bc} produces Äbc. -

  • -
  • -

    \makefirstuc{\MFUskippunc{’}tis the season} produces ’Tis the season. -

    -
-

Note that non-Latin or accented characters appearing at the start of the text should be -placed in a group (even if you are using the inputenc package). The reason for this restriction -is detailed in §4. UTF-8. -

New to version 2.04: There is now limited support for UTF-8 characters with the -inputenc package, provided that you load datatool-base (at least v2.24) before mfirstuc -(datatool-base is loaded automatically with newer versions of glossaries). If available mfirstuc -will now use datatool-base’s \dtl@getfirst@UTFviii command which is still experimental. -See the datatool manual for further details. - - - -

-
-\documentclass{article}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\usepackage{datatool-base}[2016/01/12]% v2.24+
-\usepackage{mfirstuc}
-\begin{document}
-\makefirstuc{élite}
-\end{document}
-
-

(Package ordering is important.) -

In version 1.02 of mfirstuc, a bug fix resulted in a change in output if the first object is a -control sequence followed by an empty group. Prior to version 1.02, \makefirstuc{\ae{}bc} -produced æBc. However as from version 1.02, it now produces Æbc.
-

-

Note also that - - - -

-
-\newcommand{\abc}{abc}
-\makefirstuc{\abc}
-
-

produces: ABC. This is because the first object in the argument of \makefirstuc is \abc, so -it does \MakeUppercase{\abc}. Whereas: - - - -

-
-\newcommand{\abc}{abc}
-\expandafter\makefirstuc\expandafter{\abc}
-
-

produces: Abc. There is a short cut command which will do this: -


\xmakefirstuc  \xmakefirstuc{stuff}

-

-This is equivalent to \expandafter\makefirstuc\expandafter{stuff }. So - - - -

-
-\newcommand{\abc}{abc}
-\xmakefirstuc{\abc}
-
-

produces: Abc. -

\xmakefirstuc only performs one level expansion on the first object in its argument. It -does not fully expand the entire argument.
-

-

As from version 1.10, there is now a command that fully expands the entire argument -before applying \makefirstuc: -


\emakefirstuc  \emakefirstuc{text}

-

-

Examples: - - - -

-
-\newcommand{\abc}{\xyz a}
-\newcommand{\xyz}{xyz}
-No expansion: \makefirstuc{\abc}.
-First object one-level expansion: \xmakefirstuc{\abc}.
-Fully expanded: \emakefirstuc{\abc}.
-
-

produces: No expansion: XYZA. First object one-level expansion: XYZa. Fully expanded: -Xyza. -

If you use mfirstuc without the glossaries package, the standard \MakeUppercase command -is used. If used with glossaries, \MakeTextUppercase (defined by the textcase package) is used -instead. If you are using mfirstuc without the glossaries package and want to use -\MakeTextUppercase instead, you can redefine -


\glsmakefirstuc  \glsmakefirstuc{text}

-

-For example: - - - -

-
-\renewcommand{\glsmakefirstuc}[1]{\MakeTextUppercase #1}
-
-

Remember to also load textcase (glossaries loads this automatically). - - - -

-

-

Top

3. Capitalise the First Letter of Each Word in a Phrase or Sentence (Title Case)

-

New to mfirstuc v1.06: -


\capitalisewords  \capitalisewords{text}

-

-This command applies \makefirstuc to each word in ⟨text⟩ where the space character is used -as the word separator. Note that it has to be a plain space character, not another form of -space, such as ~ or \space. Note that no expansion is performed on ⟨text⟩. See §3.2 Excluding Words From Case-Changing for excluding words (such as “of”) from the -case-changing. -

The actual capitalisation of each word is done using -


\MFUcapwordfirstuc  \MFUcapwordfirstuc{word}

-

-This just does \makefirstuc{word} by default. There’s a conditional that determines -whether or not to consider a hyphen a word break: -


\ifMFUhyphen  \ifMFUhyphen

-

-

If you want to title case each part of a compound word containing hyphens, you can enable -this using -


\MFUhyphentrue  \MFUhyphentrue

-

-or switch it back off again using: -


\MFUhyphenfalse  \MFUhyphenfalse

-

-Compare - - - -

-
-\capitalisewords{server-side includes}
-
-

which produces: -
Server-side Includes -
-with - - - -

-
-\MFUhyphentrue
-\capitalisewords{server-side includes}
-
-

which produces: -
Server-Side Includes -
-Note that this won’t apply exceptions to each part of the hyphenated word. -

For other punctuation you need to markup the character with: -


\MFUwordbreak  \MFUwordbreak{punctuation}

-

-For example: - - - -

-
-\capitalisewords{a big\MFUwordbreak{/}small idea}
-
-

which produces: -
A Big/Small Idea -
-In this case, exceptions are applied. For example, if mfirstuc-english is loaded then: - - - -

-
-\capitalisewords{one and\MFUwordbreak{/}or another}
-
-

produces: -
One and/or Another -
-Note that you can’t hide \MFUwordbreak inside a command or group. -

Exceptions aren’t applied if \MFUwordbreak occurs before the first space. For -example: - - - -

-
-\MFUnocap{a}\MFUnocap{the}%
-\capitalisewords{a\MFUwordbreak{/}the something}
-
-

produces: -
A/The Something -
-

Formatting for the entire phrase must go outside \capitalisewords (unlike -\makefirstuc). Compare: - - - -

-
-\capitalisewords{\textbf{a sample phrase}}
-
-

which produces: -
A sample phrase -
-with: - - - -

-
-\textbf{\capitalisewords{a sample phrase}}
-
-

which produces: -
A Sample Phrase -
-

As from version 2.03, there is now a command for phrases that may include a formatting -command: -


\capitalisefmtwords{phrase}

-

-where ⟨phrase⟩ may be just words (as with \capitalisewords) or may be entirely enclosed in a -formatting command in the form

-
-\capitalisefmtwords{cs{phrase}} -
-
or contain formatted sub-phrases
-
-\capitalisefmtwords{words cs{sub-phrase} words} -
-
Avoid scoped declarations. -

\capitalisefmtwords is only designed for phrases that contain text-block commands -with a single argument, which should be a word or sub-phrase. Anything more complicated is -likely to break. Instead, use the starred form or \capitalisewords.
-

-

The starred form only permits a text-block command at the start of the phrase. -

Examples: -

    -
  1. -

    Phrase entirely enclosed in a formatting command: - - - -

    -
    -     \capitalisefmtwords{\textbf{a small book of rhyme}}
    -
    -

    produces: -
    A Small Book Of Rhyme -
    -

  2. -
  3. -

    Sub-phrase enclosed in a formatting command: - - - -

    -
    -     \capitalisefmtwords{a \textbf{small book} of rhyme}
    -
    -

    produces: -
    A Small Book Of Rhyme -
    -

  4. -
  5. -

    Nested text-block commands: - - - -

    -
    -     \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}
    -
    -

    produces: -
    A Small Book Of Rhyme -
    -

  6. -
  7. -

    Indicating words that shouldn’t have the case changed (see §3.2 Excluding - Words From Case-Changing): - - - -

    -
    -     \MFUnocap{of}
    -     \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}
    -
    -

    produces: -
    A Small Book of Rhyme -
    -

  8. -
  9. -

    Starred form: - - - -

    -
    -     \MFUnocap{of}
    -     \capitalisefmtwords*{\emph{a small book of rhyme}}
    -
    -

    produces: -
    A Small Book of Rhyme -
    -

  10. -
  11. -

    The starred form also works with just text (no text-block command): - - - -

    -
    -     \MFUnocap{of}
    -     \capitalisefmtwords*{a small book of rhyme}
    -
    -

    produces: -
    A Small Book of Rhyme -
    -

    -
-

If there is a text-block command within the argument of the starred form, it’s assumed to -be at the start of the argument. Unexpected results can occur if there are other commands. -For example - - - -

-
-\MFUnocap{of}
-\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}}
-
-

produces: -
A Small Book Of rhyme -
-(In this case \textbf{of rhyme} is considered a single word.) Similarly if the text-block -command occurs in the middle of the argument: - - - -

-
-\MFUnocap{of}
-\capitalisefmtwords*{a \emph{very small} book of rhyme}
-
-

produces: -
A Very small Book of Rhyme -
-(In this case \emph{very small} is considered a single word.) -

Grouping causes interference: - - - -

-
-\capitalisefmtwords{{a \emph{small book}} of rhyme}
-
-

produces: -
A Small book Of Rhyme -
-As with all the commands described here, avoid declarations. For example, the following -fails: - - - -

-
-\capitalisefmtwords{{\bfseries a \emph{small book}} of rhyme}
-
-

produces: -
a Small book Of Rhyme -
-

Avoid complicated commands in the unstarred version. For example, the following -breaks: - - - -

-
-\newcommand*{\swap}[2]{{#2}{#1}}
-\capitalisefmtwords{a \swap{bo}{ok} of rhyme}
-
-

However it works okay with the starred form and the simpler \capitalisewords: - - - -

-
-\newcommand*{\swap}[2]{{#2}{#1}}
-\capitalisefmtwords*{a \swap{bo}{ok} of rhyme}
-\capitalisewords{a \swap{bo}{ok} of rhyme}
-
-

Produces: -
A okBo Of Rhyme -
A okBo Of Rhyme -
-Note that the case change is applied to the first argument. -


\xcapitalisewords  \xcapitalisewords{text}

-

-This is a short cut for \expandafter\capitalisewords\expandafter{text}. -

As from version 1.10, there is now a command that fully expands the entire argument -before applying \capitalisewords: -


\ecapitalisewords  \ecapitalisewords{text}

-

-

There are also similar shortcut commands for the version that allows text-block -commands: -


\xcapitalisefmtwords  \xcapitalisefmtwords{text}

-

-The unstarred version is a short cut for \expandafter\capitalisefmtwords\expandafter -{text}. Similarly the starred version of \xcapitalisefmtwords uses the starred version of -\capitalisefmtwords. -

For full expansion: -


\ecapitalisefmtwords  \ecapitalisefmtwords{text}

-

-Take care with this as it may expand non-robust semantic commands to replacement -text that breaks the functioning of \capitalisefmtwords. Use robust semantic -commands where possible. Again this has a starred version that uses the starred form of -\capitalisefmtwords. -

Examples: - - - -

-
-\newcommand{\abc}{\xyz\space four five}
-\newcommand{\xyz}{one two three}
-No expansion: \capitalisewords{\abc}.
-First object one-level expansion: \xcapitalisewords{\abc}.
-Fully expanded: \ecapitalisewords{\abc}.
-
-

produces: -
No expansion: ONE TWO THREE FOUR FIVE. -
First object one-level expansion: ONE TWO THREE four Five. -
Fully expanded: One Two Three Four Five. -
-

(Remember that the spaces need to be explicit. In the second case above, using -\xcapitalisewords, the space before “four” has been hidden within \space so it’s not -recognised as a word boundary, but in the third case, \space has been expanded to an actual -space character.) -

Examples: -

    -
  1. -

    - - - -

    -
    -     \capitalisewords{a book of rhyme.}
    -
    -

    produces: A Book Of Rhyme. -

  2. -
  3. -

    - - - -

    -
    -     \capitalisewords{a book\space of rhyme.}
    -
    -

    produces: A Book of Rhyme. -

  4. -
  5. -

    - - - -

    -
    -     \newcommand{\mytitle}{a book\space of rhyme.}
    -     \capitalisewords{\mytitle}
    -
    -

    produces: A BOOK OF RHYME. (No expansion is performed on \mytitle.) Compare - with next example: -

  6. -
  7. -

    - - - -

    -
    -     \newcommand{\mytitle}{a book\space of rhyme.}
    -     \xcapitalisewords{\mytitle}
    -
    -

    produces: A Book of Rhyme. -

    However - - - -

    -
    -     \ecapitalisewords{\mytitle}
    -
    -

    produces: A Book Of Rhyme. (\space has been expanded to an actual space - character.) -

  8. -
  9. -

    - - - -

    -
    -     \newcommand*{\swap}[2]{{#2}{#1}}
    -     \capitalisewords{a \swap{bo}{ok} of rhyme}
    -     \ecapitalisewords{a \swap{bo}{ok} of rhyme}
    -
    -

    produces: -
    A okBo Of Rhyme -
    A OKbo Of Rhyme -
    - This is because the argument of \ecapitalisewords is fully expanded before being - passed to \capitalisewords so that last example is equivalent to: - - - -

    -
    -     \capitalisewords{a {ok}{bo} of rhyme}
    -
    -

-

Top

3.1 PDF Bookmarks

-

If you are using hyperref and want to use \capitalisewords, \capitalisefmtwords or -\makefirstuc (or the expanded variants) in a section heading, the PDF bookmarks won’t be -able to use the command as it’s not expandable, so you will get a warning that looks -like: - - - -

-
-Package hyperref Warning: Token not allowed in a PDF string
+
+

+

+\usepackage{mfirstuc-english}
+ The supplementary package mfirstuc-english loads mfirstuc and uses \MFUnocap to add common English articles and conjunctions, such as “aâ€, “anâ€, “andâ€, “butâ€. You may want to add other words to this list, such as prepositions but, as there’s some dispute over whether prepositions should be capitalised, I don’t intend to add them to this package. Note that you need to explicitly load mfirstuc-english if you require it. There’s no automatic language detection performed by mfirstuc.

+If you want to write a similar package for another language, all you need to do is create a file with the extension .sty that starts with:

\NeedsTeXFormat{LaTeX2e}
+
The next line should identify the package. For example, if you have called the file mfirstuc-french.sty then you need:
\ProvidesPackage{mfirstuc-french}
+
It’s a good idea to also add a version in the final optional argument, for example:
\ProvidesPackage{mfirstuc-french}[2014/07/30 v1.0]
+
Next load mfirstuc:
\RequirePackage{mfirstuc}
+
Now add all your \MFUnocap commands. For example:
\MFUnocap{de}
+
At the end of the file add:
\endinput
+

+Put the file somewhere on TeX’s path, and now you can use this package in your document. You might also consider uploading it to CTAN in case other users find it useful.

+ + + +

+

2.2. PDF Bookmarks

+

+If you are using hyperref and want to use \capitalisewords or \capitalisefmtwords (or the expanded variants) in a section heading, the PDF bookmarks won’t be able to use the command as it’s not expandable, so you will get a warning that looks like:

Package hyperref Warning: Token not allowed in a PDF string 
 (PDFDocEncoding):
-(hyperref)                removing `\capitalisewords'
-
-

-

-

If you want to provide an alternative for the PDF bookmark, you can use hyperref’s -\texorpdfstring command. For example: - - - -

-
-\chapter{\texorpdfstring
-  {\capitalisewords{a book of rhyme}}% TeX
-  {A Book of Rhyme}% PDF
+(hyperref)                removing `\capitalisewords'
+

+If you want to provide an alternative for the PDF bookmark, you can use hyperref’s \texorpdfstring command. For example:

\chapter{\texorpdfstring
+  {\capitalisewords{a book of rhyme}}%  TeX
+  {A Book of Rhyme}%  PDF
 }
-
-

Alternatively, you can use hyperref’s mechanism for disabling commands within the -bookmarks. For example: - - - -

-
-\pdfstringdefDisableCommands{%
- \let\capitalisewords\@firstofone
+
Alternatively, you can use hyperref’s mechanism for disabling commands within the bookmarks. For example:
\pdfstringdefDisableCommands{% 
+ \let\capitalisewords\@firstofone
 }
-
-

-

See the hyperref manual for further details. -

-

-

Top

3.2 Excluding Words From Case-Changing

-

As from v1.09, you can specify words which shouldn’t be capitalised unless they occur at the -start of ⟨text⟩ using: -


\MFUnocap  \MFUnocap{word}

-

-This only has a local effect. The global version is: -


\gMFUnocap  \gMFUnocap{word}

-

-

For example: - - - -

-
-\capitalisewords{the wind in the willows}
-\MFUnocap{in}%
-\MFUnocap{the}%
-\capitalisewords{the wind in the willows}
-
-

produces: -
The Wind In The Willows -
The Wind in the Willows -
-The list of words that shouldn’t be capitalised can be cleared using -


\MFUclear  \MFUclear

-

-

You can also simply place an empty group in front of a word if you don’t want that specific -instance to be capitalised. For example: - - - -

-
-\MFUclear
-\capitalisewords{the {}wind in the willows}
-
-

produces: -
The wind In The Willows -
-This is also a useful way of protecting commands that shouldn’t be parsed. For -example: - - - -

-
-\capitalisewords{this is section {}\nameref{sec:nocap}.}
-
-

produces -
This Is Section Excluding Words From Case-Changing. -
-(No case-changing is applied to \nameref{sec:nocap}. It just happens to already be in title -case.) -

The package mfirstuc-english loads mfirstuc and uses \MFUnocap to add common -English articles and conjunctions, such as “a”, “an”, “and”, “but”. You may want -to add other words to this list, such as prepositions but, as there’s some dispute -over whether prepositions should be capitalised, I don’t intend to add them to this -package. -

If you want to write a similar package for another language, all you need to do is create a -file with the extension .sty that starts with - - - -

-
-\NeedsTeXFormat{LaTeX2e}
-
-

The next line should identify the package. For example, if you have called the file -mfirstuc-french.sty then you need: - - - -

-
-\ProvidesPackage{mfirstuc-french}
-
-

It’s a good idea to also add a version in the final optional argument, for example: - - - -

-
-\ProvidesPackage{mfirstuc-french}[2014/07/30 v1.0]
-
-

Next load mfirstuc: - - - -

-
-\RequirePackage{mfirstuc}
-
-

Now add all your \MFUnocap commands. For example: - - - -

-
-\MFUnocap{de}
-
-

At the end of the file add: - - - -

-
-\endinput
-
-

-

Put the file somewhere on TeX’s path, and now you can use this package in your -document. You might also consider uploading it to CTAN in case other users find it -useful. - - - -

-

-

Top

4. UTF-8

-

(See Binary Files, Text Files and File Encodings if you are confused about how file -encodings such as UTF-8 relate to text files.) -

The \makefirstuc command works by utilizing the fact that, in most cases, TeX doesn’t -require a regular argument to be enclosed in braces if it only consists of a single token. (This is -why you can do, say, \frac12 instead of \frac{1}{2} or x^2 instead of x^{2}, although some -users frown on this practice.) -

A simplistic version of the \makefirstuc command is: - - - -

-
-\newcommand*{\FirstUC}[1]{\MakeUppercase #1}
-
-

Here - - - -

-
-\FirstUC{abc}
-
-

is equivalent to - - - -

-
-\MakeUppercase abc
-
-

and since \MakeUppercase requires an argument, it grabs the first token (the character “a” in -this case) and uses that as the argument so that the result is: Abc. -

The glossaries package needs to take into account the fact that the text may be contained -in the argument of a formatting command, such as \acronymfont, so \makefirstuc has to be -more complicated than the trivial \FirstUC shown above, but at its basic level, \makefirstuc -uses this same method and is the reason why, in most cases, you don’t need to enclose the first -character in braces. So if

-
-\MakeUppercase stuff⟩ -
-
works, then
-
-\makefirstuc{stuff} -
-
should also work and so should
-
-\makefirstuc{\foo{stuff}} -
-
but if
-
-\MakeUppercase stuff⟩ -
-
doesn’t work, then neither will
-
-\makefirstuc{stuff} -
-
nor
-
-\makefirstuc{\foo{stuff}} -
-
-

Try the following document:

- - - -
-\documentclass{article} -
-
\usepackage[utf8]{inputenc} -
\usepackage[T1]{fontenc} -
-
\begin{document} -
-
\MakeUppercase ãbc -
-
\end{document} -
-
-

This will result in the error: - - - -

-
-! Argument of \UTFviii@two@octets has an extra }.
-
-

This is why \makefirstuc{ãbc} won’t work. It will only work if the character ã is placed -inside a group. -

The reason for this error message is due to TeX having been written before Unicode was -invented. Although ã may look like a single character in your text editor, from TeX’s point of -view it’s two tokens. So

-
-\MakeUppercase ãbc -
-
tries to apply \MakeUppercase to just the first octet of ã. This means that the second octet -has been separated from the first octet, which is the cause of the error. In this case the -argument isn’t a single token, so the two tokens (the first and second octet of ã) must be -grouped:
-
-\MakeUppercase{ã}bc -
-
Over recent years the LaTeX kernel has changed to allow the use of UTF-8 characters within -labels but the fundamental problem of each octet been viewed as a separated token -remains. -

Note that XeTeX (and therefore XeLaTeX) is a modern implementation of TeX designed -to work with Unicode and therefore doesn’t suffer from this drawback. Now let’s look at the -XeLaTeX equivalent of the above example:

-
-\documentclass{article} -
-
\usepackage{fontspec} -
-
\begin{document} -
-
\MakeUppercase ãbc -
-
\end{document} -
-
-

This works correctly when compiled with XeLaTeX. This means that \makefirstuc{ãbc} -will work provided you use XeLaTeX and the fontspec package. -

Version 2.24 of datatool-base added the command \dtl@getfirst@UTFviii which -attempts to grab both octets. If this command has been defined, mfirstuc will use it when it -tries to split the first character from the rest of the word. See the datatool documented code -for further details. - - - -

-

-

Top

Index

- C -
\capitalisewords  8
-

D -datatool-base package  6, 20
-

E -\ecapitalisefmtwords  13
-\ecapitalisewords  13
-\emakefirstuc  7
-

F -fontspec package  20
-

G -glossaries package  6, 7, 18
-\glsmakefirstuc  7
-\gMFUnocap  15
-

H -hyperref package  15
-

I -\ifMFUhyphen  8
-inputenc package  6
-

M -\makefirstuc  5
-mfirstuc package  6, 20
- - - -mfirstuc-english package  9, 16
-\MFUcapwordfirstuc  8
-\MFUclear  16
-\MFUhyphenfalse  8
-\MFUhyphentrue  8
-\MFUnocap  15
-\MFUskippunc  5
-\MFUwordbreak  9
-

T -textcase package  7
-

X -\xcapitalisefmtwords  13
-\xcapitalisewords  13
-\xmakefirstuc  7
-

- - - - - - + The same applies to \makefirstuc. You can, however, use the expandable \MFUsentencecase. So you may prefer:
\pdfstringdefDisableCommands{% 
+ \let\capitalisewords\MFUsentencecase
+ \let\makefirstuc\MFUsentencecase
+}
+

+See the hyperref manual for further details.

+ + + +

+

2.3. Examples

+

+ +

    +
  1. 1.Text only: +

    +

    +\capitalisewords{a little book of rhyme}
    +
    A Little Book Of Rhyme

    +

    +

  2. 2.Excluding words (see §2.1): +

    +

    +\MFUnocap{of}
    +\capitalisewords{a little book of rhyme}
    +
    A Little Book of Rhyme

    +

    +

  3. 3.\space isn’t recognised as a word boundary:
    \capitalisewords{a book of rhyme.}
    +
    +\capitalisewords{a book\space of rhyme.}
    +
    +A Book Of Rhyme.

    +A Book of Rhyme.

    +

    +

  4. 4.Phrase entirely enclosed in a formatting command:
    \capitalisefmtwords{\emph{a small book of rhyme}}
    +
    +A Small Book Of Rhyme
    +

    +

  5. 5.Sub-phrase enclosed in a formatting command:
    \capitalisefmtwords{a \emph{small book} of rhyme}
    +
    +A Small Book Of Rhyme
    +

    +

  6. 6.Nested text-block commands:
    \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}
    +
    +A Small Book Of Rhyme
    +

    +

  7. 7.Formatting and case-change exception (see §2.1):
    \MFUnocap{of}
    +\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}
    +
    + A Small Book of Rhyme
    +

    +

  8. 8.Starred form:
    \MFUnocap{of}
    +\capitalisefmtwords*{\emph{a small book of rhyme}}
    +
    + A Small Book of Rhyme
    +

    +

  9. 9.The starred form also works with just text (no text-block command):
    \MFUnocap{of}
    +\capitalisefmtwords*{a small book of rhyme}
    +
    + A Small Book of Rhyme
    +

    +

  10. 10.Expansion:
    \newcommand{\abc}{\xyz\space four five}
    +\newcommand{\xyz}{one two three}
    +No expansion: \capitalisewords{\abc}.
    +
    +First object one-level expansion: \xcapitalisewords{\abc}.
    +
    +Fully expanded: \ecapitalisewords{\abc}.
    +
    + No expansion: one two three four five.

    +First object one-level expansion: one two three Four Five.

    +Fully expanded: One Two Three Four Five.

    +

    +Remember that the spaces need to be explicit. In the second case above, using \xcapitalisewords, the space before “four†has been hidden within \space so it’s not recognised as a word boundary, but in the third case, \space has been expanded to an actual space character.

    + +

+

+If there is a text-block command within the argument of the starred form, it’s assumed to be at the start of the argument. Unexpected results can occur if there are other commands. For example:

\MFUnocap{of}
+\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}}
+
+ A Small Book Of rhyme
+ In this case \textbf{of rhyme} is considered a single word. Similarly if the text-block command occurs in the middle of the argument:
\MFUnocap{of}
+\capitalisefmtwords*{a \emph{very small} book of rhyme}
+
+ A Very small Book of Rhyme
+ In this case \emph{very small} is considered a single word.

+Grouping causes interference. As with all the commands described here, avoid declarations.

\capitalisefmtwords{{\bfseries a \emph{small book}} of rhyme}
+

+

+As a general rule, it’s better to define semantic commands rather than directly using font commands and declarations within the document.
+

+Avoid complicated commands in the unstarred version. For example, the following breaks:

\newcommand*{\swap}[2]{{#2}{#1}}
+\capitalisefmtwords{a \swap{bo}{ok} of rhyme}
+
However it can work with the starred form and the simpler \capitalisewords:
\newcommand*{\swap}[2]{{#2}{#1}}
+\capitalisefmtwords*{a \swap{bo}{ok} of rhyme}
+
+\capitalisewords{a \swap{bo}{ok} of rhyme}
+
+ A okBo Of Rhyme

+A okBo Of Rhyme

+ Note that the case change is applied to the first argument.

+ +

+ +
+

3. Miscellaneous

+

+ +

+ +
+

3.1. Saving exclusions, blockers and mappings in the aux File

+

+If the exclusions, mappings and blockers are required by some external tool, the information can be saved in the aux file.

+

+\MFUsaveatend
+ This saves the information at the end of the document using a delayed write. This means that it can register all information identified throughout the document, but there’s a chance the document may end before the write takes place (for example, if the last page only contains floats). This command may be counteracted by:
+\MFUsave
+ This saves the information using a protected write at the point where this command occurs, which may be too soon if additional exclusions, mappings or blockers are identified later. This command will counteract any instance of \MFUsaveatend, regardless of whether or not \MFUsaveatend comes before or after \MFUsave.

+The associated aux commands are listed below. In each case, a definition is provided in the aux file that does nothing.

+\@mfu@excls{〈exclusions〉}
+ Lists all exclusions. For example:
\@mfu@excls{\begin \cite \end \label
+\ref \cite \NoCaseChange \ensuremath
+\MFUskippunc \gls \glspl}
+

+

+\@mfu@blockers{〈blockers〉}
+ Lists all blockers. For example:
\@mfu@blockers{\Gls \Glspl }
+

+

+\@mfu@mappings{〈mappings〉}
+ Lists all mappings as a 〈key〉=〈value〉 list. For example:
\@mfu@mappings{ {\gls }= {\Gls }, {\glspl }= {\Glspl }}
+

+ +

+ +
+

3.2. All-Caps

+

+

+\mfirstucMakeUppercase{〈text〉}
+ This command was originally used to perform the actual conversion to uppercase and was defined to use command \MakeUppercase. The glossaries package (before v4.50) formerly loaded the textcase package and redefined \mfirstucMakeUppercase to use \MakeTextUppercase, which was better than \MakeUppercase.

+The textcase package has been deprecated as from 2022 and it now simply sets \MakeTextUppercase to \MakeUppercase because the new kernel now defines \MakeUppercase to use the newer LaTeX3 command \text_uppercase:n. Although that command is expandable, \MakeUppercase is robust.

+As from v2.08, mfirstuc now defines \mfirstucMakeUppercase so that it uses \text_titlecase_first:n directly, rather than indirectly through \MakeUppercase, which means that it’s now expandable. However, \mfirstucMakeUppercase is no longer used by mfirstuc except in \mfugrabfirstuc, which is provided to emulate v2.07. Note that the grabfirst option will also redefine \mfirstucMakeUppercase to use \MakeUppercase.

+ +

+ +
+

3.3. UTF-8

+

+

+See Binary Files, Text Files and File Encodings if you are confused about how file encodings, such as UTF-8, relate to text files.
+

+This section only applies to rollback or the use of \mfugrabfirstuc (implemented via the grabfirst option).

+Prior to version 2.08, the case-change applied by the \glsmakefirstuc command worked by utilizing the fact that, in most cases, TeX doesn’t require a regular argument to be enclosed in braces if it only consists of a single token. (This is why you can do, say, \frac12 instead of \frac{1}{2} or x^2 instead of x^{2}, although this practice is discouraged by some.)

+A simplistic version of the original \glsmakefirstuc command is:

\newcommand*{\FirstUC}[1]{\MakeUppercase #1}
+
Here
\FirstUC{abc}
+
is equivalent to
\MakeUppercase abc
+
and since \MakeUppercase requires an argument, it grabs the first token (the character “a†in this case) and uses that as the argument so that the result is “Abcâ€. This behaviour can be achieved with \mfugrabfirstuc.

+Unfortunately, this will fail if the content starts with a UTF-8 character and you are using pdfLaTeX, where each octet of the UTF-8 character is a separate token. This isn’t a problem with XeLaTeX and LuaLaTeX which both treat the entire multibyte character as a single token.

+LaTeX3 now provides \text_titlecase_first:n to convert the first character to uppercase, so now the case-change can be applied with:

\ExplSyntaxOn
+\text_titlecase_first:n{élite}
+\ExplSyntaxOff
+
This is exactly what \MFUsentencecase does without the need to switch on LaTeX3 syntax. The difference with the default definition of \glsmakefirstuc is that it prevents its argument from being expanded.

+ +

+ +
+

Symbols

+ +
+
📌
+
The syntax and usage of a command, environment or option etc.
+
ℹ
+
An important message.
+
🛈
+
Prominent information.
+
🖹
+
LaTeX code to insert into your document.
+
🖹🛇
+
Problematic code which should be avoided.
+
🖺
+
How the example code should appear in the PDF.
+
🔎
+
Text in a transcript or log file or written to STDOUT or STDERR.
+
🗋U
+
Code that requires a native Unicode engine (XeLaTeX or LuaLaTeX).
+
ð¢
+
An option that doesn’t take a value.
+
âš 
+
A warning.
+ +
+ +
+ +
+

Glossary

+ +
+
Blocker
+
A command that prohibits case-changing. If encountered by \makefirstuc, it won’t attempt to apply any case-changing. See §1.4.
+
Exclusion command
+
A command whose argument should be skipped by the case-changer. The content that follows the command should have its case-changed instead. See §1.3.
+
Exclusion word
+
A word that shouldn’t have its case changed by title-case commands, unless the word occurs at the start.
+
Mapping
+
A command that should be substituted by another, if encountered by \makefirstuc, instead of applying a case-change. See §1.5.
+
Semantic command
+
Essentially, this is a command associated with a particular element, idea or topic that hides the font and other stylistic formatting inside its definition. For example, Latin taxonomy is usually displayed in italic. Explicitly using font commands, for example
\textit{Clostridium}
is syntactic markup. Whereas defining a command called, say, \bacteria that displays its argument in italics is a semantic command. The actual styling is hidden and the command relates specifically to a particular concept.
Syntactic: \textit{Clostridium}
+
+\newrobustcmd*{\bacteria}[1]\emph{#1}%
Semantic: \bacteria{Clostridium}
The end result is the same:
+Syntactic: Clostridium

+Semantic: Clostridium

+ The advantage with semantic commands is that it’s much easier to change the style, simply by adjusting the command definition. Note that I’ve used \newrobustcmd to make the semantic command robust as the style commands can cause a problem if they expand too soon.
+
Sentence-case
+
Content that should appear at the start of a sentence that needs to have its first significant character converted to uppercase. See §1.
+
Title-case
+
Content that needs to appear in a title that should have each significant word converted to sentence-case. See §2.
+
Unicode Transformation Format (8-bit) (UTF-8)
+
A variable-width encoding that uses 8-bit code units. This means that some characters are represented by more that one byte. XeLaTeX and LuaLaTeX treat the multi-byte sequence as a single token, but the older LaTeX formats have single-byte tokens, which can cause complications, although these have mostly been addressed with the newer kernels introduced over the past few years. Related blog article: Binary Files, Text Files and File Encodings.
+ +
+ +
+ +
+

Command Summary

+ +
+ +
+

@

+
\@mfu@blockers{〈blockers〉}mfirstuc v2.08+
+

+An aux file command that lists all the identified blockers. §3.1; 27

+

\@mfu@excls{〈exclusions〉}mfirstuc v2.08+
+

+An aux file command that lists all the identified exclusions. §3.1; 26

+

\@mfu@mappings{〈mappings〉}mfirstuc v2.08+
+

+An aux file command that lists all the identified mappings as a 〈key〉=〈value〉 list. §3.1; 27

+ +

+ +
+

C

+
\capitalisefmtwords{〈text〉}modifier: * mfirstuc v2.03+
+

+Similar to \capitalisewords but for content that may contain formatting commands. §2; 16

+

\capitalisewords{〈text〉}mfirstuc v1.06+
+

+Applies title-case to 〈text〉. This will apply \MFUcapword to each word in 〈text〉 (unless the word has been identified as an exclusion word and doesn’t occur at the start of 〈text〉). §2; 14

+ +

+ +
+

E

+
\ecapitalisefmtwords{〈text〉}modifier: * mfirstuc v2.03+
+

+Fully expands 〈text〉 and passes it to \capitalisefmtwords including the * modifier, if provided. §2; 17

+

\ecapitalisewords{〈text〉}mfirstuc v1.10+
+

+Fully expands 〈text〉 before passing it to \capitalisewords. §2; 14

+

\emakefirstuc{〈text〉}mfirstuc v1.10+
+

+Fully expands 〈text〉 before passing it to \makefirstuc. §1.2; 6

+ +

+ +
+

G

+
\glsmakefirstuc{〈text〉}mfirstuc v1.05+
+

+Used by \makefirstuc to perform the case-change. This uses \MFUsentencecase{〈text〉} but by default will prevent its argument from being expanded. §1.2; 6

+

\gMFUnocap{〈word〉}mfirstuc v1.09+
+

+Globally adds 〈word〉 to the exclusion word list for \capitalisewords. §2.1; 18

+ +

+ +
+

I

+
\ifMFUhyphen 〈true〉\else 〈false〉\fiinitial: \iffalse; mfirstuc v2.03+
+

+Conditional that determines whether or not hyphens should be considered word boundaries by the title-case commands. §2; 15

+ +

+ +
+

M

+
\makefirstuc{〈text〉}mfirstuc v1.0+
+

+Converts 〈text〉 to sentence-case internally using \glsmakefirstuc to perform the case-change, but first parses 〈text〉 to deal with special cases. §1.2; 4

+

\mfirstucMakeUppercase{〈text〉}mfirstuc v1.07+
+

+Converts 〈text〉 to uppercase. Now only used in \mfugrabfirstuc. §3.2; 27

+

\MFUaddmap{〈cs1〉}{〈cs2〉}mfirstuc v2.08+
+

+Identifies a mapping from the command 〈cs1〉 to command 〈cs2〉. §1.5; 12

+

\MFUblocker{〈cs〉}mfirstuc v2.08+
+

+Locally identifies 〈cs〉 as a blocker command. §1.4; 11

+

\MFUcapword{〈text〉}mfirstuc v2.03+
+

+Uses either \MFUhyphencapword or \MFUcapwordfirstuc depending on \ifMFUhyphen. §2; 15

+

\MFUcapwordfirstuc{〈word〉}mfirstuc v2.07+
+

+Used by \MFUcapword and \MFUhyphencapword to apply the case-change to the given word. This just does \makefirstuc{〈text〉} by default. §2; 16

+

+

+Locally clears the exclusion word list for \capitalisewords. §2.1; 18

+

\MFUexcl{〈cs〉}mfirstuc v2.08+
+

+Locally identifies 〈cs〉 as an exclusion command. §1.3; 8

+

\mfugrabfirstuc{〈text〉}mfirstuc v2.08+

+

(avoid where possible)
+
+

+Provide to emulate \glsmakefirstuc in v2.07 and below, but can still produce different results to v2.07. This will attempt to grab only the first character of 〈text〉 and convert it to uppercase, leaving the rest of 〈text〉 unchanged. This won’t work if 〈text〉 starts with a UTF-8 character, unless you are using XeLaTeX or LuaLaTeX. §1.2; 7

+

\MFUhyphencapword{〈text〉}mfirstuc v2.07+
+

+Used by \MFUcapword to apply \MFUcapwordfirstuc to each hyphen-separated word in 〈text〉, if hyphens should indicate a word-break. §2; 15

+

+

+Sets \ifMFUhyphen to false. §2; 15

+

+

+Sets \ifMFUhyphen to true. §2; 15

+

\MFUnocap{〈word〉}mfirstuc v1.09+
+

+Locally adds 〈word〉 to the exclusion word list for \capitalisewords. §2.1; 17

+

+

+Saves the list of exclusions, blockers and mappings to the aux file (if required by some external tool). This command sets itself to \relax so it doesn’t repeat the action if used multiple times, and counteracts any use of \MFUsaveatend. §3.1; 26

+

+

+Saves the list of exclusions, blockers and mappings to the aux file (if required by some external tool) at the end of the document. This command sets itself to \relax so it doesn’t repeat the action if used multiple times, but it can be overridden by \MFUsave. §3.1; 26

+

\MFUsentencecase{〈text〉}mfirstuc v2.08+
+

+Converts 〈text〉 to sentence-case with expansion. §1.2; 4

+

\MFUskippunc{〈content〉}mfirstuc v2.07+
+

+An exclusion command. §1.3; 8

+

\MFUwordbreak{〈text〉}mfirstuc v2.07+
+

+Used to markup a character or command that should be treated as a word break by the title-case commands. §2; 15

+ +

+ +
+

X

+
\xcapitalisefmtwords{〈text〉}modifier: * mfirstuc v2.03+
+

+Shortcut for \expandafter\capitalisefmtwords\expandafter{〈text〉} including the * modifier, if provided. §2; 17

+

\xcapitalisewords{〈text〉}mfirstuc v1.06+
+

+Shortcut for \expandafter\capitalisewords\expandafter{〈text〉}. §2; 14

+

\xmakefirstuc{〈text〉}mfirstuc v1.01+
+

+Shortcut for \expandafter\makefirstuc\expandafter{〈text〉}. §1.2; 5

+ +

+ +
+

Index

+
Symbols @ B C E F G H I L M N P R S T U X
+ +
+ +
+

Symbols

+ + + +
+ +
+

@

+ + + + +
+ +
+

B

+
\begin8, 26
+
blockerTable 1.1; 1, 2, 5, 9–12, 26, 27, 31, 33, 35, 37
+ +
+ +
+

C

+ + +
\cite8, 26
+
csquotes package10
+ +
+ +
+

E

+ + + +
\end8, 26
+
\ensuremath8, 12, 26
+
exclusion commandTable 1.1; 1, 2, 5, 8, 10–13, 18, 26, 31, 33, 36, 37
+
exclusion word17, 31, 33–36
+ + +
+ +
+

F

+
file formats
+
aux26
+ +
+ +
+

G

+
glossaries-extra package13
+
glossaries packagea, 4, 6, 9, 10, 12, 13, 27
+
\Glsa, 13, 27
+
\gls13, 26, 27
+
\glsadd9, 10
+
\glsmakefirstuc§1.2; 2, 4–7, 13, 28, 29, 34, 35, 36
+
\Glspl27
+
\glspl26, 27
+ + + +
+ +
+

H

+
hyperref package20, 21
+ +
+ +
+

I

+ +
\index2
+ +
+ +
+

L

+
\label8, 26
+
lowercase14
+
\l_text_case_exclude_arg_tl8
+ +
+ +
+

M

+
\makefirstuc§1.2; Table 1.1; a, 1, 2, 4–13, 16, 18, 21, 31, 34, 35, 38
+
\MakeTextUppercase27
+
\MakeUppercase7, 13, 27, 28
+
mappingTable 1.1; 1–3, 5, 9, 10, 12, 13, 26, 27, 31, 33, 35, 37
+ +
mfirstuc package4
+ + + + + + + + + + + + + + +
\MFUsentencecase§1.2; Table 1.1; 1, 2, 4, 6, 8–13, 16, 18, 21, 28, 34, 37
+ + + +
+ +
+

N

+
\nameref2, 10, 11
+
\NoCaseChange8, 9, 11, 12, 26
+ +
+ +
+

P

+
\pdfstringdefDisableCommands21
+
\protect5
+
punctuation1, 9, 10
+ +
+ +
+

R

+
\ref8, 26
+ +
+ +
+

S

+
semantic command1, 4, 5, 24, 31
+
sentence-casea, 1, 6, 12, 14, 32, 35, 37
+
\space14, 21, 23, 24
+ +
+ +
+

T

+
\texorpdfstring20
+
textcase package27
+
\text_titlecase:n14
+
\text_titlecase_first:n4, 27, 28
+
\text_uppercase:n27
+
title-case14, 31, 32, 33, 34, 37
+ +
+ +
+

U

+
\unexpanded6
+ +
uppercase14, 27, 32, 35, 36
+
UTF-81, 7, 28, 32, 36
+ +
+ +
+

X

+ + + +

+ +

+ + + diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf b/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf index cc7cf0cf77..9a9a108bf8 100644 Binary files a/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf and b/macros/latex/contrib/mfirstuc/mfirstuc-manual.pdf differ diff --git a/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex b/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex index e741c6d45d..c53b166eb4 100644 --- a/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex +++ b/macros/latex/contrib/mfirstuc/mfirstuc-manual.tex @@ -1,933 +1,1758 @@ -\documentclass[report]{nlctdoc} - -\usepackage[a4paper,left=1.75in]{geometry} -\usepackage{alltt} -\usepackage{mfirstuc} -\usepackage{pifont} -\usepackage[utf8]{inputenc} -\ifpdf - \usepackage[T1]{fontenc} - \usepackage{metalogo} -\else - \providecommand{\XeLaTeX}{XeLaTeX} - \providecommand{\XeTeX}{XeTeX} -\fi -\usepackage{cmap} -\usepackage[colorlinks, - bookmarks, - hyperindex=false, - pdfauthor={Nicola L.C. Talbot}, - pdftitle={mfirstuc.sty: uppercasing first letter}, - pdfkeywords={LaTeX,package,uppercase}]{hyperref} - -\IndexPrologue{% -\chapter*{\indexname}\markright{\indexname} -\addcontentsline{toc}{chapter}{\indexname}} +% arara: lualatex +% arara: bib2gls: { group: on, options: [ "--replace-quotes" ] } +% arara: lualatex +% arara: bib2gls: { group: on, options: [ "--replace-quotes" ] } if found ("log", "Glossary entry `sym.") +% arara: lualatex +% arara: lualatex if found ("log", "Rerun to") + +% This document requires glossaries-extra v1.49, bib2gls v3.0 +% and nlctuserguide.sty. If they haven't already +% been uploaded to CTAN, they will be in a few days. + +\documentclass[titlepage=false,oneside, + fontsize=12pt,captions=tableheading]{scrbook} + +\usepackage + %[debug=showwrgloss] + {nlctuserguide} + +\nlctuserguidegls +{ + % \MFUsentencecase + \gcmd{MFU\-sen\-tence\-case} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{text}}% + \desc{converts \meta{text} to \idx+{sentence-case} with expansion} + } + % \MFUexcl + \gcmd{MFU\-excl} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{cs}}% + \desc{locally identifies \meta{cs} as an \idx{exclusion} command} + \field{seealso}{MFUblocker,MFUaddmap} + } + % \MFUblocker + \gcmd{MFU\-blocker} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{cs}}% + \desc{locally identifies \meta{cs} as a \idx{blocker} command} + \field{seealso}{MFUexcl,MFUaddmap} + } + % \MFUaddmap + \gcmd{MFU\-add\-map} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{cs1}\margm{cs2}}% + \desc{identifies a \idx{mapping} from the command \meta{cs1} to + command \meta{cs2}} + \field{seealso}{MFUexcl,MFUblocker} + } + % \MFUsaveatend + \gcmd{MFU\-save\-at\-end} + { + \providedby{\sty{mfirstuc} v2.08+} + \desc{saves the list of \idxpl{exclusion}, \idxpl{blocker} + and \idxpl{mapping} to the \ext{aux} file (if required by some + external tool) at the end of the document. + This command sets itself to \cmd{relax} so it + doesn't repeat the action if used multiple times, but it can + be overridden by \gls{MFUsave}} + } + % \MFUsave + \gcmd{MFU\-save} + { + \providedby{\sty{mfirstuc} v2.08+} + \desc{saves the list of \idxpl{exclusion}, \idxpl{blocker} + and \idxpl{mapping} to the \ext{aux} file (if required by some + external tool). + This command sets itself to \cmd{relax} so it + doesn't repeat the action if used multiple times, and + counteracts any use of \gls{MFUsaveatend}} + } + % \@mfu@excls + \gcmd{@mfu\-@\-excls} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{exclusions}} + \desc{an \ext{aux} file command that lists all the identified + \idxpl{exclusion}} + \field{seealso}{MFUsave,MFUsaveatend} + } + % \@mfu@blockers + \gcmd{@mfu\-@\-blockers} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{blockers}} + \desc{an \ext{aux} file command that lists all the identified + \idxpl{blocker}} + \field{seealso}{MFUsave,MFUsaveatend} + } + % \@mfu@mappings + \gcmd{@mfu\-@\-mappings} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{mappings}} + \desc{an \ext{aux} file command that lists all the identified + \idxpl{mapping} as a \keyval\ list} + \field{seealso}{MFUsave,MFUsaveatend} + } + % \mfirstucMakeUppercase + \gcmd{mfirst\-uc\-Make\-Up\-per\-case} + { + \providedby{\sty{mfirstuc} v1.07+} + \syntax{\margm{text}}% + \desc{converts \meta{text} to \idx{uppercase}. + Now only used in \gls{mfugrabfirstuc}} + } + % \emakefirstuc + \gcmd{e\-make\-first\-uc} + { + \providedby{\sty{mfirstuc} v1.10+} + \syntax{\margm{text}}% + \desc{fully expands \meta{text} before passing it to + \gls{makefirstuc}} + } + % \xmakefirstuc + \gcmd{x\-make\-first\-uc} + { + \providedby{\sty{mfirstuc} v1.01+} + \syntax{\margm{text}}% + \desc{shortcut for + \code{\cmd{expandafter}\gls{makefirstuc}\cmd{expandafter}\margm{text}}} + } + % \makefirstuc + \gcmd{make\-first\-uc} + { + \providedby{\sty{mfirstuc} v1.0+} + \syntax{\margm{text}}% + \desc{converts \meta{text} to \idx+{sentence-case} internally using + \gls{glsmakefirstuc} to perform the case-change, but first parses + \meta{text} to deal with special cases} + } + % \glsmakefirstuc + \gcmd{gls\-make\-first\-uc} + { + \providedby{\sty{mfirstuc} v1.05+} + \syntax{\margm{text}}% + \desc{used by \gls{makefirstuc} to perform the case-change. This + uses \code{\gls{MFUsentencecase}\margm{text}} but by default + will prevent its argument from being expanded} + } + % \mfugrabfirstuc + \gcmd{mfu\-grab\-first\-uc} + { + \providedby{\sty{mfirstuc} v2.08+} + \syntax{\margm{text}} + \note{avoid where possible} + \desc{provide to emulate \gls{glsmakefirstuc} in v2.07 and + below, but can still produce different results to v2.07. + This will attempt to grab only the first character of + \meta{text} and convert it to \idx{uppercase}, leaving the rest of + \meta{text} unchanged. This won't work if \meta{text} starts + with a \gls{utf8} character, unless you are using \XeLaTeX\ or + \LuaLaTeX} + } + % \MFUskippunc + \gcmd{MFU\-skip\-punc} + { + \providedby{\sty{mfirstuc} v2.07+} + \syntax{\margm{content}}% + \desc{an \idx{exclusion} command} + } + % \capitalisewords + \gcmd{cap\-i\-talise\-words} + { + \providedby{\sty{mfirstuc} v1.06+} + \syntax{\margm{text}}% + \desc{applies \idx+{title-case} to \meta{text}. This will apply + \gls{MFUcapword} to each word in \meta{text} (unless the word has been + identified as an \idx{exclusion-word} and doesn't occur at the start of + \meta{text})} + \field{seealso}{capitalisefmtwords,MFUnocap,gMFUnocap,ifMFUhyphen} + } + % \xcapitalisewords + \gcmd{x\-cap\-i\-talise\-words} + { + \providedby{\sty{mfirstuc} v1.06+} + \syntax{\margm{text}}% + \desc{shortcut for + \code{\cmd{expandafter}\gls{capitalisewords}\cmd{expandafter}\margm{text}}} + } + % \ecapitalisewords + \gcmd{e\-cap\-i\-talise\-words} + { + \providedby{\sty{mfirstuc} v1.10+} + \syntax{\margm{text}}% + \desc{fully expands \meta{text} before passing it to \gls{capitalisewords}} + } + % \capitalisefmtwords + \gcmd{cap\-i\-talise\-fmt\-words} + { + \providedby{\sty{mfirstuc} v2.03+} + \syntax{\margm{text}}% + \desc{similar to \gls{capitalisewords} but for content that may + contain formatting commands} + \field{modifiers}{*} + \field{seealso}{capitalisewords,MFUnocap,gMFUnocap,ifMFUhyphen} + } + % \xcapitalisefmtwords + \gcmd{x\-cap\-i\-talise\-fmt\-words} + { + \providedby{\sty{mfirstuc} v2.03+} + \syntax{\margm{text}}% + \desc{shortcut for + \code{\cmd{expandafter}\gls{capitalisefmtwords}\cmd{expandafter}\margm{text}} + including the \code{*} modifier, if provided} + \field{modifiers}{*} + } + % \ecapitalisefmtwords + \gcmd{e\-cap\-i\-talise\-fmt\-words} + { + \providedby{\sty{mfirstuc} v2.03+} + \syntax{\margm{text}}% + \desc{fully expands \meta{text} and passes it to + \gls{capitalisefmtwords} including the \code{*} modifier, if provided} + \field{modifiers}{*} + } + % \ifMFUhyphen + \gcond{if\-MFU\-hyphen} + { + \initval{\cmd{iffalse}} + \providedby{\sty{mfirstuc} v2.03+} + \desc{conditional that determines whether or not hyphens should + be considered word boundaries by the \idx{title-case} commands} + } + % \MFUhyphentrue + \gcmd{MFU\-hyphen\-true} + { + \providedby{\sty{mfirstuc} v2.03+} + \desc{sets \gls{ifMFUhyphen} to true} + } + % \MFUhyphenfalse + \gcmd{MFU\-hyphen\-false} + { + \providedby{\sty{mfirstuc} v2.03+} + \desc{sets \gls{ifMFUhyphen} to false} + } + % \MFUwordbreak + \gcmd{MFU\-word\-break} + { + \providedby{\sty{mfirstuc} v2.07+} + \syntax{\margm{text}}% + \desc{used to markup a character or command that should be + treated as a word break by the \idx{title-case} commands} + } + % \MFUcapword + \gcmd{MFU\-cap\-word} + { + \providedby{\sty{mfirstuc} v2.03+} + \syntax{\margm{text}}% + \desc{uses either \gls{MFUhyphencapword} or \gls{MFUcapwordfirstuc} + depending on \gls{ifMFUhyphen}} + } + % \MFUcapwordfirstuc + \gcmd{MFU\-cap\-word\-first\-uc} + { + \providedby{\sty{mfirstuc} v2.07+} + \syntax{\margm{word}}% + \desc{used by \gls{MFUcapword} and \gls{MFUhyphencapword} to + apply the case-change to the given word. This just does + \code{\gls{makefirstuc}\margm{text}} by default} + \field{seealso}{MFUcapword,MFUhyphencapword} + } + % \MFUhyphencapword + \gcmd{MFU\-hyphen\-cap\-word} + { + \providedby{\sty{mfirstuc} v2.07+} + \syntax{\margm{text}}% + \desc{used by \gls{MFUcapword} to apply \gls{MFUcapwordfirstuc} to + each hyphen-separated word in \meta{text}, if hyphens should + indicate a word-break} + \field{seealso}{ifMFUhyphen,MFUcapword} + } + % \MFUnocap + \gcmd{MFU\-no\-cap} + { + \providedby{\sty{mfirstuc} v1.09+} + \syntax{\margm{word}}% + \desc{locally adds \meta{word} to the \idx{exclusion-word} list for + \gls{capitalisewords}} + \field{seealso}{gMFUnocap,MFUclear} + } + % \gMFUnocap + \gcmd{gMFU\-no\-cap} + { + \providedby{\sty{mfirstuc} v1.09+} + \syntax{\margm{word}}% + \desc{globally adds \meta{word} to the \idx{exclusion-word} list for + \gls{capitalisewords}} + \field{seealso}{MFUnocap,MFUclear} + } + % \MFUclear + \gcmd{MFU\-clear} + { + \providedby{\sty{mfirstuc} v1.09+} + \desc{locally clears the \idx{exclusion-word} list for \gls{capitalisewords}} + \field{seealso}{gMFUnocap,MFUnocap} + } + % PACKAGE OPTIONS + % option grabfirst + \gopt{grab\-first} + {% + \providedby{\sty{mfirstuc} v2.08+} + \note{avoid where possible} + \desc{redefines \gls{glsmakefirstuc} to use \gls{mfugrabfirstuc} + and \gls{mfirstucMakeUppercase} to use \gls{MakeUppercase}} + } + % option expanded + \gopt{expanded} + {% + \providedby{\sty{mfirstuc} v2.08+} + \desc{redefines \gls{glsmakefirstuc} to use \gls{MFUsentencecase} + without inhibiting the expansion of its argument} + } + % option unexpanded + \gopt{unexpanded} + {% + \providedby{\sty{mfirstuc} v2.08+} + \desc{redefines \gls{glsmakefirstuc} to use \gls{MFUsentencecase} + but inhibits expansion of its argument} + } + % COMMANDS: index only + \gcmd{text\dsb title\-case\dsb first:n}{} + \gcmd{text\dsb title\-case:n}{} + \gcmd{text\dsb upper\-case:n}{} + \gcmd{l\dsb text\dsb case\dsb ex\-clude\dsb arg\dsb tl}{} + \gcmd{protect}{} + \gcmd{unexpanded}{} + \gcmd{glsadd}{} + \gcmd{gls}{} + \gcmd{Gls}{} + \gcmd{GLS}{} + \gcmd{glspl}{} + \gcmd{Glspl}{} + \gcmd{GLSpl}{} + \gcmd{Make\-Upper\-case}{}% \MakeUppercase + \gcmd{Make\-Text\-Upper\-case}{}% \MakeTextUppercase + \gcmd{No\-Case\-Change}{}% \NoCaseChange + \gcmd{ensure\-math}{} + \gcmd{begin}{} + \gcmd{end}{} + \gcmd{cite}{} + \gcmd{label}{} + \gcmd{ref}{} + \gcmd{index}{} + \gcmd{space}{} + \gcmd{name\-ref}{}% \nameref + \gcmd{tex\-or\-pdf\-string}{}% \texorpdfstring + \gcmd{pdf\-string\-def\-Dis\-able\-Commands}{}% \pdfstringdefDisableCommands + \gpunc{nbsp}{\name{\code{\textasciitilde}}}% ~ + % packages + \gpkg{mfirst\-uc}{\common} + \gpkg{mfirstuc\dhyphen english}{} + \gpkg{glossaries}{} + \gpkg{glossaries\dhyphen extra}{} + \gpkg{text\-case}{}% textcase + \gpkg{cs\-quotes}{}% csquotes + \gpkg{hyper\-ref}{}% hyperref + % file extensions + \gext{aux}{} + % terms + \gterm{exclusion}{\name{exclusion command}\field{text}{exclusion} + \desc{a command whose argument should be skipped + by the case-changer. The content that follows the command should + have its case-changed instead. See \sectionref{sec:exclusions}}} + \gterm{blocker}{\desc{a command that prohibits case-changing. If + encountered by \gls{makefirstuc}, it won't attempt to apply any + case-changing. See \sectionref{sec:blockers}}} + \gterm{mapping}{\desc{a command that should be substituted by + another, if encountered by \gls{makefirstuc}, instead of applying + a case-change. See \sectionref{sec:mappings}}} + \gterm{sentence-case}{\desc{content that should appear at the + start of a sentence that needs to have its first significant + character converted to \idx{uppercase}. See \sectionref{sec:sentencecase}}} + \gterm{title-case}{\desc{content that needs to appear in a title + that should have each significant word converted to + \idx{sentence-case}. See \sectionref{sec:capitalisewords}}} + \gterm{exclusion-word}{\name{exclusion word} + \desc{a word that shouldn't have its case changed by + \idx{title-case} commands, unless the word occurs at the start}} + \gtermacr{utf8}{UTF-8}{Unicode Transformation Format (8-bit)} + {% + \desc{a variable-width encoding that uses 8-bit code units. This + means that some characters are represented by more that one byte. + \XeLaTeX\ and \LuaLaTeX\ treat the multi-byte sequence as a single + token, but the older \LaTeX\ formats have single-byte tokens, which + can cause complications, although these have mostly been addressed with + the newer kernels introduced over the past few years. Related blog article: + \blog{binary-files-text-files-and-file-encodings/}{Binary Files, + Text Files and File Encodings}} + } + \gterm{semanticcommand}{\name{semantic command} + \desc{essentially, this is a command associated with a + particular element, idea or topic that hides the font + and other stylistic formatting inside its definition. For + example, Latin taxonomy is usually displayed in italic. + Explicitly using font commands, for example + \begin{compactcodebox}\cmd{textit}\marg{Clostridium}\end{compactcodebox} + is syntactic markup. + Whereas defining a command called, say, \cmd{bacteria} that + displays its argument in italics is a semantic command. The + actual styling is hidden and the command relates specifically to + a particular concept. +\begin{codebox} +Syntactic: \cmd{textit}\marg{Clostridium}^^J\codepar +\cmd{newrobustcmd}*\marg{\cmd{bacteria}}[1]{\cmd{emph}\marg{\#1}}\%\newline +Semantic: \cmd{bacteria}\marg{Clostridium} +\end{codebox} + The end result is the same: +\begin{resultbox} +Syntactic: \textit{Clostridium}\glspar +Semantic: \emph{Clostridium} +\end{resultbox} + The advantage with semantic commands is that it's much easier to + change the style, simply by adjusting the command definition. + Note that I've used \cmd{newrobustcmd} to make the semantic + command robust as the style commands can cause a problem if they + expand too soon} + } + % index only + \gidx{punctuation}{} + \gpunc{sym.dollar}{\name{\code{\$}}}% $ + \gidx{uppercase}{} + \gidx{lowercase}{} +} -\begin{document} -\MakeShortVerb{|} - \title{mfirstuc.sty v2.07: -uppercasing first letter} - \author{Nicola L.C. Talbot\\[10pt] +\title{mfirstuc.sty v2.08: +sentence and title casing} +\author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ -\url{http://www.dickimaw-books.com/}} - - \date{2021-10-15} - \maketitle - \tableofcontents - - \chapter{Introduction} - \label{sec:intro} +\href{https://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}} +\date{2022-10-14 +} -The \styfmt{mfirstuc} package was originally part of the -\styfmt{glossaries} bundle for use with commands like \cs{Gls}, but -as the commands provided by \styfmt{mfirstuc} may be used without -\styfmt{glossaries}, the two have been split into separately -maintained packages. +\begin{document} +\maketitle + +\htmlavailable + +\begin{information} +The \sty{mfirstuc} package was originally part of the +\sty{glossaries} bundle (added to \sty{glossaries} v1.12 +in 2008) for use with commands like \gls{Gls}, +which need to have the first letter converted to uppercase +(\idx{sentence-case}), but as the commands provided by +\sty{mfirstuc} may be used without \sty{glossaries}, the two +were split into separately maintained packages in 2015 +(\sty{mfirstuc} v2.0 and \sty{glossaries} v4.18). +\end{information} + +Version 2.08 has reimplemented \gls{makefirstuc} using \LaTeX3 +commands. If there are any compatibility issues, you can rollback to +v2.07: +\begin{codebox} +\cmd{usepackage}\marg{mfirstuc}[=2.07] +\end{codebox} + +\frontmatter +\tableofcontents + +\mainmatter +\chapter{Sentence-Case} +\label{sec:sentencecase} + +There are two \idx{sentence-case} commands provided: \gls{MFUsentencecase} +and \gls{makefirstuc}. A summary of the principle features of +the two commands is given in +\tableref{tab:sentencecasesummary}. + +\begin{table}[htbp] +\caption{Principle features of +\glsfmttext{MFUsentencecase} and \glsfmttext{makefirstuc}} +\label{tab:sentencecasesummary} +\centering +\begin{tabular}{lcc} +\bfseries Feature & \bfseries \gls{MFUsentencecase}[] +& \bfseries \gls{makefirstuc}[]\\ +Can expand? & \proyes & \prono\\ +Supports \idxpl{exclusion}? & \proyes & \proyes\\ +Supports \idxpl{blocker}? & \prono & \proyes\\ +Supports \idxpl{mapping}? & \prono & \proyes\\ +Semantic commands must be robust? & \conyes & \conno +\end{tabular} +\end{table} + +\section{Examples} +\label{sec:sentencecaseex} + +Text only (leading \idx{utf8} now supported): +\begin{coderesult} +\gls{makefirstuc}\marg{élite} / +\gls{MFUsentencecase}\marg{élite} +\tcblower +\makefirstuc{élite} / +\MFUsentencecase{élite} +\end{coderesult} + +Leading \idx{punctuation} is ignored: +\begin{coderesult} +\gls{makefirstuc}\marg{`word'} / +\gls{MFUsentencecase}\marg{`word'} +\tcblower +\makefirstuc{`word'} / +\MFUsentencecase{`word'} +\end{coderesult} +However, if the \idx{punctuation} character is followed by a +\idx{blocker} or \idx{mapping} command, the \idx{punctuation} will +need to be excluded otherwise the command will be treated as an +\idx{exclusion}. If possible, use \idxc{semanticcommand}{semantic +markup} instead of directly including the \idx{punctuation}. + +Fragile commands need to be protected with +\gls{MFUsentencecase}: +\begin{codebox} +\cmd{newcommand}\marg{\cmd{alert}}[1]\marg{\cmd{textcolor}\marg{red}\marg{\cmd{textbf}\marg{\#1}}} +\gls{makefirstuc}\marg{\cmd{alert}\marg{élite}} / +\gls{MFUsentencecase}\marg{\strong{\cmd{protect}}\cmd{alert}\marg{élite}} +\end{codebox} +\begin{resultbox} +\newcommand{\alert}[1]{\textcolor{red}{\textbf{#1}}} +\makefirstuc{\alert{élite}} / +\MFUsentencecase{\protect\alert{élite}} +\end{resultbox} + +\Idxpl{exclusion} are supported by both \gls{makefirstuc} and +\gls{MFUsentencecase}: +\begin{codebox} +\gls{MFUexcl}\marg{\gls+{index}} +\gls{makefirstuc}\marg{\gls{index}\marg{word}example} / +\gls{MFUsentencecase}\marg{\gls{index}\marg{word}example} +\end{codebox} +\begin{resultbox} +\MFUexcl{\index} +\makefirstuc{\index{example}example} / +\MFUsentencecase{\index{example}example} +\end{resultbox} + +\Idxpl{blocker} are only supported by \gls{makefirstuc}. +They are treated as \idxpl{exclusion} with +\gls{MFUsentencecase}, which produces a different result: +\begin{codebox} +\gls{MFUblocker}\marg{\gls+{nameref}} +\gls{makefirstuc}\marg{\gls{nameref}\marg{sec:sentencecase} section} / +\gls{MFUsentencecase}\marg{\gls{nameref}\marg{sec:sentencecase} section} +\end{codebox} +\begin{resultbox} +\MFUblocker{\nameref} +\makefirstuc{\nameref{sec:sentencecase} section} / +\MFUsentencecase{\nameref{sec:sentencecase} section} +\end{resultbox} + +\Idxpl{mapping} are only supported by \gls{makefirstuc}. +They are treated as \idxpl{exclusion} with +\gls{MFUsentencecase}, which produces a different result: +\begin{codebox} +\cmd{newrobustcmd}\marg{\cmd{secref}}[1]\marg{section\glstildechar\cmd{ref}\marg{\#1}} +\cmd{newrobustcmd}\marg{\cmd{Secref}}[1]\marg{Section\glstildechar\cmd{ref}\marg{\#1}} +\gls{MFUaddmap}\marg{\cmd{secref}}\marg{\cmd{Secref}} +\gls{makefirstuc}\marg{\cmd{secref}\marg{sec:sentencecase} example} / +\gls{MFUsentencecase}\marg{\cmd{secref}\marg{sec:sentencecase} example} +\end{codebox} +\begin{resultbox} +\newrobustcmd{\secref}[1]{section~\ref{#1}} +\newrobustcmd{\Secref}[1]{Section~\ref{#1}} +\MFUaddmap{\secref}{\Secref} +\makefirstuc{\secref{sec:sentencecase} example} / +\MFUsentencecase{\secref{sec:sentencecase} example} +\end{resultbox} + +Argument expansion: \gls{MFUsentencecase} expands its argument +and then skips exclusions whereas \gls{makefirstuc} parses its +argument without expansion and then passes the relevant content to +\gls{glsmakefirstuc}. Note that different results will occur with +the \opt{expanded} and \opt{unexpanded} package options. +For example: +\begin{codebox} +\cmd{usepackage}[\opt{expanded}]\marg{mfirstuc} +\cmd{newcommand}\marg{\cmd{testa}}\marg{sample} +\cmd{newcommand}\marg{\cmd{testb}}\marg{\cmd{testa}\cmd{ }test} +\cbeg{document} +\gls{makefirstuc}\marg{\cmd{testb}} / \gls{xmakefirstuc}\marg{\cmd{testb}} / +\gls{emakefirstuc}\marg{\cmd{testb}} / \gls{MFUsentencecase}\marg{\cmd{testb}} +\cend{document} +\end{codebox} +\begin{resultbox} +\newcommand{\testa}{sample}% +\newcommand{\testb}{\testa\ test}% +\renewcommand*{\glsmakefirstuc}[1]{\MFUsentencecase{#1}}% +\makefirstuc{\testb} / \xmakefirstuc{\testb} / +\emakefirstuc{\testb} / \MFUsentencecase{\testb} +\end{resultbox} +With the default \opt{unexpanded} option the result is: +\begin{resultbox} +\newcommand{\testa}{sample} +\newcommand{\testb}{\testa\ test} +\makefirstuc{\testb} / \xmakefirstuc{\testb} / +\emakefirstuc{\testb} / \MFUsentencecase{\testb} +\end{resultbox} +Note that this is different from the result in earlier versions of +\sty{mfirstuc}. +\begin{codebox} +\cmd{usepackage}\marg{mfirstuc}[=v2.07] +\cmd{newcommand}\marg{\cmd{testa}}\marg{sample} +\cmd{newcommand}\marg{\cmd{testb}}\marg{\cmd{testa}\cmd{ }test} +\cbeg{document} +\gls{makefirstuc}\marg{\cmd{testb}} / \gls{xmakefirstuc}\marg{\cmd{testb}} / +\gls{emakefirstuc}\marg{\cmd{testb}} +\cend{document} +\end{codebox} +This produces: +\begin{resultbox} +SAMPLE TEST / SAMPLE test / Sample test +\end{resultbox} +If this old result is required, either use rollback or try +the \opt{grabfirst} option. + +Argument expansion with \idxpl{mapping} (and the default +\opt{unexpanded} option): +\begin{codebox} +\cmd{newrobustcmd}\marg{\cmd{secref}}[1]\marg{section\glstildechar\cmd{ref}\marg{\#1}} +\cmd{newrobustcmd}\marg{\cmd{Secref}}[1]\marg{Section\glstildechar\cmd{ref}\marg{\#1}} +\gls{MFUaddmap}\marg{\cmd{secref}}\marg{\cmd{Secref}} +\cmd{newcommand}\marg{\cmd{testa}}\marg{\cmd{secref}\marg{sec:sentencecase}} +\cmd{newcommand}\marg{\cmd{testb}}\marg{\cmd{testa}\cmd{ }example} +\gls{makefirstuc}\marg{\cmd{testb}} / \gls{xmakefirstuc}\marg{\cmd{testb}} / +\gls{emakefirstuc}\marg{\cmd{testb}} / \gls{MFUsentencecase}\marg{\cmd{testb}} +\end{codebox} +\begin{resultbox} +\newrobustcmd{\secref}[1]{section~\ref{#1}} +\newrobustcmd{\Secref}[1]{Section~\ref{#1}} +\MFUaddmap{\secref}{\Secref} +\newcommand{\testa}{\secref{sec:sentencecase}} +\newcommand{\testb}{\testa\ example} +\makefirstuc{\testb} / \xmakefirstuc{\testb} / +\emakefirstuc{\testb} / \MFUsentencecase{\testb} +\end{resultbox} + +\section{Sentence Case Commands} +\label{sec:sentencecasecmds} + +\cmddef{MFUsentencecase} +This simply uses \gls{texttitlecasefirst:n}, which is provided by +the \LaTeX3 kernel. Note that this fully expands the argument. +If you use this command, ensure that your \idxpl{semanticcommand} are +robust. For example: +\begin{codebox} +\cmd{newrobustcmd}\marg{\cmd{alert}}[1]\marg{\cmd{textcolor}\marg{red}\marg{\cmd{textbf}\marg{\#1}}} +\gls{MFUsentencecase}\marg{\cmd{alert}\marg{sample} text} +\end{codebox} +\begin{resultbox} +\newrobustcmd{\alert}[1]{\textcolor{red}{\textbf{#1}}} +\MFUsentencecase{\alert{sample} text} +\end{resultbox} +Note that the following will fail: +\begin{badcodebox} +\cmd{newcommand}\marg{\cmd{alert}}[1]\marg{\cmd{textcolor}\marg{red}\marg{\cmd{textbf}\marg{\#1}}} +\gls{MFUsentencecase}\marg{\cmd{alert}\marg{sample} text} +\end{badcodebox} +This is because the expansion that's performed before the case-change will result in: +\begin{badcodebox} +\cmd{textcolor}\marg{Red}\marg{\cmd{textbf}\marg{sample}} text +\end{badcodebox} +This triggers an error since \code{Red} isn't a recognised colour +name. + +\cmddef{makefirstuc} +This is the original command provided by \sty+{mfirstuc}, which was +written to assist sentence-casing in the \sty{glossaries} package +and had to take markup into account. It parses its argument to try +to determine which part needs the case-change. The actual +case-change is performed by \gls{glsmakefirstuc}. + +As from v2.08, the definition of \gls{makefirstuc} has been updated to use \LaTeX3 +code, but the argument is still parsed, which allows for non-robust +\idxpl{semanticcommand}, and now also takes \idxpl{blocker} and \idxpl{mapping} into +account. For example: +\begin{codebox} +\cmd{newcommand}\marg{\cmd{alert}}[1]\marg{\cmd{textcolor}\marg{red}\marg{\cmd{textbf}\marg{\#1}}} +\gls{makefirstuc}\marg{\cmd{alert}\marg{sample} text} +\end{codebox} +\begin{resultbox} +\newcommand{\alert}[1]{\textcolor{red}{\textbf{#1}}} +\makefirstuc{\alert{sample} text} +\end{resultbox} + +The rules used when parsing \code{\gls{makefirstuc}\margm{text}} are as follows: +\begin{enumerate} +\item if \meta{text} is empty do nothing; -\begin{important} -The commands described here all have limitations. To minimise -problems, use text-block style semantic commands with one argument -(the text that requires case-changing), and avoid scoped -declarations. -\end{important} +\item if \meta{text} consists of a single item or starts +with a group do \code{\gls{glsmakefirstuc}\margm{text}}; -Here are some examples of semantic commands: -\begin{enumerate} -\item Quoted material: -\begin{verbatim} -\newcommand{\qt}[1]{``#1''} -\end{verbatim} -(or use the \styfmt{csquotes} package). With this, the following -works: -\begin{verbatim} -\makefirstuc{\qt{word}} -\end{verbatim} -This produces: -\begin{display} -\makefirstuc{\qt{word}} -\end{display} -Whereas -\begin{verbatim} -\makefirstuc{``word''} -\end{verbatim} -fails (no case-change and double open quote becomes two single open -quotes): -\begin{display} -\makefirstuc{``word''} -\end{display} - -\item Font styles or colours: -\begin{verbatim} -\newcommand*{\alert}[1]{\textcolor{red}{#1}} -\end{verbatim} -Now the following is possible: -\begin{verbatim} -\makefirstuc{\alert{word}} -\end{verbatim} -This produces -\begin{display} -\newcommand*{\alert}[1]{\textcolor{red}{#1}}% -\makefirstuc{\alert{word}} -\end{display} -Note that \verb|\makefirstuc{\textcolor{red}{word}}| fails -(with an error) because the case-changing interferes with the label. -\end{enumerate} +\item if \meta{text} starts with a command \meta{cs}: -Define these semantic commands robustly if you intend using -any of the commands that fully expand their argument -(\cs{emakefirstuc}, \cs{ecapitalisewords} and -\cs{ecapitalisefmtwords}). - -\chapter{Capitalising the First Letter of a Word} -\label{sec:makefirstuc} - -A simple word can be capitalised just using the standard \LaTeX\ -upper casing command. For example, -\begin{verbatim} -\MakeUppercase word -\end{verbatim} -but for commands like \cs{Gls} the word may be embedded within the -argument of another command, such as a~font changing command. This -makes things more complicated for a~general purpose solution, so -the \styfmt{mfirstuc} package provides: -\begin{definition}[\DescribeMacro{\makefirstuc}] -\cs{makefirstuc}\marg{stuff} -\end{definition} -This makes the first object of -\meta{stuff} upper case unless \meta{stuff} starts with a control -sequence followed by a non-empty group, in which case the first -object in the group is converted to upper case. -\textbf{No expansion is performed on the argument.} - -If \meta{stuff} starts with punctuation that should be skipped over, -use: -\begin{definition}[\DescribeMacro\MFUskippunc] -\cs{MFUskippunc}\marg{punctuation} -\end{definition} + \begin{enumerate} + \item if \meta{cs} is \gls{protect}, skip it and continue to + the next step where the command \meta{cs} under inspection + is now the one that follows \gls{protect}: -\begin{important} -If \meta{stuff} starts with a control sequence that takes more than -one argument, the case-changing will always be applied to the -\emph{first} argument. If the text that requires the case change is -in one of the other arguments, you must hide the earlier arguments -in a wrapper command. For example, instead of \verb|\textcolor{red}{text}| -you need to define, say, \verb|\red| as \verb|\color{red}| and use -\verb|\red{text}|. -\end{important} + \item if \meta{cs} has been identified as a \idx{blocker}, just do + \meta{text} (that is, no case-change is applied); -Examples: -\begin{itemize} -\item |\makefirstuc{abc}| produces \makefirstuc{abc}. + \item if \meta{cs} isn't followed by a group then do + \code{\gls{glsmakefirstuc}\margm{text}}; -\item |\makefirstuc{\emph{abc}}| produces \makefirstuc{\emph{abc}} -(\ics{MakeUppercase} has been applied to the letter \qt{a} rather -than \cs{emph}). Note however that -\begin{verbatim} -\makefirstuc{{\em abc}} -\end{verbatim} -produces \makefirstuc{{\em abc}} (first object is |{\em abc}| so -this is equivalent to |\MakeUppercase{\em abc}|), and -\begin{verbatim} -{\makefirstuc{\em abc}} -\end{verbatim} -produces {\makefirstuc{\em abc}} (|\em| doesn't have an argument -therefore first object is |\em| and so is equivalent to -|{\MakeUppercase{\em}abc}|). + \item otherwise assume the format is \code{\meta{cs}\margm{arg}\meta{following}} + (where \meta{following} may be empty) and then: -\item |\makefirstuc{{\'a}bc}| produces \makefirstuc{{\'a}bc}. + \begin{enumerate} + \item if \meta{cs} has been \idxc{mapping}{mapped} to + \meta{Cs} then do \code{\meta{Cs}\margm{arg}\meta{following}}; -\item |\makefirstuc{\ae bc}| produces \makefirstuc{\ae bc}. + \item if \meta{cs} has been identified as an \idx{exclusion}, + do \code{\meta{cs}\margm{arg}\gls{makefirstuc}\margm{following}}; -\item |\makefirstuc{{\ae}bc}| produces \makefirstuc{{\ae}bc}. + \item otherwise do \code{\meta{cs}\marg{\gls{makefirstuc}\margm{arg}}\meta{following}}. + \end{enumerate} -\item |\makefirstuc{{ä}bc}| produces \makefirstuc{{ä}bc}. + \end{enumerate} -\item |\makefirstuc{\MFUskippunc{'}tis the season}| produces -\makefirstuc{\MFUskippunc{'}tis the season}. +\item otherwise do \code{\gls{glsmakefirstuc}\margm{text}}. +\end{enumerate} -\end{itemize} +Note that the above algorithm uses recursion. The termination points +are: don't implement a change, replace a command with another +command, or apply the case-change via \gls{glsmakefirstuc}. + +For convenience, the following commands are also provided: +\cmddef{xmakefirstuc} +This is simply a shortcut for: +\begin{compactcodebox} +\cmd{expandafter}\gls{makefirstuc}\cmd{expandafter}\margm{text} +\end{compactcodebox} +This ensures the first token in \meta{text} is expanded before being +passed to \gls{makefirstuc}. + +\cmddef{emakefirstuc} +This fully expands its argument before passing it to +\gls{makefirstuc}. For example: +\begin{codebox} +\cmd{newcommand}\marg{\cmd{test}}[1]\marg{sample \#1} +\cmd{newcommand}\marg{\cmd{tmp}}\marg{\cmd{test}\marg{text}} +\gls{makefirstuc}\marg{\cmd{tmp}} / +\gls{xmakefirstuc}\marg{\cmd{tmp}} / +\gls{emakefirstuc}\marg{\cmd{tmp}} +\end{codebox} +\begin{resultbox} +\newcommand{\test}[1]{sample #1} +\newcommand{\tmp}{\test{text}} +\makefirstuc{\tmp} / +\xmakefirstuc{\tmp} / +\emakefirstuc{\tmp} +\end{resultbox} +If you don't have any mappings or blockers set up, it's simpler to +use \gls{MFUsentencecase} instead of \gls{emakefirstuc}. -Note that non-Latin or accented characters appearing at the -start of the text should be placed in a group (even if you are -using the \sty{inputenc} package). The reason for this restriction -is detailed in \sectionref{sec:utf8}. +\begin{important} +With \gls{emakefirstuc}, mappings and blockers will only be +detected if they are robust or protected, otherwise they will expand too soon to +be detected. +\end{important} -\textbf{New to version 2.04:} There is now limited support for -UTF-8 characters with the \sty{inputenc} package, provided that -you load \sty{datatool-base} (at least v2.24) before -\styfmt{mfirstuc} (\sty{datatool-base} is loaded automatically with newer versions -of \sty{glossaries}). If available -\sty{mfirstuc} will now use \sty{datatool-base}'s -\ics{dtl@getfirst@UTFviii} command which is still experimental. -See the \styfmt{datatool} manual for further details. +\cmddef{glsmakefirstuc} +This command is used by \gls{makefirstuc} to perform the +case-change. The \qt{gls} prefix is for historical reasons as the original code +was part of the \sty{glossaries} package. With the default +\opt{unexpanded} option, this command is defined as: +\begin{compactcodebox} +\gls{MFUsentencecase}\marg{\gls+{unexpanded}\margm{text}} +\end{compactcodebox} +The use of \gls{unexpanded} inhibits the expansion of \meta{text} +that would otherwise occur. This allows \gls{makefirstuc} to +maintain as much backward-compatibility with version 2.07 as +possible. This is particularly important when using the +\sty{glossaries} package with a style that automatically converts +the description to \idx{sentence-case}, as there may well be +documents with complex descriptions that contain fragile commands. + +The \opt{expanded} package option will redefine \gls{glsmakefirstuc} +to use \gls{MFUsentencecase} without \gls{unexpanded}. The +\opt{grabfirst} package option will redefine \gls{glsmakefirstuc} +to use \gls{mfugrabfirstuc} to emulates the behaviour of +\gls{glsmakefirstuc} in v2.07 and below without using rollback. + +\cmddef{mfugrabfirstuc} +This robust command is provided to emulate v2.07 and its use is discouraged. +Note that you may still have different results compared to v2.07, so +you may need to use rollback instead. (Note that the \opt{grabfirst} option +additionally redefines \gls{mfirstucMakeUppercase} to +\gls{MakeUppercase}, which you will also need.) + +This applies \gls{mfirstucMakeUppercase} to the first token in \meta{text} +and leaves the remainder unchanged. This won't work if \meta{text} +starts with a \gls{utf8} character unless you use \XeLaTeX\ or +\LuaLaTeX, so avoid using this method where possible. For example: +\begin{codebox} +\cmd{renewcommand}\marg{\gls{mfirstucMakeUppercase}}[1]\marg{\comment{} + \gls{MakeUppercase}\marg{\#1}\comment{} +} +\gls{mfugrabfirstuc}\marg{sample} +\end{codebox} +This is equivalent to: +\begin{codebox} +\gls{mfirstucMakeUppercase}\marg{s}ample +\end{codebox} +Whereas +\begin{unicodebox} +\cmd{renewcommand}\marg{\gls{mfirstucMakeUppercase}}[1]\marg{\comment{} + \gls{MakeUppercase}\marg{\#1}\comment{} +} +\gls{mfugrabfirstuc}\marg{\'elite} +\end{unicodebox} +only works with \XeLaTeX\ or \LuaLaTeX. -\begin{verbatim} -\documentclass{article} +\begin{warning} +As with earlier implementations of \gls{makefirstuc} that +tried to only apply the case-change to the first token, +this won't produce the desired result if the argument starts with a +punctuation character. +\end{warning} -\usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} +For example: +\begin{codebox} +\gls{mfugrabfirstuc}\marg{`sample'} +\end{codebox} +This is equivalent to: +\begin{compactcodebox} +\gls{mfirstucMakeUppercase}\marg{`}sample' +\end{compactcodebox} +so no case-change is applied. + +\section{Exclusions} +\label{sec:exclusions} + +\begin{information} +Exclusions will apply to all \LaTeX3 case-changing commands, so will +also affect \gls{mfirstucMakeUppercase}, but this is generally +desirable. +\end{information} + +\cmddef{MFUexcl} +Identifies the text-block command \code{\meta{cs}\margm{arg}} as +an \idx{exclusion}. That is, one that should have its argument +excluded from a case-change. + +Internally, \gls{MFUexcl} adds \meta{cs} to \LaTeX3's exclusion list +\gls{ltextcaseexcludeargtl}, which means that \gls{MFUsentencecase} +will skip the command and its argument and apply the case-change to +the following content. Some common commands (\gls{begin} \gls{cite} +\gls{end} \gls{label} and \gls{ref}) are automatically added by the +\LaTeX3 kernel. +The exclusions are also recognised by \gls{makefirstuc} when it +parses its argument. + +\begin{information} +The command \gls{NoCaseChange} is automatically treated as an +exclusion by the \LaTeX3 case-changing commands with recent \LaTeX\ +kernels. You may want to add it as a blocker for \gls{makefirstuc} +and keep \gls{MFUskippunc} for exclusions. + +Note that \gls{ensuremath} is added as an exclusion by \sty{mfirstuc} otherwise +\gls{makefirstuc} will pass its argument to \gls{MFUsentencecase}, +which will cause a problem. +\end{information} + +Another way of identifying content that should be excluded with +\gls{makefirstuc} is to encapsulate it with: +\cmddef{MFUskippunc} +This is a robust command that simply does its argument and is +automatically added to the exclusion list. This may be used for +cases where the excluded command isn't a simple text-block command +that only has one mandatory argument or where leading punctuation is +followed by a \idx{blocker} or \idx{mapping}. + +The command name stems from earlier versions where leading +\idx{punctuation} needed to be skipped. This is no longer necessary, +but the command remains as a general purpose robust exclusion command. + +For example, \gls{glsadd} (provided by \sty{glossaries}) should have +its argument skipped, since its argument is a label, so the +following will ensure that \code{\gls{glsadd}\margm{label}} will be +skipped, and the case-change will be applied to the following text +for both \gls{MFUsentencecase} and \gls{makefirstuc}. +\begin{codebox} +\gls{MFUexcl}\marg{\gls{glsadd}} +\gls{makefirstuc}\marg{\gls{glsadd}\marg{ex}some text} +\gls{MFUsentencecase}\marg{\gls{glsadd}\marg{ex}some text} +\end{codebox} +This will be equivalent to: +\begin{compactcodebox} +\gls{glsadd}\marg{ex}Some text +\end{compactcodebox} +However, \gls{glsadd} can take an optional argument which, if +present, will cause a problem. For example: +\begin{badcodebox} +\gls{MFUexcl}\marg{\gls{glsadd}} +\gls{makefirstuc}\marg{\gls{glsadd}\oarg{counter=section}\marg{ex}some text} +\gls{MFUsentencecase}\marg{\gls{glsadd}\oarg{counter=section}\marg{ex}some text} +\end{badcodebox} +Both commands will cause the following error: +\begin{transcript} +! Package glossaries Error: Glossary entry `\nlctopensqbracket' has not been defined. +\end{transcript} +This is because the open square bracket is assumed to be the +argument of \gls{glsadd}, so this effectively becomes: +\begin{compactcodebox} +\gls{glsadd}\marg{\nlctopensqbracket}Counter=section\nlctclosesqbracket exsome text +\gls{glsadd}\marg{\nlctopensqbracket}Counter=section\nlctclosesqbracket exsome text +\end{compactcodebox} +which means that now \code{\nlctopensqbracket} is considered the label and everything +that follows is just text. + +For this situation to work, you need to encapsulate the problematic +content with an exclusion command, such as \gls{NoCaseChange} or \gls{MFUskippunc}: +\begin{codebox} +\gls{makefirstuc}\marg{\gls{MFUskippunc}\marg{\gls{glsadd}\oarg{counter=section}\marg{ex}}some text} +\end{codebox} +This will also work with \gls{MFUsentencecase} because +\sty{mfirstuc} automatically adds \gls{MFUskippunc} to the exclusion +list. + +\begin{information} +As from \sty{glossaries} v4.50, \gls{glsadd} is automatically added +as an exclusion, but be aware of the problem with using the optional +argument, as described above. +\end{information} + +\Idx{punctuation} characters are skipped by \gls{MFUsentencecase}. +For example: +\begin{coderesult} +\gls{MFUsentencecase}\marg{`word'} +\tcblower +\MFUsentencecase{`word'} +\end{coderesult} +However, leading \idx{punctuation} will result in \gls{makefirstuc} +passing its entire argument to \gls{MFUsentencecase} (since the +argument doesn't start with \code{\meta{cs}\margm{arg}}), which +means that \gls{makefirstuc} won't detect any \idx{blocker} or +\idx{mapping}. -\usepackage{datatool-base}[2016/01/12]% v2.24+ -\usepackage{mfirstuc} +For example: +\begin{codebox} +\gls{MFUblocker}\marg{\gls+{nameref}} +\cmd{newcommand}*\marg{\cmd{qt}}[1]\marg{``\#1''} +\gls{makefirstuc}\marg{``\gls{nameref}\marg{sec:sentencecase} section''} / +\gls{makefirstuc}\marg{\gls{MFUskippunc}\marg{``}\gls{nameref}\marg{sec:sentencecase} section''} / +\gls{makefirstuc}\marg{\cmd{qt}\marg{\gls{nameref}\marg{sec:sentencecase} section}} +\end{codebox} +\begin{resultbox} +\MFUblocker{\nameref} +\makefirstuc{``\nameref{sec:sentencecase} section''} / +\makefirstuc{\MFUskippunc{``}\nameref{sec:sentencecase} section''} / +\makefirstuc{\qt{\nameref{sec:sentencecase} section}} +\end{resultbox} +If you are using a package such as \sty{csquotes}, bear in mind that +if the command is followed by an asterisk (a \qt{starred command}) +or an optional argument then it won't fit the expected +\code{\meta{cs}\margm{arg}} format and unexpected results will occur. + +\section{Blockers} +\label{sec:blockers} + +A \idx{blocker} is a command that prevents any case-change if it occurs at +the start of \gls{makefirstuc} or after the argument of an +\idx{exclusion}. Blockers are not supported by +\gls{MFUsentencecase} but are instead treated as exclusions. + +\cmddef{MFUblocker} +Identifies \meta{cs} as a \idx{blocker}. Since \idxpl{blocker} +aren't supported by \gls{MFUsentencecase}, this automatically +implements \code{\gls{MFUexcl}\margm{cs}} to protect its argument +from \gls{MFUsentencecase}, but it won't prevent subsequent content +from being changed. -\begin{document} -\makefirstuc{élite} -\end{document} -\end{verbatim} -(Package ordering is important.) +For example: +\begin{codebox} +\gls{MFUblocker}\marg{\gls+{nameref}} +\gls{makefirstuc}\marg{\gls{nameref}\marg{sec:sentencecase} section} +\end{codebox} +\begin{resultbox} +\MFUblocker{\nameref} +\makefirstuc{\nameref{sec:sentencecase} section} +\end{resultbox} + +In the following, the \idx{blocker} isn't detected by +\gls{makefirstuc} because the content doesn't start with +\code{\meta{cs}\margm{arg}} or +\code{\cmd{protect}\meta{cs}\margm{arg}}. This means that the entire +content is passed to \gls{MFUsentencecase} which treats +\gls{nameref} as an \idx{exclusion}: +\begin{codebox} +\gls{MFUblocker}\marg{\gls{nameref}} +\gls{makefirstuc}\marg{\cmd{relax}\gls{nameref}\marg{sec:sentencecase} section} +\end{codebox} +\begin{resultbox} +\MFUblocker{\nameref} +\makefirstuc{\relax\nameref{sec:sentencecase} section} +\end{resultbox} \begin{important} -In version 1.02 of \styfmt{mfirstuc}, a bug fix resulted in a change -in output if the first object is a control sequence followed by -an empty group. Prior to version 1.02, |\makefirstuc{\ae{}bc}| -produced \ae Bc. However as from version 1.02, it now produces -\AE bc. +If a \idxc{blocker}{blocking command} is inside the definition of +another command, it won't be visible to \gls{makefirstuc} unless +the other command is expanded before applying \gls{makefirstuc}. +For example, by using \gls{xmakefirstuc} or \gls{emakefirstuc}. +If it doesn't get expanded until after it has been passed to +\gls{MFUsentencecase}, then it will be treated as an \idx{exclusion} +instead. \end{important} -Note also that -\begin{verbatim} -\newcommand{\abc}{abc} -\makefirstuc{\abc} -\end{verbatim} -produces: ABC. This is because the first object in the argument of -\cs{makefirstuc} is \cs{abc}, so it does |\MakeUppercase{\abc}|. -Whereas: -\begin{verbatim} -\newcommand{\abc}{abc} -\expandafter\makefirstuc\expandafter{\abc} -\end{verbatim} -produces: Abc. There is a short cut command which will do this: -\begin{definition}[\DescribeMacro{\xmakefirstuc}] -\cs{xmakefirstuc}\marg{stuff} -\end{definition} -This is equivalent to \cs{expandafter}\cs{makefirstuc}\cs{expandafter}\marg{stuff}. So -\begin{verbatim} -\newcommand{\abc}{abc} -\xmakefirstuc{\abc} -\end{verbatim} -produces: -\newcommand{\abc}{abc}% -\xmakefirstuc{\abc}. +Recent \LaTeX\ kernels provide \gls{NoCaseChange} and automatically +add it as an \idx{exclusion}. You may want to add it as a +\idx{blocker} for \gls{makefirstuc}. For example: +\begin{codebox} +\gls{makefirstuc}\marg{\gls{ensuremath}\marg{\cmd{alpha}}-particle} / +\gls{makefirstuc}\marg{\idx{dollar}\cmd{alpha}\idx{dollar}-particle} / +\gls{MFUsentencecase}\marg{\gls{ensuremath}\marg{\cmd{alpha}}-particle} / +\gls{MFUsentencecase}\marg{\idx{dollar}\cmd{alpha}\idx{dollar}-particle} +\codepar +\gls{MFUblocker}\marg{\gls{NoCaseChange}}\comment{} +\gls{makefirstuc}\marg{\gls{ensuremath}\marg{\cmd{alpha}}-particle} / +\gls{makefirstuc}\marg{\gls{NoCaseChange}\marg{\idx{dollar}\cmd{alpha}\idx{dollar}}-particle} / +\gls{MFUsentencecase}\marg{\gls{ensuremath}\marg{\cmd{alpha}}-particle} / +\gls{MFUsentencecase}\marg{\gls{NoCaseChange}\marg{\idx{dollar}\cmd{alpha}\idx{dollar}}-particle} +\end{codebox} +Note that \sty{mfirstuc} adds \gls{ensuremath} as an exclusion so +\gls{makefirstuc} will skip it. Whereas the example above that +starts with \idx{dollar} will have the entire argument passed to +\gls{MFUsentencecase}, which skips the maths content. +In the first paragraph, \gls{NoCaseChange} is only an +\idx{exclusion}, but in the second paragraph it's also a +\idx{blocker}. +\begin{resultbox} +Exclusion: +\makefirstuc{\ensuremath{\alpha}-particle} / +\makefirstuc{$\alpha$-particle} / +\MFUsentencecase{\ensuremath{\alpha}-particle} / +\MFUsentencecase{$\alpha$-particle} + +Blocker: +\MFUblocker{\NoCaseChange}% +\makefirstuc{\ensuremath{\alpha}-particle} / +\makefirstuc{\NoCaseChange{$\alpha$}-particle} / +\MFUsentencecase{\ensuremath{\alpha}-particle} / +\MFUsentencecase{\NoCaseChange{$\alpha$}-particle} +\end{resultbox} + +\section{Mappings} +\label{sec:mappings} + +A \idx{mapping} indicates that one command should be substituted for +another, instead of applying a case-change. The assumption is that +the substituted command should perform the case-change instead. +\Idxpl{mapping} are not supported by \gls{MFUsentencecase} +but are instead treated as exclusions. + +\cmddef{MFUaddmap} +Identifies a mapping which indicates that \gls{makefirstuc} should +replace \meta{cs1} with \meta{cs2} and not apply a case-change. +This automatically implements: +\begin{compactcodebox} +\gls{MFUexcl}\margm{cs1}\gls{MFUblocker}\margm{cs2} +\end{compactcodebox} +This means that \meta{cs2} is identified as a \idx{blocker} (since +it's assumed to already be a \idx{sentence-case} command) and +\meta{cs1} is identified as an \idx{exclusion} to protect its +argument from \gls{MFUsentencecase}, which doesn't support +\idxpl{mapping}. + +\begin{information} +If either \meta{cs1} or \meta{cs2} is empty, no mapping is established, but an +\idx{exclusion} or \idx{blocker} will be set for the non-empty argument. +\end{information} + +For example (with \sty{glossaries}): +\begin{codebox} +\gls{MFUaddmap}\marg{\gls+{gls}}\marg{\gls+{Gls}} +\gls{makefirstuc}\marg{\gls{gls}\marg{ex} some text} +\end{codebox} +This will be converted to: +\begin{compactcodebox} +\gls{Gls}\marg{ex} some text +\end{compactcodebox} +Note that this and similar \idxpl{mapping} are automatically added +in \sty{glossaries} v4.50+ and \sty{glossaries-extra} v1.49+. \begin{important} -\cs{xmakefirstuc} only performs one level expansion on the -\emph{first} object in its argument. It does not fully expand the entire -argument. +If a \idxc{mapping}{mapped command} is inside the definition of +another command, it won't be visible to \gls{makefirstuc} unless +the other command is expanded before applying \gls{makefirstuc}. +For example, by using \gls{xmakefirstuc} or \gls{emakefirstuc}. +If it doesn't get expanded until after it has been passed to +\gls{MFUsentencecase}, then it will be treated as an \idx{exclusion} +instead. \end{important} -As from version 1.10, there is now a command that fully expands the -entire argument before applying \cs{makefirstuc}: -\begin{definition}[\DescribeMacro\emakefirstuc] -\cs{emakefirstuc}\marg{text} -\end{definition} +\section{Package Options} +\label{sec:pkgoptions} -Examples: -\begin{verbatim} -\newcommand{\abc}{\xyz a} -\newcommand{\xyz}{xyz} -No expansion: \makefirstuc{\abc}. -First object one-level expansion: \xmakefirstuc{\abc}. -Fully expanded: \emakefirstuc{\abc}. -\end{verbatim} -produces: -\renewcommand{\abc}{\xyz a}% -\newcommand{\xyz}{xyz} -No expansion: \makefirstuc{\abc}. -First object one-level expansion: \xmakefirstuc{\abc}. -Fully expanded: \emakefirstuc{\abc}. - -If you use \styfmt{mfirstuc} without the \sty{glossaries} package, -the standard \cs{MakeUppercase} command is used. If used with -\sty{glossaries}, \ics{MakeTextUppercase} (defined by the \sty{textcase} -package) is used instead. If you are using \styfmt{mfirstuc} -without the \styfmt{glossaries} package and want to use -\ics{MakeTextUppercase} instead, you can redefine -\begin{definition}[\DescribeMacro\glsmakefirstuc] -\cs{glsmakefirstuc}\marg{text} -\end{definition} -For example: -\begin{verbatim} -\renewcommand{\glsmakefirstuc}[1]{\MakeTextUppercase #1} -\end{verbatim} -Remember to also load \sty{textcase} (\styfmt{glossaries} loads this -automatically). +\optiondef{expanded} +Redefines \gls{glsmakefirstuc} to simply use \gls{MFUsentencecase}. -\chapter{Capitalise the First Letter of Each Word in a Phrase or Sentence (Title Case)} +\optiondef{unexpanded} +Redefines \gls{glsmakefirstuc} to use \gls{MFUsentencecase} +without expanding its argument. + +\optiondef{grabfirst} +Redefines \gls{glsmakefirstuc} to use \gls{mfugrabfirstuc} and also +redefines \gls{mfirstucMakeUppercase} to use \gls{MakeUppercase}. + +This option is best avoided and is only provided to emulate the v2.07 +behaviour of \gls{glsmakefirstuc}. However, you may still have +different results compared to v2.07, so you may need to use rollback +instead. + +\chapter{Title-Case} \label{sec:capitalisewords} -New to mfirstuc v1.06: -\begin{definition}[\DescribeMacro{\capitalisewords}] -\cs{capitalisewords}\marg{text} -\end{definition} -This command applies \ics{makefirstuc} to each word in \meta{text} +The \idx{title-case} commands are designed to convert the first letter of each +word in a phrase to uppercase. These commands are robust. +\cmddef{capitalisewords} +This command applies a \idx{sentence-case} command to each word in \meta{text} where the space character is used as the word separator. Note that -it has to be a plain space character, not another form of space, -such as \verb|~| or \cs{space}. Note that no expansion is performed -on \meta{text}. See \sectionref{sec:nocap} for excluding -words (such as \qt{of}) from the case-changing. - -The actual capitalisation of each word is done using -\begin{definition}[\DescribeMacro\MFUcapwordfirstuc] -\cs{MFUcapwordfirstuc}\marg{word} -\end{definition} -This just does \cs{makefirstuc}\marg{word} by default. -There's a conditional that determines whether or not to consider a -hyphen a word break: -\begin{definition}[\DescribeMacro\ifMFUhyphen] -\cs{ifMFUhyphen} -\end{definition} - -If you want to title case each part of -a compound word containing hyphens, you can enable this using -\begin{definition}[\DescribeMacro\MFUhyphentrue] -\cs{MFUhyphentrue} -\end{definition} -or switch it back off again using: -\begin{definition}[\DescribeMacro\MFUhyphenfalse] -\cs{MFUhyphenfalse} -\end{definition} -Compare -\begin{verbatim} -\capitalisewords{server-side includes} -\end{verbatim} -which produces: -\begin{display} -\capitalisewords{server-side includes} -\end{display} -with -\begin{verbatim} -\MFUhyphentrue -\capitalisewords{server-side includes} -\end{verbatim} -which produces: -\begin{display} -\MFUhyphentrue -\capitalisewords{server-side includes} -\end{display} -Note that this won't apply exceptions to each part of the hyphenated -word. - -For other punctuation you need to markup the character with: -\begin{definition}[\DescribeMacro\MFUwordbreak] -\cs{MFUwordbreak}\marg{punctuation} -\end{definition} +it has to be an ordinary space character, not another form of space, +such as \idx{nbsp} or \gls{space}. Note that no expansion is performed +on \meta{text}. For example: -\begin{verbatim} -\capitalisewords{a big\MFUwordbreak{/}small idea} -\end{verbatim} -which produces: -\begin{display} +\begin{coderesult} +\gls{capitalisewords}\marg{a sample phrase} +\tcblower +\capitalisewords{a sample phrase} +\end{coderesult} +See \sectionref{sec:nocap} for excluding words (such as \qt{of}) +from the case-changing. + +\begin{information} +This isn't the same as the \LaTeX3 command \gls{texttitlecase:n}, +which converts the first letter to \idx{uppercase} and all other +letters to \idx{lowercase}. +\end{information} + +For convenience, there are shortcut commands if expansion is +required before parsing the argument: +\cmddef{xcapitalisewords} +This is a shortcut for: +\begin{compactcodebox} +\cmd{expandafter}\gls{capitalisewords}\cmd{expandafter}\margm{text} +\end{compactcodebox} +\cmddef{ecapitalisewords} +This fully expands \meta{text} before passing it to +\gls{capitalisewords}. + +The parser used by \gls{capitalisewords} first splits up the text on +each space character. Each of these space-separated words may +actually be a compound, so further parsing is performed on each +\qt{word}. The divisions within the compound word should be marked +up with: +\cmddef{MFUwordbreak} +For example: +\begin{coderesult} +\gls{capitalisewords}\marg{a +big\gls{MFUwordbreak}\marg{/}small idea} +\tcblower \capitalisewords{a big\MFUwordbreak{/}small idea} -\end{display} -In this case, exceptions are applied. For example, if -\sty{mfirstuc-english} is loaded then: -\begin{verbatim} -\capitalisewords{one and\MFUwordbreak{/}or another} -\end{verbatim} -produces: -\begin{display} -\MFUnocap{and}\MFUnocap{or}% -\capitalisewords{one and\MFUwordbreak{/}or another} -\end{display} -Note that you can't hide \cs{MFUwordbreak} inside a command or group. +\end{coderesult} +Each sub-word within the compound word is encapsulated with: +\cmddef{MFUcapword} +Since it's inconvenient to have to markup every hyphen, +\gls{MFUcapword} can be enabled to check for hyphens. + +\cmddef{ifMFUhyphen} +This conditional determines whether or not \gls{MFUcapword} should +consider a hyphen a word break. If this conditional is true, then +\gls{MFUcapword} will encapsulate its argument with: +\cmddef{MFUhyphencapword} +This will parse \meta{text} for hyphen characters and apply the case +change to each hyphen-separated word. Otherwise \gls{MFUcapword} +will treat its argument as a single word. + +The conditional can be set to true with: +\cmddef{MFUhyphentrue} +and switched back off with: +\cmddef{MFUhyphenfalse} -Exceptions aren't applied if \cs{MFUwordbreak} occurs before the -first space. For example: -\begin{verbatim} -\MFUnocap{a}\MFUnocap{the}% -\capitalisewords{a\MFUwordbreak{/}the something} -\end{verbatim} -produces: -\begin{display} -\MFUnocap{a}\MFUnocap{the}% -\capitalisewords{a\MFUwordbreak{/}the something} -\end{display} +For example: +\begin{codebox} +\gls{capitalisewords}\marg{server-side includes} / +\gls{MFUhyphentrue} +\gls{capitalisewords}\marg{server-side includes} +\end{codebox} +\begin{resultbox} +\capitalisewords{server-side includes} / +\MFUhyphentrue +\capitalisewords{server-side includes} +\end{resultbox} + +The actual case-change of each word is performed with: +\cmddef{MFUcapwordfirstuc} +This defaults to \code{\gls{makefirstuc}\margm{word}} but may be +redefined to use \gls{MFUsentencecase}, if preferred. + +\begin{important} +Hyphens and \gls{MFUwordbreak} must be visible to the parser that +searches for word breaks. This means they won't be detected if they +are within a group or in the definition of a command. +\end{important} Formatting for the entire phrase must go outside -\cs{capitalisewords} (unlike \cs{makefirstuc}). Compare: -\begin{verbatim} -\capitalisewords{\textbf{a sample phrase}} -\end{verbatim} -which produces: -\begin{display} -\capitalisewords{\textbf{a sample phrase}} -\end{display} -with: -\begin{verbatim} -\textbf{\capitalisewords{a sample phrase}} -\end{verbatim} -which produces: -\begin{display} -\textbf{\capitalisewords{a sample phrase}} -\end{display} - -As from version 2.03, there is now a command for phrases that may -include a formatting command: -\begin{definition} -\cs{capitalisefmtwords}\marg{phrase} -\end{definition} -where \meta{phrase} may be just words (as with \cs{capitalisewords}) -or may be entirely enclosed in a formatting command in the form -\begin{alltt} -\cs{capitalisefmtwords}\{\meta{cs}\marg{phrase}\} -\end{alltt} -or contain formatted sub-phrases -\begin{alltt} -\cs{capitalisefmtwords}\{\meta{words} \meta{cs}\marg{sub-phrase} \meta{words}\} -\end{alltt} -Avoid scoped declarations. +\gls{capitalisewords} (unlike \gls{makefirstuc}). +For example: +\begin{codebox} +\gls{capitalisewords}\marg{\cmd{emph}\marg{a sample phrase}} / +\cmd{emph}\marg{\gls{capitalisewords}\marg{a sample phrase}} +\end{codebox} +\begin{resultbox} +\capitalisewords{\emph{a sample phrase}} / +\emph{\capitalisewords{a sample phrase}} +\end{resultbox} + +If your phrase is likely to contain formatting commands, you can instead use: +\cmddef{capitalisefmtwords} +where \meta{text} may be just words (as with \gls{capitalisewords}): +\begin{compactcodebox} +\gls{capitalisefmtwords}\margm{words} +\end{compactcodebox} +or may be entirely enclosed in a formatting command in the form: +\begin{compactcodebox} +\gls{capitalisefmtwords}\marg{\meta{cs}\margm{words}} +\end{compactcodebox} +or contain formatted sub-phrases: +\begin{compactcodebox} +\gls{capitalisefmtwords}\marg{\meta{words} \meta{cs}\margm{sub-phrase} \meta{words}} +\end{compactcodebox} +The starred form only permits a text-block command at the +start of the phrase. See \sectionref{sec:titlecaseexamples} for +examples. + +\begin{warning} +Avoid declarations, such as \cmd{bfseries} or \cmd{em}. +\end{warning} + +If expansion is required, you can use: +\cmddef{xcapitalisefmtwords} +which is a shortcut for: +\begin{compactcodebox} +\cmd{expandafter}\gls{capitalisefmtwords}\cmd{expandafter}\margm{text} +\end{compactcodebox} +(The star modifier will be applied with +\code{\gls{xcapitalisefmtwords}*} in an appropriate manner.) + +\cmddef{ecapitalisefmtwords} +This will fully expand its argument before passing it to +\gls{capitalisefmtwords}. Again, the star modifier may be used. \begin{important} -\cs{capitalisefmtwords} is only designed for phrases that contain -text-block commands with a single +The unstarred \gls{capitalisefmtwords} is only designed for phrases that contain +text-block commands with a single argument, which should be a word or sub-phrase. Anything more complicated is likely to break. Instead, use the -starred form or \cs{capitalisewords}. +starred form or \gls{capitalisewords}. \end{important} -The starred form only permits a text-block command at the -start of the phrase. +\section{Excluding Words From Case-Changing} +\label{sec:nocap} + +\glsadd{exclusion-word}Some words typically shouldn't have their case changed unless they +occur at the start. These words can be identified with: +\cmddef{MFUnocap} +This only has a local effect. The global version is: +\cmddef{gMFUnocap} +The list of words that shouldn't be capitalised can be cleared +using: +\cmddef{MFUclear} + + +For example: +\begin{codebox} +\gls{capitalisewords}\marg{the wind in the willows} +\codepar +\gls{MFUnocap}\marg{in}\comment{} +\gls{MFUnocap}\marg{the}\comment{} +\codepar +\gls{capitalisewords}\marg{the wind in the willows} +\end{codebox} +\begin{resultbox} +\capitalisewords{the wind in the willows} + +\MFUnocap{in}% +\MFUnocap{the}% + +\capitalisewords{the wind in the willows} +\end{resultbox} + +Since the case-change is ultimately performed by \gls{makefirstuc}, +you can also use an \idx{exclusion} to prevent an individual word +from being changed. For example: +\begin{codebox} +\cmd{newcommand}\marg{\cmd{NoChange}}[1]\marg{\#1} +\gls{MFUexcl}\marg{\cmd{NoChange}} +\gls{MFUclear} +\gls{capitalisewords}\marg{the \cmd{NoChange}\marg{wind} in the willows} +\end{codebox} +\begin{resultbox} +\providecommand{\NoChange}[1]{#1} +\MFUexcl{\NoChange} +\MFUclear +\capitalisewords{the \NoChange{wind} in the willows} +\end{resultbox} +This can also work if you redefine \gls{MFUcapwordfirstuc} to use +\gls{MFUsentencecase} provided the exclusion command doesn't expand +(so \cmd{NoChange} would need to be protected or made robust in the above +example). + +\begin{important} +Exceptions only apply to (non-leading) whole words or words separated with +\gls{MFUwordbreak} but not to parts of a hyphenated +word that are split by \gls{MFUhyphencapword}. +\end{important} Examples: \begin{enumerate} +\item +Exceptions aren't applied if \gls{MFUwordbreak} occurs before the +first space. +\begin{codebox} +\gls{MFUnocap}\marg{a}\gls{MFUnocap}\marg{the}\comment{} +\gls{capitalisewords}\marg{a\gls{MFUwordbreak}\marg{/}the something} +\end{codebox} +\begin{resultbox} +\MFUnocap{a}\MFUnocap{the}% +\capitalisewords{a\MFUwordbreak{/}the something} +\end{resultbox} + +\item +Exceptions are applied for non-leading words: +\begin{codebox} +\gls{MFUnocap}\marg{and}\gls{MFUnocap}\marg{or}\comment{} +\gls{capitalisewords}\marg{one and\gls{MFUwordbreak}\marg{/}or another} +\end{codebox} +\begin{resultbox} +\MFUnocap{and}\MFUnocap{or}% +\capitalisewords{one and\MFUwordbreak{/}or another} +\end{resultbox} + +\item +Exceptions aren't applied for hyphenated parts: +\begin{codebox} +\gls{MFUhyphentrue} +\gls{MFUnocap}\marg{and}\gls{MFUnocap}\marg{or}\comment{} +\gls{capitalisewords}\marg{one and-or another} +\end{codebox} +\begin{resultbox} +\MFUhyphentrue +\MFUnocap{and}\MFUnocap{or}% +\capitalisewords{one and-or another} +\end{resultbox} +\end{enumerate} + +\pkgdef{mfirstuc-english} +The supplementary package \sty{mfirstuc-english} loads \sty{mfirstuc} and uses +\gls{MFUnocap} to add common English articles and conjunctions, such +as \qt{a}, \qt{an}, \qt{and}, \qt{but}. You may want to add other +words to this list, such as prepositions but, as there's some +dispute over whether prepositions should be capitalised, I~don't +intend to add them to this package. Note that you need to explicitly +load \sty{mfirstuc-english} if you require it. There's no automatic +language detection performed by \sty{mfirstuc}. + +If you want to write a similar package for another language, all you +need to do is create a file with the extension \filefmt{.sty} +that starts with: +\begin{compactcodebox} +\cmd{NeedsTeXFormat}\marg{LaTeX2e} +\end{compactcodebox} +The next line should identify the package. For example, if you have +called the file \filefmt{mfirstuc-french.sty} then you need: +\begin{compactcodebox} +\cmd{ProvidesPackage}\marg{mfirstuc-french} +\end{compactcodebox} +It's a good idea to also add a version in the final optional +argument, for example: +\begin{compactcodebox} +\cmd{ProvidesPackage}\marg{mfirstuc-french}[2014/07/30 v1.0] +\end{compactcodebox} +Next load \sty{mfirstuc}: +\begin{compactcodebox} +\cmd{RequirePackage}\marg{mfirstuc} +\end{compactcodebox} +Now add all your \gls{MFUnocap} commands. For example: +\begin{compactcodebox} +\gls{MFUnocap}\marg{de} +\end{compactcodebox} +At the end of the file add: +\begin{compactcodebox} +\cmd{endinput} +\end{compactcodebox} + +Put the file somewhere on \TeX's path, and now you can use this +package in your document. You might also consider +\href{http://ctan.org/upload}{uploading it to CTAN} in case +other users find it useful. + + +\section{PDF Bookmarks} +\label{sec:pdfbookmarks} + +If you are using \sty{hyperref} and want to use +\gls{capitalisewords} or \gls{capitalisefmtwords} (or the expanded +variants) in a section heading, the PDF bookmarks won't be able to +use the command as it's not expandable, so you will get a warning +that looks like: +\begin{transcript} +Package hyperref Warning: Token not allowed in a PDF string +(PDFDocEncoding): +(hyperref) removing `\gls{capitalisewords}' +\end{transcript} + +If you want to provide an alternative for the PDF bookmark, you can +use \sty{hyperref}'s \gls{texorpdfstring} command. For example: +\begin{codebox} +\cmd{chapter}\marg{\gls{texorpdfstring} + \marg{\gls{capitalisewords}\marg{a book of rhyme}}\comment{ TeX} + \marg{A Book of Rhyme}\comment{ PDF} +} +\end{codebox} +Alternatively, you can use \sty{hyperref}'s mechanism for +disabling commands within the bookmarks. For example: +\begin{codebox*} +\gls{pdfstringdefDisableCommands}\marg{\comment{} + \cmd{let}\gls{capitalisewords}\cmd{@firstofone} +} +\end{codebox*} +The same applies to \gls{makefirstuc}. You can, however, use +the expandable \gls{MFUsentencecase}. So you may prefer: +\begin{codebox*} +\gls{pdfstringdefDisableCommands}\marg{\comment{} + \cmd{let}\gls{capitalisewords}\cmd{MFUsentencecase} + \cmd{let}\gls{makefirstuc}\cmd{MFUsentencecase} +} +\end{codebox*} + +See the \sty{hyperref} manual for further details. + +\section{Examples} +\label{sec:titlecaseexamples} + +\begin{enumerate} +\item Text only: +\begin{coderesult} +\gls{capitalisewords}\marg{a little book of rhyme} +\tcblower +\capitalisewords{a little book of rhyme} +\end{coderesult} + +\item Excluding words (see \sectionref{sec:nocap}): +\begin{coderesult} +\gls{MFUnocap}\marg{of} +\gls{capitalisewords}\marg{a little book of rhyme} +\tcblower +\MFUnocap{of} +\capitalisewords{a little book of rhyme} +\end{coderesult} + +\item \gls{space} isn't recognised as a word boundary: +\begin{codebox} +\gls{capitalisewords}\marg{a book of rhyme.} +\codepar +\gls{capitalisewords}\marg{a book\gls{space} of rhyme.} +\end{codebox} +\begin{resultbox} +\capitalisewords{a book of rhyme.} + +\capitalisewords{a book\space of rhyme.} +\end{resultbox} + \item Phrase entirely enclosed in a formatting command: -\begin{verbatim} -\capitalisefmtwords{\textbf{a small book of rhyme}} -\end{verbatim} -produces: -\begin{display} -\capitalisefmtwords{\textbf{a small book of rhyme}} -\end{display} +\begin{codebox} +\gls{capitalisefmtwords}\marg{\cmd{emph}\marg{a small book of rhyme}} +\end{codebox} +\begin{resultbox} +\capitalisefmtwords{\emph{a small book of rhyme}} +\end{resultbox} \item Sub-phrase enclosed in a formatting command: -\begin{verbatim} -\capitalisefmtwords{a \textbf{small book} of rhyme} -\end{verbatim} -produces: -\begin{display} -\capitalisefmtwords{a \textbf{small book} of rhyme} -\end{display} +\begin{codebox} +\gls{capitalisefmtwords}\marg{a \cmd{emph}\marg{small book} of rhyme} +\end{codebox} +\begin{resultbox} +\capitalisefmtwords{a \emph{small book} of rhyme} +\end{resultbox} \item Nested text-block commands: -\begin{verbatim} +\begin{codebox} +\gls{capitalisefmtwords}\marg{\cmd{textbf}\marg{a \cmd{emph}\marg{small book}} of rhyme} +\end{codebox} +\begin{resultbox} \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -\end{verbatim} -produces: -\begin{display} -\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -\end{display} - -\item Indicating words that shouldn't have the case changed -(see \sectionref{sec:nocap}): -\begin{verbatim} +\end{resultbox} + +\item Formatting and case-change exception (see \sectionref{sec:nocap}): +\begin{codebox} +\gls{MFUnocap}\marg{of} +\gls{capitalisefmtwords}\marg{\cmd{textbf}\marg{a \cmd{emph}\marg{small book}} of rhyme} +\end{codebox} +\begin{resultbox} \MFUnocap{of} \capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -\end{verbatim} -produces: -\begin{display} -\MFUnocap{of} -\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme} -\end{display} +\end{resultbox} \item Starred form: -\begin{verbatim} -\MFUnocap{of} -\capitalisefmtwords*{\emph{a small book of rhyme}} -\end{verbatim} -produces: -\begin{display} +\begin{codebox} +\gls{MFUnocap}\marg{of} +\gls{capitalisefmtwords}*\marg{\cmd{emph}\marg{a small book of rhyme}} +\end{codebox} +\begin{resultbox} \MFUnocap{of} \capitalisefmtwords*{\emph{a small book of rhyme}} -\end{display} +\end{resultbox} \item The starred form also works with just text (no text-block command): -\begin{verbatim} +\begin{codebox} +\gls{MFUnocap}\marg{of} +\gls{capitalisefmtwords}*\marg{a small book of rhyme} +\end{codebox} +\begin{resultbox} \MFUnocap{of} \capitalisefmtwords*{a small book of rhyme} -\end{verbatim} -produces: -\begin{display} -\MFUnocap{of} -\capitalisefmtwords*{a small book of rhyme} -\end{display} +\end{resultbox} + +\item Expansion: +\begin{codebox} +\cmd{newcommand}\marg{\cmd{abc}}\marg{\cmd{xyz}\gls+{space} four five} +\cmd{newcommand}\marg{\cmd{xyz}}\marg{one two three} +No expansion: \gls{capitalisewords}\marg{\cmd{abc}}. +\codepar +First object one-level expansion: \gls{xcapitalisewords}\marg{\cmd{abc}}. +\codepar +Fully expanded: \gls{ecapitalisewords}\marg{\cmd{abc}}. +\end{codebox} +\begin{resultbox} +\newcommand{\abc}{\xyz\space four five} +\newcommand{\xyz}{one two three} +No expansion: \capitalisewords{\abc}. + +First object one-level expansion: \xcapitalisewords{\abc}. + +Fully expanded: \ecapitalisewords{\abc}. +\end{resultbox} + +Remember that the spaces need to be explicit. In the second case +above, using \gls{xcapitalisewords}, the space before \qt{four} has +been hidden within \gls{space} so it's not recognised as a word +boundary, but in the third case, \gls{space} has been expanded to an +actual space character. + \end{enumerate} If there is a text-block command within the argument of the starred form, it's assumed to be at the start of the argument. Unexpected results can occur if there are other commands. -For example -\begin{verbatim} -\MFUnocap{of} -\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} -\end{verbatim} -produces: -\begin{display} +For example: +\begin{badcodebox} +\gls{MFUnocap}\marg{of} +\gls{capitalisefmtwords}*\marg{\cmd{emph}\marg{a small} book \cmd{textbf}\marg{of rhyme}} +\end{badcodebox} +\begin{resultbox} \MFUnocap{of} \capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} -\end{display} -(In this case \verb|\textbf{of rhyme}| is considered a -single word.) Similarly if the text-block command occurs +\end{resultbox} +In this case \code{\cmd{textbf}\marg{of rhyme}} is considered a +single word. Similarly if the text-block command occurs in the middle of the argument: -\begin{verbatim} +\begin{badcodebox} +\gls{MFUnocap}\marg{of} +\gls{capitalisefmtwords}*\marg{a \cmd{emph}\marg{very small} book of rhyme} +\end{badcodebox} +\begin{resultbox} \MFUnocap{of} \capitalisefmtwords*{a \emph{very small} book of rhyme} -\end{verbatim} -produces: -\begin{display} -\MFUnocap{of} -\capitalisefmtwords*{a \emph{very small} book of rhyme} -\end{display} -(In this case \verb|\emph{very small}| is considered a -single word.) - -Grouping causes interference: -\begin{verbatim} -\capitalisefmtwords{{a \emph{small book}} of rhyme} -\end{verbatim} -produces: -\begin{display} -\capitalisefmtwords{{a \emph{small book}} of rhyme} -\end{display} +\end{resultbox} +In this case \code{\cmd{emph}\marg{very small}} is considered a +single word. + +Grouping causes interference. As with all the commands described here, avoid declarations. -For example, the following fails: -\begin{verbatim} -\capitalisefmtwords{{\bfseries a \emph{small book}} of rhyme} -\end{verbatim} -produces: -\begin{display} -\capitalisefmtwords{{\bfseries a \emph{small book}} of rhyme} -\end{display} +\begin{badcodebox} +\gls{capitalisefmtwords}\marg{\marg{\cmd{bfseries} a \cmd{emph}\marg{small book}} of rhyme} +\end{badcodebox} + +\begin{information} +As a general rule, it's better to define \idxpl{semanticcommand} rather +than directly using font commands and declarations within the +document. +\end{information} Avoid complicated commands in the unstarred version. For example, the following breaks: -\begin{verbatim} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisefmtwords{a \swap{bo}{ok} of rhyme} -\end{verbatim} -However it works okay with the starred form and the simpler -\cs{capitalisewords}: -\begin{verbatim} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisefmtwords*{a \swap{bo}{ok} of rhyme} - -\capitalisewords{a \swap{bo}{ok} of rhyme} -\end{verbatim} -Produces: -\begin{display} +\begin{badcodebox} +\cmd{newcommand}*\marg{\cmd{swap}}[2]\marg{\marg{\#2}\marg{\#1}} +\gls{capitalisefmtwords}\marg{a \cmd{swap}\marg{bo}\marg{ok} of rhyme} +\end{badcodebox} +However it can work with the starred form and the simpler +\gls{capitalisewords}: +\begin{codebox} +\cmd{newcommand}*\marg{\cmd{swap}}[2]\marg{\marg{\#2}\marg{\#1}} +\gls{capitalisefmtwords}*\marg{a \cmd{swap}\marg{bo}\marg{ok} of rhyme} +\codepar +\gls{capitalisewords}\marg{a \cmd{swap}\marg{bo}\marg{ok} of rhyme} +\end{codebox} +\begin{resultbox} \newcommand*{\swap}[2]{{#2}{#1}} \capitalisefmtwords*{a \swap{bo}{ok} of rhyme} \capitalisewords{a \swap{bo}{ok} of rhyme} -\end{display} +\end{resultbox} Note that the case change is applied to the first argument. -\begin{definition}[\DescribeMacro{\xcapitalisewords}] -\cs{xcapitalisewords}\marg{text} -\end{definition} -This is a short cut for -\cs{expandafter}\cs{capitalisewords}\cs{expandafter}\marg{text}. - -As from version 1.10, there is now a command that fully expands the -entire argument before applying \cs{capitalisewords}: -\begin{definition}[\DescribeMacro\ecapitalisewords] -\cs{ecapitalisewords}\marg{text} -\end{definition} - -There are also similar shortcut commands for the version that allows -text-block commands: -\begin{definition}[\DescribeMacro{\xcapitalisefmtwords}] -\cs{xcapitalisefmtwords}\marg{text} -\end{definition} -The unstarred version is a short cut for -\cs{expandafter}\cs{capitalisefmtwords}\cs{expandafter}\marg{text}. -Similarly the starred version of \cs{xcapitalisefmtwords} -uses the starred version of \cs{capitalisefmtwords}. - -For full expansion: -\begin{definition}[\DescribeMacro\ecapitalisefmtwords] -\cs{ecapitalisefmtwords}\marg{text} -\end{definition} -Take care with this as it may expand non-robust semantic commands -to replacement text that breaks the functioning of -\cs{capitalisefmtwords}. Use robust semantic commands -where possible. Again this has a starred version that uses -the starred form of \cs{capitalisefmtwords}. - -Examples: -\begin{verbatim} -\newcommand{\abc}{\xyz\space four five} -\newcommand{\xyz}{one two three} -No expansion: \capitalisewords{\abc}. -First object one-level expansion: \xcapitalisewords{\abc}. -Fully expanded: \ecapitalisewords{\abc}. -\end{verbatim} -produces: -\begin{display} -\renewcommand{\abc}{\xyz\space four five}% -\renewcommand{\xyz}{one two three} -No expansion: \capitalisewords{\abc}. -First object one-level expansion: \xcapitalisewords{\abc}. -Fully expanded: \ecapitalisewords{\abc}. -\end{display} - -(Remember that the spaces need to be explicit. In the second case -above, using \cs{xcapitalisewords}, the space before \qt{four} has -been hidden within \cs{space} so it's not recognised as a word -boundary, but in the third case, \cs{space} has been expanded to an -actual space character.) - -Examples: -\begin{enumerate} -\item -\begin{verbatim} -\capitalisewords{a book of rhyme.} -\end{verbatim} -produces: -\capitalisewords{a book of rhyme.} - -\item -\begin{verbatim} -\capitalisewords{a book\space of rhyme.} -\end{verbatim} -produces: -\capitalisewords{a book\space of rhyme.} - -\item -\begin{verbatim} -\newcommand{\mytitle}{a book\space of rhyme.} -\capitalisewords{\mytitle} -\end{verbatim} -produces: -\newcommand{\mytitle}{a book\space of rhyme.} -\capitalisewords{\mytitle} -(No expansion is performed on \cs{mytitle}.) Compare with next example: - -\item -\begin{verbatim} -\newcommand{\mytitle}{a book\space of rhyme.} -\xcapitalisewords{\mytitle} -\end{verbatim} -produces: -\xcapitalisewords{\mytitle} - -However -\begin{verbatim} -\ecapitalisewords{\mytitle} -\end{verbatim} -produces: -\ecapitalisewords{\mytitle} -(\cs{space} has been expanded to an actual space character.) - -\item -\begin{verbatim} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisewords{a \swap{bo}{ok} of rhyme} - -\ecapitalisewords{a \swap{bo}{ok} of rhyme} -\end{verbatim} -produces: -\begin{display} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisewords{a \swap{bo}{ok} of rhyme} - -\ecapitalisewords{a \swap{bo}{ok} of rhyme} -\end{display} -This is because the argument of \cs{ecapitalisewords} is -fully expanded before being passed to \cs{capitalisewords} so -that last example is equivalent to: -\begin{verbatim} -\capitalisewords{a {ok}{bo} of rhyme} -\end{verbatim} -\end{enumerate} - -\section{PDF Bookmarks} -\label{sec:pdfbookmarks} - -\begin{important} -If you are using \sty{hyperref} and want to use -\cs{capitalisewords}, \cs{capitalisefmtwords} -or \ics{makefirstuc} (or the expanded variants) -in a section heading, the PDF bookmarks won't be able to use the command -as it's not expandable, so you will get a warning that looks like: -\begin{verbatim} -Package hyperref Warning: Token not allowed in a PDF string -(PDFDocEncoding): -(hyperref) removing `\capitalisewords' -\end{verbatim} -\end{important} - -If you want to provide an alternative for the PDF bookmark, you can -use \sty{hyperref}'s \ics{texorpdfstring} command. For example: -\begin{verbatim} -\chapter{\texorpdfstring - {\capitalisewords{a book of rhyme}}% TeX - {A Book of Rhyme}% PDF -} -\end{verbatim} -Alternatively, you can use \sty{hyperref}'s mechanism for -disabling commands within the bookmarks. For example: -\begin{verbatim} -\pdfstringdefDisableCommands{% - \let\capitalisewords\@firstofone -} -\end{verbatim} - -See the \sty{hyperref} manual for further details. - -\section{Excluding Words From Case-Changing} -\label{sec:nocap} - -As from v1.09, you can specify words which shouldn't be capitalised unless they -occur at the start of \meta{text} using: -\begin{definition}[\DescribeMacro\MFUnocap] -\cs{MFUnocap}\marg{word} -\end{definition} -This only has a local effect. The global version is: -\begin{definition}[\DescribeMacro\gMFUnocap] -\cs{gMFUnocap}\marg{word} -\end{definition} - +\chapter{Miscellaneous} +\label{sec:misc} + +\section{Saving \Glsfmtplural{exclusion}, \Glsfmtplural{blocker} and +\Glsfmtplural{mapping} in the \exttext{aux} File} +\label{sec:savetoaux} + +If the \idxpl{exclusion}, \idxpl{mapping} and \idxpl{blocker} are +required by some external tool, the information can be saved in the +\ext+{aux} file. + +\cmddef{MFUsaveatend} +This saves the information at the end of the document using a delayed +write. This means that it can register all information identified +throughout the document, but there's a chance the document may end +before the write takes place (for example, if the last page only +contains floats). This command may be counteracted by: +\cmddef{MFUsave} +This saves the information using a protected write at the point +where this command occurs, which may be too soon if additional +\idxpl{exclusion}, \idxpl{mapping} or \idxpl{blocker} are identified +later. This command will counteract any instance of +\gls{MFUsaveatend}, regardless of whether or not \gls{MFUsaveatend} +comes before or after \gls{MFUsave}. + +The associated \ext{aux} commands are listed below. In each case, a +definition is provided in the \ext{aux} file that does nothing. +\cmddef{@mfu@excls} +Lists all \idxpl{exclusion}. For example: -\begin{verbatim} -\capitalisewords{the wind in the willows} - -\MFUnocap{in}% -\MFUnocap{the}% - -\capitalisewords{the wind in the willows} -\end{verbatim} -produces: -\begin{display} -\capitalisewords{the wind in the willows} - -\MFUnocap{in}% -\MFUnocap{the}% - -\capitalisewords{the wind in the willows} -\end{display} -The list of words that shouldn't be capitalised can be cleared using -\begin{definition}[\DescribeMacro\MFUclear] -\cs{MFUclear} -\end{definition} - -You can also simply place an empty group in front of a word -if you don't want that specific instance to be capitalised. +\begin{compactcodebox*} +\gls{@mfu@excls}\marg{\gls{begin} \gls{cite} \gls{end} \gls{label} +\gls{ref} \gls{cite} \gls{NoCaseChange} \gls{ensuremath} +\gls{MFUskippunc} \gls{gls} \gls{glspl}} +\end{compactcodebox*} + +\cmddef{@mfu@blockers} +Lists all \idxpl{blocker}. For example: -\begin{verbatim} -\MFUclear -\capitalisewords{the {}wind in the willows} -\end{verbatim} -produces: -\begin{display} -\MFUclear -\capitalisewords{the {}wind in the willows} -\end{display} -This is also a useful way of protecting commands that -shouldn't be parsed. For example: -\begin{verbatim} -\capitalisewords{this is section {}\nameref{sec:nocap}.} -\end{verbatim} -produces -\begin{display} -\capitalisewords{this is section {}\nameref{sec:nocap}.} -\end{display} -(No case-changing is applied to \verb|\nameref{sec:nocap}|. -It just happens to already be in title case.) - -The package \sty{mfirstuc-english} loads \styfmt{mfirstuc} and uses -\cs{MFUnocap} to add common English articles and conjunctions, such -as ``a'', ``an'', ``and'', ``but''. You may want to add other -words to this list, such as prepositions but, as there's some -dispute over whether prepositions should be capitalised, I~don't -intend to add them to this package. - -If you want to write a similar package for another language, all you -need to do is create a file with the extension \texttt{.sty} -that starts with -\begin{verbatim} -\NeedsTeXFormat{LaTeX2e} -\end{verbatim} -The next line should identify the package. For example, if you have -called the file \texttt{mfirstuc-french.sty} then you need: -\begin{verbatim} -\ProvidesPackage{mfirstuc-french} -\end{verbatim} -It's a good idea to also add a version in the final optional -argument, for example: -\begin{verbatim} -\ProvidesPackage{mfirstuc-french}[2014/07/30 v1.0] -\end{verbatim} -Next load \styfmt{mfirstuc}: -\begin{verbatim} -\RequirePackage{mfirstuc} -\end{verbatim} -Now add all your \cs{MFUnocap} commands. For example: -\begin{verbatim} -\MFUnocap{de} -\end{verbatim} -At the end of the file add: -\begin{verbatim} -\endinput -\end{verbatim} - -Put the file somewhere on \TeX's path, and now you can use this -package in your document. You might also consider -\href{http://ctan.org/upload}{uploading it to CTAN} in case -other users find it useful. +\begin{compactcodebox*} +\gls{@mfu@blockers}\marg{\gls{Gls} \gls{Glspl} } +\end{compactcodebox*} -\chapter{UTF-8} +\cmddef{@mfu@mappings} +Lists all \idxpl{mapping} as a \keyval\ list. +For example: +\begin{compactcodebox*} +\gls{@mfu@mappings}\marg{ \marg{\gls{gls} }= \marg{\gls{Gls} }, \marg{\gls{glspl} }= \marg{\gls{Glspl} }} +\end{compactcodebox*} + +\section{All-Caps} +\label{sec:allcaps} + +\cmddef{mfirstucMakeUppercase} +This command was originally used to perform the actual conversion to +\idx+{uppercase} and was defined to use command \gls{MakeUppercase}. +The \sty{glossaries} package (before v4.50) formerly loaded the +\sty{textcase} package and redefined \gls{mfirstucMakeUppercase} to +use \gls{MakeTextUppercase}, which was better than +\gls{MakeUppercase}. + +The \sty{textcase} package has been deprecated as from 2022 and +it now simply sets \gls{MakeTextUppercase} to \gls{MakeUppercase} +because the new kernel now defines \gls{MakeUppercase} to use the +newer \LaTeX3 command \gls{textuppercase:n}. Although that command +is expandable, \gls{MakeUppercase} is robust. + +As from v2.08, \sty{mfirstuc} now defines \gls{mfirstucMakeUppercase} +so that it uses \gls{texttitlecasefirst:n} directly, rather than +indirectly through \gls{MakeUppercase}, which means that it's now +expandable. However, \gls{mfirstucMakeUppercase} is no longer used +by \sty{mfirstuc} except in \gls{mfugrabfirstuc}, which is provided +to emulate v2.07. Note that the \opt{grabfirst} option will also +redefine \gls{mfirstucMakeUppercase} to use \gls{MakeUppercase}. + +\section{UTF-8} \label{sec:utf8} -(See -\href{https://dickimaw-books.com/blog/binary-files-text-files-and-file-encodings/}{Binary +\begin{information} +See \blog{binary-files-text-files-and-file-encodings/}{Binary Files, Text Files and File Encodings} if you are confused about how -file encodings such as UTF-8 relate to text files.) +file encodings, such as \gls{utf8}, relate to text files. +\end{information} + +This section only applies to rollback or the use of \gls{mfugrabfirstuc} +(implemented via the \opt{grabfirst} option). -The \cs{makefirstuc} command works by utilizing the fact that, in +Prior to version 2.08, the case-change applied by the +\gls{glsmakefirstuc} command worked by utilizing the fact that, in most cases, \TeX\ doesn't require a regular argument to be enclosed in braces if it only consists of a single token. (This is why you -can do, say, \verb|\frac12| instead of \verb|\frac{1}{2}| or -\verb|x^2| instead of \verb|x^{2}|, although some users -frown on this practice.) - -A~simplistic version of the \cs{makefirstuc} command is: -\begin{verbatim} -\newcommand*{\FirstUC}[1]{\MakeUppercase #1} -\end{verbatim} +can do, say, \code{\cmd{frac}12} instead of +\code{\cmd{frac}\marg{1}\marg{2}} or \code{x\char`\^2} +instead of \code{x\char`\^\marg{2}}, although this +practice is discouraged by some.) + +A~simplistic version of the original \gls{glsmakefirstuc} command is: +\begin{codebox} +\cmd{newcommand}*\marg{\cmd{FirstUC}}[1]\marg{\gls{MakeUppercase} \#1} +\end{codebox} Here -\begin{verbatim} -\FirstUC{abc} -\end{verbatim} +\begin{codebox} +\cmd{FirstUC}\marg{abc} +\end{codebox} is equivalent to -\begin{verbatim} -\MakeUppercase abc -\end{verbatim} -and since \cs{MakeUppercase} requires an argument, it grabs the -first token (the character ``a'' in this case) and uses that as the -argument so that the result is: Abc. - -The \sty{glossaries} package needs to take into account the fact -that the text may be contained in the argument of a formatting -command, such as \cs{acronymfont}, so \cs{makefirstuc} has to be -more complicated than the trivial \cs{FirstUC} shown above, but at -its basic level, \cs{makefirstuc} uses this same method and is the -reason why, in most cases, you don't need to enclose the first -character in braces. So if -\begin{alltt} -\cs{MakeUppercase} \meta{stuff} -\end{alltt} -works, -then -\begin{alltt} -\cs{makefirstuc}\marg{stuff} -\end{alltt} -should also work and so should -\begin{alltt} -\cs{makefirstuc}\{\cs{foo}\marg{stuff}\} -\end{alltt} -but if -\begin{alltt} -\cs{MakeUppercase} \meta{stuff} -\end{alltt} -doesn't work, then neither will -\begin{alltt} -\cs{makefirstuc}\marg{stuff} -\end{alltt} -nor -\begin{alltt} -\cs{makefirstuc}\{\cs{foo}\marg{stuff}\} -\end{alltt} - -Try the following document: -\begin{alltt} -\cs{documentclass}\{article\} - -\cs{usepackage}[utf8]\{inputenc\} -\cs{usepackage}[T1]\{fontenc\} - -\cs{begin}\{document\} - -\cs{MakeUppercase} \~abc - -\cs{end}\{document\} -\end{alltt} - -This will result in the error: -\begin{verbatim} -! Argument of \UTFviii@two@octets has an extra }. -\end{verbatim} -This is why \verb|\makefirstuc{|\texttt{\~abc}\verb|}| won't work. -It will only work if the character \texttt{\~a} is placed inside a -group. - -The reason for this error message is due to \TeX\ having been written before -Unicode was invented. Although \texttt{\~a} may look like a single -character in your text editor, from \TeX's point of view it's \emph{two} -tokens. So -\begin{alltt} -\cs{MakeUppercase} \~abc -\end{alltt} -tries to apply \cs{MakeUppercase} to just the first octet of \~a. -This means that the second octet has been separated from the first octet, -which is the cause of the error. In this case the argument isn't a -single token, so the two tokens (the first and second octet of \~a) -must be grouped: -\begin{alltt} -\cs{MakeUppercase}\{\~a\}bc -\end{alltt} -Over recent years the \LaTeX\ kernel has changed to allow the use of -UTF-8 characters within labels but the fundamental problem of each -octet been viewed as a separated token remains. - -Note that \XeTeX\ (and therefore \XeLaTeX) is a modern -implementation of \TeX\ designed to work with Unicode and therefore -doesn't suffer from this drawback. Now let's look at the \XeLaTeX\ -equivalent of the above example: -\begin{alltt} -\cs{documentclass}\{article\} - -\cs{usepackage}\{fontspec\} - -\cs{begin}\{document\} - -\cs{MakeUppercase} \~abc - -\cs{end}\{document\} -\end{alltt} - -This works correctly when compiled with \XeLaTeX. This means -that \cs{makefirstuc}\verb|{|\texttt{\~abc}\verb|}| will work -\emph{provided you use \XeLaTeX\ and the \sty{fontspec} package}. - -Version 2.24 of \sty{datatool-base} added the -command \cs{dtl@getfirst@UTFviii} which attempts to grab both octets. If this command -has been defined, \sty{mfirstuc} will use it when it tries to split -the first character from the rest of the word. See the -\href{http://mirrors.ctan.org/macros/latex/contrib/datatool/datatool-code.pdf}{\styfmt{datatool} -documented code} for further details. - -\PrintIndex +\begin{codebox} +\gls{MakeUppercase} abc +\end{codebox} +and since \gls{MakeUppercase} requires an argument, it grabs the +first token (the character \qt{a} in this case) and uses that as the +argument so that the result is \qt{Abc}. This behaviour can be +achieved with \gls{mfugrabfirstuc}. + +Unfortunately, this will fail if the content starts with a \gls{utf8} +character and you are using \pdfLaTeX, where each octet of the +\gls{utf8} character is a separate token. This isn't a problem +with \XeLaTeX\ and \LuaLaTeX\ which both treat the entire multibyte +character as a single token. + +\LaTeX3 now provides \gls{texttitlecasefirst:n} +to convert the first character to uppercase, so now the +case-change can be applied with: +\begin{codebox} +\cmd{ExplSyntaxOn} +\gls{texttitlecasefirst:n}\marg{élite} +\cmd{ExplSyntaxOff} +\end{codebox} +This is exactly what \gls{MFUsentencecase} does without the need to +switch on \LaTeX3 syntax. The difference with the default definition +of \gls{glsmakefirstuc} is that it prevents its argument from being +expanded. + +\backmatter +\printterms +\printsummary +\printuserguideindex + \end{document} diff --git a/macros/latex/contrib/mfirstuc/mfirstuc.dtx b/macros/latex/contrib/mfirstuc/mfirstuc.dtx index 2aa2008f41..a88c20e131 100644 --- a/macros/latex/contrib/mfirstuc/mfirstuc.dtx +++ b/macros/latex/contrib/mfirstuc/mfirstuc.dtx @@ -1,21 +1,22 @@ %\iffalse % mfirstuc.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -setambles ".*\.perl=>\nopreamble\nopostamble" -% -setambles ".*\.tex=>\nopreamble\nopostamble" +% -macrocode ".*\.l2h" +% -macrocode ".*\.tex" +% -comment ".*\.l2h" +% -comment ".*\.tex" +% -codetitle "Main Package Code" +% -doc "mfirstuc-codedoc.tex" % -author "Nicola Talbot" % -src "mfirstuc.sty\Z=>mfirstuc.sty" % -src "mfirstuc-english.sty\Z=>mfirstuc-english.sty" +% -src "(mfirstuc-[0-9]+-[0-9]+-[0-9]+.sty)\Z=>\1" % -src "(sample.*\.tex)\Z=>\1" -% -src "(.*\.perl)\Z=>\1" -% -macrocode ".*\.perl" -% -macrocode ".*\.tex" -% -codetitle "Main Package Code" -% -doc "mfirstuc-codedoc.tex" -% -comment ".*\.perl" -% -comment ".*\.tex" +% -src "(.*\.l2h)\Z=>\1" +% -setambles ".*\.l2h=>\nopreamble\nopostamble" +% -setambles ".*\.tex=>\nopreamble\nopostamble" % mfirstuc -% Created on 2021/10/15 17:46 +% Created on 2022/10/18 9:21 %\fi %\iffalse %<*package> @@ -38,66 +39,70 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2021 Nicola Talbot, all rights reserved. +% Copyright (C) 2022 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> -\documentclass{nlctdoc} - \iffalse mfirstuc-codedoc.tex is a stub file used by makedtx to create mfirstuc.dtx \fi -\usepackage[utf8]{inputenc} -\usepackage[T1]{fontenc} -\usepackage[colorlinks, - bookmarks, - hyperindex=false, - pdfauthor={Nicola L.C. Talbot}, - pdftitle={mfirstuc.sty: Documented code}]{hyperref} +\documentclass{article} +\usepackage{doc} + +\CheckSum{1753} \RecordChanges +\PageIndex +\SetupDoc{reportchangedates} +\setcounter{IndexColumns}{2} + +\usepackage[T1]{fontenc} +\usepackage{tcolorbox} -\renewcommand*{\main}[1]{\hyperpage{#1}} +\definecolor{defbackground}{rgb}{1,1,0.75} -\setcounter{IndexColumns}{2} -\setlength\IndexMin{100pt} +\newtcolorbox{definition}{halign=flush left, + colframe=black,colback=defbackground, + fontupper=\ttfamily, + before upper={\frenchspacing\obeylines}, + after={\par\noindent\ignorespacesafterend} +} + +\NewDocElement{Option}{option} -\CheckSum{771} +\providecommand{\sty}[1]{\textsf{#1}} + +\providecommand\marg[1]{% + \texorpdfstring{\allowbreak{\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}} + {\{#1\}}} +\providecommand\oarg[1]{% + \texorpdfstring{\allowbreak{\ttfamily[}\meta{#1}{\ttfamily]}} + {[#1]}} \begin{document} \DocInput{mfirstuc.dtx} \end{document} % %\fi -%\MakeShortVerb{"} -%\DeleteShortVerb{\|} % -% \title{Documented Code For mfirstuc v2.07} +% \title{Documented Code For mfirstuc v2.08} % \author{Nicola L.C. Talbot\\[10pt] %Dickimaw Books\\ %\url{http://www.dickimaw-books.com/}} % -% \date{2021-10-15} +% \date{2022-10-14} % \maketitle % %\tableofcontents % %\section{Introduction} % -%This is the documented code for the \styfmt{mfirstuc} package. +%This is the documented code for the \sty{mfirstuc} package. %See \texttt{mfirstuc-manual.pdf} for the main user guide. % -% -%\StopEventually{% -% \phantomsection -% \addcontentsline{toc}{section}{Change History}% -% \raggedright -% \PrintChanges -% \PrintIndex -%} -% +%\StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex} % % %\section{Main Package Code} @@ -106,58 +111,401 @@ mfirstuc.dtx %<*mfirstuc.sty> % \end{macrocode} %\fi -%\subsection{Mfirstuc Documented Code} +%\section{Mfirstuc Documented Code} %\label{sec:code:mfirstuc} %\changes{2.0}{2015/09/09}{package split from glossaries} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mfirstuc}[2021/10/15 v2.07 (NLCT)] +% \end{macrocode} +% Rollback releases: +% \begin{macrocode} +\DeclareRelease{v2.07}{2021-10-15}{mfirstuc-2021-10-15.sty} +\DeclareCurrentRelease{v2.08}{2022-10-14} +% \end{macrocode} +% Declare package: +% \begin{macrocode} +\ProvidesPackage{mfirstuc}[2022/10/14 v2.08 (NLCT)] % \end{macrocode} % Requires \sty{etoolbox}:\changes{1.06}{2012/05/21}{now requires % etoolbox} % \begin{macrocode} \RequirePackage{etoolbox} % \end{macrocode} +%Version 2.07 has switched to LaTeX3 for the actual case-changing. +%The original \cs{makefirstuc} has been reimplemented to use LaTeX3 +%code. There is also a new command \cs{MFUsentencecase} which just +%uses \cs{text\_titlecase\_first:n}. Note that \cs{MFUsentencecase} is +%internally used by \cs{glsmakefirstuc}, which in turn is used by +%\cs{makefirstuc} to perform the actual case-change. +% +%\begin{macro}{\glsmakefirstuc} +%\changes{1.05}{2011/04/02}{new} +% Provide a user command to make it easier to customise. This is +% used internally by \cs{makefirstuc}. (The original commands +% provided by \sty{mfirstuc} were part of the \sty{glossaries} +% package, hence the ``gls'' prefix.) +% \begin{macrocode} +\newcommand*{\glsmakefirstuc}[1]{\MFUsentencecase{\unexpanded{#1}}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mfirstucMakeUppercase} +% This was originally provided to allow user to replace +%\cs{MakeUppercase} with another case-changing command. +% This is now only used with \cs{mfugrabfirstuc}. +% \begin{macrocode} +\ExplSyntaxOn +\newcommand*{\mfirstucMakeUppercase}[1]{\text_uppercase:n{#1}} +% \end{macrocode} +%\end{macro} +% +%\begin{option}{expanded} +%\changes{2.08}{2022-10-14}{new} +%Allow argument to expand. +%This also resets the definition of \cs{mfirstucMakeUppercase} +%in case it was changed by grabfirst. +% \begin{macrocode} +\DeclareOption{expanded}{% + \renewcommand*{\glsmakefirstuc}[1]{\MFUsentencecase{#1}}% + \renewcommand*{\mfirstucMakeUppercase}[1]{\text_uppercase:n{#1}}% +} +% \end{macrocode} +%\end{option} +% +%\begin{option}{unexpanded} +%\changes{2.08}{2022-10-14}{new} +%Prevent argument of \cs{glsmakefirstuc} from expanding. +%This also resets the definition of \cs{mfirstucMakeUppercase} +%in case it was changed by grabfirst, but note that it doesn't use +%\cs{unexpanded}. +% \begin{macrocode} +\DeclareOption{unexpanded}{% + \renewcommand*{\glsmakefirstuc}[1]{\MFUsentencecase{\unexpanded{#1}}}% + \renewcommand*{\mfirstucMakeUppercase}[1]{\text_uppercase:n{#1}}% +} +\ExplSyntaxOff +% \end{macrocode} +%\end{option} +% +%\begin{macro}{\mfugrabfirstuc} +%\changes{2.08}{2022-10-14}{new} +%Used by the grabfirst option to emulate v2.07. +% \begin{macrocode} +\newrobustcmd*{\mfugrabfirstuc}[1]{\@mfu@grabfirstuc#1\empty} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@grabfirstuc} +%\changes{2.08}{2022-10-14}{new} +% \begin{macrocode} +\newcommand*{\@mfu@grabfirstuc}[2]{\mfirstucMakeUppercase{#1}#2} +% \end{macrocode} +%\end{macro} +% +%\begin{option}{grabfirst} +%\changes{2.08}{2022-10-14}{new} +%Emulate v2.07 method. +% \begin{macrocode} +\DeclareOption{grabfirst}{% + \renewcommand*{\glsmakefirstuc}[1]{\mfugrabfirstuc{#1}}% + \renewcommand*{\mfirstucMakeUppercase}[1]{\MakeUppercase{#1}}% +} +% \end{macrocode} +%\end{option} +% +%Process options. +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +%There are differences between \cs{makefirstuc} and +%\cs{MFUsentencecase}, the principle ones being expansion occurs differently and +%\cs{makefirstuc} stops at exclusions whereas +%\cs{MFUsentencecase} skips them. +% \begin{macrocode} +\ExplSyntaxOn +% \end{macrocode} +%\begin{macro}{\MFUsentencecase} +%\changes{2.08}{2022-10-14}{new} +%New command provided that simply uses LaTeX3, which expands the +%content. This may be preferred over \cs{makefirstuc} depending on +%the content. +% \begin{macrocode} +\newcommand{\MFUsentencecase}[1]{\text_titlecase_first:n{#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\MFUexcl} +%\changes{2.08}{2022-10-14}{new} +%Add a command to the exclusion list. This is used by +%\cs{text\_titlecase\_first:n} +%to skip commands that shouldn't have their argument changed (such +%as \cs{ref}). It's also used by \cs{makefirstuc}. +% \begin{macrocode} +\newcommand{\MFUexcl}[1]{ + \tl_if_empty:nF { #1 } + { + \tl_if_in:NnF \l_text_case_exclude_arg_tl {#1} + { + \tl_put_right:Nn \l_text_case_exclude_arg_tl {#1} + } + } +} +% \end{macrocode} +%\end{macro} +%Add \cs{ensuremath} as an exclusion otherwise \cs{makefirstuc} +%will try passing its argument to \cs{MFUsentencecase}, which will +%fail. +% \begin{macrocode} +\MFUexcl{\ensuremath} +% \end{macrocode} +% +%Test if the given command is in the exclusion list. +% \begin{macrocode} +\cs_new:Npn \mfirstuc_if_excluded:NTF #1 #2 #3 + { + \tl_if_in:NnTF \l_text_case_exclude_arg_tl {#1} {#2} {#3} + } +% \end{macrocode} +%Provide an implementation of \cs{makefirstuc} that matches +%older versions as much as possible. +% \begin{macrocode} +\tl_new:N \l__mfirstuc_stack_tl +\tl_new:N \l__mfirstuc_head_tl +\tl_new:N \l__mfirstuc_next_tl +% \end{macrocode} +%In addition to exclusions, also provide blockers. These are only +%supported by \cs{makefirstuc}. Exclusions and +%their argument are skipped, whereas blockers prevent case-change. +%For example, sentence-casing \verb|\label{ex}some text| should skip +%\verb|\label{ex}|, whereas \verb|\nameref{ex} some text| shouldn't +%have any case change applied. +% \begin{macrocode} +\tl_new:N \l__mfirstuc_blocker_tl +% \end{macrocode} +% +%\begin{macro}{\MFUblocker} +%\changes{2.08}{2022-10-14}{new} +%Add a command to the blocker list. +% \begin{macrocode} +\newcommand{\MFUblocker}[1]{ + \tl_if_empty:nF { #1 } + { + \tl_if_in:NnF \l__mfirstuc_blocker_tl {#1} + { + \tl_put_right:Nn \l__mfirstuc_blocker_tl {#1} + } + \MFUexcl { #1 } + } +} +% \end{macrocode} +%\end{macro} +%Test if the given command is in the blocker list. +% \begin{macrocode} +\cs_new:Npn \tl_if_mfirstuc_blocker:nTF #1 #2 #3 + { + \tl_if_in:NnTF \l__mfirstuc_blocker_tl {#1} {#2} {#3} + } +% \end{macrocode} +%Is there a way to do this without \cs{expandafter}? +% \begin{macrocode} +\cs_new:Npn \tl_if_mfirstuc_blocker:VTF #1 #2 #3 + { + \expandafter \tl_if_mfirstuc_blocker:nTF \expandafter {#1} {#2} {#3} + } +% \end{macrocode} +% %\begin{macro}{\makefirstuc} -% Syntax: %\begin{definition} % \cs{makefirstuc}\marg{text} %\end{definition} -% Makes the first letter uppercase, but will -% skip initial control sequences if they are followed by a group -% and make the first thing in the group uppercase, unless the group -% is empty. -% Thus \verb|\makefirstuc{abc}| will produce: Abc, -% \verb|\makefirstuc{\ae bc}| will produce: \AE bc, but -% \verb|\makefirstuc{\emph{abc}}| will produce \emph{Abc}. -% This is required by \ics{Gls} and \ics{Glspl}. %\changes{1.08}{2013-11-04}{made robust} +%\changes{2.08}{2022-10-14}{reimplement using \LaTeX3} +% \begin{macrocode} +\newrobustcmd{\makefirstuc}[1]{% + \tl_set:Nn \l__mfirstuc_stack_tl {#1} + \tl_if_empty:NF \l__mfirstuc_stack_tl + { + \tl_if_single:NTF \l__mfirstuc_stack_tl + { + \glsmakefirstuc{#1} + } + { + \tl_if_head_is_group:nTF {#1} + { + \glsmakefirstuc{#1} + } + { + \tl_if_head_eq_catcode:nNTF {#1} \relax + { + \tl_set:NV \l_tmpa_tl \l__mfirstuc_stack_tl + \tl_set:Nx \l__mfirstuc_head_tl { \tl_head:V \l_tmpa_tl } + \tl_set:Nx \l__mfirstuc_stack_tl { \tl_tail:N \l__mfirstuc_stack_tl } + \tl_if_eq:NnTF \l__mfirstuc_head_tl { \protect } + { + \tl_set:NV \l_tmpa_tl \l__mfirstuc_stack_tl + \tl_set:Nx \l__mfirstuc_head_tl { \tl_head:V \l_tmpa_tl } + \tl_set:Nx \l__mfirstuc_stack_tl { \tl_tail:N \l__mfirstuc_stack_tl } + } + {} + \tl_if_mfirstuc_blocker:VTF \l__mfirstuc_head_tl + { #1 } + { + \let \l_tmpa_tl \l__mfirstuc_stack_tl + \tl_set:Nx \l__mfirstuc_next_tl { \tl_head:N \l_tmpa_tl } + \tl_if_single:NTF \l__mfirstuc_next_tl + { + \glsmakefirstuc{#1} + } + { + \tl_set:Nx \l__mfirstuc_stack_tl { \tl_tail:N \l__mfirstuc_stack_tl } + \tl_clear:N \l_tmpa_tl + \tl_put_right:Nn \l_tmpa_tl { \__mfirstuc_inner:nnn } + \tl_put_right:NV \l_tmpa_tl \l__mfirstuc_head_tl + \tl_put_right:Nx \l_tmpa_tl + { + { \expandonce \l__mfirstuc_next_tl } + { \expandonce \l__mfirstuc_stack_tl } + } + \tl_use:N \l_tmpa_tl + } + } + } + { + \glsmakefirstuc{#1} + } + } + } + } +} +% \end{macrocode} +%\end{macro} +% % \begin{macrocode} -\newif\if@glscs -\newtoks\@glsmfirst -\newtoks\@glsmrest -\newrobustcmd*{\makefirstuc}[1]{% +\cs_new_protected:Npn \__mfirstuc_inner:nnn #1 #2 #3 + { % \end{macrocode} -% Check if argument starts with \cs{protect} which needs to be -% skipped. -%\changes{2.01}{2015-12-08}{added check for \cs{protect}} +% Mappings trump exclusions. % \begin{macrocode} - \@MFU@p@makefirstuc#1\relax\relax\relax\@end@MFU@protected{#1}% + \mfirstuc_get_map:NN #1 \l_tmpb_tl + \quark_if_no_value:NTF \l_tmpb_tl + { + \mfirstuc_if_excluded:NTF #1 + { #1{#2}\makefirstuc{#3} } + { #1{\makefirstuc{#2}}#3 } + } + { + \l_tmpb_tl {#2} #3 + } + } +% \end{macrocode} +%Mappings. +% \begin{macrocode} +\prop_new:N \l__mfirstuc_mappings_prop +% \end{macrocode} +%\begin{macro}{\MFUaddmap} +%\changes{2.08}{2022-10-14}{new} +%Adds a mapping from a control sequence to the appropriate sentence +%case version. No map is added if either argument is empty. +% \begin{macrocode} +\newrobustcmd*{\MFUaddmap}[2]{% + \tl_if_empty:nF { #1 } + { + \tl_if_empty:nF { #2 } + { + \prop_put:Nnn \l__mfirstuc_mappings_prop {#1} {#2} + } + } + \MFUexcl { #1 } + \MFUblocker { #2 } +} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +\cs_new:Npn \mfirstuc_get_map:NN #1 #2 + { + \prop_get:NnN \l__mfirstuc_mappings_prop {#1} #2 + } +% \end{macrocode} +%\begin{macro}{\MFUsaveatend} +%\changes{2.08}{2022-10-14}{new} +%Save exclusions, blockers and mappings in the aux file, if required +%by some external tool, but delays action to the end of the document. +% \begin{macrocode} +\newcommand{\MFUsaveatend}{ + \AtEndDocument { \@MFUsavetoaux } +% \end{macrocode} +%Disable this command. +% \begin{macrocode} + \let\MFUsaveatend\relax } % \end{macrocode} %\end{macro} +%\begin{macro}{\MFUsave} +%\changes{2.08}{2022-10-14}{new} +%As above but do now. +% \begin{macrocode} +\newcommand{\MFUsave}{ + \@MFUsavetoaux +% \end{macrocode} +%Disable further attempts. +% \begin{macrocode} + \let\@MFUsavetoaux\relax + \let\MFUsave\relax + \let\MFUsaveatend\relax +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@MFUsavetoaux} +%\changes{2.08}{2022-10-14}{new} +%Save exclusions, blockers and mappings in the aux file, if required +%by some external tool. +% \begin{macrocode} +\newcommand{\@MFUsavetoaux}{ + \protected@write\@auxout{} + { \tl_to_str:n { \providecommand{\@mfu@excls}[1]{} } } + \protected@write\@auxout{} + { \tl_to_str:n { \providecommand{\@mfu@blockers}[1]{} } } + \protected@write\@auxout{} + { \tl_to_str:n { \providecommand{\@mfu@mappings}[1]{} } } +% \end{macrocode} +%Save current values. +% \begin{macrocode} + \protected@write\@auxout{} + { + \string\@mfu@excls { \tl_to_str:V \l_text_case_exclude_arg_tl } + } + \protected@write\@auxout{} + { + \string\@mfu@blockers { \tl_to_str:V \l__mfirstuc_blocker_tl } + } + \protected@write\@auxout{} + { + \string\@mfu@mappings + { \expandonce { \prop_to_keyval:N \l__mfirstuc_mappings_prop } } + } +} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +\ExplSyntaxOff +% \end{macrocode} +%The remaining code hasn't been converted to LaTeX3 yet, but may in +%the future, so don't rely on internal commands. % -%\begin{macro}{\@MFU@protect} -%\changes{2.03}{2016-07-29}{new} +%\begin{macro}{\emakefirstuc} +%\changes{1.10}{2015/05/03}{new} +% Fully expand argument before applying case-change. % \begin{macrocode} -\newcommand*{\@MFU@protect}{\protect} +\newrobustcmd*{\emakefirstuc}[1]{% + \protected@edef\@MFU@caparg{#1}% + \expandafter\makefirstuc\expandafter{\@MFU@caparg}% +} % \end{macrocode} %\end{macro} % -%\begin{macro}{\@MFU@skippunc} -%\changes{2.07}{2021-10-15}{new} +%\begin{macro}{\xmakefirstuc} % \begin{macrocode} -\newcommand*{\@MFU@skippunc}{\MFUskippunc} +\newcommand*{\xmakefirstuc}[1]{\expandafter\makefirstuc\expandafter{#1}} % \end{macrocode} %\end{macro} % @@ -165,25 +513,978 @@ mfirstuc.dtx %\changes{2.07}{2021-10-15}{new} % \begin{macrocode} \newrobustcmd*{\MFUskippunc}[1]{#1} +\MFUexcl{\MFUskippunc} % \end{macrocode} %\end{macro} % -%\begin{macro}{\@MFU@p@makefirstuc} -% Internal command to do the required action. +%Title case commands. Each word has the first letter converted to +%upper case using \cs{MFUcapwordfirstuc}. This uses \cs{makefirstuc} +%by default. It may be redefined to use \cs{MFUsentencecase} or +%\cs{text\_titlecase:n} as applicable. +%\begin{macro}{\MFUcapwordfirstuc} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\MFUcapwordfirstuc}[1]{% + \makefirstuc{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\capitalisewords} +%\changes{1.06}{2012/05/21}{new} +% Capitalise each word in the argument. Words are considered to be +% separated by plain spaces (i.e.\ non-breakable spaces won't be +% considered a word break). +%\changes{1.08}{2013-11-04}{made robust} +%\changes{1.09}{2017-07-30}{added check for words that shouldn't be +%capitalised} +% \begin{macrocode} +\newrobustcmd*{\capitalisewords}[1]{% + \let\@mfu@checkword\@gobble + \def\gls@add@space{}% + \let\@mfu@domakefirstuc\@MFU@dofirst@capword + \mfu@capitalisewords#1 \@nil\mfu@endcap +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@mid@capitalisewords} +%\changes{2.03}{2016-07-29}{new} +%\cs{@mfu@checkword} needs to be set before use. +% \begin{macrocode} +\newcommand*{\@mfu@mid@capitalisewords}[1]{% + \def\gls@add@space{}% + \let\@mfu@domakefirstuc\@MFU@do@capword + \mfu@capitalisewords#1 \@nil\mfu@endcap +} +% \end{macrocode} +%\end{macro} +% +% \begin{macrocode} +\def\mfu@capitalisewords#1 #2\mfu@endcap{% + \def\mfu@cap@first{#1}% + \def\mfu@cap@second{#2}% + \gls@add@space + \@mfu@checkword{#1}% + \@mfu@domakefirstuc{#1}% + \def\gls@add@space{ }% + \ifx\mfu@cap@second\@nnil + \let\next@mfu@cap\mfu@noop + \else + \let\next@mfu@cap\mfu@capitalisewords + \let\@mfu@checkword\mfu@checkword + \fi + \next@mfu@cap#2\mfu@endcap +} +\def\mfu@noop#1\mfu@endcap{} +% \end{macrocode} +% +%\begin{macro}{\ifMFUhyphen} +%\changes{2.03}{2016-07-29}{new} +%Split on hyphens. +% \begin{macrocode} +\newif\ifMFUhyphen +\MFUhyphenfalse +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@do@capword} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\@MFU@do@capword}[1]{% + \let\@MFU@cappingword\MFUcapword + \@MFUwordbreak#1\MFUwordbreak{}\@nil\@endMFUwordbreak +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@dofirst@capword} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\@MFU@dofirst@capword}[1]{% + \let\@MFU@cappingword\MFUcapword + \@MFUfirstwordbreak#1\MFUwordbreak{}\@nil\@endMFUfirstwordbreak +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUcapword} +%\changes{2.03}{2016-07-29}{new} % \begin{macrocode} +\newcommand*{\MFUcapword}[1]{% + \ifMFUhyphen + \MFUhyphencapword{#1}% + \else + \MFUcapwordfirstuc{#1}% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUwordbreak} +%\changes{2.07}{2021-10-15}{new} +%Markup a character (or command) that should be treated as a word +%break. +% \begin{macrocode} +\newrobustcmd*{\MFUwordbreak}[1]{#1} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUhyphencapword} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\MFUhyphencapword}[1]{% + \@MFUcapword#1-\@nil\@endMFUcapword +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFUcapword} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\def\@MFUcapword#1-#2\@endMFUcapword{% + \MFUcapwordfirstuc{#1}% + \def\@mfu@argii{#2}% + \ifx\@mfu@argii\@nnil + \else + -\@MFUcapword#2\@endMFUcapword + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFUwordbreak} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\def\@MFUwordbreak#1\MFUwordbreak#2#3\@endMFUwordbreak{% + \def\@mfu@argiii{#3}% + \ifx\@mfu@argiii\@nnil + \@MFU@cappingword{#1}% + \else + \let\@MFU@cappingword\@MFU@wordbreakcapword + \@MFU@cappingword{#1}% + #2\@MFUwordbreak#3\@endMFUwordbreak + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@wordbreakcapword} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\@MFU@wordbreakcapword}[1]{% + \mfu@checkword{#1}% + \@mfu@domakefirstuc{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFUfirstwordbreak} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\def\@MFUfirstwordbreak#1\MFUwordbreak#2#3\@endMFUfirstwordbreak{% + \def\@mfu@argiii{#3}% + \ifx\@mfu@argiii\@nnil + \@MFU@cappingword{#1}% + \else + \let\@MFU@cappingword\@MFU@firstwordbreakcapword + \@MFU@cappingword{#1}% + #2\@MFUfirstwordbreak#3\@endMFUfirstwordbreak + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@firstwordbreakcapword} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\@MFU@firstwordbreakcapword}[1]{% + \@mfu@domakefirstuc{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mfu@checkword} +% Check if word should be capitalised. +% This originally used \sty{etoolbox}'s \cs{ifinlist} command +% but this doesn't work if the word contains grouping. +%\changes{1.09}{2017-07-30}{new} +%\changes{2.02}{2015-12-17}{modified to use loop instead of \cs{ifinlist}} +% \begin{macrocode} +\newcommand*\mfu@checkword[1]{% + \def\mfu@checkword@arg{#1}% + \let\@mfu@domakefirstuc\@MFU@do@capword + \forlistloop\mfu@checkword@do\@mfu@nocaplist +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\mfu@checkword@do} +% Handler for loop used by \cs{mfu@checkword} +%\changes{2.02}{2015-12-17}{new} +% \begin{macrocode} +\newcommand*{\mfu@checkword@do}[1]{% + \def\mfu@checkword@argii{#1}% + \ifdefequal\mfu@checkword@arg\mfu@checkword@argii + {% + \let\@mfu@domakefirstuc\@firstofone + \listbreak + }% + {% +% \end{macrocode} +%Need to check if \cs{@mfu@terminator} has been tacked onto the end. +% \begin{macrocode} + \def\mfu@checkword@argii{#1{\@mfu@terminator}}% + \ifdefequal\mfu@checkword@arg\mfu@checkword@argii + {% + \let\@mfu@domakefirstuc\@firstofone + \listbreak + }% + {}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@nocaplist} +% List of words that shouldn't be capitalised. +%\changes{1.09}{2017-07-30}{new} +% \begin{macrocode} +\newcommand*{\@mfu@nocaplist}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUnocap} +% Provide the user with a means to add a word to the list. +% (No expansion performed on the argument.) +%\changes{1.09}{2017-07-30}{new} +% \begin{macrocode} +\newcommand*{\MFUnocap}[1]{\listadd{\@mfu@nocaplist}{#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\gMFUnocap} +% Global version. +%\changes{1.09}{2017-07-30}{new} +% \begin{macrocode} +\newcommand*{\gMFUnocap}[1]{\listgadd{\@mfu@nocaplist}{#1}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUclear} +% Clear the list +%\changes{1.09}{2017-07-30}{new} +% \begin{macrocode} +\newcommand*{\MFUclear}{\renewcommand*{\@mfu@nocaplist}{}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\xcapitalisewords} +%\changes{1.06}{2012/05/21}{new} +% Short-cut command: +% \begin{macrocode} +\newcommand*{\xcapitalisewords}[1]{% + \expandafter\capitalisewords\expandafter{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ecapitalisewords} +%\changes{1.10}{2015/05/03}{new} +% Fully expand argument before applying \cs{capitalisewords} +% \begin{macrocode} +\newrobustcmd*{\ecapitalisewords}[1]{% + \protected@edef\@MFU@caparg{#1}% + \expandafter\capitalisewords\expandafter{\@MFU@caparg}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@nil} +% \begin{macrocode} +\newcommand\@mfu@nil{\unskip} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@nnil} +% \begin{macrocode} +\newcommand*\@mfu@nnil{\@mfu@nil} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\capitalisefmtwords} +%\changes{2.03}{2016-07-29}{new} +%Like \cs{capitalisewords} but assumes that the phrase contains +%formatting text-block commands. +% \begin{macrocode} +\newcommand*{\capitalisefmtwords}{% + \@ifstar\@s@capitalisefmtwords\@ns@capitalisefmtwords +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@s@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% Starred form. +% \begin{macrocode} +\newcommand*{\@s@capitalisefmtwords}[1]{% + \@@s@checkgrp@@capitalisefmtwords#1\@nil +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@checkgrp@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\newcommand*{\@@s@checkgrp@@capitalisefmtwords}{% + \@ifnextchar\bgroup{\@@s@nocs@capitalisefmtwords}{\@@s@capitalisefmtwords}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@nocs@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +%Argument starts with a group. +% \begin{macrocode} +\def\@@s@nocs@capitalisefmtwords#1\@nil{% + \capitalisewords{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\newcommand*{\@@s@capitalisefmtwords}[1]{% + \def\gls@argi{#1}% + \ifx\gls@argi\@MFU@protect +% \end{macrocode} +%Skip \cs{protect} +% \begin{macrocode} + \let\@mfu@capfmtwordsnext\@@s@capitalisefmtwords + \else + \ifx\gls@argi\@nnil +% \end{macrocode} +%Nothing to do. +% \begin{macrocode} + \let\@mfu@capfmtwordsnext\relax + \else + \def\@gls@tmp{\ #1}% + \@onelevel@sanitize\@gls@tmp + \expandafter\@gls@checkcs\@gls@tmp\relax\relax + \if@glscs + \def\@mfu@capfmtwordsnext{\@@s@cs@capitalisefmtwords#1}% + \else + \def\@mfu@capfmtwordsnext{\@@s@nocs@capitalisefmtwords#1}% + \fi + \fi + \fi + \@mfu@capfmtwordsnext +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@cs@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\newcommand*{\@@s@cs@capitalisefmtwords}[1]{% + \@ifnextchar\bgroup + {\@@s@cs@g@capitalisefmtwords#1}% + {\@@s@cs@ng@capitalisefmtwords#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@cs@g@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\def\@@s@cs@g@capitalisefmtwords#1#2#3\@nil{% + #1{\capitalisewords{#2}}% + \ifblank{#3}% + {}% + {% + \def\gls@add@space{}% + \let\@mfu@checkword\mfu@checkword + \mfu@capitalisewords#3 \@nil\mfu@endcap + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@s@cs@ng@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\def\@@s@cs@ng@capitalisefmtwords#1#2\@nil{% + \capitalisewords{#1#2}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@ns@capitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% Unstarred form. +% \begin{macrocode} +\newcommand*{\@ns@capitalisefmtwords}[1]{% + \let\@mfu@checkword\@gobble + \def\gls@add@space{}% + \@capitalisefmtwords#1 \@mfu@nil{} \unskip +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@capitalisefmtwords} +%\changes{2.03}{2016-07-29}{new} +%Take care of group at the start of the word. +% \begin{macrocode} +\newcommand*{\@capitalisefmtwords}{% + \@ifnextchar\bgroup{\@capitalise@g@fmtwords}{\@capitalise@ng@fmtwords}% +} +\newcommand*{\@capitalise@g@fmtwords}[1]{% + \@capitalise@ng@fmtwords{{#1}}% +} +\def\@mfu@ifnil#1#2\@mfu@end@nil#3#4{% + \def\gls@argi{#1}% + \ifx\gls@argi\@mfu@nnil + #3% + \else + #4% + \fi +} +\def\@capitalise@ng@fmtwords#1 {% + \@mfu@ifnil#1\relax\relax\@mfu@end@nil + {% + \def\@mfu@capfmtwordsnext{#1}% + }% + {% + \def\@mfu@capfmtwordsnext{% + \@capitalise@fmtwords#1\@mfu@nil + \def\gls@add@space{ }% + \let\@mfu@checkword\mfu@checkword + \@@cap@nofmtphrase}% + }% + \@mfu@capfmtwordsnext +}% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@capitalise@fmtwords} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\def\@capitalise@fmtwords#1{% + \@mfu@ifnil#1\relax\relax\@mfu@end@nil + {% +% \end{macrocode} +%Do nothing. +% \begin{macrocode} + \def\@mfu@capfmtwordsnext{#1}% + }% + {% + \def\gls@argi{#1}% + \ifx\gls@argi\@MFU@protect +% \end{macrocode} +%Skip \cs{protect} +% \begin{macrocode} + \def\@mfu@capfmtwordsnext{\@capitalise@fmtwords}% + \else + \def\@gls@tmp{\ #1}% + \@onelevel@sanitize\@gls@tmp + \expandafter\@gls@checkcs\@gls@tmp\relax\relax + \if@glscs + \def\@mfu@capfmtwordsnext{\@@capitalisefmtwords#1}% + \else + \ifx\gls@argi\@empty + \def\@mfu@capfmtwordsnext{\@@capnofmtphrase{}}% + \else + \def\@mfu@capfmtwordsnext{\@@capnofmtphrase#1}% + \fi + \fi + \fi + }% + \@mfu@capfmtwordsnext +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@capitalisefmtwords} +%\changes{2.03}{2016-07-29}{new} +%Check for a group following argument. +% \begin{macrocode} +\def\@@capitalisefmtwords#1{% + \@ifnextchar\bgroup{\@@capfmtsubphrase#1}{\@@capnofmtphrase#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@capnofmtphrase} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\def\@@capnofmtphrase{% + \@ifnextchar\bgroup{\@@cap@g@nofmtphrase}{\@@cap@ng@nofmtphrase}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@@cap@ng@nofmtphrase} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\def\@@cap@ng@nofmtphrase#1\@mfu@nil{% + \gls@add@space + \@mfu@mid@capitalisewords{#1}% + \def\gls@add@space{ }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@@cap@g@nofmtphrase} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\def\@@cap@g@nofmtphrase#1{% + \@@cap@ng@nofmtphrase{{#1}}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@mfu@terminator} +%\changes{2.04}{2016-07-31}{new} +% \begin{macrocode} +\newcommand*\@mfu@terminator{\hbox{}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@capfmtsubphrase} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\def\@@capfmtsubphrase#1#2#3{% +% \end{macrocode} +%Protect any trailing space at the end of the second argument. +% \begin{macrocode} + #1{\@capitalisefmtwords#2{\@mfu@terminator} \@mfu@nil{} \unskip}% + \def\gls@add@space{ }% + \let\@mfu@checkword\mfu@checkword + \@mfu@ifnil#1\relax\relax\@mfu@end@nil + {\let\@mfu@fmtsubphrasenext\relax}% + {\def\@mfu@fmtsubphrasenext{#3}}% + \@mfu@fmtsubphrasenext +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@@cap@nofmtphrase} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\def\@@cap@nofmtphrase#1 {% + \@mfu@ifnil#1\relax\relax\@mfu@end@nil + {% + \def\@mfu@capnofmtwordsnext{#1 }% + }% + {% + \def\@mfu@capnofmtwordsnext{% + \@capitalisefmtwords#1 \@mfu@nil{} \unskip + \def\gls@add@space{ }% + \let\@mfu@checkword\mfu@checkword + \@capitalisefmtwords + }% + }% + \@mfu@capnofmtwordsnext +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\xcapitalisefmtwords} +%\changes{2.03}{2016-07-29}{new} +% Short-cut command: +% \begin{macrocode} +\newcommand*{\xcapitalisefmtwords}{% + \@ifstar\@s@xcapitalisefmtwords\@ns@xcapitalisefmtwords +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@s@xcapitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% Starred version +% \begin{macrocode} +\newcommand*{\@s@xcapitalisefmtwords}[1]{% + \expandafter\@s@capitalisefmtwords\expandafter{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@ns@xcapitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +% Unstarred version +% \begin{macrocode} +\newcommand*{\@ns@xcapitalisefmtwords}[1]{% + \expandafter\@ns@capitalisefmtwords\expandafter{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ecapitalisefmtwords} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\newrobustcmd*{\ecapitalisefmtwords}{% + \@ifstar\@s@ecapitalisefmtwords\@ns@ecapitalisefmtwords +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@s@ecapitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +%Starred version +% \begin{macrocode} +\newcommand*{\@s@ecapitalisefmtwords}[1]{% + \protected@edef\@MFU@caparg{#1}% + \expandafter\@s@capitalisefmtwords\expandafter{\@MFU@caparg}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@ns@ecapitalisefmtwords} +%\changes{2.04}{2016-07-31}{new} +%Unstarred version +% \begin{macrocode} +\newcommand*{\@ns@ecapitalisefmtwords}[1]{% + \protected@edef\@MFU@caparg{#1}% + \expandafter\@ns@capitalisefmtwords\expandafter{\@MFU@caparg}% +} +% \end{macrocode} +%\end{macro} +% +%The remaining code is redundant and will be removed in future. +% +%\begin{macro}{\@org@makefirstuc} +% This is the original definition of \cs{makefirstuc}. It will be +% removed in later versions. +% Syntax: +%\begin{definition} +% \cs{makefirstuc}\marg{text} +%\end{definition} +%\changes{1.08}{2013-11-04}{made robust} +%\changes{2.08}{2022-10-14}{updated to use \cs{MFUsentencecase}} +% \begin{macrocode} +\newif\if@glscs +\newtoks\@glsmfirst +\newtoks\@glsmrest +\newrobustcmd*{\@org@makefirstuc}[1]{% +% \end{macrocode} +% Check if argument starts with \cs{protect} which needs to be +% skipped. +%\changes{2.01}{2015-12-08}{added check for \cs{protect}} +% \begin{macrocode} + \@MFU@p@makefirstuc#1\relax\relax\relax\@end@MFU@protected{#1}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@protect} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\newcommand*{\@MFU@protect}{\protect} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@skippunc} +%\changes{2.07}{2021-10-15}{new} +% \begin{macrocode} +\newcommand*{\@MFU@skippunc}{\MFUskippunc} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@MFU@p@makefirstuc} +% Internal command to do the required action. +% \begin{macrocode} +\def\@MFU@p@makefirstuc#1#2#3\@end@MFU@protected#4{% +% \end{macrocode} +%\changes{2.03}{2016-07-29}{changed test} +%Test if the first argument is \cs{protect}. +% \begin{macrocode} + \def\gls@argi{#1}% + \ifx\gls@argi\@MFU@protect + \@makefirstuc{#2#3}% + \else +% \end{macrocode} +% v2.07+ also check for \cs{MFUskippunc} +%\changes{2.07}{2021-10-15}{check for \cs{MFUskippunc}} +% \begin{macrocode} + \ifx\gls@argi\@MFU@skippunc + #2\@makefirstuc{#3}% + \else + \@makefirstuc{#4}% + \fi + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@makefirstuc} +% Internal command to do the required action. +% \begin{macrocode} +\newcommand*{\@makefirstuc}[1]{% + \def\gls@argi{#1}% + \ifx\gls@argi\@empty +% \end{macrocode} +% If the argument is empty, do nothing. +% \begin{macrocode} + \else +% \end{macrocode} +%\changes{1.03}{2008/12/22}{changed \cs{protected@edef} to \cs{def}} +% \begin{macrocode} + \def\@gls@tmp{\ #1}% + \@onelevel@sanitize\@gls@tmp + \expandafter\@gls@checkcs\@gls@tmp\relax\relax + \if@glscs +% \end{macrocode} +% Check if we have two sequential control sequences. +%\changes{2.0}{2015/09/09}{added check for two control sequences} +% \begin{macrocode} + \expandafter\def\expandafter\@gls@tmp\expandafter{\expandafter + \ \@gobble #1}% + \@onelevel@sanitize\@gls@tmp + \expandafter\@gls@checkcs\@gls@tmp\relax\relax + \if@glscs\@glscsfalse\else\@glscstrue\fi + \fi + \if@glscs + \@gls@getbody #1{}\@nil + \ifx\@gls@rest\@empty + \glsmakefirstuc{#1}% + \else + \expandafter\@gls@split\@gls@rest\@nil + \ifx\@gls@first\@empty + \glsmakefirstuc{#1}% + \else +% \end{macrocode} +%\changes{2.06}{2017-11-14}{check for inner control sequence} +%Does \cs{@gls@first} start with a control sequence? +% \begin{macrocode} + \edef\@gls@tmp\expandafter{\noexpand\ \expandonce\@gls@first}% + \@onelevel@sanitize\@gls@tmp + \expandafter\@gls@checkcs\@gls@tmp\relax\relax + \if@glscs + \edef\@gls@domfirstuc{\expandonce\@gls@body + {\noexpand\makefirstuc{\expandonce\@gls@first + \expandonce\@gls@rest}% + }% + }% + \else + \expandafter\@glsmfirst\expandafter{\@gls@first}% + \expandafter\@glsmrest\expandafter{\@gls@rest}% +% \end{macrocode} +%\changes{2.06}{2017-11-14}{added braces to \cs{glsmakefirstuc} argument} +% \begin{macrocode} + \edef\@gls@domfirstuc{\noexpand\@gls@body + {\noexpand\glsmakefirstuc{\the\@glsmfirst}}% + \the\@glsmrest}% + \fi + \@gls@domfirstuc + \fi + \fi + \else + \glsmakefirstuc{#1}% + \fi + \fi +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@gls@split} +% Put first argument in \cs{@gls@first} and second argument in +% \cs{@gls@rest}: +%\changes{2.03}{2016-07-29}{added check for datatool-base UTF-8 support} +% \begin{macrocode} +\ifdef\dtl@getfirst@UTFviii +{% + \def\@gls@split#1#2\@nil{% + \ifbool{@dtl@utf8} + {% + \expandafter\dtl@if@two@octets#1#2\relax\dtl@end@if@two@octets + {% + \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii + \let\@gls@first\dtl@first + \let\@gls@rest\dtl@rest + }% + {% + \def\@gls@first{#1}\def\@gls@rest{#2}% + }% + }% + {% +% \end{macrocode} +%\changes{2.04}{2016-07-31}{added missing false part} +% \begin{macrocode} + \def\@gls@first{#1}\def\@gls@rest{#2}% + }% + } +}% +{% + \def\@gls@split#1#2\@nil{% + \def\@gls@first{#1}\def\@gls@rest{#2}% + } +} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +\def\@gls@checkcs#1 #2#3\relax{% + \def\@gls@argi{#1}\def\@gls@argii{#2}% + \ifx\@gls@argi\@gls@argii + \@glscstrue + \else + \@glscsfalse + \fi +} +% \end{macrocode} +% Has \sty{datatool-base} v2.24 (or above) been loaded? If so and we +% have UTF-8 enabled, we can grab the first octet. +%\begin{macro}{\@mfu@applytofirst} +%\changes{2.03}{2016-07-29}{new} +% \begin{macrocode} +\ifdef\dtl@getfirst@UTFviii +{% + \def\@mfu@applytofirst#1#2\@mfu@end@applytofirst#3{% + \expandafter\dtl@if@two@octets#1#2\relax\dtl@end@if@two@octets + {% + \dtl@getfirst@UTFviii#1#2\@nil\end@dtl@getfirst@UTFviii + \expandafter#3\expandafter{\dtl@first}\dtl@rest + }% + {% +% \end{macrocode} +%First argument needs to be grouped in case it consists of more than +%one token. +%\changes{2.05}{2017-11-10}{grouped first argument} +% \begin{macrocode} + #3{#1}#2% + }% + }% +}% +{% +% \end{macrocode} +%First argument needs to be grouped in case it consists of more than +%one token. +%\changes{2.05}{2017-11-10}{grouped first argument} +% \begin{macrocode} + \def\@mfu@applytofirst#1#2\@mfu@end@applytofirst#3{% + #3{#1}#2% + } +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\MFUapplytofirst} +%\changes{2.03}{2016-07-29}{new} +%\changes{2.08}{2022-10-14}{deprecated} +%\begin{definition} +%\cs{MFUapplytofirst}\marg{cs}\marg{text} +%\end{definition} +% Apply \meta{cs} to first token of text, or first UTF-8 character +% if \sty{datatool-base} v2.24 above has been loaded with the utf8 +% support enabled. Deprecated as from v2.08. +% \begin{macrocode} +\ifdef\dtl@getfirst@UTFviii +{% + \newcommand*{\MFUapplytofirst}[2]{% + \ifbool{@dtl@utf8} + {% + \ifblank{#2}% + {#1{#2}}% + {% + \ifblank{#1}% + {#1#2}% + {% + \@mfu@applytofirst#2\@mfu@end@applytofirst#1\relax + }% + }% + }% + {% + #1#2% + }% + } +}% +{% + \newcommand*{\MFUapplytofirst}[2]{% + #1#2% + } +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@makefirstuc} +%\changes{2.08}{2022-10-14}{updated to use \cs{MFUsentencecase}} +%Deprecated. +% \begin{macrocode} +\def\@gls@makefirstuc#1{\MFUsentencecase{#1}} +% \end{macrocode} +%\end{macro} +% +% Get the first grouped argument and store in \cs{@gls@body}. +% \begin{macrocode} +\def\@gls@getbody#1#{\def\@gls@body{#1}\@gls@gobbletonil} +% \end{macrocode} +% Scoup up everything to \cs{@nil} and store in \cs{@gls@rest}: +% \begin{macrocode} +\def\@gls@gobbletonil#1\@nil{\def\@gls@rest{#1}} +% \end{macrocode} +% +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*mfirstuc-english.sty> +% \end{macrocode} +%\fi +%\subsection{Mfirstuc-english Documented Code} +%\label{sec:code:mfirstuc-english} +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mfirstuc-english}[2022/10/14 v2.08 (NLCT)] +% \end{macrocode} +% Load \sty{mfirstuc} if not already loaded: +% \begin{macrocode} +\RequirePackage{mfirstuc} +% \end{macrocode} +% Add no-cap words. This list isn't complete. I~don't intend adding +% disputed words. Additional words can be added to the document in +% a~similar manner. +% \begin{macrocode} +\MFUnocap{a} +\MFUnocap{an} +\MFUnocap{and} +\MFUnocap{but} +\MFUnocap{for} +\MFUnocap{in} +\MFUnocap{of} +\MFUnocap{or} +\MFUnocap{no} +\MFUnocap{nor} +\MFUnocap{so} +\MFUnocap{some} +\MFUnocap{the} +\MFUnocap{with} +\MFUnocap{yet} +% \end{macrocode} +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +%<*mfirstuc-2021-10-15.sty> +% \end{macrocode} +%\fi +% \section{Rollback v2.07 (mfirstuc-2021-10-15.sty)} +% Version 2.07 preserved for rollback. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mfirstuc}[2021/10/15 v2.07 (NLCT)] +\RequirePackage{etoolbox} +\newif\if@glscs +\newtoks\@glsmfirst +\newtoks\@glsmrest +\newrobustcmd*{\makefirstuc}[1]{% + \@MFU@p@makefirstuc#1\relax\relax\relax\@end@MFU@protected{#1}% +} +\newcommand*{\@MFU@protect}{\protect} +\newcommand*{\@MFU@skippunc}{\MFUskippunc} +\newrobustcmd*{\MFUskippunc}[1]{#1} \def\@MFU@p@makefirstuc#1#2#3\@end@MFU@protected#4{% -% \end{macrocode} -%\changes{2.03}{2016-07-29}{changed test} -%Test if the first argument is \cs{protect}. -% \begin{macrocode} \def\gls@argi{#1}% \ifx\gls@argi\@MFU@protect \@makefirstuc{#2#3}% \else -% \end{macrocode} -% v2.07+ also check for \cs{MFUskippunc} -%\changes{2.07}{2021-10-15}{check for \cs{MFUskippunc}} -% \begin{macrocode} \ifx\gls@argi\@MFU@skippunc #2\@makefirstuc{#3}% \else @@ -191,30 +1492,14 @@ mfirstuc.dtx \fi \fi } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@makefirstuc} -% Internal command to do the required action. -% \begin{macrocode} \newcommand*{\@makefirstuc}[1]{% \def\gls@argi{#1}% \ifx\gls@argi\@empty -% \end{macrocode} -% If the argument is empty, do nothing. -% \begin{macrocode} \else -% \end{macrocode} -%\changes{1.03}{2008/12/22}{changed \cs{protected@edef} to \cs{def}} -% \begin{macrocode} \def\@gls@tmp{\ #1}% \@onelevel@sanitize\@gls@tmp \expandafter\@gls@checkcs\@gls@tmp\relax\relax \if@glscs -% \end{macrocode} -% Check if we have two sequential control sequences. -%\changes{2.0}{2015/09/09}{added check for two control sequences} -% \begin{macrocode} \expandafter\def\expandafter\@gls@tmp\expandafter{\expandafter \ \@gobble #1}% \@onelevel@sanitize\@gls@tmp @@ -230,10 +1515,6 @@ mfirstuc.dtx \ifx\@gls@first\@empty \glsmakefirstuc{#1}% \else -% \end{macrocode} -%\changes{2.06}{2017-11-14}{check for inner control sequence} -%Does \cs{@gls@first} start with a control sequence? -% \begin{macrocode} \edef\@gls@tmp\expandafter{\noexpand\ \expandonce\@gls@first}% \@onelevel@sanitize\@gls@tmp \expandafter\@gls@checkcs\@gls@tmp\relax\relax @@ -246,9 +1527,6 @@ mfirstuc.dtx \else \expandafter\@glsmfirst\expandafter{\@gls@first}% \expandafter\@glsmrest\expandafter{\@gls@rest}% -% \end{macrocode} -%\changes{2.06}{2017-11-14}{added braces to \cs{glsmakefirstuc} argument} -% \begin{macrocode} \edef\@gls@domfirstuc{\noexpand\@gls@body {\noexpand\glsmakefirstuc{\the\@glsmfirst}}% \the\@glsmrest}% @@ -261,13 +1539,6 @@ mfirstuc.dtx \fi \fi } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@gls@split} -% Put first argument in \cs{@gls@first} and second argument in -% \cs{@gls@rest}: -%\changes{2.03}{2016-07-29}{added check for datatool-base UTF-8 support} -% \begin{macrocode} \ifdef\dtl@getfirst@UTFviii {% \def\@gls@split#1#2\@nil{% @@ -284,9 +1555,6 @@ mfirstuc.dtx }% }% {% -% \end{macrocode} -%\changes{2.04}{2016-07-31}{added missing false part} -% \begin{macrocode} \def\@gls@first{#1}\def\@gls@rest{#2}% }% } @@ -296,9 +1564,6 @@ mfirstuc.dtx \def\@gls@first{#1}\def\@gls@rest{#2}% } } -% \end{macrocode} -%\end{macro} -% \begin{macrocode} \def\@gls@checkcs#1 #2#3\relax{% \def\@gls@argi{#1}\def\@gls@argii{#2}% \ifx\@gls@argi\@gls@argii @@ -307,12 +1572,6 @@ mfirstuc.dtx \@glscsfalse \fi } -% \end{macrocode} -% Has \sty{datatool-base} v2.24 (or above) been loaded? If so and we -% have UTF-8 enabled, we can grab the first octet. -%\begin{macro}{\@mfu@applytofirst} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \ifdef\dtl@getfirst@UTFviii {% \def\@mfu@applytofirst#1#2\@mfu@end@applytofirst#3{% @@ -322,35 +1581,13 @@ mfirstuc.dtx \expandafter#3\expandafter{\dtl@first}\dtl@rest }% {% -% \end{macrocode} -%First argument needs to be grouped in case it consists of more than -%one token. -%\changes{2.05}{2017-11-10}{grouped first argument} -% \begin{macrocode} #3{#1}#2% }% }% }% {% -% \end{macrocode} -%First argument needs to be grouped in case it consists of more than -%one token. -%\changes{2.05}{2017-11-10}{grouped first argument} -% \begin{macrocode} \def\@mfu@applytofirst#1#2\@mfu@end@applytofirst#3{#3{#1}#2} } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUapplytofirst} -%\changes{2.03}{2016-07-29}{new} -%\begin{definition} -%\cs{MFUapplytofirst}\marg{cs}\marg{text} -%\end{definition} -% Apply \meta{cs} to first token of text, or first UTF-8 character -% if \sty{datatool-base} v2.24 above has been loaded with the utf8 -% support enabled. -% \begin{macrocode} \ifdef\dtl@getfirst@UTFviii {% \newcommand*{\MFUapplytofirst}[2]{% @@ -374,92 +1611,29 @@ mfirstuc.dtx {% \newcommand*{\MFUapplytofirst}[2]{#1#2} } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@gls@makefirstuc} -% Make first thing upper case: -% \begin{macrocode} \def\@gls@makefirstuc#1{\MFUapplytofirst\mfirstucMakeUppercase{#1}} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\mfirstucMakeUppercase} -% Allow user to replace \cs{MakeUppercase} with another case -% changing command. -% \begin{macrocode} \newcommand*{\mfirstucMakeUppercase}{\MakeUppercase} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\glsmakefirstuc} -%\changes{1.05}{2011/04/02}{new} -% Provide a user command to make it easier to customise. -% \begin{macrocode} \newcommand*{\glsmakefirstuc}[1]{\@gls@makefirstuc{#1}} -% \end{macrocode} -%\end{macro} -% -% Get the first grouped argument and store in \cs{@gls@body}. -% \begin{macrocode} \def\@gls@getbody#1#{\def\@gls@body{#1}\@gls@gobbletonil} -% \end{macrocode} -% Scoup up everything to \cs{@nil} and store in \cs{@gls@rest}: -% \begin{macrocode} \def\@gls@gobbletonil#1\@nil{\def\@gls@rest{#1}} -% \end{macrocode} -% -%\begin{macro}{\xmakefirstuc} -% Expand argument once before applying \cs{makefirstuc} -% (added v1.01). -% \begin{macrocode} \newcommand*{\xmakefirstuc}[1]{% \expandafter\makefirstuc\expandafter{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\emakefirstuc} -%\changes{1.10}{2015/05/03}{new} -% Fully expand argument before applying \cs{makefirstuc} -% \begin{macrocode} \newrobustcmd*{\emakefirstuc}[1]{% \protected@edef\@MFU@caparg{#1}% \expandafter\makefirstuc\expandafter{\@MFU@caparg}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\capitalisewords} -%\changes{1.06}{2012/05/21}{new} -% Capitalise each word in the argument. Words are considered to be -% separated by plain spaces (i.e.\ non-breakable spaces won't be -% considered a word break). -%\changes{1.08}{2013-11-04}{made robust} -%\changes{1.09}{2017-07-30}{added check for words that shouldn't be -%capitalised} -% \begin{macrocode} \newrobustcmd*{\capitalisewords}[1]{% \let\@mfu@checkword\@gobble \def\gls@add@space{}% \let\@mfu@domakefirstuc\@MFU@dofirst@capword \mfu@capitalisewords#1 \@nil\mfu@endcap } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@mfu@mid@capitalisewords} -%\changes{2.03}{2016-07-29}{new} -%\cs{@mfu@checkword} needs to be set before use. -% \begin{macrocode} \newcommand*{\@mfu@mid@capitalisewords}[1]{% \def\gls@add@space{}% \let\@mfu@domakefirstuc\@MFU@do@capword \mfu@capitalisewords#1 \@nil\mfu@endcap } -% \end{macrocode} -%\end{macro} -% -% \begin{macrocode} \def\mfu@capitalisewords#1 #2\mfu@endcap{% \def\mfu@cap@first{#1}% \def\mfu@cap@second{#2}% @@ -476,40 +1650,16 @@ mfirstuc.dtx \next@mfu@cap#2\mfu@endcap } \def\mfu@noop#1\mfu@endcap{} -% \end{macrocode} -% -%\begin{macro}{\ifMFUhyphen} -%\changes{2.03}{2016-07-29}{new} -%Split on hyphens. -% \begin{macrocode} \newif\ifMFUhyphen \MFUhyphenfalse -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFU@do@capword} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\@MFU@do@capword}[1]{% \let\@MFU@cappingword\MFUcapword \@MFUwordbreak#1\MFUwordbreak{}\@nil\@endMFUwordbreak } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFU@dofirst@capword} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\@MFU@dofirst@capword}[1]{% \let\@MFU@cappingword\MFUcapword \@MFUfirstwordbreak#1\MFUwordbreak{}\@nil\@endMFUfirstwordbreak } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUcapword} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \newcommand*{\MFUcapword}[1]{% \ifMFUhyphen \MFUhyphencapword{#1}% @@ -517,39 +1667,13 @@ mfirstuc.dtx \MFUcapwordfirstuc{#1}% \fi } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUcapwordfirstuc} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\MFUcapwordfirstuc}[1]{% \makefirstuc{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUwordbreak} -%\changes{2.07}{2021-10-15}{new} -%Markup a character (or command) that should be treated as a word -%break. -% \begin{macrocode} \newrobustcmd*{\MFUwordbreak}[1]{#1} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUhyphencapword} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\MFUhyphencapword}[1]{% \@MFUcapword#1-\@nil\@endMFUcapword } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFUcapword} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \def\@MFUcapword#1-#2\@endMFUcapword{% \MFUcapwordfirstuc{#1}% \def\@mfu@argii{#2}% @@ -558,12 +1682,6 @@ mfirstuc.dtx -\@MFUcapword#2\@endMFUcapword \fi } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFUwordbreak} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \def\@MFUwordbreak#1\MFUwordbreak#2#3\@endMFUwordbreak{% \def\@mfu@argiii{#3}% \ifx\@mfu@argiii\@nnil @@ -574,22 +1692,10 @@ mfirstuc.dtx #2\@MFUwordbreak#3\@endMFUwordbreak \fi } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFU@wordbreakcapword} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\@MFU@wordbreakcapword}[1]{% \mfu@checkword{#1}% \@mfu@domakefirstuc{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFUfirstwordbreak} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \def\@MFUfirstwordbreak#1\MFUwordbreak#2#3\@endMFUfirstwordbreak{% \def\@mfu@argiii{#3}% \ifx\@mfu@argiii\@nnil @@ -600,37 +1706,14 @@ mfirstuc.dtx #2\@MFUfirstwordbreak#3\@endMFUfirstwordbreak \fi } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@MFU@firstwordbreakcapword} -%\changes{2.07}{2021-10-15}{new} -% \begin{macrocode} \newcommand*{\@MFU@firstwordbreakcapword}[1]{% \@mfu@domakefirstuc{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\mfu@checkword} -% Check if word should be capitalised. -% This originally used \sty{etoolbox}'s \ics{ifinlist} command -% but this doesn't work if the word contains grouping. -%\changes{1.09}{2017-07-30}{new} -%\changes{2.02}{2015-12-17}{modified to use loop instead of \cs{ifinlist}} -% \begin{macrocode} \newcommand*\mfu@checkword[1]{% \def\mfu@checkword@arg{#1}% \let\@mfu@domakefirstuc\@MFU@do@capword \forlistloop\mfu@checkword@do\@mfu@nocaplist } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\mfu@checkword@do} -% Handler for loop used by \cs{mfu@checkword} -%\changes{2.02}{2015-12-17}{new} -% \begin{macrocode} \newcommand*{\mfu@checkword@do}[1]{% \def\mfu@checkword@argii{#1}% \ifdefequal\mfu@checkword@arg\mfu@checkword@argii @@ -639,9 +1722,6 @@ mfirstuc.dtx \listbreak }% {% -% \end{macrocode} -%Need to check if \cs{@mfu@terminator} has been tacked onto the end. -% \begin{macrocode} \def\mfu@checkword@argii{#1{\@mfu@terminator}}% \ifdefequal\mfu@checkword@arg\mfu@checkword@argii {% @@ -651,129 +1731,37 @@ mfirstuc.dtx {}% }% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@mfu@nocaplist} -% List of words that shouldn't be capitalised. -%\changes{1.09}{2017-07-30}{new} -% \begin{macrocode} -\newcommand*{\@mfu@nocaplist}{} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUnocap} -% Provide the user with a means to add a word to the list. -% (No expansion performed on the argument.) -%\changes{1.09}{2017-07-30}{new} -% \begin{macrocode} -\newcommand*{\MFUnocap}[1]{\listadd{\@mfu@nocaplist}{#1}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\gMFUnocap} -% Global version. -%\changes{1.09}{2017-07-30}{new} -% \begin{macrocode} -\newcommand*{\gMFUnocap}[1]{\listgadd{\@mfu@nocaplist}{#1}} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\MFUclear} -% Clear the list -%\changes{1.09}{2017-07-30}{new} -% \begin{macrocode} +\newcommand*{\@mfu@nocaplist}{} +\newcommand*{\MFUnocap}[1]{\listadd{\@mfu@nocaplist}{#1}} +\newcommand*{\gMFUnocap}[1]{\listgadd{\@mfu@nocaplist}{#1}} \newcommand*{\MFUclear}{\renewcommand*{\@mfu@nocaplist}{}} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\xcapitalisewords} -%\changes{1.06}{2012/05/21}{new} -% Short-cut command: -% \begin{macrocode} \newcommand*{\xcapitalisewords}[1]{% \expandafter\capitalisewords\expandafter{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\ecapitalisewords} -%\changes{1.10}{2015/05/03}{new} -% Fully expand argument before applying \cs{capitalisewords} -% \begin{macrocode} \newrobustcmd*{\ecapitalisewords}[1]{% \protected@edef\@MFU@caparg{#1}% \expandafter\capitalisewords\expandafter{\@MFU@caparg}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@mfu@nil} -% \begin{macrocode} \newcommand\@mfu@nil{\unskip} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@mfu@nnil} -% \begin{macrocode} \newcommand*\@mfu@nnil{\@mfu@nil} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\capitalisefmtwords} -%\changes{2.03}{2016-07-29}{new} -%Like \cs{capitalisewords} but assumes that the phrase contains -%formatting text-block commands. -% \begin{macrocode} \newcommand*{\capitalisefmtwords}{% \@ifstar\@s@capitalisefmtwords\@ns@capitalisefmtwords } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@s@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% Starred form. -% \begin{macrocode} \newcommand*{\@s@capitalisefmtwords}[1]{% \@@s@checkgrp@@capitalisefmtwords#1\@nil } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@checkgrp@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \newcommand*{\@@s@checkgrp@@capitalisefmtwords}{% \@ifnextchar\bgroup{\@@s@nocs@capitalisefmtwords}{\@@s@capitalisefmtwords}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@nocs@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -%Argument starts with a group. -% \begin{macrocode} \def\@@s@nocs@capitalisefmtwords#1\@nil{% \capitalisewords{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \newcommand*{\@@s@capitalisefmtwords}[1]{% \def\gls@argi{#1}% \ifx\gls@argi\@MFU@protect -% \end{macrocode} -%Skip \cs{protect} -% \begin{macrocode} \let\@mfu@capfmtwordsnext\@@s@capitalisefmtwords \else \ifx\gls@argi\@nnil -% \end{macrocode} -%Nothing to do. -% \begin{macrocode} \let\@mfu@capfmtwordsnext\relax \else \def\@gls@tmp{\ #1}% @@ -788,23 +1776,11 @@ mfirstuc.dtx \fi \@mfu@capfmtwordsnext } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@cs@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \newcommand*{\@@s@cs@capitalisefmtwords}[1]{% \@ifnextchar\bgroup {\@@s@cs@g@capitalisefmtwords#1}% {\@@s@cs@ng@capitalisefmtwords#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@cs@g@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \def\@@s@cs@g@capitalisefmtwords#1#2#3\@nil{% #1{\capitalisewords{#2}}% \ifblank{#3}% @@ -815,33 +1791,14 @@ mfirstuc.dtx \mfu@capitalisewords#3 \@nil\mfu@endcap }% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@s@cs@ng@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \def\@@s@cs@ng@capitalisefmtwords#1#2\@nil{% \capitalisewords{#1#2}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@ns@capitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% Unstarred form. -% \begin{macrocode} \newcommand*{\@ns@capitalisefmtwords}[1]{% \let\@mfu@checkword\@gobble \def\gls@add@space{}% \@capitalisefmtwords#1 \@mfu@nil{} \unskip } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@capitalisefmtwords} -%\changes{2.03}{2016-07-29}{new} -%Take care of group at the start of the word. -% \begin{macrocode} \newcommand*{\@capitalisefmtwords}{% \@ifnextchar\bgroup{\@capitalise@g@fmtwords}{\@capitalise@ng@fmtwords}% } @@ -870,25 +1827,14 @@ mfirstuc.dtx }% \@mfu@capfmtwordsnext }% -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@capitalise@fmtwords} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \def\@capitalise@fmtwords#1{% \@mfu@ifnil#1\relax\relax\@mfu@end@nil {% -% \end{macrocode} -%Do nothing. -% \begin{macrocode} \def\@mfu@capfmtwordsnext{#1}% }% {% \def\gls@argi{#1}% \ifx\gls@argi\@MFU@protect -% \end{macrocode} -%Skip \cs{protect} -% \begin{macrocode} \def\@mfu@capfmtwordsnext{\@capitalise@fmtwords}% \else \def\@gls@tmp{\ #1}% @@ -907,60 +1853,22 @@ mfirstuc.dtx }% \@mfu@capfmtwordsnext } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@capitalisefmtwords} -%\changes{2.03}{2016-07-29}{new} -%Check for a group following argument. -% \begin{macrocode} \def\@@capitalisefmtwords#1{% \@ifnextchar\bgroup{\@@capfmtsubphrase#1}{\@@capnofmtphrase#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@capnofmtphrase} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \def\@@capnofmtphrase{% \@ifnextchar\bgroup{\@@cap@g@nofmtphrase}{\@@cap@ng@nofmtphrase}% } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@@cap@ng@nofmtphrase} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \def\@@cap@ng@nofmtphrase#1\@mfu@nil{% \gls@add@space \@mfu@mid@capitalisewords{#1}% \def\gls@add@space{ }% } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@@cap@g@nofmtphrase} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \def\@@cap@g@nofmtphrase#1{% \@@cap@ng@nofmtphrase{{#1}}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@mfu@terminator} -%\changes{2.04}{2016-07-31}{new} -% \begin{macrocode} \newcommand*\@mfu@terminator{\hbox{}} -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@capfmtsubphrase} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \def\@@capfmtsubphrase#1#2#3{% -% \end{macrocode} -%Protect any trailing space at the end of the second argument. -% \begin{macrocode} #1{\@capitalisefmtwords#2{\@mfu@terminator} \@mfu@nil{} \unskip}% \def\gls@add@space{ }% \let\@mfu@checkword\mfu@checkword @@ -969,12 +1877,6 @@ mfirstuc.dtx {\def\@mfu@fmtsubphrasenext{#3}}% \@mfu@fmtsubphrasenext } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@@cap@nofmtphrase} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \def\@@cap@nofmtphrase#1 {% \@mfu@ifnil#1\relax\relax\@mfu@end@nil {% @@ -990,110 +1892,30 @@ mfirstuc.dtx }% \@mfu@capnofmtwordsnext } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\xcapitalisefmtwords} -%\changes{2.03}{2016-07-29}{new} -% Short-cut command: -% \begin{macrocode} \newcommand*{\xcapitalisefmtwords}{% \@ifstar\@s@xcapitalisefmtwords\@ns@xcapitalisefmtwords } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@s@xcapitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% Starred version -% \begin{macrocode} \newcommand*{\@s@xcapitalisefmtwords}[1]{% \expandafter\@s@capitalisefmtwords\expandafter{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@ns@xcapitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -% Unstarred version -% \begin{macrocode} \newcommand*{\@ns@xcapitalisefmtwords}[1]{% \expandafter\@ns@capitalisefmtwords\expandafter{#1}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\ecapitalisefmtwords} -%\changes{2.03}{2016-07-29}{new} -% \begin{macrocode} \newrobustcmd*{\ecapitalisefmtwords}{% \@ifstar\@s@ecapitalisefmtwords\@ns@ecapitalisefmtwords } -% \end{macrocode} -%\end{macro} -%\begin{macro}{\@s@ecapitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -%Starred version -% \begin{macrocode} \newcommand*{\@s@ecapitalisefmtwords}[1]{% \protected@edef\@MFU@caparg{#1}% \expandafter\@s@capitalisefmtwords\expandafter{\@MFU@caparg}% } -% \end{macrocode} -%\end{macro} -% -%\begin{macro}{\@ns@ecapitalisefmtwords} -%\changes{2.04}{2016-07-31}{new} -%Unstarred version -% \begin{macrocode} \newcommand*{\@ns@ecapitalisefmtwords}[1]{% \protected@edef\@MFU@caparg{#1}% \expandafter\@ns@capitalisefmtwords\expandafter{\@MFU@caparg}% } % \end{macrocode} -%\end{macro} -%\iffalse -% \begin{macrocode} -% -% \end{macrocode} -%\fi -%\iffalse -% \begin{macrocode} -%<*mfirstuc-english.sty> -% \end{macrocode} -%\fi -%\subsection{Mfirstuc-english Documented Code} -%\label{sec:code:mfirstuc-english} -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mfirstuc-english}[2021/10/15 v2.07 (NLCT)] -% \end{macrocode} -% Load \sty{mfirstuc} if not already loaded: -% \begin{macrocode} -\RequirePackage{mfirstuc} -% \end{macrocode} -% Add no-cap words. This list isn't complete. I~don't intend adding -% disputed words. Additional words can be added to the document in -% a~similar manner. -% \begin{macrocode} -\MFUnocap{a} -\MFUnocap{an} -\MFUnocap{and} -\MFUnocap{but} -\MFUnocap{for} -\MFUnocap{in} -\MFUnocap{of} -\MFUnocap{or} -\MFUnocap{no} -\MFUnocap{nor} -\MFUnocap{so} -\MFUnocap{some} -\MFUnocap{the} -\MFUnocap{with} -\MFUnocap{yet} -% \end{macrocode} %\iffalse % \begin{macrocode} -% +% % \end{macrocode} %\fi %\iffalse @@ -1122,7 +1944,32 @@ mfirstuc.dtx \tableofcontents -\section{First Letter Upper Case} +\section{Sentence Case (First Letter Upper Case)} +\label{sec:sentencecase} + +\verb|\MFUsentencecase{abc}.| +\MFUsentencecase{abc}. + +\verb|\MFUsentencecase{{\em abc}}.| +\MFUsentencecase{{\em abc}}. + +\verb|\MFUsentencecase{\emph{abc}}.| +\MFUsentencecase{\emph{abc}}. + +\verb|\MFUsentencecase{\ae bc}.| +\MFUsentencecase{\ae bc}. + +\verb|\MFUsentencecase{{\ae}bc}.| +\MFUsentencecase{{\ae}bc}. + +\verb|\newcommand{\abc}{abc}\MFUsentencecase{\abc}.| +\newcommand{\abc}{abc}% +\MFUsentencecase{\abc}. + +\verb|\MFUsentencecase{\ref{sec:sentencecase}bc}.| +\MFUsentencecase{\ref{sec:sentencecase}bc}. + +\verb|\makefirstuc| doesn't expand its argument and skips exclusions. \verb|\makefirstuc{abc}.| \makefirstuc{abc}. @@ -1133,31 +1980,29 @@ mfirstuc.dtx \verb|\makefirstuc{\emph{abc}}.| \makefirstuc{\emph{abc}}. -\verb|\makefirstuc{\ae bc}.| -\makefirstuc{\ae bc}. +\verb|\makefirstuc{\ref{sec:sentencecase}bc}.| +\makefirstuc{\ref{sec:sentencecase}bc}. -\verb|\makefirstuc{{\ae}bc}.| -\makefirstuc{{\ae}bc}. +\newcommand{\strong}[1]{\textcolor{red}{#1}} +\verb|\makefirstuc{\strong{abc}d}| +\makefirstuc{\strong{abc}d} -\verb|\newcommand{\abc}{abc}\xmakefirstuc{\abc}.| -\newcommand{\abc}{abc}% -\xmakefirstuc{\abc}. +\verb|\makefirstuc{\protect\strong{abc}d}| +\makefirstuc{\protect\strong{abc}d} + +Exclusions vs blockers: -% I know \textbf is robust already and doesn't need protecting. -% This is just to test what happens if the argument starts -% with \protect -\newcommand*{\mytext}{\protect\textbf{some text}} -Protected formatting: \xmakefirstuc{\mytext}. +\verb|\MFUsentencecase{\NoCaseChange{abc} xyz}| +\MFUsentencecase{\NoCaseChange{abc} xyz} -\renewcommand*{\mytext}{\ae\oe{some text}} -Sequential commands: \xmakefirstuc{\mytext}. +\verb|\makefirstuc{\NoCaseChange{abc} xyz}| +\makefirstuc{\NoCaseChange{abc} xyz} -\verb|\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?}| -\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?} +\begingroup +\verb|\MFUblocker{\NoCaseChange}\makefirstuc{\NoCaseChange{abc} xyz}| +\MFUblocker{\NoCaseChange}\makefirstuc{\NoCaseChange{abc} xyz} -\renewcommand{\mytext}{\MFUskippunc{?`}c\'omo est\'as?} -Fully expanded: -\emakefirstuc{\mytext} +\endgroup \section{Title Case (No Formatting Commands)} @@ -1412,20 +2257,28 @@ Compare with %\fi %\iffalse % \begin{macrocode} -%<*mfirstuc.perl> +%<*mfirstuc.l2h> % \end{macrocode} %\fi %\iffalse % \begin{macrocode} -# File : mfirstuc.perl +# File : mfirstuc.l2h # Author : Nicola L. C. Talbot -# Date : 2012-09-21 -# Version : 1.0 +# Version : 2.08 (2022-10-14) # Description : LaTeX2HTML (limited!) implementation of mfirstuc package # This is a LaTeX2HTML style implementing the mfirstuc package, and -# is distributed as part of the glossaries package. -# Copyright 2007 Nicola L.C. Talbot +# was distributed as part of the glossaries package, but is now +# distributed as part of the mfirstuc package. There's no guarantee +# that it still works with new versions of LaTeX2HTML. +# +# v2.08: +# - The version number has been updated +# - file extension changed from .perl to .l2h to more easily identify it as a +# LaTeX2HTML file rather than a standalone Perl script. +# - Added MFUsentencecase but it's identical to makefirstuc +# +# Copyright 2007-2022 Nicola L.C. Talbot # This work may be distributed and/or modified under the # conditions of the LaTeX Project Public License, either version 1.3 # of this license of (at your option) any later version. @@ -1453,6 +2306,17 @@ sub do_cmd_makefirstuc{ &translate_commands("\\glsmakefirstuc $text") . $_; } +sub do_cmd_MFUsentencecase{ + local($_) = @_; + + local($id,$text); + + $text = &missing_braces unless + s/$next_pair_pr_rx/$id=$1;$text=$2;''/eo; + + &translate_commands("\\glsmakefirstuc $text") . $_; +} + sub do_cmd_xmakefirstuc{ local($_) = @_; @@ -1550,7 +2414,7 @@ sub get_next_object{ %\fi %\iffalse % \begin{macrocode} -% +% % \end{macrocode} %\fi %\Finale diff --git a/macros/latex/contrib/mfirstuc/mfirstuc.ins b/macros/latex/contrib/mfirstuc/mfirstuc.ins index 02e695dcc1..c928c1ffe9 100644 --- a/macros/latex/contrib/mfirstuc/mfirstuc.ins +++ b/macros/latex/contrib/mfirstuc/mfirstuc.ins @@ -1,10 +1,10 @@ -% mfirstuc.ins generated using makedtx version 1.2 2021/10/15 17:46 +% mfirstuc.ins generated using makedtx version 1.2 2022/10/18 9:21 \input docstrip \preamble mfirstuc.dtx - Copyright 2021 Nicola Talbot + Copyright 2022 Nicola Talbot This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -18,7 +18,7 @@ The Current Maintainer of this work is Nicola Talbot. - This work consists of the files mfirstuc.dtx and mfirstuc.ins and the derived files mfirstuc.sty, mfirstuc-english.sty, sample-mfirstuc.tex, mfirstuc.perl. + This work consists of the files mfirstuc.dtx and mfirstuc.ins and the derived files mfirstuc.sty, mfirstuc-english.sty, mfirstuc-2021-10-15.sty, sample-mfirstuc.tex, mfirstuc.l2h. \endpreamble @@ -28,8 +28,10 @@ \usepostamble\defaultpostamble\from{mfirstuc.dtx}{mfirstuc.sty,package}} \file{mfirstuc-english.sty}{\usepreamble\defaultpreamble \usepostamble\defaultpostamble\from{mfirstuc.dtx}{mfirstuc-english.sty,package}} +\file{mfirstuc-2021-10-15.sty}{\usepreamble\defaultpreamble +\usepostamble\defaultpostamble\from{mfirstuc.dtx}{mfirstuc-2021-10-15.sty,package}} \file{sample-mfirstuc.tex}{\nopreamble\nopostamble\from{mfirstuc.dtx}{sample-mfirstuc.tex}} -\file{mfirstuc.perl}{\nopreamble\nopostamble\from{mfirstuc.dtx}{mfirstuc.perl}} +\file{mfirstuc.l2h}{\nopreamble\nopostamble\from{mfirstuc.dtx}{mfirstuc.l2h}} } \endbatchfile diff --git a/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf b/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf index 4433af0c32..ff8780d555 100644 Binary files a/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf and b/macros/latex/contrib/mfirstuc/sample-mfirstuc.pdf differ diff --git a/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex b/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex deleted file mode 100644 index 7438c770cc..0000000000 --- a/macros/latex/contrib/mfirstuc/sample-mfirstuc.tex +++ /dev/null @@ -1,292 +0,0 @@ - % This file is public domain - % If you want to use arara, you need the following directive: - % arara: pdflatex: { synctex: on } - % arara: pdflatex: { synctex: on } -\documentclass{article} - -\usepackage[a4paper]{geometry} -\usepackage{color} -\usepackage{mfirstuc-english}% also loads mfirstuc.sty -\usepackage[hidelinks]{hyperref} - -\title{Sample Document Illustrating the mfirstuc Package} -\author{Nicola Talbot} - -\begin{document} -\maketitle - -\tableofcontents - -\section{First Letter Upper Case} - -\verb|\makefirstuc{abc}.| -\makefirstuc{abc}. - -\verb|\makefirstuc{{\em abc}}.| -\makefirstuc{{\em abc}}. - -\verb|\makefirstuc{\emph{abc}}.| -\makefirstuc{\emph{abc}}. - -\verb|\makefirstuc{\ae bc}.| -\makefirstuc{\ae bc}. - -\verb|\makefirstuc{{\ae}bc}.| -\makefirstuc{{\ae}bc}. - -\verb|\newcommand{\abc}{abc}\xmakefirstuc{\abc}.| -\newcommand{\abc}{abc}% -\xmakefirstuc{\abc}. - -\newcommand*{\mytext}{\protect\textbf{some text}} -Protected formatting: \xmakefirstuc{\mytext}. - -\renewcommand*{\mytext}{\ae\oe{some text}} -Sequential commands: \xmakefirstuc{\mytext}. - -\verb|\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?}| -\makefirstuc{\MFUskippunc{?`}c\'omo est\'as?} - -\renewcommand{\mytext}{\MFUskippunc{?`}c\'omo est\'as?} -Fully expanded: -\emakefirstuc{\mytext} - -\section{Title Case (No Formatting Commands)} - -\bgroup - -\verb|\capitalisewords{the wind in the willows}| -\capitalisewords{the wind in the willows} - -\verb|\capitalisewords{a small book of rhyme.}| -\capitalisewords{a small book of rhyme.} - -\medskip - -\verb|\space| isn't considered a word boundary for -\verb|\capitalisewords| as shown below: - -\begin{verbatim} -\capitalisewords{a small\space book of rhyme.} -\end{verbatim} -\capitalisewords{a small\space book of rhyme.} - -\medskip -No expansion is performed on the argument of -\verb|\capitalisewords|: - -\verb|\newcommand{\mytitle}{a small book of rhyme.}| -\newcommand{\mytitle}{a small book of rhyme.} - -\verb|\capitalisewords{\mytitle}| -\capitalisewords{\mytitle} - -\verb|\xcapitalisewords{\mytitle}| -\xcapitalisewords{\mytitle} - -\egroup - -Formatting for the entire phrase must go outside -\verb|\capitalisewords| (unlike \verb|\makefirstuc|). Compare: - -\begin{verbatim} -\capitalisewords{\textbf{a small book of rhyme.}} -\end{verbatim} -\capitalisewords{\textbf{a small book of rhyme.}} - -\begin{verbatim} -\textbf{\capitalisewords{a small book of rhyme.}} -\end{verbatim} -\textbf{\capitalisewords{a small book of rhyme.}} - -\medskip - -Use \verb|\capitalisefmtwords| instead. The starred form -is limited to one text-block command at the start of the argument. - -\begin{verbatim} -\capitalisefmtwords*{\emph{a small book of rhyme}} -\end{verbatim} -\capitalisefmtwords*{\emph{a small book of rhyme}} - -Additional text-block commands can cause unexpected results. - -\begin{verbatim} -\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} -\end{verbatim} -\capitalisefmtwords*{\emph{a small} book \textbf{of rhyme}} - -\section{Title Case (Contains Text-Block Formatting Commands)} - -The unstarred form of \verb|\capitalisefmtwords| is still a bit -experimental and is only designed -for phrases that contain text-block commands with a single -argument, which should be a word or sub-phrase. - -\verb|\capitalisefmtwords{\textbf{a small book of rhyme}}.| -\capitalisefmtwords{\textbf{a small book of rhyme}}. - -\verb|\capitalisefmtwords{\textbf{a small book} of rhyme}.| -\capitalisefmtwords{\textbf{a small book} of rhyme}. - -\verb|\capitalisefmtwords{a \textbf{small book} of rhyme}.| -\capitalisefmtwords{a \textbf{small book} of rhyme}. - -\verb|\capitalisefmtwords{\textbf{a} small book of rhyme}.| -\capitalisefmtwords{\textbf{a} small book of rhyme}. - -\verb|\capitalisefmtwords{a small book \textbf{of rhyme}}.| -\capitalisefmtwords{a small book \textbf{of rhyme}}. - -\medskip - -Be careful of trailing spaces at the end a group. They can confuse -things. - -\verb|\capitalisefmtwords{\textbf{a small }book of rhyme}.| -\capitalisefmtwords{\textbf{a small }book of rhyme}. - -\verb|\capitalisefmtwords{\textbf{a small book }of rhyme}.| -\capitalisefmtwords{\textbf{a small book }of rhyme}. - -\verb|\capitalisefmtwords{\textbf{a small book of }rhyme}.| -\capitalisefmtwords{\textbf{a small book of }rhyme}. - -\medskip - -Use semantic commands for things like quotations: - -\begin{verbatim} -\newcommand*{\qt}[1]{``#1''} -\capitalisefmtwords{\qt{a small book of rhyme.}} -\end{verbatim} -\newcommand*{\qt}[1]{``#1''} -\capitalisefmtwords{\qt{a small book of rhyme.}} - -\smallskip - -(But make them robust if you intend using commands like -\verb|\ecapitalisefmtwords|.) -Similarly for other types of punctuation: -\begin{verbatim} -\newcommand*{\esq}[1]{'?#1?} -\capitalisefmtwords{\esq{D\'onde est\'a libro}} -\end{verbatim} -\newcommand*{\esq}[1]{?`#1?} -\capitalisefmtwords{\esq{D\'onde est\'a libro}} - -\medskip - -Anything more complicated than a simple one-argument text-block -command requires the starred version. - -\begin{verbatim} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisefmtwords*{\textbf{an \swap{un}{usually} small book of} rhyme}. -\end{verbatim} -\newcommand*{\swap}[2]{{#2}{#1}} -\capitalisefmtwords*{\textbf{an \swap{un}{usually} small book of} rhyme}. - -\medskip - -Nested text-block commands: - -\begin{verbatim} -\capitalisefmtwords{\textbf{a \emph{small book} of} rhyme}. -\end{verbatim} -\capitalisefmtwords{\textbf{a \emph{small book} of} rhyme}. - -\begin{verbatim} -\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}. -\end{verbatim} -\capitalisefmtwords{\textbf{a \emph{small book}} of rhyme}. - -\begin{verbatim} -\capitalisefmtwords{\textbf{\emph{a small} book of} rhyme}. -\end{verbatim} -\capitalisefmtwords{\textbf{\emph{a small} book of} rhyme}. - -\medskip - -An empty brace at the start of a word will suppress the -case-changing. - -\begin{verbatim} -\capitalisefmtwords{\textbf{a small {}book of} rhyme}. -\end{verbatim} -\capitalisefmtwords{\textbf{a small {}book of} rhyme}. - -\medskip - -Suppress case-changing for problematic commands by inserting -an empty group in front: - -\begin{verbatim} -\capitalisefmtwords{{}\textcolor{red}{a} small book of -{}\textcolor{red}{rhyme}}. -\end{verbatim} -\capitalisefmtwords{{}\textcolor{red}{a} small book of -{}\textcolor{red}{rhyme}}. - -\medskip - -If possible provide semantic command instead. - -\begin{verbatim} -\newcommand*{\alert}[1]{\textcolor{red}{#1}} -\capitalisefmtwords{\alert{a} small book of \alert{rhyme}}. -\end{verbatim} -\newcommand*{\alert}[1]{\textcolor{red}{#1}} -\capitalisefmtwords{\alert{a} small book of \alert{rhyme}}. - -\medskip - -No formatting commands in the following example: - -\verb|\capitalisefmtwords{a small book of rhyme}.| -\capitalisefmtwords{a small book of rhyme}. - -\medskip - -Avoid scoped declarations. The next example doesn't work. - -\begin{verbatim} -\capitalisefmtwords{{\bfseries a \emph{small book} of} rhyme.} -\end{verbatim} -\capitalisefmtwords{{\bfseries a \emph{small book} of} rhyme.} - -\medskip - -If a command isn't followed by a grouped argument, the -case-change is applied to the command (on the assumption -that it's a character command, such as \verb|\ae|). This can -have an odd effect if case-changing has no meaning for that command. -As illustrated next: - -\verb|\capitalisefmtwords{\relax a book of rhyme.}| -\capitalisefmtwords{\relax a book of rhyme.} - -\section{Compound Words} - -Use \verb|\MFUhyphentrue| to title case each part of -a compound word. - -Default: -\begin{verbatim} -\capitalisewords{a fast-paced book of rhyme}. -\capitalisefmtwords{a \textbf{fast-paced} book of rhyme}. -\end{verbatim} -\capitalisewords{a fast-paced book of rhyme}. -\capitalisefmtwords{a \textbf{fast-paced} book of rhyme}. - -Compare with -\begin{verbatim} -\MFUhyphentrue -\capitalisewords{a fast-paced book of rhyme}. -\capitalisefmtwords{a \textbf{fast-paced} book of rhyme}. -\end{verbatim} -\MFUhyphentrue -\capitalisewords{a fast-paced book of rhyme}. -\capitalisefmtwords{a \textbf{fast-paced} book of rhyme}. - -\end{document} diff --git a/support/chktex/ChkTeX.c b/support/chktex/ChkTeX.c index fd7812401a..bf4386b4a5 100644 --- a/support/chktex/ChkTeX.c +++ b/support/chktex/ChkTeX.c @@ -46,15 +46,13 @@ struct ErrMsg PrgMsgs[pmMaxFault + 1] = { PRGMSGS {(enum ErrNum)pmMaxFault, etErr, TRUE, 0, INTERNFAULT} }; -struct Stack CharStack = { - 0L -}, InputStack = - -{ -0L}, EnvStack = - -{ -0L}; +struct Stack CharStack = {0L}; +struct Stack InputStack = {0L}; +struct Stack EnvStack = {0L}; +struct Stack ConTeXtStack = {0L}; +struct Stack FileSuppStack = {0L}; +struct Stack UserFileSuppStack = {0L}; +struct Stack MathModeStack = {0L}; /************************************************************************/ @@ -71,8 +69,8 @@ unsigned long Brackets[NUMBRACKETS]; */ -NEWBUF(TmpBuffer, BUFSIZ); -NEWBUF(ReadBuffer, BUFSIZ); +NEWBUF(TmpBuffer, BUFFER_SIZE); +NEWBUF(ReadBuffer, BUFFER_SIZE); static const char *Banner = "ChkTeX v" PACKAGE_VERSION " - Copyright 1995-96 Jens T. Berger Thielemann.\n" @@ -144,8 +142,11 @@ static const char *HelpText = " -h --help : This text.\n" " -i --license : Show distribution information\n" " -l --localrc : Read local .chktexrc formatted file.\n" - " -d --debug : Debug information. Give it a number.\n" + " -d --debug : Debug information. A bit field with 5 bits.\n" + " Each bit shows a different type of information.\n" " -r --reset : Reset settings to default.\n" + " -S --set : Read it's argument as if from chktexrc.\n" + " e.g., -S TabSize=8 will override the TabSize.\n" "\n" "Muting warning messages:\n" "~~~~~~~~~~~~~~~~~~~~~~~~\n" @@ -153,7 +154,7 @@ static const char *HelpText = " -e --erroron : Makes msg # given an error and turns it on.\n" " -m --msgon : Makes msg # given a message and turns it on.\n" " -n --nowarn : Mutes msg # given.\n" - " -L --nolinesupp: Disables per-line suppressions.\n" + " -L --nolinesupp: Disables per-line and per-file suppressions.\n" "\n" "Output control flags:\n" "~~~~~~~~~~~~~~~~~~~~~\n" @@ -173,7 +174,7 @@ static const char *HelpText = " -x --wipeverb : Ignore contents of `\\verb' commands.\n" " -g --globalrc : Read global .chktexrc file.\n" " -I --inputfiles: Execute \\input statements.\n" - " -H --headererr : Show errors found in front of \\begin{document}\n" + " -H --headererr : Show errors found before \\begin{document}\n" "\n" "Miscellaneous switches:\n" "~~~~~~~~~~~~~~~~~~~~~~~\n" @@ -182,7 +183,17 @@ static const char *HelpText = "----------------------------------------------------------------------\n" "If no LaTeX files are specified on the command line, we will read from\n" "stdin. For explanation of warning/error messages, please consult the\n" - "main documentation ChkTeX.dvi, ChkTeX.ps or ChkTeX.pdf.\n"; + "main documentation ChkTeX.dvi, ChkTeX.ps or ChkTeX.pdf:\n" + " http://www.nongnu.org/chktex/ChkTeX.pdf\n" + "\n" + "Any of the above arguments can be made permanent by setting them in the\n" + "chktexrc file " +#if defined(__unix__) + "(~/.chktexrc).\n" +#else + "(see documentation for location).\n" +#endif + ; @@ -194,6 +205,8 @@ static const char *HelpText = enum Quote Quote; +enum CmdSpace CmdSpace; + char VerbNormal[] = "%k %n in %f line %l: %m\n" "%r%s%t\n" "%u\n"; #define DEF(type, name, value) type name = value @@ -321,7 +334,7 @@ static void ExpandTabs(char *From, char *To, long TSize, long MaxDiff) Diff = MaxDiff+1; if ( !HasExpandedTooLong ) { - PrintPrgErr(pmTabExpands, BUFSIZ); + PrintPrgErr(pmTabExpands, BUFFER_SIZE); } HasExpandedTooLong = 1; } @@ -335,6 +348,19 @@ static void ExpandTabs(char *From, char *To, long TSize, long MaxDiff) strcpy(To, From); } +void ReadRcFiles(void) +{ + unsigned long i; + while (SetupVars()) + { + InsertWord(ConfigFile, &ConfigFiles); + } + FORWL(i, ConfigFiles) + { + ReadRC(ConfigFiles.Stack.Data[i]); + } +} + int main(int argc, char **argv) { @@ -370,8 +396,7 @@ int main(int argc, char **argv) RESOURCE_INFO - while (SetupVars()) - ReadRC(ConfigFile); + ReadRcFiles(); if (CmdLine.Stack.Used) { @@ -432,6 +457,22 @@ int main(int argc, char **argv) Quote = quTrad; } } + if (CmdSpaceStyle) + { + if (!strcasecmp(CmdSpaceStyle, "IGNORE")) + CmdSpace = csIgnore; + else if (!strcasecmp(CmdSpaceStyle, "INTERWORD")) + CmdSpace = csInterWord; + else if (!strcasecmp(CmdSpaceStyle, "INTERSENTENCE")) + CmdSpace = csInterSentence; + else if (!strcasecmp(CmdSpaceStyle, "BOTH")) + CmdSpace = csBoth; + else + { + PrintPrgErr(pmCmdSpaceStyle, CmdSpaceStyle); + CmdSpace = csIgnore; + } + } if (DebugLevel) ShowIntStatus(); @@ -471,6 +512,7 @@ int main(int argc, char **argv) if (CurArg < argc) filename = argv[CurArg++]; + AddDirectoryFromRelativeFile(filename,&TeXInputs); if (!PushFileName(filename, &InputStack)) break; } @@ -481,7 +523,7 @@ int main(int argc, char **argv) while (!ferror(OutputFile) && StkTop(&InputStack) && !ferror(CurStkFile(&InputStack)) - && FGetsStk(ReadBuffer, BUFSIZ - 1, + && FGetsStk(ReadBuffer, BUFFER_SIZE - 1, &InputStack)) { @@ -489,7 +531,8 @@ int main(int argc, char **argv) strrep(ReadBuffer, '\n', ' '); strrep(ReadBuffer, '\r', ' '); - ExpandTabs(ReadBuffer, TmpBuffer, Tab, BUFSIZ - 1 - strlen(ReadBuffer) ); + ExpandTabs(ReadBuffer, TmpBuffer, Tab, + BUFFER_SIZE - 1 - strlen(ReadBuffer)); strcpy(ReadBuffer, TmpBuffer); strcat(ReadBuffer, " "); @@ -665,6 +708,7 @@ static void ShowIntStatus(void) if (DebugLevel & (FLG_DbgListInfo | FLG_DbgListCont)) { + ShowWL("ConfigFilesRead", &ConfigFiles); RESOURCE_INFO } @@ -797,6 +841,7 @@ static int ParseArgs(int argc, char **argv) {"pipeverb", optional_argument, 0L, 'V'}, {"debug", required_argument, 0L, 'd'}, {"reset", no_argument, 0L, 'r'}, + {"set", required_argument, 0L, 'S'}, {"quiet", no_argument, 0L, 'q'}, {"license", no_argument, 0L, 'i'}, {"splitchar", required_argument, 0L, 's'}, @@ -833,7 +878,7 @@ static int ParseArgs(int argc, char **argv) while (!ArgErr && ((c = getopt_long((int) argc, argv, - "b::d:e:f:g::hH::I::il:m:n:Lo:p:qrs:t::v::V::w:Wx::", + "b::d:e:f:g::hH::I::il:m:n:Lo:p:qrs:S:t::v::V::w:Wx::", long_options, &option_index)) != EOF)) { while (c) @@ -841,6 +886,10 @@ static int ParseArgs(int argc, char **argv) nextc = 0; switch (c) { + case 'S': + ReadRCFromCmdLine(optarg); + break; + case 's': if (!(Delimit = strdup(optarg))) { diff --git a/support/chktex/ChkTeX.h b/support/chktex/ChkTeX.h index 01275d38b0..8d1c4b4ed7 100644 --- a/support/chktex/ChkTeX.h +++ b/support/chktex/ChkTeX.h @@ -233,7 +233,7 @@ DEBUGBITS(Debug_BIT) MSG(pmNoRsrc, etWarn, TRUE, 0,\ "Could not find global resource file.")\ MSG(pmQuoteStyle, etWarn, TRUE, 0,\ - "Illegal quotestyle `%s'.")\ + "Illegal quotestyle `%s' using `Traditional'.")\ MSG(pmWrongWipeTemp, etWarn, TRUE, 0,\ "Wrong template for wiping arguments, \"%s\"")\ MSG(pmSpecifyTerm, etErr, TRUE, 0,\ @@ -261,7 +261,9 @@ DEBUGBITS(Debug_BIT) MSG(pmLongLines, etWarn, TRUE, 0,\ "ChkTeX does not handle lines over %d bytes correctly. Some errors and line numbers may be wrong in this file.") \ MSG(pmTabExpands, etWarn, TRUE, 0,\ - "ChkTeX could not fully expand tabs because the resulting line would be more than %d bytes. Some errors and line numbers may be wrong in this file.") + "ChkTeX could not fully expand tabs because the resulting line would be more than %d bytes. Some errors and line numbers may be wrong in this file.") \ +MSG(pmCmdSpaceStyle, etWarn, TRUE, 0,\ + "Illegal CmdSpaceStyle `%s' using `Ignore'.") #undef MSG #define MSG(num, type, inuse, ctxt, text) num, @@ -330,20 +332,19 @@ extern FILE *OutputFile, *InputFile; DEF(int, AtLetter, FALSE); /* Whether `@' is a letter or not. */ \ DEF(int, InHeader, TRUE); /* Whether we're in the header */ \ DEF(int, VerbMode, FALSE); /* Whether we're in complete ignore-mode */ \ - DEF(long, MathMode, 0); /* Whether we're in math mode or not */ \ DEF(const char *, VerbStr, ""); /* String we'll terminate verbmode upon */ \ DEF(unsigned long, ErrPrint, 0); /* # errors printed */ \ DEF(unsigned long, WarnPrint, 0); /* # warnings printed */ \ DEF(unsigned long, UserSupp, 0); /* # user suppressed warnings */ \ - DEF(unsigned long, LineSupp, 0); /* # warnings suppressed on a single line */ \ - DEF(uint64_t, FileSuppressions, 0); /* # warnings suppressed in a file */ \ - DEF(uint64_t, UserFileSuppressions, 0) /* # User warnings suppressed in a file */ + DEF(unsigned long, LineSupp, 0); /* # warnings suppressed on a single line */ #define DEF(type, name, value) extern type name OPTION_DEFAULTS; STATE_VARS; #undef DEF -extern struct Stack CharStack, InputStack, EnvStack; +extern struct Stack CharStack, InputStack, EnvStack, ConTeXtStack; +extern struct Stack FileSuppStack, UserFileSuppStack; +extern struct Stack MathModeStack; enum Quote { @@ -354,6 +355,15 @@ enum Quote extern enum Quote Quote; extern int StdInTTY, StdOutTTY, UsingStdIn; +enum CmdSpace +{ + csIgnore = 0, + csInterWord = 0x1, + csInterSentence = 0x2, + csBoth = 0x3, /* both bits set */ +}; +extern enum CmdSpace CmdSpace; + int main(int argc, char **argv); void PrintPrgErr(enum PrgErrNum, ...); void ErrPrintf(const char *fmt, ...); diff --git a/support/chktex/ChkTeX.pdf b/support/chktex/ChkTeX.pdf new file mode 100644 index 0000000000..43d9b55485 Binary files /dev/null and b/support/chktex/ChkTeX.pdf differ diff --git a/support/chktex/ChkTeX.tex.in b/support/chktex/ChkTeX.tex.in index 353322abfc..3fbba08f56 100644 --- a/support/chktex/ChkTeX.tex.in +++ b/support/chktex/ChkTeX.tex.in @@ -54,11 +54,35 @@ {\noindent\large% \begin{tabularx}{\linewidth}{lY}% \bf Warning \theerrornum: & \texttt{#1}% - \end{tabularx}}\stepcounter{errornum}\nopagebreak[4]} + \end{tabularx}}\stepcounter{errornum}\nopagebreak[4]} + +\newcommand{\fmtrc}[1]{% + {\noindent\large% + %% \begin{tabularx}{\linewidth}{lY}% + \phantomsection% + \bf\texttt{#1}% + \label{rc:#1} + %% \end{tabularx} + }\nopagebreak[4]} \newenvironment{errdesc}[1]{\noindent\fmted{#1}\begin{quote}}{\end{quote}% \pagebreak[3]} +\newcommand\Keyword[1]{\marginpar{\texttt{\hfill\hyperref[rc:#1]{#1}}}} +\newcommand{\chktexrcdefault}{\noindent The default value is} +\newenvironment{chktexrcvar}[2]{% + \smallskip\pagebreak[2]% + %% \Keyword{#1} + \fmtrc{#1} #2 Variable% + \begin{quote}}{% + \end{quote}\pagebreak[3]} +\newenvironment{chktexrcsimplevar}[1]{\begin{chktexrcvar}{#1}{Simple}}{\end{chktexrcvar}} +\newenvironment{chktexrclistvar}[1]{\begin{chktexrcvar}{#1}{List}}{\end{chktexrcvar}} +\newenvironment{chktexrclistvar*}[1]{\begin{chktexrcvar}{#1}{Lowercase-able List}}{\end{chktexrcvar}} + +%% \newenvironment{chktexrclistvar}[1]{\fmtrc{#1}List Variable}{} +%% \newenvironment{chktexrclistvar*}[1]{\fmtrc{#1}List Variable with Lowercase}{} + \newenvironment{html}{\comment}{\endcomment} \newenvironment{rawhtml}{\comment}{\endcomment} @@ -81,6 +105,15 @@ %!\newcommand{\slash}{/} %endlatex +% PDF table of contents +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + allcolors=blue, + pdfpagemode=UseOutlines +} +\usepackage{hypcap} + \title{\chktex\ v@PACKAGE_VERSION@} \author{Jens~T. Berger~Thielemann} @@ -370,7 +403,7 @@ A few words on installation on various platforms: \paragraph{Note:} You \emph{must} install the new \rsrc\ file; \chktex\ will fail to function otherwise! - After doing this, you may enhance \chktex' behaviour by + After doing this, you may enhance \chktex's behaviour by reading/editing the \rsrc\ file. %latex @@ -391,7 +424,7 @@ A UNIX-compliant template format follows: \end{tabularx} -\subsubsection{Options} +\subsubsection{Comamndline Options} These are the options \chktex\ currently accepts. Please note that single-lettered options requiring a numerical or no @@ -510,6 +543,7 @@ File:Line:Column:Warning number:Warning message longer time to parse, but much more informative in use. \end{description} + \phantomsection\label{clarg:format}% \item[\texttt{-f [-{}-format]}] Specifies the format of the output. This is done using a format similar to \Cmd{printf()}, where we support the specifiers listed below. @@ -739,6 +773,10 @@ The syntax is nearly the same, namely \verb+% chktex-file ##+ \end{center} + +\input{ChkTeXRC.tex} + + \subsubsection{Hints} I've tried to collect some advice that may be useful --- if you have a favourite hint, feel free to send it to me! @@ -863,10 +901,9 @@ Error messages set in {\it italic type\/} are turned off by default. Where margin paragraphs are listed in the text, they refer to the keyword in the \rsrc\ file which controls the discussed warning. -\newcommand\Keyword[1]{\marginpar{\texttt{\hfill\\ #1}}} - \smallskip\pagebreak[2] -\Keyword{Silent} +\phantomsection +\Keyword{Silent}\label{warn:silent} \begin{errdesc}{Command terminated with space.} You tried to terminate a command with a blank space. Usually, this is an error as these are ignored by \LaTeX. In most cases, you would @@ -917,7 +954,9 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errexam} \end{errdesc} -\Keyword{Italic\\ItalCmd\\NonItalic} +\Keyword{Italic} +\Keyword{ItalCmd} +\Keyword{NonItalic} \begin{errdesc}{Italic correction (`\BS/') found in non-italic buffer.} If you try to use the \verb@\/@ command when \chktex\ believes that @@ -932,7 +971,9 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errexam} \end{errdesc} -\Keyword{Italic\\ItalCmd\\NonItalic} +\Keyword{Italic} +\Keyword{ItalCmd} +\Keyword{NonItalic} \begin{errdesc}{Italic correction (`\BS/') found more than once.} If the buffer is italic, and you try to use the \verb@\/@ command more than once, you'll get this warning. @@ -946,7 +987,9 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errexam} \end{errdesc} -\Keyword{Italic\\ItalCmd\\NonItalic} +\Keyword{Italic} +\Keyword{ItalCmd} +\Keyword{NonItalic} \begin{errdesc}{No italic correction (`\BS/') found.} You get this error if \chktex\ believes that you are switching from italic to non-italic, and you've forgot to use the \verb@\/@ command @@ -977,7 +1020,10 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errexam} \end{errdesc} -\Keyword{HyphDash\\NumDash\\WordDash\\DashExcpt} +\Keyword{HyphDash} +\Keyword{NumDash} +\Keyword{WordDash} +\Keyword{DashExcpt} \begin{errdesc}{Wrong length of dash may have been used.} This warning suggests that a wrong number of dashes may have been used. It does this by classifying the dash according to the the @@ -1036,7 +1082,8 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errdesc} -\Keyword{CenterDots\\LowDots} +\Keyword{CenterDots} +\Keyword{LowDots} \begin{errdesc}{You should use `\%s' to achieve an ellipsis.} Simply typing three \Cmd{.} in a row will not give a perfect spacing between the dots. The \verb@\ldots@ is much more suitable for this. @@ -1057,33 +1104,42 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errexam} \end{errdesc} +\phantomsection +\label{warn:interword} \Keyword{Abbrev} +\Keyword{CmdSpaceStyle} \begin{errdesc}{Interword spacing (`\BS\ ') should perhaps be used.} One of the specified abbreviations were found. Unless you have previously said \verb@\frenchspacing@, you'll have incorrect - spacing, which one should avoid if possible. + spacing, which one should avoid if possible. The error will be suppressed + if you have used \verb@\frenchspacing@. You can also specify case-insensitive abbreviations in \texttt{[]}, though only the first letter is actually case-insensitive. \begin{errexam} - \verb@This is an example, i.e.@\underline{\tt\ }\verb@an demonstration.@ \\* - This is an example, i.e. an demonstration. \\* + \verb@This is an example, i.e.@\underline{\tt\ }\verb@a demonstration.@ \\* + This is an example, i.e. a demonstration. \\* \smallskip - \verb@This is an example, i.e.\ an demonstration.@ \\* - This is an example, i.e.\ an demonstration. \\* + \verb@This is an example, i.e.\ a demonstration.@ \\* + This is an example, i.e.\ a demonstration. \\* \end{errexam} \end{errdesc} +\phantomsection +\label{warn:intersentence} +\Keyword{CmdSpaceStyle} \begin{errdesc}{Intersentence spacing (`\BS{}@') should perhaps be used.} - \LaTeX' detection of whether a period ends a sentence or not, is + \LaTeX's detection of whether a period ends a sentence or not, is only based upon the character in front of the period. If it's uppercase, it assumes that it does not end a sentence. While this may be correct in many cases, it may be incorrect in others. \chktex\ thus outputs this warning in every such case. + The error will be suppressed if you have used \verb@\frenchspacing@. + \begin{errexam} \verb@I've seen an UFO!@\underline{\tt\ }\verb@Right over there!@ \\* I've seen an UFO! Right over there! \\* @@ -1119,7 +1175,7 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errdesc} \Keyword{MathEnvir} -\begin{errdesc}{Mathmode still on at end of LaTeX file.} +\begin{errdesc}{Mathmode still on at end of LaTeX file.} This error is triggered if you at some point have turned on mathmode, and \chktex\ couldn't see that you remembered to turn it off. @@ -1149,13 +1205,13 @@ keyword in the \rsrc\ file which controls the discussed warning. "'" (ASCII 180).} On some keyboards you might get the wrong quote. This quote looks, IMHO, \emph{ugly} compared to the standard quotes, it doesn't even come out as a quote! Just see in the - example. - + example. In fact, this doesn't even compile anymore, so the warning is + probably obsolete. \begin{errexam} \verb@``There@\underline{\tt '}\verb@s quotes and there@\underline{\tt '}\verb@s quotes@ \underline{\tt ''} \\* % '' - ``There´s quotes and there´s quotes´´ \\* % '' + % ``There´s quotes and there´s quotes´´ \\* % '' \smallskip \verb@``There's quotes and there's quotes''@ \\* ``There's quotes and there's quotes'' \\* @@ -1265,7 +1321,9 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errdesc} -\Keyword{Italic\\ItalCmd\\NonItalic} +\Keyword{Italic} +\Keyword{ItalCmd} +\Keyword{NonItalic} \begin{errdesc}{Don't use \BS/ in front of small punctuation.} Italic correction should generally \emph{not} be used in front of small punctuation characters like `.' and `,'; as it looks better @@ -1317,7 +1375,6 @@ keyword in the \rsrc\ file which controls the discussed warning. derivations of that, ignore all text on the same line as \verb@\end{verbatim}@. This will warn you about this. - \end{errdesc} \fmted{Use ` to begin quotation, not '.}\hfill\\ @@ -1434,7 +1491,7 @@ keyword in the \rsrc\ file which controls the discussed warning. \begin{errdesc}{You should put punctuation outside inner/inside display math mode.} As recommended in the \TeX{}book, you should try to put punctuation - outside inner math mode, as this is gets formatted better. + outside inner math mode, as it is formatted better. Similarily, you should let any final punctuation in display math mode end up within it. Look at the following example, which was @@ -1562,6 +1619,28 @@ keyword in the \rsrc\ file which controls the discussed warning. \end{errdesc*} +\fmted{`\%s' expected, found `\%s' (ConTeXt).} +\begin{errdesc}{Solo `\%s' found (ConTeXt).} + +% \begin{errdesc}{`\%s' expected, found `\%s' (ConTeXt).} + + Similar to warnings~9 and 10, these tracks environments, but Con\TeX{}t{} environments rather than \LaTeX. + They are tracked as separate messages to allow being turned on and off independently thereby allowing people to use macros that start with \verb+\start+. + +\end{errdesc} + +\begin{errdesc}{Expected math mode to be \%s here.} + + Similar to warning~16, this warns when \chktex{} got confused about math mode. + In theory, for a well formed \LaTeX{} document this should never happen, but the following (invalid) documents will cause the warning. + This is because the \verb+$+ will exit math mode (which \verb+\ensuremath+ entered), and then exiting \verb+\ensuremath+ finds that we are in text mode which shouldn't happen. + + \begin{errexam} + \verb+\ensuremath{ \frac{x}{3} $ y\times 7}+\\* + \end{errexam} + +\end{errdesc} + \section{Future plans} In a somewhat prioritized sequence, this is what I'd like to put into the diff --git a/support/chktex/FindErrs.c b/support/chktex/FindErrs.c index f1a470b823..00ca49f48e 100644 --- a/support/chktex/FindErrs.c +++ b/support/chktex/FindErrs.c @@ -54,6 +54,7 @@ int NumRegexes = 0; int FoundErr = EXIT_SUCCESS; int LastWasComment = FALSE; int SeenSpace = FALSE; +int FrenchSpacing = FALSE; /***************************** ERROR MESSAGES ***************************/ @@ -77,10 +78,10 @@ static int my_##func(int c) \ ((LaTeXMsgs[(enum ErrNum) c].InUse == iuOK) && !SUPPRESSED_ON_LINE(c)) #define PSERR2(pos,len,err,a,b) \ - PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a, b) + PrintError(err, CurStkName(&InputStack), RealBuf, pos, len, Line, a, b) #define PSERRA(pos,len,err,a) \ - PrintError(CurStkName(&InputStack), RealBuf, pos, len, Line, err, a) + PrintError(err, CurStkName(&InputStack), RealBuf, pos, len, Line, a) #define HEREA(len, err, a) PSERRA(BufPtr - Buf - 1, len, err, a) #define PSERR(pos,len,err) PSERRA(pos,len,err,"") @@ -123,6 +124,15 @@ static const char LTX_GenPunc[] = { ',', ';', 0 }; */ static const char LTX_SmallPunc[] = { '.', ',', 0 }; +/* + * A list of characters that could be considered to start a new + * sentence, or not. + * + * This allows "Mr. ``X'' " to warn about the same as "Mr. X". + * + */ +static const char LTX_BosPunc[] = {'`', '(', '[', 0}; + /* * String used to delimit a line suppression. This string must be * followed immediately by the number of the warning to be suppressed. @@ -157,9 +167,9 @@ static char *BufPtr; static int ItFlag = efNone; static int MathFlag = efNone; -NEWBUF(Buf, BUFSIZ); -NEWBUF(CmdBuffer, BUFSIZ); -NEWBUF(ArgBuffer, BUFSIZ); +NEWBUF(Buf, BUFFER_SIZE); +NEWBUF(CmdBuffer, BUFFER_SIZE); +NEWBUF(ArgBuffer, BUFFER_SIZE); static enum ErrNum PerformCommand(const char *Cmd, char *Arg); @@ -300,9 +310,8 @@ static char *PreProcess(void) char *TmpPtr; /* Reset any line suppressions */ - - LineSuppressions = FileSuppressions; - UserLineSuppressions = UserFileSuppressions; + LineSuppressions = *(uint64_t *)StkTop(&FileSuppStack); + UserLineSuppressions = *(uint64_t *)StkTop(&UserFileSuppStack); /* Kill comments. */ strcpy(Buf, RealBuf); @@ -349,15 +358,16 @@ static char *PreProcess(void) { PrintPrgErr(pmSuppTooHigh, error, MaxSuppressionBits); } + uint64_t errbit = ((uint64_t)1 << abs(error)); if (error > 0) { - FileSuppressions |= ((uint64_t)1 << error); - LineSuppressions |= ((uint64_t)1 << error); + *(uint64_t *)StkTop(&FileSuppStack) |= errbit; + LineSuppressions |= errbit; } else { - UserFileSuppressions |= ((uint64_t)1 << (-error)); - UserLineSuppressions |= ((uint64_t)1 << (-error)); + *(uint64_t *)StkTop(&UserFileSuppStack) |= errbit; + UserLineSuppressions |= errbit; } } TmpPtr = EscapePtr; @@ -395,12 +405,30 @@ static char *PreProcess(void) static void PerformEnv(char *Env, int Begin) { - static char VBStr[BUFSIZ] = ""; + static char VBStr[BUFFER_SIZE] = ""; if (HasWord(Env, &MathEnvir)) { - MathMode += Begin ? 1 : -1; - MathMode = max(MathMode, 0); + if (Begin) + PushMode(TRUE, &MathModeStack); + else + { + if (!CurStkMode(&MathModeStack)) + PSERRA(BufPtr - Buf - 4, 1, emMathModeConfusion, "on"); + StkPop(&MathModeStack); + } + } + + if (HasWord(Env, &TextEnvir)) + { + if (Begin) + PushMode(FALSE, &MathModeStack); + else + { + if (CurStkMode(&MathModeStack)) + PSERRA(BufPtr - Buf - 4, 1, emMathModeConfusion, "off"); + StkPop(&MathModeStack); + } } if (Begin && HasWord(Env, &VerbEnvir)) @@ -453,7 +481,7 @@ static enum DotLevel CheckDots(char *PrePtr, char *PstPtr) int TmpC; enum DotLevel Front = dtUnknown, Back = dtUnknown; - if (MathMode) + if (CurStkMode(&MathModeStack)) { PrePtr--; #define SKIP_EMPTIES(macro, ptr) macro(ptr, TmpC, \ @@ -625,11 +653,10 @@ static void PerformBigCmd(char *CmdPtr) SKIP_AHEAD(TmpPtr, TmpC, TmpC == '{'); /* } */ if ((*TmpPtr == 'i') || (*TmpPtr == 'j')) - PrintError(CurStkName(&InputStack), RealBuf, - CmdPtr - Buf, - (long) strlen(CmdBuffer), Line, - emAccent, CmdBuffer, *TmpPtr, - MathMode ? "math" : ""); + PrintError(emAccent, CurStkName(&InputStack), RealBuf, + CmdPtr - Buf, (long)strlen(CmdBuffer), Line, + CmdBuffer, *TmpPtr, + CurStkMode(&MathModeStack) ? "math" : ""); } else PSERR(CmdPtr - Buf, CmdLen, emNoArgFound); @@ -670,18 +697,18 @@ static void PerformBigCmd(char *CmdPtr) if ((ei = PopErr(&EnvStack))) { if (strcmp(ei->Data, ArgBuffer)) - PrintError(CurStkName(&InputStack), RealBuf, + PrintError(emExpectC, CurStkName(&InputStack), RealBuf, CmdPtr - Buf, (long) strlen(CmdBuffer), - Line, emExpectC, ei->Data, ArgBuffer); + Line, ei->Data, ArgBuffer); FreeErrInfo(ei); } else - PrintError(CurStkName(&InputStack), RealBuf, + PrintError(emSoloC, CurStkName(&InputStack), RealBuf, CmdPtr - Buf, (long) strlen(CmdBuffer), - Line, emSoloC, ArgBuffer); + Line, ArgBuffer); } PerformEnv(ArgBuffer, (int) CmdBuffer[1] == 'b'); @@ -697,28 +724,28 @@ static void PerformBigCmd(char *CmdPtr) { TmpPtr = CmdBuffer + 6; if (!(PushErr(TmpPtr, Line, CmdPtr - Buf + 6, - CmdLen - 6, RealBuf, &EnvStack))) + CmdLen - 6, RealBuf, &ConTeXtStack))) PrintPrgErr(pmNoStackMem); } else { TmpPtr = CmdBuffer + 5; - if ((ei = PopErr(&EnvStack))) + if ((ei = PopErr(&ConTeXtStack))) { if (strcmp(ei->Data, TmpPtr)) - PrintError(CurStkName(&InputStack), RealBuf, + PrintError(emExpectConTeXt, CurStkName(&InputStack), RealBuf, CmdPtr - Buf + 5, (long) strlen(TmpPtr), - Line, emExpectC, ei->Data, TmpPtr); + Line, ei->Data, TmpPtr); FreeErrInfo(ei); } else { - PrintError(CurStkName(&InputStack), RealBuf, + PrintError(emSoloC, CurStkName(&InputStack), RealBuf, CmdPtr - Buf, (long) strlen(CmdBuffer), - Line, emSoloC, TmpPtr); + Line, TmpPtr); } } /* TODO: Do I need to call PerformEnv? */ @@ -776,8 +803,13 @@ static void CheckAbbrevs(const char *Buffer) for (i = Abbrev.MaxLen; i >= 0; i--) { *--TmpPtr = *AbbPtr--; - if (!isalpha((unsigned char)*AbbPtr) && HasWord(TmpPtr, &Abbrev)) + if (!isalpha((unsigned char)*AbbPtr) && + /* Ignore spacing problems after commands if desired */ + (*AbbPtr != '\\' || (CmdSpace & csInterWord)) && + HasWord(TmpPtr, &Abbrev)) + { PSERR(Buffer - Buf + 1, 1, emInterWord); + } if (!*AbbPtr) break; } @@ -1026,7 +1058,7 @@ static void CheckDash(void) SKIP_AHEAD(TmpPtr, TmpC, TmpC == '-'); TmpCount = TmpPtr - BufPtr + 1; - if (MathMode) + if (CurStkMode(&MathModeStack)) { if (TmpCount > 1) HERE(TmpCount, emWrongDash); @@ -1088,6 +1120,73 @@ static void CheckDash(void) } } + /* Check DashExcpt looking for phrase with hyphenation that doesn't + * match what's in DashExcpt. This really only makes sense for + * HyphDash, but it should be cheap in the other cases. */ + if (!Errored) + { + TmpPtr = BufPtr-1; + + SKIP_BACK(TmpPtr, TmpC, (TmpC == '-')); + SKIP_BACK(TmpPtr, TmpC, isalpha(TmpC)); + /* If we found a dash going backwards, the we already checked + * this on the first dash */ + if (*TmpPtr != '-') + { + /* PrePtr now points to the beginning of the hyphenated phrase */ + PrePtr = ++TmpPtr; + + struct WordList *el = &DashExcpt; + + FORWL(i, *el) + { + char *e = el->Stack.Data[i]; + TmpPtr = PrePtr; + + /* Walk through the strings until we find a + * mismatch. */ + int FoundHyphenDiff = FALSE; + while (*e && *TmpPtr && *e == *TmpPtr) + { + /* Skip past characters that are the same */ + while (*e && *TmpPtr && *e == *TmpPtr) + { + ++e; + ++TmpPtr; + } + /* Skip past differences in hyphens */ + while (*e == '-' && *TmpPtr != '-') + { + ++e; + FoundHyphenDiff = TRUE; + } + while (*TmpPtr == '-' && *e != '-') + { + ++TmpPtr; + FoundHyphenDiff = TRUE; + } + } + + /* If there was no mismatch all the way to the end of e, + * and TmpPtr is not in the middle of a word, then they + * matched ignoring hyphens, so we have found the one + * DashExcpt element we care about and don't have to + * check any others. Moreover, if we found a difference + * in hyphenation, then we must warn because it matches + * something in DashExcpt but with improper hyphenation. + * It's possible they could put the same phrase in twice + * with different hyphenations, but that seems pretty + * pathological. */ + if (*e == '\0' && !isalpha((unsigned char)*TmpPtr)) + { + if (FoundHyphenDiff) + Errored = TRUE; + break; + } + } + } + } + if (Errored) HERE(TmpCount, emWrongDash); } @@ -1140,14 +1239,8 @@ static void HandleBracket(char Char) ItState = TRUE; /* Same for math mode */ - if (ei->Flags & efMath) - { - MathMode = 1; - } - else if (ei->Flags & efNoMath) - { - MathMode = 0; - } + if (ei->Flags & efMath || ei->Flags & efNoMath) + StkPop(&MathModeStack); FreeErrInfo(ei); } @@ -1160,8 +1253,8 @@ static void HandleBracket(char Char) BBuf[0] = Char; ABuf[1] = BBuf[1] = 0; if (Match) - PrintError(CurStkName(&InputStack), RealBuf, - BufPtr - Buf - 1, 1, Line, emExpectC, + PrintError(emExpectC, CurStkName(&InputStack), RealBuf, + BufPtr - Buf - 1, 1, Line, ABuf, BBuf); else HEREA(1, emSoloC, BBuf); @@ -1187,12 +1280,16 @@ static void HandleBracket(char Char) switch (MathFlag) { - default: + case efNone: + break; + case efMath: + case efNoMath: + PushMode((MathFlag == efMath), &MathModeStack); + /* Save for when we exit this delimiter */ ei->Flags |= MathFlag; + /* Reset flag just in case... */ MathFlag = efNone; break; - case efNone: - ei->Flags |= MathMode ? efMath : efNoMath; } } } @@ -1368,14 +1465,14 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) TmpPtr = PrePtr; SKIP_BACK(TmpPtr, TmpC, - (LATEX_SPACE(TmpC) || strchr("{}$", TmpC))); + (LATEX_SPACE(TmpC) || strchr("$", TmpC))); if (isdigit((unsigned char)*TmpPtr)) { TmpPtr = BufPtr; SKIP_AHEAD(TmpPtr, TmpC, - (LATEX_SPACE(TmpC) || strchr("{}$", TmpC))); + (LATEX_SPACE(TmpC) || strchr("$", TmpC))); if (isdigit((unsigned char)*TmpPtr)) HERE(1, emUseTimes); @@ -1433,7 +1530,8 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) case 'W': /* case 'X': */ case 'Y': case 'Z': - if (!isalpha((unsigned char)*PrePtr) && (*PrePtr != '\\') && MathMode) + if (!isalpha((unsigned char)*PrePtr) && (*PrePtr != '\\') && + CurStkMode(&MathModeStack)) { TmpPtr = BufPtr; CmdPtr = CmdBuffer; @@ -1474,7 +1572,7 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) HEREA(3, emEllipsis, cTmpPtr); } - /* Regexp: "([^A-Z@.])\.[.!?:]*\s+[a-z]" */ + /* Regexp: "([^A-Z@.])\.[.!?:]*\s[ \`([]*[a-z]" */ TmpPtr = BufPtr; SKIP_AHEAD(TmpPtr, TmpC, strchr(LTX_EosPunc, TmpC)); @@ -1483,9 +1581,17 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) if (!isupper((unsigned char)*PrePtr) && (*PrePtr != '@') && (*PrePtr != '.')) { - SKIP_AHEAD(TmpPtr, TmpC, LATEX_SPACE(TmpC)); + SKIP_AHEAD(TmpPtr, TmpC, + (LATEX_SPACE(TmpC) || TmpC == '\\' || + strchr(LTX_BosPunc, TmpC))); if (islower((unsigned char)*TmpPtr)) - PSERR(BufPtr - Buf, 1, emInterWord); + { + /* Ignore spacing problems after commands if desired */ + TmpPtr = PrePtr; + SKIP_BACK(TmpPtr, TmpC, istex(TmpC)); + if (*TmpPtr != '\\' || (CmdSpace & csInterWord)) + PSERR(BufPtr - Buf, 1, emInterWord); + } else CheckAbbrevs(&BufPtr[-1]); } @@ -1498,9 +1604,17 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) case ';': /* Regexp: "[A-Z][A-Z][.!?:;]\s+" */ - if (isspace((unsigned char)*BufPtr) && isupper((unsigned char)*PrePtr) && - (isupper((unsigned char)PrePtr[-1]) || (Char != '.'))) - HERE(1, emInterSent); + if (isspace((unsigned char)*BufPtr) && + isupper((unsigned char)*PrePtr) && + (isupper((unsigned char)PrePtr[-1]) || (Char != '.')) && + !FrenchSpacing) + { + /* Ignore spacing problems after commands if desired */ + TmpPtr = PrePtr; + SKIP_BACK(TmpPtr, TmpC, istex(TmpC)); + if (*TmpPtr != '\\' || (CmdSpace & csInterSentence)) + HERE(1, emInterSent); + } /* FALLTHRU */ case ',': @@ -1509,12 +1623,12 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) ((BufPtr[-1] == '.') || (BufPtr[-1] == ',')))) PSERR(PrePtr - Buf, 1, emSpacePunct); - if (MathMode && + if (CurStkMode(&MathModeStack) && (((*BufPtr == '$') && (BufPtr[1] != '$')) || (!strafter(BufPtr, "\\)")))) HEREA(1, emPunctMath, "outside inner"); - if (!MathMode && + if (!CurStkMode(&MathModeStack) && (((*PrePtr == '$') && (PrePtr[-1] == '$')) || (!strinfront(PrePtr, "\\]")))) HEREA(1, emPunctMath, "inside display"); @@ -1524,9 +1638,8 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) case '`': if ((Char == *BufPtr) && (Char == BufPtr[1])) { - PrintError(CurStkName(&InputStack), RealBuf, + PrintError(emThreeQuotes, CurStkName(&InputStack), RealBuf, BufPtr - Buf - 1, 3, Line, - emThreeQuotes, Char, Char, Char, Char, Char, Char); } @@ -1557,7 +1670,7 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) HERE(TmpPtr - BufPtr + 1, emBeginQ); /* Now check quote style */ -#define ISPUNCT(ptr) (strchr(LTX_GenPunc, *ptr) && (ptr[-1] != '\\')) +#define ISPUNCT(ptr) ((strchr(LTX_EosPunc, *ptr) || strchr(LTX_GenPunc, *ptr)) && (ptr[-1] != '\\')) /* We ignore all single words/abbreviations in quotes */ @@ -1662,9 +1775,8 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) 1, emFalsePage); } - if (LATEX_SPACE(*BufPtr) && !MathMode && - !CheckSilentRegex() && - (strlen(CmdBuffer) != 2)) + if (LATEX_SPACE(*BufPtr) && !CurStkMode(&MathModeStack) && + !CheckSilentRegex() && (strlen(CmdBuffer) != 2)) { PSERR(BufPtr - Buf, 1, emSpaceTerm); } @@ -1696,7 +1808,7 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) break; case ')': - if (isspace((unsigned char)*PrePtr)) + if (SeenSpace) PSERRA(BufPtr - Buf - 1, 1, emNoSpaceParen, "in front of"); if (isalpha((unsigned char)*BufPtr)) @@ -1726,7 +1838,14 @@ int FindErr(const char *_RealBuf, const unsigned long _Line) SKIP_AHEAD(TmpPtr, TmpC, (TmpC != '$' && TmpC != '\0')); PSERR(BufPtr - Buf - 1, TmpPtr-BufPtr+2, emInlineMath); } - MathMode ^= TRUE; + if (CurStkMode(&MathModeStack)) + { + StkPop(&MathModeStack); + } + else + { + PushMode(TRUE, &MathModeStack); + } } break; @@ -1782,29 +1901,35 @@ void PrintStatus(unsigned long Lines) while ((ei = PopErr(&CharStack))) { - PrintError(ei->File, ei->LineBuf, ei->Column, - ei->ErrLen, ei->Line, emNoMatchC, (char *) ei->Data); + PrintError(emNoMatchC, ei->File, ei->LineBuf, ei->Column, + ei->ErrLen, ei->Line, (char *) ei->Data); FreeErrInfo(ei); } while ((ei = PopErr(&EnvStack))) { - PrintError(ei->File, ei->LineBuf, ei->Column, - ei->ErrLen, ei->Line, emNoMatchC, (char *) ei->Data); + PrintError(emNoMatchC, ei->File, ei->LineBuf, ei->Column, + ei->ErrLen, ei->Line, (char *) ei->Data); + FreeErrInfo(ei); + } + + while ((ei = PopErr(&ConTeXtStack))) + { + PrintError(emNoMatchConTeXt, ei->File, ei->LineBuf, ei->Column, + ei->ErrLen, ei->Line, (char *) ei->Data); FreeErrInfo(ei); } - if (MathMode) + if (CurStkMode(&MathModeStack)) { - PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines, emMathStillOn); + PrintError(emMathStillOn, CurStkName(&InputStack), "", 0L, 0L, Lines); } for (Cnt = 0L; Cnt < (NUMBRACKETS >> 1); Cnt++) { if (Brackets[Cnt << 1] != Brackets[(Cnt << 1) + 1]) { - PrintError(CurStkName(&InputStack), "", 0L, 0L, Lines, - emNoMatchCC, + PrintError(emNoMatchCC, CurStkName(&InputStack), "", 0L, 0L, Lines, BrOrder[Cnt << 1], BrOrder[(Cnt << 1) + 1]); } } @@ -1818,7 +1943,14 @@ void PrintStatus(unsigned long Lines) /* Print how to suppress warnings. */ if ( ErrPrint + WarnPrint > 0 ) { - fprintf(stderr, "See the manual for how to suppress some or all of these warnings/errors.\n" ); + fprintf( + stderr, + "See the manual for how to suppress some or all of these warnings/errors.\n" + "The manual is available " +#ifdef TEX_LIVE + "by running `texdoc chktex` or " +#endif + "at https://www.nongnu.org/chktex/ChkTeX.pdf\n"); } } } @@ -1847,12 +1979,11 @@ void PrintStatus(unsigned long Lines) void -PrintError(const char *File, const char *String, - const long Position, const long Len, - const long LineNo, const enum ErrNum Error, ...) +PrintError(const enum ErrNum Error, const char *File, const char *String, + const long Position, const long Len, const long LineNo, ...) { static /* Just to reduce stack usage... */ - char PrintBuffer[BUFSIZ]; + char PrintBuffer[BUFFER_SIZE]; va_list MsgArgs; char *LastNorm = OutputFormat; @@ -1872,7 +2003,6 @@ PrintError(const char *File, const char *String, } else { - FoundErr = EXIT_FAILURE; Context = LaTeXMsgs[Error].Context; if (!HeadErrOut) @@ -1880,18 +2010,22 @@ PrintError(const char *File, const char *String, #define RGTCTXT(Ctxt, Var) if((Context & Ctxt) && !(Var)) break; - RGTCTXT(ctInMath, MathMode); - RGTCTXT(ctOutMath, !MathMode); + RGTCTXT(ctInMath, CurStkMode(&MathModeStack)); + RGTCTXT(ctOutMath, !CurStkMode(&MathModeStack)); RGTCTXT(ctInHead, InHeader); RGTCTXT(ctOutHead, !InHeader); + /* Count how warnings or errors we've found, and + * update the return code with the worst. */ switch (LaTeXMsgs[Error].Type) { case etWarn: WarnPrint++; + FoundErr = max(FoundErr, EXIT_WARNINGS); break; case etErr: ErrPrint++; + FoundErr = max(FoundErr, EXIT_ERRORS); break; case etMsg: break; @@ -1946,7 +2080,7 @@ PrintError(const char *File, const char *String, fprintf(OutputFile, "%ld", LineNo); break; case 'm': - va_start(MsgArgs, Error); + va_start(MsgArgs, LineNo); vfprintf(OutputFile, LaTeXMsgs[Error].Message, MsgArgs); va_end(MsgArgs); @@ -2008,6 +2142,10 @@ static enum ErrNum PerformCommand(const char *Cmd, char *Arg) AtLetter = TRUE; else if (!strcmp(Cmd, "\\makeatother")) AtLetter = FALSE; + else if (!strcmp(Cmd, "\\frenchspacing")) + FrenchSpacing = TRUE; + else if (!strcmp(Cmd, "\\nonfrenchspacing")) + FrenchSpacing = FALSE; else if (InputFiles && !(strcmp(Cmd, "\\input") && strcmp(Cmd, "\\include"))) { SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC)); @@ -2029,8 +2167,8 @@ static enum ErrNum PerformCommand(const char *Cmd, char *Arg) SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC)); if (*Arg == '{') { - MathFlag = MathMode ? efMath : efNoMath; - MathMode = 1; + /* We will actually turn on math mode when we enter the {} */ + MathFlag = efMath; } } else if (HasWord(Cmd, &TextCmd)) @@ -2038,8 +2176,8 @@ static enum ErrNum PerformCommand(const char *Cmd, char *Arg) SKIP_AHEAD(Arg, TmpC, LATEX_SPACE(TmpC)); if (*Arg == '{') { - MathFlag = MathMode ? efMath : efNoMath; - MathMode = 0; + /* We will actually turn on text mode when we enter the {} */ + MathFlag = efNoMath; } } else if (*Cmd == '\\') @@ -2049,11 +2187,14 @@ static enum ErrNum PerformCommand(const char *Cmd, char *Arg) { case '(': case '[': - MathMode = TRUE; + PushMode(TRUE, &MathModeStack); break; case ']': case ')': - MathMode = FALSE; + if (!CurStkMode(&MathModeStack)) + PSERRA(BufPtr - Buf - 2, 1, emMathModeConfusion, "on"); + + StkPop(&MathModeStack); break; case '/': switch (ItState) diff --git a/support/chktex/FindErrs.h b/support/chktex/FindErrs.h index df38559ba3..8190da2168 100644 --- a/support/chktex/FindErrs.h +++ b/support/chktex/FindErrs.h @@ -128,7 +128,13 @@ MSG(emDisplayMath, etWarn, iuOK, ctOutMath,\ "Use \\[ ... \\] instead of $$ ... $$.")\ MSG(emInlineMath, etWarn, iuNotSys, ctOutMath,\ - "Use \\( ... \\) instead of $ ... $.") + "Use \\( ... \\) instead of $ ... $.")\ + MSG(emExpectConTeXt, etWarn, iuOK, ctNone,\ + "`%s' expected, found `%s' (ConTeXt).")\ + MSG(emNoMatchConTeXt, etWarn, iuOK, ctNone,\ + "No match found for `%s' (ConTeXt).") \ + MSG(emMathModeConfusion, etWarn, iuOK, ctNone,\ + "Expected math mode to be %s here.") #undef MSG #define MSG(num, type, inuse, ctxt, text) num, @@ -193,8 +199,8 @@ extern char *OutputFormat; int CheckSilentRegex(void); int FindErr(const char *, const unsigned long); -void PrintError(const char *, const char *, const long, const long, - const long, const enum ErrNum, ...); +void PrintError(const enum ErrNum, const char *, const char *, const long, + const long, const long, ...); void PrintStatus(unsigned long Lines); #endif /* FINDERRS */ diff --git a/support/chktex/MakeChkTeXRC.pl b/support/chktex/MakeChkTeXRC.pl new file mode 100755 index 0000000000..4e7e9208ba --- /dev/null +++ b/support/chktex/MakeChkTeXRC.pl @@ -0,0 +1,71 @@ +# Used to convert chktexrc.in (which see) into chktexrc and ChkTeXRC.tex + +use strict; +use warnings; + +my $chktexrc_output; +if ( $ARGV[0] eq '--chktexrc' ) { + $chktexrc_output = 1; +} elsif ( $ARGV[0] eq '--latex' ) { + $chktexrc_output = 0; +} else { + exit 1; +} + + +# Filter the lines of the file +open(my $fh, '<:encoding(UTF-8)', $ARGV[1]) + or die "Could not open file '$ARGV[1]' $!"; + +while ( <$fh> ) { + if (/^#### END$/) { + exit 0; + } + + if ($chktexrc_output) { + # chktexrc output, so discard all lines over 2 + next if /^#{3,}/; + + s/\@verb\@/`/g; + s/\@endverb\@/'/g; + s/\@emph\@/*/g; + s/\@endemph\@/*/g; + s/\@ref\@/ /g; + s/\@endref\@//g; + + s/\@TeX@/TeX/g; + s/\@LaTeX@/LaTeX/g; + s/\@ChkTeX@/ChkTeX/g; + s/\@\\{2}\@//g; # \\ in LaTeX + s/\\\@ */ /g; # \@ in LaTeX + s/\@bf //g; + s/\@\&\@//g; + print; + + } else { + + # LaTeX output, so discard lines except with 1,3 + next if /^#{4,}/; + next if /^#{2} /; + # next unless /^#/; + s/^#+[ ]*//; + + s/\@emph\@/\\emph{/g; + s/\@endemph\@/}/g; + s/\@ref\@(.*)\@endref\@/~\\hyperref[rc:$1]{$1}/g; + + + s/\@TeX@/\\TeX{}/g; + s/\@LaTeX@/\\LaTeX{}/g; + s/\@ChkTeX@/\\chktex{}/g; + s/\@verb\@/\\verb@/g; + s/\@endverb\@/@/g; + s/\@\\{2}\@/\\\\/g; + s/\@bf/\\bf/g; + s/\@\&\@/&/g; + + print; + } +} +# TODO: +# \ChkTeX diff --git a/support/chktex/Makefile.in b/support/chktex/Makefile.in index 8980880ea3..4c8222e4da 100644 --- a/support/chktex/Makefile.in +++ b/support/chktex/Makefile.in @@ -47,6 +47,7 @@ LIBS=@LIBS@ LDFLAGS=@LDFLAGS@ LN_S=@LN_S@ LATEX=@LATEX@ +PDFLATEX=@PDFLATEX@ DVIPS=@DVIPS@ PS2PDF=ps2pdf PERL5=@PERL5@ @@ -64,7 +65,7 @@ VPATH=$(srcdir) ##################################################################### -EXTRA_DIST=configure.in Makefile.in stamp-h.in config.h.in rmeheader.in \ +EXTRA_DIST=configure.ac Makefile.in stamp-h.in config.h.in rmeheader.in \ MakeHTML.pl ChkTeX.tex.in aclocal.m4 NEWS \ chkweb deweb.in COPYING chktex.1 chkweb.1 deweb.1 \ input.tex Test.tex Test.pcre.out Test.posix-ere.out Test.nore.out configure \ @@ -72,7 +73,7 @@ EXTRA_DIST=configure.in Makefile.in stamp-h.in config.h.in rmeheader.in \ $(wildcard m4/*.m4) # created by configure -CONFIG_DIST=ChkTeX.tex +CONFIG_DIST=ChkTeX.tex ChkTeXRC.tex chktexrc # created at make time BUILT_DIST=chktex.doc chkweb.doc deweb.doc README ChkTeX.dvi @@ -85,7 +86,7 @@ SOURCEFILES=$(CSOURCES) $(wildcard $(CSOURCES:.c=.h)) types.h DISTFILES=$(EXTRA_DIST) $(SOURCEFILES) -all: chktex +all: chktex chktexrc DISTDIR:=chktex-@PACKAGE_VERSION@ dist: $(DISTDIR).tar.gz @@ -124,7 +125,7 @@ endif OBJS= ChkTeX.o FindErrs.o OpSys.o Resource.o Utility.o -MAKETEST= (builddir=`pwd` ; cd $(srcdir) ; $${builddir}/chktex -mall -r -g0 -lchktexrc -v5 Test.tex || :) +MAKETEST= (builddir=`pwd` ; cd $(srcdir) ; $${builddir}/chktex -mall -r -g0 -lchktexrc -v5 -q Test.tex || :) # We can't grep the output of chtex because it might not be built yet TestOutFile := $(shell sed -n 's/.*HAVE_\(.*RE\) 1.*/\1/p' config.h | tr "A-Z_" "a-z-") @@ -133,14 +134,14 @@ TestOutFile := Test.nore.out else TestOutFile := Test.$(TestOutFile).out endif -$(srcdir)/$(TestOutFile): $(srcdir)/Test.tex +$(srcdir)/$(TestOutFile): $(srcdir)/Test.tex $(srcdir)/input/file -rm -f $(srcdir)/$(TestOutFile) @echo "" @echo "***Warning: creating $(TestOutFile)***" @echo "" $(MAKETEST) 1> $(srcdir)/$(TestOutFile) -check: chktex $(srcdir)/$(TestOutFile) +check: chktex $(srcdir)/$(TestOutFile) chktexrc @echo ">>> Testing that checking algorithms work correctly..." @-rm -f chktest $(MAKETEST) 1> chktest @@ -154,6 +155,7 @@ check: chktex $(srcdir)/$(TestOutFile) echo "results were *supposed* to be..."; \ diff -u $(srcdir)/$(TestOutFile) chktest; \ fi + $(srcdir)/tests/run-tests.sh `pwd` "$(srcdir)" chktex: $(OBJS) @@ -233,12 +235,12 @@ endif ###################### AUTOCONF REMAKING ################################ -$(srcdir)/configure: configure.in aclocal.m4 +$(srcdir)/configure: configure.ac aclocal.m4 cd $(srcdir) && autoconf #autoheader might not change config.h.in, so touch a stamp file. $(srcdir)/config.h.in: stamp-h.in -$(srcdir)/stamp-h.in: configure.in aclocal.m4 +$(srcdir)/stamp-h.in: configure.ac aclocal.m4 cd $(srcdir) && autoheader echo timestamp > $(srcdir)/stamp-h.in @@ -260,7 +262,14 @@ config.status: configure %.doc: %.1 $(GROFF) $< > $@ -ChkTeX.dvi: ChkTeX.tex +ChkTeXRC.tex: chktexrc.in MakeChkTeXRC.pl + $(PERL5) $(srcdir)/MakeChkTeXRC.pl --latex $(srcdir)/chktexrc.in > ChkTeXRC.tex + +chktexrc: chktexrc.in MakeChkTeXRC.pl + $(PERL5) $(srcdir)/MakeChkTeXRC.pl --chktexrc $(srcdir)/chktexrc.in > chktexrc + + +ChkTeX.dvi: ChkTeX.tex ChkTeXRC.tex ifdef LATEX $(LATEX) ChkTeX.tex else @@ -271,8 +280,13 @@ endif ChkTeX.ps: ChkTeX.dvi $(DVIPS) -o ChkTeX.ps ChkTeX.dvi +ifdef PDFLATEX +ChkTeX.pdf: ChkTeX.tex ChkTeXRC.tex + $(PDFLATEX) -interaction=nonstopmode ChkTeX.tex +else ChkTeX.pdf: ChkTeX.ps $(PS2PDF) $< $@ +endif cover: -./chktex -h diff --git a/support/chktex/NEWS b/support/chktex/NEWS index 14c389b6b8..5605c50b2d 100644 --- a/support/chktex/NEWS +++ b/support/chktex/NEWS @@ -1,6 +1,48 @@ Development of ChkTeX is now in a maintainance mode. All versions 1.6.x are essentially bug fixes. Version 1.7 added some new features. +1.7.8 (2022-10-17), released by Ivan Andrus + + * Fix some packaging issues for CTAN + +1.7.7 (2022-10-17), released by Ivan Andrus + + * Fix false positives + * Fix overzealous warning of x between numbers #60184 + * Handle nested mathmode e.g. \ensuremath #60197 + * Add many citation commands from biblatex #56608 + * Add support for breqn package #62631 + * WipeArg on \graphicspath #47593 + * WipeArg on LuaTeX macros which contain lua code #53146 + * Add \itshape to Silent section https://tex.stackexchange.com/questions/627808/why-does-chktex-complain-when-there-is-a-space-after-itshape-but-not-when-bfse + * Make QuoteStyle warnings work with end of sentence punctuation #53494 + * When checking for inter-word spacing, ignore certain punctuation #54751, #53347 + * Allow \frenchspacing to turn off warning 13 (intersentence spacing) + * Don't warn about space before a parenthesis at the beginning of the line if the previous line ended with a comment (and no space) #109479 + * Make exit status 2 or 3 (not 1) when warnings or errors are found. Some callers expected a return value of 1 to mean an internal error. #53129 + + * Fix many bugs + * Make ChkTeX process longer lines, especially on Windows. This doesn't fix the problem entirely, but it should amerliorate it to a large extent. + * Make file suppressions only apply to the file they are in. This allows putting all the "badness" into one file. #57809 + * Add check to make sure input is a regular file and not a directory #56520 + * Add support for relative paths in sub directories #53494 + * Manage ConTeXt environments separately from LaTeX environments #51179 + * Change argument order to avoid undefined behavior in va_start() + + * New warnings and features + * Add regex for unescaped optional arguments inside optional arguments #56657 + * Support RC settings on the command line #56486 + * Warn about phrases that match DashExcpt _except_ for the hyphens #58886 + * Add CmdSpaceStyle option to Ignore spacing problems after commands #60809, #60380 + * Add support for finding chktexrc files in XDG locations #61405 + * Add new warning when ChkTeX gets confused about mathmode + + * Improved documentation + * Make chktexrc somewhat literate and creating ChkTeXRC.tex as well. + * Make "keywords" link to the appropriate chktexrc variable documentation + * Add note about chktexrc and link to documentation in the help message #50004 #61179 + * Indicate that debug is a bit field instead of a level + 1.7.6 (2016-09-09), released by Ivan Andrus * Properly copy and free strings. This caused incorrect file diff --git a/support/chktex/OpSys.c b/support/chktex/OpSys.c index 7d055b7228..67e2bea4a4 100644 --- a/support/chktex/OpSys.c +++ b/support/chktex/OpSys.c @@ -115,7 +115,9 @@ static char term_buffer[2048]; # define LOCALRCFILE "." RCBASENAME #endif -char ConfigFile[BUFSIZ] = LOCALRCFILE; +char ConfigFile[BUFFER_SIZE] = LOCALRCFILE; +struct WordList ConfigFiles; + const char *ReverseOn; const char *ReverseOff; @@ -150,6 +152,7 @@ enum LookIn liMin, liSysDir, liUsrDir, + liXdgDir, liEnvir, liCurDir, liNFound, @@ -177,12 +180,10 @@ int SetupVars(void) break; case liEnvir: /* Environment defined */ #ifdef __MSDOS__ - if ((Env = getenv("CHKTEXRC")) || (Env = getenv("CHKTEX_HOME"))) #elif defined(TEX_LIVE) if ((Env = kpse_var_value("CHKTEXRC"))) #else - if ((Env = getenv("CHKTEXRC"))) #endif @@ -206,6 +207,27 @@ int SetupVars(void) *ConfigFile = 0; break; + + case liXdgDir: /* Cross-desktop group dir for resource files */ + + /* XDG is really unix specific, but it shouldn't hurt to + * support it on Windows, should someone set the variables. */ + if ((Env = getenv("XDG_CONFIG_HOME")) && *Env) + { + strcpy(ConfigFile, Env); + tackon(ConfigFile, RCBASENAME); + } + else if ((Env = getenv("HOME")) && *Env) + { + strcpy(ConfigFile, Env); + tackon(ConfigFile, ".config"); + tackon(ConfigFile, RCBASENAME); + } + else + *ConfigFile = 0; + + break; + case liUsrDir: /* User dir for resource files */ #if defined(__unix__) @@ -446,6 +468,45 @@ static int HasFile(char *Dir, const char *Filename, const char *App) } +/* + * If Filename is contains a directory component, then add a fully qualified + * directory to the TeXInputs WordList. + * + * I'm not sure how it will work with some Windows paths, + * e.g. C:path\to\file.tex since it doesn't really understand the leading C: + * But I'm not sure it would even work with a path like that, and I have no + * way to test it. + * + * Behaviour somewhat controlled by the macros SLASH and DIRCHARS in the + * OpSys.h file. + * + */ + +void AddDirectoryFromRelativeFile(const char * Filename, struct WordList *TeXInputs) +{ + if ( ! Filename ) + return; + + /* There are no path delimiters, so it's just a file, return null */ + if ( ! strstr( Filename, DIRCHARS ) ) + return; + + + char buf[BUFFER_SIZE]; + if ( strchr(DIRCHARS,Filename[0]) ) { + strcpy(buf,Filename); + } else { + getcwd(buf, BUFFER_SIZE); + tackon(buf,Filename); + } + + /* Keep up to the final SLASH -- that will be the directory. */ + char * end = strrchr(buf,SLASH); + *end = '\0'; + InsertWord(buf,TeXInputs); +} + + #if USE_RECURSE static int SearchFile(char *Dir, const char *Filename, const char *App) { @@ -490,3 +551,24 @@ static int SearchFile(char *Dir, const char *Filename, const char *App) return (Found); } #endif /* USE_RECURSE */ + +#if defined(HAVE_STAT) +int IsRegFile(const char *Filename) +{ + int Retval = FALSE; + struct stat *statbuf; + if ((statbuf = malloc(sizeof(struct stat)))) + { + if (!stat(Filename, statbuf)) + { + if ((statbuf->st_mode & S_IFMT) == S_IFREG) + Retval = TRUE; + } + free(statbuf); + } + + return Retval; +} +#else +int IsRegFile(const char *Filename) { printf("WTF\n");return TRUE; } +#endif diff --git a/support/chktex/OpSys.h b/support/chktex/OpSys.h index 7ce3f1b527..d1b3f37689 100644 --- a/support/chktex/OpSys.h +++ b/support/chktex/OpSys.h @@ -59,7 +59,7 @@ * You may wish to modify the SetupVars() (OpSys.c) to better suit your * preferences. In any case, it should put the filename (and full path) * of the `.chktexrc' file into the ConfigFile array. The array is sized - * BUFSIZ bytes. + * BUFFER_SIZE bytes. * * The program does also assume that __unix__ is defined if the source is * compiled on a UNIX machine. @@ -83,6 +83,9 @@ # define EXIT_SUCCESS 0 #endif +#define EXIT_WARNINGS 2 +#define EXIT_ERRORS 3 + /* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ /* @@ -182,6 +185,26 @@ # define BAKAPPENDIX ".bak" #endif + +/* -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- -=><=- */ + +/* + * This defines the buffer size used in many places. The biggest + * limitation imposed by a small buffer is the size of a line which + * can be accurately processed by chktex. On the other hand, a large + * buffer size will waste memory. However, memory is quite cheap + * these days, especially considering the amount needed by ChkTeX. + * + * ChkTeX used to use BUFSIZ which was 1024 (fairly reasonable) on + * many UNIX-like systems, but was much smaller on Windows. So, + * instead we create our own buffer size and hope that no-one has + * lines longer than 4k. + * + */ + +#define BUFFER_SIZE 4096 + + /***************** END OF USER SETTABLE PREFERENCES *****************/ /********************************************************************/ @@ -189,14 +212,14 @@ struct WordList; #endif /* Sorry; there are now cyclic dependencies in the -* source tree. :-/ +* source tree. :-/ */ extern const char *ReverseOn; extern const char *ReverseOff; -extern char ConfigFile[BUFSIZ]; +extern char ConfigFile[BUFFER_SIZE]; +extern struct WordList ConfigFiles; -char *MatchFileName(char *String); int SetupVars(void); void SetupTerm(void); void AddAppendix(char *Name, const char *App); @@ -204,4 +227,7 @@ void tackon(char *, const char *); int LocateFile(const char *Filename, char *Dest, const char *App, struct WordList *wl); +void AddDirectoryFromRelativeFile(const char * Filename, struct WordList *TeXInputs); +int IsRegFile(const char *Filename); + #endif /* OPSYS_H */ diff --git a/support/chktex/Resource.c b/support/chktex/Resource.c index f301c6aff2..40a37df54c 100644 --- a/support/chktex/Resource.c +++ b/support/chktex/Resource.c @@ -90,7 +90,8 @@ TOKENBITS(Token); static enum Token Expect; static unsigned long RsrcLine; -static enum Token ReadWord(char *, FILE *); +static enum Token ReadWord(char *, FILE *, + char *(fgetsfun)(char *, int, FILE *)); static char MapChars(char **String); @@ -108,11 +109,11 @@ static char MapChars(char **String); * Returns whether the attempt was a successful one. */ -int ReadRC(const char *Filename) +int ProcessRC(FILE *fh, const char *Filename, + char *(fgetsfun)(char *, int, FILE *)) { const char *String = NULL; - int Success = FALSE; - FILE *fh; + int Success = TRUE; enum Token Token; unsigned long Counter; @@ -130,130 +131,138 @@ int ReadRC(const char *Filename) RsrcLine = 0; Expect = FLG_Word | FLG_Eof; - - if ((fh = fopen(Filename, "r"))) + do { - Success = TRUE; - do + Token = ReadWord(ReadBuffer, fh, fgetsfun); + if (!(Expect & Token)) { - Token = ReadWord(ReadBuffer, fh); - if (!(Expect & Token)) + switch (Token) { - switch (Token) + case FLG_Item: + String = "item"; + break; + case FLG_Word: + String = "word"; + break; + case FLG_Equal: + String = "`='"; + break; + case FLG_Open: + String = "`{'"; + break; + case FLG_Close: + String = "`}'"; + break; + case FLG_BrOpen: + String = "`['"; + break; + case FLG_BrClose: + String = "`]'"; + break; + case FLG_Eof: + String = "EOF"; + break; + } + PrintPrgErr(pmFaultFmt, Filename, RsrcLine, String); + Success = FALSE; + Token = FLG_Eof; + } + + switch (Token) + { + case FLG_Word: + for (Counter = 0; Keys[Counter].Name; Counter++) + { + if (!strcasecmp(ReadBuffer, Keys[Counter].Name)) { - case FLG_Item: - String = "item"; - break; - case FLG_Word: - String = "word"; - break; - case FLG_Equal: - String = "`='"; - break; - case FLG_Open: - String = "`{'"; - break; - case FLG_Close: - String = "`}'"; - break; - case FLG_BrOpen: - String = "`['"; - break; - case FLG_BrClose: - String = "`]'"; - break; - case FLG_Eof: - String = "EOF"; + CurWord = &Keys[Counter]; + Expect = (CurWord->List ? FLG_Open : 0) | + (CurWord->CaseList ? FLG_BrOpen : 0) | FLG_Equal; break; } - PrintPrgErr(pmFaultFmt, Filename, RsrcLine, String); + } + if (!Keys[Counter].Name) + { + PrintPrgErr(pmKeyWord, ReadBuffer, Filename); Success = FALSE; Token = FLG_Eof; } - - switch (Token) + break; + case FLG_Item: + switch (What) { - case FLG_Word: - for (Counter = 0; Keys[Counter].Name; Counter++) + case whEqual: + if (!(*(CurWord->String) = strdup(ReadBuffer))) { - if (!strcasecmp(ReadBuffer, Keys[Counter].Name)) - { - CurWord = &Keys[Counter]; - Expect = (CurWord->List ? FLG_Open : 0) | - (CurWord->CaseList ? FLG_BrOpen : 0) | FLG_Equal; - break; - } + PrintPrgErr(pmStrDupErr); + Token = FLG_Eof; + Success = FALSE; } - if (!Keys[Counter].Name) + + What = whNone; + Expect = FLG_Word | FLG_Eof; + break; + case whCaseList: + if (!InsertWord(ReadBuffer, CurWord->CaseList)) { - PrintPrgErr(pmKeyWord, ReadBuffer, Filename); - Success = FALSE; Token = FLG_Eof; + Success = FALSE; } break; - case FLG_Item: - switch (What) + case whList: + if (!InsertWord(ReadBuffer, CurWord->List)) { - case whEqual: - if (!(*(CurWord->String) = strdup(ReadBuffer))) - { - PrintPrgErr(pmStrDupErr); - Token = FLG_Eof; - Success = FALSE; - } - - What = whNone; - Expect = FLG_Word | FLG_Eof; - break; - case whCaseList: - if (!InsertWord(ReadBuffer, CurWord->CaseList)) - { - Token = FLG_Eof; - Success = FALSE; - } - break; - case whList: - if (!InsertWord(ReadBuffer, CurWord->List)) - { - Token = FLG_Eof; - Success = FALSE; - } - break; - case whNone: - PrintPrgErr(pmAssert); + Token = FLG_Eof; + Success = FALSE; } break; - case FLG_Equal: - What = whEqual; - Expect = (CurWord->List ? FLG_Open : 0) | - (CurWord->CaseList ? FLG_BrOpen : 0) | - (CurWord->String ? FLG_Item : 0); - break; - case FLG_BrOpen: - if (What == whEqual) - ClearWord(CurWord->CaseList); - What = whCaseList; - Expect = FLG_Item | FLG_BrClose; - break; - case FLG_Open: - if (What == whEqual) - ClearWord(CurWord->List); - What = whList; - Expect = FLG_Item | FLG_Close; - break; - case FLG_BrClose: - case FLG_Close: - Expect = (CurWord->List ? FLG_Open : 0) | - (CurWord->CaseList ? FLG_BrOpen : 0) | - FLG_Equal | FLG_Word | FLG_Eof; - What = whNone; - break; - case FLG_Eof: - break; + case whNone: + PrintPrgErr(pmAssert); } + break; + case FLG_Equal: + What = whEqual; + Expect = (CurWord->List ? FLG_Open : 0) | + (CurWord->CaseList ? FLG_BrOpen : 0) | + (CurWord->String ? FLG_Item : 0); + break; + case FLG_BrOpen: + if (What == whEqual) + ClearWord(CurWord->CaseList); + What = whCaseList; + Expect = FLG_Item | FLG_BrClose; + break; + case FLG_Open: + if (What == whEqual) + ClearWord(CurWord->List); + What = whList; + Expect = FLG_Item | FLG_Close; + break; + case FLG_BrClose: + case FLG_Close: + Expect = (CurWord->List ? FLG_Open : 0) | + (CurWord->CaseList ? FLG_BrOpen : 0) | FLG_Equal | FLG_Word | + FLG_Eof; + What = whNone; + break; + case FLG_Eof: + break; } - while (Token != FLG_Eof); + } while (Token != FLG_Eof); + return (Success); +} +/* + * Opens a file and passes to ProcessRC(). + */ +int ReadRC(const char *Filename) +{ + int Success = FALSE; + FILE *fh; + + if ((fh = fopen(Filename, "r"))) + { + Success = ProcessRC(fh, Filename, &fgets); fclose(fh); } else @@ -262,16 +271,52 @@ int ReadRC(const char *Filename) return (Success); } +const char *FGETS_TMP = NULL; +char *fgets_from_string(char *out, int size, FILE *fh) +{ + char *res; + if (FGETS_TMP == NULL) + return NULL; + res = strncpy(out, FGETS_TMP, size - 1); + + if (size - 1 < strlen(FGETS_TMP)) + { + /* It wasn't all read, so null terminate it, and get ready for + * next time. */ + res[size] = '\0'; + FGETS_TMP = FGETS_TMP + (size - 1); + } + else + { + /* We're done, so signal that */ + FGETS_TMP = NULL; + } + return res; +} + +/* + * Opens a file and passes to ProcessRC(). + */ +int ReadRCFromCmdLine(const char *CmdLineArg) +{ + if (!CmdLineArg) + return FALSE; + + FGETS_TMP = CmdLineArg; + return ProcessRC(NULL, "CommandLineArg", &fgets_from_string); +} + /* * Reads a token from the `.chktexrc' file; if the token is * FLG_Item or FLG_Word, Buffer will contain the plaintext of the * token. If not, the contents are undefined. */ -static enum Token ReadWord(char *Buffer, FILE * fh) +static enum Token ReadWord(char *Buffer, FILE *fh, + char *(fgetsfun)(char *, int, FILE *)) { static char *String = NULL; - static char StatBuf[BUFSIZ]; + static char StatBuf[BUFFER_SIZE]; enum Token Retval = FLG_Eof; unsigned short Chr; @@ -285,7 +330,7 @@ static enum Token ReadWord(char *Buffer, FILE * fh) { if (!(String && *String)) { - if (fgets(StatBuf, BUFSIZ - 1, fh)) + if ((fgetsfun)(StatBuf, BUFFER_SIZE - 1, fh)) String = strip(StatBuf, STRP_RGT); RsrcLine++; } diff --git a/support/chktex/Resource.h b/support/chktex/Resource.h index c0ebed0bd1..e2736a05d4 100644 --- a/support/chktex/Resource.h +++ b/support/chktex/Resource.h @@ -48,8 +48,9 @@ LIST(CenterDots) LIST(LowDots) LIST(OutFormat)\ LIST(Primitives) LIST(NotPreSpaced) LIST(NonItalic) LIST(NoCharNext)\ LNEMPTY(CmdLine) LNEMPTY(TeXInputs)\ - LCASE(Abbrev) LCASE(UserWarn) LIST(UserWarnRegex)\ - KEY(VerbClear, "|") KEY(QuoteStyle, "Traditional") KEY(TabSize, "8") + LCASE(Abbrev) LCASE(UserWarn) LIST(UserWarnRegex) LIST(TextEnvir)\ + KEY(VerbClear, "|") KEY(QuoteStyle, "Traditional") KEY(TabSize, "8")\ + KEY(CmdSpaceStyle, "Ignore") #define LIST(a) extern struct WordList a; #define LNEMPTY LIST @@ -62,6 +63,7 @@ RESOURCE_INFO #undef LNEMPTY #undef LIST int ReadRC(const char *); +int ReadRCFromCmdLine(const char *CmdLineArg); #endif /* RESOURCE */ diff --git a/support/chktex/Test.nore.out b/support/chktex/Test.nore.out index 44e3571500..07393eabd9 100644 --- a/support/chktex/Test.nore.out +++ b/support/chktex/Test.nore.out @@ -19,12 +19,6 @@ So is this \foo Message 46 in Test.tex: Use \( ... \) instead of $ ... $. \smallskip This is a not. $\foo Neither$ is this. ^^^^^^^^^^^^^^ -Message 1 in Test.tex: Command terminated with space. -\stoptext - ^ -Message 9 in Test.tex: `section' expected, found `text'. -\stoptext - ^^^^ Message 22 in Test.tex: Comment displayed. % Warning 2 ^ @@ -136,12 +130,18 @@ The Birch--Swinnerton--Dyer conjecture is not correct. Message 8 in Test.tex: Wrong length of dash may have been used. The Birch--Swinnerton--Dyer conjecture is not correct. ^^ +Message 8 in Test.tex: Wrong length of dash may have been used. +The Birch-Swinnerton-Dyer conjecture is not correct (is now caught). + ^ Message 22 in Test.tex: Comment displayed. % Warning 9-10 ^ Message 22 in Test.tex: Comment displayed. % Brackets: ^ +Message 37 in Test.tex: You should avoid spaces in front of parenthesis. +)}{[])} }}}]]]))) +^ Message 10 in Test.tex: Solo `)' found. )}{[])} }}}]]]))) ^ @@ -194,6 +194,27 @@ Message 10 in Test.tex: Solo `asoi' found. \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} ^^^^ Message 22 in Test.tex: Comment displayed. +% Warning 47 -- ConTeXt environment mismatch -- split from 9 +^ +Message 1 in Test.tex: Command terminated with space. +\stoptext + ^ +Message 47 in Test.tex: `section' expected, found `text' (ConTeXt). +\stoptext + ^^^^ +Message 1 in Test.tex: Command terminated with space. +\starttext + ^ +Message 22 in Test.tex: Comment displayed. +% (Un)fortunately, this is not an error +^ +Message 1 in Test.tex: Command terminated with space. +\startbar + ^ +Message 1 in Test.tex: Command terminated with space. +\stopbar + ^ +Message 22 in Test.tex: Comment displayed. % Warning 11 ^ Message 11 in Test.tex: You should use \ldots to achieve an ellipsis. @@ -260,12 +281,39 @@ Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george ^ Message 22 in Test.tex: Comment displayed. +% Bug 54751 +^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 22 in Test.tex: Comment displayed. % Warning 13 ^ Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. Look at THIS! It's an error. ^ Message 22 in Test.tex: Comment displayed. +% after frenchspacing it's not an error +^ +Message 22 in Test.tex: Comment displayed. +% warning again +^ +Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. +Look at THIS! It's an error. + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 21 in Test.tex: This command might not be intended. +Look at \THIS\@! It's not an error. D. E. Knuth. + ^^ +Message 22 in Test.tex: Comment displayed. % Warning 14 ^ Message 1 in Test.tex: Command terminated with space. @@ -358,6 +406,12 @@ Message 1 in input.tex: Command terminated with space. Message 11 in input.tex: You should use \ldots to achieve an ellipsis. \this is a test of whether the file is actually inputted... ^^^ +Message 22 in input/file: Comment displayed. +% -*- TeX -*- +^ +Message 22 in input/file: Comment displayed. +% chktex-file 22 +^ Message 22 in Test.tex: Comment displayed. % Warning 29 ^ @@ -367,6 +421,12 @@ The program opens a screen sized 640x200 pixels Message 46 in Test.tex: Use \( ... \) instead of $ ... $. The program opens a screen sized $640\times200$ pixels ^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^ Message 22 in Test.tex: Comment displayed. % Warning 30 ^ @@ -451,6 +511,9 @@ Message 22 in Test.tex: Comment displayed. Message 38 in Test.tex: You should not use punctuation in front of quotes. ``An example,'' he said, ``would be great.'' ^ +Message 38 in Test.tex: You should not use punctuation in front of quotes. +``An example,'' he said, ``would be great.'' + ^ Message 22 in Test.tex: Comment displayed. % Warning 39 ^ @@ -536,6 +599,12 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. For every $p\nmid n$ you have a cute prime which doesn't divide $n$. ^^^ Message 22 in Test.tex: Comment displayed. +% Warning about optional arguments inside optional arguments +^ +Message 22 in Test.tex: Comment displayed. +% Shouldn't warn +^ +Message 22 in Test.tex: Comment displayed. % Math mode check ^ Message 35 in Test.tex: You should perhaps use `\sin' instead. @@ -557,6 +626,18 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. Also, $x(3)\text{ is not x(3) but it is $x(3)$}$ ^^^^^^ Message 22 in Test.tex: Comment displayed. +% breqn mode check +^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +sin x +^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +is not the same as sin x, but is the same as $sin x$ + ^^^^^^^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +is not the same as sin x, but is the same as $sin x$ + ^^^ +Message 22 in Test.tex: Comment displayed. This is\\% a comment. Nothing here should be checked(right)? ^ Message 36 in Test.tex: You should put a space in front of parenthesis. @@ -596,6 +677,18 @@ Message 31 in Test.tex: This text may be ignored. \end{verbatim} FOO ^^^ Message 22 in Test.tex: Comment displayed. +% WipeArg +^ +Message 22 in Test.tex: Comment displayed. +% Bug 60197 -- "double math mode" should be handled okay +^ +Message 22 in Test.tex: Comment displayed. +% Warning 49 +^ +Message 49 in Test.tex: Expected math mode to be on here. +\] +^ +Message 22 in Test.tex: Comment displayed. % Warning 16,15 ^ Message 45 in Test.tex: Use \[ ... \] instead of $$ ... $$. @@ -613,6 +706,9 @@ Message 22 in Test.tex: Comment displayed. Message 22 in Test.tex: Comment displayed. % There should be no newline at the end of this file to test bug #46539 ^ +Message 48 in Test.tex: No match found for `text' (ConTeXt). +\starttext + ^^^^ Message 16 in Test.tex: Mathmode still on at end of LaTeX file. diff --git a/support/chktex/Test.pcre.out b/support/chktex/Test.pcre.out index c2e8eefac2..2f47f60de1 100644 --- a/support/chktex/Test.pcre.out +++ b/support/chktex/Test.pcre.out @@ -19,9 +19,6 @@ So is this \foo Message 46 in Test.tex: Use \( ... \) instead of $ ... $. \smallskip This is a not. $\foo Neither$ is this. ^^^^^^^^^^^^^^ -Message 9 in Test.tex: `section' expected, found `text'. -\stoptext - ^^^^ Message 22 in Test.tex: Comment displayed. % Warning 2 ^ @@ -133,12 +130,18 @@ The Birch--Swinnerton--Dyer conjecture is not correct. Message 8 in Test.tex: Wrong length of dash may have been used. The Birch--Swinnerton--Dyer conjecture is not correct. ^^ +Message 8 in Test.tex: Wrong length of dash may have been used. +The Birch-Swinnerton-Dyer conjecture is not correct (is now caught). + ^ Message 22 in Test.tex: Comment displayed. % Warning 9-10 ^ Message 22 in Test.tex: Comment displayed. % Brackets: ^ +Message 37 in Test.tex: You should avoid spaces in front of parenthesis. +)}{[])} }}}]]]))) +^ Message 10 in Test.tex: Solo `)' found. )}{[])} }}}]]]))) ^ @@ -178,6 +181,9 @@ Message 10 in Test.tex: Solo `)' found. Message 10 in Test.tex: Solo `)' found. )}{[])} }}}]]]))) ^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +{[]} ((([[[{{{}}}]]]))) + ^^^ Message 22 in Test.tex: Comment displayed. % Envs: ^ @@ -191,6 +197,15 @@ Message 10 in Test.tex: Solo `asoi' found. \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} ^^^^ Message 22 in Test.tex: Comment displayed. +% Warning 47 -- ConTeXt environment mismatch -- split from 9 +^ +Message 47 in Test.tex: `section' expected, found `text' (ConTeXt). +\stoptext + ^^^^ +Message 22 in Test.tex: Comment displayed. +% (Un)fortunately, this is not an error +^ +Message 22 in Test.tex: Comment displayed. % Warning 11 ^ Message 11 in Test.tex: You should use \ldots to achieve an ellipsis. @@ -257,12 +272,39 @@ Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george ^ Message 22 in Test.tex: Comment displayed. +% Bug 54751 +^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 22 in Test.tex: Comment displayed. % Warning 13 ^ Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. Look at THIS! It's an error. ^ Message 22 in Test.tex: Comment displayed. +% after frenchspacing it's not an error +^ +Message 22 in Test.tex: Comment displayed. +% warning again +^ +Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. +Look at THIS! It's an error. + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 21 in Test.tex: This command might not be intended. +Look at \THIS\@! It's not an error. D. E. Knuth. + ^^ +Message 22 in Test.tex: Comment displayed. % Warning 14 ^ Message 1 in Test.tex: Command terminated with space. @@ -355,6 +397,12 @@ Message 1 in input.tex: Command terminated with space. Message 11 in input.tex: You should use \ldots to achieve an ellipsis. \this is a test of whether the file is actually inputted... ^^^ +Message 22 in input/file: Comment displayed. +% -*- TeX -*- +^ +Message 22 in input/file: Comment displayed. +% chktex-file 22 +^ Message 22 in Test.tex: Comment displayed. % Warning 29 ^ @@ -364,6 +412,12 @@ The program opens a screen sized 640x200 pixels Message 46 in Test.tex: Use \( ... \) instead of $ ... $. The program opens a screen sized $640\times200$ pixels ^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^ Message 22 in Test.tex: Comment displayed. % Warning 30 ^ @@ -448,6 +502,9 @@ Message 22 in Test.tex: Comment displayed. Message 38 in Test.tex: You should not use punctuation in front of quotes. ``An example,'' he said, ``would be great.'' ^ +Message 38 in Test.tex: You should not use punctuation in front of quotes. +``An example,'' he said, ``would be great.'' + ^ Message 22 in Test.tex: Comment displayed. % Warning 39 ^ @@ -536,6 +593,27 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. For every $p\nmid n$ you have a cute prime which doesn't divide $n$. ^^^ Message 22 in Test.tex: Comment displayed. +% Warning about optional arguments inside optional arguments +^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +\begin{something}[\cite2[1231]{adadsd}]\end{something} + ^^^^^^^^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +[dasd{dasda[ ads[ dasd ]]}] + ^^^^^^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +adssd[ {}[]] + ^^^^^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +\begin{something}[\cite{adadsd}[1231]]\end{something} + ^^^^^^^^^^^^^^^ +Message 44 in Test.tex: User Regex: -3:Optional arguments [] inside optional arguments [] must be enclosed in {}. +\begin{something}[ ][\cite{adadsd}[1231]]\end{something} + ^^^^^^^^^^^^^^^ +Message 22 in Test.tex: Comment displayed. +% Shouldn't warn +^ +Message 22 in Test.tex: Comment displayed. % Math mode check ^ Message 35 in Test.tex: You should perhaps use `\sin' instead. @@ -557,6 +635,18 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. Also, $x(3)\text{ is not x(3) but it is $x(3)$}$ ^^^^^^ Message 22 in Test.tex: Comment displayed. +% breqn mode check +^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +sin x +^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +is not the same as sin x, but is the same as $sin x$ + ^^^^^^^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +is not the same as sin x, but is the same as $sin x$ + ^^^ +Message 22 in Test.tex: Comment displayed. This is\\% a comment. Nothing here should be checked(right)? ^ Message 36 in Test.tex: You should put a space in front of parenthesis. @@ -605,6 +695,18 @@ Message 31 in Test.tex: This text may be ignored. \end{verbatim} FOO ^^^ Message 22 in Test.tex: Comment displayed. +% WipeArg +^ +Message 22 in Test.tex: Comment displayed. +% Bug 60197 -- "double math mode" should be handled okay +^ +Message 22 in Test.tex: Comment displayed. +% Warning 49 +^ +Message 49 in Test.tex: Expected math mode to be on here. +\] +^ +Message 22 in Test.tex: Comment displayed. % Warning 16,15 ^ Message 45 in Test.tex: Use \[ ... \] instead of $$ ... $$. @@ -622,6 +724,9 @@ Message 22 in Test.tex: Comment displayed. Message 22 in Test.tex: Comment displayed. % There should be no newline at the end of this file to test bug #46539 ^ +Message 48 in Test.tex: No match found for `text' (ConTeXt). +\starttext + ^^^^ Message 16 in Test.tex: Mathmode still on at end of LaTeX file. diff --git a/support/chktex/Test.posix-ere.out b/support/chktex/Test.posix-ere.out index c89ce36936..f22f757d72 100644 --- a/support/chktex/Test.posix-ere.out +++ b/support/chktex/Test.posix-ere.out @@ -19,9 +19,6 @@ So is this \foo Message 46 in Test.tex: Use \( ... \) instead of $ ... $. \smallskip This is a not. $\foo Neither$ is this. ^^^^^^^^^^^^^^ -Message 9 in Test.tex: `section' expected, found `text'. -\stoptext - ^^^^ Message 22 in Test.tex: Comment displayed. % Warning 2 ^ @@ -133,12 +130,18 @@ The Birch--Swinnerton--Dyer conjecture is not correct. Message 8 in Test.tex: Wrong length of dash may have been used. The Birch--Swinnerton--Dyer conjecture is not correct. ^^ +Message 8 in Test.tex: Wrong length of dash may have been used. +The Birch-Swinnerton-Dyer conjecture is not correct (is now caught). + ^ Message 22 in Test.tex: Comment displayed. % Warning 9-10 ^ Message 22 in Test.tex: Comment displayed. % Brackets: ^ +Message 37 in Test.tex: You should avoid spaces in front of parenthesis. +)}{[])} }}}]]]))) +^ Message 10 in Test.tex: Solo `)' found. )}{[])} }}}]]]))) ^ @@ -191,6 +194,15 @@ Message 10 in Test.tex: Solo `asoi' found. \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} ^^^^ Message 22 in Test.tex: Comment displayed. +% Warning 47 -- ConTeXt environment mismatch -- split from 9 +^ +Message 47 in Test.tex: `section' expected, found `text' (ConTeXt). +\stoptext + ^^^^ +Message 22 in Test.tex: Comment displayed. +% (Un)fortunately, this is not an error +^ +Message 22 in Test.tex: Comment displayed. % Warning 11 ^ Message 11 in Test.tex: You should use \ldots to achieve an ellipsis. @@ -257,12 +269,39 @@ Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george ^ Message 22 in Test.tex: Comment displayed. +% Bug 54751 +^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 12 in Test.tex: Interword spacing (`\ ') should perhaps be used. +Mr. ``X'' and Mrs. \(Y\) + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 22 in Test.tex: Comment displayed. % Warning 13 ^ Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. Look at THIS! It's an error. ^ Message 22 in Test.tex: Comment displayed. +% after frenchspacing it's not an error +^ +Message 22 in Test.tex: Comment displayed. +% warning again +^ +Message 13 in Test.tex: Intersentence spacing (`\@') should perhaps be used. +Look at THIS! It's an error. + ^ +Message 22 in Test.tex: Comment displayed. +% ignore commands by default +^ +Message 21 in Test.tex: This command might not be intended. +Look at \THIS\@! It's not an error. D. E. Knuth. + ^^ +Message 22 in Test.tex: Comment displayed. % Warning 14 ^ Message 1 in Test.tex: Command terminated with space. @@ -355,6 +394,12 @@ Message 1 in input.tex: Command terminated with space. Message 11 in input.tex: You should use \ldots to achieve an ellipsis. \this is a test of whether the file is actually inputted... ^^^ +Message 22 in input/file: Comment displayed. +% -*- TeX -*- +^ +Message 22 in input/file: Comment displayed. +% chktex-file 22 +^ Message 22 in Test.tex: Comment displayed. % Warning 29 ^ @@ -364,6 +409,12 @@ The program opens a screen sized 640x200 pixels Message 46 in Test.tex: Use \( ... \) instead of $ ... $. The program opens a screen sized $640\times200$ pixels ^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^^^^^^^^^^^^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. + ^^^ Message 22 in Test.tex: Comment displayed. % Warning 30 ^ @@ -448,6 +499,9 @@ Message 22 in Test.tex: Comment displayed. Message 38 in Test.tex: You should not use punctuation in front of quotes. ``An example,'' he said, ``would be great.'' ^ +Message 38 in Test.tex: You should not use punctuation in front of quotes. +``An example,'' he said, ``would be great.'' + ^ Message 22 in Test.tex: Comment displayed. % Warning 39 ^ @@ -536,6 +590,12 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. For every $p\nmid n$ you have a cute prime which doesn't divide $n$. ^^^ Message 22 in Test.tex: Comment displayed. +% Warning about optional arguments inside optional arguments +^ +Message 22 in Test.tex: Comment displayed. +% Shouldn't warn +^ +Message 22 in Test.tex: Comment displayed. % Math mode check ^ Message 35 in Test.tex: You should perhaps use `\sin' instead. @@ -557,6 +617,18 @@ Message 46 in Test.tex: Use \( ... \) instead of $ ... $. Also, $x(3)\text{ is not x(3) but it is $x(3)$}$ ^^^^^^ Message 22 in Test.tex: Comment displayed. +% breqn mode check +^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +sin x +^^^ +Message 46 in Test.tex: Use \( ... \) instead of $ ... $. +is not the same as sin x, but is the same as $sin x$ + ^^^^^^^ +Message 35 in Test.tex: You should perhaps use `\sin' instead. +is not the same as sin x, but is the same as $sin x$ + ^^^ +Message 22 in Test.tex: Comment displayed. This is\\% a comment. Nothing here should be checked(right)? ^ Message 36 in Test.tex: You should put a space in front of parenthesis. @@ -605,6 +677,18 @@ Message 31 in Test.tex: This text may be ignored. \end{verbatim} FOO ^^^ Message 22 in Test.tex: Comment displayed. +% WipeArg +^ +Message 22 in Test.tex: Comment displayed. +% Bug 60197 -- "double math mode" should be handled okay +^ +Message 22 in Test.tex: Comment displayed. +% Warning 49 +^ +Message 49 in Test.tex: Expected math mode to be on here. +\] +^ +Message 22 in Test.tex: Comment displayed. % Warning 16,15 ^ Message 45 in Test.tex: Use \[ ... \] instead of $$ ... $$. @@ -622,6 +706,9 @@ Message 22 in Test.tex: Comment displayed. Message 22 in Test.tex: Comment displayed. % There should be no newline at the end of this file to test bug #46539 ^ +Message 48 in Test.tex: No match found for `text' (ConTeXt). +\starttext + ^^^^ Message 16 in Test.tex: Mathmode still on at end of LaTeX file. diff --git a/support/chktex/Test.tex b/support/chktex/Test.tex index 9a7fc05fa0..1285447355 100644 --- a/support/chktex/Test.tex +++ b/support/chktex/Test.tex @@ -13,10 +13,6 @@ are nonsense in a TeXnical manner. So is this \foo \smallskip This is a not. $\foo Neither$ is this. -\startsection[title={Testing ConTeXt}] -These should now be an error. -\stoptext - % Warning 2 This is a faulty reference to \ref{foo} @@ -55,7 +51,7 @@ in plain TeX---are the key % Using DashExcpt The Birch--Swinnerton-Dyer conjecture is correct. The Birch--Swinnerton--Dyer conjecture is not correct. -The Birch-Swinnerton-Dyer conjecture is not correct (but not caught). +The Birch-Swinnerton-Dyer conjecture is not correct (is now caught). % Warning 9-10 @@ -70,6 +66,18 @@ The Birch-Swinnerton-Dyer conjecture is not correct (but not caught). \begin{foo} \begin{bar} \end{bar}\end{foo} +% Warning 47 -- ConTeXt environment mismatch -- split from 9 +\startsection[title={Testing ConTeXt}] +These should now be an error. +\stoptext +\starttext + +% (Un)fortunately, this is not an error +\begin{foo} +\startbar +\end{foo} +\stopbar + % Warning 11 Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. @@ -80,11 +88,31 @@ Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$. $1\cdot\cdots\cdot3$. 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george 1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george +% Bug 54751 + +Mr. ``X'' and Mrs. \(Y\) + +% ignore commands by default +\Mr. ``X'' and \Mrs. \(Y\) + % Warning 13 Look at THIS! It's an error. Look at THIS\@! It's an error. D. E. Knuth. +% after frenchspacing it's not an error +\frenchspacing +Look at THIS! It's not an error. +Look at THIS\@! It's not an error. D. E. Knuth. + +% warning again +\nonfrenchspacing +Look at THIS! It's an error. +Look at THIS\@! It's not an error. D. E. Knuth. + +% ignore commands by default +Look at \THIS\@! It's not an error. D. E. Knuth. + % Warning 14 \hat @@ -133,10 +161,12 @@ Do you understand? \input input.tex \input input +\input input/file % Warning 29 The program opens a screen sized 640x200 pixels The program opens a screen sized $640\times200$ pixels +Approximately $\frac{2x}{1+x}$ $x$s shouldn't be errors. % Warning 30 @@ -197,10 +227,34 @@ You should always write a good introduction. For every $p\not|n$ you have an ugly prime which doesn't divide $n$. For every $p\nmid n$ you have a cute prime which doesn't divide $n$. +% Warning about optional arguments inside optional arguments +\begin{something}[\cite2[1231]{adadsd}]\end{something} +[dasd{dasda[ ads[ dasd ]]}] +adssd[ {}[]] +\begin{something}[\cite{adadsd}[1231]]\end{something} +\begin{something}[ ][\cite{adadsd}[1231]]\end{something} + +% Shouldn't warn +\begin{something}[{\cite{adadsd}[1231]}]\end{something} +\begin{something}[{\cite{{adadsd}}[1231]}]\end{something} +\begin{something}[{\cite{adadsd}[1231]}]\end{something} +\begin{something}[ ]{\cite{adadsd}[1231]}\end{something} +\begin{something}[ ][{\cite{adadsd}[1231]}]\end{something} +\begin{something}[{} ]{\cite{adadsd}[1231]}\end{something} + + % Math mode check \ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}} Also, $x(3)\text{ is not x(3) but it is $x(3)$}$ +% breqn mode check +\begin{darray*} +sin x +\begin{dsuspend} +is not the same as sin x, but is the same as $sin x$ +\end{dsuspend} +\end{darray*} + This is\\% a comment. Nothing here should be checked(right)? a broken line. But this is not a \% comment, so we should find this error(right)? @@ -227,6 +281,23 @@ In section~\ref{sec:4} it is suppressed. % chktex -1 \this is \end{verbatim} FOO +% WipeArg +\autocite[34-35]{text--1---1} + +% Bug 60197 -- "double math mode" should be handled okay +\begin{align} + \begin{array} {l} + abc + \end{array} \\ + 3 - 2 = 1 + \pi +\end{align} + + +% Warning 49 + +\] + % Warning 16,15 $$( diff --git a/support/chktex/Utility.c b/support/chktex/Utility.c index 6f05e98f61..390d83d28f 100644 --- a/support/chktex/Utility.c +++ b/support/chktex/Utility.c @@ -87,8 +87,7 @@ int fexists(const char *Filename) #else FILE *fh; - - if (fh = fopen(Filename, "r")) + if ((fh = fopen(Filename, "r"))) { Retval = TRUE; fclose(fh); @@ -97,6 +96,12 @@ int fexists(const char *Filename) Retval = FALSE; #endif + /* Ensure that it's not a directory */ + if (Retval && !IsRegFile(Filename)) + { + Retval = FALSE; + } + return (Retval); } @@ -115,7 +120,7 @@ void *sfmemset(void *to, int c, long n) { if (to && (n > 0)) { - n = min(n, BUFSIZ); + n = min(n, BUFFER_SIZE); return (memset(to, c, (size_t) n)); } @@ -325,7 +330,7 @@ void strwrite(char *To, const char *From, unsigned long Len) unsigned long i, j; unsigned long FromLen = strlen(From); - Len = min(Len, BUFSIZ); + Len = min(Len, BUFFER_SIZE); if (To && From) { @@ -681,7 +686,7 @@ void *StkTop(struct Stack *Stack) int PushFileName(const char *Name, struct Stack *stack) { FILE *fh = NULL; - static char NameBuf[BUFSIZ]; + static char NameBuf[BUFFER_SIZE]; if (Name && stack) { @@ -701,6 +706,7 @@ int PushFileName(const char *Name, struct Stack *stack) int PushFile(const char *Name, FILE * fh, struct Stack *stack) { struct FileNode *fn; + uint64_t *filesupp; if (Name && fh && stack) { @@ -710,6 +716,21 @@ int PushFile(const char *Name, FILE * fh, struct Stack *stack) { fn->fh = fh; fn->Line = 0L; + if ((filesupp = malloc(sizeof(uint64_t)))) + { + *filesupp = 0; + StkPush(filesupp, &FileSuppStack); + } + else + PrintPrgErr(pmNoStackMem); + if ((filesupp = malloc(sizeof(uint64_t)))) + { + *filesupp = 0; + StkPush(filesupp, &UserFileSuppStack); + } + else + PrintPrgErr(pmNoStackMem); + if (StkPush(fn, stack)) return (TRUE); free(fn->Name); @@ -754,6 +775,9 @@ char *FGetsStk(char *Dest, unsigned long len, struct Stack *stack) free(fn->Name); free(fn); HasSeenLong = 0; + + StkPop(&FileSuppStack); + StkPop(&UserFileSuppStack); } while (!Retval && (fn = StkTop(stack))); } @@ -805,8 +829,27 @@ unsigned long CurStkLine(struct Stack *stack) return (LastLine); } +long CurStkMode(struct Stack *stack) +{ + long * Mode; + if ((Mode = StkTop(stack))) + return *Mode; + /* printf("Empty stack\n"); */ + return FALSE; +} +long *PushMode(long mode, struct Stack *stack) +{ + long *m; + if ((m = malloc(sizeof(long)))) + { + *m = mode; + StkPush(m, stack); + return m; + } + return NULL; +} /************************** CHARACTER STACK ******************************/ /* diff --git a/support/chktex/Utility.h b/support/chktex/Utility.h index b1b31ec773..7dc7c9a317 100644 --- a/support/chktex/Utility.h +++ b/support/chktex/Utility.h @@ -89,12 +89,6 @@ struct FileNode unsigned long Line; }; -/* Rotates x n bits left (should be an int, long, etc.) */ -#define ROTATEL(x,n) ((x<>((CHAR_BIT*sizeof(x)) - n))) - -/* Rotates x n bits right (should be an int, long, etc.) */ -#define ROTATER(x,n) ((x>>n) | (x<<((CHAR_BIT*sizeof(x)) - n))) - /* Subtract 1 because sizeof includes the null terminator. * WARNING: To use this on a variable, the type should be char[] * rather than char*, since for some versions of gcc these give @@ -132,6 +126,8 @@ void *StkTop(struct Stack *Stack); FILE *CurStkFile(struct Stack *stack); const char *CurStkName(struct Stack *stack); unsigned long CurStkLine(struct Stack *stack); +long CurStkMode(struct Stack *stack); +long *PushMode(long mode, struct Stack *stack); char *FGetsStk(char *Dest, unsigned long len, struct Stack *stack); int PushFileName(const char *Name, struct Stack *stack); int PushFile(const char *, FILE *, struct Stack *); diff --git a/support/chktex/aclocal.m4 b/support/chktex/aclocal.m4 index 022e3ea7e7..b1f5d91eac 100644 --- a/support/chktex/aclocal.m4 +++ b/support/chktex/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15 -*- Autoconf -*- +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -12,5 +12,7 @@ # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_include([m4/ax_append_flag.m4]) m4_include([m4/ax_cflags_strict_prototypes.m4]) +m4_include([m4/ax_require_defined.m4]) m4_include([m4/vl_prog_cc_warnings.m4]) diff --git a/support/chktex/chktexrc b/support/chktex/chktexrc deleted file mode 100644 index c6355f8db1..0000000000 --- a/support/chktex/chktexrc +++ /dev/null @@ -1,802 +0,0 @@ -## -## ChkTeX, example resource file for ChkTeX. -## Copyright (C) 1995-96 Jens T. Berger Thielemann -## -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -## -## Contact the author at: -## Jens Berger -## Spektrumvn. 4 -## N-0666 Oslo -## Norway -## E-mail: -## - -##################################################################### -# -# Note: The format has changed slightly (again). The { ... } -# syntax does now mean case-sensitive comparing, while [ ... ] means -# case-insensitive comparing of the keywords. Case-insensitive -# comparing of the keywords is only supported on a few of the -# keywords (it's not meaningful in all contexts, and it slows ChkTeX -# down). Keywords supporting this are marked throughout the file. -# -# You may also reset a list by saying "KEYWORD = { ... }"; it will -# then be set equal to the contents of the list you specify. -# -# Comments begin with `#', and continues for the rest of the line. -# Blank lines plus leading and trailing spaces are of course ignored. -# -# The general format of this file is the following: -# -# KEYWORD { item item ...} [ item item ... ] /* Adds items */ -# -# KEYWORD [ item item ...] { item item ... } /* Adds items */ -# -# KEYWORD = item -# -# KEYWORD = { item item ... } /* Clears list before adding */ -# -# KEYWORD = [ item item ... ] /* Clears list before adding */ -# -# This does _not_ mean that you may alternate the forms; certain -# keywords demands a list, other a single value. You thus have to -# look at the examples of their use. -# -# Please also note that if you specify a list-keyword twice, we'll -# concatenate the lists. If you specify a item-keyword twice, we'll -# kill the previous value. -# -# We are slightly context-sensitive when detecting tokens like "}" -# and "]"; they have to be preceded by a space. This generally makes -# life easier. -# -# Items are separated by spaces. Newlines are considered as spaces, -# but can't be escaped. You may surround items with quotes (`"') to -# easily put spaces into them. -# -# Escape sequences available: -# -# Sequence Resulting character -# ! A space (type `! ', not just a exclamation mark) -# !" " -# !# # -# !! ! -# !{ { -# !} } -# ![ [ -# !] ] -# != = -# !b Backspace -# !n New line -# !r Carriage return -# !t Tab -# !f Form feed -# !xNN NN must be a hexadecimal number (00 - ff), -# _both_ characters must be included. -# !dNNN DDD must be a decimal number (000 - 255), all -# three characters must be included. Unspecified -# results if DDD > 255. -# !NNN DDD must be a octal number (000 - 377), all -# three characters must be included. Unspecified -# results if DDD > 377. -# -# Minor note: As you can see, most of these escape sequences are -# equal to those in C (with some extensions); however, we use ! -# instead of \ as escape character for obvious reasons. -# -# -# Quick summary of keywords follows. Keywords marked with a * accept -# keywords accepting case-insensitive lists. -# -# Abbrev* - A list of abbreviations not automatically caught. -# CenterDots - Commands/characters which should have \cdots in -# between. -# CmdLine - Default commandline options. These will be -# processed before the ones you give on the command -# line. -# HyphDash \ -# NumDash - Number of dashes allowed in different contexts. -# WordDash / -# IJAccent - Commands which puts an accent _over_ their -# argument. -# Italic - Commands immediately turning on italic mode. -# ItalCmd - Commands putting their argument into italic. -# Linker - Commands which should have a non-breaking space in -# front. -# LowDots - Commands/characters which should have \ldots in -# between. -# MathEnvir - Environments which turn on math mode. -# MathCmd - Commands which turn on math mode. -# TextCmd - Commands which turn off math mode. -# MathRoman - Mathematical operators with LaTeX replacement -# defined. -# NoCharNext - Insists on that certain commands aren't followed by -# certain characters. -# NonItalic - Commands immediately turning off italic mode. -# NotPreSpaced- Commands which should not have a space in front of -# them. -# Primitives - Primitive TeX commands. -# PostLink - Commands which generates a page reference. -# OutFormat - Formats to use for output. See the -f & -v switch -# in the main doc. -# QuoteStyle - Either "Traditional" or "Logical". See main doc, -# warning 38. -# Silent - These commands do not produce any textual output; -# and are thus allowed to have a space after them. -# TabSize - Tab size you are using. -# TeXInputs - Paths to search \input and \include files for. -# UserWarn* - These strings will be searched for throughout the -# text. -# VerbEnvir - Environments which contents should be ignored. -# VerbClear - String we will overwrite unwanted data with. -# WipeArg - Commands (with arguments) which should be ignored -# in the checking. -# - - -##################################################################### -# -# Enter which type of quote-style you are using here. Currently, we -# support the following styles: -# -# Style Example of use -# Traditional "An example," he said, "would be great." -# Logical "An example", he said, "would be great". -# - -QuoteStyle = Logical - -##################################################################### -# -# Enter here what interval you have between your tabs. Only regular -# intervals are supported. -# - -TabSize = 8 - -##################################################################### -# -# Here, you can put default commandline options; most users would for -# instance like to put -v2 here. -# - -CmdLine -{ - -} - -##################################################################### -# -# These patterns will be searched for through the text; no matter -# whether they appear as normal text, commands or whatever. -# Currently case-sensitive. They are not found in comments. -# -# I usually define a special command like this: -# -# \def\unknown{\large\bf??} -# -# which I use whenever there is some information I don't have at the -# moment of writing. Thus, it makes sense to search for it. -# -# You should be able to develop your own uses for this. -# - -UserWarn -{ - - \unknown -### -# -# Another example; one should write \chktex or Chk\TeX - never ChkTeX. -# -### - - ChkTeX -} -[ - -### -# -# You may put case-insensitive patterns here. -# -### - -] - - -### -# -# These patterns will be searched for, no matter whether they appear -# as normal text, commands or arguments. However, they will _not_ -# match in verbatim environments. -# -# Remember that you have to escape (with a !) the following -# characters: "#!= as well as spaces and {}[] if they are proceeded by -# a space. -# -# Since these are PCRE regular expressions, you can use (?i) to make -# the expression case insensitive. See the man pages (man pcresyntax) -# or the nicely formatted http://perldoc.perl.org/perlre.html for -# documentation on the regular expression syntax. Note however that -# some the features of perl regular expression are not available such -# as running code (callouts), and replacing. -# -# An initial PCRE comment (?# ... ) can be used change what is -# displayed, thereby reminding yourself how to fix the problem. -# -### -UserWarnRegex -{ - - (?!#Always! use! \nmid)\\not! *(\||\\mid) - - # capitalize section when saying Section 6. - (?!#-1:Capitalize! before! references)PCRE:\b(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref - (?!#1:Capitalize! before! references)POSIX:([^[:alnum:]]|^)(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref - - # spell it out. - # PCRE:(?i)\bintro\b(?!#Spell! it! out.! This! comment! is! not! used.) - # POSIX:([^[:alnum:]]|^)intro([^[:alnum:]]|$) - - # Pretty tables--see http://texdoc.net/texmf-dist/doc/latex/booktabs/booktabs.pdf - (?!#-2:Use! \toprule,! midrule,! or! \bottomrule! from! booktabs)\\hline - # This relies on it being on a single line, and not having anything - # else on that line. With PCRE we could match balanced [] and {}, - # but I wonder if it's worth the complexity... - (?!#-2:Vertical! rules! in! tables! are! ugly)\\begin\{(array|tabularx?\*?)\}(\[.*\])?\{.*\|.*\} - -} - - -##################################################################### -# -# Here you can list the path of where ChkTeX should look for files it -# \inputs. The // postfix is now supported; if you append a double -# path-separator we'll recursively search that directory directories. -# MS-DOS users must append \\ instead, e.g. "C:\EMTEX\\". -# -# If you under either MS-DOS or UNIX wish to search an entire -# partition or the complete directory tree, you must use *three* -# slashes, e.g. "c:\\\" or "///". This may be considered to be a bug. -# -# By default, we'll search the current directory (not recursively, -# put "//" in the list for this); any paths specified below will be -# searched in addition to this. -# - -TeXInputs -{ - -} - -##################################################################### -# -# Here you may specify more output formats for use with the -v option, -# it simply indexes into this list. Remember to use ! instead of \, -# though. -# -# For explanation of how % fields expand; look at ChkTeX.{dvi,ps,pdf}. -# -# We will by default select entry number _two_ in this list (we count -# from 0), and -v without any parameter selects entry number _three_. -# - -OutFormat -{ - -# -v0; silent mode -%f%b%l%b%c%b%n%b%m!n - -# -v1; normal mode -"%k %n in %f line %l: %m!n%r%s%t!n%u!n" - -# -v2; fancy mode -"%k %n in %f line %l: %m!n%r%i%s%I%t!n!n" - -# -v3; lacheck mode -"!"%f!", line %l: %m!n" - -# -v4; verbose lacheck mode -"!"%f!", line %l: %m!n%r%s%t!n%u!n" - -# -v5; no line number, ease auto-test -"%k %n in %f: %m!n%r%s%t!n%u!n" - -# -v6; emacs compilation mode -"!"%f!", line %l.%c:(#%n) %m!n" - -} - - - -##################################################################### -# -# These commands should be ignored when detecting whether a command -# is ended by a space. You can specify regular expressions in the [] -# section in case you have many custom macros that can be safely -# terminated with a space. -# - -Silent -{ - \rm \em \bf \it \sl \sf \sc \tt \selectfont - \rmfamily \sffamily \ttfamily \mdseries \bfseries - \slshape \scshape \relax - \vskip \pagebreak \nopagebreak - - \textrm \textem \textbf \textit \textsl \textsf \textsc \texttt - - \clearpage \ddots \dotfill \flushbottom \fussy \indent \linebreak - \onecolumn \pagebreak \pushtabs \poptabs \scriptsize \sloppy - \twocolumn \vdots - \today \kill \newline \thicklines \thinlines - - \columnsep \space \item \tiny \footnotesize \small \normalsize - \normal \large \Large \LARGE \huge \Huge \printindex - - \newpage \listoffigures \listoftables \tableofcontents - \maketitle \makeindex - - \hline \hrule \vrule - - \centering - - \bigskip \medskip \smallskip - - \noindent \expandafter - - \makeatletter \makeatother - - \columnseprule - - \textwidth \textheight \hsize \vsize - - \if \fi \else - - \csname \endcsname - - \z@ \p@ \@warning \typeout - - \dots \ldots \input \endinput \nextline \leavevmode \cdots - \appendix \listfiles \and \quad - \hskip \vfill \vfil \hfill \hfil \topmargin \oddsidemargin - \frenchspacing \nonfrenchspacing - \begingroup \endgroup \par - - \vrefwarning \upshape \headheight \headsep \hoffset \voffset - \cdot \qquad - \left \right - \qedhere - - \xspace - - \addlinespace \cr \fill \frontmatter - \toprule \midrule \bottomrule - -}[ -# Here you can put regular expressions to match Silent macros. It was -# designed for the case where you have many custom macros sharing a -# common prefix, but can of course be used for other things. - -# Support ConTeXt to at least some extent -\\start.* \\stop.* - -] - -##################################################################### -# -# Here, you can specify the length of various dashes. We sort the -# dash according to which type of characters that are on the left and -# right of it. We are only conclusive if they are the same. -# -# We associate as follows: -# -# Name Type of character on each side -# HyphDash Alphabetic (foo-bar) -# NumDash Numeric (2--3) -# WordDash Space (like this --- see?) -# -# Below you specify how many dashes which are legal in each case. We -# define 0 as a magic constant which always generates an error. You -# may specify more than one legal dash-length. -# -# Let's look at an example. You use the following dash-syntax: -# -# foo-bar -# 2--3 -# like this---see? -# -# -# HYPHDASH { 1 3 } # Either a hyphen, or inter-word -# NUMDASH { 2 } # Between words -# WORDDASH { 0 } # We never use this -# - -HyphDash -{ - 1 3 -} - -NumDash -{ - 2 -} - -WordDash -{ - 3 -} - -##################################################################### -# -# Here are exceptions to the dash rules above. For example, an -# n-dash -- between words is usually wrong, but in some cases it is -# correct, such as when naming a theorem. The Birch--Swinnerton-Dyer -# conjecture is one example where the difference matters. You can -# tell that Birch is one person and Swinnerton-Dyer is another. -# -# Adding line suppressions for these is possible, but can quickly -# become tedious if a certain theorem is referenced often. For this -# reason exceptions can be specified here. They are case-sensitive. -# - -DashExcpt -{ - Birch--Swinnerton-Dyer -} - -##################################################################### -# -# This keyword indicates commands whose argument isn't LaTeX code, -# and thus should be ignored. -# -# After the command, you may place arguments that you wish that -# should be wiped in the process; use [] for optional arguments, {} -# for required ones and * if the command supports an alternative -# variant. These should be separated from the command with a colon. -# Some commands (e.g. \cmidrule) use () to delimit and optional -# argument and so this syntax is supported as well. -# -# For instance, if you would like to wipe the \newcommand command, -# you would declare it as \newcommand:*[][]{} -# -# These commands may be "executed" before they're wiped, so you will -# typically also wish to list filehandling commands and similar here. -# - -WipeArg -{ - \label:{} \ref:{} \eqref:{} \vref:{} \pageref:{} \index:[]{} - \cite:[][]{} \nocite:{} - \input:{} \verbatiminput:[]{} \listinginput:[]{}{} - \verbatimtabinput:[]{} \include:{} \includeonly:{} - \bibitem:[]{} - \cline:{} \cmidrule:[](){} - \href:{}{} - # Cleveref -- there are many others that could be here as well... - \cref:*{} \cpageref:*{} \crefrange:*{}{} \cpagerefrange:*{}{} - \Cref:*{} \Cpageref:*{} \Crefrange:*{}{} \Cpagerefrange:*{}{} - # natbib - \citet:*[][]{} \citep:*[][]{} \citealt:*{} \citealp:*[]{} \citeauthor:*{} - \Citet:*[][]{} \Citep:*[][]{} \Citealt:*{} \Citealp:*[]{} \Citeauthor:{} - \citetext:{} \citeyear:*{} \citeyearpar:{} - # tipa which uses " - \textipa:{} -} - -##################################################################### -# -# These environments contain material which will be typeset as -# mathematics by LaTeX. This turns on/off some warnings. -# -# We will automagically append a * to each keyword. -# - -MathEnvir -{ - displaymath math eqnarray array equation - align alignat gather flalign multline -} - -##################################################################### -# -# These commands contain material which will be typeset as mathematics -# by LaTeX. The commands are assumed to have one mandatory argument -# which is in math mode. This turns on/off some warnings. -# - -MathCmd -{ - \ensuremath -} - -##################################################################### -# -# These commands contain material which will _not_ be typeset as -# mathematics by LaTeX even if it would otherwise be in mathmode. The -# commands are assumed to have one mandatory argument which is in text -# mode. This turns on/off some warnings. -# - -TextCmd -{ - \text \intertext \shortintertext \mbox -} - -##################################################################### -# -# These environments contains material which contents should be -# ignored. -# -# We will automagically append a * to each keyword. -# - -VerbEnvir -{ - verbatim comment listing verbatimtab rawhtml errexam picture texdraw - filecontents pgfpicture tikzpicture minted lstlisting IPA -} - -##################################################################### -# -# ChkTeX does automagically catch most abbreviations; the ones we -# need to list here, are those which are most likely to be followed -# by a word with an upper-case letter (that is not the beginning of a -# new sentence). -# -# The case-insensitive abbreviations are not really case-insensitive, -# it seems to be more practical to only let the first character be -# case-insensitive, while the remaining are case-sensitive. -# -# To speed up the searching process somewhat, we require that these -# end in a `.', this should not be a problem. -# -# Much of this work (both the abbreviations below, and the regexps -# necessary to catch the remaining automatically) have been provided -# by Russ Bubley, . -# - -Abbrev -{ -# Ordinals -1st. 2nd. 3rd. 4th. -# Titles -Mr. Mrs. Miss. Ms. Dr. Prof. St. - -# -# Days -# Mon. Tue. Wed. Thu. Fri. Sat. Sun. -# -# Months -# Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec. -# -# Letters -# Kt. Jr. -# -# Corporate -# Co. Ltd. -# -# Addresses -# Rd. Dr. St. Ave. Cres. Gdns. Sq. Circ. Terr. Pl. Arc. La. Clo. Ho. Est. Gn. -# -# Misc. -# oe. pbab. ps. rsvp. Tx. -} -[ -### -# -# The first letter is case-insensitive in the abbrevs in this -# list. Due to the nature of the checking algorithm used for -# this, entries consisting of only one character will be -# silently ignored. -# -## - -# Latin -# cf. "et al." etc. qed. qv. viz. -# -# Corporate -# inc. plc. -# -# Misc -# fax. pcs. qty. tel. misc. -] - -##################################################################### -# -# Commands which accent characters, meaning that \i or \j (\imath and -# \jmath in mathmode) should be used instead of `i' and `j' -# - -IJAccent -{ - \hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot - - \' \` \^ \" \~ \= \. \u \v \H \t - -### -# -# The remaining accent commands (\c,\d,\b) put their accent _under_ -# the character, not above, and should thus be used with normal i's -# and j's. -# -### - -} - -##################################################################### -# -# Commands which, when the group is terminated, needs italic -# correction. -# - -Italic -{ - \it \em \sl - \itshape \slshape -} - -##################################################################### -# -# Commands which makes the font non-italic. -# - -NonItalic -{ - \bf \rm \sf \tt \sc - \upshape -} - -##################################################################### -# -# Commands which put their argument into italic (and thus possibly -# needs italic correction in the end). -# -# This is currently empty, since \textit, \textsl and \emph do that -# automatically. -# - -ItalCmd -{ -} - -##################################################################### -# -# These commands all have in common that a pagebreak right in front -# of them is highly undesirable; thus there should be no space in -# front of them. -# - -PostLink -{ - \index \label -} - -##################################################################### -# -# These commands should not have a space in front of them for various -# reasons. I.e. much the same as POSTLINK, but produces another -# warning. -# - -NotPreSpaced -{ - \footnote \footnotemark \/ -} - -##################################################################### -# -# The commands listed here, should be prepended with a `~', as in -# "look in table~\ref{foo}", to avoid the references being split -# across lines. -# - -Linker -{ - \ref \vref \pageref \eqref \cite -} - -##################################################################### -# -# Commands/characters which should have \cdots in between, e.g. -# $1+2+3+\cdots+n$. -# - -CenterDots -{ - = + - \cdot \div & \times \geq \leq < > -} - -##################################################################### -# -# Commands/characters which should have \ldots in between, e.g. -# $1,2,3,\ldots,n$. -# - -LowDots -{ - . , ; -} - -##################################################################### -# -# In maths mode, there are certain aliases for mathematical operators -# like sin, cos, etc. Ignore the leading backslash in the commands, -# and so forth. You should list these below. -# - -MathRoman -{ - log lg ln lim limsup liminf sin arcsin sinh cos arccos cosh tan - arctan tanh cot coth sec csc max min sup inf arg ker dim hom det - exp Pr gcd deg bmod pmod mod -} - -##################################################################### -# -# These TeX commands have become unnecessary, as there are LaTeX -# commands that does the same. Purists should thus avoid these in -# their code. -# -# (These are a spell-corrected version of those lacheck uses). -# - -Primitives -{ - \above \advance \catcode \chardef \closein \closeout \copy \count - \countdef \cr \crcr \csname \delcode \dimendef \dimen \divide - \expandafter \font \hskip \vskip \openout -} - -##################################################################### -# -# Format: \command:characters -# -# We'll emit a warning if any of characters are found after the -# command. -# - -NoCharNext -{ - \left:{}$ \right:{}$ -} - -##################################################################### -# -# We're killing \verb@...@ commands and the arguments of the commands -# listed above in WipeArg by overwriting them with a string or a -# single character. -# -# This should not contain an alphabetic character (in case the user -# writes (\foo\verb@bar@), neither should it contain be one of -# LaTeX's reserved characters (`#$%&~_^\{}'), or any parenthesis -# character ('()[]{}'). If possible, don't use a punctuation -# character, either, or any spacing character. -# -# The asterisk is also unsuitable, as some commands behave in another -# way if they are appended with an asterisk. Which more or less -# leaves us with the pipe. -# -# Please note that this may also be a _string_, which will be -# repeated until the proper length is reached. -# - -VerbClear = "|" - -# -# All for now - have fun. -# -##################################################################### diff --git a/support/chktex/chktexrc.in b/support/chktex/chktexrc.in new file mode 100644 index 0000000000..491a5792fc --- /dev/null +++ b/support/chktex/chktexrc.in @@ -0,0 +1,989 @@ +#### -*- conf -*- #### +##### TODO: Do I want a TOC? Index?... +##### TODO: Use something besides errexam? +##### TODO: Color/frame for default value +############################################################################### +#### This fiie is input to a simple "tangle" process. The extions of .in is +#### a little misleading in that it's not managed by autotools or m4. Sorry. +#### +#### Two different files are created from this file by calling MakeChkTeXRC.pl +#### 1. chktexrc, a self-documenting chktecrc example +#### a. Lines with 3 (or more) leading #'s are discarded +#### b. Other lines are kept as is +#### 2. ChkTeXRC.tex, LaTeX documentation for chktecrc. +#### a. Lines with 4 (or more) leading #'s are discarded +#### b. Lines with 0 or 2 (exactly) leading #'s are discarded +#### c. Lines with 1 or 3 (exactly) leading #'s are turned in (LaTeX-only) lines +#### +#### In other words +#### 1. Lines with 1 or 3 leading #'s are included in the LaTeX +#### documentation with the #'s stripped off +#### 2. Lines with 0, 1 or 2 are included as is in the example +#### chktexrc file +#### # +############################################################################### +## Example resource file for ChkTeX. +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +## +## For more information visit https://www.nongnu.org/chktex/ +## + +### \subsubsection{The \rsrc\ file format} +## chktexrc file format +# +# The chktecrc file is essentially a bunch of variable assignments. +# There are two types of variables, those that take single items and +# those that take lists. +# +# In turn, there are two types of lists, case-sensitive and case-insentive. +# Case-sensitive lists are delimited by @verb@{@endverb@ and @verb@}@endverb@ +# while case-insensitive are delimited by @verb@[@endverb@ and @verb@]@endverb@. +# Only some variables support case insensitive lists, since in many +# cases it doesn't make sense and would be unnecessarily slow. Those +# variables that @emph@do@endemph@ support case-insensitive lists will be marked as +# such throughout the file. +# +# Variables can be set with or without an equals sign. If included, the +# @verb@=@endverb@ causes the variable to be overwritten. This is the only thing +# that makes sense for varibles taking a single item and so we always +# include it in that case. For list variables, omitting the equals +# sign will cause the items in the list to be appended instead of +# overwriting the entire list. +# +# Below are all the ways in which a variable can be set. Note that lists +# can span lines, though this is not shown here for brevity. +# +# +### \begin{verbatim} +# VariableName = item +# # Overwrites +# VariableName = { Item1 Item2 ... } +# VariableName = [ item1 item2 ... ] +# VariableName = { Item1 Item2 ... } [ item item ... ] +# VariableName = [ item1 item2 ... ] { Item Item ... } +# # Appends +# VariableName { Item3 Item4 ... } +# VariableName [ item3 item4 ... ] +# VariableName { Item3 Item4 ... } [ item item ... ] +# VariableName [ item3 item4 ... ] { Item Item ... } +### \end{verbatim} +# +# +# Comments begin with @verb@#@endverb@, and continue for the end of the line. +# Blank lines plus leading and trailing spaces are ignored. +# Items are separated by spaces. +# Newlines are considered spaces, but can't be escaped. +# You can use double quotes @verb@"@endverb@ to surround an item with spaces, or you can +# escape spaces as described later. +# +# Detection of tokens like @verb@}@endverb@ are somewhat context sensitve---they +# have to be preceded by a space (or newline). This allows them to be +# part of an item without escaping. Since some variables require such +# characters, this generally makes life easier. +# +# To include characters that might otherwise interfere, escape +# sequences are provided. They are similar to those in C, but use +# @verb@!@endverb@ instead of @verb@\@endverb@ for obvious reasons. +# The entire list is below. +# +### \vspace{0.5\baselineskip} +### \begin{tabular}{p{0.2\textwidth}p{0.7\textwidth}} +# @bf Sequence @&@ @bf Resulting character @\\@ +# @verb@! @endverb@ @&@ Space @\\@ +# @verb@!"@endverb@ @&@ @verb@"@endverb@ @\\@ +# @verb@!#@endverb@ @&@ @verb@#@endverb@ @\\@ +# @verb@!!@endverb@ @&@ @verb@!@endverb@ @\\@ +# @verb@!{@endverb@ @&@ @verb@{@endverb@ @\\@ +# @verb@!}@endverb@ @&@ @verb@}@endverb@ @\\@ +# @verb@![@endverb@ @&@ @verb@[@endverb@ @\\@ +# @verb@!]@endverb@ @&@ @verb@]@endverb@ @\\@ +# @verb@!=@endverb@ @&@ @verb@=@endverb@ @\\@ +# @verb@!b@endverb@ @&@ Backspace @\\@ +# @verb@!n@endverb@ @&@ New line @\\@ +# @verb@!r@endverb@ @&@ Carriage return @\\@ +# @verb@!t@endverb@ @&@ Tab @\\@ +# @verb@!f@endverb@ @&@ Form feed @\\@ +# @verb@!xNN@endverb@ @&@ NN must be a hexadecimal number (00 - ff), +# both characters must be included. @\\@ +# @verb@!dNNN@endverb@ @&@ NNN must be a decimal number (000 - 255), all +# three characters must be included. +# Unspecified results if NNN > 377. @\\@ +# @verb@!NNN@endverb@ @&@ NNN must be a octal number (000 - 377), all +# three characters must be included. +# Unspecified results if NNN > 377. +### \end{tabular} + +### \subsubsection{Settings in the \rsrc\ file} +## Available Settings +# +# All avaiable settings follow. +# + +## QuoteStyle +### \medskip +### \begin{chktexrcsimplevar}{QuoteStyle} +# +# The type of quote-style you are using. There are currently two +# styles: +# +# Traditional: +### \begin{errexam} +# "An example," he said, "would be great." +### \end{errexam} +# +# Logical: +### \begin{errexam} +# "An example", he said, "would be great". +### \end{errexam} +# +### \chktexrcdefault\begin{verbatim} +QuoteStyle = Logical +### \end{verbatim} +### \end{chktexrcsimplevar} + + +## TabSize +### \begin{chktexrcsimplevar}{TabSize} +# +# The width of a tab. This is used for formatting the error message. +# Only positive integers are allowed. +# +### \chktexrcdefault\begin{verbatim} +TabSize = 8 +### \end{verbatim} +### \end{chktexrcsimplevar} + + +## CmdSpaceStyle +### \medskip +### \begin{chktexrcsimplevar}{CmdSpaceStyle} +# +# How to treat a command is followed by punction. In all cases the +# warnings are also governed by the main warning settings, namely +# warnings 12 and 13 about interword and intersentence spacings. +### These can be found on page~\pageref{warn:interword}. +# +# If set to Ignore, then it won't print any warnings when pucntuation +# follows a command. +# +# +# If CmdSpaceStyle is set to InterWord, then it will print warnings +# when interword spacing should (potentially) be used. For example, +# without a command the following will trigger warning 12 +# +### \begin{errexam} +# @verb@I've seen a UFOs, etc. in my life.@endverb@ +### \end{errexam} +# +# And if set to InterWord, so will +# +### \begin{errexam} +# @verb@I've seen a UFOs, \etc. in my life.@endverb@ +### \end{errexam} +# +# +# If set to InterSentence, then it will print warnings when +# intersentence spacing should (potentially) be used. For example, +# without a command the following will trigger warning 13 +# +### \begin{errexam} +# @verb@I've seen an UFO! Right over there!@endverb@ +### \end{errexam} +# +# And if set to InterSentence, so will +# +### \begin{errexam} +# @verb@I've seen an \UFO! Right over there!@endverb@ +### \end{errexam} +# +# +# Setting CmdSpaceStyle to Both will cause warnings to be printed in +# both cases. +# +### \chktexrcdefault\begin{verbatim} +CmdSpaceStyle = Ignore +### \end{verbatim} +### \end{chktexrcsimplevar} + + +## CmdLine +### \begin{chktexrclistvar}{CmdLine} +# +# Default command-line options. For instance, you might like to put +# @verb@-v2@endverb@ here. +# +### \chktexrcdefault\begin{verbatim} +CmdLine +{ +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## UserWarn +### \begin{chktexrclistvar*}{UserWarn} +# +# Arbitrary strings to warn about. You can put here to help you find +# your own little foibles. See also@ref@UserWarnRegex@endref@. +# +# These patterns will be searched for throughout the text; regardless +# of whether they appear as normal text, commands, in math mode, etc. +# They are @emph@not@endemph@ found in comments. +# +# Suppose you define a special command like this: +### \begin{verbatim} +# \def\unknown{\large\bf??} +### \end{verbatim} +# which you use whenever you don't have some information at the time +# of writing. Thus, it makes sense to warn on it, and this is a +# convenient way to do so. +# +### \chktexrcdefault\begin{verbatim} +UserWarn +{ + \unknown + # One should write \chktex or Chk\TeX - never ChkTeX. + ChkTeX +} +[ # You may put case-insensitive patterns here. +] +### \end{verbatim} +### \end{chktexrclistvar*} + + +## UserWarnRegex +### \begin{chktexrclistvar}{UserWarnRegex} +# +# A more sophisticated version of@ref@UserWarn@endref@ using regular +# expressions. Use of these will be automatically disabled if @ChkTeX@ +# was built without regular expression support. Because @ChkTeX@ can be +# with support for either POSIX or PCRE flavors of regular expression, +# some of the following will not apply in all cases. An expression +# can be defined only when PCRE is enabled by prepending the +# expression with @verb@PCRE:@endverb@ and similarly with @verb@POSIX:@endverb@. +# +# These patterns will be searched for, no matter whether they appear +# as normal text, commands, or arguments. However, they will @emph@not@endemph@ +# match in verbatim environments (see@ref@VerbEnvir@endref@). +# +# Remember that you have to escape (with a @verb@!@endverb@) the characters +# @verb@"#!=@endverb@, as well as spaces and @verb@{}[]@endverb@ if they are +# proceeded by a space. +# +# When using PCRE regular expressions, you can use @verb@(?i)@endverb@ to make +# the expression case insensitive. See the man pages (man pcresyntax) +# or the nicely formatted http://perldoc.perl.org/perlre.html for +# documentation on the regular expression syntax. Note, however, that +# some the features of perl regular expression are not available such +# as running code (callouts), and replacing. +# +# An initial PCRE-style comment @verb@(?# ... )@endverb@ can be used +# to change what is displayed, thereby reminding yourself how to fix +# the problem. This works even for POSIX expressions. +# +### \chktexrcdefault\begin{verbatim} +UserWarnRegex +{ + (?!#Always! use! \nmid)\\not! *(\||\\mid) + + # Capitalize section when saying Section 6. + (?!#-1:Capitalize! before! references)PCRE:\b(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref + (?!#1:Capitalize! before! references)POSIX:([^[:alnum:]]|^)(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref + + # Spell it introduction + # PCRE:(?i)\bintro\b(?!#Spell! it! out.! This! comment! is! not! used.) + # POSIX:([^[:alnum:]]|^)intro([^[:alnum:]]|$) + + # Pretty tables--see http://texdoc.net/texmf-dist/doc/latex/booktabs/booktabs.pdf + (?!#-2:Use! \toprule,! midrule,! or! \bottomrule! from! booktabs)\\hline + # This relies on it being on a single line, and not having anything + # else on that line. With PCRE we could match balanced [] and {}, + # but I wonder if it's worth the complexity... + (?!#-2:Vertical! rules! in! tables! are! ugly)\\begin\{(array|tabularx?\*?)\}(\[.*\])?\{.*\|.*\} + + (?!#-3:Optional! arguments! []! inside! optional! arguments! []! must! be! enclosed! in! {})\[(?!![^\]\[{}]*{(?!![^\]\[{}]*}))[^\]]*\[ + +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## TeXInputs +### \begin{chktexrclistvar}{TeXInputs} +# +# A list of paths where @ChkTeX@ should look for files it @verb@\input@endverb@s. +# By default, the current directory is searched (not recursively, use +# @verb@//@endverb@ for that, see below). +# +# A @verb@//@endverb@ postfix is supported: +# if you append a double path-separator we'll recursively search that +# directory's directories. MS-DOS users must append @verb@\\@endverb@ +# instead, e.g. @verb@C:\EMTEX\\@endverb@. In order to search an +# entire directory tree, you must use @emph@three@endemph@ slashes, +# e.g. @verb@c:\\\@endverb@ or @verb@///@endverb@. +# +### \chktexrcdefault\begin{verbatim} +TeXInputs +{ +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## OutFormat +### \begin{chktexrclistvar}{OutFormat} +# +# Output formats which can be selected from the command-line. The +# @verb@-v@endverb@ option simply indexes into this list. By default, entry number +# @emph@two@endemph@ in this list is chosen (counting from 0), and @verb@-v@endverb@ +# without any parameter selects entry number @emph@three@endemph@. +# +# For explanation of the @verb@%@endverb@ format specifiers see the +# documentation of the @verb@--format@endverb@ command-line argument +### \begin{comment} +# in the manual. +### \end{comment} +### on page~\pageref{clarg:format}. +# +# Recall that to use @verb@!@endverb@ is the escape character, not @verb@\@endverb@. +# +### \chktexrcdefault\begin{verbatim} +OutFormat +{ + # -v0; silent mode + %f%b%l%b%c%b%n%b%m!n + # -v1; normal mode + "%k %n in %f line %l: %m!n%r%s%t!n%u!n" + # -v2; fancy mode + "%k %n in %f line %l: %m!n%r%i%s%I%t!n!n" + # -v3; lacheck mode + "!"%f!", line %l: %m!n" + # -v4; verbose lacheck mode + "!"%f!", line %l: %m!n%r%s%t!n%u!n" + # -v5; no line number, ease auto-test + "%k %n in %f: %m!n%r%s%t!n%u!n" + # -v6; emacs compilation mode + "!"%f!", line %l.%c:(#%n) %m!n" +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## Silent +### \begin{chktexrclistvar*}{Silent} +# +# Commands which should not trigger a warning if terminated by a space. +# This warning will not trigger in math mode. +# +# You can also specify regular expressions in the @verb@[]@endverb@ +# section in case you have many custom macros that can be safely +# terminated with a space. +# +### \chktexrcdefault\begin{verbatim} +Silent +{ + \rm \em \bf \it \sl \sf \sc \tt \selectfont + \rmfamily \sffamily \ttfamily \mdseries \bfseries \itshape + \slshape \scshape \relax + \vskip \pagebreak \nopagebreak + + \textrm \textem \textbf \textit \textsl \textsf \textsc \texttt + + \clearpage \ddots \dotfill \flushbottom \fussy \indent \linebreak + \onecolumn \pagebreak \pushtabs \poptabs \scriptsize \sloppy + \twocolumn \vdots + \today \kill \newline \thicklines \thinlines + + \columnsep \space \item \tiny \footnotesize \small \normalsize + \normal \large \Large \LARGE \huge \Huge \printindex + + \newpage \listoffigures \listoftables \tableofcontents + \maketitle \makeindex + + \hline \hrule \vrule + + \centering + + \noindent \expandafter + + \makeatletter \makeatother + + \columnseprule + + \textwidth \textheight \hsize \vsize + + \if \fi \else + + \csname \endcsname + + \z@ \p@ \@warning \typeout + + \dots \ldots \input \endinput \nextline \leavevmode \cdots + \appendix \listfiles \and \quad \bigskip \medskip \smallskip + \hskip \vfill \vfil \hfill \hfil \topmargin \oddsidemargin + \frenchspacing \nonfrenchspacing + \begingroup \endgroup \par + + \vrefwarning \upshape \headheight \headsep \hoffset \voffset + \cdot \qquad \left \right \qedhere \xspace + + \addlinespace \cr \fill \frontmatter + \toprule \midrule \bottomrule +}[ + # Here you can put regular expressions to match Silent macros. It + # was designed for use with many custom macros sharing a common + # prefix, but can of course be used for other things. + + # Support ConTeXt to at least some extent + \\start.* \\stop.* +] +### \end{verbatim} +### \end{chktexrclistvar*} + + +## HyphDash +### \begin{chktexrclistvar}{HyphDash} +# +# The number of dashes allowed between two alphabetic characters. +# Use 0 to always return an error. For example: +### \begin{errexam} +# foo-bar @\\@ +# Use of two--dashes is not usually allowed in English. @\\@ +# like this---see? +### \end{errexam} +# +# For English, this will often be a single dash (hyphen). If you like +# m-dashes with no spaces between them and the surrounding words, then +# it should include 3 as well. There @emph@are@endemph@ cases when an n-dash +# is valid between two alphabetic characters. See@ref@DashExcpt@endref@. +# +### \chktexrcdefault\begin{verbatim} +HyphDash { 1 3 } +### \end{verbatim} +### \end{chktexrclistvar} + + +## NumDash +### \begin{chktexrclistvar}{NumDash} +# +# The number of dashes allowed between two numeric characters. +# Use 0 to always return an error. This does @emph@not@endemph@ apply in +# math mode. For example: +### \begin{errexam} +# 123--456 is a range @\\@ +# $12-4$ \% okay because it's in math mode +### \end{errexam} +# +# For English, this should be 2 because an n-dash is used to indicate +# a range of numbers and subtraction should be in math mode where this +# does not apply. +# +### \chktexrcdefault\begin{verbatim} +NumDash { 2 } +### \end{verbatim} +### \end{chktexrclistvar} + + +## WordDash +### \begin{chktexrclistvar}{WordDash} +# +# The number of dashes allowed between two space characters. +# Use 0 to always return an error. For example: +### \begin{errexam} +# not like - this, @\\@ +# or like -- this. @\\@ +# like this --- see? +### \end{errexam} +# +### \chktexrcdefault\begin{verbatim} +WordDash { 3 } +### \end{verbatim} +### \end{chktexrclistvar} + + +## DashExcpt +### \begin{chktexrclistvar}{DashExcpt} +# +# Exceptions to the dash rules above. For example, an n-dash +# @verb@--@endverb@ between words is usually wrong, but in some cases it is correct, +# such as when naming a theorem. The Birch--Swinnerton-Dyer +# conjecture is one example where the difference matters. You can +# tell that Birch is one person and Swinnerton-Dyer is another based +# on the dashes used. +# +# Adding line suppressions for these is possible, but can quickly +# become tedious if a certain theorem is referenced often. For this +# reason exceptions can be specified here. They are case-sensitive. +# +# Unfortunately, there are no warnings if the dashes are surrounded by differing +# types of characters. For example: +### \begin{errexam} +# like this ---see? (space and alphabet) @\\@ +# a--123 (number and alphabet) @\\@ +# a.--b. (other character, namely @verb@.@endverb@) +### \end{errexam} +# Similarly, no warnings are issued if the hyphenation is correct, +# according to the other rules, for example: +### \begin{errexam} +# Birch-Swinnerton-Dyer +### \end{errexam} +# +### \chktexrcdefault\begin{verbatim} +DashExcpt +{ + Birch--Swinnerton-Dyer +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## WipeArg +### \begin{chktexrclistvar}{WipeArg} +# +# Commands whose arguments aren't @LaTeX@ code, and thus should be +# ignored. +# +# After the command, you may place arguments (separated from the +# command with a colon) that should be wiped. Use @verb@[]@endverb@ for optional +# arguments, @verb@{}@endverb@ for required ones, and @verb@*@endverb@ if the command supports a +# star variant. Some commands (e.g.\@ @verb@\cmidrule@endverb@) use @verb@()@endverb@ to +# delimit an optional argument and so this syntax is supported as well. +# +# For instance, if you would like to wipe the @verb@\newcommand@endverb@ command, +# you would declare it as @verb@\newcommand:*[][]{}@endverb@ since it has a +# star variant, two optional arguments, and one required argument. +# +# These commands may be ``evaluated'' before they're wiped, so you will +# typically list filehandling commands and similar here. +# +### \chktexrcdefault\begin{verbatim} +WipeArg +{ + \label:{} \ref:{} \eqref:{} \vref:{} \pageref:{} \index:[]{} + \cite:[][]{} \nocite:{} + \input:{} \verbatiminput:[]{} \listinginput:[]{}{} + \graphicspath:{} + \verbatimtabinput:[]{} \include:{} \includeonly:{} + \bibitem:[]{} + \cline:{} \cmidrule:[](){} + \href:{}{} + # Cleveref -- there are many others that could be here as well... + \cref:*{} \cpageref:*{} \crefrange:*{}{} \cpagerefrange:*{}{} + \Cref:*{} \Cpageref:*{} \Crefrange:*{}{} \Cpagerefrange:*{}{} + # natbib + \citet:*[][]{} \citep:*[][]{} \citealt:*{} \citealp:*[]{} \citeauthor:*{} + \Citet:*[][]{} \Citep:*[][]{} \Citealt:*{} \Citealp:*[]{} \Citeauthor:{} + \citetext:{} \citeyear:*{} \citeyearpar:{} + # biblatex - not including special commands + \autocite:*[][]{} \autocites:*[][]{} \Autocite:*[][]{} \Autocites:*[][]{} + \parencite:*[][]{} \parencites:*[][]{} \Parencite:*[][]{} \Parencites:*[][]{} + \footcite:*{} \footcites:*[][]{} \Footcite:*[][]{} \Footcites:*[][]{} + \textcite:*{} \textcites:*[][]{} \Textcite:*[][]{} \Textcites:*[][]{} + \citeauthor:*{} \citeauthors:*[][]{} \Citeauthor:*[][]{} \Citeauthors:*[][]{} + \citeyear:*{} \citeyears:*[][]{} \Citeyear:*[][]{} \Citeyears:*[][]{} + \citetitle:*{} \citetitles:*[][]{} \Citetitle:*[][]{} \Citetitles:*[][]{} + # tipa which uses " + \textipa:{} + # LuaTeX + \directlua:{} \luaescapestring:{} +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## MathEnvir +### \begin{chktexrclistvar}{MathEnvir} +# +# Environments which typeset their contents as mathematics. +# This turns on/off some warnings. +# +# A @verb@*@endverb@ variant is automatically added for each keyword. +# +### \chktexrcdefault\begin{verbatim} +MathEnvir +{ + displaymath math eqnarray array equation + align alignat gather flalign multline + dmath dgroup darray +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## TextEnvir +### \begin{chktexrclistvar}{TextEnvir} +# +# Environments which typeset their contents as text, for use inside +# mathematics. This turns on/off some warnings. +# +### \chktexrcdefault\begin{verbatim} +TextEnvir +{ + dsuspend +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## MathCmd +### \begin{chktexrclistvar}{MathCmd} +# +# Commands whose argument will be typeset as mathematics. +# The commands are assumed to have one mandatory argument which is in +# math mode. This turns on/off some warnings. +# +### \chktexrcdefault\begin{verbatim} +MathCmd +{ + \ensuremath +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## TextCmd +### \begin{chktexrclistvar}{TextCmd} +# +# Commands whose argument will @emph@not@endemph@ be typeset as +# mathematics even if it would otherwise be in math mode. +# The commands are assumed to have one mandatory argument which is in +# text mode. This turns on/off some warnings. +# +### \chktexrcdefault\begin{verbatim} +TextCmd +{ + \text \intertext \shortintertext \mbox \condition +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## VerbEnvir +### \begin{chktexrclistvar}{VerbEnvir} +# +# Environments containing non-@LaTeX@ content of some kind, and +# therefore should not trigger any warnings. +# +# A @verb@*@endverb@ variant is automatically added for each keyword. +# +### \chktexrcdefault\begin{verbatim} +VerbEnvir +{ + verbatim comment listing verbatimtab rawhtml errexam picture texdraw + filecontents pgfpicture tikzpicture minted lstlisting IPA +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## Abbrev +### \begin{chktexrclistvar*}{Abbrev} +# +# Abbreviations not automatically handled by @ChkTeX@. +# +# @ChkTeX@ automagically catches most abbreviations; the ones we need to +# list here, are those which are most likely to be followed by a word +# with an upper-case letter which is not the beginning of a new +# sentence. +# +# The case-insensitive abbreviations are not fully case-insensitive. +# Rather, only the first character is case-insensitive, while the +# remaining characters are case-sensitive. +# +# To speed up the searching process somewhat, we require that these +# end in a @verb@.@endverb@ which should not be a problem in practice. +# +# Much of this work (both the abbreviations below, and the regular +# expressions necessary to catch the remaining automatically) have +# been provided by Russ Bubley, . +# +### \chktexrcdefault\begin{verbatim} +Abbrev +{ + # Ordinals + 1st. 2nd. 3rd. 4th. + # Titles + Mr. Mrs. Miss. Ms. Dr. Prof. St. + # + # Days + # Mon. Tue. Wed. Thu. Fri. Sat. Sun. + # + # Months + # Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec. + # + # Letters + # Kt. Jr. + # + # Corporate + # Co. Ltd. + # + # Addresses + # Rd. Dr. St. Ave. Cres. Gdns. Sq. Circ. Terr. Pl. Arc. La. Clo. Ho. Est. Gn. + # + # Misc. + # oe. pbab. ps. rsvp. Tx. +} +[ + # The first letter is case-insensitive in the abbrevs in this + # list. Due to the nature of the checking algorithm used for + # this, entries consisting of only one character will be + # silently ignored. + # + # Latin + # cf. "et al." etc. qed. qv. viz. + # + # Corporate + # inc. plc. + # + # Misc + # fax. pcs. qty. tel. misc. +] +### \end{verbatim} +### \end{chktexrclistvar*} + + +## IJAccent +### \begin{chktexrclistvar}{IJAccent} +# +# Commands which add accents above characters. This means that @verb@\i@endverb@ or @verb@\j@endverb@ +# (@verb@\imath@endverb@ and @verb@\jmath@endverb@ in mathmode) should be used instead of @verb@i@endverb@ and @verb@j@endverb@. +# +# Other accent commands such as @verb@\c@endverb@, @verb@\d@endverb@, and @verb@\b@endverb@, put their accent under +# the character, and thus should be used with normal @verb@i@endverb@s and @verb@j@endverb@s. +# +### \chktexrcdefault\begin{verbatim} +IJAccent +{ + \hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot + \' \` \^ \" \~ \= \. \u \v \H \t +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## Italic +### \begin{chktexrclistvar}{Italic} +# +# Commands which need italic correction when the group is terminated. +# +### \chktexrcdefault\begin{verbatim} +Italic +{ + \it \em \sl \itshape \slshape +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## NonItalic +### \begin{chktexrclistvar}{NonItalic} +# +# Commands which makes the font non-italic. +# +### \chktexrcdefault\begin{verbatim} +NonItalic +{ + \bf \rm \sf \tt \sc + \upshape +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## ItalCmd +### \begin{chktexrclistvar}{ItalCmd} +# +# Commands which put their argument into italic (and thus possibly +# needs italic correction in the end). +# +# This is currently empty, since @verb@\textit@endverb@, @verb@\textsl@endverb@, and @verb@\emph@endverb@ +# automatically add italic corecction. +# +### \chktexrcdefault\begin{verbatim} +ItalCmd +{ +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## PostLink +### \begin{chktexrclistvar}{PostLink} +# +# Commands in front of which a page break is highly undesirable. +# Thus there should be no space in front of them. +# +### \chktexrcdefault\begin{verbatim} +PostLink +{ + \index \label +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## NotPreSpaced +### \begin{chktexrclistvar}{NotPreSpaced} +# +# Commands that should not have a space in front of them for various +# reasons. Much the same as@ref@PostLink@endref@, but produces a different warning. +# +### \chktexrcdefault\begin{verbatim} +NotPreSpaced +{ + \footnote \footnotemark \/ +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## Linker +### \begin{chktexrclistvar}{Linker} +# +# Commands that should be prepended with a @verb@~@endverb@. For example +### \begin{errexam} +# @verb@look in table~\ref{foo}@endverb@ +### \end{errexam} +# to avoid the references being split across lines. +# +### \chktexrcdefault\begin{verbatim} +Linker +{ + \ref \vref \pageref \eqref \cite +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## CenterDots +### \begin{chktexrclistvar}{CenterDots} +# +# Commands or characters which should have @verb@\cdots@endverb@ in between. +# For example, $1+2+3+\cdots+n$. +# +### \chktexrcdefault\begin{verbatim} +CenterDots +{ + = + - \cdot \div & \times \geq \leq < > +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## LowDots +### \begin{chktexrclistvar}{LowDots} +# +# Commands or characters which should have @verb@\ldots@endverb@ in between. +# For example, $1,2,3,\ldots,n$. +# +### \chktexrcdefault\begin{verbatim} +LowDots +{ + . , ; +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## MathRoman +### \begin{chktexrclistvar}{MathRoman} +# +# Words that should appear in roman (upright) in math mode. There are +# certain aliases for mathematical operators (like sin or cos) that +# appear in roman rather than the usual italic (slanted) font. +# +# These entries do not need a leading slash since the mistake is often +# to @emph@not@endemph@ include the leading slash. +# +### \chktexrcdefault\begin{verbatim} +MathRoman +{ + log lg ln lim limsup liminf sin arcsin sinh cos arccos cosh tan + arctan tanh cot coth sec csc max min sup inf arg ker dim hom det + exp Pr gcd deg bmod pmod mod +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## Primitives +### \begin{chktexrclistvar}{Primitives} +# +# Commands that are used in @TeX@ but have become unnecessary in +# @LaTeX@, as there are @LaTeX@ commands which do the same. Purists +# should thus avoid these in their code. +# +### \chktexrcdefault\begin{verbatim} +Primitives +{ + \above \advance \catcode \chardef \closein \closeout \copy \count + \countdef \cr \crcr \csname \delcode \dimendef \dimen \divide + \expandafter \font \hskip \vskip \openout +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## NoCharNext +### \begin{chktexrclistvar}{NoCharNext} +# +# Commands and a set of characters that should @emph@not@endemph@ follow them. For +# example, in math mode, @verb@\left@endverb@ should be followed by a delimiter +# which is to change size. Therefore, it should not be followed by the +# end of math mode @verb@$@endverb@ or a grouping character @verb@{@endverb@ or @verb@}@endverb@. +# +# The format is @verb@\command:characters@endverb@. +# +### \chktexrcdefault\begin{verbatim} +NoCharNext +{ + \left:{}$ \right:{}$ +} +### \end{verbatim} +### \end{chktexrclistvar} + + +## VerbClear +### \begin{chktexrcsimplevar}{VerbClear} +# +# The character to replace verbatim text with. +# +# The arguments of commands listed in@ref@WipeArg@endref@, as well as +# @verb@\verb+...+@endverb@ commands, are replaced with an innocuous character +# to prevent that data from inadvertantly producing a warning. +# +# This should not contain an alphabetic character (in case the user +# writes (@verb@\foo\verb+bar+@endverb@), neither should it contain be one of +# @LaTeX@'s reserved characters (@verb@#$%&~_^\{}@endverb@), or any parenthesis +# character (@verb@()[]{}@endverb@). If possible, don't use a punctuation +# character or any spacing characters either. All of these characters +# have warnings associated with them and thus could cause spurious +# warnings to appear. +# +# The asterisk is also unsuitable, as some commands behave in another +# way if they are appended with an asterisk. Which more or less +# leaves us with the pipe. +# +# Please note that this may also be a @verb@string@endverb@, which will be +# repeated until the proper length is reached. +# +### \chktexrcdefault\begin{verbatim} +VerbClear = "|" +### \end{verbatim} +### \end{chktexrcsimplevar} + + +## That's all for now - Happy @LaTeX@ing! diff --git a/support/chktex/config.h.in b/support/chktex/config.h.in index 80401f8e31..8e7e5b994a 100644 --- a/support/chktex/config.h.in +++ b/support/chktex/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the `access' function. */ #undef HAVE_ACCESS @@ -35,9 +35,6 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H @@ -65,6 +62,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H @@ -130,7 +130,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if you have the ANSI C header files. */ +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Strip debug info */ diff --git a/support/chktex/configure b/support/chktex/configure index d5e4be46f6..a0c627111c 100755 --- a/support/chktex/configure +++ b/support/chktex/configure @@ -1,9 +1,10 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ChkTeX 1.7.6. +# Generated by GNU Autoconf 2.71 for ChkTeX 1.7.8. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -14,14 +15,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -31,46 +34,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -79,13 +82,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -94,8 +90,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -107,30 +107,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -152,20 +132,22 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -185,42 +167,53 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -228,14 +221,21 @@ fi esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -253,18 +253,19 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." @@ -291,6 +292,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -308,6 +310,14 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -322,7 +332,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -331,7 +341,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -370,12 +380,13 @@ as_fn_executable_p () # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -387,18 +398,27 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -410,9 +430,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -439,7 +459,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -483,7 +503,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -497,6 +517,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -510,6 +534,13 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -577,57 +608,55 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ChkTeX' PACKAGE_TARNAME='chktex' -PACKAGE_VERSION='1.7.6' -PACKAGE_STRING='ChkTeX 1.7.6' +PACKAGE_VERSION='1.7.8' +PACKAGE_STRING='ChkTeX 1.7.8' PACKAGE_BUGREPORT='' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= +ac_func_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS -WITH_PCRE EGREP GREP CPP +WITH_PCRE LATEX2HTML LYNX DVIPS LATEX +PDFLATEX GROFF PERL5 MKDIR_P @@ -664,6 +693,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -739,6 +769,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -768,8 +799,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -810,9 +839,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -836,9 +865,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -991,6 +1020,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1040,9 +1078,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1056,9 +1094,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1102,9 +1140,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1120,7 +1158,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1128,7 +1166,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1184,7 +1222,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1241,7 +1279,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ChkTeX 1.7.6 to adapt to many kinds of systems. +\`configure' configures ChkTeX 1.7.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1281,6 +1319,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1302,7 +1341,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ChkTeX 1.7.6:";; + short | recursive ) echo "Configuration of ChkTeX 1.7.8:";; esac cat <<\_ACEOF @@ -1353,9 +1392,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1383,7 +1422,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1391,7 +1431,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1400,10 +1440,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ChkTeX configure 1.7.6 -generated by GNU Autoconf 2.69 +ChkTeX configure 1.7.8 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1420,14 +1460,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1435,14 +1475,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1458,14 +1499,14 @@ fi ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1473,17 +1514,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1498,172 +1540,6 @@ fi } # ac_fn_c_try_link -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in @@ -1671,26 +1547,28 @@ fi ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile @@ -1702,17 +1580,18 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof ($2)) return 0; @@ -1720,12 +1599,13 @@ if (sizeof ($2)) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof (($2))) return 0; @@ -1733,18 +1613,19 @@ if (sizeof (($2))) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop eval "$3=yes" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -1756,11 +1637,12 @@ $as_echo "$ac_res" >&6; } ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 -$as_echo_n "checking for uint$2_t... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +printf %s "checking for uint$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. @@ -1770,7 +1652,7 @@ else /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; @@ -1780,7 +1662,8 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( @@ -1788,17 +1671,18 @@ if ac_fn_c_try_compile "$LINENO"; then : eval "$3=\$ac_type" ;; esac fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if eval test \"x\$"$3"\" = x"no"; then : +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : -else +else $as_nop break fi done fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t @@ -1809,11 +1693,12 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. @@ -1821,16 +1706,9 @@ else #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif + which can conflict with char $2 (); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -1848,47 +1726,51 @@ choke me #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { #ifndef $as_decl_name #ifdef __cplusplus @@ -1902,27 +1784,88 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_check_decl + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac -} # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ChkTeX $as_me 1.7.6, which was -generated by GNU Autoconf 2.69. Invocation command line was +It was created by ChkTeX $as_me 1.7.8, which was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -1955,8 +1898,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -1991,7 +1938,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2026,11 +1973,13 @@ done # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2041,8 +1990,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2066,7 +2015,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2074,14 +2023,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2089,15 +2038,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2105,8 +2054,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2120,63 +2069,48 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2186,61 +2120,477 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_func_c_list " vprintf HAVE_VPRINTF" + +# Auxiliary files required by this configure script. +ac_aux_files="install-sh" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2250,11 +2600,12 @@ $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi done if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2273,82 +2624,96 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu CLEAN= # Check whether --enable-pcre was given. -if test "${enable_pcre+set}" = set; then : +if test ${enable_pcre+y} +then : enableval=$enable_pcre; -else +else $as_nop enable_pcre=yes fi # Check whether --enable-posixre was given. -if test "${enable_posixre+set}" = set; then : +if test ${enable_posixre+y} +then : enableval=$enable_posixre; -else +else $as_nop enable_posixre=yes fi # Check whether --enable-lacheck-replace was given. -if test "${enable_lacheck_replace+set}" = set; then : +if test ${enable_lacheck_replace+y} +then : enableval=$enable_lacheck_replace; -else +else $as_nop enable_lacheck_replace=no fi # Check whether --enable-debug-info was given. -if test "${enable_debug_info+set}" = set; then : +if test ${enable_debug_info+y} +then : enableval=$enable_debug_info; -else +else $as_nop enable_debug_info=yes fi # Check whether --enable-coverage-testing was given. -if test "${enable_coverage_testing+set}" = set; then : +if test ${enable_coverage_testing+y} +then : enableval=$enable_coverage_testing; -else +else $as_nop enable_coverage_testing=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lacheck replacement should be installed" >&5 -$as_echo_n "checking whether lacheck replacement should be installed... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lacheck replacement should be installed" >&5 +printf %s "checking whether lacheck replacement should be installed... " >&6; } if test "$enable_lacheck_replace" = "yes"; then SCRIPTS="$SCRIPTS lacheck" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether runtime debug info should be used" >&5 -$as_echo_n "checking whether runtime debug info should be used... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether runtime debug info should be used" >&5 +printf %s "checking whether runtime debug info should be used... " >&6; } if test "$enable_debug_info" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else -$as_echo "#define STRIP_DEBUG 1" >>confdefs.h +printf "%s\n" "#define STRIP_DEBUG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether coverage testing is enabled" >&5 -$as_echo_n "checking whether coverage testing is enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether coverage testing is enabled" >&5 +printf %s "checking whether coverage testing is enabled... " >&6; } if test "$enable_coverage_testing" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage -O0" CLEAN="${CLEAN} \$(wildcard *.bb *.bbg *.da *.gcov)" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi + + + + + + + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2357,11 +2722,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2369,11 +2735,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2384,11 +2754,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2397,11 +2767,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2409,11 +2780,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2424,11 +2799,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2436,8 +2811,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2450,11 +2825,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2462,11 +2838,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2477,11 +2857,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2490,11 +2870,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2503,15 +2884,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2527,18 +2912,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2549,11 +2934,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -2561,11 +2947,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2576,11 +2966,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2593,11 +2983,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -2605,11 +2996,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2620,11 +3015,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2636,34 +3031,138 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi +else + CC="$ac_cv_prog_CC" fi fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -2673,7 +3172,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -2681,7 +3180,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -2693,9 +3192,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -2716,11 +3215,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -2737,7 +3237,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -2753,44 +3253,46 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -2804,15 +3306,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -2821,7 +3323,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -2833,8 +3335,8 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -2842,10 +3344,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -2853,39 +3355,40 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -2899,11 +3402,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -2912,31 +3416,32 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -2946,29 +3451,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -2977,57 +3486,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -3042,94 +3554,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -3139,37 +3701,38 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for strict prototypes" >&5 -$as_echo_n "checking CFLAGS for strict prototypes... " >&6; } -if ${ac_cv_cflags_strict_prototypes+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_cflags_strict_prototypes="no, unknown" - - ac_ext=c +ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - ac_save_CFLAGS="$CFLAGS" -for ac_arg in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" "-pedantic % -Wstrict-prototypes" "-pedantic % -Wmissing-prototypes" "-pedantic % -Werror-implicit-function-declaration" "-pedantic % -Wimplicit-function-declaration" # +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CFLAGS for strict prototypes" >&5 +printf %s "checking CFLAGS for strict prototypes... " >&6; } +if test ${ac_cv_cflags_strict_prototypes+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_cflags_strict_prototypes="no, unknown" +ac_save_CFLAGS="$CFLAGS" +for ac_arg in "-pedantic -Werror % -fstrict-prototypes -Wstrict-prototypes" "-pedantic -Werror % -Wstrict-prototypes" "-pedantic -Werror % -Wmissing-prototypes" "-pedantic -Werror % -Werror-implicit-function-declaration" "-pedantic -Werror % -Wimplicit-function-declaration" "-pedantic % -Wstrict-prototypes %% no, unsupported" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { return 0; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_cflags_strict_prototypes=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done case ".$ac_cv_cflags_strict_prototypes" in .|.no|.no,*) ;; @@ -3179,7 +3742,7 @@ case ".$ac_cv_cflags_strict_prototypes" in /* end confdefs.h. */ #include int -main () +main (void) { if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; @@ -3188,49 +3751,70 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 then ac_cv_cflags_strict_prototypes="no, suppressed, signal.h," ; fi ; fi -else +else $as_nop ac_cv_cflags_strict_prototypes="no, suppressed, signal.h" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext rm config.tmp ;; esac - CFLAGS="$ac_save_CFLAGS" - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - +CFLAGS="$ac_save_CFLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_strict_prototypes" >&5 -$as_echo "$ac_cv_cflags_strict_prototypes" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_strict_prototypes" >&5 +printf "%s\n" "$ac_cv_cflags_strict_prototypes" >&6; } + + case ".$ac_cv_cflags_strict_prototypes" in .ok|.ok,*) ;; - .|.no|.no,*) - ;; + .|.no|.no,*) ;; *) - if echo " $CFLAGS " | grep " $ac_cv_cflags_strict_prototypes " 2>&1 >/dev/null - then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS does contain \$ac_cv_cflags_strict_prototypes"; } >&5 - (: CFLAGS does contain $ac_cv_cflags_strict_prototypes) 2>&5 +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" $ac_cv_cflags_strict_prototypes "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$ac_cv_cflags_strict_prototypes"; } >&5 + (: CFLAGS already contains $ac_cv_cflags_strict_prototypes) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " $ac_cv_cflags_strict_prototypes" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$ac_cv_cflags_strict_prototypes\""; } >&5 - (: CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes") 2>&5 + ;; +esac + +else $as_nop + + CFLAGS=$ac_cv_cflags_strict_prototypes + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - CFLAGS="$CFLAGS $ac_cv_cflags_strict_prototypes" - fi + +fi ;; esac +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ansi= if test -z "$ansi"; then @@ -3238,11 +3822,12 @@ esac else msg="for C compiler warning and ANSI conformance flags" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -if ${vl_cv_prog_cc_warnings+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +printf %s "checking $msg... " >&6; } +if test ${vl_cv_prog_cc_warnings+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then cat > conftest.c <&5 -$as_echo "$vl_cv_prog_cc_warnings" >&6; } - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $vl_cv_prog_cc_warnings" >&5 +printf "%s\n" "$vl_cv_prog_cc_warnings" >&6; } -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -# Find a good install program. We prefer a C program (faster), + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install @@ -3377,20 +3935,25 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -3400,13 +3963,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else @@ -3414,12 +3977,12 @@ case $as_dir/ in #(( echo one > conftest.one echo two > conftest.two mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -3435,7 +3998,7 @@ IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -3445,8 +4008,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -3456,36 +4019,42 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "no, using $LN_S" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done @@ -3496,7 +4065,7 @@ IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then + if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a @@ -3506,18 +4075,19 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in perl5 perl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_PERL5+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_PERL5+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $PERL5 in [\\/]* | ?:[\\/]*) ac_cv_path_PERL5="$PERL5" # Let the user override the test with a path. @@ -3528,11 +4098,15 @@ as_dummy="$PATH:/usr/bin:/usr/local/bin" for as_dir in $as_dummy do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL5="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_PERL5="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3544,11 +4118,11 @@ esac fi PERL5=$ac_cv_path_PERL5 if test -n "$PERL5"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL5" >&5 -$as_echo "$PERL5" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PERL5" >&5 +printf "%s\n" "$PERL5" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3557,15 +4131,15 @@ done test -n "$PERL5" || PERL5="no" if test "$PERL5" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether perl is v5 or higher" >&5 -$as_echo_n "checking whether perl is v5 or higher... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether perl is v5 or higher" >&5 +printf %s "checking whether perl is v5 or higher... " >&6; } if $PERL5 -e 'exit($] >= 5)'; then PERL5=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi fi @@ -3573,19 +4147,20 @@ if test "$PERL5" != no; then BUILT_SCRIPTS="$BUILT_SCRIPTS deweb" SCRIPTS="$SCRIPTS chkweb" else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: chkweb will not be installed since you do not have perl5." >&5 -$as_echo "$as_me: WARNING: chkweb will not be installed since you do not have perl5." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: chkweb will not be installed since you do not have perl5." >&5 +printf "%s\n" "$as_me: WARNING: chkweb will not be installed since you do not have perl5." >&2;} fi for ac_prog in 'groff -man -P-bu -Tlatin1' 'nroff -man' do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_GROFF+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_GROFF+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$GROFF"; then ac_cv_prog_GROFF="$GROFF" # Let the user override the test. else @@ -3593,11 +4168,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_GROFF="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3608,11 +4187,11 @@ fi fi GROFF=$ac_cv_prog_GROFF if test -n "$GROFF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GROFF" >&5 -$as_echo "$GROFF" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GROFF" >&5 +printf "%s\n" "$GROFF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3621,13 +4200,60 @@ done test -n "$GROFF" || GROFF="'nroff -man'" +# Extract the first word of "pdflatex", so it can be a program name with args. +set dummy pdflatex; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_PDFLATEX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_PDFLATEX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_PDFLATEX" && ac_cv_path_PDFLATEX="no" + ;; +esac +fi +PDFLATEX=$ac_cv_path_PDFLATEX +if test -n "$PDFLATEX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PDFLATEX" >&5 +printf "%s\n" "$PDFLATEX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + # Extract the first word of "latex", so it can be a program name with args. set dummy latex; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LATEX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_LATEX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $LATEX in [\\/]* | ?:[\\/]*) ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path. @@ -3637,11 +4263,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_LATEX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3654,22 +4284,23 @@ esac fi LATEX=$ac_cv_path_LATEX if test -n "$LATEX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 -$as_echo "$LATEX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5 +printf "%s\n" "$LATEX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Extract the first word of "dvips", so it can be a program name with args. set dummy dvips; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_DVIPS+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_DVIPS+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $DVIPS in [\\/]* | ?:[\\/]*) ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path. @@ -3679,11 +4310,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_DVIPS="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3695,22 +4330,23 @@ esac fi DVIPS=$ac_cv_path_DVIPS if test -n "$DVIPS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DVIPS" >&5 -$as_echo "$DVIPS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DVIPS" >&5 +printf "%s\n" "$DVIPS" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Extract the first word of "lynx", so it can be a program name with args. set dummy lynx; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LYNX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_LYNX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $LYNX in [\\/]* | ?:[\\/]*) ac_cv_path_LYNX="$LYNX" # Let the user override the test with a path. @@ -3720,11 +4356,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LYNX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_LYNX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3736,21 +4376,22 @@ esac fi LYNX=$ac_cv_path_LYNX if test -n "$LYNX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LYNX" >&5 -$as_echo "$LYNX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LYNX" >&5 +printf "%s\n" "$LYNX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Extract the first word of "latex2html", so it can be a program name with args. set dummy latex2html; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LATEX2HTML+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_LATEX2HTML+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $LATEX2HTML in [\\/]* | ?:[\\/]*) ac_cv_path_LATEX2HTML="$LATEX2HTML" # Let the user override the test with a path. @@ -3760,11 +4401,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LATEX2HTML="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_LATEX2HTML="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3776,20 +4421,21 @@ esac fi LATEX2HTML=$ac_cv_path_LATEX2HTML if test -n "$LATEX2HTML"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX2HTML" >&5 -$as_echo "$LATEX2HTML" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LATEX2HTML" >&5 +printf "%s\n" "$LATEX2HTML" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermlib" >&5 -$as_echo_n "checking for tgetent in -ltermlib... " >&6; } -if ${ac_cv_lib_termlib_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermlib" >&5 +printf %s "checking for tgetent in -ltermlib... " >&6; } +if test ${ac_cv_lib_termlib_tgetent+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ltermlib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3798,43 +4444,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char tgetent (); int -main () +main (void) { return tgetent (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_termlib_tgetent=yes -else +else $as_nop ac_cv_lib_termlib_tgetent=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termlib_tgetent" >&5 -$as_echo "$ac_cv_lib_termlib_tgetent" >&6; } -if test "x$ac_cv_lib_termlib_tgetent" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTERMLIB 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termlib_tgetent" >&5 +printf "%s\n" "$ac_cv_lib_termlib_tgetent" >&6; } +if test "x$ac_cv_lib_termlib_tgetent" = xyes +then : + printf "%s\n" "#define HAVE_LIBTERMLIB 1" >>confdefs.h LIBS="-ltermlib $LIBS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 -$as_echo_n "checking for tgetent in -ltermcap... " >&6; } -if ${ac_cv_lib_termcap_tgetent+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5 +printf %s "checking for tgetent in -ltermcap... " >&6; } +if test ${ac_cv_lib_termcap_tgetent+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ltermcap $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -3843,467 +4487,148 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char tgetent (); int -main () +main (void) { return tgetent (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_termcap_tgetent=yes -else +else $as_nop ac_cv_lib_termcap_tgetent=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 -$as_echo "$ac_cv_lib_termcap_tgetent" >&6; } -if test "x$ac_cv_lib_termcap_tgetent" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBTERMCAP 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5 +printf "%s\n" "$ac_cv_lib_termcap_tgetent" >&6; } +if test "x$ac_cv_lib_termcap_tgetent" = xyes +then : + printf "%s\n" "#define HAVE_LIBTERMCAP 1" >>confdefs.h LIBS="-ltermcap $LIBS" fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +printf %s "checking for $ac_hdr that defines DIR... " >&6; } +if eval test \${$as_ac_Header+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error +#include +#include <$ac_hdr> + +int +main (void) +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_ac_Header=yes" +else $as_nop + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : -else - # Broken: fails on valid input. -continue +ac_header_dirent=$ac_hdr; break fi -rm -f conftest.err conftest.i conftest.$ac_ext - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +printf %s "checking for library containing opendir... " >&6; } +if test ${ac_cv_search_opendir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char opendir (); +int +main (void) +{ +return opendir (); + ; + return 0; +} _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break +for ac_lib in '' dir +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_opendir=$ac_res fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_opendir+y} +then : break fi +done +if test ${ac_cv_search_opendir+y} +then : - done - ac_cv_prog_CPP=$CPP +else $as_nop + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +printf "%s\n" "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +printf %s "checking for library containing opendir... " >&6; } +if test ${ac_cv_search_opendir+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4311,150 +4636,144 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char opendir (); int -main () +main (void) { return opendir (); ; return 0; } _ACEOF -for ac_lib in '' dir; do +for ac_lib in '' x +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_opendir=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : + if test ${ac_cv_search_opendir+y} +then : break fi done -if ${ac_cv_search_opendir+:} false; then : +if test ${ac_cv_search_opendir+y} +then : -else +else $as_nop ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +printf "%s\n" "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' x; do - if test -z "$ac_lib"; then - ac_res="none required" +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" + ac_header=$ac_item fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break -fi done -if ${ac_cv_search_opendir+:} false; then : -else - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" +if test "x$ac_cv_header_limits_h" = xyes +then : + printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "stat.h" "ac_cv_header_stat_h" "$ac_includes_default" +if test "x$ac_cv_header_stat_h" = xyes +then : + printf "%s\n" "#define HAVE_STAT_H 1" >>confdefs.h -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default" +if test "x$ac_cv_header_strings_h" = xyes +then : + printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default" +if test "x$ac_cv_header_stdarg_h" = xyes +then : + printf "%s\n" "#define HAVE_STDARG_H 1" >>confdefs.h -done +fi +ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_stat_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h +fi +ac_fn_c_check_header_compile "$LINENO" "termcap.h" "ac_cv_header_termcap_h" "$ac_includes_default" +if test "x$ac_cv_header_termcap_h" = xyes +then : + printf "%s\n" "#define HAVE_TERMCAP_H 1" >>confdefs.h -for ac_header in limits.h stat.h strings.h stdarg.h sys/stat.h termcap.h termlib.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_header_compile "$LINENO" "termlib.h" "ac_cv_header_termlib_h" "$ac_includes_default" +if test "x$ac_cv_header_termlib_h" = xyes +then : + printf "%s\n" "#define HAVE_TERMLIB_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h -done +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __cplusplus @@ -4467,7 +4786,7 @@ main () /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. + /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ @@ -4495,7 +4814,7 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; @@ -4511,47 +4830,50 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_const=yes -else +else $as_nop ac_cv_c_const=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then -$as_echo "#define const /**/" >>confdefs.h +printf "%s\n" "#define const /**/" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 -$as_echo_n "checking for inline... " >&6; } -if ${ac_cv_c_inline+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +printf %s "checking for inline... " >&6; } +if test ${ac_cv_c_inline+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; -static $ac_kw foo_t static_foo () {return 0; } -$ac_kw foo_t foo () {return 0; } +static $ac_kw foo_t static_foo (void) {return 0; } +$ac_kw foo_t foo (void) {return 0; } #endif _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_inline=$ac_kw fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 -$as_echo "$ac_cv_c_inline" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +printf "%s\n" "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; @@ -4569,13 +4891,12 @@ _ACEOF esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : +if test "x$ac_cv_type_size_t" = xyes +then : -else +else $as_nop -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF +printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi @@ -4584,72 +4905,210 @@ case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) -$as_echo "#define _UINT64_T 1" >>confdefs.h +printf "%s\n" "#define _UINT64_T 1" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define uint64_t $ac_cv_c_uint64_t -_ACEOF +printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h ;; esac -for ac_func in vprintf -do : - ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" -if test "x$ac_cv_func_vprintf" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_VPRINTF 1 -_ACEOF +ac_func= +for ac_item in $ac_func_c_list +do + if test $ac_func; then + ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func + if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then + echo "#define $ac_item 1" >> confdefs.h + fi + ac_func= + else + ac_func=$ac_item + fi +done -ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" -if test "x$ac_cv_func__doprnt" = xyes; then : +if test "x$ac_cv_func_vprintf" = xno +then : + ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" +if test "x$ac_cv_func__doprnt" = xyes +then : -$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h +printf "%s\n" "#define HAVE_DOPRNT 1" >>confdefs.h fi fi -done +ac_fn_c_check_func "$LINENO" "access" "ac_cv_func_access" +if test "x$ac_cv_func_access" = xyes +then : + printf "%s\n" "#define HAVE_ACCESS 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir" +if test "x$ac_cv_func_closedir" = xyes +then : + printf "%s\n" "#define HAVE_CLOSEDIR 1" >>confdefs.h -for ac_func in access closedir fileno isatty opendir readdir stat strcasecmp strdup strlwr strtol -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_func "$LINENO" "fileno" "ac_cv_func_fileno" +if test "x$ac_cv_func_fileno" = xyes +then : + printf "%s\n" "#define HAVE_FILENO 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "isatty" "ac_cv_func_isatty" +if test "x$ac_cv_func_isatty" = xyes +then : + printf "%s\n" "#define HAVE_ISATTY 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir" +if test "x$ac_cv_func_opendir" = xyes +then : + printf "%s\n" "#define HAVE_OPENDIR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir" +if test "x$ac_cv_func_readdir" = xyes +then : + printf "%s\n" "#define HAVE_READDIR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "stat" "ac_cv_func_stat" +if test "x$ac_cv_func_stat" = xyes +then : + printf "%s\n" "#define HAVE_STAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" +if test "x$ac_cv_func_strcasecmp" = xyes +then : + printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h -ac_fn_c_check_decl "$LINENO" "stpcpy" "ac_cv_have_decl_stpcpy" "$ac_includes_default" -if test "x$ac_cv_have_decl_stpcpy" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 fi +ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup" +if test "x$ac_cv_func_strdup" = xyes +then : + printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strlwr" "ac_cv_func_strlwr" +if test "x$ac_cv_func_strlwr" = xyes +then : + printf "%s\n" "#define HAVE_STRLWR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" +if test "x$ac_cv_func_strtol" = xyes +then : + printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STPCPY $ac_have_decl + ; + return 0; +} _ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else $as_nop + ac_cv_c_undeclared_builtin_options=$ac_arg +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See \`config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +ac_fn_check_decl "$LINENO" "stpcpy" "ac_cv_have_decl_stpcpy" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_stpcpy" = xyes +then : + ac_have_decl=1 +else $as_nop + ac_have_decl=0 +fi +printf "%s\n" "#define HAVE_DECL_STPCPY $ac_have_decl" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether PCRE regular expressions are enabled" >&5 -$as_echo_n "checking whether PCRE regular expressions are enabled... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pcre" >&5 -$as_echo "$enable_pcre" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether PCRE regular expressions are enabled" >&5 +printf %s "checking whether PCRE regular expressions are enabled... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_pcre" >&5 +printf "%s\n" "$enable_pcre" >&6; } if test "$enable_pcre" = "yes"; then # Extract the first word of "pcre-config", so it can be a program name with args. set dummy pcre-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_WITH_PCRE+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_WITH_PCRE+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$WITH_PCRE"; then ac_cv_prog_WITH_PCRE="$WITH_PCRE" # Let the user override the test. else @@ -4657,11 +5116,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_WITH_PCRE="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4673,35 +5136,310 @@ fi fi WITH_PCRE=$ac_cv_prog_WITH_PCRE if test -n "$WITH_PCRE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WITH_PCRE" >&5 -$as_echo "$WITH_PCRE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $WITH_PCRE" >&5 +printf "%s\n" "$WITH_PCRE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "$WITH_PCRE" = "yes"; then -$as_echo "#define HAVE_PCRE 1" >>confdefs.h +printf "%s\n" "#define HAVE_PCRE 1" >>confdefs.h CFLAGS="${CFLAGS} $(pcre-config --cflags-posix)" LDFLAGS="${LDFLAGS} $(pcre-config --libs-posix)" else - $as_echo "#define HAVE_PCRE 0" >>confdefs.h + printf "%s\n" "#define HAVE_PCRE 0" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: PCRE library not found." >&5 +printf "%s\n" "$as_me: WARNING: PCRE library not found." >&2;} + fi +else + printf "%s\n" "#define HAVE_PCRE 0" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: PCRE regular expressions not enabled." >&5 +printf "%s\n" "$as_me: WARNING: PCRE regular expressions not enabled." >&2;} +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for POSIX extended regular expressions" >&5 +printf %s "checking for POSIX extended regular expressions... " >&6; } +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PCRE library not found." >&5 -$as_echo "$as_me: WARNING: PCRE library not found." >&2;} + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else - $as_echo "#define HAVE_PCRE 0" >>confdefs.h + ac_cv_path_EGREP=$EGREP +fi - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PCRE regular expressions not enabled." >&5 -$as_echo "$as_me: WARNING: PCRE regular expressions not enabled." >&2;} + fi fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for POSIX extended regular expressions" >&5 -$as_echo_n "checking for POSIX extended regular expressions... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -4711,33 +5449,34 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : posix_ere=yes -else +else $as_nop posix_ere=no fi -rm -f conftest* +rm -rf conftest* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $posix_ere" >&5 -$as_echo "$posix_ere" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $posix_ere" >&5 +printf "%s\n" "$posix_ere" >&6; } if test "$WITH_PCRE" = "yes"; then -$as_echo "#define HAVE_POSIX_ERE 0" >>confdefs.h +printf "%s\n" "#define HAVE_POSIX_ERE 0" >>confdefs.h else if test "$enable_posixre" = "yes"; then if test "$posix_ere" = "yes"; then - $as_echo "#define HAVE_POSIX_ERE 1" >>confdefs.h + printf "%s\n" "#define HAVE_POSIX_ERE 1" >>confdefs.h else - $as_echo "#define HAVE_POSIX_ERE 0" >>confdefs.h + printf "%s\n" "#define HAVE_POSIX_ERE 0" >>confdefs.h fi else - $as_echo "#define HAVE_POSIX_ERE 0" >>confdefs.h + printf "%s\n" "#define HAVE_POSIX_ERE 0" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Regular expressions not enabled." >&5 -$as_echo "$as_me: WARNING: Regular expressions not enabled." >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Regular expressions not enabled." >&5 +printf "%s\n" "$as_me: WARNING: Regular expressions not enabled." >&2;} fi fi @@ -4775,8 +5514,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -4806,15 +5545,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -4828,8 +5567,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -4846,7 +5585,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -4862,8 +5601,8 @@ LTLIBOBJS=$ac_ltlibobjs ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -4886,14 +5625,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -4903,46 +5644,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -4951,13 +5692,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -4966,8 +5700,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -4979,30 +5717,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -5015,13 +5733,14 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -5048,18 +5767,20 @@ as_fn_unset () { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -5071,12 +5792,13 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -5107,7 +5829,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -5129,6 +5851,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -5142,6 +5868,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -5183,7 +5915,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -5192,7 +5924,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5254,8 +5986,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ChkTeX $as_me 1.7.6, which was -generated by GNU Autoconf 2.69. Invocation command line was +This file was extended by ChkTeX $as_me 1.7.8, which was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -5313,14 +6045,16 @@ $config_headers Report bugs to the package provider." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -ChkTeX config.status 1.7.6 -configured by $0, generated by GNU Autoconf 2.69, +ChkTeX config.status 1.7.8 +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -5359,15 +6093,15 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -5375,7 +6109,7 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; @@ -5384,7 +6118,7 @@ do as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -5412,7 +6146,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -5426,7 +6160,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -5456,8 +6190,8 @@ done # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree @@ -5793,7 +6527,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -5801,17 +6535,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -5828,7 +6562,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -5852,9 +6586,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -5916,8 +6650,8 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -5961,9 +6695,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -5979,20 +6713,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -6038,7 +6772,8 @@ if test "$no_create" != yes; then $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi + diff --git a/support/chktex/configure.ac b/support/chktex/configure.ac new file mode 100644 index 0000000000..3cb717df7f --- /dev/null +++ b/support/chktex/configure.ac @@ -0,0 +1,193 @@ +dnl +dnl ChkTeX, configuration file. +dnl Copyright (C) 1995-96 Jens T. Berger Thielemann +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +dnl +dnl Contact the author at: +dnl Jens Berger +dnl Spektrumvn. 4 +dnl N-0666 Oslo +dnl Norway +dnl E-mail: +dnl +dnl + + +dnl Process this file with autoconf to produce a configure script. +AC_INIT([ChkTeX],[1.7.8]) +AC_SUBST(SCRIPTS) +AC_SUBST(BUILT_SCRIPTS) +AC_SUBST(CLEAN) +CLEAN= + +AC_ARG_ENABLE(pcre,[ + --enable-pcre: Use PCRE to allow regular expressions in + user warnings. (Default: yes, if available).],, +enable_pcre=yes) + +AC_ARG_ENABLE(posixre,[ + --enable-posixre: Use POSIX extended regular expressions in + user warnings. (Default: yes, unless using PCRE).],, +enable_posixre=yes) + +AC_ARG_ENABLE(lacheck-replace,[ + --enable-lacheck-replace: Installs a lacheck replacement. (Default: no).],, +enable_lacheck_replace=no) + +AC_ARG_ENABLE(debug-info,[ + --enable-debug-info: Compile in miscellaneous runtime debugging + information. (Default: yes).],, +enable_debug_info=yes) + +AC_ARG_ENABLE(coverage-testing,[ + --enable-coverage-testing: Activate coverage testing with gcov. (Default: no)],, +enable_coverage_testing=no) + +AC_MSG_CHECKING(whether lacheck replacement should be installed) +if test "$enable_lacheck_replace" = "yes"; then + SCRIPTS="$SCRIPTS lacheck" + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi + +AC_MSG_CHECKING(whether runtime debug info should be used) +if test "$enable_debug_info" = "yes"; then + AC_MSG_RESULT(yes) +else + AC_DEFINE(STRIP_DEBUG, 1, Strip debug info) + AC_MSG_RESULT(no) +fi + +AC_MSG_CHECKING(whether coverage testing is enabled) +if test "$enable_coverage_testing" = "yes"; then + AC_MSG_RESULT(yes) + CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage -O0" + CLEAN="${CLEAN} \$(wildcard *.bb *.bbg *.da *.gcov)" +else + AC_MSG_RESULT(no) +fi + + +dnl Check compiler and flags +AC_PROG_CC +AX_CFLAGS_STRICT_PROTOTYPES +VL_PROG_CC_WARNINGS + +dnl Checks for programs. +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MKDIR_P +AC_PATH_PROGS(PERL5, perl5 perl, no, $PATH:/usr/bin:/usr/local/bin) +if test "$PERL5" != no; then + AC_MSG_CHECKING(whether perl is v5 or higher) + if $PERL5 -e 'exit($] >= 5)'; then + PERL5=no + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(yes) + fi +fi + +if test "$PERL5" != no; then + BUILT_SCRIPTS="$BUILT_SCRIPTS deweb" + SCRIPTS="$SCRIPTS chkweb" +else + AC_MSG_WARN(chkweb will not be installed since you do not have perl5.) +fi + +AC_CHECK_PROGS(GROFF, 'groff -man -P-bu -Tlatin1' 'nroff -man', 'nroff -man') + +AC_PATH_PROG(PDFLATEX, pdflatex, no) +AC_PATH_PROG(LATEX, latex, no) +dnl if test "$LATEX" = no; then +dnl AC_MSG_ERROR([No LaTeX on the system, cannot find latex program.]) +dnl fi + +AC_PATH_PROG(DVIPS, dvips) + +AC_PATH_PROG(LYNX, lynx) +AC_PATH_PROG(LATEX2HTML, latex2html) + +dnl Checks for libraries. +AC_CHECK_LIB(termlib, tgetent) +AC_CHECK_LIB(termcap, tgetent) + +AC_HEADER_DIRENT +AC_CHECK_HEADERS(limits.h stat.h strings.h stdarg.h dnl +sys/stat.h termcap.h termlib.h unistd.h) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIZE_T +AC_TYPE_UINT64_T + +dnl Checks for library functions. +AC_FUNC_VPRINTF +AC_CHECK_FUNCS(access closedir fileno isatty opendir readdir stat dnl +strcasecmp strdup strlwr strtol) + +dnl Checks for declarations. +AC_CHECK_DECLS([stpcpy]) + +dnl Check for PCRE regular expression support +AC_MSG_CHECKING(whether PCRE regular expressions are enabled) +AC_MSG_RESULT($enable_pcre) +if test "$enable_pcre" = "yes"; then + AC_CHECK_PROG(WITH_PCRE, pcre-config, yes, no) + if test "$WITH_PCRE" = "yes"; then + AC_DEFINE(HAVE_PCRE, 1, Whether PCRE can be used for user warnings.) + CFLAGS="${CFLAGS} $(pcre-config --cflags-posix)" + LDFLAGS="${LDFLAGS} $(pcre-config --libs-posix)" + else + AC_DEFINE(HAVE_PCRE, 0) + AC_MSG_WARN(PCRE library not found.) + fi +else + AC_DEFINE(HAVE_PCRE, 0) + AC_MSG_WARN(PCRE regular expressions not enabled.) +fi + +dnl Check for POSIX extended regular expression support +AC_MSG_CHECKING(for POSIX extended regular expressions) +AC_EGREP_CPP([yes], + [#include + #ifdef REG_EXTENDED + yes + # endif + ], posix_ere=yes, posix_ere=no) +AC_MSG_RESULT($posix_ere) +if test "$WITH_PCRE" = "yes"; then + AC_DEFINE(HAVE_POSIX_ERE, 0, Whether POSIX ERE can be used for user warnings.) +else + if test "$enable_posixre" = "yes"; then + if test "$posix_ere" = "yes"; then + AC_DEFINE(HAVE_POSIX_ERE, 1) + else + AC_DEFINE(HAVE_POSIX_ERE, 0) + fi + else + AC_DEFINE(HAVE_POSIX_ERE, 0) + AC_MSG_WARN(Regular expressions not enabled.) + fi +fi + + +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) +AC_CONFIG_FILES([Makefile deweb rmeheader ChkTeX.tex]) +AC_OUTPUT diff --git a/support/chktex/configure.in b/support/chktex/configure.in deleted file mode 100644 index 0508bcac25..0000000000 --- a/support/chktex/configure.in +++ /dev/null @@ -1,193 +0,0 @@ -dnl -dnl ChkTeX, configuration file. -dnl Copyright (C) 1995-96 Jens T. Berger Thielemann -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -dnl -dnl Contact the author at: -dnl Jens Berger -dnl Spektrumvn. 4 -dnl N-0666 Oslo -dnl Norway -dnl E-mail: -dnl -dnl - - -dnl Process this file with autoconf to produce a configure script. -AC_INIT(ChkTeX, 1.7.6) -AC_SUBST(SCRIPTS) -AC_SUBST(BUILT_SCRIPTS) -AC_SUBST(CLEAN) -CLEAN= - -AC_ARG_ENABLE(pcre,[ - --enable-pcre: Use PCRE to allow regular expressions in - user warnings. (Default: yes, if available).],, -enable_pcre=yes) - -AC_ARG_ENABLE(posixre,[ - --enable-posixre: Use POSIX extended regular expressions in - user warnings. (Default: yes, unless using PCRE).],, -enable_posixre=yes) - -AC_ARG_ENABLE(lacheck-replace,[ - --enable-lacheck-replace: Installs a lacheck replacement. (Default: no).],, -enable_lacheck_replace=no) - -AC_ARG_ENABLE(debug-info,[ - --enable-debug-info: Compile in miscellaneous runtime debugging - information. (Default: yes).],, -enable_debug_info=yes) - -AC_ARG_ENABLE(coverage-testing,[ - --enable-coverage-testing: Activate coverage testing with gcov. (Default: no)],, -enable_coverage_testing=no) - -AC_MSG_CHECKING(whether lacheck replacement should be installed) -if test "$enable_lacheck_replace" = "yes"; then - SCRIPTS="$SCRIPTS lacheck" - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether runtime debug info should be used) -if test "$enable_debug_info" = "yes"; then - AC_MSG_RESULT(yes) -else - AC_DEFINE(STRIP_DEBUG, 1, Strip debug info) - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(whether coverage testing is enabled) -if test "$enable_coverage_testing" = "yes"; then - AC_MSG_RESULT(yes) - CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage -O0" - CLEAN="${CLEAN} \$(wildcard *.bb *.bbg *.da *.gcov)" -else - AC_MSG_RESULT(no) -fi - - -dnl Check compiler and flags -AC_PROG_CC -AX_CFLAGS_STRICT_PROTOTYPES -VL_PROG_CC_WARNINGS - -dnl Checks for programs. -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MKDIR_P -AC_PATH_PROGS(PERL5, perl5 perl, no, $PATH:/usr/bin:/usr/local/bin) -if test "$PERL5" != no; then - AC_MSG_CHECKING(whether perl is v5 or higher) - if $PERL5 -e 'exit($] >= 5)'; then - PERL5=no - AC_MSG_RESULT(no) - else - AC_MSG_RESULT(yes) - fi -fi - -if test "$PERL5" != no; then - BUILT_SCRIPTS="$BUILT_SCRIPTS deweb" - SCRIPTS="$SCRIPTS chkweb" -else - AC_MSG_WARN(chkweb will not be installed since you do not have perl5.) -fi - -AC_CHECK_PROGS(GROFF, 'groff -man -P-bu -Tlatin1' 'nroff -man', 'nroff -man') - -AC_PATH_PROG(LATEX, latex, no) -dnl if test "$LATEX" = no; then -dnl AC_MSG_ERROR([No LaTeX on the system, cannot find latex program.]) -dnl fi - -AC_PATH_PROG(DVIPS, dvips) - -AC_PATH_PROG(LYNX, lynx) -AC_PATH_PROG(LATEX2HTML, latex2html) - -dnl Checks for libraries. -AC_CHECK_LIB(termlib, tgetent) -AC_CHECK_LIB(termcap, tgetent) - -dnl Checks for header files. -AC_HEADER_STDC -AC_HEADER_DIRENT -AC_CHECK_HEADERS(limits.h stat.h strings.h stdarg.h dnl -sys/stat.h termcap.h termlib.h unistd.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_C_INLINE -AC_TYPE_SIZE_T -AC_TYPE_UINT64_T - -dnl Checks for library functions. -AC_FUNC_VPRINTF -AC_CHECK_FUNCS(access closedir fileno isatty opendir readdir stat dnl -strcasecmp strdup strlwr strtol) - -dnl Checks for declarations. -AC_CHECK_DECLS([stpcpy]) - -dnl Check for PCRE regular expression support -AC_MSG_CHECKING(whether PCRE regular expressions are enabled) -AC_MSG_RESULT($enable_pcre) -if test "$enable_pcre" = "yes"; then - AC_CHECK_PROG(WITH_PCRE, pcre-config, yes, no) - if test "$WITH_PCRE" = "yes"; then - AC_DEFINE(HAVE_PCRE, 1, Whether PCRE can be used for user warnings.) - CFLAGS="${CFLAGS} $(pcre-config --cflags-posix)" - LDFLAGS="${LDFLAGS} $(pcre-config --libs-posix)" - else - AC_DEFINE(HAVE_PCRE, 0) - AC_MSG_WARN(PCRE library not found.) - fi -else - AC_DEFINE(HAVE_PCRE, 0) - AC_MSG_WARN(PCRE regular expressions not enabled.) -fi - -dnl Check for POSIX extended regular expression support -AC_MSG_CHECKING(for POSIX extended regular expressions) -AC_EGREP_CPP([yes], - [#include - #ifdef REG_EXTENDED - yes - # endif - ], posix_ere=yes, posix_ere=no) -AC_MSG_RESULT($posix_ere) -if test "$WITH_PCRE" = "yes"; then - AC_DEFINE(HAVE_POSIX_ERE, 0, Whether POSIX ERE can be used for user warnings.) -else - if test "$enable_posixre" = "yes"; then - if test "$posix_ere" = "yes"; then - AC_DEFINE(HAVE_POSIX_ERE, 1) - else - AC_DEFINE(HAVE_POSIX_ERE, 0) - fi - else - AC_DEFINE(HAVE_POSIX_ERE, 0) - AC_MSG_WARN(Regular expressions not enabled.) - fi -fi - - -AC_CONFIG_HEADER(config.h) -AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) -AC_OUTPUT(Makefile deweb rmeheader ChkTeX.tex) diff --git a/support/chktex/input/file b/support/chktex/input/file new file mode 100644 index 0000000000..3ebbc3d6a8 --- /dev/null +++ b/support/chktex/input/file @@ -0,0 +1,8 @@ +% -*- TeX -*- +% chktex-file 22 +% This file tests that file suppressions are only valid in the current file. + +% It also ensures that git will create the input/ +% directory. That ensures that the \input input in Test.tex is able +% to distinguish between directories and regular files. +% This was bug #56520. diff --git a/support/chktex/install-sh b/support/chktex/install-sh index 0b0fdcbba6..ec298b5374 100755 --- a/support/chktex/install-sh +++ b/support/chktex/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2013-12-25.23; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -69,6 +69,11 @@ posix_mkdir= # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -99,18 +104,28 @@ Options: --version display version info and exit. -c (ignored) - -C install only if different (preserve the last data modification time) + -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do @@ -137,8 +152,13 @@ while test $# -ne 0; do -o) chowncmd="$chownprog $2" shift;; + -p) cpprog="$cpprog -p";; + -s) stripcmd=$stripprog;; + -S) backupsuffix="$2" + shift;; + -t) is_target_a_directory=always dst_arg=$2 @@ -255,6 +275,10 @@ do dstdir=$dst test -d "$dstdir" dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command @@ -271,15 +295,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,27 +315,16 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then @@ -318,43 +334,49 @@ do fi posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; esac if @@ -365,7 +387,7 @@ do then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. @@ -394,7 +416,7 @@ do prefixes= else if $posix_mkdir; then - (umask=$mkdir_umask && + (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 @@ -427,14 +449,25 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -460,6 +493,13 @@ do then rm -f "$dsttmp" else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || @@ -474,9 +514,9 @@ do # file should still install successfully. { test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || + $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 @@ -493,9 +533,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/support/chktex/m4/ax_append_flag.m4 b/support/chktex/m4/ax_append_flag.m4 new file mode 100644 index 0000000000..dd6d8b6140 --- /dev/null +++ b/support/chktex/m4/ax_append_flag.m4 @@ -0,0 +1,50 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) +# +# DESCRIPTION +# +# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space +# added in between. +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains +# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly +# FLAG. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +AC_DEFUN([AX_APPEND_FLAG], +[dnl +AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF +AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) +AS_VAR_SET_IF(FLAGS,[ + AS_CASE([" AS_VAR_GET(FLAGS) "], + [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], + [ + AS_VAR_APPEND(FLAGS,[" $1"]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) + ], + [ + AS_VAR_SET(FLAGS,[$1]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) +AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_APPEND_FLAG diff --git a/support/chktex/m4/ax_cflags_strict_prototypes.m4 b/support/chktex/m4/ax_cflags_strict_prototypes.m4 index 06ec9e2f27..1a910cfa98 100644 --- a/support/chktex/m4/ax_cflags_strict_prototypes.m4 +++ b/support/chktex/m4/ax_cflags_strict_prototypes.m4 @@ -1,6 +1,6 @@ -# =========================================================================== -# http://autoconf-archive.cryp.to/ax_cflags_strict_prototypes.html -# =========================================================================== +# ================================================================================ +# https://www.gnu.org/software/autoconf-archive/ax_cflags_strict_prototypes.html +# ================================================================================ # # SYNOPSIS # @@ -26,145 +26,72 @@ # - $3 action-if-found : add value to shellvariable # - $4 action-if-not-found : nothing # -# LAST MODIFICATION +# NOTE: These macros depend on AX_APPEND_FLAG. # -# 2008-04-12 -# -# COPYLEFT +# LICENSE # # Copyright (c) 2008 Guido U. Draheim # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -# Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program. If not, see . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Macro Archive. When you make and -# distribute a modified version of the Autoconf Macro, you may extend this -# special exception to the GPL to apply to your modified version as well. +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. -AC_DEFUN([AX_CFLAGS_STRICT_PROTOTYPES],[dnl -AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl -AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_strict_prototypes])dnl -AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes], -VAR,[VAR="no, unknown" - AC_LANG_SAVE - AC_LANG_C - ac_save_[]FLAGS="$[]FLAGS" -for ac_arg dnl -in "-pedantic % -fstrict-prototypes -Wstrict-prototypes" dnl GCC - "-pedantic % -Wstrict-prototypes" dnl try to warn atleast - "-pedantic % -Wmissing-prototypes" dnl or another warning - "-pedantic % -Werror-implicit-function-declaration" dnl - "-pedantic % -Wimplicit-function-declaration" dnl - # -do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` - AC_TRY_COMPILE([],[return 0;], - [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) -done -case ".$VAR" in - .|.no|.no,*) ;; - *) # sanity check with signal() from sys/signal.h - cp config.log config.tmp - AC_TRY_COMPILE([#include ],[ - if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; - if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;], - dnl the original did use test -n `$CC testprogram.c` - [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 -then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 -then VAR="no, suppressed, signal.h," ; fi ; fi], - [VAR="no, suppressed, signal.h"]) - rm config.tmp - ;; -esac - FLAGS="$ac_save_[]FLAGS" - AC_LANG_RESTORE -]) -case ".$VAR" in - .ok|.ok,*) m4_ifvaln($3,$3) ;; - .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ - AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) - m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; - *) m4_ifvaln($3,$3,[ - if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null - then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) - else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) - m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" - fi ]) ;; -esac -AS_VAR_POPDEF([VAR])dnl -AS_VAR_POPDEF([FLAGS])dnl -]) +#serial 18 -dnl the only difference - the LANG selection... and the default FLAGS - -AC_DEFUN([AX_CXXFLAGS_STRICT_PROTOTYPES],[dnl -AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl -AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_strict_prototypes])dnl +AC_DEFUN([AX_FLAGS_STRICT_PROTOTYPES],[dnl +AS_VAR_PUSHDEF([FLAGS],[_AC_LANG_PREFIX[]FLAGS])dnl +AS_VAR_PUSHDEF([VAR],[ac_cv_[]_AC_LANG_ABBREV[]flags_strict_prototypes])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for strict prototypes], VAR,[VAR="no, unknown" - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - ac_save_[]FLAGS="$[]FLAGS" +ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic -Werror % -fstrict-prototypes -Wstrict-prototypes" dnl GCC - "-pedantic -Werror % -Wstrict-prototypes" dnl try to warn atleast - "-pedantic -Werror % -Wmissing-prototypes" dnl try to warn atleast + "-pedantic -Werror % -Wstrict-prototypes" dnl try to warn at least + "-pedantic -Werror % -Wmissing-prototypes" dnl try to warn at least "-pedantic -Werror % -Werror-implicit-function-declaration" dnl "-pedantic -Werror % -Wimplicit-function-declaration" dnl - "-pedantic % -Wstrict-prototypes %% no, unsupported in C++" dnl oops + "-pedantic % -Wstrict-prototypes %% no, unsupported" dnl oops # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` - AC_TRY_COMPILE([],[return 0;], - [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[return 0;]])], + [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break], []) done case ".$VAR" in .|.no|.no,*) ;; *) # sanity check with signal() from sys/signal.h cp config.log config.tmp - AC_TRY_COMPILE([#include ],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ if (signal (SIGINT, SIG_IGN) == SIG_DFL) return 1; - if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;], - dnl the original did use test -n `$CC testprogram.c` - [if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 + if (signal (SIGINT, SIG_IGN) != SIG_DFL) return 2;]])], + [dnl the original did use test -n `$CC testprogram.c` + if test `diff config.log config.tmp | grep -i warning | wc -l` != 0 then if test `diff config.log config.tmp | grep -i warning | wc -l` != 1 then VAR="no, suppressed, signal.h," ; fi ; fi], [VAR="no, suppressed, signal.h"]) rm config.tmp ;; esac - FLAGS="$ac_save_[]FLAGS" - AC_LANG_RESTORE +FLAGS="$ac_save_[]FLAGS" ]) +AS_VAR_POPDEF([FLAGS])dnl +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; - .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ - AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) - m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; - *) m4_ifvaln($3,$3,[ - if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null - then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) - else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) - m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" - fi ]) ;; + .|.no|.no,*) m4_default($4,[m4_ifval($2,[AX_APPEND_FLAG([$2], [$1])])]) ;; + *) m4_default($3,[AX_APPEND_FLAG([$VAR], [$1])]) ;; esac AS_VAR_POPDEF([VAR])dnl -AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_FLAGS_STRICT_PROTOTYPES + +AC_DEFUN([AX_CFLAGS_STRICT_PROTOTYPES],[dnl +AC_LANG_PUSH([C]) +AX_FLAGS_STRICT_PROTOTYPES([$1], [$2], [$3], [$4]) +AC_LANG_POP([C]) +]) + +AC_DEFUN([AX_CXXFLAGS_STRICT_PROTOTYPES],[dnl +AC_LANG_PUSH([C++]) +AX_FLAGS_STRICT_PROTOTYPES([$1], [$2], [$3], [$4]) +AC_LANG_POP([C++]) ]) diff --git a/support/chktex/m4/ax_require_defined.m4 b/support/chktex/m4/ax_require_defined.m4 new file mode 100644 index 0000000000..17c3eab7da --- /dev/null +++ b/support/chktex/m4/ax_require_defined.m4 @@ -0,0 +1,37 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_REQUIRE_DEFINED(MACRO) +# +# DESCRIPTION +# +# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have +# been defined and thus are available for use. This avoids random issues +# where a macro isn't expanded. Instead the configure script emits a +# non-fatal: +# +# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found +# +# It's like AC_REQUIRE except it doesn't expand the required macro. +# +# Here's an example: +# +# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +# +# LICENSE +# +# Copyright (c) 2014 Mike Frysinger +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_REQUIRE_DEFINED], [dnl + m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) +])dnl AX_REQUIRE_DEFINED diff --git a/support/chktex/tests/main.expected b/support/chktex/tests/main.expected new file mode 100644 index 0000000000..5cf8374c47 --- /dev/null +++ b/support/chktex/tests/main.expected @@ -0,0 +1,27 @@ +Message 22 in main.tex: Comment displayed. +%% main.tex +^ +Message 22 in sub1/file.tex: Comment displayed. +%% comment1 +^ +Message 22 in sub1/subsub/subsubfile.tex: Comment displayed. +%% subsubcomment +^ +Message 22 in sub1/file.tex: Comment displayed. +%% comment2 +^ +Message 22 in sub1/subsub/subsubfile.tex: Comment displayed. +%% subsubcomment +^ +Message 22 in sub2/file1.tex: Comment displayed. +%% comment 2.1 +^ +Message 22 in sub2/file2.tex: Comment displayed. +%% comment 2.2 +^ +Message 22 in sub2/file1.tex: Comment displayed. +%% comment 2.1 cont. +^ +Message 22 in sub2/file2.tex: Comment displayed. +%% comment 2.2 +^ diff --git a/support/chktex/tests/main.tex b/support/chktex/tests/main.tex new file mode 100644 index 0000000000..027c5a9e27 --- /dev/null +++ b/support/chktex/tests/main.tex @@ -0,0 +1,14 @@ +\documentclass{article} + +%% main.tex +\begin{document} + +\input{sub1/file.tex} + +\input{sub1/subsub/subsubfile.tex} + +\input{sub2/file1.tex} + +\input{sub2/file2.tex} + +\end{document} diff --git a/support/chktex/tests/run-tests.sh b/support/chktex/tests/run-tests.sh new file mode 100755 index 0000000000..8d0b4aae1b --- /dev/null +++ b/support/chktex/tests/run-tests.sh @@ -0,0 +1,137 @@ +#!/bin/dash +# -- remember to change this to sh + +set -e + +usage() { + echo "$0 BUILDDIR SRCDIR" +} + +if [ "x$1" = x ] || [ "x$2" = x ]; then + usage + exit 1 +fi + +builddir="$(cd $1; pwd)" +srcdir="$(cd $2; pwd)" + +testsdir="$srcdir/tests" +output="$testsdir/main.out" +expected="$testsdir/main.expected" + +check_results() { + sed -i -e 's~Message 22 in .*tests/~Message 22 in ~;' "$output" + if cmp -s "$expected" "$output"; then + echo ">>> OK!" + rm -f "$output" + return 0 + else + echo "***WARNING***"; + echo "Unexpected test output"; + diff -u "$expected" "$output"; + return 1 + fi +} + + +# We don't check in the test files because CTAN can't handle files +# with the same names, and we need several that are named chktexrc. +# Also, they don't like invisible files (start with '.') so we +# generate those as well. +echo ">>> Generating test files..." +mkdir -p $testsdir/sub +cat > $testsdir/sub/chktexrc < $testsdir/sub1/.config/chktexrc < $testsdir/sub2/.chktexrc <>> Testing that inclusion works correctly..." +# absolute path +rm -f "$output" +${builddir}/chktex -mall -r -g0 -l$srcdir/chktexrc -v5 -q \ + $testsdir/main.tex 2>/dev/null \ + 1> $testsdir/main.out +check_results + +# relative path +cd "$srcdir" +${builddir}/chktex -mall -r -g0 -l$srcdir/chktexrc -v5 -q \ + tests/main.tex 2>/dev/null \ + 1> tests/main.out +check_results + +# file in the same directory +cd "$testsdir" +${builddir}/chktex -mall -r -g0 -l$srcdir/chktexrc -v5 -q \ + main.tex 2>/dev/null \ + 1> main.out +check_results + +echo ">>> Testing that correct chktexrc files are loaded" +# XDG variables +unset HOME +echo '%' \ + | XDG_CONFIG_HOME=${testsdir}/sub \ + ${builddir}/chktex -mall -v0 -q \ + | grep 'loaded chktex/tests/sub stdin' \ + || (echo XDG_CONFIG_HOME/chktexrc inclusion failed; exit 1) +echo '%' \ + | HOME=${testsdir}/sub1 \ + ${builddir}/chktex -mall -v0 -q \ + | grep 'loaded chktex/tests/sub1/.config/chktexrc stdin' \ + || (echo HOME/.config/chktexrc inclusion failed; exit 1) + +# HOME, LOGDIR +echo '%' \ + | HOME=${testsdir}/sub2 \ + ${builddir}/chktex -mall -v0 -q \ + | grep 'loaded chktex/tests/sub2/.chktexrc stdin' \ + || (echo HOME/.chktexrc inclusion failed; exit 1) +echo '%' \ + | LOGDIR=${testsdir}/sub2 \ + ${builddir}/chktex -mall -v0 -q \ + | grep 'loaded chktex/tests/sub2/.chktexrc stdin' \ + || (echo LOGDIR/.chktexrc inclusion failed; exit 1) + +# CHKTEXRC +echo '%' \ + | CHKTEXRC=${testsdir}/sub2 \ + ${builddir}/chktex -mall -v0 -q \ + | grep 'loaded chktex/tests/sub2/.chktexrc stdin' \ + || (echo CHKTEXRC/.chktexrc inclusion failed; exit 1) + +# CWD +echo '%' \ + | (cd ${testsdir}/sub2; \ + ${builddir}/chktex -mall -v0 -q) \ + | grep 'loaded chktex/tests/sub2/.chktexrc stdin' \ + || (echo PWD/.chktexrc inclusion failed; exit 1) + +# Not sure how to test KPSE variables... +# TEXMFMAIN CHKTEX_CONFIG +echo ">>> OK!" + +# Command line options +echo "Checking command line RC settings..." +(${builddir}/chktex -d 4 -STabSize=7 &1 \ + | grep -A1 TabSize | grep -E '\t7$' >/dev/null) \ + || (echo Setting TabSize from command line failed; exit 1) +echo ">>> OK!" diff --git a/support/chktex/tests/sub1/file.tex b/support/chktex/tests/sub1/file.tex new file mode 100644 index 0000000000..00870dd841 --- /dev/null +++ b/support/chktex/tests/sub1/file.tex @@ -0,0 +1,8 @@ +file1 +%% comment1 + +\input{sub1/subsub/subsubfile} + +%% comment2 + +more file1 diff --git a/support/chktex/tests/sub1/subsub/subsubfile.tex b/support/chktex/tests/sub1/subsub/subsubfile.tex new file mode 100644 index 0000000000..fc99c7a58d --- /dev/null +++ b/support/chktex/tests/sub1/subsub/subsubfile.tex @@ -0,0 +1,2 @@ +%% subsubcomment +subsubfile diff --git a/support/chktex/tests/sub2/file1.tex b/support/chktex/tests/sub2/file1.tex new file mode 100644 index 0000000000..3504c7c37d --- /dev/null +++ b/support/chktex/tests/sub2/file1.tex @@ -0,0 +1,7 @@ +subfile 2.1 + +%% comment 2.1 +\input{sub2/file2.tex} + +%% comment 2.1 cont. +more subfile 2.1 diff --git a/support/chktex/tests/sub2/file2.tex b/support/chktex/tests/sub2/file2.tex new file mode 100644 index 0000000000..c270ff6372 --- /dev/null +++ b/support/chktex/tests/sub2/file2.tex @@ -0,0 +1,2 @@ +%% comment 2.2 +subfile 2.2 diff --git a/support/sty2dtx/README b/support/sty2dtx/README deleted file mode 100644 index 96bed0f02c..0000000000 --- a/support/sty2dtx/README +++ /dev/null @@ -1,155 +0,0 @@ -NAME - sty2dtx -- Converts a LaTeX .sty file to a documented .dtx file - -VERSION - Version: v2.3 - -COPYRIGHT - Copyright (c) 2010-2012 Martin Scharrer - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation, either version 3 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General - Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program. If not, see . - -DESCRIPTION - Converts a .sty file (LaTeX package) to .dtx format (documented LaTeX - source), by surrounding macro definitions with 'macro' and 'macrocode' - environments. The macro name is automatically inserted as an argument to - the 'macro' environemnt. Code lines outside macro definitions are - wrapped only in 'macrocode' environments. Empty lines are removed. The - script is not thought to be fool proof and 100% accurate but rather as a - good start to convert undocumented style files to .dtx files. - - Basic Usage - perl sty2dtx.pl infile [infile ...] outfile - - or - - perl sty2dtx.pl < file.sty > file.dtx - - Supported Definitions - The following macro definitions are detected when they are at the start - of a line (can be prefixed by \global, \long, \protected and/or \outer): - - \def \edef \gdef \xdef - \newcommand{\name} \newcommand*{\name} - \newcommand\name \newcommand*\name - \renewcommand{\name} \renewcommand*{\name} - \renewcommand\name \renewcommand*\name - \providecommand{\name} \providecommand*{\name} - \providecommand\name \providecommand*\name - \@namedef{\name} \@namedef\name - - The following environment definitions are detected when they are at the - start of a line: - - \newenvironment{name} \renewenvironemnt{name} \provideenvironment{name} - - The macro and environment definition must either end at the same line or - with a '"}"' on its own on a line. - -USAGE - sty2dtx [] [--= ...] [--] [] [] - - Files - * can be '"-"' for STDIN or STDOUT, which is the default if no files are - given - - * multiple input files are merged to one output file - - Variables - Variables can be defined using - - --= - - or - - -- - - and will be used for substitutions in the template file. - - Common variables: - author, email, maintainer, year (for copyright), - version, date, description (of package/class), - type (either 'package' default or 'class'), - filebase (automatically set from output or input file name), - - Options - -h Print this help text - -H Print extended help - -V Print version and copyright - -v Be verbose - -o output Use given file as output - -O Overwrite already existing output file(s) - -B Use basename of single input file for output file - -I Also create .ins (install) file - -c Only use code section (like v1.0) - -r Remove existing 'macro', 'macrocode', etc. environments. - -R Do not remove existing 'macro', 'macrocode', etc. - environments. - -i ins-file Create .ins file with given name - -t template Use this file as template instead of the default one - -T template Use this file as template for the .ins file - -e file Export default .dtx template to file and exit - -E file Export default .ins template to file and exit - -D Use current date as file date - -F file Read more options and variables from file. - -N Do not read default config file; must be the first option - - Config files - A default config file either named 'sty2dtx.cfg' or '.sty2dtx.cfg' is - searched in the current directory, the users home directory and the - directory of this script, in this order. The first one found is loaded. - If none is found the 'texmf' tree is searched for a 'sty2dtx.cfg' config - file. As with -F files the config file should contain one option or - variable per line. Lines starting with '"%"' or '"#"' are ignored. - -Examples - Produce 'file.dtx' from 'file.sty': - - sty2dtx.pl < file.sty > file.dtx - - or - - sty2dtx.pl file.sty file.dtx - - or - - sty2dtx.pl -B file.sty - - Produce 'file.dtx' and 'file.ins' from 'file.sty': - - sty2dtx.pl -I file.sty file.dtx - - or - - sty2dtx.pl file.sty -i file.sty file.dtx - - or - - sty2dtx.pl -IB file.sty - - Set custom variable values: - - sty2dtx.pl --author Me --email me@there.com mypkg.sty mypkg.dtx - - Produce DTX file for a class: - - sty2dtx.pl --type class mycls.sty mycls.dtx - -AUTHOR - Martin Scharrer - - E-mail: martin@scharrer-online.de - - WWW: - diff --git a/support/sty2dtx/README.txt b/support/sty2dtx/README.txt new file mode 100644 index 0000000000..6b5d1a6922 --- /dev/null +++ b/support/sty2dtx/README.txt @@ -0,0 +1,162 @@ +NAME + sty2dtx -- Converts a LaTeX .sty file to a documented .dtx file + +VERSION + Version: v2.4 - 2022/10/18 + +LINKS + CTAN: https://ctan.org/pkg/sty2dtx + + Repository: https://github.com/MartinScharrer/sty2dtx + + Issues: https://github.com/MartinScharrer/sty2dtx/issues + +COPYRIGHT + Copyright (c) 2010-2022 Martin Scharrer + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program. If not, see . + +DESCRIPTION + Converts a .sty file (LaTeX package) to .dtx format (documented LaTeX + source), by surrounding macro definitions with 'macro' and 'macrocode' + environments. The macro name is automatically inserted as an argument to + the 'macro' environemnt. Code lines outside macro definitions are + wrapped only in 'macrocode' environments. Empty lines are removed. The + script is not thought to be fool proof and 100% accurate but rather as a + good start to convert undocumented style files to .dtx files. + + Basic Usage + perl sty2dtx.pl infile [infile ...] outfile + + or + + perl sty2dtx.pl < file.sty > file.dtx + + Supported Definitions + The following macro definitions are detected when they are at the start + of a line (can be prefixed by \global, \long, \protected and/or \outer): + + \def \edef \gdef \xdef + \newcommand{\name} \newcommand*{\name} + \newcommand\name \newcommand*\name + \renewcommand{\name} \renewcommand*{\name} + \renewcommand\name \renewcommand*\name + \providecommand{\name} \providecommand*{\name} + \providecommand\name \providecommand*\name + \@namedef{\name} \@namedef\name + + The following environment definitions are detected when they are at the + start of a line: + + \newenvironment{name} \renewenvironemnt{name} \provideenvironment{name} + + The macro and environment definition must either end at the same line or + with a '"}"' on its own on a line. + +USAGE + sty2dtx [] [--= ...] [--] [] [] + + Files + * can be '"-"' for STDIN or STDOUT, which is the default if no files are + given + + * multiple input files are merged to one output file + + Variables + Variables can be defined using + + --= + + or + + -- + + and will be used for substitutions in the template file. + + Common variables: + author, email, maintainer, year (for copyright), + version, date, description (of package/class), + type (either 'package' default or 'class'), + filebase (automatically set from output or input file name), + + Options + -h Print this help text + -H Print extended help + -V Print version and copyright + -v Be verbose + -o output Use given file as output + -O Overwrite already existing output file(s) + -B Use basename of single input file for output file + -I Also create .ins (install) file + -c Only use code section (like v1.0) + -r Remove existing 'macro', 'macrocode', etc. environments. + -R Do not remove existing 'macro', 'macrocode', etc. + environments. + -i ins-file Create .ins file with given name + -t template Use this file as template instead of the default one + -T template Use this file as template for the .ins file + -e file Export default .dtx template to file and exit + -E file Export default .ins template to file and exit + -D Use current date as file date + -F file Read more options and variables from file. + -N Do not read default config file; must be the first option + + Config files + A default config file either named 'sty2dtx.cfg' or '.sty2dtx.cfg' is + searched in the current directory, the users home directory and the + directory of this script, in this order. The first one found is loaded. + If none is found the 'texmf' tree is searched for a 'sty2dtx.cfg' config + file. As with -F files the config file should contain one option or + variable per line. Lines starting with '"%"' or '"#"' are ignored. + +Examples + Produce 'file.dtx' from 'file.sty': + + sty2dtx.pl < file.sty > file.dtx + + or + + sty2dtx.pl file.sty file.dtx + + or + + sty2dtx.pl -B file.sty + + Produce 'file.dtx' and 'file.ins' from 'file.sty': + + sty2dtx.pl -I file.sty file.dtx + + or + + sty2dtx.pl file.sty -i file.sty file.dtx + + or + + sty2dtx.pl -IB file.sty + + Set custom variable values: + + sty2dtx.pl --author Me --email me@there.com mypkg.sty mypkg.dtx + + Produce DTX file for a class: + + sty2dtx.pl --type class mycls.sty mycls.dtx + +AUTHOR + Martin Scharrer + + E-mail: martin.scharrer@web.de + + WWW: + diff --git a/support/sty2dtx/sty2dtx.1 b/support/sty2dtx/sty2dtx.1 index 692dad8320..e63d5e3e41 100644 --- a/support/sty2dtx/sty2dtx.1 +++ b/support/sty2dtx/sty2dtx.1 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) +.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== @@ -38,27 +38,36 @@ . ds PI \(*p . ds L" `` . ds R" '' +. ds C` +. ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" -.\" If the F register is turned on, we'll generate index entries on stderr for +.\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX .. -. nr % 0 -. rr F -.\} -.el \{\ -. de IX +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} .\} +.rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -124,7 +133,7 @@ .\" ======================================================================== .\" .IX Title "STY2DTX 1" -.TH STY2DTX 1 "2012-11-07" "perl v5.14.2" "User Contributed Perl Documentation" +.TH STY2DTX 1 "2022-10-18" "perl v5.30.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -133,10 +142,17 @@ sty2dtx \-\- Converts a LaTeX .sty file to a documented .dtx file .SH "VERSION" .IX Header "VERSION" -Version: v2.3 +Version: v2.4 \- 2022/10/18 +.SH "LINKS" +.IX Header "LINKS" +\&\s-1CTAN:\s0 https://ctan.org/pkg/sty2dtx +.PP +Repository: https://github.com/MartinScharrer/sty2dtx +.PP +Issues: https://github.com/MartinScharrer/sty2dtx/issues .SH "COPYRIGHT" .IX Header "COPYRIGHT" -Copyright (c) 2010\-2012 Martin Scharrer +Copyright (c) 2010\-2022 Martin Scharrer .PP This program is free software: you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by @@ -144,12 +160,12 @@ the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .PP This program is distributed in the hope that it will be useful, -but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of -\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the +but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of +\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \&\s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License -along with this program. If not, see . +along with this program. If not, see . .SH "DESCRIPTION" .IX Header "DESCRIPTION" Converts a .sty file (LaTeX package) to .dtx format (documented LaTeX source), @@ -204,7 +220,7 @@ a '\f(CW\*(C`}\*(C'\fR' on its own on a line. .SS "Files" .IX Subsection "Files" .IP "\(bu" 2 -can be '\f(CW\*(C`\-\*(C'\fR' for \s-1STDIN\s0 or \s-1STDOUT\s0, which is the default if no files are given +can be '\f(CW\*(C`\-\*(C'\fR' for \s-1STDIN\s0 or \s-1STDOUT,\s0 which is the default if no files are given .IP "\(bu" 2 multiple input files are merged to one output file .SS "Variables" @@ -335,6 +351,6 @@ Produce \s-1DTX\s0 file for a class: .IX Header "AUTHOR" Martin Scharrer .PP -E\-mail: martin@scharrer\-online.de +E\-mail: martin.scharrer@web.de .PP -\&\s-1WWW:\s0 http://www.scharrer\-online.de +\&\s-1WWW:\s0 diff --git a/support/sty2dtx/sty2dtx.pdf b/support/sty2dtx/sty2dtx.pdf index 57ecc28b3b..14610279ea 100644 Binary files a/support/sty2dtx/sty2dtx.pdf and b/support/sty2dtx/sty2dtx.pdf differ diff --git a/support/sty2dtx/sty2dtx.pl b/support/sty2dtx/sty2dtx.pl index e68b667141..7feb7951ba 100755 --- a/support/sty2dtx/sty2dtx.pl +++ b/support/sty2dtx/sty2dtx.pl @@ -9,11 +9,19 @@ sty2dtx -- Converts a LaTeX .sty file to a documented .dtx file =head1 VERSION -Version: v2.3 +Version: v2.4 - 2022/10/18 + +=head1 LINKS + +CTAN: https://ctan.org/pkg/sty2dtx + +Repository: https://github.com/MartinScharrer/sty2dtx + +Issues: https://github.com/MartinScharrer/sty2dtx/issues =head1 COPYRIGHT -Copyright (c) 2010-2012 Martin Scharrer +Copyright (c) 2010-2022 Martin Scharrer This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +34,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program. If not, see . +along with this program. If not, see . =head1 DESCRIPTION @@ -220,7 +228,7 @@ Produce DTX file for a class: Martin Scharrer -E-mail: L +E-mail: L WWW: L @@ -229,7 +237,7 @@ WWW: L ################################################################################ use Pod::Usage; -my $VERSION = "v2.3"; +my $VERSION = "v2.4"; $VERSION =~ tr/-/\//; my $TITLE = << "EOT"; @@ -329,11 +337,11 @@ my $rmacrodef = qr/ ) \\( [gex]?def \s* \\ # TeX definitions - | (?:new|renew|provide)command\s* \*? \s* {? \s* \\ # LaTeX definitions - | \@namedef{? # Definition by name only + | (?:new|renew|provide)command\s* \*? \s* \{? \s* \\ # LaTeX definitions + | \@namedef\{? # Definition by name only ) ($rmacroname) # Macro name without backslash - \s* }? # Potential closing brace + \s* \}? # Potential closing brace (.*) # Rest of line /xms; @@ -342,19 +350,19 @@ my $rkeydef = qr/ \\ (define\@[a-z]*key) \s* - {([^}]+)} # Key family + \{([^}]+)\} # Key family \s* - {([^}]+)} # Key name + \{([^}]+)\} # Key name (.*) # Rest of line /xms; my $renvdef = qr/ ^ # Begin of line (no whitespaces!) \\( - (?:new|renew|provide)environment\s* { \s* # LaTeX definitions + (?:new|renew|provide)environment\s* \{ \s* # LaTeX definitions ) ($renvname) # Environment names follow same rules as macro names - \s* } # closing brace + \s* \} # closing brace (.*) # Rest of line /xms; @@ -378,6 +386,7 @@ sub close_environment { } my ( $mday, $mon, $year ) = ( localtime(time) )[ 3 .. 5 ]; +$mday = sprintf( "%02d", $mday ); $mon = sprintf( "%02d", $mon + 1 ); $year += 1900; @@ -748,7 +757,7 @@ while (<>) { # Real comments are either: 1) starting with a '%' at SOL or 2) are followed # by at least one whitespace. This exclude (most) commented out code. elsif (/^%|^\s*%\s/) { - if (!$removeenvs || !/^%\s+\\(?:begin|end){(?:macro|environment|macrocode|key)}/) { + if (!$removeenvs || !/^%\s+\\(?:begin|end)\{(?:macro|environment|macrocode|key)\}/) { $_ =~ s/^\s*//; if ($comments || !/^%\s*$/){ $comments .= $_; diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl index 2e2bee4447..1be7573600 100644 --- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl @@ -188,7 +188,6 @@ $mirrors = { 'https://mirror.las.iastate.edu/tex-archive/' => 1, 'https://mirror.math.princeton.edu/pub/CTAN/' => 1, 'https://mirror.mwt.me/ctan/' => 1, - 'https://mirror2.sandyriver.net/pub/ctan/' => 1, 'https://mirrors.concertpass.com/tex-archive/' => 1, 'https://mirrors.mit.edu/CTAN/' => 1, 'https://mirrors.rit.edu/CTAN/' => 1, diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb index 14cf72a055..24ae9354df 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb @@ -26,11 +26,11 @@ depend container_split_src_files/1 depend frozen/0 depend minrelease/2016 depend release/2022 -depend revision/64735 +depend revision/64748 name 00texlive.image category TLCore -revision 64734 +revision 64748 shortdesc TeX Live files only in the source repository longdesc The files here are not copied by the installer and containers longdesc are not built for them; they exist only in the source @@ -1258,6 +1258,7 @@ runfiles size=12927 tlpkg/tlpsrc/coolthms.tlpsrc tlpkg/tlpsrc/cooltooltips.tlpsrc tlpkg/tlpsrc/coop-writing.tlpsrc + tlpkg/tlpsrc/cooperhewitt.tlpsrc tlpkg/tlpsrc/coordsys.tlpsrc tlpkg/tlpsrc/copyedit.tlpsrc tlpkg/tlpsrc/copyrightbox.tlpsrc @@ -4656,7 +4657,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd name 00texlive.installer category TLCore -revision 64726 +revision 64737 shortdesc TeX Live standalone installer package longdesc This package defines the files to go into the installer longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the @@ -68195,7 +68196,7 @@ containerchecksum 5bd74e1a434549cf31ce31777e9a32f90baa14148e6658633945508a46dbf6 name collection-fontsextra category Collection -revision 64734 +revision 64738 shortdesc Additional fonts relocated 1 depend aboensis @@ -68287,6 +68288,7 @@ depend comicneue depend concmath-fonts depend concmath-otf depend cookingsymbols +depend cooperhewitt depend cormorantgaramond depend countriesofeurope depend courier-scaled @@ -68546,8 +68548,8 @@ depend yfonts-otf depend yfonts-t1 depend yinit-otf depend zlmtt -containersize 1988 -containerchecksum 3e6651ad05ec2002f5a90d95de42cd4897f0fd9fdd271808eb8a46f272eec43a50f09b5f3117194ae44c3fc79de2891d2023fec049f512020639d405d9d3845d +containersize 1996 +containerchecksum 05942d37d4e15c481654696cf8d686109cac3947324ff716ef3c3ac62fbcac54c4654599ad026c4b4dccf9c079111455703a67c17f0fe233b5cf382ce2b3ab44 name collection-fontsrecommended category Collection @@ -81181,6 +81183,340 @@ catalogue-license mit catalogue-topics editorial catalogue-version 1.2.4 +name cooperhewitt +category Package +revision 64738 +shortdesc LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support for the Cooper Hewitt family of sans serif fonts +relocated 1 +longdesc Cooper Hewitt is a contemporary sans serif, with characters +longdesc composed of modified-geometric curves and arches. Initially +longdesc commissioned by Pentagram to evolve his Polaris Condensed +longdesc typeface, Chester Jenkins created a new digital form to support +longdesc the newly transformed Smithsonian Design Museum. +containersize 934712 +containerchecksum c06fbebb13baaf475a09b1e43721ce72190258461c9227fddb5bcef5b8892d2f5834c5dca5c01c0c3ae713802e6e91975bb345db914b4b6b7fe080e849a87f39 +doccontainersize 21800 +doccontainerchecksum 62bfbb5becb26aac16ebb6424020631f5fd180fe604ca3d3d7f26b418c4318c6487be4d7a1cd64dde3a46b2c332f98d26193f5b459386877bca4d664967853f1 +docfiles size=10 + RELOC/doc/fonts/cooperhewitt/OFL.txt + RELOC/doc/fonts/cooperhewitt/README details="Readme" + RELOC/doc/fonts/cooperhewitt/cooperhewitt-samples.pdf details="Font samples" + RELOC/doc/fonts/cooperhewitt/cooperhewitt-samples.tex +runfiles size=873 + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_4je6jj.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_kvtx4d.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_psuovm.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_r6y6f6.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_sz67he.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_tjvrzf.enc + RELOC/fonts/enc/dvips/cooperhewitt/cphwt_vrwj46.enc + RELOC/fonts/map/dvips/cooperhewitt/CooperHewitt.map + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Bold.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-BoldItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Book.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-BookItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Heavy.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-HeavyItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Light.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-LightItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Medium.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-MediumItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Semibold.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-SemiboldItalic.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-Thin.otf + RELOC/fonts/opentype/public/cooperhewitt/CooperHewitt-ThinItalic.otf + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Bold-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BoldItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Book-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-BookItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Heavy-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Light-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-LightItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Medium-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-MediumItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Semibold-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-Thin-tlf-ts1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-sup-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-sup-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-sup-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-sup-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-sup-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ly1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ly1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ot1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ot1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-t1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-t1.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ts1--base.tfm + RELOC/fonts/tfm/public/cooperhewitt/CpHwt-ThinItalic-tlf-ts1.tfm + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Bold.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-BoldItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Book.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-BookItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Heavy.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-HeavyItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Light.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-LightItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Medium.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-MediumItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Semibold.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-SemiboldItalic.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-Thin.pfb + RELOC/fonts/type1/public/cooperhewitt/CpHwt-ThinItalic.pfb + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Bold-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BoldItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Book-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-BookItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Heavy-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-HeavyItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Light-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-LightItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Medium-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-MediumItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Semibold-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-SemiboldItalic-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-Thin-tlf-ts1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-sup-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-sup-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-tlf-ly1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-tlf-ot1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-tlf-t1.vf + RELOC/fonts/vf/public/cooperhewitt/CpHwt-ThinItalic-tlf-ts1.vf + RELOC/tex/latex/cooperhewitt/CooperHewitt.sty + RELOC/tex/latex/cooperhewitt/LY1CpHwt-Sup.fd + RELOC/tex/latex/cooperhewitt/LY1CpHwt-TLF.fd + RELOC/tex/latex/cooperhewitt/OT1CpHwt-Sup.fd + RELOC/tex/latex/cooperhewitt/OT1CpHwt-TLF.fd + RELOC/tex/latex/cooperhewitt/T1CpHwt-Sup.fd + RELOC/tex/latex/cooperhewitt/T1CpHwt-TLF.fd + RELOC/tex/latex/cooperhewitt/TS1CpHwt-TLF.fd +catalogue-ctan /fonts/cooperhewitt +catalogue-license ofl lppl +catalogue-topics font font-sans font-t1enc font-proportional font-otf font-type1 + name coordsys category Package revision 15878 @@ -93730,7 +94066,7 @@ catalogue-version 1.4 name docshots category Package -revision 64729 +revision 64739 shortdesc TeX samples next to their PDF Snapshots relocated 1 longdesc The packages helps you render TeX examples from your DTX @@ -93741,17 +94077,17 @@ depend iexec depend pdfcrop depend pgf depend pgf-blur -containersize 2420 -containerchecksum e0a7116054d02d03da9f06b71bf37bba4929afb2dc8a84d251fccccb20d24baffdc25ef9ddd09c1b7b774c443954206dc21dc163c9345a55b9602531495fef6a -doccontainersize 328996 -doccontainerchecksum 9664c775d33882df8f573d87bdbd820c60d6ee667c27550e0b8b286133001d66d5021c6edc89fb056bd59600a51e724a9daf23a3111b7743855a79560b85afaf -docfiles size=85 +containersize 2488 +containerchecksum fb366d018e367d6820a8d900624771222e455fcef0ba77070e1b69cb90d3eeca635651c49875e13ccce2a4a35ff5856c7624f1ed59215b584e04f768ead6a391 +doccontainersize 331104 +doccontainerchecksum 91c34463c77beea9017673bc4e5fe7a9c2d00361a4c133014d4bbf9244a8ad52f81bcf9960014909b6eda9d87f40c0566e3c92240ee3f2bf46788dbb978205ea +docfiles size=86 RELOC/doc/latex/docshots/DEPENDS.txt RELOC/doc/latex/docshots/LICENSE.txt RELOC/doc/latex/docshots/README.md details="Readme" RELOC/doc/latex/docshots/docshots.pdf details="Package documentation" -srccontainersize 6004 -srccontainerchecksum 2a741955c7c884257be0fb43551f3b86a0946f2deecabad0cb2850b5468116f773d796d8732c79db4d2212bf323e0644bbaaf91544a46f15697114513c965c3f +srccontainersize 6296 +srccontainerchecksum a39b2f12c3718eb4f0b2e570402a052e0a3c562e07e5af97bad3667fe86f3da7fb79fa54d25127ed8663255dd91dd423555633ddc53fe2c0bbd4235385d3b5b0 srcfiles size=6 RELOC/source/latex/docshots/docshots.dtx RELOC/source/latex/docshots/docshots.ins @@ -93762,7 +94098,7 @@ catalogue-contact-repository https://github.com/yegor256/docshots catalogue-ctan /macros/latex/contrib/docshots catalogue-license mit catalogue-topics doc-supp -catalogue-version 0.0.3 +catalogue-version 0.0.4 name docsurvey category Package @@ -130817,7 +131153,7 @@ catalogue-version 0.3.1 name gensymb category Package -revision 64688 +revision 64740 shortdesc Generic symbols for both text and math mode relocated 1 longdesc Provides generic commands \degree, \celsius, \perthousand, @@ -130831,16 +131167,16 @@ longdesc with arbitrary typefaces. Note that the package has been longdesc designed to work in conjunction with units.sty. This package longdesc used to be part of the was bundle, but has now become a package longdesc in its own right. -containersize 2048 -containerchecksum 7b07eb3c0c2222ef6bb35f3420ab91a2c8865d8143f6666fa4255b46897150beb320c8b31e98b6f12673987c288b18371e302e35dd640eb8a4b9f770bf4682a0 -doccontainersize 221956 -doccontainerchecksum abcbc99d24c8f818d1894dbde93fd7271a934f98394344f2ed64eb90b77155fa8d2252c7713c9baf04629c9b34118335f3980398685aca24ff17a7664fd4c228 +containersize 2052 +containerchecksum 311de4fa6c68b21cdc8c655a7092d98772398e82bd9790e0bf00898a6575e234da44534635dfdd500eb7815d302a4487162f528452caf373ed11b7994682a43b +doccontainersize 221592 +doccontainerchecksum 4175231e5b998f26e913374ad20b2718d4c566e5b220bfe4de9f89ffc4422b2aa4c941acc067d392eb43a725d93457b1c10d8568f5ad0eb7c1aecd4fa83e9746 docfiles size=60 RELOC/doc/latex/gensymb/LICENSE RELOC/doc/latex/gensymb/README details="Bundle readme" RELOC/doc/latex/gensymb/gensymb.pdf details="Package documentation" -srccontainersize 5644 -srccontainerchecksum 50920282d6132aeb0f0b817bbcd6e6f4f923a812edf58c7c826bc0797209dc4d3beabb4a87740f40aa14d5463dc13646c36e524012dbdd16984cdacc103db151 +srccontainersize 5656 +srccontainerchecksum 56cc850ce5a2fb0d84b2232f591d3f1e3ed18d1924d365fdb6349237d98ac655b0881febaaed414f4903eeed7889385b4cf985eb3cf72c3fbb37392e8586f848 srcfiles size=6 RELOC/source/latex/gensymb/gensymb.dtx RELOC/source/latex/gensymb/gensymb.ins @@ -130850,7 +131186,7 @@ catalogue-contact-repository https://gitlab.com/kjhtex/gensymb catalogue-ctan /macros/latex/contrib/gensymb catalogue-license lppl1.3 catalogue-topics maths text-symbol -catalogue-version 1.0.1 +catalogue-version 1.0.2 name gentium-tug category Package @@ -133943,7 +134279,7 @@ catalogue-version 0.1 name glossaries category Package -revision 60921 +revision 64741 shortdesc Create glossaries and lists of acronyms longdesc The glossaries package supports acronyms and multiple longdesc glossaries, and has provision for operation in several @@ -133963,15 +134299,55 @@ longdesc a Perl script is provided to serve as interface. This package longdesc requires the mfirstuc package. The package supersedes the longdesc author's glossary package (which is now obsolete). depend glossaries.ARCH -containersize 80756 -containerchecksum 9e9fd1abd6728f6b42b158542abcd5d35b5205c6452e1900cbc06b664ea2adca2da9dbf375c049227ff955bb7152514b8f358c7a527d5b47edfd80ee1005903a -doccontainersize 6387244 -doccontainerchecksum 0f5dbfb060a90bf677b2dda55a08c2a5a74ac2978957a18e76ec269da09c592ddf97cfd83f4a802255383626a45aa3399fa037ce6025e03bcc258bd96745faac -docfiles size=2708 +containersize 89488 +containerchecksum 526f1207eebd26d5c895f1d0668c8f51e53628412ba11066d90abba94cd6f493119c5fa036f19923e8fe2e044b2cc949ef7c12f8aa10e44951d68a6e6678086e +doccontainersize 10787944 +doccontainerchecksum 7e7b1d7df3139108ae9b35da4735efc2066649c81a4ae888f1be499680a82d8f45bef2da1e958fc136be3768f52f1546c7518e2b0d8b1925d1ca009177b8e870 +docfiles size=4686 texmf-dist/doc/latex/glossaries/CHANGES + texmf-dist/doc/latex/glossaries/DEPENDS.txt texmf-dist/doc/latex/glossaries/INSTALL texmf-dist/doc/latex/glossaries/README.md details="Readme" texmf-dist/doc/latex/glossaries/glossaries-code.pdf details="Package code and documentation (PDF)" + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example001.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example001.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example001.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example002.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example002.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example002.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example003.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example003.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example003.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example004.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example004.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example004.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example005.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example005.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example005.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example006.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example006.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example006.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example007.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example007.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example007.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example008.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example008.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example008.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example022.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example022.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example022.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example023.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example023.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example023.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example024.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example024.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example024.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example025.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example025.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example025.tex + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example030.pdf + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example030.png + texmf-dist/doc/latex/glossaries/glossaries-user-examples/glossaries-user-example030.tex texmf-dist/doc/latex/glossaries/glossaries-user.html details="User manual (HTML)" texmf-dist/doc/latex/glossaries/glossaries-user.pdf details="User manual (PDF)" texmf-dist/doc/latex/glossaries/glossaries-user.tex @@ -134086,17 +134462,16 @@ docfiles size=2708 texmf-dist/doc/man/man1/makeglossaries-lite.man1.pdf texmf-dist/doc/man/man1/makeglossaries.1 texmf-dist/doc/man/man1/makeglossaries.man1.pdf -srccontainersize 135176 -srccontainerchecksum 94d27f11897712f688accb817e1d8d3172f51ca6f109acbdd3cfbfeafd7374d4eb92cb3726994935039cc9724cf15a4d6c646f1c3a1c7c00d6df3f3c4ca17e73 -srcfiles size=328 +srccontainersize 145412 +srccontainerchecksum 8dd4815def16a9ae37ddb87e92dc9f933191a589f3740b6f94edcfcb726273ad20ed2b9bbf5b9a3918671184d39a9a314cd0dd6c9780a240b6826c3a43178711 +srcfiles size=451 texmf-dist/source/latex/glossaries/glossaries.dtx texmf-dist/source/latex/glossaries/glossaries.ins texmf-dist/source/latex/glossaries/makeglossaries-lite.pod -runfiles size=241 - texmf-dist/scripts/glossaries/glossaries.perl +runfiles size=413 + texmf-dist/scripts/glossaries/glossaries.l2h texmf-dist/scripts/glossaries/makeglossaries texmf-dist/scripts/glossaries/makeglossaries-lite.lua - texmf-dist/tex/latex/glossaries/base/glossaries-2020-03-19.sty texmf-dist/tex/latex/glossaries/base/glossaries-babel.sty texmf-dist/tex/latex/glossaries/base/glossaries-compatible-207.sty texmf-dist/tex/latex/glossaries/base/glossaries-compatible-307.sty @@ -134104,9 +134479,42 @@ runfiles size=241 texmf-dist/tex/latex/glossaries/base/glossaries-prefix.sty texmf-dist/tex/latex/glossaries/base/glossaries.sty texmf-dist/tex/latex/glossaries/expl/glossaries-accsupp.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-accsupp-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-accsupp-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-babel-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-babel-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-compatible-207-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-compatible-207-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-compatible-307-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-compatible-307-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-polyglossia-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-polyglossia-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-prefix-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossaries-prefix-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-hypernav-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-hypernav-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-inline-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-inline-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-list-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-list-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-long-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-long-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-longbooktabs-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-longbooktabs-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-longragged-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-longragged-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-mcols-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-mcols-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-super-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-super-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-superragged-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-superragged-2021-11-01.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-tree-2020-03-19.sty + texmf-dist/tex/latex/glossaries/rollback/glossary-tree-2021-11-01.sty texmf-dist/tex/latex/glossaries/styles/glossary-hypernav.sty texmf-dist/tex/latex/glossaries/styles/glossary-inline.sty - texmf-dist/tex/latex/glossaries/styles/glossary-list-2020-03-19.sty texmf-dist/tex/latex/glossaries/styles/glossary-list.sty texmf-dist/tex/latex/glossaries/styles/glossary-long.sty texmf-dist/tex/latex/glossaries/styles/glossary-longbooktabs.sty @@ -134134,7 +134542,7 @@ catalogue-contact-bugs https://www.dickimaw-books.com/bugtracker.php?category=gl catalogue-ctan /macros/latex/contrib/glossaries catalogue-license lppl1.3 catalogue-topics glossary acronym -catalogue-version 4.49 +catalogue-version 4.50 name glossaries-danish category Package @@ -146350,7 +146758,7 @@ catalogue-version 0.3 name ifoddpage category Package -revision 56291 +revision 64742 shortdesc Determine if the current page is odd or even relocated 1 longdesc The package provides an \ifoddpage conditional to determine if @@ -146360,27 +146768,27 @@ longdesc Two compiler runs are therefore required to achieve correct longdesc results. In addition, the conditional \ifoddpageoronside is longdesc provided which is also true in oneside mode where all pages use longdesc the odd page layout. -containersize 1456 -containerchecksum f56738031814ba4d980455765212f074979b95ccfe62b1661e2017a839bc774b5423f994196a23e763644d40b9842221a5c862f9b427f335f5788d34bbcb9acb -doccontainersize 134584 -doccontainerchecksum e9fdf6ca02d33a52e89046f4d648204a0e560d97e9a12aa5742971e654bdc05867460ec10cbdb5441fc66ba02d2e078007593d9c4c898f290e61965eb6111007 -docfiles size=34 - RELOC/doc/latex/ifoddpage/README details="Readme" +containersize 1424 +containerchecksum 2d54f1608951281969c1d10784b897ab250f019a20f1597c0b8620b735293b67f371150193c23aec23338f8e056101f5982cb90b1279651c2659086d12715508 +doccontainersize 144248 +doccontainerchecksum d140c3b0bf968316b085f608cb49e340a5b4b4e5c7de68a3dfab51f4695b4894dd80aec58ee7679b5f40439262a3d706109cd141f4c16443233f7fcd7c447e70 +docfiles size=38 + RELOC/doc/latex/ifoddpage/DEPENDS.txt + RELOC/doc/latex/ifoddpage/README.txt details="Readme" RELOC/doc/latex/ifoddpage/ifoddpage.pdf details="Package documentation" -srccontainersize 4176 -srccontainerchecksum d6e471eb7014a93a4593234f3f2c81fcd1b7a758d73bd3b659c86812304e9eb9a9a29b8a653653e4672a79f75c2399bdf30491069bdc26c0e45ce9834fd8de40 -srcfiles size=4 +srccontainersize 4596 +srccontainerchecksum 19f318f5b967c8d4f8342aa11f30d71520c7782b4c9892595e26bb367cef5ee52524c916328021836677a600d3b39ef424dd611195a7b2eda83080f608224d6b +srcfiles size=5 RELOC/source/latex/ifoddpage/ifoddpage.dtx RELOC/source/latex/ifoddpage/ifoddpage.ins runfiles size=1 RELOC/tex/latex/ifoddpage/ifoddpage.sty -catalogue-contact-bugs https://sourceforge.net/p/ifoddpage/tickets/ -catalogue-contact-home https://sourceforge.net/p/ifoddpage/ -catalogue-contact-repository https://sourceforge.net/p/ifoddpage/code/ci/default/tree/ +catalogue-contact-bugs https://github.com/MartinScharrer/ifoddpage/issues +catalogue-contact-home https://github.com/MartinScharrer/ifoddpage catalogue-ctan /macros/latex/contrib/ifoddpage catalogue-license lppl1.3 catalogue-topics typesetting macro-supp -catalogue-version 1.1 +catalogue-version 1.2 name ifplatform category Package @@ -203840,7 +204248,7 @@ binfiles arch=x86_64-solaris size=1 name mfirstuc category Package -revision 60770 +revision 64743 shortdesc Uppercase the first letter of a word relocated 1 longdesc The package provides commands \makefirstuc that uppercases the @@ -203851,11 +204259,11 @@ longdesc \capitalisewords{phrase} which applies \makefirstuc to each longdesc word in the phrase, where the words are separated by regular longdesc spaces. (Exceptions can be made for words that shouldn't be longdesc converted.) -containersize 4472 -containerchecksum 9bf4d7db5094b20b65302face634a10ad2bcaf521e948130f5fda6770e8433074bd8d35b89bf905ad22609340e27e85dba5c50715a776d2c1ac98a5ec3faf5d5 -doccontainersize 676092 -doccontainerchecksum 227110ec17f336a9c443bfdf6294259a45457fbbfd33c14bbc2d7c58d28bfd6cb83182ef6c6a09e3ca89dff6fb98a807304bb41695e1d823bd80c17a1f5a862d -docfiles size=201 +containersize 5756 +containerchecksum 2fde98490744da1823c5d90b8fabaa9c02d33f3f974fc7f0f6b8ddae4d8ec86f563a4fb491644d53a13b8632fbca2c7768970eea018c6112dc76d21307d89166 +doccontainersize 779396 +doccontainerchecksum 43fd4ec0bc778fc110c0002ebd8a1fd25374d9167c8b64857b29bc3642870c89f02deb406378bfa0fbc46825af6fc6622a1029880189f37d58efea74a983f5a3 +docfiles size=266 RELOC/doc/latex/mfirstuc/CHANGES RELOC/doc/latex/mfirstuc/README details="Readme" RELOC/doc/latex/mfirstuc/mfirstuc-code.pdf details="Package code and documentation (PDF)" @@ -203864,19 +204272,20 @@ docfiles size=201 RELOC/doc/latex/mfirstuc/mfirstuc-manual.tex RELOC/doc/latex/mfirstuc/sample-mfirstuc.pdf RELOC/doc/latex/mfirstuc/sample-mfirstuc.tex -srccontainersize 8744 -srccontainerchecksum 00c4f80df9ad7a6647f5dfa3ac3330ebcbe1041817ad013eccba3faa1631db0a16fe887240eeb6fd0e21b61308b1cf5c9387101bfd9ee01738ea46bf5c87f6d1 -srcfiles size=11 +srccontainersize 11528 +srccontainerchecksum cd46a05b9b90c3e703c5970ac46b8fd59d94dcdb83dfd38a1038bb2197ebd0b8a89ef9582dabf1ee8665abba4905548706fcc08ced7966fadaedb333bae968db +srcfiles size=17 RELOC/source/latex/mfirstuc/mfirstuc.dtx RELOC/source/latex/mfirstuc/mfirstuc.ins -runfiles size=6 - RELOC/scripts/mfirstuc/mfirstuc.perl +runfiles size=11 + RELOC/scripts/mfirstuc/mfirstuc.l2h + RELOC/tex/latex/mfirstuc/mfirstuc-2021-10-15.sty RELOC/tex/latex/mfirstuc/mfirstuc-english.sty RELOC/tex/latex/mfirstuc/mfirstuc.sty catalogue-ctan /macros/latex/contrib/mfirstuc catalogue-license lppl1.3 catalogue-topics text-manip macro-supp -catalogue-version 2.07 +catalogue-version 2.08 name mflogo category Package @@ -206557,7 +206966,7 @@ catalogue-version 1.8f name mismath category Package -revision 56949 +revision 64744 shortdesc Miscellaneous mathematical macros relocated 1 longdesc The package provides some mathematical macros to typeset: @@ -206567,15 +206976,15 @@ longdesc beautiful arrows and adjusted norm, some standard operator longdesc names, improved spacings in mathematical formulas, systems of longdesc equations and small matrices, displaymath in double columns for longdesc long calculations. -containersize 2784 -containerchecksum 68bfec9f2b2d88d248416c43368831f76a8b5700252cd2adb4b7dbc0ca05d66243d1e8c8f587bc39da32f3f0db00be60a7f07047af2484ec9227055325a62922 -doccontainersize 531316 -doccontainerchecksum 70d308ce935a64573b9b9e96b0cb158518a61748c05ab79d9abb0445043ee3343b18d5babe5c3436f42d1e277cb374fbf40c470e85ab99dcf8da841bf0918bd8 -docfiles size=131 +containersize 2816 +containerchecksum 14e8c1a56fec71139f317b4e0bf1cac82d491676eade543f3fe7a4f5007f59adaca3ca007f88409ffd772e469fca949dff7cf5234ceea1bffe948ba391260905 +doccontainersize 360448 +doccontainerchecksum c06cadbd0853c20ec5a462816dd447183bca4ca1e9cb5abfeabe90a68e891d3bf5055ce6ec174f98c818dc593468bb3c600089b45d1264e31b3d292ad628373d +docfiles size=90 RELOC/doc/latex/mismath/README.md details="Readme" RELOC/doc/latex/mismath/mismath.pdf details="Package documentation" -srccontainersize 14616 -srccontainerchecksum 938131fb63838e1ab7e2cae20d037c3cc24d22e152cad295c227e7fe12a3b4cfb2ccdaa0a1b3753c63071d253ebbb8f26c2ed7fa1056d4de517317c3fb3bee34 +srccontainersize 14788 +srccontainerchecksum 2b4d8a1254376de87355587784c65a51783eacbb91368fce144dd8e0e1e40c3f31158f87b5945c354cab48d895c46feea50c93e3cf75f197d4f224b216308d7f srcfiles size=12 RELOC/source/latex/mismath/mismath.dtx RELOC/source/latex/mismath/mismath.ins @@ -206584,7 +206993,7 @@ runfiles size=2 catalogue-ctan /macros/latex/contrib/mismath catalogue-license lppl1.3 catalogue-topics maths -catalogue-version 1.8 +catalogue-version 1.9 name missaali category Package @@ -243998,7 +244407,7 @@ catalogue-version 0.1 name pgf-periodictable category Package -revision 64681 +revision 64748 shortdesc Create custom periodic tables of elements relocated 1 longdesc The purpose of this package is to provide the Periodic Table of @@ -244007,11 +244416,11 @@ longdesc or partial periodic table with a variety of options and longdesc displaying the desired data for all the 118 elements. It can be longdesc done in six languages: English, French, German, Portuguese longdesc (from Portugal and from Brazil), Spanish and Italian. -containersize 468460 -containerchecksum 961e88adb0dd2ebb841ac7ee27663c5a99c00cfde9f9a3c54832fe506c1441c3c04bba252056ffdf11924944d585fa7d7acb5911c2a4a37d1e6148241e02a40e -doccontainersize 4605504 -doccontainerchecksum 66f0af73e1f2a8fcfb0b135dcfda84547950629dd496c87a84575266caa5d61f81bbbe1c26570612302a3a3acba0d2a381b15039a242a0da2cf9d10b67cf9742 -docfiles size=1945 +containersize 500832 +containerchecksum b8f0d1acae772824235182470dfe13a51b179aa68f5ba77ddbae07261a63c874ff2990c2c07ab9bd4cb09fa17264c480c7080b2e1065f2ebaf70733dcc533821 +doccontainersize 4573012 +doccontainerchecksum 36d0840ed326606316f7d65f6547ca14454315fb45ebcbcee0e233d85bc9a162391693c31e215c231b67afc9a02575aaf4dff648e74ae0416f7dd559a8d75716 +docfiles size=1882 RELOC/doc/latex/pgf-periodictable/README details="Readme" RELOC/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Ar.tex RELOC/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_CS.tex @@ -244043,19 +244452,11 @@ docfiles size=1945 RELOC/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.ist RELOC/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.pdf details="Package documentation" RELOC/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.backcolors.keys.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.buildcell.tex RELOC/doc/latex/pgf-periodictable/pgfPT.colorSchemes.info.pdf RELOC/doc/latex/pgf-periodictable/pgfPT.colorSchemes.info.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.data.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.drawing.keys.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.formatNumbers.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.labels.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.names.tex - RELOC/doc/latex/pgf-periodictable/pgfPT.process.language.tex RELOC/doc/latex/pgf-periodictable/pgfPT_radio_symbol.tex RELOC/doc/latex/pgf-periodictable/pgfPTcolorSchemes.html -runfiles size=499 +runfiles size=562 RELOC/tex/latex/pgf-periodictable/flags/pgfPT_flag0.pdf RELOC/tex/latex/pgf-periodictable/flags/pgfPT_flag1.pdf RELOC/tex/latex/pgf-periodictable/flags/pgfPT_flag10.pdf @@ -244098,7 +244499,15 @@ runfiles size=499 RELOC/tex/latex/pgf-periodictable/lattice/pgfPT_ls_tetr.pdf RELOC/tex/latex/pgf-periodictable/lattice/pgfPT_ls_tric.pdf RELOC/tex/latex/pgf-periodictable/pgf-PeriodicTable.sty + RELOC/tex/latex/pgf-periodictable/pgfPT.backcolors.keys.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.buildcell.tex RELOC/tex/latex/pgf-periodictable/pgfPT.coordinates.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.data.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.drawing.keys.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.formatNumbers.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.labels.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.names.tex + RELOC/tex/latex/pgf-periodictable/pgfPT.process.language.tex RELOC/tex/latex/pgf-periodictable/pgfPT_radio_symbol.pdf RELOC/tex/latex/pgf-periodictable/spectra/pgfPT_spec1.pdf RELOC/tex/latex/pgf-periodictable/spectra/pgfPT_spec10.pdf @@ -253510,7 +253919,7 @@ catalogue-version 1.0 name proflycee category Package -revision 64698 +revision 64745 shortdesc A LaTeX package for French maths teachers in high school relocated 1 longdesc This package provides some commands to help French mathematics @@ -253519,17 +253928,23 @@ longdesc create splines with "derivative control"; \paramCF and \ligneCF longdesc in order to create an xcas-windows-like; \envconsolepythontex longdesc and \envcodepythontex to create code presentation and code longdesc execution with pythontex. -containersize 18944 -containerchecksum b1b4cc6a1999762cd96c02377d261b9ade6c99438aaeede70b5570dd6b60015d4c83d5862479ab1da28924dcbd204fd8b740d2f1fd182674fc4b954f02924c86 -doccontainersize 958472 -doccontainerchecksum 62908858e683e0facf721c38688939fa91c665c08740aeeb206d77ccc6f8aaa12a96aaa35c33ddfadbe5fb5e34dfde5ea8eb99e3a9d67f70f8686fb35169f775 -docfiles size=283 +containersize 19828 +containerchecksum 149a981369ce0211a6049f8f9342b6ec025708d63d4bdc9387e275ba76bd8961b884fed84c5a830a83abe19ccae91de04f48d91b8ffb57e8994714b3aa163b52 +doccontainersize 1051596 +doccontainerchecksum 299c6e61ad502323b5543c5f9ea17c7ff6ea38ec55889507abf5bc2f9b06c8916724619f5f37ad38f877f758c229a445dc01c87fa9469f10835ca7b71daa3cf7 +docfiles size=310 RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr" RELOC/doc/latex/proflycee/ProfLycee-doc.tex RELOC/doc/latex/proflycee/README.md details="Readme" RELOC/doc/latex/proflycee/basique.csv RELOC/doc/latex/proflycee/cap.csv RELOC/doc/latex/proflycee/perroquet.csv + RELOC/doc/latex/proflycee/pl-doc-probas_a.png + RELOC/doc/latex/proflycee/pl-doc-probas_b.png + RELOC/doc/latex/proflycee/pl-doc-probas_c.png + RELOC/doc/latex/proflycee/pl-doc-probas_d.png + RELOC/doc/latex/proflycee/pl-doc-probas_e.png + RELOC/doc/latex/proflycee/pl-doc-probas_f.png RELOC/doc/latex/proflycee/pl-doc-stats_a.png RELOC/doc/latex/proflycee/pl-doc-stats_b.png RELOC/doc/latex/proflycee/pl-doc-stats_c.png @@ -253537,7 +253952,7 @@ docfiles size=283 RELOC/doc/latex/proflycee/pl-doc-stats_d.png RELOC/doc/latex/proflycee/pl-doc-stats_e.png RELOC/doc/latex/proflycee/testscript.py -runfiles size=26 +runfiles size=27 RELOC/tex/latex/proflycee/ProfLycee.sty catalogue-also profcollege catalogue-contact-bugs https://github.com/cpierquet/ProfLycee/issues @@ -253545,7 +253960,7 @@ catalogue-contact-repository https://github.com/cpierquet/ProfLycee catalogue-ctan /macros/latex/contrib/proflycee catalogue-license lppl1.3c catalogue-topics maths french teaching expl3 pgf-tikz -catalogue-version 1.3.3 +catalogue-version 1.3.5 name program category Package @@ -290704,7 +291119,7 @@ catalogue-version 1.0 name sty2dtx category Package -revision 56291 +revision 64746 shortdesc Create a .dtx file from a .sty file longdesc The package provides a Perl script that converts a .sty file longdesc (LaTeX package) to .dtx format (documented LaTeX source), by @@ -290720,14 +291135,14 @@ longdesc file from 'dtxtut' is used. User level macros are added longdesc automatically to the 'Usage' section of the .dtx file. A longdesc corresponding .ins file can be generated as well. depend sty2dtx.ARCH -containersize 8720 -containerchecksum a7e42340744a348c88bb3cde7e23d428259f4fe7c644093e4bdabf8c49bc7f9c929a2271cd14daed9be233a04f62b60602a9fa778d05b11dba716d886286e8e1 -doccontainersize 151548 -doccontainerchecksum 2fb33ea4fcc9b5e940b46cb1b53cb56692528d8926d9bf22d3615958946763a63be101a5cf146a14ade43e2dce11b8fc25866d563d844570863dce54f48472b5 -docfiles size=43 +containersize 8784 +containerchecksum 0fa962d1baaeef4981aef8743dcb9350458e1051208cf92bb9c0630d7670a21c30ed89c6fd94b52d6ab81f32c3c91a05a6bb32e45b70d4d363be7cf225dc6c80 +doccontainersize 184132 +doccontainerchecksum bd4fe0913963188e32133a2634adff87f7c9e97a9cbd9aad05356eb20d89ea381856eac60e8660cdc8eb1b9754ba865553882775906252b5eed1c675128b550a +docfiles size=52 texmf-dist/doc/man/man1/sty2dtx.1 texmf-dist/doc/man/man1/sty2dtx.man1.pdf - texmf-dist/doc/support/sty2dtx/README details="Readme" + texmf-dist/doc/support/sty2dtx/README.txt texmf-dist/doc/support/sty2dtx/sty2dtx.pdf runfiles size=8 texmf-dist/scripts/sty2dtx/sty2dtx.pl @@ -308237,7 +308652,7 @@ docfiles size=376 name texlive-scripts category TLCore -revision 64726 +revision 64737 shortdesc TeX Live infrastructure programs longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for longdesc tlmgr to run but still ours. Not included in tlcritical. @@ -308245,11 +308660,11 @@ depend texlive-scripts.ARCH depend texlive.infra execute addMap mathpple.map postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat -containersize 113688 -containerchecksum 3409bab3b4d4b5fa24ae4a75ec829b27a6f148b8a11f8c2d0f47a6a5fdc30df7ef14bff0e4fc0e2a4403d6d52d10a2b4298f2ebfce3bf1d243ff9f062f6a9e59 -doccontainersize 422228 -doccontainerchecksum 82adf32ed408d102d4495282cf7498bdda4a0805f79566ae0e04f9908401e0f901f5f0cf38e750c5cfc7ee3e2c8bc29966aec78c6bb9b99ccec384244647f35a -docfiles size=523 +containersize 113668 +containerchecksum 09ae66806fcb4a2dc60db99cb4a126ed6b5c65eb1cc69258d397a80d7e7f1512ab7e2c63581f9c0d2f7e8e5eb1695eefdc887aee4bdce3b13de0bbfa23b09431 +doccontainersize 422240 +doccontainerchecksum 9563e4c3858404060f36713d4ea34fa289d8a4a05d908f2973c5ff588d757bab30744cb0c5b68c283b3bb00d7dc6a3689af25d79f353f07666d6b4079b3a245c +docfiles size=524 doc.html texmf-dist/doc/man/man1/fmtutil-sys.1 texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 index 3848833de5..8c0207b523 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 @@ -1 +1 @@ -747e143da4977e39746b3c6daac68d87 texlive.tlpdb +67ace79ea163c933a27cac03c3f03624 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 index e99fae206e..0cc5dc5d3c 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 @@ -1 +1 @@ -d964f0d91a6df10dcf59d4baa5f42645dddce6d2602cbec022b5f936e74bf754a01bfb8589b49430b9f65f7abc9fd8ecd89e1219f3e6df7a923d2b75f9e833ef texlive.tlpdb +729e9ec4a982b0ecb4d14374437596ef00ad2b94473ad001b6a830b35075dd3222e5bdbc5202dd1ad1c9ad72fa458a107b712402fb86c220cf592455283829e6 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc index cf8f3040fd..b82cce3f8a 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc @@ -1,10 +1,10 @@ -----BEGIN PGP SIGNATURE----- -iQEcBAEBCgAGBQJjTeuPAAoJEEzhh34ZQ4xwJ4sH/iGTbUJfbE+hQpkCjgdkZKEl -Sl83IFpmmLBKNtdQIDwNSnrx9rsI3nvye+2YLGFbi0D+ZtM3lJnlovo7PEaWGoIX -ExQyIixkdhEmy/SHsNEf0EbpfbkMrXEXTR0T53GDp65Rb249MMxFlXMzoC6gJzGK -G2XJmqQTqAPQ7k1F2TY28niiz0prrmrg4zwyKeSEkb7VdtUVsClKMWj5ysfncjNT -W4PAinQdVCmLxd7hVw190ZOVJtK3UB+uwkBZCRG1xq+5J/Hx2XzUk1+w0vfAkZ9Z -psahmSAjUvTp6nP7I/BvyDN1+6Iu1ZqgAKE5/D462dNhX5vP8M2DymZIhb3FXPo= -=7jVh +iQEcBAEBCgAGBQJjTz1oAAoJEEzhh34ZQ4xwg0MIALTS29KAnn+cqKNsgLEeD8Gp +qk6DzlpnKn8loM2HW/3xXm/A4M93fXsDAgcqY/wUfIWMBNch2jJ2u1mjudM0vuxH +vBtFpxDPH6q7X09FXI4FSEW5AynkiMLpH0ZcHa8lxdYbXldtEtU92eZy6PVNErQt +IWEO9LBpiNVQXL5cki/6RNa9u7qfQ0sqTCoUpt8DwdYLJqxnvlClZ5AZkT+/ZItr +rI6WQ9Cm0bDnkkWEY7k28dt7hyoroiSKyuq8rjm4BoDgKFCmqhs8tRelvzSV04Op +S4cGfLo8NRaq8qLSLIOeWn+MHWZoRJq0sEZIEUdSTKbT1DbCxCvzGIIgMUmH8d0= +=5+22 -----END PGP SIGNATURE----- diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz index 0913118374..d7d52fd5a6 100644 Binary files a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz and b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz differ diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini index a929f3eb45..538abf9247 100644 --- a/systems/win32/miktex/tm/packages/next/pr.ini +++ b/systems/win32/miktex/tm/packages/next/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1666037837 +date=1666124224 lastupd=miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-x64-2.9 miktex-cjkutils-bin-x64-2.9 miktex-console-bin-x64-2.9 miktex-curl-bin-x64-2.9 miktex-cweb-bin-x64-2.9 miktex-devnag-bin-x64-2.9 miktex-doc miktex-dvicopy-bin-x64-2.9 miktex-dvipdfmx-bin-x64-2.9 miktex-dvipng-bin-x64-2.9 miktex-dvips-bin-x64-2.9 -lstdigest=5cf35c7c7bf47d201f6fd3e04307a44b +lstdigest=5b71ffdf742861ce8d057fe9856ee468 numpkg=6101 relstate=next -version=8325 +version=8326 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: kZ0a9P3iQjsalNYaIezlGorWB54J+9rJVycC3uCtHGbEoIXFgXwKwgHhYiZALEfDaus07K8DiXTMKPYZC9mT/Nh6RRxhSXTPRipCnIYap1DFF7rObHM6wnPUZYZmXVYYGMy+M8ZMhAdYeR0F/00ZWUrOZjXSKcsmMb/Zt3Ur/g1EpzxM29f9fhDEFhYoOdr6Gc/3okj2te0EJfSrg6xbMO83YyXvcJpt2GjIMUYyP1qv2iLElTsZvMr3Som0R4CcClNDYKYM/NdDM+Y4JPC1dIPOm+obNpaef/j4BQlBcETEofnWu9Oq2FivgoyVcZ9OMEpC9/XVl+WuEXPQdaiuKw== +;;;; signature/miktex: arqrm1MaklfyQXSxMcls8XE6WLgacNR4F0iSj5K3Fy7F5O4B+n1Nplt4J93ewFXOfkfqv+e2T94EKlnHG3HxoRJ9GbazX10Yyui4e5kS8DSc769izcpvX8ZWtZKVd0WX3yLilpwVvoAxSusgmPtRz3qWGQY5oDjsSqgpzQWOL0GtIkePBdmJMvYCeK1ERMkrl+IZBoQA0NXrC2sBtBEg2hqPOySG5wRG3N+cSs8ifs22Ebt3knKwPKpdMFgIKp1k5oqRjFCtrgBMHf5gDSNo9yrygXU4kUhrUEfEX3XAMcvAxFbMqadYVh+Y0kQ1LJVQzPxE9bWmoMSsz1r8OOPQPg== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini index 9dd231bc96..e05ea1bbe7 100644 --- a/systems/win32/miktex/tm/packages/pr.ini +++ b/systems/win32/miktex/tm/packages/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1666037466 +date=1666123922 lastupd=miktex-runtime-bin-x64-2.9 standalone was was__doc was__source xcharter-math xcharter-math__doc xcharter-math__source abntexto abntexto__doc abntexto__source algpseudocodex algpseudocodex__doc algpseudocodex__source apxproof apxproof__doc apxproof__source centeredline centeredline__doc chemobabel -lstdigest=fd2e53878622419f395c682c5ef1326b +lstdigest=fe9615db65f4d970ef9536b4156d8362 numpkg=6101 relstate=stable -version=8325 +version=8326 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: QCGDtHHREo+Pqqhst0wnbzTd3MyrqOFZjRIEaUx0dupR2ER1qKjTi5KK5S8OxZjfkL7jhlD1jYNjh/wSaaP9U59KWuCtmiSAMfDOrXuLD3MfSfn1f5iT4TSVHcmIhydH06s27TRir23Wbm/6CqQOuR2OoUp9xSm50cETLIbqudoyESoukkxL8+XTwiVY1kHcOvASMtjN9zsEX6QFl2IFSlSJcPOOLJtwSj0QUn4ePKZ3uXCVjwE4FCrmbKeI363mDrYIo81qoq4CHzHf3rHoVCpQCsSvfrA3Z2ChhBWaJwcTfT8Gsp0m2Pg9BZ2QZolXRS/rI/mr7g2RXhYmx344Fw== +;;;; signature/miktex: vqgsRTOT0qaroWuDNAwQ9yAARS5RxaJY+vWKkr2liT4pcySR/VwAFSCQmXrM6Oj4Jn/DWvJoZdb1HLjzWz5SKmHGionDKWNimUxZu+YlofUIFGAC7AcZg6OgTyHdoOrEyed+a85UXwXLBYnTdbN2McPpN9kBnMg/miYQBmjLFWZwZ4WPSGwDMr3Oe1uwPdrm7rNu5AHkoSwp/l3fGlB07nRdDdVpeaHtRDKCnOVClSLn0QrPBV14Kx9jL5p+HrKfhzCnID/RFOOtvak0+4oqv0nL7YfzY1wzrni/XP4kBMShc168g+xhPOO7YU/DfITVt+B1bHhADWfZ7NlIL75v0A== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/timestamp b/timestamp index 934c36b178..1762f720ee 100644 --- a/timestamp +++ b/timestamp @@ -2,4 +2,4 @@ # The source CTAN of this site's material: dante.ctan.org # The year-month-day-hour-minute of this site's material: -2022-10-18-02-02 +2022-10-19-02-02 -- cgit v1.2.3