如何使用 pdflatex 和 lualatex 在 pdf 中写入 #?

如何使用 pdflatex 和 lualatex 在 pdf 中写入 #?

为了在 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}

相关内容