Recently I received a few bug reports about the PDF generation in R Markdown. Eventually I figured out one of the reasons: spaces in filenames. For example, in rstudio/rmarkdown#1285, xelatex failed to compile the .tex file because there was a space in a folder name (but pdflatex succeeded). From this issue, you can also see how many replies it takes to get a reproducible example.
I had been bothered by spaces for long enough before (not only in LaTeX), so I had developed a habit of not using spaces in any of my filenames. When I need to separate words, I always use dashes (-) instead of other characters such as underscores (_) or dots (.). I have no idea why spaces are bad in file paths in LaTeX. In HTML, spaces in file paths are often encoded to %20. In command line, when a path contains spaces, it has to be quoted (e.g., rm "abc def.txt"). For underscores, they are special characters in LaTeX (e.g., in the math mode, an underscore indicates a subscript). By comparison, dashes are much safer everywhere, and they are not special characters in HTML or LaTeX.
For the same reason, I always recommend knitr and R Markdown users to use dashes in chunk labels instead of spaces or underscores, e.g., this is good:
```{r, hello-world, fig.width=8}
```
These could be bad chunk labels:
```{r, hello world, fig.width=8}
```
```{r, hello_world, fig.width=8}
```
Chunk labels will be used to name figure files (if any plots are generated in the code chunk), so you have to use more portable characters in the labels. Usually I only use letters a-z, A-Z, numbers 0-9, and dashes. If your code chunk won’t generate any plots, it should not matter which characters you used in the label, and knitr itself puts no restrictions on that.
Sigh. Technology.

Donate
As a freelancer (currently working as a contractor) and a dad of three kids, I truly appreciate your donation to support my writing and open-source software development! Your contribution helps me cope with financial uncertainty better, so I can spend more time on producing high-quality content and software. You can make a donation through methods below.
-
Venmo:
@yihui_xie, or Zelle:xie@yihui.name -
Paypal
-
If you have a Paypal account, you can follow the link https://paypal.me/YihuiXie or find me on Paypal via my email
xie@yihui.name. Please choose the payment type as “Family and Friends” (instead of “Goods and Services”) to avoid extra fees. -
If you don’t have Paypal, you may donate through this link via your debit or credit card. Paypal will charge a fee on my side.
-
-
Other ways:
WeChat Pay (微信支付:谢益辉) Alipay (支付宝:谢益辉) 

When sending money, please be sure to add a note “gift” or “donation” if possible, so it won’t be treated as my taxable income but a genuine gift. Needless to say, donation is completely voluntary and I appreciate any amount you can give.
Please feel free to email me if you prefer a different way to give. Thank you very much!
I’ll give back a significant portion of the donations to the open-source community and charities. For the record, I received about $30,000 in total (before tax) in 2024-25, and gave back about $15,000 (after tax).