Title: | R Markdown to PDF in Thai Language |
---|---|
Description: | Provide R Markdown templates and LaTeX preamble which are necessary for creating PDF from R Markdown documents in Thai language. |
Authors: | Kittipos Sirivongrungson [aut, cre], Dittaya Wanvarie [cph] (Author of an article on Thai language typesetting in LaTeX) |
Maintainer: | Kittipos Sirivongrungson <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.2.9000 |
Built: | 2025-02-18 03:55:46 UTC |
Source: | https://github.com/lightbridge-ks/thaipdf |
Thai language supported conversion of R Markdown to a PDF after resolving the special tokens of bookdown (e.g., the tokens for references and labels) to native LaTeX commands.
It is a wrapper around bookdown::pdf_book()
with argument base_format
set to thaipdf_document()
.
thaipdf_book(...)
thaipdf_book(...)
... |
Arguments to pass to |
An S3 object of class "rmarkdown_output_format" to pass to rmarkdown::render()
How to use bookdown::pdf_book()
, please see official documentation
How to use thaipdf_document()
.
## Not run: library(rmarkdown) # Simple Conversion render("input.Rmd", output_format = thaipdf::thaipdf_book()) # Render with Thai font "Laksaman" and font size 10pt render("input.Rmd", output_format = thaipdf::thaipdf_book( thai_font = "Laksaman", # you must have this font in your system pandoc_args = pandoc_metadata_arg("fontsize", "10pt") )) ## End(Not run)
## Not run: library(rmarkdown) # Simple Conversion render("input.Rmd", output_format = thaipdf::thaipdf_book()) # Render with Thai font "Laksaman" and font size 10pt render("input.Rmd", output_format = thaipdf::thaipdf_book( thai_font = "Laksaman", # you must have this font in your system pandoc_args = pandoc_metadata_arg("fontsize", "10pt") )) ## End(Not run)
Thai language supported conversion of R Markdown to a PDF or LaTeX document.
It is a wrapper around rmarkdown::pdf_document()
.
thaipdf_document(thai_font = "TH Sarabun New", line_spacing = 1.5, ...)
thaipdf_document(thai_font = "TH Sarabun New", line_spacing = 1.5, ...)
thai_font |
(Character) Name of the Thai font to use. Default font is "TH Sarabun New". It can be any Thai font that installed in your system. |
line_spacing |
(Numeric) Spacing between each line. Line spacing 1.5 is recommended for Thai language (default). |
... |
Arguments to pass to |
To achieve Thai language compatibility for LaTeX,
This function injects preamble fragment of Thai LaTeX typesetting into the preamble of output LaTeX via includes
argument,
and set latex_engine
to "xelatex".
An S3 object of class "rmarkdown_output_format" to pass to rmarkdown::render()
How to use rmarkdown::pdf_document
, please see official documentation.
How to use thaipdf_book()
.
## Not run: library(rmarkdown) # Simple Conversion render("input.Rmd", output_format = thaipdf::thaipdf_document()) # Render with Thai font "Laksaman", font size 10pt, enable table of contents render("input.Rmd", output_format = thaipdf::thaipdf_document( thai_font = "Laksaman", # you must have this font in your system toc = TRUE, pandoc_args = pandoc_metadata_arg("fontsize", "10pt") )) ## End(Not run)
## Not run: library(rmarkdown) # Simple Conversion render("input.Rmd", output_format = thaipdf::thaipdf_document()) # Render with Thai font "Laksaman", font size 10pt, enable table of contents render("input.Rmd", output_format = thaipdf::thaipdf_document( thai_font = "Laksaman", # you must have this font in your system toc = TRUE, pandoc_args = pandoc_metadata_arg("fontsize", "10pt") )) ## End(Not run)
This function creates LaTeX preamble file needed to render Thai language in R Markdown to a PDF document.
use_thai_preamble( name = "thai-preamble.tex", thai_font = "TH Sarabun New", line_spacing = 1.5, open = FALSE, overwrite = FALSE )
use_thai_preamble( name = "thai-preamble.tex", thai_font = "TH Sarabun New", line_spacing = 1.5, open = FALSE, overwrite = FALSE )
name |
(Character) Thai LaTeX preamble file name or path of file to create, which can be relative path or absolute path. Default value is |
thai_font |
(Character) Name of the Thai font to use. Default font is "TH Sarabun New". It can be any Thai font that installed in your system. |
line_spacing |
(Numeric) Spacing between each line. Line spacing 1.5 is recommended for Thai language (default). |
open |
(Logical) Open the newly created file for editing? Using default editor of |
overwrite |
(Logical) If file already exist, do you want to overwrite? |
Here is the steps:
Call use_thai_preamble()
. You can set other file name by name
argument and Thai font to use by thai_font
argument.
Follow the instructions printed to R console.
File thai-preamble.tex
should be created in the current working directory (by default).
(If not already) Create R Markdown file with pdf_document:
or bookdown::pdf_document2
format.
Modify YAML header in pdf_document:
or bookdown::pdf_document2
option. Set latex_engine
to xelatex
and set to include path to the LaTeX preamble file.
Add LaTeX macro \sloppy
to the beginning of the body of R Markdown (just after YAML header).
Write some Thai language in R Markdown then knit to PDF. It's DONE!
(Invisible) A path to LaTeX preamble being created.
## Not run: # Running this will write `thai-preamble.tex` to your working directory use_thai_preamble() # Write `thai-preamble.tex` under pre-tex/ directory (a directory must exist) use_thai_preamble(name = "pre-tex/thai-preamble.tex") # Specify Thai font to use use_thai_preamble(thai_font = "Laksaman") ## End(Not run) # Example .old_wd <- setwd(tempdir()) use_thai_preamble() setwd(.old_wd)
## Not run: # Running this will write `thai-preamble.tex` to your working directory use_thai_preamble() # Write `thai-preamble.tex` under pre-tex/ directory (a directory must exist) use_thai_preamble(name = "pre-tex/thai-preamble.tex") # Specify Thai font to use use_thai_preamble(thai_font = "Laksaman") ## End(Not run) # Example .old_wd <- setwd(tempdir()) use_thai_preamble() setwd(.old_wd)