Package 'thaipdf'

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

Help Index


Convert R Markdown to a PDF book with Thai Language Compatibility

Description

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().

Usage

thaipdf_book(...)

Arguments

...

Arguments to pass to bookdown::pdf_book(), and then to thaipdf_document(). You may supply argument thai_font and line_spacing in here.

Value

An S3 object of class "rmarkdown_output_format" to pass to rmarkdown::render()

See Also

Examples

## 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)

Convert to a PDF/LaTeX document with Thai Language Compatibility

Description

Thai language supported conversion of R Markdown to a PDF or LaTeX document. It is a wrapper around rmarkdown::pdf_document().

Usage

thaipdf_document(thai_font = "TH Sarabun New", line_spacing = 1.5, ...)

Arguments

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 pdf_document(). You may supply any valid arguments of pdf_document() except for includes and latex_engine.

Details

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".

Value

An S3 object of class "rmarkdown_output_format" to pass to rmarkdown::render()

See Also

Examples

## 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)

Create a LaTeX Preamble for Thai Language in R Markdown

Description

This function creates LaTeX preamble file needed to render Thai language in R Markdown to a PDF document.

Usage

use_thai_preamble(
  name = "thai-preamble.tex",
  thai_font = "TH Sarabun New",
  line_spacing = 1.5,
  open = FALSE,
  overwrite = FALSE
)

Arguments

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-preamble.tex.

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 .tex to open.

overwrite

(Logical) If file already exist, do you want to overwrite?

Details

Here is the steps:

  1. Call use_thai_preamble(). You can set other file name by name argument and Thai font to use by thai_font argument.

  2. 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).

  3. Write some Thai language in R Markdown then knit to PDF. It's DONE!

Value

(Invisible) A path to LaTeX preamble being created.

Examples

## 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)