12

我的问题是,我想构建一个字母生成器,它首先从用户输入构建一个乳胶文件,然后通过乳胶将其编译为 PDF。

该模板包含多行,如下所示:

\setkomavar{signature}{{{.Name}}}

latex部分是\setkomavar{signature}{}template来自 go 的部分是{{.Name}}

当我尝试加载模板时,它会引发此错误:

恐慌:模板:letter.tmpl:72:命令中出现意外的“}”

是否有帮助解析器处理这种情况的技巧?

提前致谢,

蒂诺

4

4 回答 4

15

使用Template.Delims将分隔符设置为一些不冲突的文本。{{并且}}只是默认值,此方法允许选择其他分隔符。

替代方法:在您想要乳胶{和的模板中},您可以插入一些安全文本,例如说#()#然后在模板的输出上进行“全局”替换。然而,如果这很重要,设置分隔符更容易 IMO 并且很可能性能更高。

于 2013-05-23T07:13:24.083 回答
2

更好的解决方案实际上是只使用内置的空格运算符,例如:

\setkomavar{signature}{ {{- .Name -}} }

-开头和结尾的 将删除该标记和下一个非模板标记之间的空格。

希望对您有所帮助,请参阅文档以获取更多详细信息

于 2017-02-23T00:13:28.923 回答
0

我以前是通过创建模板函数来做到这一点的:

func texArg(s interface{}) string {
    return fmt.Sprintf("{%v}", s)
}

我注册为arg使用template.Funcs。然后在我的模板中我有:

\textbf{{.Name | arg}}

我认为@zzzz 上面的答案更好,因为当你需要嵌套它时它会崩溃,但我想我会把它留在这里换一种方法。

于 2015-10-15T15:05:38.820 回答
0

我的adhok解决方案是:

\barcode{{print "{" .Barcode}}}
于 2016-09-19T07:01:18.480 回答