예제 #1
0
파일: TexTools.php 프로젝트: ilivanoff/www
 /**
  * Заменяет TeX-макросы в тексе на те, которые будут заменены на картинки:
  * Block:  $$...$$ -> \[...\]
  * Inline: \{...\} -> \(...\)
  */
 private static function replaceMacrosToImaged($TeX)
 {
     $TeX = str_replace('\\{', '\\(', $TeX);
     $TeX = str_replace('\\}', '\\)', $TeX);
     $TeX = PsStrings::pregReplaceCyclic('/\\$\\$/', $TeX, array('\\[', '\\]'));
     return $TeX;
 }
예제 #2
0
 /**
  * @covers PsStrings::pregReplaceCyclic
  */
 public function testPregReplaceCyclic()
 {
     $text = 'axbxcxdxe';
     $this->assertEquals(PsStrings::pregReplaceCyclic('/x/', $text, array(1, 2)), 'a1b2c1d2e');
     $this->assertEquals(PsStrings::pregReplaceCyclic('/x/', $text, array(1, 2, 3)), 'a1b2c3d1e');
     $this->assertEquals(PsStrings::pregReplaceCyclic('/x/', $text, array(1, 2, 3, 4)), 'a1b2c3d4e');
 }
예제 #3
0
 public function preCompile($source)
 {
     $source = str_replace('\\(', '{literal}\\(', $source);
     $source = str_replace('\\)', '\\){/literal}', $source);
     $source = str_replace('\\{', '{literal}\\{', $source);
     $source = str_replace('\\}', '\\}{/literal}', $source);
     $source = str_replace('\\[', '{literal}\\[', $source);
     $source = str_replace('\\]', '\\]{/literal}', $source);
     $source = PsStrings::pregReplaceCyclic('/\\$\\$/', $source, array('{literal}$$', '$${/literal}'));
     //Обернём математический текст, например: &alpha; перейдёт в <span class="math_text">&alpha;</span>
     $source = TextFormulesProcessor::replaceMathText($source);
     //Заменим некоторые блоки на вызов методов данного класса
     $source = SmartyReplacesIf::preCompile($source);
     return $source;
 }