
Я хотел бы проверить исходный код, используемый для реализации стандартной прямоугольной формы в PGF/TikZ. Я думал поискать что-то подобное \pgfdeclareshape{rectangle}
внутри файлов PGF, но понятия не имею, где искать.
Я нашел pgfbaseshapes.sty
файл, texmf-dist/tex/latex/pgf/basiclayer/
но он почти пустой и помечен как устаревший.
Есть ли у вас подсказка, где мне следует искать?
Было бы также очень здорово, если бы кто-нибудь мог кратко объяснить, как организован код PGF/TikZ в файлы, т. е. где следует искать код определенной формы, библиотеки и т. д.
решение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!
но на самом деле он обращается ко всем файлам.Организация файлов примерно следующая:
- Слой Front-End (файлы TikZ)
tikz.code.tex
— это основной файл для всего. - Базовый слой (файлы PGF)
- Системный уровень (файлы самого низкого уровня, связанные с драйвером)
- Библиотеки (PGF-версии)
- Математика, ключи, утилиты и т. д.
Когда мы используем,
\usetikzlibrary{<lib name>}
он ищет файл библиотекиtikzlibrary<lib name>.code.tex
в папке Front-End TikZ. Однако эти библиотечные вызовы также включают
pgflibrary<lib name>.code.tex
под капотом. Таким образом, мы также можем утверждать, что есть и интерфейс для библиотек, который в основном используется для получения основной функциональности удобным способом и передает ее в фактический код PGF.
- Слой Front-End (файлы TikZ)