https://bugs.documentfoundation.org/show_bug.cgi?id=155358

            Bug ID: 155358
           Summary: Render incomplete matrices while writing
           Product: LibreOffice
           Version: 7.5.1.2 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: medium
         Component: Formula Editor
          Assignee: [email protected]
          Reporter: [email protected]

Description:
______________________
1. PROBLEM DESCRIPTION

Currently, LibreOffice Math equations will not render incomplete parts. This is
most painful when writing equations with large matrices, since the live-preview
is effectively disabled until writing the matrix is finished.

For other structures, writing some scaffolding before filling in the contents
can help, for instance writing

    left( right)

before filling in the contents between the parentheses. But for a matrix,
writing

    left(matrix{
      m_1' E # 0 # 0 # 0 # dotsaxis ##
      0 # I_1' # 0 # 0 # dotsaxis ##
      0 # 0 # m_2 E
    }right)

still won't render, was matrices are only rendered when all rows have the same
length.


________________________
2. SUGGESTED ENHANCEMENT

Instead it could be rendered as

    left(matrix{
      m_1' E # 0    # 0     # 0   # dotsaxis ##
      0      # I_1' # 0     # 0   # dotsaxis ##
      0      # 0    # m_2 E # <?> # <?>
    }right)

and something like

    left(matrix{
      m_1' E # 0    # 0     # 0   # dotsaxis ##
      0      # I_1' # 0     # 0   # dotsaxis ##
    }right)

could be rendered as either

    left(matrix{
      m_1' E # 0    # 0 # 0   # dotsaxis ##
      0      # I_1' # 0 # 0   # dotsaxis
    }right)

or

    left(matrix{
      m_1' E # 0    # 0     # 0   # dotsaxis ##
      0      # I_1' # 0     # 0   # dotsaxis ##
      <?>    # <?>  # <?>   # <?> # <?>
    }right)


________________________________________
3. WORKAROUND AND WHY IT IS INSUFFICIENT

This *can* be solved by preparing a scaffolding

    left(matrix{
        . # . # . # . # . # . ##
        . # . # . # . # . # . ##
        . # . # . # . # . # . ##
        . # . # . # . # . # . ##
        . # . # . # . # . # .
    }right)

but is very inconvenient, and doesn’t work if during writing it turns out that
an additional column has to be added, especially in the middle. Additionally,
creating such a large scaffolding structure breaks the flow of writing a lot
more than a simpler construct like left( right).

The latter scaffoldings in many cases are even already supported as keyboard
shortcuts, such as

    Shift+F10, B, H

to insert

    left( <?> right)

and select the <?> placeholder. No such thing exists for matrices, for which a
whole wizard would be needed.


_______________________________________________
4. ADVANTAGE OF HANDLING SPECIAL CASE OF MATRIX

Similar issues arise for many other constructs. While eliminating the need for
a "scaffolding first" style of writing equations would be desirable, it would
results in unclear situations, especially when editing in the middle of an
equation.

For instance,

    f(t) = sin(a +

could reasonably be rendered as

    f(t) = sin(a + <?>)

but when encountering

    f(t) = sin(a +   cos(c + d)

its not clear if rendering this as

    f(t) = sin(a + cos(c + d) )

would be a desirable change.

By contrast, filling up a matrix with <?> until it is a complete rectangular
matrix affects only the rendering of one component of the equation, and will at
worst result in shifting expression from one column to the next, when another
column is added in the middle.



___________
ATTACHMENTS

The enhancement request text with the equations being rendered:
  * text_with_euqations.odt
  * text_with_euqations.pdt


Steps to Reproduce:
In LibreOffice Math, write 

    matrix{
       a # b # c ## 
       d # e ##
       f
    }

Actual Results:
Only a single ? is rendered, i.e. the matrix is not rendered at all
effectively.

Expected Results:
Instead it could be rendered as if the user had written

In LibreOffice Math, write 

    matrix{
       a # b   # c   ## 
       d # e   # <?> ##
       f # <?> # <?>
    }


Reproducible: Always


User Profile Reset: Yes

Additional Info:
Tested with:

Version: 7.5.1.2 (X86_64) / LibreOffice Community
Build ID: fcbaee479e84c6cd81291587d2ee68cba099e129
CPU threads: 12; OS: Linux 5.3; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF8); UI: en-US
Flatpak
Calc: threaded

Version: 7.3.6.2 / LibreOffice Community
Build ID: 30(Build:2)
CPU threads: 12; OS: Linux 5.3; UI render: default; VCL: gtk3
Locale: de-AT (en_US.UTF8); UI: en-US
Calc: threaded

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to