Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oneSentencePerLine also breaks lines on abbreviations #557

Open
reneas opened this issue Aug 18, 2024 · 4 comments
Open

oneSentencePerLine also breaks lines on abbreviations #557

reneas opened this issue Aug 18, 2024 · 4 comments
Labels
answered question has been answered one-sentence-per-line one sentence per line; documented at https://latexindentpl.readthedocs.io/en/latest/sec-the-m-switch question user-centred question about behaviour of latexindent.pl

Comments

@reneas
Copy link

reneas commented Aug 18, 2024

So this is maybe a little tricky because it is happening in tables (but not only)...
Maybe one could write a regex that excludes certain abbreviations like max. or ca. from being treated as the end of a sentence? Unfortunately I'm not that familiar with regex structure so I don't really know how to do that. But maybe there is an easier soluton that I overlooked?

original .tex code

\begin{table}[ht"]
\centering
\caption{Empfohlene Prozessparameter für die Entgratung mit Fräser \& Ausgleichshalter}
\label{tab:empfohlene_parameter_frser}
\begin{tabular}{@{}lll@{}}
\toprule
\textbf{Parameter}      & \textbf{Einheit}  & \textbf{Wert}   \\ \midrule
Drehzahl $n$            & $\tfrac{U}{min}$  & 6.000 - 8.000   \\
max. Drehzahl $n_{max}$ & $\tfrac{U}{min}$  & 10.000          \\
Vorschub $v_f$          & $\tfrac{mm}{min}$ & 2.000 - 10.0000 \\
Zustellung axial $a_p$  & $[ mm ]$          & ca. $0,25*d_t$  \\
Zustellung radial $a_e$ & $[ mm ]$          & ca. $0,3*d_t$   \\ \bottomrule
\end{tabular}
\end{table}

yaml settings

mysettings.txt ← My settings file:
changes.txtdiff file between defautlSettings.yaml and mysettings.yaml: [

actual/given output

\begin{table}[ht!]
	\centering
	\caption{Empfohlene Prozessparameter für die Entgratung mit Fräser \& Ausgleichshalter}
	\label{tab:empfohlene_parameter_frser}
	\begin{tabular}{@{}lll@{}}
		\toprule
		\textbf{Parameter}      & \textbf{Einheit} & \textbf{Wert} \\ \midrule
		Drehzahl $n$            & $\tfrac{U}{min}$ & 6.000 - 8.000 \\
		max.
		Drehzahl $n_{max}$      & $\tfrac{U}{min}$ & 10.000        \\ Vorschub $v_f$ & $\tfrac{mm}{min}$ & 2.000 - 10.0000 \\ Zustellung axial $a_p$ & $[ mm ]$ & ca.
		$0,25*d_t$                                                 \\
		Zustellung radial $a_e$ & $[ mm ]$         & ca. $0,3*d_t$ \\ \bottomrule
	\end{tabular}
\end{table}

desired or expected output

\begin{table}[ht!]
	\centering
	\caption{Empfohlene Prozessparameter für die Entgratung mit Fräser \& Ausgleichshalter}
	\label{tab:empfohlene_parameter_frser}
	\begin{tabular}{@{}lll@{}}
		\toprule
		\textbf{Parameter}      & \textbf{Einheit}  & \textbf{Wert}   \\ \midrule
		Drehzahl $n$            & $\tfrac{U}{min}$  & 6.000 - 8.000   \\
		max. Drehzahl $n_{max}$ & $\tfrac{U}{min}$  & 10.000          \\
		Vorschub $v_f$          & $\tfrac{mm}{min}$ & 2.000 - 10.0000 \\
		Zustellung axial $a_p$  & $[ mm ]$          & ca. $0,25*d_t$  \\
		Zustellung radial $a_e$ & $[ mm ]$          & ca. $0,3*d_t$   \\ \bottomrule
	\end{tabular}
\end{table}
@cmhughes
Copy link
Owner

Thanks for this.

Using the following

modifyLineBreaks:
  oneSentencePerLine:
    manipulateSentences: 1              # 0/1
    sentencesDoNOTcontain:
      other: (?:\\begin|\\\\)

gives the output

\begin{table}[ht"]
	\centering
	\caption{Empfohlene Prozessparameter für die Entgratung mit Fräser \& Ausgleichshalter}
	\label{tab:empfohlene_parameter_frser}
	\begin{tabular}{@{}lll@{}}
		\toprule
		\textbf{Parameter}      & \textbf{Einheit}  & \textbf{Wert}   \\ \midrule
		Drehzahl $n$            & $\tfrac{U}{min}$  & 6.000 - 8.000   \\
		max. Drehzahl $n_{max}$ & $\tfrac{U}{min}$  & 10.000          \\
		Vorschub $v_f$          & $\tfrac{mm}{min}$ & 2.000 - 10.0000 \\
		Zustellung axial $a_p$  & $[ mm ]$          & ca. $0,25*d_t$  \\
		Zustellung radial $a_e$ & $[ mm ]$          & ca. $0,3*d_t$   \\ \bottomrule
	\end{tabular}
\end{table}

For reference, see https://latexindentpl.readthedocs.io/en/latest/sec-the-m-switch.html#onesentenceperline-sentencesdonotcontain

@cmhughes cmhughes added question user-centred question about behaviour of latexindent.pl answered question has been answered one-sentence-per-line one sentence per line; documented at https://latexindentpl.readthedocs.io/en/latest/sec-the-m-switch labels Aug 26, 2024
cmhughes added a commit that referenced this issue Aug 26, 2024
@reneas
Copy link
Author

reneas commented Aug 26, 2024

Oh great! So with that regex I can also manipulate if other abbreviations in the middle of the sentence should be treated as end of sentences?
Or would I rather modify the fine tuning of the better full stop like shown here?
I just found out that AI is my best friend for writing regexes so that should not be a problem anymore :)

@cmhughes
Copy link
Owner

cmhughes commented Aug 26, 2024 via email

@reneas
Copy link
Author

reneas commented Aug 26, 2024

So what I did now is a combination of both. I used your suggested

sentencesDoNOTcontain:
      other: (?:\\begin|\\\\)

And the modification of the betterFullStop

    betterFullStop: |-
      (?x)                                # ignore spaces in the below
      (?:                                 #
        \.\)                              # .)
        (?!\h*[a-z])                      # not *followed by* a-z
      )                                   #
      |                                   # OR
      (?:                                 #
        (?<!                              # not *preceded by*
          (?:                             #
            (?:z)                         #
            |                             #
            (?:[zZ]\.[tT])                # z.T.
            |                             #
            (?:al)                        # et al.
            |                             #
            (?:[zZ]\.[bB])                # z.B.
            |                             #
            (?:[bB]zw)                    # bzw.
            |                             #
            (?:[mM]ax)                    # max.
            |                             #
            (?:[uU]\.[aA)                 # u.a.
            |                             #
            (?:[cC][aA])                  # ca
            |                             #
...

But some occurences still don't get recognized if there is a \\ or a \begin{quote}

\subsection{(Automatisiertes) maschinelles mechanisches Entgraten}
		Wie bereits erwähnt, eignen sich nicht alle Verfahren des mechanischen Entgratens für die Anwendung auf einer CNC-Maschine.
		Es existiert allerdings eine Palette an Möglichkeiten, Dieses durchzuführen.
		Hierzu gehören vor allem verschiedene Formen von Fräsern und Bürsten mit verschiedensten Geometrien und aus zahlreichen Materialien.
		Diese können auch schwer zugängliche Stellen zuverlässig entgraten.
		\\
		Viele mechanische Entgratungsprozesse für komplexere Bauteile z.
		B.
		in der Luft- und Raumfahrt werden auch heute noch von Hand durchgeführt, da die zu entgratenden Teile eine Vielzahl an Graten besitzen, die teilweise sehr schwer zu erreichen sein können.

or

               \begin{quote}
			\textit{\textbf{Grat} ist ein auf einer Werkstückoberfläche bei der Herstellung eines Werkstücks entstandener Körper, der über die angestrebte und tatsächlich vorhandene Werkstückoberfläche hinausragt und im Vergleich zum Werkstück meist ein geringeres Volumen hat, unerwünscht, aber z.
				T. unumgänglich ist.
			}
		\end{quote}

Where as here it works as intended (with the z.B. in the first item):

	\begin{itemize}
		\item \textbf{Einschränkung der Funktion:}
		      Grate können die Funktionalität eines Bauteils beeinträchtigen und eine Montage erschweren/unmöglich machen (z.B. bei ineinander einzuführenden Bauteilen).
		\item \textbf{Ergonomie:}
		      Grate können scharfkantig sein und somit eine Verletzungsgefahr bei Bearbeitung und Handhabung darstellen.
		\item \textbf{Ästhetik:}
		      Grate können die Optik eines Bauteils beeinträchtigen und somit die Qualität des Bauteils mindern.
	\end{itemize}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
answered question has been answered one-sentence-per-line one sentence per line; documented at https://latexindentpl.readthedocs.io/en/latest/sec-the-m-switch question user-centred question about behaviour of latexindent.pl
Projects
None yet
Development

No branches or pull requests

2 participants