Как предоставить файлы ресурсов для пользовательского шаблона beamer - PullRequest
0 голосов
/ 26 февраля 2019

Во-первых, создать воспроизводимый пример непросто, поскольку мой вопрос связан со сборкой пакета, предоставляющего собственный формат knitr.Я надеюсь, что смогу прояснить мою проблему, и меня интересуют ваши идеи, как решить эту проблему наилучшим образом.

Проблема

Я пишу пакет R, содержащийпользовательский формат knitr (точнее отформатированные слайды beamer).На этих слайдах проектора я включаю *.sty текстовый файл с помощью команды

\input{$resource$/thefile.sty}

, где $resources$ - это переменная pandoc, которую я предоставляю через свою функцию пользовательского формата.Это разрешится до

\input{/path/to/packagelibrary/package/resources/thefile.sty}

При установке пакета, создании нового документа RMD из моего шаблона и его вязании, *.sty действительно находится в каталоге установленного пакета.Но LaTeX выдает предупреждение

Вывод создан: Untitled.pdf Предупреждение: LaTeX Предупреждение (я):
Вы запросили пакет `', но пакет предоставляет` thefile.sty'

Я знаю, что это всего лишь предупреждение, но, если возможно, я бы тоже хотел их устранить.И я говорю эти , потому что в конце концов у меня есть несколько файлов, которые находятся в папке inst/rmarkdown/templates/mytemplate/resources/.

Я думал о копировании этих ресурсов в промежуточные продуктыпапка, чтобы они были удалены впоследствии.Но я не уверен, возможно ли это или даже желательно.

Я открыт для любых предложений о том, как справиться с этим.

1 Ответ

0 голосов
/ 26 февраля 2019

Есть способ сделать это, но он выглядит немного хрупким.

Как показывает этот ответ https://tex.stackexchange.com/a/124013, включение пути в вызове \usepackage{} в основном использует ошибку при проверке ошибок,Предупреждение, которое вы видите в своем журнале, специально разработано.

Вот способ решения этой проблемы, который может сработать для вас.Поместите этот код в файл .tex перед вызовом LaTeX, и он будет искать нужный файл стиля в нужном месте без предупреждения:

\makeatletter
\def\input@path{{$resource$/}}
\makeatother
\usepackage{thefile}

и в thefile.sty include

\ProvidesPackage{thefile}

(Обратите внимание, что вы не включаете расширение .sty в любом месте.)

Я говорю, что это немного хрупко, потому что какая-то другая часть кода может играть с \input@path.У вас может быть несколько путей, но мои знания TeX недостаточно глубоки, чтобы знать, как сказать, чтобы добавить дополнительный путь к существующему.Все, что я могу сказать, это то, что если вы начнете с определения {{a}}, вы захотите получить определение {{$resource$/}{a}}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...