Code Review
निरंजन
Hello all, I have pushed an experimental version of package gfdl yesterday. This package aims to aid users in using the GFDL in LaTeX documents. My code can be accessed from [here](https://git.gnu.org.ua/gfdl-tex.git/tree). One can issue the following command to clone it anonymously:

bash
git clone http://git.gnu.org.ua/gfdl-tex.git


and the following to clone it with ssh:

bash
git clone ssh://git.gnu.org.ua/gfdl-tex.git


I would like to get reviews on the following points:

1. Is the code optimal? Can something be optimized?
1. Is the user-documentation explanatory of what my package can do? Any typographic/grammatical/conceptual/formational errors can be reported.
1. Is the code-documentation explanatory of what my code can do? Is there anything that needs to be improved?
1. The .sty file loads a file named gfdl-tex-1p3.tex. It is actually a modified version of the official LaTeX-file shared by the FSF which can be found on [the license page](https://www.gnu.org/licenses/fdl-1.3.tex) itself. I personally do feel that there are certain typographical problems which I don't know how to resolve. E.g., try the following code (you may use l3build install before trying the code).


\documentclass{article}
\usepackage{gfdl}

\begin{document}
Hello world.
\end{document}


If we look at p. 6 of the resultant PDF, a section title is stranded at the end of a page. I don't like this, but I also don't want to make it class/environment-specific. This package should produce identical results class-independently. The only thing that is allowed to change is the margins. Nothing else.

The original file by FSF has centered section-titles. Being a big time lover of standard LaTeX styles, I hate this, but I am afraid that using standard \sectioning commands could lead to problems when I change the class. I am also going to talk with FSF people and ask them if they are okay with left-aligned titles, but if they don't agree (which has a higher chance) I will just stick to what they suggest.

Which benefits of a standard LaTeX document am I missing on by not using the typical commands of LaTeX for class-independence? How to have them without actually using LaTeX commands?
1. Any miscellaneous remarks which doesn't fit in any of the items in the list given above.

---

For everyone's convenience I am adding the .sty file here:


\ProvidesPackage{gfdl}[2022/12/15 v0
For using the GFDL in LaTeX.]
\RequirePackage{float}
\RequirePackage{expkv-def,expkv-opt}
\newif\ifgfdl@noticenotprinted
\gfdl@noticenotprintedtrue
\ekvdefinekeys{gfdl}{
invbool     manual     = {\ifgfdl@printgfdl},
choice      version    = {%
1.1                  = {\def\gfdl@version{1p1}},%
1.2                  = {\def\gfdl@version{1p2}},%
1.3                  = {\def\gfdl@version{1p3}}%
},
initial     version    = {1.3}
}
\ekvoProcessLocalOptions{gfdl}
\else
\fi
}
}
}
\else
\PackageWarningNoLine{gfdl}{%
Copyright-able years not given. I can't print the
\MessageBreak
copyright notice without them. To give me this
\MessageBreak
command.\MessageBreak Using ??' as a placeholder%
}%
\fi
\else
\PackageWarningNoLine{gfdl}{%
Copyright-holders not given. I can't print the
\MessageBreak
copyright notice without them. To give me this
\MessageBreak
command.\MessageBreak Using ??' as a placeholder%
}%
\fi
\RequirePackage{csquotes}%
}%
\RequirePackage{hyperref}%
}%
\RequirePackage{hyperxmp}%
}%
\hypersetup{%
\textLF
\fi
Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU Free
Documentation License, Version 1.3 or any later
with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included
in the section entitled “GNU Free Documentation
},%
}%
}%
}
\newfloat{gfdl@float}{b}{delme}
\NewDocumentCommand{ \printgfdlnotice }{  }{%
\begin{gfdl@float}[b!]
\hrule\medskip
\fi

Permission is granted to copy, distribute and/or modify
this document under the terms of the GNU Free
Documentation License, Version 1.3 or any later version
Invariant Sections, no Front-Cover Texts, and no
Back-Cover Texts. A copy of the license is included in
the section entitled \enquote{%
}.%
\end{gfdl@float}%
\gfdl@noticenotprintedfalse
}
\ifgfdl@printgfdl
\printgfdlnotice
\fi
}
\NewDocumentCommand{ \printgfdltext }{  }{%
\input{gfdl-tex-\gfdl@version.tex}%
}
\ifgfdl@printgfdl
\newpage
\phantomsection
}%
\printgfdltext
\fi
\ifgfdl@noticenotprinted
\PackageError{gfdl}{%
You didn't print the copyright notice%
}{%
You are in the manual' mode of the GFDL package and
hence you\MessageBreak are supposed to print the
copyright notice at a suitable place\MessageBreak of
your choice, but you haven't printed it at all. This
violates\MessageBreak the requirement of the GFDL. To
print it use:\MessageBreak
\space\space\string\printgfdlnotice.%
}%
\fi
\PackageError{gfdl}{%
You didn't print the license text%
}%
{%
You are in the manual' mode of the GFDL package and hence you%
\MessageBreak
are supposed to print the full license text at a suitable place%
\MessageBreak
of your choice, but you haven't printed it at all. This violates%
\MessageBreak
the requirement of the GFDL. To print it use:%
\MessageBreak
\space\space\string\printgfdltext.%
}%
\fi
}
\endinput


Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.