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
868 stars 84 forks source link

Additional indentation in text after displaymath when textWrapOptions when is set to after #553

Closed DanielDelimata closed 1 month ago

DanielDelimata commented 2 months ago

Please provide the following when posting an issue:

original .tex code

\documentclass[11pt]{article}
\usepackage{amsmath}

% Document
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mi urna,
rhoncus nec leo a, vulputate ornare nisi. Nam varius, turpis ultrices
volutpat scelerisque, ipsum lorem consequat mi, id rutrum urna metus sit
amet urna. In et felis ac risus luctus blandit. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Proin sem diam, dignissim vitae pharetra vitae, feugiat et mi. Duis
sagittis massa ac venenatis dignissim. Ut eleifend efficitur mi. Quisque
eget turpis et sem consectetur condimentum. Etiam a dolor viverra est
sagittis egestas. Vestibulum dolor justo, dictum ut quam sit amet,
commodo suscipit justo. Fusce id tellus vel turpis suscipit aliquet sit
amet eu sapien. In pulvinar justo nec commodo accumsan.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Maecenas non tincidunt massa, in pulvinar nulla. Phasellus
mollis, purus vitae ultricies vulputate, orci orci interdum lacus, nec
vulputate mi felis ac risus. Quisque risus metus, consectetur ac nunc sed,
eleifend placerat risus. Integer quam odio, facilisis vitae massa nec, lobortis
ullamcorper massa. Integer consequat mauris id risus lacinia tincidunt. Nullam
vestibulum sapien leo, eget pretium magna tincidunt in. Mauris sodales
ultricies nisi id posuere. Integer blandit in diam vel consequat. Quisque sem
tellus, tincidunt in neque sit amet, accumsan lobortis urna. Praesent rutrum
nec leo non bibendum. In placerat mauris id tellus dictum porta. Nunc fringilla
imperdiet sollicitudin. Nunc a consequat libero, et congue sem. Nunc at semper
erat, vel iaculis tellus.\begin{equation*}E=mc^{2}\end{equation*} Quisque tincidunt mauris a sapien vestibulum hendrerit. Pellentesque in erat scelerisque, venenatis orci a, aliquam turpis. Praesent tempor neque eget condimentum placerat. Ut non interdum lorem. Sed ut odio ex. Cras tincidunt tristique aliquet. Phasellus eget nulla ipsum. Morbi et semper mi. Aenean non arcu orci. Mauris sit amet commodo purus. Sed vel viverra nunc. Fusce sollicitudin a leo eget convallis. Ut at pharetra tellus, in molestie arcu. Donec libero augue, feugiat vel velit eu, cursus tincidunt justo. Sed in mauris orci.

Aliquam purus nisi, posuere vel molestie convallis, lobortis quis est. Praesent
venenatis suscipit enim vel viverra. Aliquam ut nisl ultrices, pretium nisi eu,
consequat neque. Curabitur erat leo, dapibus ac tellus nec, elementum ultrices
tellus. Sed dapibus vel nibh id commodo. Pellentesque neque nunc, volutpat sit
amet lobortis a, hendrerit eu sem. Fusce tempor, ex in semper tempus, justo
neque accumsan elit, ac auctor tellus ex eget turpis. Nunc ut neque vel ipsum
tincidunt maximus quis at nisi. Aliquam erat volutpat. In sed placerat mauris.
Duis suscipit massa eget facilisis finibus. Donec vehicula, purus vel pharetra
euismod, quam tortor mollis dolor, sed varius eros velit ac turpis. Curabitur
arcu ipsum, facilisis non est eu, condimentum ultricies magna.\[E=mc^{2}\] Phasellus pretium dignissim lorem ullamcorper blandit. Integer nec sollicitudin turpis. Vivamus porttitor purus id metus faucibus, et scelerisque nibh fringilla. Nullam nec mi nulla. Sed vitae nunc tortor. Sed ex odio, accumsan in ex non, faucibus rutrum sem. Donec aliquet tincidunt scelerisque. Ut nisl leo, mollis in mattis non, suscipit aliquet odio. Phasellus tristique faucibus augue, vel blandit est malesuada eget. Curabitur ac dolor vehicula, porttitor metus id, posuere ligula. Nunc semper, augue sed varius placerat, nisi elit rhoncus velit, nec sodales quam tortor eu leo. Nullam dignissim fermentum fermentum. Proin sagittis efficitur consequat. Nullam maximus felis est, at bibendum turpis euismod in. Curabitur non interdum libero, quis pulvinar nibh. Sed non ultricies nisl.
\end{document}

yaml settings

defaultIndent: '    '

modifyLineBreaks:
    textWrapOptions:
        columns: 80
        when: after
    specialBeginEnd:
        SpecialBeginStartsOnOwnLine: 1      # -1,0,1,2,3,4
        SpecialBodyStartsOnOwnLine: 1       # -1,0,1,2,3,4
        SpecialEndStartsOnOwnLine: 1        # -1,0,1,2,3,4
        SpecialEndFinishesWithLineBreak: 1  # -1,0,1,2,3,4
    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

actual/given output

\documentclass[11pt]{article}
\usepackage{amsmath}

% Document
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mi urna,
rhoncus nec leo a, vulputate ornare nisi. Nam varius, turpis ultrices
volutpat scelerisque, ipsum lorem consequat mi, id rutrum urna metus sit
amet urna. In et felis ac risus luctus blandit. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Proin sem diam, dignissim vitae pharetra vitae, feugiat et mi. Duis
sagittis massa ac venenatis dignissim. Ut eleifend efficitur mi. Quisque
eget turpis et sem consectetur condimentum. Etiam a dolor viverra est
sagittis egestas. Vestibulum dolor justo, dictum ut quam sit amet,
commodo suscipit justo. Fusce id tellus vel turpis suscipit aliquet sit
amet eu sapien. In pulvinar justo nec commodo accumsan.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Maecenas non tincidunt massa, in pulvinar nulla. Phasellus
mollis, purus vitae ultricies vulputate, orci orci interdum lacus, nec
vulputate mi felis ac risus. Quisque risus metus, consectetur ac nunc sed,
eleifend placerat risus. Integer quam odio, facilisis vitae massa nec, lobortis
ullamcorper massa. Integer consequat mauris id risus lacinia tincidunt. Nullam
vestibulum sapien leo, eget pretium magna tincidunt in. Mauris sodales
ultricies nisi id posuere. Integer blandit in diam vel consequat. Quisque sem
tellus, tincidunt in neque sit amet, accumsan lobortis urna. Praesent rutrum
nec leo non bibendum. In placerat mauris id tellus dictum porta. Nunc fringilla
imperdiet sollicitudin. Nunc a consequat libero, et congue sem. Nunc at semper
erat, vel iaculis tellus.
\begin{equation*}
    E=mc^{2}
\end{equation*}
Quisque tincidunt mauris a sapien vestibulum hendrerit. Pellentesque in erat
scelerisque, venenatis orci a, aliquam turpis. Praesent tempor neque eget
condimentum placerat. Ut non interdum lorem. Sed ut odio ex. Cras tincidunt
tristique aliquet. Phasellus eget nulla ipsum. Morbi et semper mi. Aenean non
arcu orci. Mauris sit amet commodo purus. Sed vel viverra nunc. Fusce
sollicitudin a leo eget convallis. Ut at pharetra tellus, in molestie arcu.
Donec libero augue, feugiat vel velit eu, cursus tincidunt justo. Sed in mauris
orci.

Aliquam purus nisi, posuere vel molestie convallis, lobortis quis est. Praesent
venenatis suscipit enim vel viverra. Aliquam ut nisl ultrices, pretium nisi eu,
consequat neque. Curabitur erat leo, dapibus ac tellus nec, elementum ultrices
tellus. Sed dapibus vel nibh id commodo. Pellentesque neque nunc, volutpat sit
amet lobortis a, hendrerit eu sem. Fusce tempor, ex in semper tempus, justo
neque accumsan elit, ac auctor tellus ex eget turpis. Nunc ut neque vel ipsum
tincidunt maximus quis at nisi. Aliquam erat volutpat. In sed placerat mauris.
Duis suscipit massa eget facilisis finibus. Donec vehicula, purus vel pharetra
euismod, quam tortor mollis dolor, sed varius eros velit ac turpis. Curabitur
arcu ipsum, facilisis non est eu, condimentum ultricies magna.
\[
    E=mc^{2}
\]
Phasellus pretium dignissim lorem ullamcorper blandit. Integer nec
  sollicitudin turpis. Vivamus porttitor purus id metus faucibus, et
  scelerisque nibh fringilla. Nullam nec mi nulla. Sed vitae nunc tortor. Sed
  ex odio, accumsan in ex non, faucibus rutrum sem. Donec aliquet tincidunt
  scelerisque. Ut nisl leo, mollis in mattis non, suscipit aliquet odio.
  Phasellus tristique faucibus augue, vel blandit est malesuada eget. Curabitur
  ac dolor vehicula, porttitor metus id, posuere ligula. Nunc semper, augue sed
  varius placerat, nisi elit rhoncus velit, nec sodales quam tortor eu leo.
  Nullam dignissim fermentum fermentum. Proin sagittis efficitur consequat.
  Nullam maximus felis est, at bibendum turpis euismod in. Curabitur non
  interdum libero, quis pulvinar nibh. Sed non ultricies nisl.
\end{document}

desired or expected output

\documentclass[11pt]{article}
\usepackage{amsmath}

% Document
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris mi urna,
rhoncus nec leo a, vulputate ornare nisi. Nam varius, turpis ultrices
volutpat scelerisque, ipsum lorem consequat mi, id rutrum urna metus sit
amet urna. In et felis ac risus luctus blandit. Class aptent taciti
sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Proin sem diam, dignissim vitae pharetra vitae, feugiat et mi. Duis
sagittis massa ac venenatis dignissim. Ut eleifend efficitur mi. Quisque
eget turpis et sem consectetur condimentum. Etiam a dolor viverra est
sagittis egestas. Vestibulum dolor justo, dictum ut quam sit amet,
commodo suscipit justo. Fusce id tellus vel turpis suscipit aliquet sit
amet eu sapien. In pulvinar justo nec commodo accumsan.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Maecenas non tincidunt massa, in pulvinar nulla. Phasellus
mollis, purus vitae ultricies vulputate, orci orci interdum lacus, nec
vulputate mi felis ac risus. Quisque risus metus, consectetur ac nunc sed,
eleifend placerat risus. Integer quam odio, facilisis vitae massa nec, lobortis
ullamcorper massa. Integer consequat mauris id risus lacinia tincidunt. Nullam
vestibulum sapien leo, eget pretium magna tincidunt in. Mauris sodales
ultricies nisi id posuere. Integer blandit in diam vel consequat. Quisque sem
tellus, tincidunt in neque sit amet, accumsan lobortis urna. Praesent rutrum
nec leo non bibendum. In placerat mauris id tellus dictum porta. Nunc fringilla
imperdiet sollicitudin. Nunc a consequat libero, et congue sem. Nunc at semper
erat, vel iaculis tellus.
\begin{equation*}
    E=mc^{2}
\end{equation*}
Quisque tincidunt mauris a sapien vestibulum hendrerit. Pellentesque in erat
scelerisque, venenatis orci a, aliquam turpis. Praesent tempor neque eget
condimentum placerat. Ut non interdum lorem. Sed ut odio ex. Cras tincidunt
tristique aliquet. Phasellus eget nulla ipsum. Morbi et semper mi. Aenean non
arcu orci. Mauris sit amet commodo purus. Sed vel viverra nunc. Fusce
sollicitudin a leo eget convallis. Ut at pharetra tellus, in molestie arcu.
Donec libero augue, feugiat vel velit eu, cursus tincidunt justo. Sed in mauris
orci.

Aliquam purus nisi, posuere vel molestie convallis, lobortis quis est. Praesent
venenatis suscipit enim vel viverra. Aliquam ut nisl ultrices, pretium nisi eu,
consequat neque. Curabitur erat leo, dapibus ac tellus nec, elementum ultrices
tellus. Sed dapibus vel nibh id commodo. Pellentesque neque nunc, volutpat sit
amet lobortis a, hendrerit eu sem. Fusce tempor, ex in semper tempus, justo
neque accumsan elit, ac auctor tellus ex eget turpis. Nunc ut neque vel ipsum
tincidunt maximus quis at nisi. Aliquam erat volutpat. In sed placerat mauris.
Duis suscipit massa eget facilisis finibus. Donec vehicula, purus vel pharetra
euismod, quam tortor mollis dolor, sed varius eros velit ac turpis. Curabitur
arcu ipsum, facilisis non est eu, condimentum ultricies magna.
\[
    E=mc^{2}
\]
Phasellus pretium dignissim lorem ullamcorper blandit. Integer nec sollicitudin
turpis. Vivamus porttitor purus id metus faucibus, et scelerisque nibh
fringilla. Nullam nec mi nulla. Sed vitae nunc tortor. Sed ex odio, accumsan in
ex non, faucibus rutrum sem. Donec aliquet tincidunt scelerisque. Ut nisl leo,
mollis in mattis non, suscipit aliquet odio. Phasellus tristique faucibus
augue, vel blandit est malesuada eget. Curabitur ac dolor vehicula, porttitor
metus id, posuere ligula. Nunc semper, augue sed varius placerat, nisi elit
rhoncus velit, nec sodales quam tortor eu leo. Nullam dignissim fermentum
fermentum. Proin sagittis efficitur consequat. Nullam maximus felis est, at
bibendum turpis euismod in. Curabitur non interdum libero, quis pulvinar nibh.
Sed non ultricies nisl.
\end{document}

anything else

I would expect the following things:

DanielDelimata commented 1 month ago

Hello @cmhughes Why when: after is commented out in the test cases? This line was important. With the default when: before the additional indentation was not added anyway.

cmhughes commented 1 month ago

The settings I've given give your desired output for the code you've provided

On Mon, 5 Aug 2024, 06:52 Daniel Delimata, @.***> wrote:

Hello @cmhughes https://github.com/cmhughes Why when: after is commented out in the test cases? This line was important. With the default when: before the additional indentation was not added anyway.

— Reply to this email directly, view it on GitHub https://github.com/cmhughes/latexindent.pl/issues/553#issuecomment-2268227113, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ7CYFMLFHCX3O7ADOZTDLZP4HJZAVCNFSM6AAAAABLEMFKEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRYGIZDOMJRGM . You are receiving this because you were mentioned.Message ID: @.***>

DanielDelimata commented 1 month ago

I know this workaround, but my intention was pointing out improper behaviour with when: after setting.

Even if when: before would be good enough, don't you want to fix this inconsequence in behaviour?

cmhughes commented 1 month ago

The when:after feature is causing a lot of issues, and I'm closer to removing it than developing it.

On Mon, 5 Aug 2024, 18:33 Daniel Delimata, @.***> wrote:

I know this workaround, but my intention was pointing out improper behaviour with when: after setting.

Even if when: before would be good enough, don't you want to fix this inconsequence in behaviour?

— Reply to this email directly, view it on GitHub https://github.com/cmhughes/latexindent.pl/issues/553#issuecomment-2269570235, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQ7CYGLRNAUT3CDB2E6X53ZP6ZPTAVCNFSM6AAAAABLEMFKEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRZGU3TAMRTGU . You are receiving this because you were mentioned.Message ID: @.***>