latexindent.pl

Perl script to add indentation (leading horizontal space) to LaTeX files. It can modify line breaks before, during and after code blocks; it can perform text wrapping and paragraph line break removal. It can also perform string-based and regex-based substitutions/replacements. The script is customisable through its YAML interface.

GPL-3.0 License

Downloads
462
Stars
833
Committers
38

Bot releases are visible (Hide)

latexindent.pl - V3.20.4

Published by github-actions[bot] over 1 year ago

minor bugfix for alignAtAmpersand routine detailed at issue-426

latexindent.pl - V3.20.3

Published by github-actions[bot] over 1 year ago

minor bugfix for -l switch detailed at issue-421 thanks to @hsloot

latexindent.pl - V3.20.2

Published by github-actions[bot] over 1 year ago

Minor bugfix for text wrap, when: after, detailed at issue-412.

latexindent.pl - V3.20.1

Published by github-actions[bot] almost 2 years ago

latexindent.pl - V3.20

Published by github-actions[bot] almost 2 years ago

  • text wrap upgrade: new option: when: before/after, full details at issue-359
  • text wrap upgrade: new option to wrap comments comments: wrap: 0/1, full details at issue-389
  • new options for indentconfig.yaml and friends, full details at issue-396, thanks to @Nehctarg
  • DBS poly-switches behaviour upgraded so that no longer need to specify lookForAlignDelims: 1, full details at issue-402
latexindent.pl - V3.19.1

Published by github-actions[bot] almost 2 years ago

poly-switch for verbatim code blocks updated to work for value 4, VerbatimBeginStartsOnOwnLine, VerbatimEndFinishesWithLineBreak, detailed at 2f402d6.

latexindent.pl - V3.19

Published by github-actions[bot] almost 2 years ago

Standalone executables/binaries avaialble for Ubuntu Linux and MacOS (to accompany latexindent.exe), all available from the releases page:

  • latexindent.exe
  • latexindent-linux
  • latexindent-macos

All 3 files contain defaultSettings.yaml, so should standalone. See https://github.com/cmhughes/latexindent.pl/issues/388 for more details.

latexindent.pl - V3.18

Published by github-actions[bot] over 2 years ago

  • docker now supported, full details at pull 370, thanks to @eggplants
latexindent.pl - V3.17.3

Published by github-actions[bot] over 2 years ago

  • update to the text wrap routine focused on trailing comments, see issue 367
latexindent.pl - V3.17.2

Published by github-actions[bot] over 2 years ago

  • minor updates to the quick-start section
  • add NiceTabular to defaultSettings, pull 358, thanks to @yzhang-gh
latexindent.pl - V3.17.1

Published by github-actions[bot] over 2 years ago

minor updates

  • oneSentencePerLine with text wrapping now respects removeSentenceLineBreaks, issue-355
  • textWrapOptions can be customised further with removeBlockLineBreaks
  • indentAfterItems defaults updated to include enumerate*, itemize*, description*, issue-356
  • pre-commit defaults updated, see pull 354, thank you to @Holzhaus
latexindent.pl - V3.17

Published by github-actions[bot] over 2 years ago

new features

  • batches of files now supported, issue 332
  • -wd switch which means 'overwrite if different'; similar to the -w switch, but will only activate
    the overwrite and back-up file procedure if the indented text is different from the original
  • multipleSpacesToSingle feature for oneSentencePerLine
  • --GCString switch available to optionally load the Unicode::GCString module, issue 303
latexindent.pl - V3.16

Published by github-actions[bot] over 2 years ago

text wrap overhaul

This release implements a complete overhaul of the textWrap routine. The interface is now

    textWrapOptions:
        columns: 0
        multipleSpacesToSingle: 1            
        blocksFollow:
           headings: 1
           commentOnPreviousLine: 1
           par: 1
           blankLine: 1
           verbatim: 1
           filecontents: 1
           other: '\\\]|\\item(?:\h|\[)'      # regex
        blocksBeginWith:
           A-Z: 1
           a-z: 1
           0-9: 0
           other: 0                           # regex
        blocksEndBefore:
           commentOnOwnLine: 1
           verbatim: 1
           filecontents: 1
           other: '\\begin\{|\\\[|\\end\{'    # regex
        huge: overflow                        # forbid mid-word line breaks
        separator: ""

Full details are documented at https://latexindentpl.readthedocs.io/en/latest/sec-the-m-switch.html#text-wrapping and some details within https://github.com/cmhughes/latexindent.pl/issues/346

minor updates to defaultSettings.yaml

tabulararray is now supported by default, https://github.com/cmhughes/latexindent.pl/issues/343

latexindent.pl - V3.15

Published by github-actions[bot] over 2 years ago

new feature: pre-commit now supported with latexindent.pl!

A massive thank you to @tdegeus for contributing this feature.

The feature is documented fully at https://latexindentpl.readthedocs.io/en/latest/sec-appendices.html#pre-commit; for reference see also https://github.com/cmhughes/latexindent.pl/pull/322 and https://github.com/cmhughes/latexindent.pl/issues/316

In brief, variations of the file .pre-commit-config.yaml in your .git repository as follows

- repo: https://github.com/cmhughes/latexindent.pl
  rev: V3.15
  hooks:
  - id: latexindent
    args: [-s]

and then running

pre-commit run --all-files

will run latexindent.pl on all .tex files in your repository. There's a supported option for conda users also. Full details at https://latexindentpl.readthedocs.io/en/latest/sec-appendices.html#pre-commit

latexindent.pl - V3.14

Published by github-actions[bot] almost 3 years ago

latexindent.pl - V3.13.5

Published by github-actions[bot] almost 3 years ago

latexindent-yaml-schema.json created and documented, discussion at
issue 206.

latexindent.pl - V3.13.4

Published by github-actions[bot] almost 3 years ago

latexindent.pl - V3.13.3

Published by github-actions[bot] almost 3 years ago

Minor updates:

  • fineTuning update following issue 307
  • lookForChildCodeBlocks in align at ampersand routine issue 308
latexindent.pl - V3.13.2

Published by github-actions[bot] almost 3 years ago

defaultSettings.yaml can (optionally) now be located in LatexIndent/ folder.

This was proposed in https://github.com/conda-forge/staged-recipes/pull/16914

latexindent.pl - V3.13.1

Published by github-actions[bot] almost 3 years ago

Upgrade to -y switch https://github.com/cmhughes/latexindent.pl/issues/296, and minor updates to documentation https://github.com/cmhughes/latexindent.pl/issues/299 and https://github.com/cmhughes/latexindent.pl/issues/300

Thank you to @XuehaiPan for their contribution.