
Ich möchte die Anzahl der Zeichen in einem Abschnitt zählen und dann anzeigen, ob dieser Wert unter, innerhalb oder über dem Grenzwert liegt. Ich habe den Code vonDynamisches Zählen und Zurückgeben der Anzahl von Wörtern in einem Abschnitt. Und ich habe Folgendes (kompiliere es mit pdflatex --shell-escape mwe.tex
).
\documentclass{article}
\newcommand{\wordcount}{%
\immediate\write18{texcount -merge -sub=section \jobname.tex | grep "Section" | sed -e 's/+.*//' | sed -n \thesection p > 'count.txt'} \input{count.txt}}
\usepackage{lipsum}
\begin{document}
\section{test1}
\wordcount
\ifnum\wordcount<1000 Below
\ifnum\worcount>2000 Above
\else Inside
foo bar
\section{test2}
\wordcount
foo bar
foo bar
foo bar
\end{document}
Der obige Code funktioniert nicht, da \wordcount
es sich im LaTeX-Sinne nicht wirklich um einen Wert handelt. Gibt es eine Möglichkeit, ihn in einen echten Wert zu übersetzen, damit der Code funktioniert?
Eine andere Lösung wäre die VerwendungUmgebung, die Wörter im Inneren zählt, aber in diesem Fall müsste ich den Wert jedes Zählers speichern und später anzeigen.
Antwort1
Das Perl-Skript TeXcount (http://app.uio.no/ifi/texcount/) gibt eine Wortanzahl Ihres TeX-Dokuments aus, aufgeschlüsselt nach Abschnitten. Ein Beispiel ist unten dargestellt. Sie können die .tex-Datei auch weglassen und ein -help-Flag hinzufügen, um die unzähligen Optionen anzuzeigen.
$ perl texcount.pl paper.tex
File: paper.tex
Encoding: ascii
Words in text: 5824
Words in headers: 22
Words outside text (captions, etc.): 1032
Number of headers: 8
Number of floats/tables/figures: 18
Number of math inlines: 48
Number of math displayed: 0
Subcounts:
text+headers+captions (#headers/#floats/#inlines/#displayed)
90+12+0 (1/0/6/0) _top_
162+1+0 (1/0/1/0) Section: Abstract
751+1+0 (1/0/1/0) Section: Introduction
795+1+0 (1/0/6/0) Section: Methods
3964+2+0 (1/0/20/0) Section: Results \& Discussion
44+1+0 (1/0/0/0) Section: Acknowledgments
0+2+320 (1/9/0/0) Section: Table Legends
18+2+712 (1/9/14/0) Section: Figure Legends