我正在尝试以pgf
原始格式输出一个数字,但我不知道该怎么做,所以任何帮助都将不胜感激。如果你看下面,问题是\roundednumber
扩展为$1,000$
,我想将其扩展为1,000
。我试过使用该xstring
包,但没有成功。
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\usepackage{tikz}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.10}
\usepackage{xstring}
\begin{document}
\pgfkeys{/pgf/fpu=true}
\pgfmathparse{1e9}\pgfmathparse{\pgfmathresult/1e6}
\pgfkeys{/pgf/fpu=false}
\pgfmathprintnumberto{\pgfmathresult}{\roundednumber}
\roundednumber \ 1,000
% \pgfmathparse{\roundednumber}
% \pgfmathparse{\StrBetween{\roundednumber}{$}{$}}
% \pgfmathresult
\end{document}
感谢您的帮助。
附言:如果您知道使用 Libertine 字体打印数字的更好方法,请告诉我。
答案1
您可以使用
\pgfmathprintnumberto[assume math mode=true]{\pgfmathresult}{\roundednumber}
这样可以避免进入数学模式。
更简单的方法是expl3
使用siunitx
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\usepackage{tikz}
\usepackage{xparse,siunitx}
%% if you really want a comma for separating groups
\sisetup{group-separator={,},group-four-digits=true}
\ExplSyntaxOn
\NewDocumentCommand{\printnumber}{m}
{
\num{ \fp_to_decimal:n { #1 } }
}
\ExplSyntaxOff
\begin{document}
\printnumber{1e9/1e6}
\end{document}