Gostaria de imprimir a contagem de palavras em uma seção de um documento. Entretanto seção não significa \section{...}. Significa apenas uma coleção arbitrária de parágrafos. A contagem de palavras deve excluir legendas e notas de rodapé.
\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}
Devo usar algum tipo de contêiner? Equivalente em LaTeX de tags div? Ou ainda uso \section{...} mas suprimo o título da seção?
Uma solução será muito apreciada!
Responder1
Isso pode ser feito usandoTeXcount, que é um script Perl. Você provavelmente o tem disponível como parte da instalação do TeX ou pode ser encontrado no site junto com um aplicativo da web on-line que você pode experimentar.
TeXcount define pontos de interrupção para os quais as subcontas são geradas.
Os pontos de interrupção são definidos por padrão em todos os cabeçalhos de capítulo/seção, que você teria que desligar: use a opção de linha de comando -sub=none
para o script ou escolhaSubcontas: Nenhumana interface web.
Os pontos de interrupção podem ser inseridos no documento usando linhas de comentários TeX no formulário
%TC:break breakpoint-title
onde você insere seu próprio título de ponto de interrupção (espaços permitidos), que iniciará uma nova subcontagem.
Uma alternativa é definir uma macro, por exemplo \CountSection
, que recebe um único argumento (que será o título do ponto de interrupção), e especificar que o TeXcount deve inserir um ponto de interrupção ali:
%TC:breakmacro \CountSection countsection
onde countsection
está qualquer string não vazia (sem espaços) que prefixará apenas o título para indicar que tipo de contagem é. Isso ainda requer a -sub=none
opção.
Você pode experimentar isso noaplicação webprimeiro. Você não precisa inserir um documento completo, apenas um fragmento de código bastará.
Deixe-me elaborar e responder às perguntas nos comentários: primeiro, um exemplo de como fazer as subcontas funcionarem com saída para o console; segundo, como incluir as contagens no documento.
TeXcount usa pontos de interrupção para dividir as contagens em subcontas. Não há "pontos de interrupção finais": uma subconta continua até o próximo ponto de interrupção.
Por outro lado, se o que você realmente precisa é ignorar partes do documento nas contagens, e não dividi-lo em múltiplos segmentos, é possível marcar segmentos a serem ignorados usando
%TC:ignore
...
%TC:endignore
Existem duas maneiras de inserir pontos de interrupção para dividir o documento em regiões de subcontagem: definindo explicitamente um ponto de interrupção no documento usando a %TC:breakpoint
instrução ou especificando macros que definem automaticamente um ponto de interrupção. Por padrão ( -sub=section
), TeXcount adiciona pontos de interrupção em \chapter
, \section
, etc.; usar a opção -sub=none
evita isso. Você pode então usar a %TC:breakmacro
instrução para especificar outras macros que devem definir um ponto de interrupção.
Aqui está um pequeno exemplo, que não é um documento completo, apenas um fragmento de código:
%% 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.
Você pode tentar executá-lo através do TeXcount em seu próprio computador ou no aplicativo da web on-line e, em seguida, experimentar para ver como funciona. Se você adicionar \section
macros ao código, elas adicionarão pontos de interrupção adicionais, a menos que você especifique -sub=none
. A propósito, -sub
é apenas uma abreviação de -subcount
e é usado apenas para escolher entre algumas alternativas de macros de ponto de interrupção inicial, não para especificar a sua própria.
Por padrão, o TeXcount envia as contagens (e outras saídas) para o console. Em vez disso, você pode gravar a saída em um arquivo, o que geralmente é útil para importar a saída para o documento ou ao gravar a saída como HTML.
Existem alguns truques para importar a contagem de volta para o documento, todos os quais exigem que o TeXcount grave a saída em um arquivo e este arquivo seja então importado para o documento. Há alguminformações sobre isso no FAQ do TeXcount, e umexemplo no StackExchange. É possível personalizar o formato da saída usando modelos (Exemplo StackExchange), mas isso é um pouco mais avançado e você deve fazer a contagem funcionar corretamente antes de começar.