From 53ba037a57ed7a29a97cb8dd48d274a4cbba8e54 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 11 Oct 2026 13:55:41 +0000 Subject: [PATCH 1/3] =?UTF-8?q?Map=20the=20release-note=20icons=20?= =?UTF-8?q?=F0=9F=93=84=20=F0=9F=A7=A9=20=E2=9C=A8=20=F0=9F=8E=A8=20?= =?UTF-8?q?=F0=9F=93=96=20=F0=9F=A7=AA=20to=20the=20emoji=20font.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Libertinus has no glyph for them; LaTeX reports missing characters, and latexmk exits with an error although the PDF is written. ๐Ÿ”ง ๐Ÿชณ โš™ ๐Ÿ”— ๐Ÿณ were mapped already. Co-Authored-By: Patrick Lehmann --- example/lualatex/Icons.tex | 6 ++++++ example/sphinx/Icons.rst | 6 ++++++ pytooling.sty | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/example/lualatex/Icons.tex b/example/lualatex/Icons.tex index 5af87aa..ba56abe 100644 --- a/example/lualatex/Icons.tex +++ b/example/lualatex/Icons.tex @@ -31,6 +31,7 @@ \chapter{Unicode Icons} \item U+1F4E6 Package ๐Ÿ“ฆ \item U+1F4C1 File Folder ๐Ÿ“ \item U+1F4C2 Open File Folder ๐Ÿ“‚ + \item U+1F4C4 Page Facing Up ๐Ÿ“„ \item U+1FAA3 Bucket ๐Ÿชฃ \item U+1F5D1 Wastebasket ๐Ÿ—‘ \item U+2699 Gear โš™ @@ -66,6 +67,11 @@ \chapter{Unicode Icons} \item U+1F517 Link Symbol ๐Ÿ”— \item U+1F527 Wrench ๐Ÿ”ง \item U+1F528 Hammer ๐Ÿ”จ + \item U+1F9E9 Jigsaw Puzzle Piece ๐Ÿงฉ + \item U+1F9EA Test Tube ๐Ÿงช + \item U+1F3A8 Artist Palette ๐ŸŽจ + \item U+1F4D6 Open Book ๐Ÿ“– + \item U+2728 Sparkles โœจ \item U+1F5CE Document %๐Ÿ—Ž \item U+2B50 White medium star โญ \item U+231B Hourglass โŒ› diff --git a/example/sphinx/Icons.rst b/example/sphinx/Icons.rst index 7cbebbb..01779c3 100644 --- a/example/sphinx/Icons.rst +++ b/example/sphinx/Icons.rst @@ -32,6 +32,7 @@ Unicode Icons :U+1F4E6 Package: ๐Ÿ“ฆ :U+1F4C1 File Folder: ๐Ÿ“ :U+1F4C2 Open File Folder: ๐Ÿ“‚ +:U+1F4C4 Page Facing Up: ๐Ÿ“„ :U+1FAA3 Bucket: ๐Ÿชฃ :U+1F5D1 Wastebasket: ๐Ÿ—‘ :U+2699 Gear: โš™ @@ -67,6 +68,11 @@ Unicode Icons :U+1F517 Link Symbol: ๐Ÿ”— :U+1F527 Wrench: ๐Ÿ”ง :U+1F528 Hammer: ๐Ÿ”จ +:U+1F9E9 Jigsaw Puzzle Piece: ๐Ÿงฉ +:U+1F9EA Test Tube: ๐Ÿงช +:U+1F3A8 Artist Palette: ๐ŸŽจ +:U+1F4D6 Open Book: ๐Ÿ“– +:U+2728 Sparkles: โœจ :U+1F5CE % Document: ??? :U+2B50 White medium star: โญ :U+231B Hourglass: โŒ› \ No newline at end of file diff --git a/pytooling.sty b/pytooling.sty index 4f343b5..1eba356 100644 --- a/pytooling.sty +++ b/pytooling.sty @@ -170,6 +170,7 @@ \newunicodechar{๐Ÿ“ฆ}{\emoji{๐Ÿ“ฆ}} % Package U+1F4E6 \newunicodechar{๐Ÿ“}{\emoji{๐Ÿ“}} % File Folder U+1F4C1 \newunicodechar{๐Ÿ“‚}{\emoji{๐Ÿ“‚}} % Open File Folder U+1F4C2 +\newunicodechar{๐Ÿ“„}{\emoji{๐Ÿ“„}} % Page Facing Up U+1F4C4 \newunicodechar{๐Ÿชฃ}{\emoji{๐Ÿชฃ}} % Bucket ๏ธ U+1FAA3 \newunicodechar{๐Ÿ—‘}{\emoji{๐Ÿ—‘}} % Wastebasket ๐Ÿ—‘๏ธ U+1F5D1 \newunicodechar{โš™}{\emoji{โš™}} % Gear โš™๏ธ U+2699 @@ -205,6 +206,11 @@ \newunicodechar{๐Ÿ”—}{\emoji{๐Ÿ”—}} % Link Symbol U+1F517 \newunicodechar{๐Ÿ”ง}{\emoji{๐Ÿ”ง}} % Wrench U+1F527 \newunicodechar{๐Ÿ”จ}{\emoji{๐Ÿ”จ}} % Hammer U+1F528 +\newunicodechar{๐Ÿงฉ}{\emoji{๐Ÿงฉ}} % Jigsaw Puzzle Piece U+1F9E9 +\newunicodechar{๐Ÿงช}{\emoji{๐Ÿงช}} % Test Tube U+1F9EA +\newunicodechar{๐ŸŽจ}{\emoji{๐ŸŽจ}} % Artist Palette U+1F3A8 +\newunicodechar{๐Ÿ“–}{\emoji{๐Ÿ“–}} % Open Book U+1F4D6 +\newunicodechar{โœจ}{\emoji{โœจ}} % Sparkles U+2728 \newunicodechar{๐Ÿ—Ž}{\emoji{๐Ÿ—Ž}} % Document U+1F5CE \newunicodechar{โญ}{\emoji{โญ}} % White medium star U+2B50 \newunicodechar{โŒ›}{\emoji{โŒ›}} % Hourglass U+231B From d0c1634ed9a19b8827deabf39f72cbf9fdeba1b6 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 11 Oct 2026 14:48:45 +0000 Subject: [PATCH 2/3] Map 82 more icons used by AI assistants, bots and tools in commits, issues and pull-requests. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Grouped: commit types (gitmoji), bots and AI, status and checklists, notes and reviews, documents and tools, security and bugs, programming languages. โœ” โ–ถ โ„น are part of Libertinus; they are mapped for the other font families only. Co-Authored-By: Patrick Lehmann --- example/lualatex/Icons.tex | 82 ++++++++++++++++++++++++++++++++ example/sphinx/Icons.rst | 84 ++++++++++++++++++++++++++++++++- pytooling.sty | 96 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 261 insertions(+), 1 deletion(-) diff --git a/example/lualatex/Icons.tex b/example/lualatex/Icons.tex index ba56abe..51897ba 100644 --- a/example/lualatex/Icons.tex +++ b/example/lualatex/Icons.tex @@ -75,5 +75,87 @@ \chapter{Unicode Icons} \item U+1F5CE Document %๐Ÿ—Ž \item U+2B50 White medium star โญ \item U+231B Hourglass โŒ› + \item U+1F389 Party Popper ๐ŸŽ‰ + \item U+1F691 Ambulance ๐Ÿš‘ + \item U+1FA79 Adhesive Bandage ๐Ÿฉน + \item U+267B Black Universal Recycling Symbol โ™ป + \item U+26A1 High Voltage Sign โšก + \item U+1F484 Lipstick ๐Ÿ’„ + \item U+1F680 Rocket ๐Ÿš€ + \item U+1F516 Bookmark ๐Ÿ”– + \item U+1F3F7 Label ๐Ÿท + \item U+2B06 Upwards Black Arrow โฌ† + \item U+2B07 Downwards Black Arrow โฌ‡ + \item U+1F4CC Pushpin ๐Ÿ“Œ + \item U+2795 Heavy Plus Sign โž• + \item U+1F500 Twisted Rightwards Arrows ๐Ÿ”€ + \item U+23EA Black Left-Pointing Double Triangle โช + \item U+1F69A Delivery Truck ๐Ÿšš + \item U+1F4A5 Collision Symbol ๐Ÿ’ฅ + \item U+1F510 Closed Lock With Key ๐Ÿ” + \item U+1F310 Globe With Meridians ๐ŸŒ + \item U+1F50A Speaker With Three Sound Waves ๐Ÿ”Š + \item U+1F507 Speaker With Cancellation Stroke ๐Ÿ”‡ + \item U+1F9F9 Broom ๐Ÿงน + \item U+1F6A8 Police Cars Revolving Light ๐Ÿšจ + \item U+1F49A Green Heart ๐Ÿ’š + \item U+1F477 Construction Worker ๐Ÿ‘ท + \item U+1F3D7 Building Construction ๐Ÿ— + \item U+1F6E0 Hammer And Wrench ๐Ÿ›  + \item U+1F4A1 Electric Light Bulb ๐Ÿ’ก + \item U+1F3AF Direct Hit ๐ŸŽฏ + \item U+1F916 Robot Face ๐Ÿค– + \item U+270D Writing Hand โœ + \item U+1F9E0 Brain ๐Ÿง  + \item U+2714 Heavy Check Mark โœ” + \item U+2716 Heavy Multiplication X โœ– + \item U+2611 Ballot Box With Check โ˜‘ + \item U+274E Negative Squared Cross Mark โŽ + \item U+2B1C White Large Square โฌœ + \item U+1F532 Black Square Button ๐Ÿ”ฒ + \item U+26AA Medium White Circle โšช + \item U+23F3 Hourglass With Flowing Sand โณ + \item U+23F8 Double Vertical Bar โธ + \item U+25B6 Black Right-Pointing Triangle โ–ถ + \item U+23F9 Black Square For Stop โน + \item U+1F501 Clockwise Rightwards And Leftwards Open Circle Arrows ๐Ÿ” + \item U+1F504 Anticlockwise Downwards And Upwards Open Circle Arrows ๐Ÿ”„ + \item U+1F551 Clock Face Two O'Clock ๐Ÿ•‘ + \item U+23F1 Stopwatch โฑ + \item U+1F4AC Speech Balloon ๐Ÿ’ฌ + \item U+1F44D Thumbs Up Sign ๐Ÿ‘ + \item U+1F44E Thumbs Down Sign ๐Ÿ‘Ž + \item U+1F64B Happy Person Raising One Hand ๐Ÿ™‹ + \item U+1F609 Winking Face ๐Ÿ˜‰ + \item U+2139 Information Source โ„น + \item U+1F4E2 Public Address Loudspeaker ๐Ÿ“ข + \item U+1F4E3 Cheering Megaphone ๐Ÿ“ฃ + \item U+1F4CE Paperclip ๐Ÿ“Ž + \item U+1F50E Right-Pointing Magnifying Glass ๐Ÿ”Ž + \item U+1F9ED Compass ๐Ÿงญ + \item U+1F4CB Clipboard ๐Ÿ“‹ + \item U+1F5C2 Card Index Dividers ๐Ÿ—‚ + \item U+1F4D1 Bookmark Tabs ๐Ÿ“‘ + \item U+1F5D2 Spiral Note Pad ๐Ÿ—’ + \item U+270F Pencil โœ + \item U+1F4C3 Page With Curl ๐Ÿ“ƒ + \item U+1F4DC Scroll ๐Ÿ“œ + \item U+1F4DA Books ๐Ÿ“š + \item U+1F9EE Abacus ๐Ÿงฎ + \item U+1F522 Input Symbol For Numbers ๐Ÿ”ข + \item U+1F5C3 Card File Box ๐Ÿ—ƒ + \item U+1F4BE Floppy Disk ๐Ÿ’พ + \item U+1F9F0 Toolbox ๐Ÿงฐ + \item U+1F52C Microscope ๐Ÿ”ฌ + \item U+1FA7A Stethoscope ๐Ÿฉบ + \item U+1F6D2 Shopping Trolley ๐Ÿ›’ + \item U+1F3ED Factory ๐Ÿญ + \item U+1F6E1 Shield ๐Ÿ›ก + \item U+1F41E Lady Beetle ๐Ÿž + \item U+1F980 Crab ๐Ÿฆ€ + \item U+2615 Hot Beverage โ˜• + \item U+1F418 Elephant ๐Ÿ˜ + \item U+1F439 Hamster Face ๐Ÿน + \item U+1F48E Gem Stone ๐Ÿ’Ž \end{itemize} \end{multicols} diff --git a/example/sphinx/Icons.rst b/example/sphinx/Icons.rst index 01779c3..71aa143 100644 --- a/example/sphinx/Icons.rst +++ b/example/sphinx/Icons.rst @@ -75,4 +75,86 @@ Unicode Icons :U+2728 Sparkles: โœจ :U+1F5CE % Document: ??? :U+2B50 White medium star: โญ -:U+231B Hourglass: โŒ› \ No newline at end of file +:U+231B Hourglass: โŒ›:U+1F389 Party Popper: ๐ŸŽ‰ +:U+1F691 Ambulance: ๐Ÿš‘ +:U+1FA79 Adhesive Bandage: ๐Ÿฉน +:U+267B Black Universal Recycling Symbol: โ™ป +:U+26A1 High Voltage Sign: โšก +:U+1F484 Lipstick: ๐Ÿ’„ +:U+1F680 Rocket: ๐Ÿš€ +:U+1F516 Bookmark: ๐Ÿ”– +:U+1F3F7 Label: ๐Ÿท +:U+2B06 Upwards Black Arrow: โฌ† +:U+2B07 Downwards Black Arrow: โฌ‡ +:U+1F4CC Pushpin: ๐Ÿ“Œ +:U+2795 Heavy Plus Sign: โž• +:U+1F500 Twisted Rightwards Arrows: ๐Ÿ”€ +:U+23EA Black Left-Pointing Double Triangle: โช +:U+1F69A Delivery Truck: ๐Ÿšš +:U+1F4A5 Collision Symbol: ๐Ÿ’ฅ +:U+1F510 Closed Lock With Key: ๐Ÿ” +:U+1F310 Globe With Meridians: ๐ŸŒ +:U+1F50A Speaker With Three Sound Waves: ๐Ÿ”Š +:U+1F507 Speaker With Cancellation Stroke: ๐Ÿ”‡ +:U+1F9F9 Broom: ๐Ÿงน +:U+1F6A8 Police Cars Revolving Light: ๐Ÿšจ +:U+1F49A Green Heart: ๐Ÿ’š +:U+1F477 Construction Worker: ๐Ÿ‘ท +:U+1F3D7 Building Construction: ๐Ÿ— +:U+1F6E0 Hammer And Wrench: ๐Ÿ›  +:U+1F4A1 Electric Light Bulb: ๐Ÿ’ก +:U+1F3AF Direct Hit: ๐ŸŽฏ +:U+1F916 Robot Face: ๐Ÿค– +:U+270D Writing Hand: โœ +:U+1F9E0 Brain: ๐Ÿง  +:U+2714 Heavy Check Mark: โœ” +:U+2716 Heavy Multiplication X: โœ– +:U+2611 Ballot Box With Check: โ˜‘ +:U+274E Negative Squared Cross Mark: โŽ +:U+2B1C White Large Square: โฌœ +:U+1F532 Black Square Button: ๐Ÿ”ฒ +:U+26AA Medium White Circle: โšช +:U+23F3 Hourglass With Flowing Sand: โณ +:U+23F8 Double Vertical Bar: โธ +:U+25B6 Black Right-Pointing Triangle: โ–ถ +:U+23F9 Black Square For Stop: โน +:U+1F501 Clockwise Rightwards And Leftwards Open Circle Arrows: ๐Ÿ” +:U+1F504 Anticlockwise Downwards And Upwards Open Circle Arrows: ๐Ÿ”„ +:U+1F551 Clock Face Two O'Clock: ๐Ÿ•‘ +:U+23F1 Stopwatch: โฑ +:U+1F4AC Speech Balloon: ๐Ÿ’ฌ +:U+1F44D Thumbs Up Sign: ๐Ÿ‘ +:U+1F44E Thumbs Down Sign: ๐Ÿ‘Ž +:U+1F64B Happy Person Raising One Hand: ๐Ÿ™‹ +:U+1F609 Winking Face: ๐Ÿ˜‰ +:U+2139 Information Source: โ„น +:U+1F4E2 Public Address Loudspeaker: ๐Ÿ“ข +:U+1F4E3 Cheering Megaphone: ๐Ÿ“ฃ +:U+1F4CE Paperclip: ๐Ÿ“Ž +:U+1F50E Right-Pointing Magnifying Glass: ๐Ÿ”Ž +:U+1F9ED Compass: ๐Ÿงญ +:U+1F4CB Clipboard: ๐Ÿ“‹ +:U+1F5C2 Card Index Dividers: ๐Ÿ—‚ +:U+1F4D1 Bookmark Tabs: ๐Ÿ“‘ +:U+1F5D2 Spiral Note Pad: ๐Ÿ—’ +:U+270F Pencil: โœ +:U+1F4C3 Page With Curl: ๐Ÿ“ƒ +:U+1F4DC Scroll: ๐Ÿ“œ +:U+1F4DA Books: ๐Ÿ“š +:U+1F9EE Abacus: ๐Ÿงฎ +:U+1F522 Input Symbol For Numbers: ๐Ÿ”ข +:U+1F5C3 Card File Box: ๐Ÿ—ƒ +:U+1F4BE Floppy Disk: ๐Ÿ’พ +:U+1F9F0 Toolbox: ๐Ÿงฐ +:U+1F52C Microscope: ๐Ÿ”ฌ +:U+1FA7A Stethoscope: ๐Ÿฉบ +:U+1F6D2 Shopping Trolley: ๐Ÿ›’ +:U+1F3ED Factory: ๐Ÿญ +:U+1F6E1 Shield: ๐Ÿ›ก +:U+1F41E Lady Beetle: ๐Ÿž +:U+1F980 Crab: ๐Ÿฆ€ +:U+2615 Hot Beverage: โ˜• +:U+1F418 Elephant: ๐Ÿ˜ +:U+1F439 Hamster Face: ๐Ÿน +:U+1F48E Gem Stone: ๐Ÿ’Ž + diff --git a/pytooling.sty b/pytooling.sty index 1eba356..5ab5f8a 100644 --- a/pytooling.sty +++ b/pytooling.sty @@ -215,6 +215,102 @@ \newunicodechar{โญ}{\emoji{โญ}} % White medium star U+2B50 \newunicodechar{โŒ›}{\emoji{โŒ›}} % Hourglass U+231B +% Commit and pull-request types (gitmoji) +\newunicodechar{๐ŸŽ‰}{\emoji{๐ŸŽ‰}} % Party Popper U+1F389 +\newunicodechar{๐Ÿš‘}{\emoji{๐Ÿš‘}} % Ambulance U+1F691 +\newunicodechar{๐Ÿฉน}{\emoji{๐Ÿฉน}} % Adhesive Bandage U+1FA79 +\newunicodechar{โ™ป}{\emoji{โ™ป}} % Black Universal Recycling Symbol U+267B +\newunicodechar{โšก}{\emoji{โšก}} % High Voltage Sign U+26A1 +\newunicodechar{๐Ÿ’„}{\emoji{๐Ÿ’„}} % Lipstick U+1F484 +\newunicodechar{๐Ÿš€}{\emoji{๐Ÿš€}} % Rocket U+1F680 +\newunicodechar{๐Ÿ”–}{\emoji{๐Ÿ”–}} % Bookmark U+1F516 +\newunicodechar{๐Ÿท}{\emoji{๐Ÿท}} % Label U+1F3F7 +\newunicodechar{โฌ†}{\emoji{โฌ†}} % Upwards Black Arrow U+2B06 +\newunicodechar{โฌ‡}{\emoji{โฌ‡}} % Downwards Black Arrow U+2B07 +\newunicodechar{๐Ÿ“Œ}{\emoji{๐Ÿ“Œ}} % Pushpin U+1F4CC +\newunicodechar{โž•}{\emoji{โž•}} % Heavy Plus Sign U+2795 +\newunicodechar{๐Ÿ”€}{\emoji{๐Ÿ”€}} % Twisted Rightwards Arrows U+1F500 +\newunicodechar{โช}{\emoji{โช}} % Black Left-Pointing Double TriangleU+23EA +\newunicodechar{๐Ÿšš}{\emoji{๐Ÿšš}} % Delivery Truck U+1F69A +\newunicodechar{๐Ÿ’ฅ}{\emoji{๐Ÿ’ฅ}} % Collision Symbol U+1F4A5 +\newunicodechar{๐Ÿ”}{\emoji{๐Ÿ”}} % Closed Lock With Key U+1F510 +\newunicodechar{๐ŸŒ}{\emoji{๐ŸŒ}} % Globe With Meridians U+1F310 +\newunicodechar{๐Ÿ”Š}{\emoji{๐Ÿ”Š}} % Speaker With Three Sound Waves U+1F50A +\newunicodechar{๐Ÿ”‡}{\emoji{๐Ÿ”‡}} % Speaker With Cancellation Stroke U+1F507 +\newunicodechar{๐Ÿงน}{\emoji{๐Ÿงน}} % Broom U+1F9F9 +\newunicodechar{๐Ÿšจ}{\emoji{๐Ÿšจ}} % Police Cars Revolving Light U+1F6A8 +\newunicodechar{๐Ÿ’š}{\emoji{๐Ÿ’š}} % Green Heart U+1F49A +\newunicodechar{๐Ÿ‘ท}{\emoji{๐Ÿ‘ท}} % Construction Worker U+1F477 +\newunicodechar{๐Ÿ—}{\emoji{๐Ÿ—}} % Building Construction U+1F3D7 +\newunicodechar{๐Ÿ› }{\emoji{๐Ÿ› }} % Hammer And Wrench U+1F6E0 +\newunicodechar{๐Ÿ’ก}{\emoji{๐Ÿ’ก}} % Electric Light Bulb U+1F4A1 +\newunicodechar{๐ŸŽฏ}{\emoji{๐ŸŽฏ}} % Direct Hit U+1F3AF +% Bots and AI +\newunicodechar{๐Ÿค–}{\emoji{๐Ÿค–}} % Robot Face U+1F916 +\newunicodechar{โœ}{\emoji{โœ}} % Writing Hand U+270D +\newunicodechar{๐Ÿง }{\emoji{๐Ÿง }} % Brain U+1F9E0 +% Status and checklists +\ifx\pytooling@fontfamily\pytooling@ff@libertinus\else % part of Libertinus, but not of the other families + \newunicodechar{โœ”}{\emoji{โœ”}} % Heavy Check Mark U+2714 +\fi +\newunicodechar{โœ–}{\emoji{โœ–}} % Heavy Multiplication X U+2716 +\newunicodechar{โ˜‘}{\emoji{โ˜‘}} % Ballot Box With Check U+2611 +\newunicodechar{โŽ}{\emoji{โŽ}} % Negative Squared Cross Mark U+274E +\newunicodechar{โฌœ}{\emoji{โฌœ}} % White Large Square U+2B1C +\newunicodechar{๐Ÿ”ฒ}{\emoji{๐Ÿ”ฒ}} % Black Square Button U+1F532 +\newunicodechar{โšช}{\emoji{โšช}} % Medium White Circle U+26AA +\newunicodechar{โณ}{\emoji{โณ}} % Hourglass With Flowing Sand U+23F3 +\newunicodechar{โธ}{\emoji{โธ}} % Double Vertical Bar U+23F8 +\ifx\pytooling@fontfamily\pytooling@ff@libertinus\else % part of Libertinus, but not of the other families + \newunicodechar{โ–ถ}{\emoji{โ–ถ}} % Black Right-Pointing Triangle U+25B6 +\fi +\newunicodechar{โน}{\emoji{โน}} % Black Square For Stop U+23F9 +\newunicodechar{๐Ÿ”}{\emoji{๐Ÿ”}} % Clockwise Rightwards And Leftwards Open Circle ArrowsU+1F501 +\newunicodechar{๐Ÿ”„}{\emoji{๐Ÿ”„}} % Anticlockwise Downwards And Upwards Open Circle ArrowsU+1F504 +\newunicodechar{๐Ÿ•‘}{\emoji{๐Ÿ•‘}} % Clock Face Two O'Clock U+1F551 +\newunicodechar{โฑ}{\emoji{โฑ}} % Stopwatch U+23F1 +% Notes and reviews +\newunicodechar{๐Ÿ’ฌ}{\emoji{๐Ÿ’ฌ}} % Speech Balloon U+1F4AC +\newunicodechar{๐Ÿ‘}{\emoji{๐Ÿ‘}} % Thumbs Up Sign U+1F44D +\newunicodechar{๐Ÿ‘Ž}{\emoji{๐Ÿ‘Ž}} % Thumbs Down Sign U+1F44E +\newunicodechar{๐Ÿ™‹}{\emoji{๐Ÿ™‹}} % Happy Person Raising One Hand U+1F64B +\newunicodechar{๐Ÿ˜‰}{\emoji{๐Ÿ˜‰}} % Winking Face U+1F609 +\ifx\pytooling@fontfamily\pytooling@ff@libertinus\else % part of Libertinus, but not of the other families + \newunicodechar{โ„น}{\emoji{โ„น}} % Information Source U+2139 +\fi +\newunicodechar{๐Ÿ“ข}{\emoji{๐Ÿ“ข}} % Public Address Loudspeaker U+1F4E2 +\newunicodechar{๐Ÿ“ฃ}{\emoji{๐Ÿ“ฃ}} % Cheering Megaphone U+1F4E3 +\newunicodechar{๐Ÿ“Ž}{\emoji{๐Ÿ“Ž}} % Paperclip U+1F4CE +\newunicodechar{๐Ÿ”Ž}{\emoji{๐Ÿ”Ž}} % Right-Pointing Magnifying Glass U+1F50E +\newunicodechar{๐Ÿงญ}{\emoji{๐Ÿงญ}} % Compass U+1F9ED +\newunicodechar{๐Ÿ“‹}{\emoji{๐Ÿ“‹}} % Clipboard U+1F4CB +\newunicodechar{๐Ÿ—‚}{\emoji{๐Ÿ—‚}} % Card Index Dividers U+1F5C2 +\newunicodechar{๐Ÿ“‘}{\emoji{๐Ÿ“‘}} % Bookmark Tabs U+1F4D1 +\newunicodechar{๐Ÿ—’}{\emoji{๐Ÿ—’}} % Spiral Note Pad U+1F5D2 +\newunicodechar{โœ}{\emoji{โœ}} % Pencil U+270F +% Documents, data and tools +\newunicodechar{๐Ÿ“ƒ}{\emoji{๐Ÿ“ƒ}} % Page With Curl U+1F4C3 +\newunicodechar{๐Ÿ“œ}{\emoji{๐Ÿ“œ}} % Scroll U+1F4DC +\newunicodechar{๐Ÿ“š}{\emoji{๐Ÿ“š}} % Books U+1F4DA +\newunicodechar{๐Ÿงฎ}{\emoji{๐Ÿงฎ}} % Abacus U+1F9EE +\newunicodechar{๐Ÿ”ข}{\emoji{๐Ÿ”ข}} % Input Symbol For Numbers U+1F522 +\newunicodechar{๐Ÿ—ƒ}{\emoji{๐Ÿ—ƒ}} % Card File Box U+1F5C3 +\newunicodechar{๐Ÿ’พ}{\emoji{๐Ÿ’พ}} % Floppy Disk U+1F4BE +\newunicodechar{๐Ÿงฐ}{\emoji{๐Ÿงฐ}} % Toolbox U+1F9F0 +\newunicodechar{๐Ÿ”ฌ}{\emoji{๐Ÿ”ฌ}} % Microscope U+1F52C +\newunicodechar{๐Ÿฉบ}{\emoji{๐Ÿฉบ}} % Stethoscope U+1FA7A +\newunicodechar{๐Ÿ›’}{\emoji{๐Ÿ›’}} % Shopping Trolley U+1F6D2 +\newunicodechar{๐Ÿญ}{\emoji{๐Ÿญ}} % Factory U+1F3ED +% Security and bugs +\newunicodechar{๐Ÿ›ก}{\emoji{๐Ÿ›ก}} % Shield U+1F6E1 +\newunicodechar{๐Ÿž}{\emoji{๐Ÿž}} % Lady Beetle U+1F41E +% Programming languages +\newunicodechar{๐Ÿฆ€}{\emoji{๐Ÿฆ€}} % Crab U+1F980 +\newunicodechar{โ˜•}{\emoji{โ˜•}} % Hot Beverage U+2615 +\newunicodechar{๐Ÿ˜}{\emoji{๐Ÿ˜}} % Elephant U+1F418 +\newunicodechar{๐Ÿน}{\emoji{๐Ÿน}} % Hamster Face U+1F439 +\newunicodechar{๐Ÿ’Ž}{\emoji{๐Ÿ’Ž}} % Gem Stone U+1F48E + % ============================================================ % End of LaTeX package % ============================================================ From 639392284b6f00f85eedeb5380353cf5d130db09 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 11 Oct 2026 14:56:08 +0000 Subject: [PATCH 3/3] =?UTF-8?q?Libertinus:=20\checkmark=20prints=20?= =?UTF-8?q?=E2=9C=94,=20as=20Libertinus=20Math=20has=20no=20=E2=9C=93.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sphinx writes โœ” (U+2714) as \(\pmb{\checkmark}\); unicode-math maps \checkmark to โœ“ (U+2713), which Libertinus Math lacks - a missing character, which latexmk reports as an error. Co-Authored-By: Patrick Lehmann --- pytooling.sty | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pytooling.sty b/pytooling.sty index 5ab5f8a..c1eabae 100644 --- a/pytooling.sty +++ b/pytooling.sty @@ -52,6 +52,8 @@ \setsansfont{Libertinus Sans} \setmonofont{Libertinus Mono} \setmathfont{Libertinus Math} + % Libertinus Math has no โœ“ (U+2713), which unicode-math uses for \checkmark; Sphinx writes โœ” as \(\pmb{\checkmark}\). + \AtBeginDocument{\renewcommand{\checkmark}{\mbox{โœ”}}} \else\ifx\pytooling@fontfamily\pytooling@ff@latinmodern \setmainfont{Latin Modern Roman}[ SizeFeatures={