[Tex/LaTex] Embedding a complete rather than a partial font

embeddingfontsformsxetex

Is it possible to make XELatex embed a full rather than a partial font?

The reason I ask is that I am trying to induce a fillable form to use the body font (a question asked before by several participants without satisfactory answer – e.g. related questions here or here). Acrobat forms can apparently only use embedded fonts if they are fully embedded rather than partially embedded – see here). At the moment I can create a form that uses my body font in the fillable fields, but this only works if the font is installed on the users machine.

Once I get a positive response to the above I'll extend my question to the actual use of this font in form.

Below a rather trivial MWE (in this case using libertine) for anyone who wants a starting point to experiment.

\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\begin{document}
The quick brown fox jumps over the dog 0123456789.
\end{document}

The below provides an extended MWE using the eforms package (somewhat unrelated to the question of font embedding). Not specifying any font uses the default helvetica for the field (which looks horrible) as does the underlying hyperref field. Using TiRo as the font at least gives a reasonably decent looking serif font (albeit not libertine) which seems to work in Acrobat reader, PDF-XChange viewer and the inbuilt Windows 8 reader. Specifying LinLibertineO as the font gives libertine in the field (only if this is installed, and only in Acrobat Reader, but not PDF-XChange viewer and the inbuilt Windows 8 reader).

\documentclass{article}
\usepackage{fontspec}
\usepackage{libertine}
\usepackage{eforms}
\begin{document}

\everyTextField{
\BC{1 0 0} % border color
\BG{.941 1 .941} % background color
\textColor{0 0 1} % is black
\textFont{TiRo} % LinLibertineO/TiRo (options see commentary)
\textSize{10}
\Ff{\FfDoNotScroll}
}

Your name: \textField{myText}{1.5in}{12bp}

\end{document}

Best Answer

No, it's not possible to do this. Section 12 of the dvipdfmx documentation deals explicitly with font embedding. From page 21 of the documentation (the very last sentence of the docs, in fact):

dvipdfmx does not support full embedding. Only subset embedding is supported.