[ 
https://issues.apache.org/jira/browse/JDO-798?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tobias Bouschen updated JDO-798:
--------------------------------
    Description: 
As we were having many issues with the current specification written using 
OpenOffice, I want to propose to migrate it to LaTeX.

If you are not aware, LaTeX is basically an open-source scripting language that 
can be used to define and build PDF documents. The content as well as the 
document layout is defined as plain text sources, from which the PDF is 
generated.

You can create LaTeX sources with any plain-text editor, but if you would like 
more support, there are also multiple IDEs for LaTeX. I think one of the most 
well known ones (and the one I used in the past) is 
[TexMaker|https://www.xm1math.net/texmaker/].

In my opinion, switching to LaTeX would provide multiple benefits:
 # The Specification sources would be held in plain-text files. As a result, 
they can be managed by git. As a result, it will be much easier to concurrently 
work on the same parts of the document as git can be used to resolve conflicts. 
Furthermore, as the sources are in plain text, it is much easier to review 
changes to the documents as you can just look at the diff.
 # It will be much easier to define a general styling (like header, footer, 
font, text size, etc.) for the entire document. This styling will be used 
everywhere unless explicitly defined otherwise in the text. Such local changes 
to the styling will be explicitly visible as they will be defined through 
commands. As a result it will be much easier to check where the styling no 
longer matches and why this is the case.
 # LaTeX supports a far more fine-grained control over the styling. If you are 
unhappy with the layout of a specific page/section/chapter (i.e. the location 
of a figure or an unseemly line break or page break), you have many different 
tools to adjust the formatting as necessary. While layouting in LaTeX can be 
fiddly as well, in my experience, it at least is never a mystery why a page has 
the layout is has.
 # The styling in LaTeX is much more customizable. You can change pretty much 
everything about the styling you want to. While this can take a lot of time if 
you have a very specific vision of how it is supposed to look or are trying to 
implement a very complex styling, it is easy to create a passable styling in a 
very short time.
 # LaTeX provides robust support for many automatically generated document 
features such as table of contents, bibliographies, indices, relative links to 
other parts of the document, etc. Most of these features are included in the 
default build, but if they are not (like bibliographies), additional steps can 
simply be defined in a build script (like a make file). As a result, you can 
simply build the entire document with a single command and don't have to worry 
about any automatically generated content not being up to date.
 # LaTeX provides a lot of additional helpful features like code sections with 
automatic code highlighting, automatically managed footnotes, figures with 
captions (which are actually bound to the figure), etc. And, even if a feature 
is not supported by default, it is very likely that there is a user-package to 
add support.
 # LaTeX should be platform-independent, meaning the generated document should 
look the same on all platforms.
 # Like the current OpenOffice document, LaTeX allows to split the content of 
the document into multiple files (i.e. a file per chapter). But, in Latex, the 
partitioning of the file (i.e. where a chapter/section starts) is always very 
apparent as this is defined through different commands.

My current idea would be to first define the general styling of the document 
(which will probably take a couple of iterations until we are completely happy 
with it) and then migrate the old documentation chapter by chapter. During this 
process, I would like to leave out the index and the assertions. I don't really 
see the value they provide and, to be honest, therefore don't feel like putting 
in the large amount of busywork they require. But if you think they are 
important, it will be easy to add them later on (which would also give us 
another opportunity to go through all indices and assertions and check whether 
they are correct).

To give you a better idea of the proposal, I will first create a small sample 
document (using a chapter of the current spec) to give a general overview of 
how a LaTeX-based Spec would work and what a possible layout would be.

  was:
As we were having many issues with the current specification written using 
OpenOffice, I want to propose to migrate it to LaTeX.

If you are not aware, LaTeX is basically an open-source scripting language that 
can be used to define and build PDF documents. The content as well as the 
document layout is defined as plain text sources, from which the PDF is 
generated.

You can create LaTeX sources with any plain-text editor, but if you would like 
more support, there are also multiple IDEs for LaTeX. I think one of the most 
well known ones (and the one I used in the past) is 
[TexMaker|https://www.xm1math.net/texmaker/].

In my opinion, switching to LaTeX would provide multiple benefits:
 * The Specification sources would be held in plain-text files. As a result, 
they can be managed by git. As a result, it will be much easier to concurrently 
work on the same parts of the document as git can be used to resolve conflicts. 
Furthermore, as the sources are in plain text, it is much easier to review 
changes to the documents as you can just look at the diff.
 * It will be much easier to define a general styling (like header, footer, 
font, text size, etc.) for the entire document. This styling will be used 
everywhere unless explicitly defined otherwise in the text. Such local changes 
to the styling will be explicitly visible as they will be defined through 
commands. As a result it will be much easier to check where the styling no 
longer matches and why this is the case.
 * LaTeX supports a far more fine-grained control over the styling. If you are 
unhappy with the layout of a specific page/section/chapter (i.e. the location 
of a figure or an unseemly line break or page break), you have many different 
tools to adjust the formatting as necessary. While layouting in LaTeX can be 
fiddly as well, in my experience, it at least is never a mystery why a page has 
the layout is has.
 * The styling in LaTeX is much more customizable. You can change pretty much 
everything about the styling you want to. While this can take a lot of time if 
you have a very specific vision of how it is supposed to look or are trying to 
implement a very complex styling, it is easy to create a passable styling in a 
very short time.
 * LaTeX provides robust support for many automatically generated document 
features such as table of contents, bibliographies, indices, relative links to 
other parts of the document, etc. Most of these features are included in the 
default build, but if they are not (like bibliographies), additional steps can 
simply be defined in a build script (like a make file). As a result, you can 
simply build the entire document with a single command and don't have to worry 
about any automatically generated content not being up to date.
 * LaTeX provides a lot of additional helpful features like code sections with 
automatic code highlighting, automatically managed footnotes, figures with 
captions (which are actually bound to the figure), etc. And, even if a feature 
is not supported by default, it is very likely that there is a user-package to 
add support.
 * LaTeX should be platform-independent, meaning the generated document should 
look the same on all platforms.
 * Like the current OpenOffice document, LaTeX allows to split the content of 
the document into multiple files (i.e. a file per chapter). But, in Latex, the 
partitioning of the file (i.e. where a chapter/section starts) is always very 
apparent as this is defined through different commands.

My current idea would be to first define the general styling of the document 
(which will probably take a couple of iterations until we are completely happy 
with it) and then migrate the old documentation chapter by chapter. During this 
process, I would like to leave out the index and the assertions. I don't really 
see the value they provide and, to be honest, therefore don't feel like putting 
in the large amount of busywork they require. But if you think they are 
important, it will be easy to add them later on (which would also give us 
another opportunity to go through all indices and assertions and check whether 
they are correct).

To give you a better idea of the proposal, I will first create a small sample 
document (using a chapter of the current spec) to give a general overview of 
how a LaTeX-based Spec would work and what a possible layout would be.


> Proposal – Migrate Specification to LaTeX
> -----------------------------------------
>
>                 Key: JDO-798
>                 URL: https://issues.apache.org/jira/browse/JDO-798
>             Project: JDO
>          Issue Type: Task
>            Reporter: Tobias Bouschen
>            Assignee: Tobias Bouschen
>            Priority: Minor
>
> As we were having many issues with the current specification written using 
> OpenOffice, I want to propose to migrate it to LaTeX.
> If you are not aware, LaTeX is basically an open-source scripting language 
> that can be used to define and build PDF documents. The content as well as 
> the document layout is defined as plain text sources, from which the PDF is 
> generated.
> You can create LaTeX sources with any plain-text editor, but if you would 
> like more support, there are also multiple IDEs for LaTeX. I think one of the 
> most well known ones (and the one I used in the past) is 
> [TexMaker|https://www.xm1math.net/texmaker/].
> In my opinion, switching to LaTeX would provide multiple benefits:
>  # The Specification sources would be held in plain-text files. As a result, 
> they can be managed by git. As a result, it will be much easier to 
> concurrently work on the same parts of the document as git can be used to 
> resolve conflicts. Furthermore, as the sources are in plain text, it is much 
> easier to review changes to the documents as you can just look at the diff.
>  # It will be much easier to define a general styling (like header, footer, 
> font, text size, etc.) for the entire document. This styling will be used 
> everywhere unless explicitly defined otherwise in the text. Such local 
> changes to the styling will be explicitly visible as they will be defined 
> through commands. As a result it will be much easier to check where the 
> styling no longer matches and why this is the case.
>  # LaTeX supports a far more fine-grained control over the styling. If you 
> are unhappy with the layout of a specific page/section/chapter (i.e. the 
> location of a figure or an unseemly line break or page break), you have many 
> different tools to adjust the formatting as necessary. While layouting in 
> LaTeX can be fiddly as well, in my experience, it at least is never a mystery 
> why a page has the layout is has.
>  # The styling in LaTeX is much more customizable. You can change pretty much 
> everything about the styling you want to. While this can take a lot of time 
> if you have a very specific vision of how it is supposed to look or are 
> trying to implement a very complex styling, it is easy to create a passable 
> styling in a very short time.
>  # LaTeX provides robust support for many automatically generated document 
> features such as table of contents, bibliographies, indices, relative links 
> to other parts of the document, etc. Most of these features are included in 
> the default build, but if they are not (like bibliographies), additional 
> steps can simply be defined in a build script (like a make file). As a 
> result, you can simply build the entire document with a single command and 
> don't have to worry about any automatically generated content not being up to 
> date.
>  # LaTeX provides a lot of additional helpful features like code sections 
> with automatic code highlighting, automatically managed footnotes, figures 
> with captions (which are actually bound to the figure), etc. And, even if a 
> feature is not supported by default, it is very likely that there is a 
> user-package to add support.
>  # LaTeX should be platform-independent, meaning the generated document 
> should look the same on all platforms.
>  # Like the current OpenOffice document, LaTeX allows to split the content of 
> the document into multiple files (i.e. a file per chapter). But, in Latex, 
> the partitioning of the file (i.e. where a chapter/section starts) is always 
> very apparent as this is defined through different commands.
> My current idea would be to first define the general styling of the document 
> (which will probably take a couple of iterations until we are completely 
> happy with it) and then migrate the old documentation chapter by chapter. 
> During this process, I would like to leave out the index and the assertions. 
> I don't really see the value they provide and, to be honest, therefore don't 
> feel like putting in the large amount of busywork they require. But if you 
> think they are important, it will be easy to add them later on (which would 
> also give us another opportunity to go through all indices and assertions and 
> check whether they are correct).
> To give you a better idea of the proposal, I will first create a small sample 
> document (using a chapter of the current spec) to give a general overview of 
> how a LaTeX-based Spec would work and what a possible layout would be.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to