Просматривая публикации Дона Кнута по TeX, я наткнулся на файл tripman.pdf
в моем дистрибутиве MacTeX. Как могут знать TeXnicians, этот файл объясняет цель теста TRIP
и как его использовать, а также предоставляет исходный код для входных файлов и правильный вывод. Я решил (по глупости?) попробовать тест самостоятельно, и вот тут-то и начинается проблема.
У меня два вопроса:
- В шаге 2 Приложения A, как мне следует внести изменения,
INITEX
чтобы параметры были установлены так, как указано там? Я слышал о «файлах изменений», которые изменяют выводweave
,tangle
,cweave
, иctangle
без изменения оригиналаWEB
илиCWEB
файла, но я понимаю, что такие файлы не могут изменять поведениеUNIX
исполняемых файлов.Без изменения исходного кода TeX, Как это может быть сделано? - На шаге 4, версия, которая
INITEX
будет запущена, должна быть неизмененной версией или измененной версией на шаге 2? Я предполагаю, что для целей отладки следует использовать измененную версию, но я хотел бы просто подтвердить.
Любая дополнительная информация относительно потенциальных проблем при проведении этого теста была бы очень признательна. Я являюсь частым (хотя, надо признать, неопытным) пользователем LaTeX, который недавно начал читать работы Дона Кнута по набору и типографике, и мне может понадобиться небольшая помощь в понимании таких материалов.
Моя машина — Mac, на котором запущен TeXLive 2019 в форме MacTeX. Если отсутствует какая-либо другая необходимая информация, пожалуйста, запросите ее в комментариях.
Спасибо.
Это мой первый опыт работы с TeX.SX, поэтому качество моих вопросов может быть не на должном уровне. Я приношу извинения за любые оплошности, которые я мог допустить в ходе написания этого вопроса, и я приветствую все предложения относительно того, как можно улучшить вышеизложенное. Любые предложения относительно соответствующих тегов будут высоко оценены. Пожалуйста, будьте вежливы.
решение1
Реализация \TeX
выполняется в tex.web
. Этот файл является общей реализацией, которая должна быть адаптирована к операционной системе или, в общем, к конкретному компьютеру и компилятору Pascal. Например, соглашения об именах файлов и процедуры ввода и вывода должны быть изменены для соответствия спецификациям конкретной системы, и если компилятор Pascal не допускает путь else
в case
операторе, например, то несколько мест в исходном коде должны быть изменены.
Поэтому программы TANGLE
и WEAVE
не только читают один
WEB
файл, но и могут обрабатывать файл изменений для такого файла. Поэтому для компиляции \TeX
вам нужно tex.web
и tex.ch
, который содержит изменения для вашей машины.
Чтобы проверить, что ваш файл изменений не изменяется \TeX
таким образом, что делает вашу реализацию несовместимой, т. е. тот же файл .tex не генерирует вывод, отличный от других \TeX
реализаций, одним из условий является trip
прохождение теста. Для этого требуется специальная версия INITEX
с предопределенными значениями для определенных параметров времени компиляции, чтобы сделать вывод теста сопоставимым. Таким образом, для выполнения trip
теста вы должны создать специальную версию , \TeX
а это означает, что вам придется запутаться tex.web
с вашим файлом изменений и скомпилировать полученный вывод Pascal с помощью вашего компилятора Pascal.
Дополнительные изменения для вашего локального файла изменений подробно описаны в процедуре тестирования, и там же объясняются шаги для теста. Результаты необходимо сравнить с выводом, сгенерированным системой по умолчанию \TeX
. Эти результаты также перечислены в процедуре тестирования, и они могут меняться с каждым новым
tex.web
.
Ниже CTAN
вы найдете соответствующие документы и источники:
(1)https://ctan.org/tex-archive/systems/knuth/dist/texсодержит tex.web
все tripman.tex
необходимые файлы для trip
теста;
(2)https://ctan.org/tex-archive/systems/knuth/dist/webсодержит исходный код и TANGLE
руководство ;WEAVE
WEB
(3)https://ctan.org/tex-archive/systems/knuth/local/tex/initex.ch
представляет собой непроверенный и неполный пример файла изменений для trip
теста.
(Видетьhttps://ctan.org/tex-archive/systems/unixдля полных систем для различных компиляторов Pascal; однако, обратите внимание, что я не рекомендую использовать эти системы.)
Если вы скачаете
https://ctan.org/tex-archive/systems/knuth/dist/lib/webmac.texвы можете (i) запустить weave tex.web
или weave tangle.web
т. д. без файла изменений, чтобы получить файл *.tex, который может быть обработан plain tex
и (ii) прочитать о программах-дженериках. Конечно, вы можете добавить файл изменений и посмотреть, что тогда произойдет.
Если вы скачаете
https://ctan.org/tex-archive/systems/texlive/Source/texlive-20190408-source.tar.xz
Вы можете найти каталог с результатами испытаний на срабатывание для этой системы texlive. ( Разумеется, texk\web2c\triptrap
вы должны уметь работать xz
с файлами .)tar