Где можно найти исходный код TikZ/PGF?

Где можно найти исходный код TikZ/PGF?

Я хотел бы проверить исходный код, используемый для реализации стандартной прямоугольной формы в PGF/TikZ. Я думал поискать что-то подобное \pgfdeclareshape{rectangle}внутри файлов PGF, но понятия не имею, где искать.

Я нашел pgfbaseshapes.styфайл, texmf-dist/tex/latex/pgf/basiclayer/но он почти пустой и помечен как устаревший.

Есть ли у вас подсказка, где мне следует искать?

Было бы также очень здорово, если бы кто-нибудь мог кратко объяснить, как организован код PGF/TikZ в файлы, т. е. где следует искать код определенной формы, библиотеки и т. д.

решение1

  1. Первый ответ уже упомянут в комментариях. Основной ответ — искать tex/pgf/genericпапку дистрибутива TeX. (TikZ/PGF имеет разные детали реализации в зависимости от выбора драйвера, поэтому он далее классифицирует код на ConTeXt/Lua/Xe/PDF/La(TeX) и т. д.) Generic имеет тенденцию включать код, не зависящий от драйвера.

    Чтобы добавить еще одну опцию из TeXnicCenter, если вы используете Ctrl+ Shift+ Fи вводите C:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgfв качестве Use Directory, он будет искать все соответствующие файлы PGF в отдельном Findокне (которых два). Скриншот

    введите описание изображения здесь

    Странно, но если он ничего не находит в файле, то он это сообщает, Cannot access file!но на самом деле он обращается ко всем файлам.

  2. Организация файлов примерно следующая:

    1. Слой Front-End (файлы TikZ) tikz.code.tex— это основной файл для всего.
    2. Базовый слой (файлы PGF)
    3. Системный уровень (файлы самого низкого уровня, связанные с драйвером)
    4. Библиотеки (PGF-версии)
    5. Математика, ключи, утилиты и т. д.

    Когда мы используем, \usetikzlibrary{<lib name>}он ищет файл библиотеки

    tikzlibrary<lib name>.code.tex
    

    в папке Front-End TikZ. Однако эти библиотечные вызовы также включают

    pgflibrary<lib name>.code.tex
    

    под капотом. Таким образом, мы также можем утверждать, что есть и интерфейс для библиотек, который в основном используется для получения основной функциональности удобным способом и передает ее в фактический код PGF.

Связанный контент