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 KpDeDNpiGV8+TQAA4+3H6A for ; Thu, 23 Jul 2020 12:13:46 +0200 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id 06NADio3019772 for ; Thu, 23 Jul 2020 12:13:46 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx015 [212.227.15.9]) with ESMTP (Nemesis) id 1MGj2W-1k3Tur1elu-00Dx73 for ; Thu, 23 Jul 2020 12:13:39 +0200 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay.uni-heidelberg.de with ESMTP; 23 Jul 2020 12:13:40 +0200 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 8B1051283A1; Thu, 23 Jul 2020 12:10:47 +0200 (CEST) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 17.0) with spool id 44351508 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 23 Jul 2020 12:10:47 +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 6A337127B84 for ; Thu, 23 Jul 2020 12:10:47 +0200 (CEST) X-IronPort-MID: 72168507 X-IronPort-RemoteIP: 209.85.221.43 X-IronPort-SenderGroup: UNKNOWNLIST X-IronPort-MailFlowPolicy: $ACCEPTED X-IronPort-Reputation: 2.8 IronPort-PHdr: =?us-ascii?q?9a23=3AnAFWGBco8W5apb5a3X1zH4JTlGMj4e+mFxMJ6p?= =?us-ascii?q?chl7NFe7ii+JKnBkHE+PFxlwaZDdfB5vZNmrCQrqbhHGwN4JqMtHoPapMKWx?= =?us-ascii?q?JWwd4OkVkGB8iIQVb+MOasdzYzScZFT1J9/zekK0laGNrWYlrIpHy04iUOEw?= =?us-ascii?q?+lcwFyYPn2ScbJl8ri8ee09tXIZhlQwj+0YLd8NhKz+AfWrcQOgc19MKc+yg?= =?us-ascii?q?fhp3xSfeVQynh0LEjJ2R37oNqzr9Z46yoFnfUn+oZbVLniOaQ1SbsNFDM9L2?= =?us-ascii?q?U8/9HmrzHGRAqLo2QGCyAYzkEODA/C4xX3GJz2t3Kg5NBw0ySbI8D6CIsMd2?= =?us-ascii?q?/+tfVNTxnlwGcdOjow4TuRl8pxyaJWoR6soxZy2YGSbIzHfPx5NrjQe98XXw?= =?us-ascii?q?8jFo5YSjBBD4WgboAOE/tJPOBWqJP4rkcPqh32DBelBefmwDtFznHs2qhy3+?= =?us-ascii?q?MkGADAlAsuerBG+HbTt9jtNOENS+G6zLXgyDLZafJQ1izh4ZKSNBsm5+yPHP?= =?us-ascii?q?pxfcfX1UgzBlbdlFzDzO6tdziR1+kLry2a9786DbPp2zNh8Vso5GT0lY82h4?= =?us-ascii?q?LEh5wY0AXe+CFw0dxzONu5DU52YNKpFJFdrS7cO4YlJ6FqC2xupis+zaUL/J?= =?us-ascii?q?Chey1fgpYg3BPHa7qYaYmH4g7LUeGLJzZ+i2l5cajlwR21t1WjgL6ZNIH8wB?= =?us-ascii?q?NRoyxJn8OZ/HIKzBHL6o6YUPpy/luJ3DGV0QHV5fpYKFpu06HcbYMiiO1V9N?= =?us-ascii?q?JboQHIGSn4n1/zhamdexA/++Sm3O/gZ63vup6WM4It0FPEP68jm9KyDaEDCi?= =?us-ascii?q?ZVAzfJ3+O62fWj50D9SaQQyOAwk+zZvZHWKMARq7S2RQNYgM4l7F6kAjGq3c?= =?us-ascii?q?59/zFPJU9ZeB+Bk4niOk3faPH+A/Clhl2wkTBtj/nYN7zlC5/JIzDNirDkNb?= =?us-ascii?q?p67kddzkI0w7U9r9pWDaoMOPK1RVXwu9zEJho+KQq1xen8FNxnjMUVXiSSAe?= =?us-ascii?q?7RMa/ft0OJ+vN6JuCNYIEPvzOuTpptr/XqjHI/hRocZfzzhcpROC3+RK4/ZR?= =?us-ascii?q?nCMjL2j9wMEHkHpF8kQejjmQfETDhSIna/Xq4x4js2Eo3gAYqQI+LlyLGHwi?= =?us-ascii?q?q/GYVbI25cDVXZW3XvbIicW7ETciOdItNJlzseU7mnRJQ93Av08gT9jadkZL?= =?us-ascii?q?mxmGVQpdf42d556veG3xM17jFsD4KCyWCCT31cm2QSQT4w07tjqFYnjFyEl7?= =?us-ascii?q?V7ya89d5Qb97ZCVQE0MoTZxupxBoXpWw7PSdyOTU6vXtSsBTxoFIALztQDYl?= =?us-ascii?q?hwF5CZtj6Yg3X4JbgTmvTLHpEw+7OGmWX3JoN9xnfK2a0rgkMpBMdCZyWgge?= =?us-ascii?q?Zk+g7fCpSs8Q3Rnru2dakawC/G9XuShWuIskZCVQdsUKLDFXkBb0rSpN796w?= =?us-ascii?q?vMVbirQbggNwJAz4aFJM4oIpXxik5aQf74JNnES2e4mmP1GgzRg73QN8zlfG?= =?us-ascii?q?IS2CibA08B0kgS8XuAKQkiF3KhrmbZX1kMXRrkZ0Lh9/U7qWvuFBdliVHXKR?= =?us-ascii?q?c7jvzpoU1dn/GXRvIN06hRoioloiQuWku73pfWBtuMqg5rcb9TJ98wszIlnS?= =?us-ascii?q?rUsRJwOpu4IuVsnFkbJk51uFjjzxUxFZ9Bnsg2hHYt1gxzL62DzFpbLXWT2t?= =?us-ascii?q?btOfeETwu6tADqcKPQ1lzEhZyO/bwT7f0jt1j5lASgF05n7G8+ltcJiD2T4Z?= =?us-ascii?q?LFCAdUWpX0GBVSlVAyt/TRZS8z4JnR3HtnPPyvszPM7NkuAfMs1heqe9oGbf?= =?us-ascii?q?G0UTTqGshfPPCAbewnn1/zM0ABNeFWsbEuZoaoK6DA16msM+Jt2jmhiDYfud?= =?us-ascii?q?wv4ge37yN5D9Xw8dMd2fjChlmCUC36jVGuqdz+g9oCbjZUA2ntkXG1Vr4UXb?= =?us-ascii?q?V7eMMwMUnrJsS2wttkgJu3Ayxd80SlBlUJw9OgY0DUZFu7wA4CjUk=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DrAQDZYBlfgCvdVdFWCh0BAQEBCQE?= =?us-ascii?q?SAQUFAUCBSoIjgUsjBDeEM5EYmzIDVQsBAQEBAQEBAQEHAS8EAQGETAKCFQI?= =?us-ascii?q?cBgY0EwIDAQEBAwIFAQEFAQEBAgEDAwQUAQEJDQkIJ4VlDIVyAQEBAwEBEBE?= =?us-ascii?q?PAQUIAQE4DwkCGAICJgICNAEFARwFAQ0IAQEegwSCfZFDjxGBBD2LKIEygwE?= =?us-ascii?q?BAQWGFYE3CQkBCHwqhTlHhnIPgUw/gTgPgiwuPoEXgnkEgz+CYI9ziWSaeVw?= =?us-ascii?q?pB4JggQgEC5hDBSiCe44vDQYojWyQNIM7kheGaYQhAgoHBg8jgUeBejMaNIM?= =?us-ascii?q?oUBkNjh6DcYpXQDMCNQIGAQcBAQMJjTeCRgEB?= X-IronPort-AV: E=Sophos;i="5.75,386,1589234400"; d="scan'208";a="72168507" X-MGA-submission: =?us-ascii?q?MDEOSj0m/wCJmH13OS069B1ghML9XDsM3906ku?= =?us-ascii?q?YQWP5GgHctBWPQHy1jitMoE0LufMNEYHwHpb0If6cEgQqbSmUr1ld7sN?= =?us-ascii?q?0+IzbzPFBABgBHNc9vpXmeDUnL+2qybOBfQc10C0lH56CxHiSD0lsQ0V?= =?us-ascii?q?YQZFnQ6qq14K9QQHK7FH6Esw=3D=3D?= Received: from mail-wr1-f43.google.com ([209.85.221.43]) by relay2.uni-heidelberg.de with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 23 Jul 2020 12:10:47 +0200 Received: by mail-wr1-f43.google.com with SMTP id r4so1627743wrx.9 for ; Thu, 23 Jul 2020 03:10:46 -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:from:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=U/MzswLHliQnayult6+0boEboH5MKAt+p+kwl5k/Vlc=; b=KRVsd9jHbpbamnBDhtVBBWd8i+57C6eGpqylBN3q89tNXouw6T6nMlZ9TioZdEJn0J fLghibqou4dC7xLDeBLI3zt5qj/v6uxWv4N2CCTZiyn/6+Vj1MuWhJ8+fXcT6zS7PkoK sJqga67EgvLzVn99OoUQohwuP9hIaEzSvdxlVIqKruhmlOnW0DaMmyQ2lV7Z9GpDYu1/ 0G0sCBslz6pl2QgRrI4FPhMix746smXios2XBZuP9owAV6D1BB79N27aK7AOKxq+NaeZ d9Q1yGTqJvINkvK+QJeSg+KnKr8ygsU0LnPWz1WBqgYCAhBLkgohoq/XKHVWNrSjvJir GIOQ== X-Gm-Message-State: AOAM533nwbee4d6EmCbblCHiIcJzPyts4p11C84QwpiOhmKTku5NPbwV vateeXI8oS17hF0KPdw8WC2z/Ez6nbQ= X-Google-Smtp-Source: ABdhPJzHnO+zJIWRzbwLuEaUsHLID20mLKM+KnGS8qM4f7wS4upQ1KhKeRLNrULZ+1FcqtjoAWip5A== X-Received: by 2002:adf:e7c3:: with SMTP id e3mr3427920wrn.356.1595499046153; Thu, 23 Jul 2020 03:10:46 -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 w125sm3199689wma.15.2020.07.23.03.10.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Jul 2020 03:10:45 -0700 (PDT) References: <20200723020053.jq6lnwl7k23htouz@vento15post8> <3f1f9ba8-7a63-bc32-58ec-b70a5d8fda11@morningstar2.co.uk> 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: 8bit Message-ID: <86ba52fc-9e65-fce6-c15f-a0f90394d22c@morningstar2.co.uk> Date: Thu, 23 Jul 2020 11:10:42 +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: <3f1f9ba8-7a63-bc32-58ec-b70a5d8fda11@morningstar2.co.uk> 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:h+yiVbNcKlw=:Fjr43svBYjL/hqDJsTdsrL8yQu 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 mzZeTFAa3gKkHhzS7gW2NQA== X-UI-Loop:V01:gg+6MVahHIw=:Kr6H/TBxA0qEm8VOnkkH0H+7QCGFkCcqMjSvi5nqp4Y= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:ZDIhLM+cplQ=:odYeV1zmLdzIEBwo369zYJ MlJXQgiCEv8Fm9MLbMa8LOdXjbkXMJejyNfNxJVdJYimFMxAb4pqitCYiRMzhjj0Vy3vuj/ZL epchtsIXArtJlSKOoM9vnPZSw/7KBVScmOwBlFt1B4F5XlmNYBiftzbaxoqu4UVnbOiz7JKDH hbBG4bg+9YUn+jS1N+R6PQqNHztDpQsKEyTI6FD9mRLa+X/GNfisuKiyONADzqBucD9AOBFBE E73sWWm75f+HdS8qfjPAQ9+s6jUGtfKgYjz+uF7W7mhiC1FmYIeslzEY7giyU/EHcRAAeM3yz 6hWIhokHp59HwlQXCtf1EYTk+bHIsM8vW65pUXSMh1Tax3FSSw+QjOFlt38VZWaPdl9iQZ1wU WstuKl45kHsa5tBOaebep9SLAfc4TQE61b7uE9ZTq4FQCScJvNDeO3rvzYg+z9ACKzpCx7gTE XX23oj4pgJlzSms8aPKNC2mmF+mAIGY= X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8213 On 23/07/2020 11:00, Joseph Wright wrote: > 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 I should add that we (LaTeX team) have been trying to identify possible issues in advance of the changes, such that we can both check our code can provide the required functionality and so we can help package authors with the required changes. There will doubtless be a few we've missed, hence the lead time before this code is intended to be released to the wider public. Joseph