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