字符计数命令(包括空格) (在背面)

字符计数命令(包括空格) (在背面)

我越来越喜欢 overleaf,现在更喜欢它而不是 vscode 或 vim。我为大学写的很多东西都需要字符数(包括空格)。到目前为止,我一直将其导出为 pdf 并从那里开始计数,但这个过程似乎相当繁琐。我最近找到了一个 overleaf 示例,其中字符数作为命令,但问题是这不包括空格。命令如下:

\newcommand{\quickcharcount}[1]{%
\immediate\write18{texcount -1 -sum -merge -char #1.tex > #1-chars.sum }%
\input{#1-chars.sum}%
}

此外,用于字数统计的包含命令是:

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

因此,我认为获取(近似)字符数(包括计数空格)的最快方法是将字数添加到字符数中。我一直在尝试它在此处描述:

\numexpr \quickwordcount{main} + \quickcharcount{main}

但这只是将单词和字符作为字符串处理并输出总和。

抱歉,这篇文章太长了,让人困惑,但这里是 tl:dr: 有谁知道我是否可以在 Overleaf 中获取包括空格在内的字符数?

谢谢

答案1

这是一个类似于你的方法的想法,但使用egreg的答案从文件读取数字

\documentclass{article}
\newread\tmp

\newcommand{\quickcharcount}[1]{%
  \immediate\write18{texcount -1 -sum -merge -char #1.tex > #1-chars.sum}%
  \openin\tmp=#1-chars.sum%
  \read\tmp to \thechar%
  \closein\tmp%
}

\newcommand{\quickwordcount}[1]{%
  \immediate\write18{texcount -1 -sum -merge #1.tex > #1-words.sum}%
  \openin\tmp=#1-words.sum%
  \read\tmp to \theword%
  \closein\tmp%
}

\begin{document}
\quickwordcount{main}
\quickcharcount{main}

There are \thechar characters and approximately \theword spaces.
That makes approximately \the\numexpr\theword+\thechar\relax\ characters total.

\end{document}

在此处输入图片描述

如果您需要统计多个文件,可以扩展\theword和宏以包含文件名参数,但我在这里将其保持得相当简单。\thechar

答案2

相同的想法,但更简短:

\documentclass{article}

\newcommand{\charactercount}[1]{
\immediate\write18{
    expr `texcount -1 -sum -merge #1.tex` + `texcount -1 -sum -merge -char #1.tex` - 1 
    > chars.txt
}\input{chars.txt}}

\begin{document}
This text contains \charactercount{main} characters.
\end{document}

相关内容