Return-Path: Delivered-To: rainer Received: from h2774747.stratoserver.net (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) by h2774747.stratoserver.net (Dovecot) with LMTP id OZb9LdBfGV9sSQAA4+3H6A for ; Thu, 23 Jul 2020 12:00:48 +0200 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id 06NA0lPJ018794 for ; Thu, 23 Jul 2020 12:00:48 +0200 Received: from relay2.uni-heidelberg.de ([129.206.119.212]) by mx-ha.gmx.net (mxgmx117 [212.227.17.5]) with ESMTP (Nemesis) id 1MQf5q-1kDIvn3Qvu-00NsVl for ; Thu, 23 Jul 2020 12:00:41 +0200 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay2.uni-heidelberg.de with ESMTP; 23 Jul 2020 12:00:42 +0200 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 4BB4E12836D; Thu, 23 Jul 2020 12:00:31 +0200 (CEST) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 17.0) with spool id 44351022 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 23 Jul 2020 12:00:31 +0200 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.119.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 29EA9124073 for ; Thu, 23 Jul 2020 12:00:31 +0200 (CEST) X-IronPort-MID: 72165860 X-IronPort-RemoteIP: 209.85.128.44 X-IronPort-SenderGroup: UNKNOWNLIST X-IronPort-MailFlowPolicy: $ACCEPTED X-IronPort-Reputation: 3.4 IronPort-PHdr: =?us-ascii?q?9a23=3Ah4V9gxDI10+TjcRVzEEyUyQJPHJ1kqjoPgMT9p?= =?us-ascii?q?ssgq5PdaLmxZn5IUjD/qw93A3TUIHS+qgCluzX9qDtWGAN5ZyMqn9EfJEfHw?= =?us-ascii?q?Qdh5AwmAotSNWAFVW9NOTjOi49B8laVBl65XC0MVR9HcHkYVzUrWau5CRIXB?= =?us-ascii?q?74cxd2dazuAoCHqcOx2qip/oHLJQBBhT6ze7R3eRextgjJto8Jm4ptKroZzx?= =?us-ascii?q?zTpHpOdP9KzHkyY1mU2Qv/tY+r5JA21SNWtro68tJYF6X3e6NtVbtDEDEvKH?= =?us-ascii?q?w4/uXuvBjHCBSKvz4SDjlQnR1PDAzIqhr9W86r4BH3ved8xiSWePbOY+toA2?= =?us-ascii?q?aE6KFmAF/yhSMOJmR/7WfWz8x9ja5WpBisvRM5z4OGKIeSfOFzeK/QZ7Z4DS?= =?us-ascii?q?JIQ9pRWipdA4i9c5pHDuwPOvxdppX8oF1GpAW3BA2lDufigjFSgXq+0ao/2u?= =?us-ascii?q?UnWQbIuW5oV9AJq3nMrJPqLqYdUfydya7SyzTFYOhK0C2nroPPNA0i4LmNUb?= =?us-ascii?q?92bcvN2Bw3DQqW6zfY4YfhPj6TyqEMqz3Bt7smBb/p0jR37V0t8XC1y8whi5?= =?us-ascii?q?fEnNcPx1TN5H8/3YA0YN21SUJ2ZdSpCpQWuyzJUuk+Cs4kXWxsvz43j7Mcvp?= =?us-ascii?q?vuNioN05k/x1jAcf2Ic5Sg5xX5UueXLixkjWg/Prm4wQuxuxvFqKW0Royv3V?= =?us-ascii?q?BGozAQ2NvLrX0V11rM8MmISudV+0C73zeJ2BvP4/seZ0sz07fYYc1EoPZ4ht?= =?us-ascii?q?8YtkLNGTXzkUP9gfqNd0kqzeOv7vzufrTsopLFbd1OhwrzM7ojlomEOcpjbl?= =?us-ascii?q?dceW+d9Kz8zrDn9FyjBqhMj7g2n6jVvZTQKN4U4KK0UUdT1c445hCzAi3Dsp?= =?us-ascii?q?xQlGQbLF9DZBOMjpT4c1DILvfiCP6jglOq2D51zvHCN7flD93DNH/G2LvmeL?= =?us-ascii?q?987QZbxm9RhZhd4IlZErFHP+jyVU/tnNnfFBk4NQOv3+/9UpN20cUDWiPHA6?= =?us-ascii?q?OUNr/TrU7d4+suJ+eWY4pG3VS1Y/Mh5vPokTo4gQpHJfjvjcZRMSroWKg6cA?= =?us-ascii?q?2DbHHhg8kMCzIQsw43XbaslVuDFD5eZnq/W6gx/D59BI/1aOWLDo2rnrGF2z?= =?us-ascii?q?+2W5NMYWUTQFKLCnrwd8ObQfYDaD66J8h7lD0CWqO9QpV7kxqp8hL5gekCTK?= =?us-ascii?q?Kc6mgDuJTv2cIgre/Ujhwq9XprFcWS032lSmZumGIOSCQq1bol50d6jEqAm/?= =?us-ascii?q?sd4bQQBZlY4PVHVR0/PJjXwrlhCtz8bQnGe8+AVFesRtj/W2MLQ9k8wsEDbw?= =?us-ascii?q?NGI/v50k+R+S2sDvdVjbGPDY1utL/a3j3xKsdxxnLM2bMuyVUrEINJMiW9i6?= =?us-ascii?q?hz+hK2ZcaBmliFl6usaaUX3TLcvGaFw22UuUhEUQl2GazbVHEbb0HSoJz3/E?= =?us-ascii?q?THB7OpDL0mNENGx6vgYuNSbcb1iFxdWPr5ENHXYmb0hGLpQBjUmvWDa43lf2?= =?us-ascii?q?hb1yLYSQAFnw0V4XeaJF0+CyOm8Ae8RHRlEVPiZV+p8PEr8ivqCB9piVjQPw?= =?us-ascii?q?s9i+n94BMeiP2CRulGxL8AsTZ77ShyHRO90tPaBt6KqhBuOqlRMrZfqB9K03?= =?us-ascii?q?zUswtlM9muNadn0xQcdB96p0OoyA92BYVcuc0ttnUrygVpNauCihVKcHWF3t?= =?us-ascii?q?qjX9+fYnm35x2pZ6PMjxvG182K/64U9Pkig1DqvQXsCU97tns7j59a1HyT4p?= =?us-ascii?q?iMBw0XG8GUMA5/511xoLfUZTM47oXf2Ch3MKW6hTTF3sogGOovzhv5I4VvdZ?= =?us-ascii?q?icHQq3KPU0QtC0IbZyyV2udBQFOu9J6KcuZYWtcL2b2/zzZbsyrHedlW1Cpb?= =?us-ascii?q?tF/AeM+i57ELOa2p8Ex7SH21LCWWugylimtc/zlMZPYjRARjPumxihP5ZYY+?= =?us-ascii?q?hJRahODG6vJ8OtwdAk38zoXGRe9VisHE8PwpXvch3Ucl+vhQA=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BIAQCiXhlfhiyAVdFgHAEBAQEBAQc?= =?us-ascii?q?BARIBAQQEAQFAgUqCI4FLIwQ3hDORGJsyA1ULAQEBAQEBAQEBBwEvBAEBhEw?= =?us-ascii?q?CghUCHAYGNBMCAwEBAQMCBQEBBQEBAQIBAwMEFAEBAQgLCwgphWMMhXIBAQE?= =?us-ascii?q?DAQEQERUIAQE4DwsYAgImAgI0AQUBHAUBDQgBAR6DBIJ9oEuBBD2LKIEygwE?= =?us-ascii?q?BAQWCSoNSgTcJCQEIfCqFOUeGcg+BTD+BOA+CLC4+gReCfUKCfYJgmVeBF5l?= =?us-ascii?q?iXCkHgmCBCAQLmEMFKIJ7ji8NBiiNbJA0gzuSF4ZphCECCgcGDyOBR4F6Mxo?= =?us-ascii?q?0gyhQGQ2OHhqDV4pXQDMCNQIGCAEBAwmNN4JGAQE?= X-IronPort-AV: E=Sophos;i="5.75,386,1589234400"; d="scan'208";a="72165860" X-MGA-submission: =?us-ascii?q?MDE8VK9yZRXZ6OlSz+/lymMI2XFg8ojmnYzxY1?= =?us-ascii?q?oJMG8cZiYqYuTYdnZFsI4lUhu4yq/nTE8gKInMpUViaEJ1x9FvhhCaK8?= =?us-ascii?q?4BgUNq3evG1wbJQYTDVV276gZ9y8MfJgyzaZWB8jJ6lQzzLKJkFzUBdu?= =?us-ascii?q?9qpIhBz7CglgUMD+dL1ONxgA=3D=3D?= Received: from mail-wm1-f44.google.com ([209.85.128.44]) by relay2.uni-heidelberg.de with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 23 Jul 2020 12:00:31 +0200 Received: by mail-wm1-f44.google.com with SMTP id o2so4627712wmh.2 for ; Thu, 23 Jul 2020 03:00:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=hrTG8VMyVTEZeO3a/iAsHz6RyIwOlEiiTF5CBgzRZNM=; b=szV5hGGHIDSf3mAil+Tev4iOl4OXgVLzn4anNj6BEutuZu61QJ889v+kvkV7YNwaVe IC96cQBeqnD+x/8+QG1p97qvvSC3ihnxoDywyE5FGFgspWG+DBOVRPyWKoVY7aCcfCpf 9k37DxAKQsEs6walGhqX/X+1z9v5rzG8G9Ko/ceYce/i2AKnaI5V7jPh0kT3UrU3Jdbh 7DreeDT4/DVz19++x4CffTPhQ2/4XwUbJ+BS3QIuNPJr1wC64DegnD+XK5uAYA25uu/8 Cv7xPrfyu3YkrInqq90aDFPy8vyt7cA/iWLuPlfbyemOPwSvC1u2wbenlk9Z5cCHlFHH kv4A== X-Gm-Message-State: AOAM533JQCJTtmrV84etom2G32WDogSbn0H4W6azEyzmOH8edoR4XHoP n+RIDfPbAxKWmsM4ljtxXbuEwK2kkWs= X-Google-Smtp-Source: ABdhPJzOPX+v9lV0d9mkWEPLawMxlnE3MvA/lXBZzpjjkFIMZ0q2AzNTkra+7hD5jzkg9/OFNpmJZQ== X-Received: by 2002:a1c:f219:: with SMTP id s25mr3341504wmc.2.1595498430002; Thu, 23 Jul 2020 03:00:30 -0700 (PDT) Received: from [139.222.23.136] (eduroam-23-136.uea.ac.uk. [139.222.23.136]) by smtp.gmail.com with ESMTPSA id g145sm4236215wmg.23.2020.07.23.03.00.29 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Jul 2020 03:00:29 -0700 (PDT) References: <20200723020053.jq6lnwl7k23htouz@vento15post8> User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Message-ID: <3f1f9ba8-7a63-bc32-58ec-b70a5d8fda11@morningstar2.co.uk> Date: Thu, 23 Jul 2020 11:00:27 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Guidelines on the new hook management To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V03:K0:dP1VQZFb/DA=:ETsJukQ7NcanwSMdMNxnelOmp4 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 Dbinse9g3LjKX5yRX2dU3xA== X-UI-Loop:V01:QbxkZZhshLM=:VReIcFnt/qNpyZ04IvzQKr81nveY5pXzCj0yztUl4K4= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:dAwE+VRc8Wk=:BbWvDqkHBq6XcPwTKXPbrm RUcO0ISVvrK0qH6T+36i4QJO2TdI0NzEF93cM47CDd9GgGEvkCWIr3sMpBaaAxXwaiVlA1tu4 hPuBp/2np6TWrrKOly6aiE/17jGJ0zK+16suyp8fRzZllbSngsVe1V3sJKpc7zimoTgAes7tE /S8fM1unzJlmklH1aJixlFa87UeWVT8/SPuAObLsa7pZFpYPE0bwi+b68OyoAEtRAoCllqzlO 495KlaAeIfNgXHEOj2qulVKGXvNe/6jmd6vkmraKyxtkQEckgeaViuP6bA3qWZdqDjhiRi8Ac SlYWM3YljtrraunpfflFuykxu1ypKZrWHgIDr8KyLOMxrCwsIj5W/Yy4XlZ1yfxPZfPF+U3Jh r6ObXysptmAPGOPABCZ9XhilYKQSU77Vn2GARlIj6F0nj8rml8mkyAKyTSgqhcHgU5kfzqFwC R071qTY4Mx5HoVyAZVm+nwJ1bDxtb54= X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8212 On 23/07/2020 08:07, Michal Hoftich wrote: > Hi all, > >> Inspired by issue #900 on the PGF/TikZ repo [1], I'd like to kick off >> the discussion on how to correctly integrate the new hook management >> system into existing LaTeX package codebases. > > I've just tested latex-dev with TeX4ht and I can confirm that it > fatally crashes with latex-dev. > > Test file sample.tex: > > --- > \documentclass{article} > \begin{document} > Hello world > \end{document} > --- > > build file that requires latex-dev, sample.mk4: > > ---- > Make:htlatex {htlatex = "lualatex-dev"} > ---- > > Compile using: > > make4ht -a debug sample.tex > > The result: > > [STATUS] make4ht: Conversion started > [STATUS] make4ht: Input file: sample.tex > [ERROR] htlatex: Compilation errors in the htlatex run > [ERROR] htlatex: Filename Line Message > [ERROR] htlatex: ./sample.tex 2 Extra \endgroup. > [ERROR] htlatex: ? ? Emergency stop. > [ERROR] htlatex: ? ? ==> Fatal error occurred, no output > PDF file produced! > [FATAL] make4ht-lib: Fatal error. Command htlatex returned exit code 1 > > TeX4ht patches \document command on line 166 in tex4ht.sty. When I > comment out this definition, the compilation doesn't fail, but tags > inserted at the beginning of the HTML file are missing. So, the > question is, how can we adapt this existing code for the new LaTeX > hook handling? > > Best regards, > Michal > Hello Michal, The new hook code addresses a number of areas, but the key changes that may require package author action are - Any direct modification of \shipout, which *will* need to be altered - Any modification of the \document macro, which *may* need adjustment # Core idea In all cases, one would do \AddToHook{}{} or with a 'named' hook addition \AddToHook{}[]{} This latter form allows hooks to be sorted based on the pkg names. As I've detailed in the parallel reply to Henri, one will need to test for \AddToHook, most likely using \@ifundefined, to know that this functionality is available. # \shipout There are very few packages that actually modify the \shipout primitive: almost everyone uses either everyshi or atbegshi, and we have arranged for those to be emulated. As such, the only packages that need to be modified here are those that *directly*, which is limited as far as we know to pgf, crop and a few other packages. There are then a number of hooks one can use - shipout/before - shipout/foreground - shipout/background - shipout/firstpage - shipout/lastpage as described in "texdoc ltshipout". # \document Many more packages patch \document. Those adding code using \AtBeginDocument will have no issues: this kernel-level hook will continue to be available, although it is now a wrapper around \AddToHook. Many others will be using etoolbox's hooks: they are already aware of the new kernel hooks and again will need no work from package authors. For people directly altering \document, the need to take action will depend on the exact nature of the changes. For example, I have had to adjust beamer, but siunitx, which also patches \document, continues to work with no action. (I will update to use 'best practice', but that is not a *requirement*.) Basically, anything that starts messing with the detail of \document needs action, whereas simply adding a macro to the end of \document works out OK. Where you do need to take action, there are now a number of hooks - env/document/before: Occurs as soon as \begin{document} is seen, before the group is opened - env/document/begin: Occurs just after environment group is opened: for \document this is not really different from the above due to the special nature of \document - begindocument: Replaces \AtBeginDocument, occurring after the .aux file is read - begindocument/end: Occurs right at the end of \document, followed only by \ignorespaces: where many people add 'last minute' stuff to \document Hopefully, one or more of these hooks covers the use cases people have now: they were set up informed by etoolbox and others. Joseph