17 ноября 2014 г.

LibreOffice Math: Работа над ошибками

Эта статья является продолжением статьи Пример ввода сложной формулы в LibreOffice Math. После публикации в комментариях были сделаны некоторые замечания. Исправления в статью я внес, но считаю, что нужно более явно провести работу над ошибками.
Первоначальный вариант формулы выглядел так:
Код:
T(b) = left lbrace
matrix {
int { {{( lline x+4 rline )}^-{1 over 4} - {1 over 92}}over{x - {1 over 97}} partial x }
#
alignl{nitalic{,если x<-4,13;}}
##
left lline x + {1 over26} right rline "-" 2
#
alignl{nitalic{,если {} x in [-4,13;4,42];}}
##
int {{ sqrt{ {b+{1over53}}}+24}over{b+{1 over 97}} partial b }
#
alignl{nitalic{,иначе.}}
}
right none


Замечания были следующие.

Михаил Демидов
1) Всё же, как мне представляется, nitalic надо применять только к слову «если», а не к условию целиком, т.е. {nitalic{,если} x<-4,13;}. Кнут в книге «Всё про ТеХ» когда-то писал, что переменные в математическом тексте выделяют курсивом всегда, а не только непосредственно в формулах.

2) В строке left lline x + {1 over26} right rline — 2 перед цифрой 2 стоит не минус, а длинное тире. Это опечатка или так зачем-то задумано?

3) Интересно, а есть ли способ как-то избавиться от неприятного пробела перед точкой после слова «иначе»?
В первом замечании мой недочет. Изначально была введена команда:
nitalic{,если x<-4,13;}

В данном случае лучше было бы использовать кавычки:
", если "x"<-4,13";

Такая комбинация менее громоздкая и позволяет вводить символы так, как они есть. При таком наборе сохраняются все пробелы и решается замечания №2 и №3.

С учетом исправлений, код формулы выглядит теперь так:
T(b) = left lbrace
matrix {
int { {{( lline x+4 rline )}^-{1 over 4} - {1 over 92}}over{x - {1 over 97}} partial x }
#
alignl{", если "x"<-4,13;"}
##
left lline x + {1 over26} right rline — 2
#
alignl{", если "x in "[-4,13;4,42];"}
##
int {{ sqrt{ {b+{1over
53}}}+24}over{b+{1 over 97}} partial b }
#
alignl{", иначе."}
}
right none