在普通字體中,例如預設電腦現代字體,撇號逗號出現在輸出中。但是當我使用帶有\setmainfont{Holden}
撇號逗號的 Holden 字體時,輸出中沒有出現。
我的程式碼是 -
\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}
答案1
顯然,該字體的映射並不完全正確。日誌顯示:
Missing character: There is no ’ in font [Holden.otf]/OT:mapping=tex-text;!
然而,該字元是存在的,如 FontForge 所示:
FontForge 顯示角色的名稱"quotesingle"
。這可用於巨集\XeTeXglyphindex
查找索引號,索引號可用於列印字元:
\documentclass[12pt]{article}
\usepackage{fontspec}
\setmainfont{Holden.otf}
\begin{document}
The apostrophe is at position: \the\XeTeXglyphindex"quotesingle"
Printed: \XeTeXglyph83
\end{document}
請注意,這裡.otf
使用了字體,但它對版本的作用是相同的.ttf
。
應用於您的 MWE:
\node [Black] (text){Vaijan\XeTeXglyph83 s Honey};
答案2
預設情況下加載字體Ligatures=TeX
。此功能重新映射'
到 U+2019,但顯然 Holden 字體在該插槽處沒有字形。相反,它在標準 ASCII 位置的撇號是捲曲的。
只需加載不帶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}
我加載它不是作為主要字體和指定的路徑和擴展名只是為了適應我的設置(我當然不希望該字體破壞我的系統字體