4

In normal font e.g default computer modern font apostrophe comma is appeared in the output. But when I use Holden font by \setmainfont{Holden} apostrophe comma is not appeared in the output.

My code is -

\documentclass[12pt]{article}
\usepackage[a4paper,left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{fontspec}
\usepackage[dvipsnames]{xcolor}
\usepackage[object=vectorian]{pgfornament} % also loads tikz
\setmainfont{Holden}
\tikzset{pgfornamentstyle/.style={draw = Periwinkle,
                                  fill = SpringGreen}}

\usetikzlibrary{
  positioning, % for left=of, above=of etc.
  calc % for let syntax used in second example
}

\begin{document}

\begin{center}
\begin{tikzpicture}[
  every node/.append style={inner sep=0},
  node distance=5mm
]
   \node [Black] (text){Vaijan's Honey};



  \path
    let
    \p1=(text.south west),
    \p2=(text.north east),
    \n1={\x2-\x1}, % width of text node
    \n2={\y2-\y1}  % height of text node
    in
% in all of the below some fraction of \n1 or \n2 is used to define the width of the ornaments
% set width of these ornaments to half the text node's width
   node [anchor=north] (below) at (text.south) {\pgfornament[width=0.5*\n1,symmetry=c]{69}}
   node [anchor=south] (above) at (text.north) {\pgfornament[width=0.5*\n1]{69}}



% use \n2 for ornament width here
   node [rotate=-90, left=of text, anchor=north] (left)  {\pgfornament[width=\n2]{46}}
   node [rotate=90, right=of text, anchor=north] (right) {\pgfornament[width=\n2]{46}}
% and \n1 here
   node [above=of above] (top)    {\pgfornament[width=\n1]{71}}
   node [below=of below] (bottom) {\pgfornament[width=\n1,symmetry=h]{71}}
%   node [anchor=north] (top) at (text.north)   {\pgfornament[width=\n1]{71}}
%   node [anchor=south] (bottom) at (text.south) {\pgfornament[width=\n1,symmetry=h]{71}}
% and 25% of width for the corner ornaments
   node [anchor=north west] at (top.north -| left.south)  {\pgfornament[width=0.25*\n1]{63}}
   node [anchor=north east] at (top.north -| right.south) {\pgfornament[width=0.25*\n1,symmetry=v]{63}}
   node [anchor=south west] at (bottom.south -| left.south) {\pgfornament[width=0.25*\n1,symmetry=h]{63}}
   node [anchor=south east] at (bottom.south -| right.south) {\pgfornament[width=0.25*\n1,symmetry=c]{63}}; % <- note the \path doesn't end until here

   % draw frame
  \draw [Blue] (current bounding box.south west) rectangle (current bounding box.north east);

  \vspace{2cm};
  \node [anchor=south] (bellowaddress1) at (below.south) {\pgfornament[width=0.10*\textwidth]{88}};
  \setmainfont{Linux Biolinum O}
  \tiny
  \node [Brown, below, align=center] (bellowaddress3) at (bellowaddress1.south) {Md.Al-Helal, CSE, DU\\ 01515611989};
  \node [anchor=south, below] (bellowaddress2) at (bellowaddress3.south) {\pgfornament[width=0.10*\textwidth]{88}};
\end{tikzpicture}
\end{center}
\end{document}

output

enter image description here

5

Apparently the mapping is not completely correct for this font. The log shows:

Missing character: There is no ’ in font [Holden.otf]/OT:mapping=tex-text;!

However, the character is present, as can be seen in FontForge:

enter image description here

FontForge shows the name of the character, "quotesingle". This can be used for the macro \XeTeXglyphindex to find the index number, which can be used to print the character:

\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Holden.otf}
\begin{document}
The apostrophe is at position: \the\XeTeXglyphindex"quotesingle"

Printed: \XeTeXglyph83
\end{document}

enter image description here

Note that here the .otf font is used, but it works the same for the .ttf version.

Applied to your MWE:

\node [Black] (text){Vaijan\XeTeXglyph83 s Honey};

enter image description here

9

Fonts are loaded by default with Ligatures=TeX. This feature remaps ' into U+2019, but apparently the Holden font has no glyph at that slot. To the contrary, its apostrophe at the standard ASCII position is curly.

Just load the font without Ligatures=TeX.

\documentclass[12pt]{article}
\usepackage[a4paper,left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{fontspec}
\usepackage[dvipsnames]{xcolor}
\usepackage[object=vectorian]{pgfornament} % also loads tikz


\newfontface{\holdenfont}{Holden}[
  Path=./,
  Extension=.otf,
  Ligatures=,
]

\tikzset{pgfornamentstyle/.style={draw = Periwinkle,
                                  fill = SpringGreen}}

\usetikzlibrary{
  positioning, % for left=of, above=of etc.
  calc % for let syntax used in second example
}

\begin{document}

\begin{center}
\begin{tikzpicture}[
  every node/.append style={inner sep=0},
  node distance=5mm
]
   \node [Black] (text){\holdenfont Vaijan's Honey};



  \path
    let
    \p1=(text.south west),
    \p2=(text.north east),
    \n1={\x2-\x1}, % width of text node
    \n2={\y2-\y1}  % height of text node
    in
% in all of the below some fraction of \n1 or \n2 is used to define the width of the ornaments
% set width of these ornaments to half the text node's width
   node [anchor=north] (below) at (text.south) {\pgfornament[width=0.5*\n1,symmetry=c]{69}}
   node [anchor=south] (above) at (text.north) {\pgfornament[width=0.5*\n1]{69}}



% use \n2 for ornament width here
   node [rotate=-90, left=of text, anchor=north] (left)  {\pgfornament[width=\n2]{46}}
   node [rotate=90, right=of text, anchor=north] (right) {\pgfornament[width=\n2]{46}}
% and \n1 here
   node [above=of above] (top)    {\pgfornament[width=\n1]{71}}
   node [below=of below] (bottom) {\pgfornament[width=\n1,symmetry=h]{71}}
%   node [anchor=north] (top) at (text.north)   {\pgfornament[width=\n1]{71}}
%   node [anchor=south] (bottom) at (text.south) {\pgfornament[width=\n1,symmetry=h]{71}}
% and 25% of width for the corner ornaments
   node [anchor=north west] at (top.north -| left.south)  {\pgfornament[width=0.25*\n1]{63}}
   node [anchor=north east] at (top.north -| right.south) {\pgfornament[width=0.25*\n1,symmetry=v]{63}}
   node [anchor=south west] at (bottom.south -| left.south) {\pgfornament[width=0.25*\n1,symmetry=h]{63}}
   node [anchor=south east] at (bottom.south -| right.south) {\pgfornament[width=0.25*\n1,symmetry=c]{63}}; % <- note the \path doesn't end until here

   % draw frame
  \draw [Blue] (current bounding box.south west) rectangle (current bounding box.north east);

  \vspace{2cm};
  \node [anchor=south] (bellowaddress1) at (below.south) {\pgfornament[width=0.10*\textwidth]{88}};
  \setmainfont{Linux Biolinum O}
  \tiny
  \node [Brown, below, align=center] (bellowaddress3) at (bellowaddress1.south) {Md.Al-Helal, CSE, DU\\ 01515611989};
  \node [anchor=south, below] (bellowaddress2) at (bellowaddress3.south) {\pgfornament[width=0.10*\textwidth]{88}};
\end{tikzpicture}
\end{center}
\end{document}

I loaded it not as the main font and specified path and extension just to adapt to my setup (I surely don't want that font clobbering my system fonts 😉).

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.