Giter VIP home page Giter VIP logo

textidote's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

textidote's Issues

Treat align as equation

Hi again

align should be treated as equation (such that there does not come unnecessary grammar suggestions)

\begin{align}
\end{align}

Similarly, new theorems and other should be handled like standard theorem, lemma etc.

I guess some kind of ignoring grammar on \begin{xxx} and \end{xxx} whenever there is
\begin{xxx}__\end{xxx} in the text... ?

\cref and \Cref not recognized

Hello,

Seems like the commands from cleveref [1] are not properly detected, I get errors about unreferenced figures such as

* L364C12-L618C34 Figure fig:resampling_example is never referenced in the 
  text [sh:figref] 
      \label{fig:resampling_example}
             ^^^^^^^^^^^^^^^^^^^^^^^

but they are properly referenced by cleveref, producing a false positive. It's probably missing a quick filter for matching the cleveref equivalent of \ref.

[1] https://ctan.org/pkg/cleveref

Exception when running on a .tex

$ java -jar ~/textidote.jar --read-all --check en main.tex
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
TeXtidote v0.4 - A linter for LaTeX documents
(C) 2018 Sylvain Hallé - All rights reserved

Exception in thread "main" java.util.EmptyStackException
	at java.util.Stack.peek(Stack.java:102)
	at ca.uqac.lif.textidote.rules.CheckSubsections.evaluate(CheckSubsections.java:97)
	at ca.uqac.lif.textidote.Linter.evaluateAll(Linter.java:126)
	at ca.uqac.lif.textidote.Main.mainLoop(Main.java:318)
	at ca.uqac.lif.textidote.Main.main(Main.java:93)

A simple repro :

\documentclass{article}
\begin{document}
\section{A}
\chapter{B}
\end{document}

Another:

\documentclass{article}
\begin{document}
\section{A}
\paragraph{B}
\end{document}

Use of external language tool should be possible

I just downloaded and tested TeXtidote v0.6
It seems to be exactly the tool I was looking for, but it seems I cannot use my own language tool version with ngrams support enabled.
It would be nice if the user could either point textidote to an external language tool jar file, or to a running language tool instance (and connect to it maybe via its server feature), or point the built in language tool to an existing ngrams directory.

Simple tips could be ignored

Hello,

I'm writing a report in a certain research field where the term intersection is more accepted than crossroads. However, the spellings check says that all words which contain 'intersection' should be changed to some form of crossroad.

This is not my intention and hence I have 100 times the same notice in the html report.
Could there maybe be a function to disable this message?
Maybe also by adding this to the dictionary?

Wrong line location (L1C1) when using trivial inline math

I found a lot of mistakes on L1C1, when checking my text. Especially visible when using HTML output:
screenshot from 2018-12-19 17 56 35

It seems that when you have inline math without symbols such as =, the location of any problem is L1C1-L1C1. The following is a minimal working example:

\documentclass[a4paper]{article}

\begin{document}

\section{Introduction}
This is a $MWE$. It demonstrates a bug when using inline math without math symbols and commands, like this: $a^b$.
\end{document}

Textidote's output when running textidote --check en mwe.tex is

TeXtidote v0.6 - A linter for LaTeX documents and others
(C) 2018 Sylvain Hallé - All rights reserved

Found 3 warning(s)
Total analysis time: 2 second(s)

* L5C2-L5C9 This section is very short (about 21 words). You should consider 
  merging it with another section or make it longer. [sh:seclen] 
  \section{Introduction}
   ^^^^^^^^
* L1C1-L1C1 Possible spelling mistake found (23) [lt:en:MORFOLOGIK_RULE_EN_US] 
  This is a MWE. It demonstrates a bug when using in
  ^
* L1C1-L1C1 Possible spelling mistake found (116) 
  [lt:en:MORFOLOGIK_RULE_EN_US] 
  This is a MWE. It demonstrates a bug when using in
  ^

Spelling mistake suggestions

Hello, really helpful tool!

I noticed that when using "--check en" option, tooltips for "Possible spelling mistakes" are shown, but there are no suggestion on how to fix the mistakes.

The languagetool seems to provide those suggestions. Is it possible to include them in the tooltips? This would make error correction much simpler.

\ldots

Textidote considers that \ldots is a spelling mistake and it does not seem possible to include it inside the dictionary

Rewrite `AnnotatedString`

This class is somewhat buggy, see #50.

It could be rewritten in a simpler way, since there are a few features that complicate its implementation and that are not even used by TeXtidote. Namely:

  • multi-line ranges. No transformation of the text ever inserts or deletes line breaks elsewhere than at the end of a line. Therefore, ranges could be limited to a single line, which would make computations about relative positions much easier and less error-prone.

Specify custom environment names to ignore

Through a new command line switch. So, typing

textidote --ignore foo ...

will be such that environments \begin{foo}...\end{foo} will be taken out from the file before analyzing.

Related to comments first written in issue #31.

Add warning on `~:`

You should not manually force a space before a punctuation sign; if one is needed LaTeX takes care of this by itself.

Problem processing German texts

I just discovered your tool through a link on researchgate.net and I do like it a lot. Great work!

I installed version 0.5.1 and tried to run a sample file

textidote --html --check de sample.tex >sample.html

In this case I get the following error message:

TeXtidote v0.5.1 - A linter for LaTeX documents
(C) 2018 Sylvain Hallé - All rights reserved

Exception in thread "main" java.lang.ExceptionInInitializerError
	at org.languagetool.language.German.getRelevantRules(German.java:168)
	at org.languagetool.language.GermanyGerman.getRelevantRules(GermanyGerman.java:43)
	at org.languagetool.JLanguageTool.getAllBuiltinRules(JLanguageTool.java:279)
	at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:186)
	at org.languagetool.JLanguageTool.<init>(JLanguageTool.java:157)
	at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:76)
	at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:67)
	at org.languagetool.MultiThreadedJLanguageTool.<init>(MultiThreadedJLanguageTool.java:51)
	at ca.uqac.lif.textidote.rules.CheckLanguage.<init>(CheckLanguage.java:85)
	at ca.uqac.lif.textidote.Main.mainLoop(Main.java:313)
	at ca.uqac.lif.textidote.Main.main(Main.java:96)
Caused by: java.lang.IllegalArgumentException: 'de' is not a language code known to LanguageTool. Supported language codes are: ast-ES, be-BY, br-FR, ca-ES, ca-ES-valencia, da-DK, el-GR, en, en-AU, en-CA, en-GB, en-NZ, en-US, en-ZA, eo, es, fa, fr, gl-ES, it, ja-JP, nl, pl-PL, pt, pt-BR, pt-PT, ro-RO, ru-RU, sk-SK, sl-SI, sr, sv, uk-UA, zh-CN. The list of languages is read from META-INF/org/languagetool/language-module.properties in the Java classpath. See http://wiki.languagetool.org/java-api for details.
	at org.languagetool.Languages.getLanguageForShortCode(Languages.java:151)
	at org.languagetool.rules.de.OldSpellingData.<init>(OldSpellingData.java:49)
	at org.languagetool.rules.de.OldSpellingRule.<clinit>(OldSpellingRule.java:35)
	... 11 more

I also tried the country codes de_AT and de_CH as specified on https://github.com/sylvainhalle/textidote, but they did not work either.

textidote works good with English tex files and language specification, i.e., --check en. So there are no error messages triggered when English texts are processed.

Nullpointer exception when checking grammer with LanguageTool

Hello,

I've been trying to get this to work. However, the following error occurs when I set the English grammar check on. This happened for two computers running the latest version and the version before that.
image

Could you maybe check it out?

PS. Amazing that you are doing this project! Thumbs up

British english

Hello,

I was wondering whether British English will also be supported?
Right now American English seems to be the only way.

Error on specifying --check language

I get an error when I use the --check argument

It happens not matter what I specify (en, or en_UK etc)

TeXtidote v0.5.1 - A linter for LaTeX documents
(C) 2018 Sylvain Hallé - All rights reserved

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/languagetool/JLanguageTool : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
	at ca.uqac.lif.textidote.Main.mainLoop(Main.java:313)
	at ca.uqac.lif.textidote.Main.main(Main.java:96)

Screenshot does not correspont command

Hi.

A small correction, the screenshot under your description for HTML report does not correspond to the command in the section.

Command: $ textidote --html example.tex > report.html
Screenshot: $ textidote --check en --html example.tex > report.html

Gramma before math

The grammar check does not handle math correctly. I don't know if this will make unwanted other issues, but textidote gives grammar mistake when writing.

  • an $2$-strong digraph

without math environment the grammar is correct (at least in my tests)

  • an 8-strong digraph
  • a 2-strong digraph

For manual download, the language tool check doesn't work.

I wonder if it's because textidote couldn't find the languagetool's jar.

You can also download the TeXtidote executable manually: this works on all operating systems. Simply make sure you have Java version 8 or later installed on your system. Then, download the latest release of TeXtidote; put the JAR in the folder of your choice.

Is there any instruction for where to put the languagetool?

(Note that I'm doing manual download as I'm using a Mac, not Linux.)

Thank you.

NullPointerException with --check

When I run textidote.jar --html --check en my.tex I get

TeXtidote v0.4 - A linter for LaTeX documents
(C) 2018 Sylvain Hallé - All rights reserved

Exception in thread "main" java.lang.NullPointerException
	at ca.uqac.lif.textidote.rules.CheckLanguage.evaluate(CheckLanguage.java:160)
	at ca.uqac.lif.textidote.Linter.evaluateAll(Linter.java:131)
	at ca.uqac.lif.textidote.Main.mainLoop(Main.java:314)
	at ca.uqac.lif.textidote.Main.main(Main.java:89)

It seems that this line is wrong:

Position start_src_pos = null, end_src_pos = null;

It should initialize variables with Position.NOWHERE, not null

TeXtidote config file

Rather than specify all parameters through the command line, TeXtidote could automatically look for a default file (e.g. .textidote or _textidote) that contains the command line arguments. When started, TeXtidote would first look for such a file and parse the command line arguments there. If any arguments are specified at the "real" command line, they would overwrite the corresponding argument in the file.

In counterpart, a command-line switch should be added to force TeXtidote to ignore that file when asked.

Line -1 does not exist

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Line -1 does not exist
        at ca.uqac.lif.textidote.as.AnnotatedString.getLine(AnnotatedString.java:630)
        at ca.uqac.lif.textidote.rules.RegexRule.evaluate(RegexRule.java:121)
        at ca.uqac.lif.textidote.Linter.evaluateAll(Linter.java:125)
        at ca.uqac.lif.textidote.Main.mainLoop(Main.java:269)
        at ca.uqac.lif.textidote.Main.main(Main.java:85)

A caption should end with a period

Hi

It seems that the caption-check do not work correctly. I get et comment 'A caption should end with a period' both when it actually does and also when the caption is the empty-string

screenshot from 2018-08-01 12 24 07

Poor output for multiple files

Neither the plain text output of the HTML output works well with multiple files. The plain text output only lists the warnings without the file names, making it hard to find the location of the issue. The html output only displays the text from the last file listed and puts all the warnings on that text which makes the output unless for all files but the last.

Support for Markdown

  • Autodetect by file extension
  • Override by command-line switch: --tex vs. --md
  • Rename current --detex option to --clean
  • Would be much easier to clean than LaTeX

Produce a hash of the analysis

Principle: someone verifies a text with the tool, sends you the PDF and some "ID" produced by TeXtidote. The recipient can verify the ID "fits" with the PDF that comes with it.

Goal: your students assure you they used TeXtidote on their text, but when you run TeXtidote on it by yourself, you find plenty of errors. Having them send you the ID would at least guarantee they ran it on the PDF they are sending you.

Use the report.html to work with browser extensions like grammarly

I would like to thank Sylvain for this very useful tool.

After producing the report.html I got the idea of trying the Grammarly and Ginger chrome extensions on the HTML file but didn't work. Even opening the file with Jupyterlab, the extensions failed. I did a test online and Grammarly homepage picked up some mistakes that went through me.

I would appreciate if the textidote HTML file could work with these chrome extensions.

Best Regards,
André

StringIndexOutOfBoundsException when dictionary contains names including '

Hello,

When a dictionary includes names such as CONF'12 that correspond to acronyms of scientific conferences for example, textidote raises exceptions

textidote -read-all --check en_UK --dict d.txt t.txt
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_UK.UTF-8)
TeXtidote v0.5.1 - A linter for LaTeX documents
(C) 2018 Sylvain Hall? - All rights reserved

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 0, end 1, length 0
at java.lang.String.checkBoundsBeginEnd(java.base@9-internal/String.java:3119)
at java.lang.String.substring(java.base@9-internal/String.java:1907)
at org.languagetool.rules.spelling.SpellingCheckRule.lambda$updateIgnoredWordDictionary$0(SpellingCheckRule.java:108)
at java.util.stream.Collectors.lambda$groupingBy$49(java.base@9-internal/Collectors.java:1049)
at java.util.stream.ReduceOps$3ReducingSink.accept(java.base@9-internal/ReduceOps.java:169)
at java.util.HashMap$KeySpliterator.forEachRemaining(java.base@9-internal/HashMap.java:1600)
at java.util.stream.AbstractPipeline.copyInto(java.base@9-internal/AbstractPipeline.java:484)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@9-internal/AbstractPipeline.java:474)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(java.base@9-internal/ReduceOps.java:913)
at java.util.stream.AbstractPipeline.evaluate(java.base@9-internal/AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(java.base@9-internal/ReferencePipeline.java:511)
at org.languagetool.rules.spelling.SpellingCheckRule.updateIgnoredWordDictionary(SpellingCheckRule.java:108)
at org.languagetool.rules.spelling.SpellingCheckRule.addIgnoreTokens(SpellingCheckRule.java:100)
at ca.uqac.lif.textidote.rules.CheckLanguage.(CheckLanguage.java:94)
at ca.uqac.lif.textidote.Main.mainLoop(Main.java:313)
at ca.uqac.lif.textidote.Main.main(Main.java:96)

Simple text file 👍
simple test CONF'11 etc.

Simple dictionnary

CONF'11
CONF
abcde

Line reference on html output

Hi again. Hope my 'issues' are helps to improve texidote.

It would be nice if the line references are also visible on the HTML output

Cheers

How to build the package ?

I wanted to look into fixing my bug but I'm not an expert in Java, and simply running ant yields a lot of errors:

Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Buildfile: /home/jcelerier/perso/textidote/build.xml

ant-contrib:
     [echo] ant-contrib is not installed. Downloading...
    [mkdir] Created dir: /home/jcelerier/perso/textidote/lib
      [get] Getting: http://sylvainhalle.github.io/AntRun/dependencies/ant-contrib-1.0b3-bin.zip
      [get] To: /home/jcelerier/perso/textidote/lib/ant-contrib-1.0b3-bin.zip
    [unzip] Expanding: /home/jcelerier/perso/textidote/lib/ant-contrib-1.0b3-bin.zip into /home/jcelerier/perso/textidote/lib

xmltask:
      [get] Getting: http://sylvainhalle.github.io/AntRun/dependencies/xmltask.jar
      [get] To: /home/jcelerier/perso/textidote/lib/xmltask.jar

init:
     [echo] Your extension folder is /usr/java/packages/lib/ext

check-rt:
     [echo] Local bootstrap JAR is not present

compile:
    [mkdir] Created dir: /home/jcelerier/perso/textidote/Source/Core/bin
    [javac] Compiling 30 source files to /home/jcelerier/perso/textidote/Source/Core/bin
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:51: error: cannot find symbol
    [javac] import ca.uqac.lif.util.CliParser;
    [javac]                        ^
    [javac]   symbol:   class CliParser
    [javac]   location: package ca.uqac.lif.util
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:52: error: package ca.uqac.lif.util.CliParser does not exist
    [javac] import ca.uqac.lif.util.CliParser.Argument;
    [javac]                                  ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:53: error: package ca.uqac.lif.util.CliParser does not exist
    [javac] import ca.uqac.lif.util.CliParser.ArgumentMap;
    [javac]                                  ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:24: error: package org.languagetool does not exist
    [javac] import org.languagetool.JLanguageTool;
    [javac]                        ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:25: error: package org.languagetool does not exist
    [javac] import org.languagetool.Language;
    [javac]                        ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:26: error: package org.languagetool does not exist
    [javac] import org.languagetool.MultiThreadedJLanguageTool;
    [javac]                        ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:27: error: package org.languagetool.rules does not exist
    [javac] import org.languagetool.rules.RuleMatch;
    [javac]                              ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:28: error: package org.languagetool.rules.spelling does not exist
    [javac] import org.languagetool.rules.spelling.SpellingCheckRule;
    [javac]                                       ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:47: error: cannot find symbol
    [javac] 	/*@ non_null @*/ protected JLanguageTool m_languageTool;
    [javac] 	                           ^
    [javac]   symbol:   class JLanguageTool
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:77: error: cannot find symbol
    [javac] 	public CheckLanguage(/*@ nullable @*/ Language lang, /*@ non_null @*/ List<String> dictionary) throws UnsupportedLanguageException
    [javac] 	                                      ^
    [javac]   symbol:   class Language
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:105: error: cannot find symbol
    [javac] 	public CheckLanguage(/*@ nullable @*/ Language lang) throws UnsupportedLanguageException
    [javac] 	                                      ^
    [javac]   symbol:   class Language
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:20: error: package org.languagetool does not exist
    [javac] import org.languagetool.Language;
    [javac]                        ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:21: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.AmericanEnglish;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:22: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.AustrianGerman;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:23: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.BritishEnglish;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:24: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.CanadianEnglish;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:25: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.Dutch;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:26: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.French;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:27: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.GermanyGerman;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:28: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.Portuguese;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:29: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.Spanish;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:30: error: package org.languagetool.language does not exist
    [javac] import org.languagetool.language.SwissGerman;
    [javac]                                 ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:45: error: cannot find symbol
    [javac] 	/*@ nullable @*/ public static Language getLanguageFromString(String s)
    [javac] 	                               ^
    [javac]   symbol:   class Language
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:104: error: cannot find symbol
    [javac] 		CliParser cli_parser = new CliParser();
    [javac] 		^
    [javac]   symbol:   class CliParser
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:104: error: cannot find symbol
    [javac] 		CliParser cli_parser = new CliParser();
    [javac] 		                           ^
    [javac]   symbol:   class CliParser
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:105: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("html").withDescription("\tFormats the report as HTML"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:106: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("no-color").withDescription("Disables colors in ANSI printing"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:107: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("check").withArgument("lang").withDescription("Checks grammar in language lang"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:108: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("dict").withArgument("file").withDescription("Load dictionary from file"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:109: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("detex").withDescription("Detex input file"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:110: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("map").withArgument("file").withDescription("Output correspondence map to file"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:111: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("read-all").withDescription("Don't ignore lines before \\begin{document}"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:112: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("replace").withArgument("file").withDescription("Apply replacement patterns from file"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:113: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("quiet").withDescription("Don't print any message"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:114: error: cannot find symbol
    [javac] 		cli_parser.addArgument(new Argument().withLongName("help").withDescription("\tShow command line usage"));
    [javac] 		                           ^
    [javac]   symbol:   class Argument
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/Main.java:115: error: cannot find symbol
    [javac] 		ArgumentMap map = cli_parser.parse(args);
    [javac] 		^
    [javac]   symbol:   class ArgumentMap
    [javac]   location: class Main
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:85: error: cannot find symbol
    [javac] 		m_languageTool = new MultiThreadedJLanguageTool(lang);
    [javac] 		                     ^
    [javac]   symbol:   class MultiThreadedJLanguageTool
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:90: error: package org.languagetool.rules does not exist
    [javac] 		for (org.languagetool.rules.Rule rule : m_languageTool.getAllActiveRules())
    [javac] 		                           ^
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:92: error: cannot find symbol
    [javac] 			if (rule instanceof SpellingCheckRule)
    [javac] 			                    ^
    [javac]   symbol:   class SpellingCheckRule
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:94: error: cannot find symbol
    [javac] 				((SpellingCheckRule) rule).addIgnoreTokens(dictionary);
    [javac] 				  ^
    [javac]   symbol:   class SpellingCheckRule
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:115: error: cannot find symbol
    [javac] 		List<RuleMatch> matches = null;
    [javac] 		     ^
    [javac]   symbol:   class RuleMatch
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/CheckLanguage.java:129: error: cannot find symbol
    [javac] 		for (RuleMatch rm : matches)
    [javac] 		     ^
    [javac]   symbol:   class RuleMatch
    [javac]   location: class CheckLanguage
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:49: error: cannot find symbol
    [javac] 			return new AmericanEnglish();
    [javac] 			           ^
    [javac]   symbol:   class AmericanEnglish
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:53: error: cannot find symbol
    [javac] 			return new CanadianEnglish();
    [javac] 			           ^
    [javac]   symbol:   class CanadianEnglish
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:57: error: cannot find symbol
    [javac] 			return new BritishEnglish();
    [javac] 			           ^
    [javac]   symbol:   class BritishEnglish
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:61: error: cannot find symbol
    [javac] 			return new French();
    [javac] 			           ^
    [javac]   symbol:   class French
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:65: error: cannot find symbol
    [javac] 			return new Spanish();
    [javac] 			           ^
    [javac]   symbol:   class Spanish
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:69: error: cannot find symbol
    [javac] 			return new GermanyGerman();
    [javac] 			           ^
    [javac]   symbol:   class GermanyGerman
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:73: error: cannot find symbol
    [javac] 			return new SwissGerman();
    [javac] 			           ^
    [javac]   symbol:   class SwissGerman
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:77: error: cannot find symbol
    [javac] 			return new AustrianGerman();
    [javac] 			           ^
    [javac]   symbol:   class AustrianGerman
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:81: error: cannot find symbol
    [javac] 			return new Dutch();
    [javac] 			           ^
    [javac]   symbol:   class Dutch
    [javac]   location: class LanguageFactory
    [javac] /home/jcelerier/perso/textidote/Source/Core/src/ca/uqac/lif/textidote/rules/LanguageFactory.java:85: error: cannot find symbol
    [javac] 			return new Portuguese();
    [javac] 			           ^
    [javac]   symbol:   class Portuguese
    [javac]   location: class LanguageFactory
    [javac] 52 errors
    [javac] 1 warning

BUILD FAILED
/home/jcelerier/perso/textidote/build.xml:188: Compile failed; see the compiler error output for details.

Add the option to analyse inputs

Hello

It would be useful if the code also processed included sub files via the \input command

For example at the moment a master document such as

\documentclass[11pt]{article}
\begin{document}

\section{Introduction}
\input{Intro.tex}

\section{Conclusion}
\input{Conclusion.tex}

\end{document}

would only analyse section headers. The paragraphs etc which are contained in sub files Intro.tex and Conclusion.tex are ignored. At the moment textidote has to be run individually on each independent file which takes time. A feature enhancement would take sub files into account.

Many thanks

how it works on Windows

Many thanks for the great tool.
I am a Windows user. I tried to run it as described i.e. install example.tex and the textdote.jar in the same folder and try to run the command from Texmaker user command. It says "Error : could not start the command : $ java -jar textidote.jar --html example.tex > report.html"

Could you please support me?

Many thanks in advance

best regards

Feras

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.