Spellcheck in Overleaf is very basic. It is nothing compared to dedicated tools such as Grammarly. I used to copy and paste into Docs back and forward until recently. I created this chrome extension that copies the content of the file visible and the editor; filters the commands/keywords and pastes the plain text in a textarea (Right area). This textarea is displayed over the pdf preview. Extensions such as Grammarly can't check complex editors such as Overleaf, but only work in textareas. Changes made to the textarea, either by extensions such as Grammarly or yourself, are evaluated and changes are merged back to the editor.
If this project saved you time, you can buy me a cup of coffee :)
Note: the only known limitation is that the number of lines while editing CANNOT change. Inserting Enters in the textarea breaks merging back changes to the editor.
This plugin does not collect any data.
You can add custom filters to filter latex command I forgot about or simply do not support.
You have to enter a regex or string and a replace value. For those of you who do not understand what regex and string means, head to the examples below. Those should get your started.
For the more technical users, regexes you need to escape characters like \ as you would do as usual. For string there is no need to escape. This
filters works mostly like the JavaScript replaceAll
function. More on that
here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
Default filters can be overriden by user filters. This can be achieved by simply providing it as a custom filter. An example would be the default
filter \_
which is replaced by _
. This can be override with the following filter: \_
with value __
.
Default filters can also be disabled. This can be achieved by providing the value: %%EMPTY%%
.
Regex or string | replace value | Latex text | Result text |
---|---|---|---|
/(\\author{)(.*?)(})/g | \author{it is me} | ||
/(\\author{)(.*?)(})/g | $2 | \author{it is me} | it is me |
/(\\caption{)(.*?)(})/gs | $2 | \caption{this includes a new line} |
this includes a new line |
\_ | _ | This is an\_underscore | This is an_underscore |
a | b | Example | Exbmple |
Requires nodejs 12 or higher.
Run npm install
Next, run the build or dev script in package.json
Load the extension https://developer.chrome.com/docs/extensions/mv3/getstarted/