Преобразование разметки LaTeX в HTMLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Преобразование разметки LaTeX в HTML

Сообщение Anonymous »

[ОБНОВЛЕНО]

Это моя задача — преобразовать несколько специально созданных файлов LaTeX в InDesign. Итак, мой текущий метод: запускаю файлы .tex с помощью PHP-скрипта, который меняет пользовательские коды LaTeX на более общие коды TeX, затем я использую TeX2Word для преобразования их в файлы .doc, а затем помещаю их в InDesign.

Что я хочу сделать с этим preg_replace, так это преобразовать несколько тегов TeX, чтобы TeX2Word не затрагивал их, тогда я вы сможете запустить в InDesign скрипт, который заменяет HTML-теги текстовыми фреймами, сносками, переменными и т. д.

[/UPDATED]< /strong>

У меня есть текст с разметкой LaTeX:

Код: Выделить всё

$newphrase = "\blockquote{\hspace*{.5em}Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere
velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Aenean
eu leo quam. Pellentesque ornare sem lacinia quam venenatis
vestibulum. Sed posuere consectetur est at lobortis. \note{Integer
posuere erat a ante venenatis dapibus posuere velit aliquet.
\textit{Vivamus} sagittis lacus vel augue laoreet rutrum faucibus
dolor auctor.}}";
Я хочу удалить \blockquote{... и заменить его на ...

Итак, я попробовал миллион разных версий этого:

Код: Выделить всё

$regex = "#(blockquote){(.*)(})#";
$replace = "$2";
$newphrase = preg_replace($regex,$replace,$newphrase);
Это результат

Код: Выделить всё

\\hspace*{.5emLorem ipsum dolor sit amet, consectetur
adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere
velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Aenean
eu leo quam. Pellentesque ornare sem lacinia quam venenatis
vestibulum. Sed posuere consectetur est at lobortis. \note{Integer
posuere erat a ante venenatis dapibus posuere velit aliquet.
\textit{Vivamus} sagittis lacus vel augue laoreet rutrum faucibus
dolor auctor.}}";
Первая проблема заключается в том, что он заменяет все, от \blockquote{ до первого .
Когда я этого хочу игнорировать следующий , если после начального \blockquote{ был еще один {.

Следующая проблема, которую я' У меня есть \ Кажется, я не могу избежать этого! Я пробовал \\, /\\/, \\\, /\\\/, [\], [\\] . Ничего не работает! Я уверен, что это потому, что я не понимаю, как это на самом деле должно работать.

И вот, наконец, вот что я хочу получить в итоге:

Код: Выделить всё

\hspace*{.5em}Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere
velit aliquet. Aenean lacinia bibendum nulla sed consectetur. Aenean
eu leo quam. Pellentesque ornare sem lacinia quam venenatis
vestibulum. Sed posuere consectetur est at lobortis. \note{Integer
posuere erat a ante venenatis dapibus posuere velit aliquet.
\textit{Vivamus} sagittis lacus vel augue laoreet rutrum faucibus
dolor auctor.}";
Я планирую преобразовать $regex и $replace в массивы, чтобы можно было заменять такие вещи, как \textit{Vivamus code> с этим Vivamus

Любые рекомендации будут ОЧЕНЬ приветствоваться и цениться!

Подробнее здесь: https://stackoverflow.com/questions/100 ... up-to-html
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»