命令中的 pdfcomment 吞噬了参数的最后一个字符

命令中的 pdfcomment 吞噬了参数的最后一个字符

各位 TeXnicians 大家好,
我在集成我编写的自定义命令时遇到了一些问题pdfcomment。无论命令多么简单,它似乎都会pdfcomment吞掉我传递给它的参数的最后一个字符。最小的重现案例将在其序言中包含类似以下内容:

\newcommand{\todoComment}[1]{\pdfmarkupcomment[markup=Highlight]{#1}{#1}}

...它的身体里有类似这样的东西......

\todoComment{gradual}

...并产生如下输出:

渲染 PDF

\pdfmarkupcomment在正文中正常调用不会产生类似的问题。

我发现导致传入字符串的最后一个字符渲染的唯一原因是在#1--- 后面留下一个完整的空格,将参数括在括号中会导致 LaTeX 抛出错误,并且添加\xspace无效。作为解决方案,这还不是最糟糕的,我当然可以忍受。但我很想知道是否有人知道到底发生了什么。我已经使用 LaTeX 多年了,但这个问题让我很困惑。

提前感谢您的想法!

答案1

使用这个 MWE,

\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{bera}
\usepackage{pdfcomment}
\newcommand{\todoComment}[1]{\pdfmarkupcomment[markup=Highlight]{#1}{#1}}
\pdfminorversion=3
\begin{document}
\todoComment{gradual}

\pdfmarkupcomment[markup=Highlight]{gradual}{gradual}
\end{document}

我得到以下结果:

mwe 图片

mwe.pdf会发现:

3 0 obj
<<
/Type /Annot
/Subtype /Highlight /C [0 0 1] /CreationDate (D:20161115180801+0000) /M (D:20161115180801+0000) /CA 1.0 /T () /Subj () /Contents (gradual) /Open false /QuadPoints [148.71194 664.93233 183.80598 664.93233 148.71194 654.18423 183.80598 654.18423] /F 4 
/Rect [148.712 657.235 148.712 657.235]
>>
endobj
4 0 obj
<<
/Type /Annot
/Subtype /Highlight /C [0 0 1] /CreationDate (D:20161115180801+0000) /M (D:20161115180801+0000) /CA 1.0 /T () /Subj () /Contents (gradual) /Open false /QuadPoints [148.71194 652.3794 183.80598 652.3794 148.71194 641.6313 183.80598 641.6313] /F 4 
/Rect [148.712 644.682 148.712 644.682]
>>
endobj

肯定有gradualPDF 注释内容!除了位置之外,这两种方法都产生相同的代码。所以,可能是你的 PDF 查看器有问题!我用的是 Win10/AR!

相关内容