bookdown: ошибка LaTeX: конфликт параметров для гиперссылки пакета

Я знаю, что решение «Ошибка LaTeX: конфликт параметров для гиперссылки пакета» находится в https://tex.stackexchange.com/questions/279964/option-clash-for-package-hyperref Я использовал другой шаблон tex 'sjtuthesis.cls', который использовал пакет hyperref as,

./sjtuthesis.cls:83:\RequirePackage[xetex, bookmarksnumbered, colorlinks, urlcolor=black, linkcolor=black, citecolor=black, plainpages=false, pdfstartview=FitH]{hyperref}

Но bookdown также автоматически добавит пакет hyperref. В сгенерированном файле bookdown.tex с помощью https://github.com/rstudio/bookdown/tree/master/inst/examples

./_book/bookdown.tex:25:\usepackage[unicode=true]{hyperref}
./_book/bookdown.tex:26:\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref

поэтому две строки гиперссылки конфликтуют. Я имею в виду, как избежать конфликта пакетов между пользовательским шаблоном tex и внутренним пакетом bookdown? Как изменить файл rmd? кто-нибудь может мне помочь, спасибо.


person bubifengyun    schedule 28.05.2018    source источник


Ответы (1)


К сожалению, довольно часто случается так, что данный класс плохо работает вместе с шаблоном LaTeX по умолчанию, используемым rmarkdown. Вы должны написать свой собственный шаблон, c.f. Ошибка компиляции Rmd в PDF: геометрия пакета \paperwidth (0.0pt) слишком короткий.

person Ralf Stubner    schedule 28.05.2018
comment
Я знал причину. У меня было template:null в _out.yaml. - person bubifengyun; 28.05.2018
comment
Я знал причину. Я установил template:null в _out.yaml. Таким образом, rmarkdown использует default.tex, который включает '\usepackage[unicode=true]{hyperref}'. Мне просто нужно написать свой собственный template.tex вместо default.tex. теперь работает, спасибо. - person bubifengyun; 28.05.2018
comment
это безумие. как может RMarkdown утверждать, что он работает прямо из коробки, а затем не может скомпилироваться со своим собственным шаблоном? - person invictus; 06.04.2020
comment
@invictus R Markdown работает «из коробки», используя классы LaTeX по умолчанию. Пользовательские классы LaTeX могут быть очень разными. Меня не удивляет, что шаблон по умолчанию, который на самом деле предоставляется pandoc, не справляется со всеми из них. - person Ralf Stubner; 06.04.2020