Freemarker + LaTeX 中的换行符被忽略
Line breaks are ignored in Freemarker + LaTeX
我有一个这样的字符串:line1\nline2\n\nline3
我想以 PDF 格式显示此字符串。我使用 Java、Freemarker 和 LaTeX。
我有这样的 Freemarker 模板:${root.text}
,其中 root.text
是我的字符串。
在 PDF 中它看起来像这样:
line1 line2
line3
我想看的:
line1
line2
line3
我怎样才能收到这个?
我尝试用 \newline
替换 \n
,但这不起作用:
line1 ewlineline2
line3
这很可能是 LaTeX/TeX 工作原理的概念性问题。单个“块”中的文本被视为段落。 TeX 自己决定合适的换行符。要分隔段落,您可以使用多个换行符(即之间的空行)。
不管有多少换行符,都是“新段落”的意思。
如果编译字符串
line1
line2
line3
只有三个段落(可能是缩进的,除非你改变了)。
为了获得额外的垂直 space,您可以尝试以下输入:
line1
line2
\vspace{\baselineskip}
line3
有时你想要的是一个实际的换行指令,它是一个双反斜杠(因此,如果在 Java 字符串表示中转义则为四倍):
line1\
line2\
\
line3
不过,我想您可能想努力学习 LaTeX(也许还有排版)。
我决定用 split
:
为 LaTeX 创建单独的段落
<#assign lines = root.text?split("\n") />
<#list lines as line>
${line} <#if line?has_next>\</#if>
</#list>
这符合我的预期。
此外,转义规则可以添加到 CommonTemplateMarkupOutputModel#output
。
例如\n
可以替换为\\
。
我有一个这样的字符串:line1\nline2\n\nline3
我想以 PDF 格式显示此字符串。我使用 Java、Freemarker 和 LaTeX。
我有这样的 Freemarker 模板:${root.text}
,其中 root.text
是我的字符串。
在 PDF 中它看起来像这样:
line1 line2
line3
我想看的:
line1
line2
line3
我怎样才能收到这个?
我尝试用 \newline
替换 \n
,但这不起作用:
line1 ewlineline2
line3
这很可能是 LaTeX/TeX 工作原理的概念性问题。单个“块”中的文本被视为段落。 TeX 自己决定合适的换行符。要分隔段落,您可以使用多个换行符(即之间的空行)。
不管有多少换行符,都是“新段落”的意思。
如果编译字符串
line1
line2
line3
只有三个段落(可能是缩进的,除非你改变了)。
为了获得额外的垂直 space,您可以尝试以下输入:
line1
line2
\vspace{\baselineskip}
line3
有时你想要的是一个实际的换行指令,它是一个双反斜杠(因此,如果在 Java 字符串表示中转义则为四倍):
line1\
line2\
\
line3
不过,我想您可能想努力学习 LaTeX(也许还有排版)。
我决定用 split
:
<#assign lines = root.text?split("\n") />
<#list lines as line>
${line} <#if line?has_next>\</#if>
</#list>
这符合我的预期。
此外,转义规则可以添加到 CommonTemplateMarkupOutputModel#output
。
例如\n
可以替换为\\
。