Пакет bookdown: Почему я не могу создать книгу, которую мог раньше, с сообщением об ошибке, связанным с параметром split_by? - PullRequest
2 голосов
/ 01 февраля 2020

Проект R и связанные с ним файлы доступны здесь .

В декабре прошлого года я создал сборник с пакетом bookdown, который вы можете найти в https://bookdown.org/ritsu_kitagawa/_book6/.

Когда я впервые его собрал, не было ошибок, связанных с опцией split_by. Но теперь я получаю сообщение об ошибке, говорящее

Error in split_chapters(output, gitbook_page, number_sections, split_by,  : 
  Automatically generated filenames contain duplicated ones: -, -, -, -, -, -, -, -, -
Calls: <Anonymous> ... <Anonymous> -> <Anonymous> -> split_chapters -> <Anonymous>

, когда я пытался построить ту же книгу.

Мой YAML следующий:

--- 
title: "『Rによる原因を推論する』"
author: "北川 梨津,原 健人"
date: "`r Sys.time()`"
site: bookdown::bookdown_site
output: bookdown::gitbook
documentclass: book
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
github-repo: rstudio/bookdown-demo
description: "久米ゼミのプレゼミのための教材です."
cover-image: "gennin.png"
favicon: "gennin.png"
apple-touch-icon: "gennin.png"
---

Книга написано на японском языке. Я знаю, что могу заставить его быть собранным, если для параметра split_by установить значение none. Мне интересно, почему я не могу создать файл, который мог бы.

Может кто-нибудь сказать мне, почему это происходит? Были какие-нибудь обновления или что-то?

Спасибо.


Вот минимальный рабочий пример . Я не могу построить это тоже. Я получил то же сообщение об ошибке:

Error in split_chapters(output, gitbook_page, number_sections, split_by,  : 
  Automatically generated filenames contain duplicated ones: -
Calls: <Anonymous> ... <Anonymous> -> <Anonymous> -> split_chapters -> <Anonymous>
Execution halted

Exited with status 1.

Ниже приведена информация о моем сеансе:

R version 3.6.2 (2019-12-12)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6

Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8

Package version:
  base64enc_0.1.3 bookdown_0.17   compiler_3.6.2  digest_0.6.24   evaluate_0.14   glue_1.3.1     
  graphics_3.6.2  grDevices_3.6.2 highr_0.8       htmltools_0.4.0 jsonlite_1.6.1  knitr_1.28     
  magrittr_1.5    markdown_1.1    methods_3.6.2   mime_0.9        Rcpp_1.0.3      rlang_0.4.4    
  rmarkdown_2.1   stats_3.6.2     stringi_1.4.5   stringr_1.4.0   tinytex_0.19    tools_3.6.2    
  utils_3.6.2     xfun_0.12       yaml_2.2.1 

Если я включу несколько алфавитов в названия глав, он может быть успешно построен.

1 Ответ

0 голосов
/ 05 мая 2020

Возможно, вы его больше не видели, но я сам пережил ту же проблему и, думаю, нашел решение, поэтому оставляю здесь свой ответ.

В моем случае у меня было несколько глав что я не хотел быть пронумерованным, и когда я пытался создать файлы html из файлов rmd, имена файлов html этих глав были бы "-. html". Итак, как говорится в сообщении об ошибке, «автоматически сгенерированные имена файлов содержат дублированные».

То же самое происходит и тогда, когда заголовки глав или разделов (если вы указали «split_by: section» в части YAML) на японском языке, и все эти имена файлов будут «-.html». Я думаю, что это, вероятно, причина в вашем случае.

В предыдущей версии bookdown каждый файл назывался по-разному в этом случае с сериализованными номерами, такими как "-01.html", "-02.html" и т. П. , Тем не менее, каким-то образом, похоже, что он изменился в текущей версии.

Таким образом, решение этой проблемы заключается в явном добавлении различных тегов для каждого заголовка главы (или раздела), например:

#はじめに {#intro}

Если вы не хотите нумеровать заголовок главы, поставьте перед тегом знак минуса, например:

#はじめに {-#intro}

In в моем случае это решило проблему.

В таком случае это должно работать, если я использовал опцию split_by: section+number в разделе YAML, но это не сработало.

...