Javascript.RU

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

Редактор математических формул для форума phpBB
Помогите доделать редактор для ввода математических формул (LaTeX) для форума на phpBB_3.
Делаю по аналогии со смайлами в phpbb_3, то есть при нажатии на картинку с формулой в форму ответа вставляется её LaTeX-код. Например, неопределённый интеграл

<a href="#" onclick="insert_text('\\int', true); return false;"
    style="display:block; width: 30px; height: 70px; cursor: pointer;">
<img src="/indefinite_integral.png" title="Неопределённый интеграл" />
</a>

Но для матриц разумно сделать форму ввода, что-то типа такого
_______________________________________________

Выберите тип скобок и введите число строк и колонок
__(A)__|A|__[A]__ǁAǁ___Строки_ n __Колонки_ k __
_______________________________________________

Например, если пользователь выберет (A) и введёт n=3 и k=4, то в форму ответа вставится LaTeX-код

Код:
\begin{pmatrix}
   &   &   &   \\ 
   &   &   &   \\ 
   &   &   &   
\end{pmatrix}
Как видно, ячейки разделяются символом &, а строки - \\.
Скобки имеют вид:
- круглые \begin{pmatrix}\end{pmatrix}
- прямые \begin{vmatrix}\end{vmatrix}
- квадратные \begin{bmatrix}\end{bmatrix}
- двойные прямые \begin{Vmatrix}\end{Vmatrix}

Последний раз редактировалось Demath, 22.06.2012 в 20:06.
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2012, 02:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2012, 21:25
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сколько это будет примерно стоить?

Вообще, нужна только форма для ввода матриц, остальную часть редактора сделал и оформил.

Последний раз редактировалось Demath, 26.06.2012 в 21:37.
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2012, 00:37
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

50WMZ
Ответить с цитированием
  #5 (permalink)  
Старый 02.07.2012, 02:54
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Почитал учебничек на этом сайте и, вроде бы, получилось сделать основную часть js-кода. Не догнал, как сделать выбор типа скобок для матрицы.

Как отменить удаление ранее набранного текста в <textarea> при вводе (нажатии Вставить)?
Вот код:

<html>
<head>
<style>
form {padding-left: 100px;}
caption {margin-bottom: 10px; font: bold 18px Calibri;}
td {width: 125px; padding: 0px; vertical-align: middle; background-color: #f3f3f3;
	font: 14px Arial; height: 38px;}
input.rows, input.cols {width: 20px; 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;}

	output.value = "\\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>Введите числа строк и столбцов матрицы</caption>
<tr>
<td> Строки <b>i =</b> <input name="cols1" maxlength="1" type="text"  class="rows"></td>
<td> Столбцы <b>j =</b> <input name="rows1" maxlength="1" type="text"  class="cols"></td>
<td align="center">
<input value="Вставить" onclick="LatexMatrix(cols1,rows1,matrix)" name="button" type="button"
		style="cursor: pointer;">
</td>
</tr>
</table>
<textarea name="matrix" placeholder="Здесь появится LaTeX-код матрицы"></textarea>
</form>
</body>
</html>

P.S. Сильно не ругайте: первый раз js-код с нуля пишу.

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

Сообщение от Demath
Не догнал, как сделать выбор типа скобок для матрицы.
Изобразите эскиз
Сообщение от Demath
ак отменить удаление ранее набранного текста в <textarea> при вводе (нажатии Вставить)?
Поясните подробней - стереть всё ?
Ответить с цитированием
  #7 (permalink)  
Старый 02.07.2012, 03:17
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от Deff Посмотреть сообщение
Поясните подробней - стереть всё ?
Когда набираю какой-либо текст в <textarea>, а затем добавляю матрицу (нажимаю кнопку "Вставить"), то весь ранее набранный текст стирается и остаётся только матрица
Ответить с цитированием
  #8 (permalink)  
Старый 02.07.2012, 03:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

[HTML run]
<html>
<head>
<style>
form {padding-left: 100px;}
caption {margin-bottom: 10px; font: bold 18px Calibri;}
td {width: 125px; padding: 0px; vertical-align: middle; background-color: #f3f3f3;
	font: 14px Arial; height: 38px;}
input.rows, input.cols {width: 20px; 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>Введите числа строк и столбцов матрицы</caption>
<tr>
<td> Строки <b>i =</b> <input name="cols1" maxlength="1" type="text"  class="rows"></td>
<td> Столбцы <b>j =</b> <input name="rows1" maxlength="1" type="text"  class="cols"></td>
<td align="center">
<input value="Вставить" onclick="LatexMatrix(cols1,rows1,matrix)" name="button" type="button"
		style="cursor: pointer;">
</td>
</tr>
</table>
<textarea name="matrix" placeholder="Здесь появится LaTeX-код матрицы"></textarea>
</form>
</body>
</html>

Последний раз редактировалось Deff, 02.07.2012 в 04:29.
Ответить с цитированием
  #9 (permalink)  
Старый 02.07.2012, 04:39
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Спасибо за реальную помощь!

Если возможно, подскажите, пожалуйста, что ещё "прикрутить", чтобы матрица вставлялась в текущее положение курсора?
То есть чтобы текст, идущий после матрицы, переносился вместе с ней.
Ответить с цитированием
  #10 (permalink)  
Старый 02.07.2012, 04:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Demath,
Хм - ну ежели разберетесь ... то вот стандартный девайс на phpBB форумах функция выделения текста в textarea, не работает в IE
пост 2 в спойлере
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новая система управления сайтом 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