Type object
File match latexindent.yaml .latexindent.yaml
Schema URL https://catalog.lintel.tools/schemas/schemastore/latexindent-configuration/latest.json
Source https://github.com/cmhughes/latexindent.pl/raw/main/documentation/latexindent-yaml-schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

latexindent.pl YAML schema helper, V4.0 2026-03-15

Properties

fileExtensionPreference object

calling latexindent.pl to operate on myfile (without extension) is fine, and in which case the file extensions from this field will be used in order

backupExtension string

when the -w, --overwrite switch is active, a back-up file is created with this extension

onlyOneBackUp integer

when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. Changing onlyOneBackUp to 1 means that only one back-up file is created

Values: 0 1
maxNumberOfBackUps integer

when the -w, --overwrite switch is active, the default is to create a back-up file for each call to latexindent.pl. This field sets the maximum number of back-up files

min=0
cycleThroughBackUps integer

when the -w, --overwrite switch is active, back-up files can be overwritten in order; see also maxNumberOfBackUps

Values: 0 1
logFilePreferences object

latexindent.pl will write logging information to indent.log; the appearance of some of the information can be customised

7 nested properties
showEveryYamlRead integer

0/1, binary switch to show every YAML file's settings in indent.log

Values: 0 1
showAmalgamatedSettings integer

0/1, binary switch to show the overall/amalgamated settings in indent.log

Values: 0 1
showDecorationStartCodeBlockTrace integer

0/1, binary switch to show decorations at start of code block in indent.log when -t, -tt switches active

Values: 0 1
showDecorationFinishCodeBlockTrace integer

0/1, binary switch to show decorations at finish of code block in indent.log when -t, -tt switches active

Values: 0 1
endLogFileWith string

string decoration to finish indent.log

showGitHubInfoFooter integer

0/1, binary switch to show GitHub information in footer of indent.log

Values: 0 1
Dumper object

options to be passed to the Dumper module; most helpful when -t, -tt active.

7 nested properties
Terse integer
Values: 0 1
Indent integer
Values: 0 1
Useqq integer
Values: 0 1
Deparse integer
Values: 0 1
Quotekeys integer
Values: 0 1
Sortkeys integer
Values: 0 1
Pair string
verbatimEnvironments object

specify the names of verbatim environments in this field

verbatimCommands object

specify the names of verbatim commands in this field

noIndentBlock object

specify the names of noIndentBlock in this field

fileContentsEnvironments object

specify the names of filecontents in this field

indentPreamble integer

0/1, binary switch to instruct latexindent.pl to operate on preamble or not

Values: 0 1
lookForPreamble object

list of extensions detailing which files latexindent.pl should look for preamble

preambleCommandsBeforeEnvironments integer

0/1, binary switch to instruct latexindent.pl to search for commands before environments in preamble

Values: 0 1
defaultIndent string

default indentation, needs to be specified as horizontal space

removeTrailingWhitespace object

remove horizontal space at the end of lines

2 nested properties
beforeProcessing integer

0/1, binary switch to remove horizontal space before indenting

Values: 0 1
afterProcessing integer

0/1, binary switch to remove horizontal space after indenting

Values: 0 1
lookForAlignDelims object

list of names of code blocks detailing that latexindent.pl should align at delimiters

indentAfterItems object

specify the names of environments that contain items

itemNames object

names of items

specialBeginEnd object

special code blocks have begin, end, and optionally 'middle' specified as regular expressions

1 nested properties
specialBeforeCommand integer

0/1, binary switch to look for commands before special code blocks

Values: 0 1
indentAfterHeadings object

indentation after headings

maximumIndentation string | integer

maximum value of indentation; specify as horizontal space

noAdditionalIndent object

names of code blocks to not have additional indentation

indentRules object

per-code block indentation rule

noAdditionalIndentGlobal object

types of code blocks to not have additional indentation

12 nested properties
environments integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
commands integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
optionalArguments integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
mandatoryArguments integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
ifElseFi integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
items integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
keyEqualsValuesBracesBrackets integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
namedGroupingBracesBrackets integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
UnNamedGroupingBracesBrackets integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
specialBeginEnd integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
afterHeading integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
filecontents integer

0/1, binary switch to mean type of code block does not have/has additional indentation

Values: 0 1
indentRulesGlobal object

types of code blocks indentation rules

12 nested properties
environments integer | string

indentation rules per type of code block

commands integer | string

indentation rules per type of code block

optionalArguments integer | string

indentation rules per type of code block

mandatoryArguments integer | string

indentation rules per type of code block

ifElseFi integer | string

indentation rules per type of code block

items integer | string

indentation rules per type of code block

keyEqualsValuesBracesBrackets integer | string

indentation rules per type of code block

namedGroupingBracesBrackets integer | string

indentation rules per type of code block

UnNamedGroupingBracesBrackets integer | string

indentation rules per type of code block

specialBeginEnd integer | string

indentation rules per type of code block

afterHeading integer | string

indentation rules per type of code block

filecontents integer | string

indentation rules per type of code block

commandCodeBlocks object

command code blocks need some particular attention

3 nested properties
roundParenthesesAllowed integer

0/1, binary switch to not allow/allow round parenthesis () between arguments

Values: 0 1
stringsAllowedBetweenArguments integer | array

strings allowed between arguments

commandNameSpecial integer | array

there are some particular commands that need individual attention

dos2unixlinebreaks integer

0/1, binary switch to convert dos line breaks to unix line breaks

Values: 0 1
modifyLineBreaks object

when -m switch active, latexindent.pl has ability to modify line breaks

14 nested properties
preserveBlankLines integer

0/1, binary switch to preserve blank lines or not

Values: 0 1
condenseMultipleBlankLinesInto integer

condense multiple blank lines into this many blank lines

min=0
oneSentencePerLine
9 nested properties
manipulateSentences integer

0/1, binary switch to perform one sentence per line routine or not

Values: 0 1
removeSentenceLineBreaks integer

0/1, binary switch to remove line breaks from within sentences or not

Values: 0 1
multipleSpacesToSingle integer

0/1, binary switch to convert multiple spaces into single spaces or not

Values: 0 1
textWrapSentences integer

0/1, binary switch to text wrap sentences or not

Values: 0 1
sentenceIndent string

horizontal space representing indentation within sentences

sentencesFollow

things that sentences can follow

8 nested properties
par integer

0/1, binary switch to determine if sentences can follow \par or not

Values: 0 1
blankLine integer

0/1, binary switch to determine if sentences can follow blank lines or not

Values: 0 1
fullStop integer

0/1, binary switch to determine if sentences can follow blank lines or not

Values: 0 1
exclamationMark integer

0/1, binary switch to determine if sentences can follow ! or not

Values: 0 1
questionMark integer

0/1, binary switch to determine if sentences can follow ? or not

Values: 0 1
rightBrace integer

0/1, binary switch to determine if sentences can follow } or not

Values: 0 1
commentOnPreviousLine integer

0/1, binary switch to determine if sentences can follow % on previous line or not

Values: 0 1
other integer | string

regular expression detailing what else sentences can follow

sentencesBeginWith

things that sentences can begin with

3 nested properties
A-Z integer

0/1, binary switch to determine if sentences can begin upper case letters or not

Values: 0 1
a-z integer

0/1, binary switch to determine if sentences can begin lower case letters or not

Values: 0 1
other integer | string

regular expression detailing what else sentences can begin with

sentencesEndWith

things that sentences can end with

5 nested properties
basicFullStop integer

0/1, binary switch to determine if sentences can end with basic full stop (period) or not

Values: 0 1
betterFullStop integer

0/1, binary switch to determine if sentences can end with better full stop (period) or not (RECOMMENDED)

Values: 0 1
exclamationMark integer

0/1, binary switch to determine if sentences can end with ! or not

Values: 0 1
questionMark integer

0/1, binary switch to determine if sentences can end with ? or not

Values: 0 1
other integer | string

regular expression detailing what else sentences can end with

sentencesDoNOTcontain

things that sentences cannot contain

1 nested properties
other integer | string

regular expression detailing what sentences cannot contain. Can be turned off by setting 0

textWrapOptions object

options for the text wrap routine

14 nested properties
columns integer

integer > 0 sets the number of columns for the text wrap routine, or if -1 then text wrap blocks simply have line breaks removed

min=-1
multipleSpacesToSingle integer

0/1, binary switch to determine whether text wrap should convert multiple spaces to single space

Values: 0 1
removeBlockLineBreaks integer

0/1, binary switch to determine whether text wrap should convert multiple spaces to single space

Values: 0 1
when string

optional: string specifying whether text wrapping should be made before/after code blocks have been found. Default is 'before' if not specified

Values: "before" "after"
comments object

instructions for wrapping comments

2 nested properties
wrap integer

0/1, binary switch to determine whether comments should be combined and wrapped

Values: 0 1
inheritLeadingSpace integer

0/1, binary switch to determine whether comments should inherit leading spaces

Values: 0 1
blocksFollow object

field containing switches that text wrap blocks follow

7 nested properties
headings integer

0/1, binary switch to instruct latexindent to find text wrap blocks after the fields listed in indentAfterHeading (regardless of the value of indentAfterThisHeading or level) or not. The heading command can, optionally, be followed by a label command

Values: 0 1
commentOnPreviousLine integer

0/1, binary switch to instruct latexindent to find text wrap blocks after a comment on its own line or not

Values: 0 1
par integer

0/1, binary switch to instruct latexindent to find text wrap blocks after \par or not

Values: 0 1
blankLine integer

0/1, binary switch to instruct latexindent to find text wrap blocks after a blank line or not

Values: 0 1
verbatim integer

0/1, binary switch to instruct latexindent to find text wrap blocks after a verbatim block or not

Values: 0 1
filecontents integer

0/1, binary switch to instruct latexindent to find text wrap blocks after a filecontents environment or not

Values: 0 1
other string

regular expression detailing what text wrap blocks should follow. Can be turned off by setting 0. The default value corresponds to the end of display math or an item command

blocksBeginWith object

field containing switches that text wrap blocks begin with

4 nested properties
A-Z integer

0/1, binary switch to determine whether text wrap block can begin with an uppercase letter or not

Values: 0 1
a-z integer

0/1, binary switch to determine whether text wrap block can begin with a lowercase letter or not

Values: 0 1
0-9 integer

0/1, binary switch to determine whether text wrap block can begin with a digit or not

Values: 0 1
other integer | string

regular expression detailing what text wrap blocks can begin with. Can be turned off by setting 0. Default is 0 if not specified

blocksEndBefore object

field containing switches that text wrap blocks end before

4 nested properties
commentOnOwnLine integer

0/1, binary switch to determine whether text wrap block should end before a comment on its own line or not

Values: 0 1
verbatim integer

0/1, binary switch to determine whether text wrap block should end before a verbatim environment or not

Values: 0 1
filecontents integer

0/1, binary switch to determine whether text wrap block should end before a filecontents environment or not

Values: 0 1
other string

regular expression detailing what text wrap blocks should end before. Can be turned off by setting 0. The default value corresponds to begin statements, display math, and end statements

huge string

WARNING: I don't recommend changing this from overflow; passed to Perl's Text::Wrap module

Values: "overflow" "wrap" "die"
tabstop integer

passed to Perl's Text::Wrap module

separator string

passed to Perl's Text::Wrap module

separator2 string

passed to Perl's Text::Wrap module

break string

passed to Perl's Text::Wrap module

unexpand integer

passed to Perl's Text::Wrap module

Values: 0 1
environments object

poly-switches for environments (GLOBAL)

4 nested properties
BeginStartsOnOwnLine integer

poly-switch for line break before beginning of environments (GLOBAL)

Values: -1 0 1 2 3 4
BodyStartsOnOwnLine integer

poly-switch for line break before body of environments (GLOBAL)

Values: -1 0 1 2 3 4
EndStartsOnOwnLine integer

poly-switch for line break before end of environments (GLOBAL)

Values: -1 0 1 2 3 4
EndFinishesWithLineBreak integer

poly-switch for line break after end of environments (GLOBAL)

Values: -1 0 1 2 3 4
specialBeginEnd object

poly-switches for specialBeginEnd (GLOBAL)

4 nested properties
SpecialBeginStartsOnOwnLine integer

poly-switch for line break before beginning of specialBeginEnd (GLOBAL)

Values: -1 0 1 2 3 4
SpecialBodyStartsOnOwnLine integer

poly-switch for line break before body of specialBeginEnd (GLOBAL)

Values: -1 0 1 2 3 4
SpecialEndStartsOnOwnLine integer

poly-switch for line break before end of specialBeginEnd (GLOBAL)

Values: -1 0 1 2 3 4
SpecialEndFinishesWithLineBreak integer

poly-switch for line break after end of specialBeginEnd (GLOBAL)

Values: -1 0 1 2 3 4
keyEqualsValuesBracesBrackets object

poly-switches for key equals value (GLOBAL)

3 nested properties
KeyStartsOnOwnLine integer

poly-switch for line break before beginning of key equals value (GLOBAL)

Values: -1 0 1 2 3 4
EqualsStartsOnOwnLine integer

poly-switch for line break before = of key equals value (GLOBAL)

Values: -1 0 1 2 3 4
EqualsFinishesWithLineBreak integer

poly-switch for line break after = of key equals value (GLOBAL)

Values: -1 0 1 2 3 4
ifElseFi object

poly-switches for ifElseFi (GLOBAL)

8 nested properties
IfStartsOnOwnLine integer

poly-switch for line break before beginning of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
BodyStartsOnOwnLine integer

poly-switch for line break before body of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
OrStartsOnOwnLine integer

poly-switch for line break before or statement of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
OrFinishesWithLineBreak integer

poly-switch for line break after or statement of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
ElseStartsOnOwnLine integer

poly-switch for line break before else statement of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
ElseFinishesWithLineBreak integer

poly-switch for line break after else statement of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
FiStartsOnOwnLine integer

poly-switch for line break before end of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
FiFinishesWithLineBreak integer

poly-switch for line break after end of ifElseFi (GLOBAL)

Values: -1 0 1 2 3 4
commands object

poly-switches for commands (GLOBAL)

2 nested properties
CommandStartsOnOwnLine integer

poly-switch for line break before beginning of commands (GLOBAL)

Values: -1 0 1 2 3 4
CommandNameFinishesWithLineBreak integer

poly-switch for line break after end of commands (GLOBAL)

Values: -1 0 1 2 3 4
verbatim object

poly-switches for verbatim (GLOBAL)

2 nested properties
VerbatimBeginStartsOnOwnLine integer

poly-switch for line break before beginning of verbatim (GLOBAL)

Values: -1 0 1 2 3 4
VerbatimEndFinishesWithLineBreak integer

poly-switch for line break after end of verbatim (GLOBAL)

Values: -1 0 1 2 3 4
namedGroupingBracesBrackets object

poly-switches for namedGroupingBracesBrackets (GLOBAL)

2 nested properties
NameStartsOnOwnLine integer

poly-switch for line break before beginning of namedGroupingBracesBrackets (GLOBAL)

Values: -1 0 1 2 3 4
NameFinishesWithLineBreak integer

poly-switch for line break after end of namedGroupingBracesBrackets (GLOBAL)

Values: -1 0 1 2 3 4
items object

poly-switches for items (GLOBAL)

2 nested properties
ItemStartsOnOwnLine integer

poly-switch for line break before beginning of items (GLOBAL)

Values: -1 0 1 2 3 4
ItemFinishesWithLineBreak integer

poly-switch for line break after end of items (GLOBAL)

Values: -1 0 1 2 3 4
optionalArguments object

poly-switches for optional arguments (GLOBAL)

4 nested properties
LSqBStartsOnOwnLine integer

poly-switch for line break before beginning of optional arguments (GLOBAL)

Values: -1 0 1 2 3 4
OptArgBodyStartsOnOwnLine integer

poly-switch for line break before body of optional arguments (GLOBAL)

Values: -1 0 1 2 3 4
RSqBStartsOnOwnLine integer

poly-switch for line break before end of optional arguments (GLOBAL)

Values: -1 0 1 2 3 4
RSqBFinishesWithLineBreak integer

poly-switch for line break after end of optional arguments (GLOBAL)

Values: -1 0 1 2 3 4
mandatoryArguments object

poly-switches for mandatory arguments (GLOBAL)

4 nested properties
LCuBStartsOnOwnLine integer

poly-switch for line break before beginning of mandatory arguments (GLOBAL)

Values: -1 0 1 2 3 4
MandArgBodyStartsOnOwnLine integer

poly-switch for line break before body of mandatory arguments (GLOBAL)

Values: -1 0 1 2 3 4
RCuBStartsOnOwnLine integer

poly-switch for line break before end of mandatory arguments (GLOBAL)

Values: -1 0 1 2 3 4
RCuBFinishesWithLineBreak integer

poly-switch for line break after end of mandatory arguments (GLOBAL)

Values: -1 0 1 2 3 4
replacements object[]

replacements to be made; requires -r, -rr or -rv switch

fineTuning object

fine tuning, proceed with caution!

10 nested properties
environments object

fine tuning, for environments

1 nested properties
name string

regular expression for environment name

ifElseFi object

fine tuning, for ifElseFi

1 nested properties
name string

regular expression for ifElseFi name

commands object

fine tuning, for commands

1 nested properties
name string

regular expression for commands name

items object

fine tuning, for items

1 nested properties
canBeFollowedBy string

regular expression for what can follow items

keyEqualsValuesBracesBrackets object

fine tuning, for keyEqualsValuesBracesBrackets

2 nested properties
name string

regular expression for key = value name

follow string

regular expression for what key = values follow

namedGroupingBracesBrackets object

fine tuning, for namedGroupingBracesBrackets

2 nested properties
name string

regular expression for named grouping braces name

follow string

regular expression for what named grouping braces follow

UnNamedGroupingBracesBrackets object

fine tuning, for UnNamedGroupingBracesBrackets

1 nested properties
follow string

regular expression for what UN named grouping braces follow

arguments object

fine tuning, for arguments

2 nested properties
before string

regular expression for what can come BEFORE arguments

between string

regular expression for what can come BETWEEN arguments

trailingComments object

fine tuning, for trailing comments

3 nested properties
notPrecededBy string

regular expression for what can NOT come before %, for example %

notPreceededBy string

please use notPrecededBy instead

afterComment string

regular expression for what can come after %

modifyLineBreaks object

fine tuning for some of the -m switch based features

3 nested properties
betterFullStop string

regular expression for the 'better full stop' in the one-sentence-per-line routine

doubleBackSlash string

regular expression for the double back slash used in the DBS poly-switches

comma string

regular expression for the comma used in the comma-based poly-switches