PyLaTeX에서 2열 레이아웃으로 콘텐츠를 표시하시겠습니까?

PyLaTeX에서 2열 레이아웃으로 콘텐츠를 표시하시겠습니까?

\usepackage{multicol}PyLaTex에서 어떻게 사용하나요 ? 파이썬으로 무엇을 쓸까?

\begin{multicols}{2}
Column 1
\columnbreak
Column 2
\end{multicols}

PyLaTex를 사용하여 콘텐츠를 2열로 표시하는 방법을 찾았지만 이것이 프로그래밍 방식으로 가장 좋은 방법인지는 확실하지 않습니다.

콘텐츠를 2열로 표시하는 가장 좋은 PyLaTex 방법은 무엇입니까?

PyLaTeX 코드는 다음과 같습니다:

from pylatex import Document, Section, Subsection, Command
from pylatex.utils import italic, NoEscape
from pylatex.package import Package
from pylatex import PageStyle, Head, MiniPage, Foot, LargeText, \
        MediumText, LineBreak, simple_page_number
from pylatex.utils import bold


lorem = '''
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
cubilia Curae; Phasellus facilisis tortor vel imperdiet vestibulum. Vivamus et
mollis risus. Proin ut enim eu leo volutpat tristique. Vivamus quam enim,
efficitur quis turpis ac, condimentum tincidunt tellus. Praesent non tellus in
quam tempor dignissim. Sed feugiat ante id mauris vehicula, quis elementum nunc
molestie. Pellentesque a vulputate nisi, ut vulputate ex. Morbi erat eros,
aliquam in justo sed, placerat tempor mauris. In vitae velit eu lorem dapibus
consequat. Integer posuere ornare laoreet.

Donec pellentesque libero id tempor aliquam. Maecenas a diam at metus varius
rutrum vel in nisl. Maecenas a est lorem. Vivamus tristique nec eros ac
hendrerit. Vivamus imperdiet justo id lobortis luctus. Sed facilisis ipsum ut
tellus pellentesque tincidunt. Mauris libero lectus, maximus at mattis ut,
venenatis eget diam. Fusce in leo at erat varius laoreet. Mauris non ipsum
pretium, convallis purus vel, pulvinar leo. Aliquam lacinia lorem dapibus
tortor imperdiet, quis consequat diam mollis.

Praesent accumsan ultrices diam a eleifend. Vestibulum ante ipsum primis in
faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse accumsan
orci ut sodales ullamcorper. Integer bibendum elementum convallis. Praesent
accumsan at leo eget ullamcorper. Maecenas eget tempor enim. Quisque et nisl
eros.

'''


if __name__ == '__main__':
    geometry_options = {"top":"3.5cm","bottom":"3.5cm", "left":"3.7cm",\
            "right":"4.7cm", "columnsep":"30pt"}
    doc = Document('test', geometry_options=geometry_options)

    doc.preamble.append(Command('usepackage', 'multicol'))

    doc.append(NoEscape(r'\begin{multicols}{2}'))
    doc.append(NoEscape(lorem))
    doc.append(NoEscape(r'\end{multicols}'))
    doc.generate_pdf(clean_tex=False)
    doc.generate_tex()

    tex = doc.dumps()




내 코드의 PDF 출력: 여기에 이미지 설명을 입력하세요

답변1

다음을 사용하여 새로운 환경을 정의할 수 있습니다.Environment.

from pylatex import UnsafeCommand
from pylatex.base_classes import Environment
from pylatex.utils import NoEscape

class MultiColumnEnvironment(Environment):

    _latex_name = 'MultiColumn'
    packages = [Package('multicol')]

def main():
    geometry_options = {"top":"3.5cm","bottom":"3.5cm", "left":"3.7cm",\
        "right":"4.7cm", "columnsep":"30pt"}
    doc = Document('test', geometry_options=geometry_options)

    ...

    new_env = UnsafeCommand('newenvironment', 'MultiColumn',
                            extra_arguments=[r'\begin{multicols}{2}', r'\end{multicols}'])
    doc.append(new_env)

    with doc.create(MultiColumnEnvironment()) as environment:
        environment.append(NoEscape(lorem))


if __name__ == "__main__":
    main()

관련 정보