我的问题是,我想构建一个字母生成器,它首先从用户输入构建一个latex文件,然后通过latex将其编译为PDF。
模板包含多行,如下所示:
\setkomavar{signature}{{{.Name}}}
latex
部分为\setkomavar{signature}{}
,而template
部分来自{{.Name}}
。
当我尝试加载模板时,会抛出此错误:
恐慌:模板:letter.tmpl:72:命令中的意外“}”
是否有帮助解析器处理这种情况的技巧?
提前致谢,
蒂诺
答案 0 :(得分:14)
使用Template.Delims将分隔符设置为一些非冲突文本。 {{
和}}
只是默认值,此方法允许选择其他分隔符。
替代方法:在您希望使用latex {
和}
的模板中,您可以插入一些安全文本,例如说#(
和)#
,然后制作从模板中输出的“全局”替换。然而,设置分隔符更容易IMO,如果重要的话,可能更有效率。
答案 1 :(得分:0)
我之前通过创建模板函数来执行此操作:
func texArg(s interface{}) string {
return fmt.Sprintf("{%v}", s)
}
我使用template.Funcs注册为arg
。然后在我的模板中我有:
\textbf{{.Name | arg}}
我认为@ zzzz上面的答案更好,因为当你需要筑巢时,它会分崩离析,但我想我会把它留在这里以寻找替代方法。
答案 2 :(得分:0)
我的adhok解决方案是:
\barcode{{print "{" .Barcode}}}
答案 3 :(得分:0)
更好的解决方案实际上是使用内置的空白运算符,例如:
\setkomavar{signature}{ {{- .Name -}} }
开头和结尾的-
将删除该令牌与下一个非模板令牌之间的空格。
希望有所帮助,请参阅the docs了解更多详情