From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/required/latexbug/latexbug.dtx | 976 ++++++++++++++++++++++++++++ 1 file changed, 976 insertions(+) create mode 100644 macros/latex/required/latexbug/latexbug.dtx (limited to 'macros/latex/required/latexbug/latexbug.dtx') diff --git a/macros/latex/required/latexbug/latexbug.dtx b/macros/latex/required/latexbug/latexbug.dtx new file mode 100644 index 0000000000..907272c781 --- /dev/null +++ b/macros/latex/required/latexbug/latexbug.dtx @@ -0,0 +1,976 @@ +% \iffalse meta-comment +% +% Package latexbug for use with LaTeX2e +% +% Copyright 2016-2018 +% +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the Standard LaTeX (separate distribution) +% --------------------------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% +% \fi +% +% \title{The \texttt{latexbug} package\thanks{This file +% has version number \fileversion, last +% revised \filedate.}} +% \author{The \LaTeX{} Team} ^^A Frank Mittelbach +% \date{\filedate} +% +% \MaintainedByLaTeXTeam{latex} +% +% \maketitle +% +% +% \section{Introduction} +% +% Software has bugs and \LaTeX{} unfortunately is no exception. If +% somebody encounters a bug then it helps if that bug gets reported to +% the right people so that the bug can be resolved (or a workaround +% documented or whatever is most appropriate). The problem is to know +% to whom to report the bug. +% +% The \LaTeX{} Project Team maintains a bug database for its own code +% base (which consists of the \LaTeX{} kernel and some packages that +% have been written by people in the \LaTeX{} Project +% Team). However, the \LaTeX{} universe consists of several thousand +% contributed packages maintained by individuals all over the +% world. And if a bug happens in one of those packages it doesn't help +% anybody if it is dumped at the \LaTeX{} Project's doorstep. +% +% For one, we can't actually change other people's code even if we are able to +% identify the issue. Furthermore we are only a few people and simply +% do not have the bandwidth to analyze bugs in other people's work. +% +% We have therefore written this little package called +% \texttt{latexbug} that should help in identifying the rightful +% addressee for a bug report. We ask that it will be loaded in any +% test file that is intended to be sent to the \LaTeX{} bug database +% as part of a bug report. +% +% The package will determine if the test file is in a suitable state +% to be sent to us or if it should be modified first or if it should be +% sent to somebody +% else because the bug is (likely) to be in code not maintained by the +% \LaTeX{} Project Team. +% +% Bug reports sent to the \LaTeX{} bug database +% without that prior verification are likely to +% get closed without being looked at at our end in the future. +% +% +% +% \section{The user interface} +% +% The user interface is simple: the package has no option and doesn't +% define any new commands to be used. All that is required is that the +% package is loaded as the very first step in the test file that shows +% the bug --- in other words before the \verb=\documentclass=. +% For that reason it +% must be loaded using \verb=\RequirePackage= instead of the usual +% \verb=\usepackage= that is used in the preamble of a document. +% +% Thus, a bug report test files should look like this: +% \begin{verbatim} +% \RequirePackage{latexbug} % <- required first line +% % followed by: +% \documentclass{article} % or some other class +% % followed by: +% ... % <- code showing the bug ... +% \end{document} +% \end{verbatim} +% +% If the test file runs through (showing the bug) without any +% complains for \texttt{latexbug} then the test file is ready to be +% sent to the \LaTeX{} bug database. The procedure for uploading and +% the location is documented at +% \begin{quote} +% \texttt{https://www.latex-project.org/bugs/} +% \end{quote} +% If \texttt{latexbug} does generate an error, however, then this +% error needs to be addressed first and the depending on the +% resolution the bug report may has to be sent to somebody else. +% +% An error is generated if the test file makes use of third-party code +% that is not maintained by the \LaTeX{} Project Team. For example, if +% the file would load \texttt{geometry}, \texttt{footmisc} and +% \texttt{hyperref} you +% would see the following: +% \begin{verbatim} +% Package latexbug Error: Third-party file(s) +% (latexbug) +% (latexbug) This test file uses third-party file(s) +% (latexbug) +% (latexbug) ============== +% (latexbug) geometry.sty -> Hideo Umeki +% (latexbug) +% (latexbug) footmisc.sty +% (latexbug) hyperref.sty -> Heiko Oberdiek +% (latexbug) https://github.com/ho-tex/hyperref/issues +% (latexbug) ============== +% (latexbug) +% \end{verbatim} +% It then continues with advice to remove such third-party code from the +% test file. If that is not possible, because the bug goes away if a +% package is removed, then the problem is (most likely) with this +% package and the bug report should be sent to the maintainer of that +% package and not to the \LaTeX{} bug database. +% \begin{verbatim} +% (latexbug) So you should contact the authors +% (latexbug) of these files, not the LaTeX Team! +% (latexbug) (Or remove the packages that load +% (latexbug) them, if they are not necessary to +% (latexbug) exhibit the problem). +% \end{verbatim} +% To make life somewhat easier \texttt{latexbug} will tell you the +% name of the maintainer (if we know it and have added it in) and if +% possible also the canonical bug address for the package (like in the +% case of \texttt{geometry} and \texttt{hyperref}). +% If we don't have that information, you +% need to find it out for yourself by looking at the package +% documentation. +% +% There may be cases where third-party code is essential to exhibit +% a bug in core \LaTeX{} code maintained by the the \LaTeX{} Team. The +% error text therefore finishes off with the following sentence: +% \begin{verbatim} +% (latexbug) If you think the bug is in core LaTeX +% (latexbug) (as maintained by the LaTeX Team) but +% (latexbug) these files are needed to demonstrate +% (latexbug) the problem, please continue and mention +% (latexbug) this explicitly in your bug report +% (latexbug) (with an explanation why you think so). +% \end{verbatim} +% Please explain your reasoning why you think this is the case in +% detail as part of the bug report. +% +% \vspace*{1ex} +% +% \begin{center} +% \fbox{\fbox{\parbox{.6\textwidth}{\itshape Thank you for taking +% the time to report a bug and prepare a test +% file showing it!}}} +% \end{center} +% +% \vspace*{3ex} +% +% +% \subsection{A note on the database content in the package} +% +% When a document is run through \LaTeX{} it will load a number of +% files and bug reports that are to be sent to the \LaTeX{} Team should only +% load files that we maintain and not third-party packages. +% +% The database, if you want to call that, inside \texttt{latexbug} is +% simply a comma separated key value list consisting of file names +% \texttt{=} maintainer info. Most of the time the maintainer info is +% \texttt{us} or \texttt{us*} (meaning we maintain it, so the file is +% fine) or \texttt{ignore} (meaning we do not maintain it, but it is a +% file that is likely to appear for one or the other reason and we +% should accept such a bug report nonetheless). +% +% Any file loaded in the bug report not listed will show up in the +% error listing flagged as ``third-party'' code that should be removed +% as explained above. +% +% For a small number of popular third-party packages we have collected +% the name of the external maintainer and if available to us some +% extra info so that it is easier to send to the rightful addressee if +% you encounter a bug in such a third-party package. But to keep this +% manageable this is only done for a very small number of the 5000+ +% packages out there (though we might add one or the other over time). +% +% It is however not impossible that we missed one or the other file +% that should have been listed as ``maintained by us'' but isn't and +% thus incorrectly generates an error. If you run into that problem or +% notice an omission of that sort, please send us a bug report or open +% an issue at the GitHub source of the package which is located at: +% \begin{quote} +% \texttt{https://github.com/latex3/latexbug/} +% \end{quote} +% +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{The documentation driver file} +% +% The next bit of code contains the documentation driver file for +% \TeX{}, i.e., the file that will produce the documentation you are +% currently reading. It will be extracted from this file by the +% \texttt{docstrip} program. +% \begin{macrocode} +%<*driver> +\RequirePackage{latexbug} +\documentclass{ltxdoc} +\GetFileInfo{latexbug.sty} +%\usepackage{geometry,footmisc,hyperref} % uncomment for latexbug error +%\usepackage{xparse} % uncomment for latexbug error +\EnableCrossrefs +%\DisableCrossrefs % Say \DisableCrossrefs if index is ready +%\OnlyDescription % Comment out for implementation details +\begin{document} + \DocInput{latexbug.dtx} +\end{document} +% +% \end{macrocode} +% +% \section{The implementation} +% +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{latexbug}[2018/12/31 v1.0e Bug-classification] +% \end{macrocode} +% +% \begin{macro}{\latexbug@empty} +% \begin{macro}{\latexbug@us} +% \begin{macro}{\latexbug@ustar} +% \begin{macro}{\latexbug@ignore} +% Fixed text used in checking what actions to take with different files. +% \begin{macrocode} +\def\latexbug@empty{} +\def\latexbug@us{us} +\def\latexbug@usstar{us*} +\def\latexbug@ignore{ignore} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Contact} +% A very simple piece of markup, really. +% \begin{macrocode} +\def\Contact{\MessageBreak \@spaces} +% \end{macrocode} +% \end{macro} +% +% The database of packages is set up in a group so we can throw away the +% loop command. +% \begin{macrocode} +\begingroup +% \end{macrocode} +% +% \begin{macro}{\latexbug@loop} +% A simple loop set up which reads a known format for the file-to-maintainer +% mapping. The trailing space is important (stripping it is not really worth +% it for this very limited use case). +% \begin{macrocode} +\long\def\latexbug@loop #1 = #2 , {% spaces matter + \global\@namedef{latexbug@@#1}{#2}% + \ifx\latexbug@empty#1\else\expandafter\latexbug@loop\fi} +% \end{macrocode} +% \end{macro} +% +% A simple database of files. The value \texttt{us} means we accept +% bugs for it. We also take bug reports for \texttt{us*} (expl3) entries, but +% they need to go to a different GitHub repository, so are handled separately +% (and only show up +% if there doesn't seem to be anything else to pick up). A value of +% \texttt{ignore} means that its not our code, but we understand that it may +% show up in legitimate test files and should therefore not trigger an error. +% +% Any file not in there will trigger an error if loaded and any file +% in there with some other value than \texttt{us} or \texttt{ignore} +% will also trigger an error displaying the value (which hopefully is +% the maintainers name). (Handling for \texttt{us*} means these files may +% not show up, depending on the nature of the use case.) +% +% \begin{quote} \itshape +% The database format is somewhat fragile: one needs to have a space on both sides +% of the equal sign (or one gets a nasty low-level error) and names can't have +% no-ascii characters in them, so they end up crippled (sorry for that). +% \end{quote} +% +% \begin{macrocode} +\latexbug@loop +%--------------------------------- +latexbug.sty = us , +regression-test = us , +%--------------------------------- base +alltt.sty = us , +ansinew.def = us , +applemac.def = us , +article.cls = us , +article.sty = us , +ascii.def = us , +bezier.sty = us , +bk10.clo = us , +bk11.clo = us , +bk12.clo = us , +book.cls = us , +book.sty = us , +cp1250.def = us , +cp1252.def = us , +cp1257.def = us , +cp437.def = us , +cp437de.def = us , +cp850.def = us , +cp852.def = us , +cp858.def = us , +cp865.def = us , +decmulti.def = us , +doc.sty = us , +docstrip.tex = us , +exscale.sty = us , +fix-cm.sty = us , +fixltx2e.sty = us , +flafter.sty = us , +fleqn.clo = us , +fleqn.sty = us , +fltrace.sty = us , +fontenc.sty = us , +fontmath.cfg = us , +fontmath.ltx = us , +fonttext.cfg = us , +fonttext.ltx = us , +graphpap.sty = us , +hyphen.ltx = us , +idx.tex = us , +ifthen.sty = us , +inputenc.sty = us , +lablst.tex = us , +latex.ltx = us , +latex209.def = us , +latexbug.tex = us , +latexrelease.sty = us , +latexsym.sty = us , +latin1.def = us , +latin10.def = us , +latin2.def = us , +latin3.def = us , +latin4.def = us , +latin5.def = us , +latin9.def = us , +lcyenc.dfu = us , +leqno.clo = us , +leqno.sty = us , +letter.cls = us , +letter.sty = us , +lppl.tex = us , +ltluatex.lua = us , +ltluatex.tex = us , +ltnews.cls = us , +ltxcheck.tex = us , +ltxdoc.cls = us , +ltxguide.cls = us , +ly1enc.dfu = us , +macce.def = us , +makeidx.sty = us , +minimal.cls = us , +newlfont.sty = us , +next.def = us , +nfssfont.tex = us , +oldlfont.sty = us , +omlcmm.fd = us , +omlcmr.fd = us , +omlenc.def = us , +omllcmm.fd = us , +omscmr.fd = us , +omscmsy.fd = us , +omsenc.def = us , +omsenc.dfu = us , +omslcmsy.fd = us , +omxcmex.fd = us , +omxlcmex.fd = us , +openbib.sty = us , +ot1cmdh.fd = us , +ot1cmfib.fd = us , +ot1cmfr.fd = us , +ot1cmr.fd = us , +ot1cmss.fd = us , +ot1cmtt.fd = us , +ot1cmvtt.fd = us , +ot1enc.def = us , +ot1enc.dfu = us , +ot1lcmss.fd = us , +ot1lcmtt.fd = us , +ot2enc.dfu = us , +ot4enc.def = us , +preload.cfg = us , +preload.ltx = us , +proc.cls = us , +proc.sty = us , +report.cls = us , +report.sty = us , +sample2e.tex = us , +sfonts.def = us , +shortvrb.sty = us , +showidx.sty = us , +size10.clo = us , +size11.clo = us , +size12.clo = us , +slides.cls = us , +slides.def = us , +slides.sty = us , +small2e.tex = us , +source2e.tex = us , +syntonly.sty = us , +t1cmdh.fd = us , +t1cmfib.fd = us , +t1cmfr.fd = us , +t1cmr.fd = us , +t1cmss.fd = us , +t1cmtt.fd = us , +t1cmvtt.fd = us , +t1enc.def = us , +t1enc.dfu = us , +t1enc.sty = us , +t1lcmss.fd = us , +t1lcmtt.fd = us , +t2aenc.dfu = us , +t2benc.dfu = us , +t2cenc.dfu = us , +testpage.tex = us , +texsys.cfg = us , +textcomp.sty = us , +tracefnt.sty = us , +ts1cmr.fd = us , +ts1cmss.fd = us , +ts1cmtt.fd = us , +ts1cmvtt.fd = us , +ts1enc.def = us , +ts1enc.dfu = us , +ucmr.fd = us , +ucmss.fd = us , +ucmtt.fd = us , +ulasy.fd = us , +ullasy.fd = us , +utf8-test.tex = us , +utf8.def = us , +utf8enc.dfu = us , +utf8test.tex = us , +x2enc.dfu = us , +%--------------------------------- tools +afterpage.sty = us , +array.sty = us , +bm.sty = us , +calc.sty = us , +dcolumn.sty = us , +delarray.sty = us , +e.tex = us , +enumerate.sty = us , +fontsmpl.sty = us , +fontsmpl.tex = us , +ftnright.sty = us , +h.tex = us , +hhline.sty = us , +indentfirst.sty = us , +layout.sty = us , +longtable.sty = us , +multicol.sty = us , +q.tex = us , +r.tex = us , +rawfonts.sty = us , +s.tex = us , +showkeys.sty = us , +somedefs.sty = us , +tabularx.sty = us , +thb.sty = us , +thc.sty = us , +thcb.sty = us , +theorem.sty = us , +thm.sty = us , +thmb.sty = us , +thp.sty = us , +trace.sty = us , +varioref.sty = us , +verbatim.sty = us , +verbtest.tex = us , +x.tex = us , +xr.sty = us , +xspace.sty = us , +%--------------------------------- babel (part supported by us) +UKenglish.sty = us , +USenglish.sty = us , +afrikaans.sty = us , +albanian.sty = us , +american.sty = us , +austrian.sty = us , +babel.def = us , +babel.sty = us , +bahasa.sty = us , +bahasam.sty = us , +basque.sty = us , +blplain.tex = us , +bplain.tex = us , +breton.sty = us , +british.sty = us , +bulgarian.sty = us , +catalan.sty = us , +croatian.sty = us , +czech.sty = us , +danish.sty = us , +dutch.sty = us , +english.sty = us , +esperanto.sty = us , +estonian.sty = us , +finnish.sty = us , +francais.sty = us , +galician.sty = us , +germanb.sty = us , +greek.sty = us , +hebrew.sty = us , +hyphen.cfg = us , +icelandic.sty = us , +interlingua.sty = us , +irish.sty = us , +italian.sty = us , +latin.sty = us , +lsorbian.sty = us , +luababel.def = us , +magyar.sty = us , +naustrian.sty = us , +ngermanb.sty = us , +nil.ldf = us , +norsk.sty = us , +plain.def = us , +polish.sty = us , +portuges.sty = us , +romanian.sty = us , +russianb.sty = us , +samin.sty = us , +scottish.sty = us , +serbian.sty = us , +slovak.sty = us , +slovene.sty = us , +spanish.sty = us , +swedish.sty = us , +switch.def = us , +turkish.sty = us , +ukraineb.sty = us , +usorbian.sty = us , +welsh.sty = us , +xebabel.def = us , +%--------------------------------- graphics +color.cfg = us , +color.sty = us , +dvipdf.def = us , +dvipdfmx.def = us , +dvips.def = us , +dvipsnam.def = us , +dvipsone.def = us , +dviwin.def = us , +emtex.def = us , +epsfig.sty = us , +graphics.cfg = us , +graphics.sty = us , +graphicx.sty = us , +keyval.sty = us , +lscape.sty = us , +luatex.def = us , +pctex32.def = us , +pctexhp.def = us , +pctexps.def = us , +pctexwin.def = us , +pdftex.def = us , +pdftex.def = us , +tcidvi.def = us , +trig.sty = us , +truetex.def = us , +xetex.def = us , +%--------------------------------- mfnfss +oldgerm.sty = us , +ot1panr.fd = us , +ot1pss.fd = us , +pandora.sty = us , +uyfrak.fd = us , +uygoth.fd = us , +uyinit.fd = us , +uyswab.fd = us , +%--------------------------------- amsmath +amsbsy.sty = us , +amscd.sty = us , +amsgen.sty = us , +amsmath.sty = us , +amsopn.sty = us , +amstex.sty = us , +amstext.sty = us , +amsxtra.sty = us , +%--------------------------------- amscls (AMS) +amsart.cls = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsbook.cls = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsbooka.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsdtx.cls = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsldoc.cls = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsmidx.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsproc.cls = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amsthm.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +upref.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +%--------------------------------- amsfonts (AMS) +amsfonts.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +amssymb.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +cmmib57.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +eucal.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +eufrak.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +euscript.sty = American Mathematical Society \Contact tech-support [at] ams [dot] org , +ueuex.fd = ignore , +ueuf.fd = ignore , +ueur.fd = ignore , +ueus.fd = ignore , +umsa.fd = ignore , +umsb.fd = ignore , +%--------------------------------- psnfss +8rbch.fd = us , +8rpag.fd = us , +8rpbk.fd = us , +8rpcr.fd = us , +8rphv.fd = us , +8rpnc.fd = us , +8rppl.fd = us , +8rptm.fd = us , +8rput.fd = us , +8rpzc.fd = us , +avant.sty = us , +bookman.sty = us , +chancery.sty = us , +charter.sty = us , +courier.sty = us , +helvet.sty = us , +mathpazo.sty = us , +mathpple.sty = us , +mathptm.sty = us , +mathptmx.sty = us , +newcent.sty = us , +omlbch.fd = us , +omlpag.fd = us , +omlpbk.fd = us , +omlpcr.fd = us , +omlphv.fd = us , +omlpnc.fd = us , +omlppl.fd = us , +omlptm.fd = us , +omlptmcm.fd = us , +omlput.fd = us , +omlpzc.fd = us , +omlzplm.fd = us , +omlzpple.fd = us , +omlztmcm.fd = us , +omsbch.fd = us , +omspag.fd = us , +omspbk.fd = us , +omspcr.fd = us , +omsphv.fd = us , +omspnc.fd = us , +omsppl.fd = us , +omsptm.fd = us , +omsput.fd = us , +omspzc.fd = us , +omspzccm.fd = us , +omszplm.fd = us , +omszpple.fd = us , +omsztmcm.fd = us , +omxpsycm.fd = us , +omxzplm.fd = us , +omxzpple.fd = us , +omxztmcm.fd = us , +ot1bch.fd = us , +ot1pag.fd = us , +ot1pbk.fd = us , +ot1pcr.fd = us , +ot1phv.fd = us , +ot1pnc.fd = us , +ot1ppl.fd = us , +ot1pplj.fd = us , +ot1pplx.fd = us , +ot1ptm.fd = us , +ot1ptmcm.fd = us , +ot1put.fd = us , +ot1pzc.fd = us , +ot1zplm.fd = us , +ot1zpple.fd = us , +ot1ztmcm.fd = us , +palatino.sty = us , +pifont.sty = us , +t1bch.fd = us , +t1pag.fd = us , +t1pbk.fd = us , +t1pcr.fd = us , +t1phv.fd = us , +t1pnc.fd = us , +t1ppl.fd = us , +t1pplj.fd = us , +t1pplx.fd = us , +t1ptm.fd = us , +t1put.fd = us , +t1pzc.fd = us , +times.sty = us , +ts1bch.fd = us , +ts1pag.fd = us , +ts1pbk.fd = us , +ts1pcr.fd = us , +ts1phv.fd = us , +ts1pnc.fd = us , +ts1ppl.fd = us , +ts1pplj.fd = us , +ts1pplx.fd = us , +ts1ptm.fd = us , +ts1put.fd = us , +ts1pzc.fd = us , +ufplm.fd = us , +ufplmbb.fd = us , +upsy.fd = us , +upzd.fd = us , +utopia.sty = us , +%--------------------------------- expl3 +expl3.sty = us* , +l3sort.sty = us* , +l3regex.sty = us* , +l3tl-analysis.sty = us* , +xfrac.sty = us* , +xparse.sty = us* , +xtemplate.sty = us* , +xfrac.sty = us* , +xcoffins.sty = us* , +xgalley.sty = us* , +l3keys2e.sty = us* , +expl3-code.tex = ignore , +%--------------------------------- USEFUL FOR BUG REPORTS +blindtext.sty = ignore , +etoolbox.sty = ignore , +lipsum.sty = ignore , +%--------------------------------- EXTERNALLY SUPPORTED +% +beamer.cls = Joseph Wright + \Contact https://github.com/josephwright/beamer/issues , +fontspec.sty = Will Robertson + \Contact https://github.com/wspr/fontspec/issues , +geometry.sty = Hideo Umeki + \Contact , +hpdftex.def = ignore , +hluatex.def = ignore , +hxetex.def = ignore , +hyperref.cfg = ignore , +hyperref.sty = Heiko Oberdiek + \Contact https://github.com/ho-tex/hyperref/issues , +luatex85.sty = Joseph Wright + \Contact https://github.com/josephwright/luatex85/issues , +pd1enc.def = ignore , +puenc.def = ignore , +siunitx.sty = Joseph Wright + \Contact https://github.com/josephwright/siunitx/issues , +%--------------------------------- babel external +basque.ldf = Juan M. Aguirregabiria + \Contact , +belarusian.ldf = Aleksey Novodvorsky, Andrew Shadura + \Contact , +bosnian.ldf = Samir Halilcevic %% Halilčević + \Contact , +bulgarian.ldf = Georgi N. Boshnakov + \Contact , +croatian.ldf = Ivan Kokan + \Contact , +estonian.ldf = Jaan Vajakas + \Contact , +frenchb.ldf = Daniel Flipo + \Contact , +friulan.ldf = Claudio Beccari + \Contact , +georgian.ldf = Levan Shoshiashvili + \Contact , +austrian.ldf = Juergen Spitzmueller + \Contact , +german.ldf = Juergen Spitzmueller + \Contact , +germanb.ldf = Juergen Spitzmueller + \Contact , +naustrian.ldf = Juergen Spitzmueller + \Contact , +ngerman.ldf = Juergen Spitzmueller + \Contact , +ngermanb.ldf = Juergen Spitzmueller + \Contact , +nswissgerman.ldf = Juergen Spitzmueller + \Contact , +swissgerman.ldf = Juergen Spitzmueller + \Contact , +greek.ldf = Guenter Milde + \Contact , +magyar.ldf = Peter Szabo %% Péter Szabó + \Contact , +italian.ldf = Claudio Beccari + \Contact , +japanese.ldf = Japanese TEX Development Community + \Contact , +latin.ldf = Claudio Beccari + \Contact , +macedonian.ldf = Stojan Trajanovski + \Contact , +occitan.ldf = Cedric Valmary %% Cédric Valmary + \Contact , +piedmontese.ldf = Claudio Beccari + \Contact , +pinyin.ldf = Werner Lemberg + \Contact , +romansh.ldf = Claudio Beccari + \Contact , +russain.ldf = Igor A [dot] Kotelnikov + \Contact , +serbianc.ldf = Filip Brcic + \Contact , +spanglish.ldf = J [dot] Luis Rivera + \Contact , +spanish.ldf = Javier Bezos + \Contact , +thaicjk.ldf = Werner Lemberg + \Contact , +ukraineb.ldf = Sergiy Ponomarenko + \Contact , +vietnamese.ldf = Werner Lemberg + \Contact , +%--------------------------------- LAST LINE +{\latexbug@empty} = {} , +% \end{macrocode} +% +% Keep the data but throw away the loop function. +% \begin{macrocode} +\endgroup +% \end{macrocode} +% +% \begin{macro}{\latexbug@addtofilelist} +% Save the kernel version of \cs{@addtofilelist}. +% \begin{macrocode} +\let\latexbug@addtofilelist\@addtofilelist +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\latexbug@zzzz} +% \begin{macro}{\latexbug@expl} +% Storage for third-party files and those from the \LaTeX3 set on GitHub. +% \begin{macrocode} +\def\latexbug@zzzz{} +\def\latexbug@expl{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\latexbug@process@table} +% \begin{macro}{\process@table} +% A hook into a convenient place in the document set up: the +% initialization of NFSS during the \cs{document} macro. If either +% \cs{latexbug@zzzz} or \cs{latexbug@expl} have any content then there is +% a message to issue, it's just a question of deciding which one. +% \begin{macrocode} +\let\latexbug@process@table\process@table +\def\process@table{\global\let\@addtofilelist\latexbug@addtofilelist + \latexbug@process@table + \ifx\latexbug@zzzz\latexbug@empty + \ifx\latexbug@expl\latexbug@empty + \else + \PackageError{latexbug}% + {LaTeX3 file(s)\MessageBreak +\MessageBreak +This test files uses the LaTeX3 file(s)\MessageBreak +\MessageBreak + ==============\MessageBreak + \latexbug@expl + ==============\MessageBreak + \MessageBreak +You should report bugs in these packages\MessageBreak +at the LaTeX3 GitHub site,\MessageBreak +https://github.com/latex3/latex3/issues\MessageBreak +(Or remove them from your example,\MessageBreak +if they are not necessary to\MessageBreak +exhibit the problem).\MessageBreak +}{Please correct your test file prior + to submitting the bug report.\MessageBreak + Otherwise it is likely to be rejected!}% + \fi + \else + \PackageError{latexbug}% + {Third-party file(s)\MessageBreak +\MessageBreak +This test file uses third-party file(s)\MessageBreak +\MessageBreak + ==============\MessageBreak + \latexbug@zzzz + ==============\MessageBreak + \MessageBreak +So you should contact the authors\MessageBreak +of these files, not the LaTeX Team!\MessageBreak +(Or remove the packages that load\MessageBreak +them, if they are not necessary to\MessageBreak +exhibit the problem).\MessageBreak +\MessageBreak +If you think the bug is in core LaTeX\MessageBreak +(as maintained by the LaTeX Team) but\MessageBreak +these files are needed to demonstrate\MessageBreak +the problem, please continue and mention\MessageBreak +this explicitly in your bug report\MessageBreak +(with an explanation why you think so)}{Please + correct your test file prior + to submitting the bug report.\MessageBreak + Otherwise it is likely to be rejected!}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@addtofilelist} +% \begin{macro}{\latexbug@iftoplevel} +% First, a test to see if we are at the top level: there's no need to +% test dependencies of packages. Assuming we are doing a check, the aim +% is to see if the current name is known, and if it is whether it fits into +% one of our special cases. If it's one of the \LaTeX3 GitHub packages it +% gets recorded in a dedicated space. Third-party package can also have +% information about where to report issues: this is all stored for reporting +% later. +% \begin{macrocode} +\def\@addtofilelist#1{% +% \show\@currnamestack + \expandafter\latexbug@iftoplevel\@currnamestack {}\@nil + \begingroup + \xdef\latexbug@x{#1}% TODO: one-level sanitize + \expandafter + \ifx\csname latexbug@@\latexbug@x\endcsname\relax + \def\latexbug@y{}% + \else + \xdef\latexbug@y{\csname latexbug@@\latexbug@x\endcsname}% + \fi + \ifx\latexbug@y\latexbug@us\else + \ifx\latexbug@y\latexbug@usstar + \begingroup + \let\MessageBreak\relax + \xdef\latexbug@expl{% + \latexbug@expl\latexbug@x + \MessageBreak + }% + \endgroup + \else + \ifx\latexbug@y\latexbug@ignore\else + {\let\MessageBreak\relax + \xdef\latexbug@zzzz{\latexbug@zzzz\latexbug@x + \ifx\latexbug@y\latexbug@empty\else + \space\space -> \space \latexbug@y\fi + \MessageBreak}}% + \fi + \fi + \fi + \endgroup + \fi + \latexbug@addtofilelist{#1}} +\def\latexbug@iftoplevel #1#2\@nil{% + \def\next{#1}% + \ifx\next\@empty +} +\endinput +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \Finale +% -- cgit v1.2.3