Use delimitadores personalizados en la plantilla Twig actual

Yo uso Twig para generar documentos LaTeX. La syntax del delimitador predeterminada de Twig choca mal con las llaves de LaTeX. Simplemente escapar de LaTeX no es una opción, ya que hace que el código sea completamente ilegible. Sé que puedo definir delimitadores personalizados de forma global , pero no quiero volver a escribir todas mis plantillas HTML para usar la nueva syntax.

También sé acerca de las secciones literales, pero esas hacen que el código sea realmente feo:

\ihead{ {% endverbatim %} {{ title }} {% verbatim %} } 

¿Hay alguna manera de que pueda cambiar la syntax solo para la plantilla actual o un conjunto de plantillas , algo así como:

 {% set_delimiters({ 'tag_comment' : [''], 'tag_block' : [''], 'tag_variable' : [''], 'interpolation': ['#'] }) %} 

Como puede ver, no se recomienda el uso de esta función. Personalización de la syntax

Por cierto, aquí hay un ejemplo rápido y fácil para explicar cómo usar delimitadores personalizados en Symfony:

service.yml

 services: templating_lexer: public: true parent: templating.engine.twig class: Acme\YourBundle\Twig\TwigLexerEngine 

TwigLexerEngine

 namespace Acme\YourBundle\Twig; use Symfony\Bundle\TwigBundle\TwigEngine; class TwigLexerEngine extends TwigEngine { public function setTwigLexer($lexer) { $this->environment->setLexer($lexer); return $this; } } 

Su controlador

 public function yourAction() { $lexer = new \Twig_Lexer($this->get('twig'), array( 'tag_comment' => array('{*', '*}'), 'tag_block' => array('{', '}'), 'tag_variable' => array('{$', '}'), )); $templating = $this->get('templating_lexer'); $templating->setTwigLexer($lexer); return $templating->renderResponse('YourBundle::template.html.twig'); }