如何使用
@misc{kraft,
author = "Kraft, Nathan",
title = "Mr Kraft's Virtual Filing Cabinet",
year = "2015",
howpublished = "\hyphenatedurl{http://mrkraft.wikispaces.com/Mr+Kraft%27s+Virtual+Filing+Cabinet}"
}
(注意 howpublished 中的 % )在 ConTeXt 中?如果我输入\%27s
,那么我会得到\%27
pdf。如果没有转义,我会得到错误。
答案1
这是 ConTeXt 的一个错误。首先,\hyphenatedurl
无法处理%
(这似乎是设计使然)。其次,btx 机制将%
BibTeX 文件中的注释字符视为注释字符,并删除其后的所有内容(我在邮件列表)第三,你正在滥用howpublished
并且应该使用该url
领域。
作为一种解决方法,只需进行 URL 解码%27
即可'
。
\startbuffer[references]
@misc{kraft,
author = "Kraft, Nathan",
title = "Mr Kraft's Virtual Filing Cabinet",
year = "2015",
url = "http://mrkraft.wikispaces.com/Mr+Kraft's+Virtual+Filing+Cabinet"
}
\stopbuffer
\setupinteraction[state=start]
\usebtxdataset[references.buffer]
\usebtxdefinitions[apa]
\starttext
\nocite[kraft]
\placelistofpublications
\stoptext
如果你真的想滥用该howpublished
字段,另一种解决方法是让对方\hyphenatedurl
知道\%
你的意思是%
。请注意缺少的超链接!
\startbuffer[references]
@misc{kraft,
author = "Kraft, Nathan",
title = "Mr Kraft's Virtual Filing Cabinet",
year = "2015",
howpublished = "\hyphenatedurl{http://mrkraft.wikispaces.com/Mr+Kraft\%27s+Virtual+Filing+Cabinet}"
}
\stopbuffer
\setupinteraction[state=start]
\usebtxdataset[references.buffer]
\usebtxdefinitions[apa]
\appendtoks
\let\%\letterpercent
\to \everyhyphenatedurl
\starttext
\nocite[kraft]
\placelistofpublications
\stoptext
另一个巧妙的解决方案是在输出参考书目时将类别代码设置为%
“其他”。这样你就不必%
在 bib 文件中转义了。
\startbuffer[references]
@misc{kraft,
author = "Kraft, Nathan",
title = "Mr Kraft's Virtual Filing Cabinet",
year = "2015",
url = "http://mrkraft.wikispaces.com/Mr+Kraft%27s+Virtual+Filing+Cabinet"
}
\stopbuffer
\setupinteraction[state=start]
\usebtxdataset[references.buffer]
\usebtxdefinitions[apa]
\setuplist[btx][before={\catcode\commentasciicode\othercatcode}]
\starttext
\nocite[kraft]
\placelistofpublications
\stoptext