• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Операции с тегом [math]

  • Автор темы Автор темы Trotil
  • Дата начала Дата начала

Trotil

Команда "У.М."
Текст ниже - авторский, с небольшими поправками. Автор - Антон Сухинов, автор скрипта. Позже будут исправления.

++ - будут убраны, это из-за большой длины выражения получилось.

Один нюанс: ввиду того, что зарезервированные комбинации, никогда не начинаются с маленькой буквы или цифры, то я решил комбинации вида @маленькая_буква и @цифра превращать в некоторые полезные часто используемые символы:

@a@b@c@d@e@f@g@h@i@j@k@l@m@n
@a@b@c@d@e@f@g@h@i@j@k@l@m@n&size=16
@o@p@q@r@s@t@u@v@w@x@y@z
@o@p@q@r@s@t@u@v@w@x@y@z&size=16
@0@1@2@3@4@5@6@7@8@9
@0@1@2@3@4@5@6@7@8@9&size=16

Видно, что некотрые символы я ещё не распределил (вопросительные знаки) принимаю предложения об их значении. @0 будет пустым множеством.

_Temp1 : Матрица

Этот шаблон имеет самый низкий приоритет. Это означает, что в его аргументах можно писать любые выражения, кроме матриц, не используя скобок.

Матрица управляется двумя символами: запятая (,) для разделения столбцов и (;) для разделения строк. Пустые строки (;;) игнорируются.

Строка считается матрицей, если в ней присутствует хотя бы один символ ";"

Синтаксис примерно такой:
(арг 1,1),(арг 1,2),...,(арг 1,N1);(арг 2,1),(арг 2,2),...,(арг 2,N2);...;(арг M,1),(арг M,2),...,(арг M,NM)

Видно, что в каждой строке может быть разное число столбцов.
Аргументы показаны в скобках. Это не значит, что они должны быть в скобках. Но если скобки есть, они будут "съедены".

Шаблоны съедают круглые и фигурные скобки!

Самый простой пример: a,b;c,d a,b;c,d

Съедение скобок: (a+1),|b^3|;{c^2},[d] (a+1),|b^3|;{c^2},[d]
Боремся со съедением скобок: ((a+1)),|b^3|;({c^2}),[d] ((a+1)),|b^3|;({c^2}),[d]

Эта строка матрицей не считается: (a^2),(b_2),(c^2),(d_2) (a^2),(b_2),(c^2),(d_2)
Чтобы она считалось матрицей с одной строкой, можно дописать в конце ";" (заметьте, теперь я могу убрать круглые скобки!) :
a^2,b_2,c^2,d_2; a^2,b_2,c^2,d_2;

Матрицу можно взять в скобки: (a^2,b_2;c^2,d_2) (a^2,b_2;c^2,d_2)
Вся эта строка не матрица: a,(b;c),d a,(b;c),d
В ней матрица лишь b;c потому, что в строке a,(b;c),d символа ";" нет! Он скрыт круглыми скобками!

И ещё одна особенность: двойная точка с запятой (;;) не вставляет в матрицу пустую строку, а оканчивает строку точкой с запятой: a,b;;c,d. a,b;;c,d.
Для вставки пустой строки можно, например сделать так: a,b;%;c,d. a,b;%;c,d.
Пустая строка получилась узкой из-за того, что пробел -- не высокий символ.

b]ШАБЛОН _Temp2 -- видимые пробелы[/b]

Поскольку обычные пробелы (которые пока приходится писать, как %) игнорируются, то возникает необходимость в видимых пробелах.
Вот они:

(@\,),(a\,b);(@\@<img src=,(a\:b);(@\@%),(a\%b);(@\@;%),(a\;b);(@\quad),(a\quadb);(@\qquad),(a\qquadb)" src="http://graph.mixei.ru/Formula/formula.php?f=(@\,),(a\,b);(@\@:),(a\:b);(@\@%),(a\%b);(@\@;%),(a\;b);(@\quad),(a\quadb);(@\qquad),(a\qquadb)">

ШАБЛОН _Temp3 -- отношение

Отношение -- это больше, меньше, равно, не равно...
Синтаксис: арг1 <> арг2,
где <> некоторый символ отношения (или последоватеьность символов)

Вот таблица отношений:

@<,<,@>,>,@=,=,@<@=,<=;@>@=,>=,@<@>,<>,@~,~,@~@-,~-;@~@~,~~,@~@=,~=,@=@=,==,@<@<,<<;@>@>,>>,@.@=,.=,@\parallel,\parallel,@\perp,\perp&size=12

@\in,\in%,@\notin,\notin,@\ni,\ni,@\subset,\subset;@\subseteq,\subseteq,@\supset,\supset,@\supseteq,\supseteq,@\succ,\succ;@\prec,\prec,@\succeq,\succeq,@\preceq,\preceq,@\asymp,\asymp;@\sqsubseteq,\sqsubseteq,@\sqsupseteq,\sqsupseteq,@\models,\models,@\vdash,\vdash&size=12

@\dashv,\dashv,@\smile,\smile,@\frown,\frown,@\mid,\mid;@\bowtie,\bowtie,@\propto,\propto,@-@>,->,@-@-@>,-->;@=@>,=>,@=@=@>,==>,@\mapsto,\mapsto,@\longmapsto,\longmapsto;@-@<,-<,@-@-@<,--<,@=@<,=<,@=@=@<,==<&size=12

@>@<,><,@<@-@>,<->,@<@=@>,<=>,@<@=@=@>,<==>;@\uparrow,\uparrow,@\Uparrow,\Uparrow,@\downarrow,\downarrow,@\Downarrow,\Downarrow;@\updownarrow,\updownarrow,@\Updownarrow,\Updownarrow,@\nearrow,\nearrow,@\searrow,\searrow;@\swarrow,\swarrow,@\nwarrow,\nwarrow,@\leadsto,\leadsto&size=12

Тут всё понятно, поэтому примера всего два:

a/b~=c&size=20
a/b~=c&size=20

(a,b;c,d)==0
(a,b;c,d)==0
 
Выравнивание в матрицах:

Если в матрице присутствует блок последовательно расположенных строк с одинаковым числом столбцов, то скрипт выравнивает эти столбцы в них так, чтобы они (столбцы) имели общий центр. Например:

(a,b,c;a+b,b+c,c+a;2+2;A,B,C,D;A^2,B^2,C^2,D^2)
(a,b,c;a+b,b+c,c+a;2+2;A,B,C,D;A^2,B^2,C^2,D^2)

А вот здесь выравнивания нет, так как нет последовательно расположенных строк с одинаковым числом столбцов:

(a,b,c;A,B,C,D;2+2;a+b,b+c,c+a;A^2,B^2,C^2,D^2)
(a,b,c;A,B,C,D;2+2;a+b,b+c,c+a;A^2,B^2,C^2,D^2)

Небольшой трюк для написания системы уравнений:
{(a+b=10;;a-b=2.)
{(a+b=10;;a-b=2.)
 
ШАБЛОН _Temp4: Плюс, минус и всё на них похожее

Синтаксис: арг1+-арг2, где "+-" символы шаблона:

@+,+,@-,-,@+@-,+-,@\pm,\pm;@-@+,-+,@\mp,\mp,@\setminus,\setminus,@\cap,\cap;@\cup,\cup,@\uplus,\uplus,@\sqcap,\sqcap,@\sqcup,\sqcup;@\vee,\vee,@\wedge,\wedge,@\oplus,\oplus,@\ominus,\ominus&size=12

@\triangleleft,\triangleleft,@\triangleright,\triangleright,@\amalg,\amalg,@\diamond,\diamond;@\wr,\wr,@\dagger,\dagger,@\ddagger,\ddagger,@\bigtriangleup,\bigtriangleup;@\bigcirc,\bigcirc,@\bigtriangledown,\bigtriangledown&size=12

Пример:
a+-b
a+-b

Шаблон Temp5 -- умножить, разделить и всё на них похожее

@*@*,**,@\times,\times,@:,:,@\div,\div;@*,*,@\cdot,\cdot,@\circ,\circ,@\bullet,\bullet;@\otimes,\otimes,@\odot,\odot,@\oslash,\oslash,@\star,\star&size=12

Это не просто текстовая подстановка. Это полноценный шаблон. Он выравнивает (как и плюс-минус) свои аргументы и свой знак по вертикали:
a*{z+SQRT(a^2/(b^2+c^2))}
a*{z+SQRT(a^2/(b^2+c^2))}
 
ШАБЛОН _Temp6 -- дробь

Синтаксис:
(арг1)/(арг2)
{арг1}\over{арг2}
(арг1)OVER(арг2)
\frac{арг1}{арг2}
FRAC(арг1)(арг2)

Этот шаблон съедает скобки аргументов. Выравнивает аргументы по горизонтали.

Пример:

\frac{a\overb+(FRACcd)^2}{e^2/f+g}
\frac{a\overb+(FRACcd)^2}{e^2/f+g}
 
ШАБЛОН _Temp7 -- операции с пределами

Синтаксис:

\Операция_{НижнийПредел}^{ВерхнийПредел}{Выражение}
Или:
ОПЕРАЦИЯ_(НижнийПредел)^(ВерхнийПредел)(Выражение)

Верхний или нижний пределы могут отсутствовать. Символ операции автоматически меняет свой размер под размер Выражения.

Вот таблица операций:
@\sum,\sum,@\prod,\prod,@\bigcup,\bigcup,@\bigcap,\bigcap;@\coprod,\coprod,@\bigoplus,\bigoplus,@\bigotimes,\bigotimes,@\bigodot,\bigodot;@\biguplus,\biguplus,@\lim,\lim,@\limsup,\limsup,@\liminf,\liminf;@\int,\int,@\iint,\iint,@\iiint,\iiint,@\oint,\oint&size=14

@\oiint,\oiint,@\min,\min,@\max,\max,@\inf,\inf;@\sup,\sup,@\det,\det,@\Pr,\Pr,@\gcd,\gcd&size=14

Пример:

\bigodot_{n=1}^{\Infinity}{a_n/b_n}
\bigodot_{n=1}^{\Infinity}{a_n/b_n}

ШАБЛОН _Temp8 -- квадратный корень
Синтаксис:
SQRT(арг1)
\sqrt{арг1}
SQRT[арг2](арг1)
\sqrt[арг2]{арг1}

Пример: \sqrt{a+SQRT[3](2/(3+\sqrt2))}
\sqrt{a+SQRT[3](2/(3+\sqrt2))}
 
ШАБЛОН _Temp9 - Верхний индекс, нижний индекс

Синтаксис:

a^(b)
a_(b)
a^{b}
a_{b}

Вот так это визуализируется:
a^(b)
a_(b)

Скобки не обязательны (тогда в качестве аргумента берётся один символ):

Допустим, скрипт встрчает запись: A^b. Если он выясняет, что аргумент A -- тоже шаблон _Temp9, то он смотрит, нет ли там места для верхнего индекса. Если есть, то верхний индекс b "проваливается" в шаблон А а текущий шаблон уничтожается. Аналогично для нижнего индекса.

Примеры a^b_c+a_b^c
a^b_c+a_b^c

Индекс проваливается не более, чем на один уровень:
a^2^2_b&size=30&b=true
a^2^2_b&size=30&b=true

И ещё (не путайте это):
2^2^2^2^2+2^(2^(2^(2^2)))=65536+2^65536&size=30&b=true
2^2^2^2^2+2^(2^(2^(2^2)))=65536+2^{65536}&size=30&b=true
 
ШАБЛОН _Temp19 - непарная скобка

Непарная скобка -- такая скобка, у которой нет пары.

Но какие из скобок в выражении (a{b)c} будут непарными???
Если фигурные скобки -- парные, то круглые -- не парные и наоборот.
Чтобы не возникало подобной неоднозначности, чкобки имеют приоритет:
Самый высокий у круглых скобок: () и невидимых скобок @()
Потом квадратные: [],
Потом фигурные: {},
Потом прямые: ||.

Проверим:
(a^2{b^2)c}
(a^2{b^2)c}

Как и следовало ожидать, круглые главнее.
Чтобы сделать непарную скобку, достаточно набрать её одну. Но как сделать непарную закрывающую и открывающую одновременно?

{a/b+\sqrt2} - парные:
{a/b+\sqrt2}

@({(a/b))+@((\sqrt2)}) - непарные:
@({(a/b))+@((\sqrt2)})

Синтаксис непарных скобок такой:

(арг,[(арг),{(арг),|(арг),арг),(арг)],(арг)},(арг)|,

Видно, что непарные скобки съедают парные скобки своего аргумента.
Тонкости связаны со скобкой |
Поскольку на глаз практически невозможно отличить такую закрывающую скобку от такой открывающей, то непарная скобка | всегда закрывающая, за исключением того случая, когда она стоит в начале контекста.

Например:

(a^2/(b^2+1))|(c/d) -- закрывающая непарная
(a^2/(b^2+1))|(c/d)

(a^2/(b^2+1))@(|(c/d)) -- открывающая непарная
(a^2/(b^2+1))@(|(c/d))
 
Вот так можно это использовать:

{(x+y<2;x-2y<4;[(x<0;x>10))
{(x+y<2;x-2y<4;[(x<0;x>10))

((@(@d^2)(x^3-2))/(@dx^2))|_(x=2)=12
((@(@d^2)(x^3-2))/(@dx^2))|_(x=2)=12
 
ШАБЛОН _Temp20 - парные скобки
Тут всё просто:
Все они были приведены в разделе "непарные скобки", там же было рассказано про приоритет.

Следует лишь уделить внимание вложению скобок ||
Так не получится (хочу модуль разности модулей):
||a^2-b|-|c-d||
||a^2-b|-|c-d||

Но парные прямые скобки съедают скобки аргумента. Их синтаксис: |(a)|, поэтому я могу написать:
|(|a^2-b|-|c-d|)|
|(|a^2-b|-|c-d|)|

Вот ещё пример:
([{([{a^2}])}])
([{([{a^2}])}])

Контрольный вопрос: какую кривую описывают скобки в этом примере:
1))))))))))))))))))))))))))))))))
1))))))))))))))))))))))))))))))))
 
Шаблон _Temp21 -- спецсимвол

Синтаксис : \название_символа
Название символа чувствительно к регистру:

\Alpha\alpha
\Alpha\alpha

Скрипт выполняет поиск названия по своей таблице с учётом регистра.

Например:
R_1=10\Ohm,\%R_2=15\ohm,\%R_3=5\oHm
R_1=10\Ohm,\%R_2=15\ohm,\%R_3=5\oHm

Смотрите также сюда:
@@;@\;\\
@@;@\;\\

P.S.: Не путайте символы \Ohm и \Omega : они хоть и похожи, но обозначают разные вещи. \Ohm -- сопротивление \Omega -- греческая буква.

\Ohm\Omega&size=30
\Ohm\Omega&size=30
А ещё есть символ \mho \mho&size=30 :doofywave:

Все символы перечислять я здесь не буду их слишком много. Смотрите какой-нибудб справочник по \TeXу...
 
Назад
Сверху