Я использую класс moderncv
для создания резюме в Rmarkdown.Чтобы сделать cv воспроизводимым из коробки, я включил файлы .cls и .sty в корневой каталог.Тем не менее, в попытке сохранить корневой каталог незагроможденным, я бы предпочел хранить все файлы, связанные с moderncv
, в подкаталоге (assets / tex /).Я могу получить доступ к файлу .cls, используя относительный путь в файле yaml, но я не могу получить доступ к файлам .sty, если они не находятся в корневом каталоге.
Поиск предыдущих вопросов по stackoverflow Я узнал следующее: (1) хранить файлы .cls и .sty во вложенных каталогах не рекомендуется.Я понимаю это и хотел бы сделать это в любом случае, чтобы другие люди могли раскошелиться на мой проект и иметь возможность связать резюме, не имея дело с поиском своей папки texmk.(2) кажется, что решение моей проблемы заключается в установке TEXINPUTS
с использованием Makefile (см. этот поток и другой поток )
Я не очень хорошс Makefiles, но мне удалось получить один рабочий, который без проблем свяжет мой файл .Rmd в pdf, при условии, что файлы .sty все еще находятся в корне.Вот как это выглядит в настоящее время:
PDF_FILE=my_cv.pdf
all : $(PDF_FILE)
echo All files are now up to date
clean :
rm -f $(PDF_FILE)
%.pdf : %.Rmd
Rscript -e 'rmarkdown::render("$<")'
Насколько я понимаю, я могу установить TEXINPUTS
, используя:
export TEXINPUTS=".:./assets/tex:"
Где "assets / tex" представляет подкаталог, где.sty файлы находятся.Я не знаю, как включить приведенный выше код в мой make-файл, чтобы файлы .sty распознавались в подкаталогах, а мой .Rmd был связан с PDF.В текущем состоянии я получаю следующую ошибку, если удаляю файлы .sty из корня и помещаю их в вышеупомянутый подкаталог:
! LaTeX Error: Command \fax already defined.
Or name \end... illegal, see p.192 of the manual.
, который, как я предполагаю, происходит, потому что класс moderncv
нуждается в---и не может найти --- соответствующие файлы .sty.