[增订]转换乳胶标记为HTML
这是我的任务 - 将一堆定制LaTeX文件到到InDesign。所以我现在的方法是:通过PHP脚本运行.tex文件,将自定义LaTeX代码更改为更通用的TeX代码,然后使用TeX2Word将它们转换为.doc文件,然后将这些文件放入InDesign中。
我想用这个preg_replace
做什么是转换一些TeX标签,以便它们不会被TeX2Word触摸,那么我将能够在InDesign中运行脚本来改变类HTML标签到InDesign文本框架,脚注,变量等。
[/更新]
我有一些文本乳胶标记:
$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{...}
与<div>...</div>
所以我代替它已经试过一个jillion不同的版本:
$regex = "#(blockquote){(.*)(})#";
$replace = "<div>$2</div>";
$newphrase = preg_replace($regex,$replace,$newphrase);
这是输出
\<div>\hspace*{.5em</div>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{
到第一}
一切。 当我想它忽略下一个}
如果存在初始\blockquote{
后是另一个{
。
我有下一个问题是与\
我似乎无法逃脱它!我试过\\
,/\\/
,\\\
,/\\\/
,[\]
,[\\]
。没有用!我确定这是因为我不明白它是如何被运用的。
因此,最后,这是我要结束了什么:
<div>\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.}</div>";
我打算让$regex
& $replace
成阵列,这样我就可以用这个<em>Vivamus</em>
取代像\textit{Vivamus}
东西任何指导都会受到欢迎和赞赏!
你有没有考虑过使用LaTeX专用的HTML转换器?我确信这样的事情已经存在,并且可以帮助您避免实现自己的基于正则表达式的LaTeX格式化(这几乎肯定会不完整)。 – 2012-04-11 04:04:41
我看过,我的问题是,我找到的那些都没有允许自定义标记标记。我有大约5000页的LaTeX书籍,里面充满了定制的LaTeX标签。 :-( – 2012-04-11 14:26:30
另一件事是,我的所有文件都是“纯文本”,没有任何公式,我发现的大多数转换器都集中在数学公式上 – 2012-04-11 14:40:33