为了在 pdf 中转义,/
我必须使用#2fx
,但我不知道如何#
在 pdf 中写入字符。当我写 时#
,我显然会出错。当我使用 时\#
,它会准确地写入 pdf,而当我使用 时\tl_to_str:n{#}
,我有#
但我需要#
在 pdf 中恰好是 字符。现在您将看到我使用 的示例\#
,但在 pdf 中我有\#
而不是#
。感谢大家的帮助。
\documentclass{article}
\usepackage{l3pdf}
\begin{document}
test
\ExplSyntaxOn
\pdf_object_new:nn{obj}{dict}
\pdf_object_write:nx{obj}{/Type\c_space_tl/test#2fx-test}
\ExplSyntaxOff
\end{document}
答案1
您似乎想要 pdflatex 中的命令提供什么\pdfescapename
。该pdftexcmds
包提供了 luatex 仿真。expl3
您可以使用模块的命令l3str-convert
。
\documentclass{article}
\usepackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff
\begin{document}
test
\ExplSyntaxOn
\pdf_object_new:nn{obj}{dict}
\str_set_convert:Nnnn\l_tmpa_str {test/slash}{}{utf8/name}
\pdf_object_write:nx{obj}{/Type\c_space_tl /\l_tmpa_str}
\ExplSyntaxOff
\end{document}
这使
<< /Type /test#2Fslash >>
如果你知道你想生产什么,你可以#
像这样插入例如:
\pdf_object_write:nx
{obj}
{/Type\c_space_tl /test\char_generate:nn{35}{12}2Fslash}
或者
\pdf_object_write:nx
{obj}
{/Type\c_space_tl /test\token_to_str:N#2Fslash}