cmhughes / 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.
GNU General Public License v3.0
878 stars 83 forks source link

Indentation is only 1 space after a section instead of 4 spaces like it is after all other headings. #438

Closed oathompsonjones closed 1 year ago

oathompsonjones commented 1 year ago

original .tex code

\section{Overview}
This report analyzes the relationship between different aspects of a movie and its gross income.
These aspects include director list, actor list, runtime and so on.
To investigate these relationships, we looked at a comprehensive dataset compiled by the movie ranking website IMDB.com.
This dataset includes information about a movie like the director, the actors, the genre.    
We found ..

yaml settings

#
# latexindent.pl, version 3.20.2, 2023-02-04
#
# defaultSettings.yaml, the default settings for latexindent.pl
# 
# a script that aims to beautify .tex, .sty, .cls files
#
# (or latexindent.exe if you're on Windows)
#
#---------------------------------------------------------------------------------------
# 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# See http://www.gnu.org/licenses/.
#
# Chris Hughes, 2017
#
# For all communication, please visit: https://github.com/cmhughes/latexindent.pl
#
#---------------------------------------------------------------------------------------
# You should feel encouraged to change anything you like in these settings, but
# it would probably be better to have your own user settings
# files somewhere else - remember that this file may be overwritten
# when you update your tex distribution. Please see the manual linked from:
#
#       https://github.com/cmhughes/latexindent.pl
#
# for details of how to create and configure your own settings files.
#
# Please read the manual (linked from above) first to understand what each switch does.
#
#---------------------------------------------------------------------------------------

# latexindent can be called to act on a file without using the file's extension,
# e.g, simply
#       latexindent myfile
# in which case the choice of file extension is chosen
# according to the choices made in fileExtensionPreference
# Other file extensions can be added.
fileExtensionPreference:
  .tex: 1
  .sty: 2
  .cls: 3
  .bib: 4

# default file extension of backup file (if -w switch is active)
# for example, if your .tex file is called
#       myfile.tex
# and you specify the backupExtension as BACKUP.bak then your
# backup file will be
#       myfileBACKUP.bak
backupExtension: .bak

# only one backup per file:
#   - if onlyOneBackUp is 0 then, as a safety measure,
#     the number on the extension increments by 1 each time:
#
#           myfile.bak0, myfile.bak1, myfile.bak2
#   - if you set onlyOnebackUp to 1, then the backup file will
#     be overwritten each time (not recommended until you trust the script)
onlyOneBackUp: 0

# some users may want a finite number of backup files,
# say at most 3; in which case, they can change this maxNumberOfBackUps.
#
# If maxNumberOfBackUps is set to 0 (or less) then infinitely
# many backups are possible, unless onlyOneBackUp is switched on
maxNumberOfBackUps: 0

# some users may wish to cycle through back up files.
#
# for example, with maxNumberOfBackUps: 4, they may
# wish to delete the oldest back up file, and keep only the most recent.
#
#    copy myfile.bak1 to myfile.bak0
#    copy myfile.bak2 to myfile.bak1
#    copy myfile.bak3 to myfile.bak2
#    copy myfile.bak4 to myfile.bak3
#
# the back up will be written to myfile.bak4
cycleThroughBackUps: 0

# preferences for information displayed in the log file
logFilePreferences:
  showEveryYamlRead: 1
  showAmalgamatedSettings: 0
  showDecorationStartCodeBlockTrace: 0
  showDecorationFinishCodeBlockTrace: 0
  endLogFileWith: '--------------'
  showGitHubInfoFooter: 1
  Dumper:
    Terse: 1
    Indent: 1
    Useqq: 1
    Deparse: 1
    Quotekeys: 0
    Sortkeys: 1
    Pair: " => "

# verbatim environments specified
# in this field will not be changed at all!
verbatimEnvironments:
  verbatim: 1
  lstlisting: 1
  minted: 1

# verbatim commands such as \verb! body !, \lstinline$something else$
verbatimCommands:
  verb: 1
  lstinline: 1
  mintinline: 1

# no indent blocks (not necessarily verbatim
# environments) which are marked as %\begin{noindent}
# or anything else that you detail in the following
noIndentBlock:
  noindent: 1
  cmhtest: 1

# \begin{document} and \end{document} are treated differently
# by latexindent within filecontents environments
fileContentsEnvironments:
  filecontents: 1
  filecontents*: 1

# indent preamble
indentPreamble: 0

# assume no preamble in cls, sty, by default
lookForPreamble:
  .tex: 1
  .sty: 0
  .cls: 0
  .bib: 0

# some preambles can contain \begin and \end statements
# that are not in their 'standard environment block', for example,
# consider the following key = values:
#    preheadhook={\begin{mdframed}[style=myframedstyle]},
#    postfoothook=\end{mdframed},
preambleCommandsBeforeEnvironments: 0

# default value of indentation
defaultIndent: "    "

# remove trailing whitespace from all lines
removeTrailingWhitespace:
  beforeProcessing: 0
  afterProcessing: 1

# name of code blocks that should have their body aligned at ampersand delimiters
lookForAlignDelims:
  tabular:
    delims: 1
    alignDoubleBackSlash: 1
    spacesBeforeDoubleBackSlash: 1
    multiColumnGrouping: 0
    alignRowsWithoutMaxDelims: 1
    spacesBeforeAmpersand: 1
    spacesAfterAmpersand: 1
    justification: left
    alignFinalDoubleBackSlash: 0
    dontMeasure: 0
    delimiterRegEx: (?<!\\)(&)
    delimiterJustification: left
    lookForChildCodeBlocks: 1
  tabularx: 1
  xltabular: 1
  longtable: 1
  tabu: 1
  array: 1
  matrix: 1
  listabla: 1
  # amsmath
  align: 1
  align*: 1
  alignat: 1
  alignat*: 1
  aligned: 1
  bmatrix: 1
  Bmatrix: 1
  cases: 1
  flalign: 1
  flalign*: 1
  pmatrix: 1
  vmatrix: 1
  Vmatrix: 1
  # mathtools
  cases*: 1
  dcases: 1
  dcases*: 1
  rcases: 1
  rcases*: 1
  drcases: 1
  drcases*: 1
  # nicematrix
  NiceTabular: 1
  NiceMatrix: 1
  pNiceMatrix: 1
  bNiceMatrix: 1
  BNiceMatrix: 1
  vNiceMatrix: 1
  VNiceMatrix: 1
  NiceArray: 1
  pNiceArrayC: 1
  bNiceArrayC: 1
  BNiceArrayC: 1
  vNiceArrayC: 1
  VNiceArrayC: 1
  NiceArrayCwithDelims: 1
  pNiceArrayRC: 1
  bNiceArrayRC: 1
  BNiceArrayRC: 1
  vNiceArrayRC: 1
  VNiceArrayRC: 1
  NiceArrayRCwithDelims: 1
  # tabularray
  tblr: 1
  longtblr: 1
  talltblr: 1

# if you want the script to look for \item commands
# and format it, as follows (for example),
#       \begin{itemize}
#           \item content here
#                 next line is indented
#                 next line is indented
#           \item another item
#       \end{itemize}
# then populate indentAfterItems. See also itemNames
indentAfterItems:
  itemize: 1
  itemize*: 1
  enumerate: 1
  enumerate*: 1
  description: 1
  description*: 1
  list: 1

# if you want to use other names for your items (for example, \part)
# then populate them here; note that you can trick latexindent.pl
# into indenting all kinds of commands (within environments specified in
# indentAfterItems) using this technique.
itemNames:
  item: 1

# specialBeginEnd is, by default, mathmode focus, although
# there's no restrictions
specialBeginEnd:
  displayMath:
    begin: (?<!\\)\\\[                                              # \[ but *not* \\[
    end: \\\]                                                       # \]
    lookForThis: 1                 
  inlineMath:
    begin: (?<!\$)(?<!\\)\$(?!\$)                                   # $ but *not* \$ or $$
    end: (?<!\\)\$(?!\$)                                            # $ but *not* \$ or $$
    lookForThis: 1
  displayMathTeX:
    begin: \$\$                                                     # $$
    end: \$\$                                                       # $$
    lookForThis: 1
  specialBeforeCommand: 0

# if you want to add indentation after
# a heading, such as \part, \chapter, etc
# then populate it in here - you can add
# an indent rule to indentRules if you would
# like something other than defaultIndent
#
# you can also change the level if you like,
# or add your own title command
indentAfterHeadings:
  part:
    indentAfterThisHeading: 1
    level: 1
  chapter:
    indentAfterThisHeading: 1
    level: 2
  section:
    indentAfterThisHeading: 1
    level: 3
  subsection:
    indentAfterThisHeading: 1
    level: 4
  subsubsection:
    indentAfterThisHeading: 1
    level: 5
  paragraph:
    indentAfterThisHeading: 1
    level: 6
  subparagraph:
    indentAfterThisHeading: 1
    level: 7

# maximum indentation, off by default
maximumIndentation: -1

# if you don't want to have additional indentation
# in a code block, then add it to noAdditionalIndent; note that
# code blocks in this field will inherit
# the *current* level of indentation they just won't
# get any *additional* indentation
noAdditionalIndent:
  myexample: 1
  mydefinition: 1
  problem: 1
  exercises: 1
  mysolution: 1
  foreach: 0
  widepage: 1
  comment: 1
  document: 1
  frame: 0

# if you have indent rules for particular code blocks
# then you can populate them in indentRules; for example, you might just want
# to use a space " " or maybe a double tab "\t\t"
indentRules:
  item: "      "

# set noAdditionalIndent globally for codeblocks
noAdditionalIndentGlobal:
  environments: 0                                                   # 0/1
  commands: 1                                                       # 0/1
  optionalArguments: 0                                              # 0/1
  mandatoryArguments: 0                                             # 0/1
  ifElseFi: 0                                                       # 0/1
  items: 0                                                          # 0/1
  keyEqualsValuesBracesBrackets: 0                                  # 0/1
  namedGroupingBracesBrackets: 0                                    # 0/1
  UnNamedGroupingBracesBrackets: 0                                  # 0/1
  specialBeginEnd: 0                                                # 0/1
  afterHeading: 0                                                   # 0/1
  filecontents: 0                                                   # 0/1

# set indentRules globally for codeblocks; these need
# to be horizontal spaces, if they are to be used
indentRulesGlobal:
  environments: 0                                                   # 0/h-space
  commands: 0                                                       # 0/h-space
  optionalArguments: 0                                              # 0/h-space
  mandatoryArguments: 0                                             # 0/h-space
  ifElseFi: 0                                                       # 0/h-space
  items: 0                                                          # 0/h-space
  keyEqualsValuesBracesBrackets: 0                                  # 0/h-space
  namedGroupingBracesBrackets: 0                                    # 0/h-space
  UnNamedGroupingBracesBrackets: 0                                  # 0/h-space
  specialBeginEnd: 0                                                # 0/h-space
  afterHeading: 0                                                   # 0/h-space
  filecontents: 0                                                   # 0/h-space

# command code block details
commandCodeBlocks:
  roundParenthesesAllowed: 1
  stringsAllowedBetweenArguments:
    -
      amalgamate: 1
    - node
    - at
    - to
    - decoration
    - \+\+
    - \-\-
    - \#\#\d
  commandNameSpecial:
    -
      amalgamate: 1
    - '@ifnextchar\['

# change dos line breaks into unix
dos2unixlinebreaks: 1

# modifyLineBreaks will only be searched if the -m
# switch is active
#
# poly-switch examples:
#
#    BeginStartsOnOwnLine:
#       modify line breaks before a begin statement
#
#       when set to -1, e.g
#               some text some text
#               \begin{myenvironment}
#           will be changed to
#               some text some text \begin{myenvironment}
#       when set to 0, the switch is ignored
#       when set to 1, e.g
#               some text some text \begin{myenvironment}
#           will be changed to
#               some text some text
#               \begin{myenvironment}
#       when set to 2, e.g
#               some text some text \begin{myenvironment}
#           will be changed to
#               some text some text%
#               \begin{myenvironment}
#       when set to 3, e.g
#               some text some text \begin{myenvironment}
#           will be changed to
#               some text some text
#
#               \begin{myenvironment}
#
#    BodyStartsOnOwnLine:
#       modify line breaks before the beginning of the body
#
#       when set to -1, e.g
#               \begin{myenv}
#                   body text body text
#           will be changed to
#               \begin{myenv}body text body text
#       when set to 0, the switch is ignored
#       when set to 1, e.g
#               \begin{myenv}body text body text
#           will be changed to
#               \begin{myenv}
#                   body text body text
#       when set to 2, e.g
#               \begin{myenv}body text body text
#           will be changed to
#               \begin{myenv}%
#                   body text body text
#       when set to 3, e.g
#               \begin{myenv}body text body text
#           will be changed to
#               \begin{myenv}
#
#                   body text body text
#
#    EndStartsOnOwnLine:
#       modify line breaks before the end statement
#
#       when set to -1, e.g
#               some text some text
#               \end{myenvironment}
#           will be changed to
#               some text some text \end{myenvironment}
#       when set to 0, the switch is ignored
#       when set to 1, e.g
#               some text some text \end{myenvironment}
#           will be changed to
#               some text some text
#               \end{myenvironment}
#       when set to 2, e.g
#               some text some text \end{myenvironment}
#           will be changed to
#               some text some text%
#               \end{myenvironment}
#       when set to 3, e.g
#               some text some text \end{myenvironment}
#           will be changed to
#               some text some text
#
#               \end{myenvironment}
#
#    EndFinishesWithLineBreak:
#       modify line breaks after the end statement
#
#       when set to -1, e.g
#               \end{myenvironment}
#               some text some text
#           will be changed to
#                   \end{myenvironment}some text some text
#       when set to 0, the switch is ignored
#       when set to 1, e.g
#               \end{myenvironment}some text some text
#           will be changed to
#                   \end{myenvironment}
#                   some text some text
#       when set to 2, e.g
#               \end{myenvironment}some text some text
#           will be changed to
#                   \end{myenvironment}%
#                   some text some text
#       when set to 3, e.g
#               \end{myenvironment}some text some text
#           will be changed to
#                   \end{myenvironment}
#
#                   some text some text
#
# you can specify settings on a per-name basis
modifyLineBreaks:
  preserveBlankLines: 1                                             # 0/1
  condenseMultipleBlankLinesInto: 1                                 # 0/1
  oneSentencePerLine:
    manipulateSentences: 1                                          # 0/1
    removeSentenceLineBreaks: 1                                     # 0/1
    multipleSpacesToSingle: 1                                       # 0/1
    textWrapSentences: 1                                            # 1 disables main textWrap
    sentenceIndent: "    "
    sentencesFollow:
      par: 1                                                        # 0/1
      blankLine: 1                                                  # 0/1
      fullStop: 1                                                   # 0/1
      exclamationMark: 1                                            # 0/1
      questionMark: 1                                               # 0/1
      rightBrace: 1                                                 # 0/1
      commentOnPreviousLine: 1                                      # 0/1
      other: 0                                                      # regex
    sentencesBeginWith:            
      A-Z: 1                                                        # 0/1
      a-z: 0                                                        # 0/1
      other: 0                                                      # regex
    sentencesEndWith:
      basicFullStop: 0                                              # 0/1
      betterFullStop: 1                                             # 0/1
      exclamationMark: 1                                            # 0/1
      questionMark: 1                                               # 0/1
      other: |-                                                     # regex
        \\inputminted(?:\[.*\])?\{.*\}\{.+\}|:\s?\n
  textWrapOptions:
    columns: 80
    multipleSpacesToSingle: 1              
    removeBlockLineBreaks: 1
    when: before                                                    # before/after
    comments: 
      wrap: 1                                                       # 0/1
      inheritLeadingSpace: 1                                        # 0/1
    blocksFollow:
      headings: 1                                                   # 0/1
      commentOnPreviousLine: 1                                      # 0/1
      par: 1                                                        # 0/1
      blankLine: 1                                                  # 0/1
      verbatim: 1                                                   # 0/1
      filecontents: 1                                               # 0/1
      other: |-                                                     # regex
             (?x)
                \\\]
                |
                \\item(?:\h|\[)
                |
                \\begin\{itemize|enumerate\}
                |
                \\end\{itemize|enumerate\}
    blocksBeginWith:
      a-z: 1                                                        # 0/1
      A-Z: 1                                                        # 0/1
      0-9: 1                                                        # 0/1
      other: 0                                                      # regex
    blocksEndBefore:
      commentOnOwnLine: 1                                           # 0/1
      verbatim: 1                                                   # 0/1
      filecontents: 1                                               # 0/1
      other: \\begin\{|\\\[|\\end\{                                 # regex
    huge: overflow                                                  # forbid mid-word line breaks
    separator: ""
  # poly-switches below here -1: remove, 0: off, 1: add, 2: comment+add, 3: add blank line, 4: add blank line
  environments:                           
    BeginStartsOnOwnLine: 1                                         # -1,0,1,2,3,4
    BodyStartsOnOwnLine: 1                                          # -1,0,1,2,3,4
    EndStartsOnOwnLine: 1                                           # -1,0,1,2,3,4
    EndFinishesWithLineBreak: 1                                     # -1,0,1,2,3,4
    equation*:                          
      BeginStartsOnOwnLine: 0                                       # -1,0,1,2,3,4
      BodyStartsOnOwnLine: 0                                        # -1,0,1,2,3,4
      EndStartsOnOwnLine: 0                                         # -1,0,1,2,3,4
      EndFinishesWithLineBreak: 0                                   # -1,0,1,2,3,4
  ifElseFi:
    IfStartsOnOwnLine: 0                                            # -1,0,1,2,3,4
    BodyStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    OrStartsOnOwnLine: 0                                            # -1,0,1,2,3,4
    OrFinishesWithLineBreak: 0                                      # -1,0,1,2,3,4
    ElseStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    ElseFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4
    FiStartsOnOwnLine: 0                                            # -1,0,1,2,3,4
    FiFinishesWithLineBreak: 0                                      # -1,0,1,2,3,4 
    ifnum:
      IfStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
      BodyStartsOnOwnLine: 0                                        # -1,0,1,2,3,4
      OrStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
      OrFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4
      ElseStartsOnOwnLine: 0                                        # -1,0,1,2,3,4
      ElseFinishesWithLineBreak: 0                                  # -1,0,1,2,3,4
      FiStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
      FiFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4 
  commands:
    CommandStartsOnOwnLine: 0          
    CommandNameFinishesWithLineBreak: 0
  optionalArguments:
    LSqBStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    OptArgBodyStartsOnOwnLine: 0                                    # -1,0,1,2,3,4
    RSqBStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    RSqBFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4
  mandatoryArguments:                     
    LCuBStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    MandArgBodyStartsOnOwnLine: 0                                   # -1,0,1,2,3,4
    RCuBStartsOnOwnLine: 0                                          # -1,0,1,2,3,4 
    RCuBFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4 
  keyEqualsValuesBracesBrackets:
    KeyStartsOnOwnLine: 0                                           # -1,0,1,2,3,4
    EqualsStartsOnOwnLine: 0                                        # -1,0,1,2,3,4
    EqualsFinishesWithLineBreak: 0                                  # -1,0,1,2,3,4 
  items:                                  
    ItemStartsOnOwnLine: 1                                          # -1,0,1,2,3,4
    ItemFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4
  namedGroupingBracesBrackets:
    NameStartsOnOwnLine: 0                                          # -1,0,1,2,3,4
    NameFinishesWithLineBreak: 0                                    # -1,0,1,2,3,4
  specialBeginEnd:
    SpecialBeginStartsOnOwnLine: 0                                  # -1,0,1,2,3,4
    SpecialBodyStartsOnOwnLine: 0                                   # -1,0,1,2,3,4
    SpecialEndStartsOnOwnLine: 0                                    # -1,0,1,2,3,4
    SpecialEndFinishesWithLineBreak: 0                              # -1,0,1,2,3,4
  verbatim:
    VerbatimBeginStartsOnOwnLine: 0                                 # -1,0,1,2,3,4
    VerbatimEndFinishesWithLineBreak: 0                             # -1,0,1,2,3,4

# replacements, only active when either -r or -rr switches are active
replacements:
  -
    amalgamate: 1
  -
    this: latexindent.pl
    that: pl.latexindent
    lookForThis: 0
    when: before

# fineTuning allows you to tweak the internal pattern matching that
# is central to latexindent.pl
fineTuning:
  environments:
    name: [a-zA-Z@\*0-9_\\]+
  ifElseFi:
    name: (?!@?if[a-zA-Z@]*?\{)@?if[a-zA-Z@]*?
  commands:
    name: [+a-zA-Z@\*0-9_\:]+?
  items:
    canBeFollowedBy: (?:\[[^]]*?\])|(?:<[^>]*?>)
  keyEqualsValuesBracesBrackets:
    name: [a-zA-Z@\*0-9_\/.:\#-]+[a-zA-Z@\*0-9_\/.\h\{\}:\#-]*?
    follow: (?:(?<!\\)\{)|,|(?:(?<!\\)\[)
  namedGroupingBracesBrackets:
    name: [0-9\.a-zA-Z@\*><]+?
    follow: \h|\R|\{|\[|\$|\)|\(
  UnNamedGroupingBracesBrackets:
    follow: \{|\[|,|&|\)|\(|\$
  arguments:
    before: (?:#\d\h*;?,?\/?)+|\<.*?\>
    between: _|\^|\*
  trailingComments:
    notPreceededBy: (?<!\\)
  modifyLineBreaks:
    doubleBackSlash: \\\\(?:\h*\[\h*\d+\h*[a-zA-Z]+\h*\])?
    comma: ','
    betterFullStop: |-
      (?x)                                                          # ignore spaces in the below
      (?:                                                           #
        \.\)                                                        # .) 
        (?!\h*[a-z])                                                # not *followed by* a-z
      )                                                             #
      |                                                             # OR
      (?:                                                           #
        (?<!                                                        # not *preceded by*
          (?:                                                       #
            (?:[eE]\.[gG])                                          # e.g OR E.g OR e.G OR E.G
            |                                                       #
            (?:[iI]\.[eE])                                          # i.e OR I.e OR i.E OR I.E
            |                                                       #
            (?:etc)                                                 # etc
          )                                                         #
        )                                                           #
      )                                                             # 
      \.                                                            # .
      (?!                                                           # not *followed by*
        (?:                                                         #
          [a-zA-Z0-9-~,./]                                          #
          |                                                         #
          \),                                                       # ),
          |                                                         #
          \)\.                                                      # ).
        )                                                           #
      )                                                             #

actual/given output

\section{Overview}
 This report analyzes the relationship between different aspects of a movie and
     its gross income.
 These aspects include director list, actor list, runtime and so on.
 To investigate these relationships, we looked at a comprehensive dataset
     compiled by the movie ranking website IMDB.com.
 This dataset includes information about a movie like the director, the actors,
     the genre.

 We found ..

desired or expected output

\section{Overview}
    This report analyzes the relationship between different aspects of a movie and
        its gross income.
    These aspects include director list, actor list, runtime and so on.
    To investigate these relationships, we looked at a comprehensive dataset
        compiled by the movie ranking website IMDB.com.
    This dataset includes information about a movie like the director, the actors,
        the genre.

    We found ..

anything else

I can't work out why the indentation after \section{} is just a space instead of 4 spaces as defined in the config. Other headings like \subsection{} or \paragraph{} indent correctly. I don't think the config has changed, but after updating latexindent from 3.20.2 (I think it was that version) to 3.20.4, it's started doing this.

P.S. Sorry the config is so long, I copied the default settings then edited them to make that file, and I don't know where the issue is.

cmhughes commented 1 year ago

I see you've closed this, did you find a solution?

oathompsonjones commented 1 year ago

Yep, I realised that some settings in the default settings file weren't being overridden in my settings file.