pylatex: как применить {\ centering <x>} вокруг графики и / или текста? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь создать следующий (тип) код с PyLatex:

{
     \centering
     \includegraphics{image.png}
     \includegraphics{image.png}
}

Я не могу сгруппировать команду \centering с фигурными скобками вокруг \includegraphics;если я определяю новую среду, я всегда получаю \begin и \end, которые добавляют интервалы.

Итак, вы знаете, как можно добавить фигурные скобки с помощью команды \centering вокруг фрагмента кода, подобного \includegrahics?

Для меня наиболее элегантным решением было бычто-то вроде:

with doc.centering():
    doc.append('Some text.')
    append(StandAloneGraphic(image))
    append(StandAloneGraphic(image2))

Как я могу определить такое '' 'с помощью команды doc.centering ()' ''?Конечно, я могу каждый раз жестко кодировать это, но я хочу, чтобы мой код был читабельным, поэтому было бы неплохо, если бы я мог написать хорошую функцию для этой проблемы.https://tex.stackexchange.com/questions/490429/pylatex-how-to-apply-centering-x-around-graphic/490442), но там я получил совет опубликовать здесь, потому что это больше проблема программирования на Python, чем проблема PyLatex.

Обновление: я хотел бы поместить код ниже в хороший with.group(): выражение:

import pylatex as pl

doc = pl.Document()
doc.preamble.append(pl.Package('showframe'))

doc.append(pl.NoEscape('{'))
doc.append(pl.Command('centering'))
doc.append(pl.StandAloneGraphic('example-image',image_options='width=5cm'))
doc.append(pl.Command('par'))
doc.append(pl.NoEscape('}'))

doc.generate_tex('pylatexdemo')

Этот фрагмент кода создает правильный вывод, но не очень удобочитаемый. Я мог бы представить такое решение (но я не знаю, как его запрограммировать), определениеgroup -функция неверна. Мой вопрос: как реализовать такую ​​group -функцию?

import pylatex as pl


doc = pl.Document()
doc.preamble.append(pl.Package('showframe'))

def group(content):
    doc.append(pl.NoEscape('{'))
    doc.append(content)  
    doc.append(pl.Command('par'))
    doc.append(pl.NoEscape('}'))

with doc.group():
    doc.append(pl.Command('centering'))
    doc.append(pl.StandAloneGraphic('example-image',image_options='width=5cm'))

doc.generate_tex('pylatexdemo')
...