Sie sind hier

Warnung nach Update von iftex

Nach dem Update und der Zusammenführung von ifluatex, ifxetex etc. zu iftex (https://github.com/latex3/iftex) produziert das folgende einfache Beispiel

\documentclass{scrartcl}
\usepackage{iftex}
 
\begin{document}
Lorem
\end{document}

die Warnungen

Package scrbase Warning: \ifpdftex was redefined
(scrbase)                at the document preamble.
(scrbase)                If you did not redefine it by yourself, have a
(scrbase)                a look at the description of this command at
(scrbase)                the manual of every package you are using.
 
 
Package scrbase Warning: \ifVTeX was redefined
(scrbase)                at the document preamble.
(scrbase)                If you did not redefine it by yourself, have a
(scrbase)                a look at the description of this command at
(scrbase)                the manual of every package you are using.

Diese Warnungen treten sowohl mit der aktuell auf CTAN vorhandenen Version

*File List*
scrartcl.cls    2019/10/12 v3.27 KOMA-Script document class (article)
scrkbase.sty    2019/10/12 v3.27 KOMA-Script package (KOMA-Script-dependent bas
ics and keyval usage)
 scrbase.sty    2019/10/12 v3.27 KOMA-Script package (KOMA-Script-independent b
asics and keyval usage)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
scrlfile.sty    2019/10/12 v3.27 KOMA-Script package (loading files)
tocbasic.sty    2019/10/12 v3.27 KOMA-Script package (handling toc-files)
scrsize11pt.clo    2019/10/12 v3.27 KOMA-Script font size class option (11pt)
typearea.sty    2019/10/12 v3.27 KOMA-Script package (type area)
   iftex.sty    2019/10/24 v1.0a TeX engine tests
 ***********

als auch mit der Vorversion 3.27a.3326

 *File List*
scrartcl.cls    2019/10/28 v3.27a.3326 KOMA-Script document class (article)
scrkbase.sty    2019/10/28 v3.27a.3326 KOMA-Script package (KOMA-Script-depende
nt basics and keyval usage)
 scrbase.sty    2019/10/28 v3.27a.3326 KOMA-Script package (KOMA-Script-indepen
dent basics and keyval usage)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
scrlfile.sty    2019/10/28 v3.27a.3326 KOMA-Script package (loading files)
tocbasic.sty    2019/10/28 v3.27a.3326 KOMA-Script package (handling toc-files)
 
scrsize11pt.clo    2019/10/28 v3.27a.3326 KOMA-Script font size class option (1
1pt)
typearea.sty    2019/10/28 v3.27a.3326 KOMA-Script package (type area)
   iftex.sty    2019/10/24 v1.0a TeX engine tests
 ***********

auf.

forum: 
Bild von Markus Kohm

Danke für den Hinweis.

Siehe Abschnitt »12.3. Verzweigungen« in der KOMA-Script-Anleitung.

Im übrigen ist iftex kein KOMA-Script-Paket und ich habe keinen Einfluss auf Änderungen dieses Pakets. \ifpdflatx gibt es bekanntlich in scrbase seit 2002, damals gab es auch \ifvtex, das ich aber wegen einer Inkompatibilität und Gezeter von ein paar Leuten 2007 in \ifVTeX umbenannt habe, Und weil andere Paketautoren auf eine ähnliche Idee aber mit komplett anderer Syntax gekommen sind, sind beide Befehle seit 2016 abschaltbar.

Ich habe keine Ahnung, warum iftex jetzt unbedingt \ifVTeX (statt nur \ifvtex) definieren muss (und auch nicht testet, ob das schon definiert ist). Ich weiß auch nicht, warum iftex jetzt statt (nur) \ifPDFTeX plötzlich auch noch \ifpdftex definieren muss. Für derartige Fragen bin ich einfach die falsche Adresse.

Ich beabsichtige nicht, beide Befehle noch einmal umzubenennen. Es gibt diverse Anwender, die KOMA-Script seit Jahrzehnten mit einem generisch gewachsenen Pool an Dokumenten und Präambelcode verwenden. Ich würde diverse davon in den Regen stellen. Das wäre ein kompletter Paradigmenwechsel.

Ich habe unter https://github.com/latex3/iftex/issues/7 eine entsprechende Meldung abgesetzt.

Edit: Die Reaktion kann jeder für sich deuten.
Edit2: Langsam kommt dann doch etwas Bewegung in die Sache.

Bild von Markus Kohm

David schreibt dort ja:

There is really a very widespread convention (but sadly not universal) that commands starting \if.. are tex primitive \if with a matching \fi

Das LaTeX-Team hält sich allerdings selbst nicht an diese Konvention. In docstrip.tex, das bekanntlich als Teil von LaTeX base verteil wird, findet sich \ifToplevel, das als Anweisung mit einem Argument dokumentiert ist. Das ist insofern etwas brisant als die Konvention offenbar nirgendwo dokumentiert ist, aber besagte Anweisung in einer Dokumentation zu finden ist, die vom LaTeX-Team stammt und mit der Paketautoren relativ früh konfrontiert werden, wenn sie ihre Pakete allgemein zur Verfügung stellen wollen. Ebenso gibt es ein \ifthenelse mit drei Argumenten im Paket ifthen, für das ausgerechnet David verantwortlich ist, der besagte Regel in obiger Diskussion aufgestellt hat.

Die Person aus dem LaTeX-Team, mit die ich darauf hingewiesen habe, führt als Grund, dass man das nicht ändern oder zumindest durch eine neue Form ergänzen und dokumentieren und die alte als deprecated deklarieren kann, das Alter der Anweisungen an. Ich könnte jetzt auflisten, wie alt welche \if-Anweisung in KOMA-Script ist. Aber das bringt ja nichts. Ich sitze ohnehin am kürzeren Hebel.

Eine gewisse Person würde mir das hier vermutlich wieder als unverschämten Angriff auslegen. Das soll es aber nicht sein. Es ist nur eine Randbemerkung.

Außerdem wollte ich abschließend noch darauf hinweisen, dass für KOMA-Script die Entscheidung inzwischen gefallen ist. Zu leiden hat darunter ausgerechnet mrpiggi, der den Stein ins Rollen gebracht und jetzt diverse Stellen in seinem Code zu ändern hat. Eine Sonderbehandlung in iftex oder einem anderen Paket halte ich dagegen nicht mehr für zielführend, obwohl natürlich auch andere Pakete nicht mehr funktionieren, beispielsweise pdfcprot.

MoeWe, auch von mir ein Dankeschön, dass Du auf das Problem aufmerksam gemacht hast und vor allem vielen Dank an mrpiggi: mit der neuen Version v1.0b [2019/11/04] des Pakets iftex scheint das Problem behoben zu sein.

Der Dank sollte in erster Linie an David Carlisle gehen, der sehr bestrebt darin war, zeitnah eine Lösung für das Problem umzusetzen, auch wenn er es erst verursacht hat ;) Es ist verdammt mühselig, möglichst alle Interessen unter einen Hut zu bekommen und dabei größtmöglichste Kompatibilität zu wahren, bei der Unmenge an verschiedenen LaTeX-Paketen.

So und nun zum eigentlichen Text. Das Problem tritt nur dann nicht auf, wenn das Paket iftex nach scrbase geladen wird. Passiert dies vorher, bleiben die Definitionen von iftex erhalten und scrbase gibt eine entsprechende Information in der log-Datei aus. Folgendes MWE

%\RequirePackage{scrbase}
\RequirePackage{iftex}
\documentclass{scrartcl} 
\begin{document}
\meaning\ifpdftex
 
\meaning\ifVTeX
\end{document}

erzeugt diesen Ausschnitt in der log-Datei

Package scrbase Info: \ifpdftex already defined.
(scrbase)             If \ifpdftex does not behave like
(scrbase)             it was described at the KOMA-Script manual, try to
(scrbase)             load `scrbase.sty' earlier or find out at which
(scrbase)             package or class \ifpdftex was defined before.
Package scrbase Info: \ifVTeX already defined.
(scrbase)             If \ifVTeX does not behave like
(scrbase)             it was described at the KOMA-Script manual, try to
(scrbase)             load `scrbase.sty' earlier or find out at which
(scrbase)             package or class \ifVTeX was defined before.

Behelfen kann man sich momentan nur damit, das Paket scrbase in jedem Fall vor iftex zu laden. Ob Markus aber momentan oder in Zukunft die Muße dazu findet, entsprechende Anpassungen an scrbase vorzunehmen, die Definitionen von iftex (standardmäßig oder optional?) zu überschreiben, steht auf einem anderen Blatt.

Bild von Markus Kohm

In dieser Woche haben mehrere Anwender versucht, mich unter Umgehung der offiziellen KOMA-Script-Support-Adresse bezüglich irgendwelcher LaTeX-Fragen zu erreichen. Da das auffällig viele waren, bitte ich noch einmal darum, meine Pause zu respektieren. Ich werde mich künftig bemühen auch solche E-Mails (dann eben manuell) entsprechend der Pause zu behandeln, wohl wissend, dass jede davon mich faktisch teilweise daraus heraus reißt und damit davon abhält mit dem notwendigen Abstand und der notwendigen Ruhe eine vernünftige Entscheidung zu treffen, statt mich jetzt zu irgend etwas hinreißen zu lassen.

Natürlich könnte ihr – auch hier – ohne mich beliebig über dieses und andere Themen weiter diskutieren. Es darf auch jeder äußern, wenn er gänzlich anderer Meinung als ich ist.

Auch auf GitHub wird weiter fleißig diskutiert:
https://github.com/latex3/iftex/issues/7#issuecomment-551264519
https://github.com/latex3/iftex/issues/7#issuecomment-551264862
Falls also jemand noch Bedarf hat, sich über die aktuelle Situation zu beschweren oder Lösungsvorschläge anbieten möchte, sollte sich wohl eher dort aufgehoben fühlen, da die Entwickler von iftex dort definitiv mitlesen.

Bild von Markus Kohm

Das Problem wurde nicht zuletzt durch den Einsatz von mrpiggi und David Carlisle aber auch Ulrike Fischer und Frank Mittelbach grundlegend gelöst. Siehe dazu auch:

Den genannten sei für ihre freundliche und hilfreiche Reaktion ausdrücklich gedankt.

Auf die böswilligen Fehldarstellungen aus anderer Richtung werde ich hingegen nicht weiter eingehen.

Comments for "Warnung nach Update von iftex" abonnieren