使用不同字体在 Tikz 节点中居中显示文本

使用不同字体在 Tikz 节点中居中显示文本

我正在尝试为书创建标题页。标题的第一个字母使用 Eileen Caps Black 字体书写,其余字母使用\normalfont。此标题将位于pgfornament包装装饰上方的中央。

但是,字体 Eileen Caps Black 的字母周围有一些填充,标题被移到了右侧。可以通过在\hspace{}标题后添加来手动将其移到左侧,但此值需要针对每个大写字母进行调整。

标题可以自动位于装饰物上方中央吗?

平均能量损失

\documentclass{standalone}

\usepackage{pgfornament} % Vectorian Ornaments

\input EileenBl.fd% To load the font
\newcommand*\initfamily{\usefont{U}{EileenBl}{xl}{n}}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
    
    % Length title ornament
    \newcommand{\titleornamentlength}{1.5}
    
    % To create capitalized titles with enluminure
    \newcommand{\enluminure}[2]{\initfamily\fontsize{35mm}{35mm}\selectfont#1\normalfont\Huge#2}
    
    \begin{tikzpicture}[every node/.style={inner sep=0pt, outer sep=0pt}]
        
        % Draw title ornament
        \node[anchor=west, xshift= -\titleornamentlength cm] (TSW) {};
        \node[anchor=east, xshift= +\titleornamentlength cm] (TSE) {};
        \pgfornamentline{TSW}{TSE}{1}{87}
        
        % Create node at ornament center
        \node[xshift= \titleornamentlength cm] at (TSW.center) (TSC) {};
        
        % Draw title
        \node[anchor=south, align=center, yshift= 0.5 cm] at (TSC.center){\enluminure{T}{his is a title}};
        
    \end{tikzpicture}
    
\end{document}

答案1

根据@Skillmon 的评论,我设法编写了一个解决方案\kern\hspace{}如下面的 MWE 所示。

我用红色绘制了节点,现在它正好位于装饰物上方的中心,大写字母延伸到节点的边缘。我检查了字母表中的每个字母:一些字母的细节在节点图之外,但如果没有节点作为参考,几乎看不到。它不再需要手动调整。

平均能量损失

\documentclass{standalone}

\usepackage{pgfornament} % Vectorian Ornaments

% To load the font
\input EileenBl.fd% Enluminure ont
\newcommand*\initfamily{\usefont{U}{EileenBl}{xl}{n}}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}
    
    % Length title ornament
    \newcommand{\titleornamentlength}{1.5}
    
    % To create capitalized titles with enluminure
    \newcommand{\enluminure}[2]{\hspace{0.2cm}\initfamily\fontsize{35mm}{35mm}\selectfont\kern-0.12em#1\normalfont\Huge#2}
    
    \begin{tikzpicture}[every node/.style={inner sep=0pt, outer sep=0pt}]
        
        % Draw title ornament
        \node[anchor=west, xshift= -\titleornamentlength cm] (TSW) {};
        \node[anchor=east, xshift= +\titleornamentlength cm] (TSE) {};
        \pgfornamentline{TSW}{TSE}{1}{87}
        
        % Create node at ornament center
        \node[xshift= \titleornamentlength cm] at (TSW.center) (TSC) {};
        
        % Draw title
        \node[draw=red, anchor=south, align=center, yshift= 0.5 cm] at (TSC.center){\enluminure{T}{his is a title}};
        
    \end{tikzpicture}
    
\end{document}

相关内容