如何在 Latex 字数统计中包含逗号分隔符?

如何在 Latex 字数统计中包含逗号分隔符?

我在 Latex 中有一个基于代码的字数统计命令,效果很好这里。但是,我希望输出数字以逗号分隔(例如,1,000 而不是 1000)。我尝试使用\numprint和,\siunitx但它们会出错,大概是因为它们只能应用于数字而不能应用于命令。这是我的代码:

\documentclass{article}

\usepackage{verbatim}
\usepackage{lipsum}

\newcommand{\quickwordcount}[1]{%
  \immediate\write18{texcount -0 -sum -merge -q #1.tex > #1-words.sum}%
  \input{#1-words.sum}%
}

\begin{document}

There are \quickwordcount{main}words in this document.

\end{document}

当然,在这个例子中只有 6 个单词,但我不想添加 1,000 个单词只是为了显示“1000”。我如何才能显示以逗号分隔千位的输出?

答案1

我认为你应该能够使用建议的解决方案这里

\documentclass{article}
\usepackage{siunitx}

\ExplSyntaxOn
\NewDocumentCommand { \quickwordcount } { O{} m } {
    \immediate\write18{texcount ~ -0 ~ -sum ~ -merge ~ -q ~ #2.tex ~ > ~ #2-words.sum}
    \file_get:nnN { #2-words.sum } { } \l_tmpa_tl
    \num[#1]{ \l_tmpa_tl }
}
\ExplSyntaxOff

\begin{document}

There are \quickwordcount[group-separator={,}, group-minimum-digits=4]{main} words in this document.

\end{document}

以下解决方案也应该有效:

\documentclass{article}
\usepackage{siunitx}

\ExplSyntaxOn
\NewDocumentCommand { \quickwordcount } { O{} m } {
    \immediate\write18{texcount ~ -0 ~ -sum ~ -merge ~ -q ~ #2.tex ~ > ~ #2-words.sum}
    \ior_open:Nn \g_tmpa_ior { #2-words.sum }
    \ior_str_get:NN \g_tmpa_ior \l_tmpa_tl
    \num[#1]{ \l_tmpa_tl }
    \ior_close:N \g_tmpa_ior
}
\ExplSyntaxOff

\begin{document}

There are \quickwordcount[group-separator={,}, group-minimum-digits=4]{main} words in this document.

\end{document}

在此处输入图片描述

请注意,您不会计算使用类似生成的单词\lipsum,因为texcount无法扩展 TeX 宏。

相关内容