diff options
Diffstat (limited to 'Master/texmf-dist/doc/support/texlogsieve/README.md')
-rw-r--r-- | Master/texmf-dist/doc/support/texlogsieve/README.md | 97 |
1 files changed, 11 insertions, 86 deletions
diff --git a/Master/texmf-dist/doc/support/texlogsieve/README.md b/Master/texmf-dist/doc/support/texlogsieve/README.md index acc3204d907..e7e92339978 100644 --- a/Master/texmf-dist/doc/support/texlogsieve/README.md +++ b/Master/texmf-dist/doc/support/texlogsieve/README.md @@ -22,12 +22,20 @@ report. It is a `texlua` script, similar in spirit to tools such as `texlogsieve` **must** be run from the same directory as `[pdf|lua|xe]latex`, because it searches for the files used during compilation (packages loaded -from the current directory, files included with `\input` etc.). +from the current directory, files included with `\input` etc.). Also, since +it cannot detect if LaTeX stops for user input, you should **really** run +LaTeX in `nonstopmode` when `texlogsieve` is reading from a pipe. The defaults are reasonable; hopefully, you can just do ``` -[pdf|lua|xe]latex myfile.tex | texlogsieve +[pdf|lua|xe]latex -interaction nonstopmode myfile.tex | texlogsieve +``` + +or + +``` +texlogsieve myfile.log ``` and be satisfied with the result. @@ -40,94 +48,11 @@ too difficult. If you want to know more about the TeX log file and the workings of the program, check the initial comments in the code. -## Short-term improvements - - * Create tests - - - Synthetic unit tests: these should systematically test the code and the - features it implements with small "fake" log files - - - Real-world files (for example, the docs for some packages or some papers - from arXiv): these should help us detect important log messages and - changes in messages whenever new versions of LaTeX and its packages are - released - - * Include the line number in the summary for messages that have it - - * Consider messages that only differ by "on line XXX" to be repetitions - - * Implement option `--collapse-lines` (show multiline messages as a single - line) - - * Implement option `--no-redundant` (makes messages that are going to be - summarized, such as `undefined reference blah`, not appear in the filtered - report, only in the summary) - -## Other improvements - - * Improve the final summary format - we should look at other tools for - inspiration - - * Filter the summary report too; look at `texloganalyser` for inspiration - - * Consider indicating filenames more prominently in the filtered report; - something like - - Messages for file ./somefile.tex: - LaTeX Warning: File `blah.txt' already exists on the system. - Messages for file ./someotherfile.tex: - Warning: Missing character: There is no " (U+0022) in font... - but only when there is actually something to report for the given file - - * Do something smart about LaTeX errors (maybe just detecting them and saying - "there was an error here" is enough) - maybe get some inspiration from - <https://github.com/overleaf/latex-log-parser> (the parser from overleaf). - This can get complicated if we account for the possibility that the user - interactively solved whatever was the problem, but do we really want to or - need to handle that? - - * Add colors (see `texlog_extract`) - - * Improve error handling if/where possible - - * Better aggregation in the summary: - - - `under/overfull boxes: p.5 (chap1.tex, L27); p.7 (chap2.tex, L37); p.19 - (chap2.tex, L176)` - - - `missing characters X, Y, Z in font blah` - - * Try to figure out a way to automatically extract possible messages from - LaTeX packages - - * Stuff like - `LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right` - should trigger a specific "please rerun" message in the summary - - * Maybe grep the .fls file first before trying to do `kpse.find_file()`; this - is probably more reliable and works even if the environment has changed, - but can we be sure it works correctly when reading the logfile from a pipe? - -## Refactorings to consider: - - * Modify `heartbeat` to use `os.difftime()` - - * Improve Lines: - - - Eliminate `Lines.current` and instead always use `Lines.get(0)`, - `Lines.get(1)` etc. We might store stuff in indexes 1, 2, 3 etc. and - make something like `Lines:get(val) => return Lines[val +1]` (this is - better than actually using index 0 because the lua standard library - counts from one, so adhering to this convention makes using it easier) - - - Reimplement the logic using <https://www.lua.org/pil/11.4.html> for a - small performance increase - --- Code etc: <https://gitlab.com/lago/texlogsieve> -Copyright 2021 Nelson Lago <lago@ime.usp.br> +Copyright (C) 2021, 2022 Nelson Lago <lago@ime.usp.br> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by |