如何在 PyLaTeX 中将标题和作者放在一起?

How can I put the title and author closer together in PyLaTeX?

我正在使用 PyLaTeX 作为生成 pdf 的一种方式(作为 flask 网络应用程序的一部分),我无法让标题和作者与默认的距离不同。

我的代码现在看起来像这样(这是折叠日期部分的一种方式)

doc.preamble.append(Command('title', f"This is my personalized title with a {variable}"))
doc.preamble.append(Command('author', "This is the author"))
doc.preamble.append(Command('date', NoEscape(r'\vspace{-3ex}'))) #didn't want a date
doc.append(NoEscape(r'\maketitle'))

用 vspace

试试

问题是,如果我将 \vspace{-3ex} 放在 author 命令中(标题和作者之间的 space 保持不变),它似乎什么都不做。同时将它放在标题内会更改标题 space 上方 ,而不是下方。

doc.preamble.append(Command('title', NoEscape(r'\vspace{4.0cm}' + f"Title with {variable}"))) #adds space on top
doc.preamble.append(Command('author', NoEscape(r'\vspace{-3.0cm}' + "Author"))) #this changes nothing

尝试加标题

我也尝试过使用 titling LaTeX 包,但我无法在 PyLaTeX 中使用它。我认为它正确地导入了它,但是我不能像其他东西一样更改后缀:

doc.packages.append(Package(titling)) #this seems fine
doc.preamble.append(Command('posttitle','\vspace{-3.0cm}')) #things like this crash the compiler
...
doc.preamble.append(NoEscape(r'\posttittle{\vspace{-3.0cm}}')) #things like this don't work either

虽然我可能没有在 PyLaTeX 中正确使用标题(我昨天学到了大部分内容,所以嗯...)。

好的,正如@Patrick Artner 指出的那样,顺序很重要。

doc.preamble.append(Command('title', NoEscape(f"Title with {variable}" + r'\vspace{-1cm}')))

从文档中我了解到 \vspace 影响了它出现的行(独立于它放置在行中的位置)。好像不是(\vspace开头会改变标题的高度,但最后会改变标题和作者之间的space)。