Một ví dụ sử dụng siunitxlink to pdf. Trong phần mở đầu, bạn có thể xác định các tùy chọn mặc định mà bạn có thể ghi đè sau trong tài liệu.
Đối với đầu ra số:
num <- function(x,round_precision=NULL)
{
if (is.null(round_precision)) {
return(sprintf("\\num{%s}", x))
} else {
return(sprintf("\\num[round-precision=%s]{%s}",round_precision, x))
}
}
Đối với đầu ra khoa học:
sci<- function(x,round_precision=NULL){
if (is.null(round_precision)) {
return(sprintf("\\num[scientific-notation = true]{%s}", x))
} else {
return(sprintf("\\num[round-precision=%s,scientific-notation = true]{%s}",round_precision, x))
}
}
Đây là một tái sản xuất đầy đủ kịch bản .Rnw (được sử dụng với knitr ... cho sweave sử dụng bốn antislashes trong các chức năng thay vì hai xem này SO post.)
\documentclass[a4paper]{article}
\usepackage{siunitx}
%\usepackage{Sweave}
\title{siunitx}
\sisetup{
round-mode = figures,
round-precision = 3,
group-separator = \text{~}
}
\begin{document}
\maketitle
<<sanitize_number,echo=FALSE>>=
num <- function(x,round_precision=NULL)
{
if (is.null(round_precision)) {
return(sprintf("\\num{%s}", x))
} else {
return(sprintf("\\num[round-precision=%s]{%s}",round_precision, x))
}
}
sci<- function(x,round_precision=NULL){
if (is.null(round_precision)) {
return(sprintf("\\num[scientific-notation = true]{%s}", x))
} else {
return(sprintf("\\num[round-precision=%s,scientific-notation = true]{%s}",round_precision, x))
}
}
@
Examples :\\
$num$ for number formatting :
\begin{itemize}
\item \textbf{num(pi, round\_precision=2)} $\Rightarrow$
\num[round-precision=2]{3.14159265358979}
\item \textbf{num(pi, round\_precision=4)} $\Rightarrow$
\num[round-precision=4]{3.14159265358979}
\item The default formatting (here round-precision=3) is taken from
\textbf{\textbackslash sisetup}
\textbf{num(pi)} $\Rightarrow$ \num{3.14159265358979}\\
\end{itemize}
\noindent $sci$ for scientific notation :
\begin{itemize}
\item \textbf{sci(12.5687e4)} $\Rightarrow$ \num[scientific-notation =
true]{125687}
\item \textbf{sci(125687.11111)} $\Rightarrow$
\num[scientific-notation = true]{125687.11111}
\item \textbf{sci(125687.11111, round\_precision=4)} $\Rightarrow$
\Sexpr{sci(125687.11111, round_precision=4)}
\end{itemize}
\end{document}
Chết tiệt, đánh tôi với câu trả lời giống hệt mà tôi đã sẵn sàng. :) –
Đã thay đổi chức năng cũng bao gồm 0 và các trường hợp âm. –
@ Sacha.Thú vị và hữu ích. Cảm ơn rất nhiều và 1 phiếu bầu. – yCalleecharan