
Ich versuche, die Machbarkeit der Verwendung des Plain-Pakets zum Erstellen eines Bandes zu bewerten, von dem ein Teil eine kritische Ausgabe in Plain-Tex mit Edmac ist, die anderen Teile sind mehr oder weniger reguläres LaTeX. Ich habe es hier mit einem äußerst komplexen Setup zu tun, einem alten Code aus den 1990er Jahren, dessen Schöpfer längst gestorben ist, aber die anderen Leute im Projekt haben sein System weiter verwendet und seitdem einige Bände produziert, und anscheinend werden sie es nicht aufgeben. Die gedruckten Bücher sehen wirklich toll aus. Die vorhergehenden Bände wurden erstellt, indem zuerst PDFs der Ausgabekapitel generiert wurden, für die die Startnummer im Buch jeweils manuell in der Tex-Quelle festgelegt werden musste, und diese PDFs werden dann in die Haupt-LaTeX-Datei des Buches aufgenommen. Das Inhaltsverzeichnis muss natürlich auch manuell erstellt werden. Natürlich ist es möglich, dies erneut zu tun, aber ich würde zumindest gerne sehen, ob es einen anderen, besseren Weg gibt. Wie gesagt, die Sache ist unglaublich komplex und umfasst ein zweistufiges Vorverarbeitungssystem, von Eingabedateien in einer benutzerdefinierten Sanskrit-Kodierung über ein Perl-Skript bis hin zu DN-Dateien für den Devnag-Vorprozessor, der im zweiten Schritt die Tex-Quelldateien generiert, und einer Style-Datei, die eine Abstraktionsschicht über Edmac bereitstellt. Obwohl ich der technische Mitarbeiter war, der für die Erstellung des letzten Bandes verantwortlich war und nur das alte System verwendete, war dies ohne tiefgreifende Kenntnisse des einfachen Tex möglich, das zur Erstellung der Ausgabe verwendet wurde. Da ich sonst keine Erfahrung mit einfachem Tex habe, kämpfe ich jetzt damit, ein MWE zu erstellen, das ich dann in eine LaTeX-Datei eingeben könnte, falls das überhaupt möglich ist. Das Erstellen eines Beispiels mit einer realen Datei ist fehlgeschlagen, das habe ich natürlich versucht.
\input edmac.doc
\beginnumbering
\pstart
\text{lemma}\Afootnote{note}\
\pend
\endnumbering
\bye
gibt mir
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019) (preloaded format=pdftex)
restricted \write18 enabled.
entering extended mode
(./mini.tex (./edmac.doc
EDMAC Critical edition macros.
Revision: 3.7 < Date: 31 Aug 1993 15:57:20 >.
) Section 1 (./mini.1)
Runaway argument?
\Afootnote {note}\^^M\pend \endnumbering \par
! Forbidden control sequence found while scanning use of \text.
<inserted text>
\par
<to be read again>
\bye
l.9 \bye
Wahrscheinlich fehlt ein Setup, aber vielleicht ist es auch ein Kompatibilitätsproblem? Ich habe bisher kein anderes MWE oder, um es vorweg zu nehmen, lesbare Dokumentation gefunden. Ich habe das letzte in edmac.doc enthaltene Beispiel ausprobiert, da es speziell für die Verwendung mit dem Devnag-Präprozessor gedacht war, aber es ließ sich auch nicht erstellen.
Antwort1
Zunächst eine Antwort auf die gestellte Frage. Die Kurzfassung lautet, dass \text
mit beendet werden soll /
, nicht mit \
.
Erklärung der Fehlermeldung
Beachten Sie, dass die Fehlermeldung „Ausuferndes Argument?“ anzeigt und dass sie, wenn Sie „H“ drücken, näher erläutert wird:
Runaway argument?
\Afootnote {note}\^^M\pend \endnumbering \par
! Forbidden control sequence found while scanning use of \text.
<inserted text>
\par
<to be read again>
\bye
l.9 \bye
? H
I suspect you have forgotten a `}', causing me
to read past where you wanted me to stop.
I'll try to recover; but if the error is serious,
you'd better type `E' or `X' now and fix your file.
Im Grunde bedeutet dies, dass der gesamte und ich glaube auch \Afootnote {note}\^^M\pend \endnumbering \par
ein Teil von (dieser Fehler wurde abgefangen, weil als deklariert ist ) als Argument für behandelt wurde (was nicht Ihre Absicht war), was darauf hindeutet, dass etwas mit dem Aufruf von nicht stimmt .\bye
\bye
\outer
\text
\text
edmac
Dokumentation und MWE
Die Dokumentation für edmac
ist schwer zu finden: texdoc edmac
nurzeigt ana readme
von 1996, in dem Sie aufgefordert werden, die Dokumentation als gedrucktes Buch von TUG zu kaufen (mit, wie ich glaube, veralteter Adresse). Nachdem ich jedoch irgendwo von edmac/ledmac/reledmac gehört habe, texdoc reledmac
ist das Ausführen nützlicher und zeigt einedokumentierendas geht in die Geschichte ein und erwähnt auch
„Ein Überblick über edmac: ein einfaches TEX-Format für kritische Ausgaben“,Schleppboot 11(1990), S. 623–643
welches verfügbar istHier.
Wenn wir dieser Dokumentation folgen, können wir das folgende MWE vorbereiten (unter Verwendung von Beispielen aus dem Dokument, wobei der Name \afootnote
auf den aus der Frage aktualisierten Namen gesetzt wurde \Afootnote
):
\input edmac
\firstlinenum=1
\linenumincrement=1
% Some hacks for narrow columns. Not needed in real documents.
\vsize=20em
\hsize=15em
\hyphenpenalty=0
\exhyphenpenalty=0
\doublehyphendemerits=0
\finalhyphendemerits=0
\pretolerance=9999
\tolerance=9999
\emergencystretch=\maxdimen
\beginnumbering
\pstart This is a sample paragraph, with lines numbered automatically. \pend
The lines of this paragraph are not numbered.
\pstart And here the numbering begins again. \pend
\pstart
I saw my friend \text{Smith}\Afootnote{Jones C, D.}/ on Tuesday.
\pend
\bye
was dazu führt:
Unaufgeforderter Rat :)
Generieren von PDFs der Ausgabekapitel, für die jeweils die Startnummer im Buch manuell in der Tex-Quelle festgelegt werden musste, und diese PDFs werden dann in die Haupt-LaTeX-Datei des Buches eingebunden. Das Inhaltsverzeichnis muss natürlich auch manuell erstellt werden.
Beachten Sie, dass dies (manuelles Festlegen der Anfangsseitenzahl jedes Kapitels und manuelles Erstellen des Inhaltsverzeichnisses) auch die Vorgehensweise von Donald Knuth ist, dem Erfinder von TeX und Autor von25 Bücher, bereitet auch viele seiner Bücher vor. Das ist nicht so schlimm, da man das Inhaltsverzeichnis eines Buches wahrscheinlich nur einmal am Ende erstellt. Automatisierung istnicht immerlohnt sich, und es ist nützlich, im Auge zu behalten,Rahmenbedingungenwann dies zu tun ist.
ein extrem komplexes Setup, Legacy-Code aus den 1990er Jahren, [...] seitdem einige Bände produziert [...]. Die gedruckten Bücher sehen wirklich toll aus. [...] Ich würde zumindest gerne sehen, ob es einen anderen, besseren Weg gibt.
Ich habe manchmal Dinge in einem ähnlichen Geist versucht, aber seien Sie sich bewusst, dass dies am Ende erfolglos sein kann. Siehe diesklassischer Artikelzum Umschreiben von Software: Dieser alte Code ist „kampferprobt“, da er mit vielen seltsamen Situationen und Sonderfällen konfrontiert wurde, an die man vielleicht nicht denkt, wenn man versucht, alles von Grund auf neu zu schreiben. Es kann sehr schwierig werden, ein gedrucktes Buch zu produzieren, das genauso gut aussieht, was dem Hauptzweck der Verwendung von TeX (schöne Bücher) zuwiderläuft. Anstatt Dinge wegzuwerfen und zu versuchen, von Grund auf eine bessere Lösung zu finden, würde ich empfehlen, mit dem aktuellen Setup zu beginnen und nach und nach Dinge zu entfernen, die nicht mehr benötigt werden, wie z. B. das Ersetzen der benutzerdefinierten Kodierung /AbonnierenPräprozessor mit etwas anderem (vielleicht einemanderes Skript), vergleichen Sie aber immer das „Vorher“ und „Nachher“, um sicherzustellen, dass das Ergebnis nicht verändert oder zumindest in keiner Weise beeinträchtigt/verschlechtert wird.
Da ich sonst keinen Kontakt zu normalem Text habe
Wenn Sie sich schnell mit einem nützlichen mentalen Modell von einfachem TeX vertraut machen möchten,starkdas Buch weiterempfehlenEin TeX-Anfängerbuchvon Seroul und Levy. (Siehe die Empfehlung von Hans Hagenim ConTeXt-Handbuch.) Es kann sich lohnen, sich ein paar Tage Zeit zu nehmen. Aber siehe trotzdem den vorherigen Punkt.
MWE, das ich dann in eine LaTeX-Datei eingeben könnte, wenn das überhaupt möglich ist
Beachten Sie, dass ed-nfss.txt
(aus dem Jahr 1994) steht: „Insbesondere verwendet EDMAC seine eigene Ausgaberoutine, nicht die von LaTeX2e, sodass sehr viele Dinge, die spezifisch für die LaTeX-Ausgaberoutine sind (wie die Platzierung von Gleitkommazahlen), nicht ausgeführt werden.“ (Wenn dies also immer noch der Fall ist) kann die Eingabe in eine LaTeX-Datei überraschende Ergebnisse haben.