LaTeX: Drucken der Wortanzahl eines imaginären Abschnitts

LaTeX: Drucken der Wortanzahl eines imaginären Abschnitts

Ich möchte die Wortanzahl in einem Abschnitt eines Dokuments ausdrucken. Abschnitt bedeutet jedoch nicht \Abschnitt{...}. Es bedeutet lediglich eine beliebige Sammlung von Absätzen. Die Wortanzahl sollte Bildunterschriften und Fußnoten ausschließen.

\begin{document}

stuff

% start word count

paragraph #1 \footnotes{...}

\begin{figures}...\end{figures}

paragraph #2

% end word count

\wordcount 
% or some other command that prints the word count

other stuff

\end{document}

Benutze ich irgendeinen Container? Das LaTeX-Äquivalent von Div-Tags? Oder verwende ich weiterhin \section{...}, unterdrücke aber die Abschnittsüberschrift?

Eine Lösung wäre sehr willkommen!

Antwort1

Dies kann erfolgen mitTeXcount, ein Perl-Skript. Sie haben es wahrscheinlich als Teil der TeX-Installation zur Verfügung, oder es befindet sich auf der Web-Seite zusammen mit einer Online-Webanwendung, die Sie ausprobieren können.

TeXcount setzt Haltepunkte, für die Unterzählungen generiert werden.

Standardmäßig sind in allen Kapitel-/Abschnittsüberschriften Haltepunkte gesetzt, die Sie deaktivieren müssen: Verwenden Sie die Befehlszeilenoption -sub=nonefür das Skript oder wählen SieUnterzählungen: Keineim Webinterface.

Haltepunkte können in das Dokument eingefügt werden, indem man TeX-Kommentarzeilen auf dem Formular verwendet.

%TC:break breakpoint-title

Dort geben Sie Ihren eigenen Breakpoint-Titel ein (Leerzeichen erlaubt), wodurch eine neue Unterzählung gestartet wird.

Eine Alternative besteht darin, ein Makro zu definieren, z. B. \CountSection, das ein einzelnes Argument annimmt (das der Titel des Haltepunkts sein wird) und anzugeben, dass TeXcount dort einen Haltepunkt einfügen soll:

%TC:breakmacro \CountSection countsection

wobei countsectiones sich um eine beliebige nicht leere Zeichenfolge (ohne Leerzeichen) handelt, die nur dem Titel vorangestellt wird, um anzugeben, um welche Art von Zählung es sich handelt. Dies erfordert weiterhin die -sub=noneOption.

Probieren Sie es aus auf derInternetanwendungzuerst. Sie müssen kein komplettes Dokument eingeben, ein Codefragment genügt.


Ich möchte das näher ausführen und in den Kommentaren auf Fragen antworten: Erstens ein Beispiel, wie man die Unterzählungen mit Ausgabe auf der Konsole zum Laufen bringt; zweitens, wie man die Zählungen in das Dokument einbindet.

TeXcount verwendet Haltepunkte, um die Zählungen in Teilzählungen aufzuteilen. Es gibt keine „Endhaltepunkte“: Eine Teilzählung wird bis zum nächsten Haltepunkt fortgesetzt.

Wenn Sie andererseits Teile des Dokuments bei der Zählung wirklich ignorieren und nicht in mehrere Segmente aufteilen möchten, können Sie Segmente, die ignoriert werden sollen, markieren mit

%TC:ignore
...
%TC:endignore

Es gibt zwei Möglichkeiten, Haltepunkte einzufügen, um das Dokument in Unterzählungsbereiche aufzuteilen: entweder indem Sie mithilfe der %TC:breakpointAnweisung explizit einen Haltepunkt im Dokument festlegen oder indem Sie Makros angeben, die automatisch einen Haltepunkt setzen. Standardmäßig ( -sub=section) fügt TeXcount Haltepunkte bei \chapter, \section, usw. ein; die Verwendung der Option -sub=nonevermeidet dies. Sie können dann die %TC:breakmacroAnweisung verwenden, um andere Makros anzugeben, die einen Haltepunkt setzen sollen.

Hier ist ein kurzes Beispiel, das kein vollständiges Dokument, sondern nur ein Codefragment ist:

%% Use \CountSection to set subcount breakpoints
\newcommand\CountSection[1]{}  % No output in document

% Set macro handling rule: ignore text in argument
%TC:macro \CountSection [ignore]

% Specify that \CountSection sets a new breakpoint
%TC:breakmacro \CountSection Subcount


Any text occurring before a breakpoint will be part of the initial subcount
named \textit{top}.

\CountSection{First count section}

This text will be counted as part of the subcount labeled \textit{First count
section}, which will continue until the next breakpoint.

\CountSection{Second count section}

This will be counted as another subcount.

%TC:break Subcount text at the end

This will be the final subcount induced by an explicit breakpoint.

Sie können versuchen, es über TeXcount auf Ihrem eigenen Computer oder in der Online-Webanwendung auszuführen und dann auszuprobieren, wie es funktioniert. Wenn Sie \sectiondem Code Makros hinzufügen, werden diese zusätzliche Haltepunkte hinzufügen, sofern Sie nicht angeben -sub=none. Übrigens -subist nur die Abkürzung für -subcountund wird nur verwendet, um zwischen einigen Alternativen für anfängliche Haltepunktmakros zu wählen, nicht, um eigene anzugeben.

TeXcount gibt die Zählungen (und andere Ausgaben) standardmäßig auf der Konsole aus. Sie können die Ausgabe stattdessen auch in eine Datei schreiben, was häufig nützlich ist, um die Ausgabe entweder in das Dokument zu importieren oder wenn Sie die Ausgabe als HTML schreiben.

Es gibt ein paar Tricks, um die Zählung wieder in das Dokument zu importieren. Alle diese Tricks erfordern, dass TeXcount die Ausgabe in eine Datei schreibt und diese Datei dann in das Dokument importiert. Es gibt einigeInfos dazu in den TeXcount-FAQ, und einBeispiel auf StackExchange. Es ist möglich, das Format der Ausgabe mithilfe von Vorlagen anzupassen (StackExchange-Beispiel), aber das ist etwas fortgeschrittener, und Sie sollten das Zählen richtig beherrschen, bevor Sie damit beginnen.

verwandte Informationen