Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.07.2012, 22:21
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от Deff Посмотреть сообщение
Сообщение от Demath Посмотреть сообщение
Не догнал, как сделать выбор типа скобок для матрицы.
Изобразите эскиз
Скобки имеют вид:
- круглые \begin{pmatrix}\end{pmatrix}
- прямые \begin{vmatrix}\end{vmatrix}
- квадратные \begin{bmatrix}\end{bmatrix}
- двойные прямые \begin{Vmatrix}\end{Vmatrix}
- фигурные \begin{Bmatrix}\end{Bmatrix}
- без скобок \begin{matrix}\end{matrix}

Пытаюсь добавить переменную со значениями: 'p', 'v', 'b', 'V', 'B', ' ', в
output.value += a + "\\begin\{pmatrix\}\n" и output.value += "\ 1\ \n\\end\{pmatrix\}..., но безрезультатно

Вот эскиз

<html>
<head>
<style>
form {padding-left: 100px;}
caption {margin-bottom: 10px; font: bold 16px Calibri; line-height: 1;}
td {width: 125px; padding: 0px; text-align: center; background-color: #f3f3f3;
	font: 14px Arial; height: 30px;}
td.mbrackets {padding-left: 16px;}
	.mbrackets input {display: block; float: left; margin: 4px 19px 0px 5px;}
	.mbrackets img {display: block; float: left;}
input.rows, input.cols {width: 20px; height: 22px; color: blue;}
textarea {padding: 10px; width: 380px; height: 150px;}
</style>

<script language="JavaScript">
<!-- 
function LatexMatrix(r,c,output)
{
	var i,j;
	if (r.value == "" || c.value == "" ) {r.value = 2; c.value = 2;}
	var a = ''; if(output.value!='') a = '\n';
	output.value += a + "\\begin\{pmatrix\}\n";

	for (i=1; i<=r.value-1; i++)
		{for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";} output.value += "\ 1\ \\\\\n";}

	for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}

	output.value += "\ 1\ \n\\end\{pmatrix\}\n\n\[Замените\ 1\ нужными\ значениями\]";
}
// -->
</script>
</head>

<body>
<form name="matrix">
<table>
<caption>Выберите тип скобок и  введите числа<br />строк и столбцов матрицы</caption>
<tr>
<td colspan="3" class="mbrackets">

<img title="Круглые скобки" src="http://i018.radikal.ru/1207/4f/21fe23691c4f.jpg" />
<input type="radio" name="mbrackets" checked value="" />

<img title="Прямые скобки (для определителей)" src="http://s55.radikal.ru/i150/1207/fd/cd7e314d6f0a.jpg" />
<input type="radio" name="mbrackets" value="" />

<img title="Квадратные скобки" src="http://s017.radikal.ru/i400/1207/fd/e45e839d64e2.jpg" />
<input type="radio" name="mbrackets" value="" />

<img title="Двойные прямые скобки (норма матрицы)" src="http://s57.radikal.ru/i157/1207/88/fe9f51030bce.jpg" />
<input type="radio" name="mbrackets" value="" />

<img title="Фигурные скобки" src="http://s54.radikal.ru/i146/1207/f6/a968aa91e75d.jpg" />
<input type="radio" name="mbrackets" value="" />

<img title="Без скобок" style="margin-top: 3px;" src="http://s011.radikal.ru/i317/1207/93/60bb22394691.jpg" />
<input type="radio" name="mbrackets" value="" />

</td>
</tr>
<tr>
<td> Строки <b>n =</b> <input name="rows1" maxlength="1" type="text"  class="rows" /></td>
<td> Столбцы <b>k =</b> <input name="cols1" maxlength="1" type="text"  class="cols" /></td>
<td><input value="Вставить" onclick="LatexMatrix(rows1,cols1,matrix)" name="button" type="button"
		title="Нажмите один раз" style="cursor: pointer;" />
</td>
</tr>
</table>
<textarea name="matrix" placeholder="Здесь появится LaTeX-код матрицы"></textarea>
</form>
</body>
</html>

Последний раз редактировалось Demath, 04.07.2012 в 01:31. Причина: Убрал код в спойлер
Ответить с цитированием
  #12 (permalink)  
Старый 02.07.2012, 22:24
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Demath
Скобки имеют вид:
- круглые \begin{pmatrix}\end{pmatrix}
- прямые \begin{vmatrix}\end{vmatrix}
- квадратные \begin{bmatrix}\end{bmatrix}
- двойные прямые \begin{Vmatrix}\end{Vmatrix}
- фигурные \begin{Bmatrix}\end{Bmatrix}
- без скобок \begin{matrix}\end{matrix}



Ничо не понял - изобразите скриншот - как это выглядит в итоговом виде в поле textarea
Ответить с цитированием
  #13 (permalink)  
Старый 02.07.2012, 22:42
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сейчас в <textarea> вставляется матрица с круглыми скобками :
Код:
\begin{pmatrix}
 1 & 1 \\
 1 & 1 
\end{pmatrix}
Если получится сделать выбор типа скобок, то в <textarea> должны вставляться и такие матрицы:
- с прямыми скобками
Код:
\begin{vmatrix}
 1 & 1 \\
 1 & 1 
\end{vmatrix}
- с квадратными скобками
Код:
\begin{bmatrix}
 1 & 1 \\
 1 & 1 
\end{bmatrix}
- с двойными прямыми скобками
Код:
\begin{Vmatrix}
 1 & 1 \\
 1 & 1 
\end{Vmatrix}
- с фигурными скобками
Код:
\begin{Bmatrix}
 1 & 1 \\
 1 & 1 
\end{Bmatrix}
- без скобок
Код:
\begin{matrix}
 1 & 1 \\
 1 & 1 
\end{matrix}
Ответить с цитированием
  #14 (permalink)  
Старый 02.07.2012, 22:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Demath,
Я Вижу абсолютно одинаковые 6 матриц в посте
Поэтому тупо не могу понять в чем фокус

Как должно выглядить в реале и в чем отличие одного от другого - Воть!
Ответить с цитированием
  #15 (permalink)  
Старый 02.07.2012, 23:04
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от Deff Посмотреть сообщение
Demath,
Я Вижу абсолютно одинаковые 6 матриц в посте
Поэтому тупо не могу понять в чем фокус

Как должно выглядить в реале и в чем отличие одного от другого - Воть!
Они не абсолютно одинаковые: различаются одной буквой (с учётом регистра).

Вот подсветил зелёным эти буквы (в без скобочном варианте буква не ставится):

- матрица с круглыми скобками \begin{pmatrix} ... \end{pmatrix}
- прямые \begin{vmatrix} ... \end{vmatrix}
- квадратные \begin{bmatrix} ... \end{bmatrix}
- двойные прямые \begin{Vmatrix} ... \end{Vmatrix}
- фигурные \begin{Bmatrix} ... \end{Bmatrix}
- без скобок \begin{matrix} ... \end{matrix}

В последней выложенной мною версии скрипта только иллюзия выбора типа скобок (<input ... type="radio"> к скрипту не "прикручены"), т.е. матрица вставляется только с круглыми скобками.

Последний раз редактировалось Demath, 02.07.2012 в 23:07.
Ответить с цитированием
  #16 (permalink)  
Старый 02.07.2012, 23:35
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Demath,
Ясно
Ответить с цитированием
  #17 (permalink)  
Старый 03.07.2012, 00:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<html>
<head>
<style>
form {padding-left: 100px;}
caption {margin-bottom: 10px; font: bold 16px Calibri; line-height: 1;}
td {width: 125px; padding: 0px; text-align: center; background-color: #f3f3f3;
	font: 14px Arial; height: 30px;}
td.mbrackets {padding-left: 16px;}
	.mbrackets input {display: block; float: left; margin: 4px 19px 0px 5px;}
	.mbrackets img {display: block; float: left;}
input.rows, input.cols {width: 20px; height: 22px; color: blue;}
textarea {padding: 10px; width: 380px; height: 150px;}
</style>




<script language="JavaScript">

var bracket='p'; //Preset - First  checked input;

function  brackets (obj) 
{	    obj=obj.parentNode.getElementsByTagName('input')[0];
	    obj.checked=true;
	    bracket=obj.value;
}

function LatexMatrix(r,c,output)
{
	var i,j;
	if (r.value == "" || c.value == "" ) {r.value = 2; c.value = 2;}
	var a = ''; if(output.value!='') a = '\n';
	output.value += a + "\\begin\{"+bracket+"matrix\}\n";

	for (i=1; i<=r.value-1; i++)
		{for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";} output.value += "\ 1\ \\\\\n";}

	for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}

	output.value += "\ 1\ \n\\end\{"+bracket+"matrix\}\n\n\[Замените\ 1\ нужными\ значениями\]";
}

</script>
</head>

<body>
<form name="matrix">
<table>
<caption>Выберите тип скобок и  введите числа<br />строк и столбцов матрицы</caption>
<tr>
<td colspan="3" class="mbrackets">

<span>
<img title="Круглые скобки" src="http://i018.radikal.ru/1207/4f/21fe23691c4f.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" checked value="p" onclick="brackets(this)"/>
</span>

<span>
<img title="Прямые скобки (для определителей)" src="http://s55.radikal.ru/i150/1207/fd/cd7e314d6f0a.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" value="v" onclick="brackets(this)"/>
</span>

<span>
<img title="Квадратные скобки" src="http://s017.radikal.ru/i400/1207/fd/e45e839d64e2.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" value="b" onclick="brackets(this)"/>
</span>

<span>
<img title="Двойные прямые скобки (норма матрицы)" src="http://s57.radikal.ru/i157/1207/88/fe9f51030bce.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" value="V" onclick="brackets(this)"/>
</span>

<span>
<img title="Фигурные скобки" src="http://s54.radikal.ru/i146/1207/f6/a968aa91e75d.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" value="B" onclick="brackets(this)"/>
</span>

<span>
<img title="Без скобок" style="margin-top: 3px;" src="http://s011.radikal.ru/i317/1207/93/60bb22394691.jpg" onclick="brackets(this)"/>
<input type="radio" name="mbrackets" value="" onclick="brackets(this)"/>
</span>

</td>
</tr>
<tr>
<td> Строки <b>n =</b> <input name="rows1" maxlength="1" type="text"  class="rows" /></td>
<td> Столбцы <b>k =</b> <input name="cols1" maxlength="1" type="text"  class="cols" /></td>
<td><input value="Вставить" onclick="LatexMatrix(rows1,cols1,matrix)" name="button" type="button"
		title="Нажмите один раз" style="cursor: pointer;" />
</td>
</tr>
</table>
<textarea name="matrix" placeholder="Здесь появится LaTeX-код матрицы"></textarea>
</form>
</body>
</html>

Последний раз редактировалось Deff, 03.07.2012 в 00:37.
Ответить с цитированием
  #18 (permalink)  
Старый 04.07.2012, 00:49
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Deff, огромное спасибо! Всё работает как нужно.

Вот "прикрутил" ещё пару фич:
1) добавление вертикальной линии после заданного столбца
и/или
2) добавление горизонтальной линии после заданной строки.

Например, вертикальная линия добавляется перед последним столбцом в расширенной матрице коэффициентов СЛАУ.

Посмотрите, пожалуйста, не чрезмерной ли функция LatexMatrix(...) получилась?

<html>
<head>
<style>
form {padding-left: 100px;}
caption {margin-bottom: 10px; font: bold 16px Calibri; line-height: 1;}
td {width: 125px; padding: 0px; text-align: center; background-color: #f3f3f3;
	font: 14px Arial; height: 30px;}
td.mbrackets {width: 375px;}
	.mbrackets input {display: block; float: left; margin: 4px 20px 0px 4px;}
	.mbrackets img {display: block; float: left;}
div.brackets {display: inline-block;}
td.lines {width: 375px; height: 19px; font: 16px Calibri; text-align: left; text-indent: 10px; line-height: 1;}
td.vline, td.hline {height: 25px; font-size: 13px;}
input.rows, input.cols, td.vline input, td.hline input {width: 20px; height: 22px; color: blue;}
td.vline input, td.hline input {width: 20px; height: 20px; color: blue;}
textarea {padding: 10px; width: 378px; height: 180px;}
</style>

<script language="JavaScript">

var bracket='p'; //Preset - First checked input;

function  brackets (obj) 
{	    obj=obj.parentNode.getElementsByTagName('input')[0];
	    obj.checked=true;
	    bracket=obj.value;
}

function LatexMatrix(r,c,vl,hl,output)
{
	var i,j;
	if (r.value == "" || c.value == "" || vl.value == "" || hl.value == "" ) 
			{r.value = 2; c.value = 2; vl.value = 0; hl.value = 0;}
	var a = ''; if(output.value!='') a = '\n';

	output.value += a + "\\begin\{"+bracket+"matrix\}";

	if (hl.value>0 & hl.value<r.value)
	{for (i=1; i<=hl.value; i++)
 	 	{output.value += "\n";
		 if (vl.value>0 & vl.value<c.value) {for (j=1; j<=vl.value; j++) {output.value += "\ 1\ \&";}
			output.value += "\\\!\\\!\\vline\\\!\\\!\&";
			for (j=1; j<=c.value-vl.value-1; j++) {output.value += "\ 1\ \&";}}
		 else {for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}}
			output.value += "\ 1\ \\\\";
		}
		output.value += "\\hline\ ";
		for (i=1; i<=r.value-hl.value-1; i++)
			{output.value += "\n";
			 if (vl.value>0 & vl.value<c.value) 
				{for (j=1; j<=vl.value; j++) {output.value += "\ 1\ \&";}
				 output.value += "\\\!\\\!\\vline\\\!\\\!\&";
				 for (j=1; j<=c.value-vl.value-1; j++) {output.value += "\ 1\ \&";}
				}
			 else {for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}}
			 output.value += "\ 1\ \\\\";
			}
	 }
	
	else
	{for (i=1; i<=r.value-1; i++)
		{output.value += "\n";
		 if (vl.value>0 & vl.value<c.value)
			{for (j=1; j<=vl.value; j++) {output.value += "\ 1\ \&";}
			 output.value += "\\\!\\\!\\vline\\\!\\\!\&";
			 for (j=1; j<=c.value-vl.value-1; j++) {output.value += "\ 1\ \&";}
			}
		 else {for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}}
	 output.value += "\ 1\ \\\\";
		}
	}
	
	if (vl.value>0 & vl.value<c.value)
		{output.value += "\n";
		 for (j=1; j<=vl.value; j++) {output.value += "\ 1\ \&";}
		 output.value += "\\\!\\\!\\vline\\\!\\\!\&";
		 for (j=1; j<=c.value-vl.value-1; j++) {output.value += "\ 1\ \&";}
		}
	else {output.value += "\n"; for (j=1; j<=c.value-1; j++) {output.value += "\ 1\ \&";}}

	output.value += "\ 1\ \n\\end\{"+bracket+"matrix\}\n\n\[Замените\ 1\ нужными\ значениями\]";
}

</script>

</head>

<body>
<form name="matrix">
<table>
<caption>Выберите тип скобок и  введите числа<br />строк и столбцов матрицы</caption>
<tr>
<td colspan="3" class="mbrackets">
<div class="brackets">
<img title="Круглые скобки" src="http://i018.radikal.ru/1207/4f/21fe23691c4f.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" checked value="p" onclick="brackets(this)" />
<img title="Прямые скобки (для определителей)" src="http://s55.radikal.ru/i150/1207/fd/cd7e314d6f0a.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" value="v" onclick="brackets(this)" />
<img title="Квадратные скобки" src="http://s017.radikal.ru/i400/1207/fd/e45e839d64e2.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" value="b" onclick="brackets(this)" />
<img title="Двойные прямые скобки (норма матрицы)" src="http://s57.radikal.ru/i157/1207/88/fe9f51030bce.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" value="V" onclick="brackets(this)" />
<img title="Фигурные скобки" src="http://s54.radikal.ru/i146/1207/f6/a968aa91e75d.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" value="B" onclick="brackets(this)" />
<img title="Без скобок" style="margin-top: 3px;" src="http://s011.radikal.ru/i317/1207/93/60bb22394691.jpg" onclick="brackets(this)" />
<input type="radio" name="mbrackets" value="" onclick="brackets(this)" style="margin-right: 8px" />
</div>
</td>
</tr>
<tr>
<td> Строки <b>n =</b> <input name="rows1" maxlength="1" type="text"  class="rows" /></td>
<td> Столбцы <b>k =</b> <input name="cols1" maxlength="1" type="text"  class="cols" /></td>
<td><input value="Вставить" onclick="LatexMatrix(rows1,cols1,vline1,hline1,matrix)" name="button" type="button"
		title="Нажмите один раз" style="cursor: pointer;" />
</td>
</tr>
<tr><td colspan="3" class="lines">Необязательные параметры</td></tr>
<tr>
<td colspan="3" class="vline">
Добавить вертикальную линию после <input name="vline1" maxlength="1" type="text" />-го столбца
</td>
</tr>
<tr>
<td colspan="3" class="hline">
Добавить горизонтальную линию после <input name="hline1" maxlength="1" type="text" />-й строки
</td>
</tr>
</table>
<textarea name="matrix" placeholder="Здесь появится LaTeX-код матрицы"></textarea>
</form>
</body>
</html>

Последний раз редактировалось Demath, 11.10.2012 в 01:16. Причина: Убрал код в спойлер
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
Редактор для JS под *nix инклуд Оффтопик 2 14.10.2010 09:56
редактор для ява Zzet Общие вопросы Javascript 7 30.07.2009 17:40
сделайте правила для форума scuter Сайт Javascript.ru 29 21.04.2009 17:28