% File src/library/tools/man/encoded.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later

\name{encoded_text_to_latex}
\alias{encoded_text_to_latex}
\title{Translate non-ASCII Text to LaTeX Escapes}
\description{
  Translate non-ASCII characters in text to LaTeX escape sequences.
}
\usage{
encoded_text_to_latex(x,
                      encoding = c("latin1", "latin2", "latin9",
                                   "UTF-8", "utf8"))
}
\arguments{
  \item{x}{a character vector.}
  \item{encoding}{the encoding to be assumed.  \code{"latin9"} is
    officially ISO-8859-15 or Latin-9, but known as latin9 to LaTeX's
    \code{inputenc} package.}
}
\details{
  Non-ASCII characters in \code{x} are replaced by an appropriate LaTeX
  escape sequence, or \samp{?} if there is no appropriate sequence.

  Even if there is an appropriate sequence, it may not be supported by
  the font in use.  Hyphen is mapped to \samp{\\-}.
}
\value{
  A character vector of the same length as \code{x}.
}
\seealso{
  \code{\link{iconv}}
}
\examples{
x <- "fa\xE7ile"
encoded_text_to_latex(x, "latin1")
\dontrun{
## create a tex file to show the upper half of 8-bit charsets
x <- rawToChar(as.raw(160:255), multiple = TRUE)
(x <- matrix(x, ncol = 16, byrow = TRUE))
xx <- x
xx[] <- encoded_text_to_latex(x, "latin1") # or latin2 or latin9
xx <- apply(xx, 1, paste, collapse = "&")
con <- file("test-encoding.tex", "w")
header <- c(
"\\\\documentclass{article}",
"\\\\usepackage[T1]{fontenc}",
"\\\\usepackage{Rd}",
"\\\\begin{document}",
"\\\\HeaderA{test}{}{test}",
"\\\\begin{Details}\\\\relax",
"\\\\Tabular{cccccccccccccccc}{")
trailer <- c("}", "\\\\end{Details}", "\\\\end{document}")
writeLines(header, con)
writeLines(paste0(xx, "\\\\\\\\"), con)
writeLines(trailer, con)
close(con)
## and some UTF_8 chars
x <- intToUtf8(as.integer(
    c(160:383,0x0192,0x02C6,0x02C7,0x02CA,0x02D8,
      0x02D9, 0x02DD, 0x200C, 0x2018, 0x2019, 0x201C,
      0x201D, 0x2020, 0x2022, 0x2026, 0x20AC)),
               multiple = TRUE)
x <- matrix(x, ncol = 16, byrow = TRUE)
xx <- x
xx[] <- encoded_text_to_latex(x, "UTF-8")
xx <- apply(xx, 1, paste, collapse = "&")
con <- file("test-utf8.tex", "w")
writeLines(header, con)
writeLines(paste(xx, "\\\\\\\\", sep = ""), con)
writeLines(trailer, con)
close(con)
}}
\keyword{utilities}
