Problem with ligatures in Rmarkdown / bookdown pdf output - r-markdown

In my Rmarkdown project, I'm having trouble in correctly exporting ligatures in PDF file.
font-config.tex file -
\usepackage{fontspec}
\setmainfont{Noto Sans}
YAML front-matter in Rmd file -
---
title: "test"
author: "author"
date: "22/02/2021"
output:
pdf_document:
latex_engine: xelatex
includes:
in_header: font-config.tex
---
The following text is in hindi language.
गुरु
Output shown in PDF -
Output expected -
The Nakula font is correctly displayed, but it does not have bold-face type font.
The Noto Sans font I'm using works fine in html output, but have problem with ligature in PDF output.
I tried, the pandoc documentation and other similar questions on stackoverflow and tex.stackexchange, but no luck.
I'm new to TeX, and hopefully it has a very simple solution.

This may work for you, following the information given here:
---
title: "Hindi"
author: "bttomio"
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \usepackage{fontspec}
- \setmainfont{Noto Sans}
- \usepackage{polyglossia}
- \setdefaultlanguage{hindi}
- \setotherlanguage{english}
- \newfontfamily\devanagarifont[Scale=MatchUppercase]{Nakula}
- \newfontfamily\devtransl[Mapping=DevRom]{Times New Roman}
---
The following text is in hindi language.
गुरु
-output

Related

When I use RStudio to Generate PDF File,I Met this Error :! Missing number, treated as zero

When I use RStudio to Generate PDF File,I Met this Error :
Missing number, treated as zero.
<to be read again>
(
l.349 \begin
{minipage}[b]{\linewidth}\raggedright
错误: LaTeX failed to compile bookdown.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See bookdown.log for more info.
停止执行
When I open the tex file:
\begin{minipage}[b]{\linewidth}\raggedright
独立性和可持续性
\end{minipage}
the Rmd file is
---
CJKmainfont: PingFangSC-Regular
fontsize: "12pt"
indent: true
header-includes:
- \usepackage{xeCJK}
output:
pdf_document:
keep_tex: yes
latex_engine: xelatex
toc: yes
toc_depth: 1
template: latex/template.tex
documentclass: ctexbook
link-citations: yes
geometry: [b5paper, tmargin=2.5cm, bmargin=2.5cm, lmargin=3.5cm, rmargin=2.5cm]
colorlinks: yes
---
latex/template.tex:
https://github.com/yihui/bookdown-chinese/blob/master/latex/template.tex
How can I fix it? if I comment the code (#template:latex/template.tex) the Errors would be gone
You will successfully render the following Rmd to a pdf without any error.
Although #Stéphane Laurent commented here that you may need to add a diameter to \linewidth, I do not think that is cause of the problem you faced, since the Rmd below using \linewidth, not 1\linewidth, works fine.
The real problem may lay in other parts of your Rmd file, I suspect. However, you must post a reproducible example like the one I show in this answer, as I commented here, and present the contents of the .log file that is created when you knit your Rmd file.
---
header-includes:
- \usepackage{ctex}
output:
pdf_document: default
---
\begin{minipage}[b]{\linewidth}\raggedright
独立性和可持续性
\end{minipage}

How to have roboto font in bookdown::pdf_document2?

Anyone suggestions on how to get roboto font in bookdown::pdf_document2?
The code below works fine, when I change the font to Roboto it does not, see also picture. The Roboto and the Comic Sans MS font are in my c:\Windows\Fonts, I use Miktex for pdf-ing. Thanks!
---
header-includes:
- \usepackage{fontspec}
- \setmainfont{Comic Sans MS}
output:
bookdown::pdf_document2:
toc: false
latex_engine: xelatex
---
# Title
This is some text.
This is some more text.
You can do \usepackage{roboto}. See README of the package for further detailed usage. If you knit the document without roboto package, programmes for knitting documents using LaTeX (e.g. R's tinytex or even MikTeX) will automatically install the missing package(s). See the relevant page of R Markdown Cookbook.
To make specific texts san serif
---
header-includes:
- \usepackage{roboto}
# - \usepackage[sfdefault]{roboto} # To make every texts san serif
output:
bookdown::pdf_document2:
toc: false
latex_engine: xelatex
---
# Title
This is some text.
This is some more text.
`\textsf{This is a san serif text.}`{=latex}
To make every texts san serif
---
header-includes:
#- \usepackage{roboto}
- \usepackage[sfdefault]{roboto} # To make every texts san serif
output:
bookdown::pdf_document2:
toc: false
latex_engine: xelatex
---
# Title
This is some text.
This is some more text.
`\textsf{This is a san serif text.}`{=latex}

How to print special Latin characters in Markdown pdfs

I need to knit my Markdown script into a pdf file, but when knitted, the pdf file does not show special Latin characters, such as those used in the International Phonetic Alphabet (IPA).
---
title: "MarkdownIPA"
date: '2022-07-06'
output:
pdf_document:
latex_engine: xelatex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
`Print IPA`
```{r}
'[aɪ.pʰiː.ɛɪ]'
```
Which rends:
How can I fix this?
You'll need to use a font that supports those glyphs. A (IMHO) rather nice one is Source Sans Pro and the monospace variant Source Code Pro.
To use Source Code Pro, you can add the respective LaTeX code directly:
---
title: "MarkdownIPA"
date: '2022-07-06'
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \usepackage{sourcecodepro}
---
Result:
The sourcecodepro package is likely already installed; otherwise you'd have to install it first.

R Markdown + bib file: unused argument error

My .rmd file fails to compile when including citations as a .bib file.
I attached the code and error message here and very appreciate if someone could help.
The indentation of the YAML options is important. You currently have bibliography within the output section, but it should be placed in as a top-level YAML.
title: "Title"
author: "Author"
output:
pdf_document:
keep_tex: true
bibliography: bib.bib
Edit: Make sure you have moved the bibliography out of the pdf_document options completely, as follows:
author: "Author"
output:
pdf_document:
keep_tex: true
fig_caption: yes
number_sections: yes
bibliography: bib.bib
---

How to add an index to a PDF rendered from an Rmarkdown document using Rstudio on Windows?

The example document below is intended to include an index after the appendix. In a Sweave document, Rstudio would run a shell escape command to create the index .idx file, but I've not been able to find a way to do this for an Rmarkdown document. Is there a simple header command I'm missing?
---
title: "Untitled"
output:
pdf_document:
toc: yes
header-includes:
- \usepackage{makeidx}
- \makeindex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
# R Markdown
This is an \index{R Markdown} R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
# Appendix - A
End of the document
\printindex
I've tried this from both the Knit button and using:
rmarkdown::render(rmd.file, output_format = "pdf_document", clean = FALSE)
I'm looking for a solution that can run as part of an automated process.
UPDATE:
I was able to get the index to work by changing the output type to bookdown::pdf_document2. The additional latex packages were required for a combination of indexing, cross referencing, and formatting.
---
title: "Untitled"
output:
bookdown::pdf_document2:
toc: no
geometry: margin=0.8in
header-includes:
- \usepackage{attachfile2}
- \usepackage{booktabs}
- \usepackage{caption}
- \usepackage{float}
- \usepackage[utf8]{inputenc}
- \usepackage{makeidx}
- \makeindex
- \usepackage{multirow}
- \usepackage{setspace}
- \usepackage{relsize}
- \usepackage[table]{xcolor}
- \setcounter{tocdepth}{5}
- \setcounter{secnumdepth}{0}
- \hypersetup{unicode=true,pdfusetitle,bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,breaklinks=false,backref=false,colorlinks=true,linkcolor=blue}
---
While this would work when manually pushing the create PDF button, the call to rmarkdown::render() still does not process the indexing.