TikZ 节点/组中的字体大小(通过 \selectfont)和功能(WordSpace)

TikZ 节点/组中的字体大小(通过 \selectfont)和功能(WordSpace)

我正在尝试设置WordSpace功能和一些适合\fontsizeTi 内部文本的功能Z 节点。以下是预期结果(由下面第四组代码给出,外面tikzpicture)。我选择了夸张,WordSpace以使效果更加明显。

在此处输入图片描述

情况1) 关于前两行,

\begin{tikzpicture}
  \node[text width=\paperwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont%
    Introduction\\to some subjects
  };
\end{tikzpicture}

我越来越

在此处输入图片描述

可以看到,WordSpace设置没有起作用,行距不正确。

案例2) 但是,如果我添加最后一行,行距就会变得正常:

\begin{tikzpicture}
  \node[text width=\paperwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont%
    Introduction\\to some subjects\\[1.5em]%
    \fontsize{18pt}{27pt}\selectfont%
    with some subtitle
  };
\end{tikzpicture}

在此处输入图片描述

但该WordSpace设置仍然不起作用。

案例3) 在尝试了解这里发生的事情时,我还尝试将文本放在一个组中:

{%
\fontsize{24pt}{36pt}\selectfont%
Introduction\\to some subjects\\[1.5em]%
\fontsize{18pt}{27pt}\selectfont%
with some subtitle%
}

在此处输入图片描述

这让我更加困惑,因为这里的行距是错误的,但WordSpace设置有效。

问题) 为什么会发生这种情况?为了在 Ti 内获得所需的结果Z节点,该怎么办?


以下是完整的代码。

\documentclass[tikz,border=5pt]{standalone}

\usepackage{fontspec}
\setmainfont{SourceSansPro-Regular.otf}
  [
    BoldFont       = SourceSansPro-Semibold.otf ,
    ItalicFont     = SourceSansPro-RegularIt.otf ,
    BoldItalicFont = SourceSansPro-SemiboldIt.otf ,
    WordSpace      = 5 ,
  ]

\begin{document}

% First
\begin{minipage}{.5\paperwidth}
{%
\fontsize{24pt}{36pt}\selectfont%
Introduction\\to some subjects\\[1.5em]%
\fontsize{18pt}{27pt}\selectfont%
with some subtitle%
}
\end{minipage}

% Second
\begin{tikzpicture}
  \node[text width=\paperwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont%
    Introduction\\to some subjects
  };
\end{tikzpicture}

% Third
\begin{tikzpicture}
  \node[text width=\paperwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont%
    Introduction\\to some subjects\\[1.5em]%
    \fontsize{18pt}{27pt}\selectfont%
    with some subtitle
  };
\end{tikzpicture}

% Fourth
\begin{minipage}{.5\paperwidth}
\fontsize{24pt}{36pt}\selectfont%
Introduction\\to some subjects\\[1.5em]%
\fontsize{18pt}{27pt}\selectfont%
with some subtitle%
\end{minipage}

\end{document}

答案1

如果\spaceskip大于零,则其优先级高于WordSpace,如下例所示

\documentclass{article}
\usepackage{fontspec}

\setmainfont{Latin Modern Roman}[WordSpace={10,5,3}]

\begin{document}

Abc def ghi

\spaceskip=1pt

Abc def ghi

\end{document}

在此处输入图片描述

恰巧在 TiZ\spaceskip使用选项设置节点排版text width。只需将其重置为零即可。在末尾添加一个\par,可以是\\,因为 TiZ 使用\raggedright

一些说明:

  1. 在您的第一个minipage例子中,您有一对大括号,它导致使用标准 baselineskip,因为隐式\par位于 之后}

  2. WordSpace=5相当于,WordSpace{5,5,5}这可能不是您想要的。

\documentclass{article}

\usepackage{fontspec}
\usepackage{tikz}

\setmainfont{SourceSansPro}
  [
    Extension=.otf,
    UprightFont    = *-Regular,
    BoldFont       = *-Semibold,
    ItalicFont     = *-RegularIt,
    BoldItalicFont = *-SemiboldIt,
    WordSpace      = {5,3,1},
  ]

\begin{document}

\subsection*{First}

\begin{minipage}{.75\textwidth}
\fontsize{24pt}{36pt}\selectfont
Introduction\\to some subjects\\[1.5em]
\fontsize{18pt}{27pt}\selectfont
with some subtitle
\end{minipage}

\subsection*{Second}

\begin{tikzpicture}
  \node[text width=0.75\textwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont\spaceskip=0pt
    Introduction\\to some subjects\\
  };
\end{tikzpicture}

\subsection*{Third}

\begin{tikzpicture}
  \node[text width=0.75\textwidth] at (0,0) {%
    \fontsize{24pt}{36pt}\selectfont
    Introduction\\to some subjects\\[1.5em]
    \fontsize{18pt}{27pt}\selectfont
    with some subtitle\\
  };
\end{tikzpicture}

\subsection*{Fourth}

\begin{minipage}{.75\textwidth}
\fontsize{24pt}{36pt}\selectfont
Introduction\\to some subjects\\[1.5em]
\fontsize{18pt}{27pt}\selectfont
with some subtitle
\end{minipage}

\end{document}

在此处输入图片描述

您可以看到,在第二个例子中,WordSpace遵守了该原则,但在第三个例子中却不遵守。

相关内容