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

Formatting text inside `\textit{}` block #344

Closed litoj closed 2 years ago

litoj commented 2 years ago

When I put a paragraph inside \textit{}, it gives me a weird output: original .tex code

\textit{
Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a
všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000
Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole
Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a
práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení
územního rozsahu.
}

yaml settings

modifyLineBreaks:
  textWrapOptions:
    columns: 91
    perCodeBlockBasis: 1
    tabstop: 2
    all: 1
  removeParagraphLineBreaks:
    all: 1
    beforeTextWrap: 1

actual/given output

\textit{
    Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a všechna použitá literatura a další zdroje jsou v
    práci uvedené. Tímto dle zákona 121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších
    předpisů uděluji bezúplatně škole Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a práva na sdělování díla
    veřejnosti (§ 18) na dobu časově neomezenou a bez omezení územního rozsahu.
}

expected output

\textit{
    Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené
    a všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona
    121/2000 Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole
    Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a
    práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení
    územního rozsahu.
}

Also, a rather feature request: could I somehow enable textWrap and removeParagraphLineBeaks within defining parentheses of variables, like so:?

\def\AnotaceDE{
    Dieses Projekt stellt sich vor, eine Seite zu machen, auf welcher Studenten ihre...
    per Email informiert. Die gleiche Email wird auch bei der Google OAuth Anmeldung benutzt.
    Ihre Email bekommt alle Hinweisen, soll das ein neues Buch...
}

\def\AnotaceDE{
    Dieses Projekt stellt sich vor, eine Seite zu machen, auf welcher Studenten ihre...
    per Email informiert. Die gleiche Email wird auch bei der Google OAuth Anmeldung
    benutzt. Ihre Email bekommt alle Hinweisen, soll das ein neues Buch...
}
cmhughes commented 2 years ago

Apologies for the delay, there's a few questions that need answering.

litoj commented 2 years ago

No problem, it's just something I saw. I may try to work on it later too.

cmhughes commented 2 years ago

Apologies for the delay. You'll see that in https://github.com/cmhughes/latexindent.pl/issues/346 I'm hoping to overhaul the textWrap routine, and your issue will be one of the many tests that I include within it. I'm unsure as to the time frame, development is slow at the moment. My apologies.

litoj commented 2 years ago

It's not a problem, there is nothing to be apologizing for. I am grateful there even exists a program such as yours and I find it very useful either way.

cmhughes commented 2 years ago

As of https://github.com/cmhughes/latexindent.pl/issues/346 I have overhauled the text wrap part of latexindent.pl.

start file

\textit{
Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a
všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000
Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole
Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a
práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení
územního rozsahu.
}

settings

modifyLineBreaks:
    textWrapOptions:
        columns: 91
        blocksFollow:
           other: '\textit\{'

output

\textit{
    Prohlašuji, že jsem jediným autorem tohoto projektu, všechny citace jsou řádně označené a
    všechna použitá literatura a další zdroje jsou v práci uvedené. Tímto dle zákona 121/2000
    Sb. (tzv. Autorský zákon) ve znění pozdějších předpisů uděluji bezúplatně škole
    Gymnázium, Praha 6, Arabská 14 oprávnění k výkonu práva na rozmnožování díla (§ 13) a
    práva na sdělování díla veřejnosti (§ 18) na dobu časově neomezenou a bez omezení
    územního rozsahu.
}

I'll get V3.16 released soon.

litoj commented 2 years ago

but this doesn't change the text at all

cmhughes commented 2 years ago

I've given your expected output