Apostrophe comma not shown when use Holden font
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 ).
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:
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}
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};