请考虑以下示例:
\documentclass{article}
\usepackage{pdfcomment}
\begin{document}
\pdfmarkupcomment[markup=Highlight]{aa}{Highlight}
\pdfmarkupcomment[markup=Highlight]{AA}{Highlight}
\pdfmarkupcomment[markup=Highlight]{gg}{Highlight}
\pdfmarkupcomment[markup=Highlight]{Ag}{Highlight}
\end{document}
不同的高亮标记有不同的高度。通常,许多 pdf 阅读器为这三种类型生成后一种高度。
我可以强制使用最小后者的高度是多少?
(它仍应适当增加其他非标准字母(如变音符号)的高度,例如Ä
。)
我尝试了这个height
选项。但这似乎对标记没有影响。
ps. 您可能需要编译几次才能正确看到突出显示(https://tex.stackexchange.com/q/330276/36836)。
答案1
你可以修补\pdfmarkupcomment
,以便每次出现#2
都变成\strut#2
\documentclass{article}
\usepackage{pdfcomment}
\usepackage{regexpatch}
\makeatletter
\xpatchcmd*{\pdfmarkupcomment}
{#2}
{\strut#2}
{}{}
\makeatother
\begin{document}
\pdfmarkupcomment[markup=Highlight]{aa}{Highlight}
\pdfmarkupcomment[markup=Highlight]{AA}{Highlight}
\pdfmarkupcomment[markup=Highlight]{gg}{Highlight}
\pdfmarkupcomment[markup=Highlight]{Ag}{Highlight}
\end{document}
但要注意,这适用于\strut
任何地方,而不仅仅是当一些标记注释彼此靠近时。
替代修补:
\documentclass{article}
\usepackage{pdfcomment}
\usepackage{letltxmacro}
\LetLtxMacro\originalpdfmarkupcomment\pdfmarkupcomment
\renewcommand{\pdfmarkupcomment}[3][]{%
\originalpdfmarkupcomment[#1]{\strut#2}{#3}%
}
\begin{document}
\pdfmarkupcomment[markup=Highlight]{aa}{Highlight}
\pdfmarkupcomment[markup=Highlight]{AA}{Highlight}
\pdfmarkupcomment[markup=Highlight]{gg}{Highlight}
\pdfmarkupcomment[markup=Highlight]{Ag}{Highlight}
\end{document}
您可以使用大写字母的高度和 y 的深度,但请注意大写字母通常会超出范围:
\documentclass{article}
\usepackage{pdfcomment}
\usepackage{letltxmacro}
\LetLtxMacro\originalpdfmarkupcomment\pdfmarkupcomment
\renewcommand{\pdfmarkupcomment}[3][]{%
\originalpdfmarkupcomment[#1]{%
\hbox{\vrule height \fontcharht\font`A depth \fontchardp\font`y width 0pt}%
#2%
}{#3}%
}
\begin{document}
\pdfmarkupcomment[markup=Highlight]{aa}{Highlight}
\pdfmarkupcomment[markup=Highlight]{AA}{Highlight}
\pdfmarkupcomment[markup=Highlight]{gg}{Highlight}
\pdfmarkupcomment[markup=Highlight]{Ag}{Highlight}
\end{document}
您可以使用以下方法修复过冲1.1\fontcharht\font`A
,结果是
您可能希望对深度做类似的事情。
答案2
您可以简单地使用\strut
来获取基线的高度。或者\boxheight
像示例中那样定义您自己的基线。您必须在不带参数的宏中定义它,否则它将无法通过 使用的 SOUL 解析器pdfcomment
。
\documentclass{article}
\usepackage{pdfcomment}
\newcommand\pdfstrutmc[3][\strut ]%
{%
\pdfmarkupcomment{#1#2}{#3}%
}%
\newcommand\boxheight{\raisebox{-3pt}{\rule{0pt}{15pt}}}
%
\begin{document}
\pdfstrutmc{aa}{Highlight}
\pdfstrutmc{AA}{Highlight}
\pdfstrutmc{gg}{Highlight}
\pdfstrutmc{Ag}{Highlight}
\bigskip
\pdfstrutmc[\boxheight]{Aa}{Highlight}
\pdfstrutmc[\boxheight]{AA}{Highlight}
\pdfstrutmc[\boxheight]{gg}{Highlight}
\pdfstrutmc[\boxheight]{Ag}{Highlight}
\end{document}