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