Error: Input files not all in same directory, please supply explicit wd

Viewed 743

After trying to build a PDF that worked ~2 weeks ago, no fuss, on a new machine with a fresh install of R, R studio, bookdown, etc, I have this error:

Error: Input files not all in same directory, please supply explicit wd

I have chapters of .Rmd files sorted into directories, and so if I change rmd_subdir from true to false, the error goes away, but... I just can't work with 100+ chapters containing 4-7 each scenes in the root of the project; I'll go insane.

I have new_session: no in my _bookdown.yml, but that's not helping matters.

I don't know enough about R to even begin to diagnose this - Google returns 4 (!) results and all of them are source code. As such, I'm not sure which files to include here, so please let me know, and I'll paste them in.

How I Build

I press the button that says Build Book in RStudio, and it ticks along and exits with status 1 and the above error after a moment.

The exact error message

==> rmarkdown::render_site(output_format = 'bookdown::gitbook', encoding = 'UTF-8')



processing file: book-book.Rmd
  |......................................................................| 100%
  ordinary text without R code


output file: book-book.knit.md

Error: Input files not all in same directory, please supply explicit wd
Execution halted

Exited with status 1.

index.Rmd

---
title: "F"
author: "TTil"
site: bookdown::bookdown_site
fontsize: 10pt
geometry: paperwidth=6in,paperheight=9in,margin=0.5in,heightrounded,twoside,includehead,includefoot,heightrounded
output:
  bookdown::gitbook:
    split_by: section
    config:
      toolbar:
        position: static
  bookdown::pdf_book:
    keep_tex: yes
    latex_engine: lualatex
    includes:
      in_header: preamble.tex
      before_body: before_body.tex
documentclass: book
link-citations: yes
linestretch: 1.15
links-as-notes: true
mainfont: "Inter"
---

_bookdown.yml

book_filename: 'book-book'
language:
  ui:
    chapter_name: ''
delete_merged_file: true
new_session: no
rmd_subdir: true

# Before We Begin {-}

test test replace me

My file structure looks like this:

index.Rmd
  - part-1/
     - ch01/
       - sc01.Rmd
       - sc02.Rmd
       ...
     - ch02/
     ...
  - part-2/
  ... 

and thus I expect sc01.Rmd and sc02.Rmd to become Chapter One, and then it and its siblings to be Part One, and so on and so forth for Part Two, Part Three, ...

As I've said above, this PDF was working as-is 2 weeksish ago (albeit on a different machine).

Cheers.

3 Answers

Update: This has been fixed in the dev version of bookdown: https://github.com/rstudio/bookdown You can install it via remotes::install_github('rstudio/bookdown').


This might be related to a recent feature in bookdown. Since you didn't provide a reproducible example, my blind guess is that setting options(bookdown.render.file_scope = FALSE) might fix it. You can set this option in either your Rmd document or ~/.Rprofile.

Just something complementary to Yihui's answer. If I added the line options(bookdown.render.file_scope = FALSE) to the R markdown file, it did not work. It worked great if this line was added to the ~/.Rprofile file.

Similar problem: the command Rscript -e "bookdown::render_book(input='index.Rmd', output_format='bookdown::gitbook', config_file='_py-rse.yml')" runs fine from the command-line with bookdown 0.19, but fails with bookdown 0.20 (installed today), giving the message Error: Input files not all in same directory, please supply explicit wd. The configuration file _py-rse.yml (below) does indeed have files in multiple directories - we have to do this because we are building several books in the same project (that share some chapters and appendices). I'll try again with the next update to bookdown; if the bug persists, I'll try to create a reprex.

book_filename: "py-rse"
language:
  label:
    fig: "Figure "
    tab: "Table "
  ui:
    chapter_name: "Chapter "
output_dir: "_book/py-rse"
delete_merged_file: false
rmd_files:
  - index.Rmd
  - py-rse/bash-basics.Rmd
  - py-rse/bash-advanced.Rmd
  - py-rse/scripting.Rmd
  - py-rse/git-cmdline.Rmd
  - py-rse/git-advanced.Rmd
  - py-rse/automate.Rmd
  - py-rse/config.Rmd
  - py-rse/errors.Rmd
  - py-rse/teams.Rmd
  - py-rse/style.Rmd
  - py-rse/project.Rmd
  - py-rse/testing.Rmd
  - py-rse/packaging.Rmd
  - py-rse/publish.Rmd
  - py-rse/finale.Rmd

  # End files
  - appendix.Rmd
  - LICENSE.md
  - CONDUCT.md
  - CONTRIBUTING.md
  - gloss.md
  - py-rse/install.Rmd
  - py-rse/objectives.Rmd
  - py-rse/keypoints.Rmd
  - py-rse/solutions.Rmd
  - py-rse/yaml.Rmd
  - py-rse/ssh.Rmd
  - references.Rmd
  - links.md
Related