我越来越喜欢 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}