使用 NewTX 时,让图片的 \circle 在 PDF 的文本层中产生“o”而不是“a”

使用 NewTX 时,让图片的 \circle 在 PDF 的文本层中产生“o”而不是“a”

pdflatex正在运行

\documentclass{article}
\usepackage{newtxtext}
\usepackage[slantedGreek,subscriptcorrection]{newtxmath}
\pagestyle{empty}
\newcommand{\opencolon}{%
  {\setlength{\unitlength}{.1ex}%
    \begin{picture}(3.4,10)(0,0)
      \put(1.7,1.7){\circle{3.4}}
      \put(1.7,8.3){\circle{3.4}}
    \end{picture}}%
}
\begin{document}
\opencolon% or \(\opencolon\); it doesn't matter
\end{document}

在将 ⦂ 放入a aPDF 的文本层时,在视觉上会产生冒号。但是,从视觉上看,圆圈更像字母“o”,而不是字母“a”。为了在 PDF 查看器(例如)evince和转换器(例如)中进行文本搜索pdftotext,为什么不将圆圈变成“o”而不是“a”呢?为了实现此目标,如何更改环境picture\circle命令?

(虽然我非常清楚 {Xe|Lua}(La)TeX 提供的可能性,但这个问题非常特定于 pdflatex 和 NewTX 字体;请确保评论和答案中没有不相关的内容。)

答案1

您可以指定用于从 PDF 复制的实际文本

\documentclass{article}
\usepackage{newtxtext}
\usepackage[slantedGreek,subscriptcorrection]{newtxmath}
\usepackage{accsupp}
\pagestyle{empty}
\newcommand{\opencolon}{%
  {\setlength{\unitlength}{.1ex}%
    \begin{picture}(3.4,10)(0,0)
      \put(1.7,1.7){\BeginAccSupp{ActualText=o}\circle{3.4}\EndAccSupp{}}
      \put(1.7,8.3){\BeginAccSupp{ActualText=o}\circle{3.4}\EndAccSupp{}}
    \end{picture}}%
}
\begin{document}
\opencolon% or \(\opencolon\); it doesn't matter
\end{document}

或者如果你实际上想要一个冒号作为实际文本,请选择变体 b 或 c

在此处输入图片描述

\documentclass{article}
\usepackage{newtxtext}
\usepackage[slantedGreek,subscriptcorrection]{newtxmath}
\usepackage{accsupp}
\pagestyle{empty}
\newcommand{\opencolon}{%
  {\setlength{\unitlength}{.1ex}%
    \begin{picture}(3.4,10)(0,0)
      \put(1.7,1.7){\BeginAccSupp{ActualText=o}\circle{3.4}\EndAccSupp{}}
      \put(1.7,8.3){\BeginAccSupp{ActualText=o}\circle{3.4}\EndAccSupp{}}
    \end{picture}}%
}
\newcommand{\opencolonb}{%
  {\setlength{\unitlength}{.1ex}%
    \BeginAccSupp{ActualText=:}\begin{picture}(3.4,10)(0,0)
      \put(1.7,1.7){\circle{3.4}}
      \put(1.7,8.3){\circle{3.4}}
    \end{picture}\EndAccSupp{}}%
}

\newcommand{\opencolonc}{%
  {\setlength{\unitlength}{.1ex}%
    \BeginAccSupp{method=hex,unicode,ActualText=2982}\begin{picture}(3.4,10)(0,0)
      \put(1.7,1.7){\circle{3.4}}
      \put(1.7,8.3){\circle{3.4}}
    \end{picture}\EndAccSupp{}}%
}
\begin{document}
\opencolon

\opencolonb

\opencolonc
\end{document}

如果我从该文档中剪切所有文本并粘贴为纯文本,我会得到

oo
:

相关内容