更改 TikZ 文本装饰上的字体系列会导致 pdflatex 崩溃

更改 TikZ 文本装饰上的字体系列会导致 pdflatex 崩溃

我使用的是 TikZ 版本 3.1.5b 和 pdftex 版本 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian)(从 .log 文件中获取)。我想将一些文本放入圆圈中,但我想使用 Trajan 字体,所以我使用命令\fontfamily{trjn}\selectfont。这是 MnWE(不起作用)。

\documentclass[12pt]{article}

\usepackage{tikz}

\usetikzlibrary{arrows,decorations,decorations.text}

\begin{document}
\begin{minipage}{0.5\textwidth}
    \begin{tikzpicture}
\draw%
[
postaction={
    decorate,
    decoration={
                text along path, 
                text={Some text to fill out the circle so as to serve as an example {${\cdot}$}}
            }, 
            font=\normalsize, 
%           align=fit to path
        }
]
(0,0) circle (2);
\end{tikzpicture}   
\end{minipage}  
%
\begin{minipage}{0.5\textwidth}
        \begin{tikzpicture}
\draw%
[
postaction={
    decorate,
    decoration={
        text along path, 
        text={\fontfamily{trjn}\selectfont SOME TEXT TO FILL OUT THE CIRCLE SO AS TO SERVE AS AN EXAMPLE{${\cdot}$}}
    }, 
    font=\normalsize, 
    %           align=fit to path
}
]
(0,0) circle (2);
    \end{tikzpicture}
\end{minipage}

\end{document}

当我编译时(我使用 TeXstudio,以防万一这相关)它挂在进程上,我必须取消;当我这样做时,我收到错误Error: Command crashed: pdflatex -synctex=1 -interaction=nonstopmode "text-along-path".tex。如果我注释掉生成相同图形但使用 Trajan 字体的代码,它就可以工作;好吧,只要我也注释掉该align=fit to path行,这也让我感到困惑,因为根据我的版本的手册(第 658 页),这是将文本适合路径的调用,但它不起作用(我应该为此发布一个单独的问题吗?)。

我还认为值得一提的是,如果我使用大括号来更改字体,即编写text={{\fontfamily{trjn}\selectfont SOME TEXT TO FILL OUT THE CIRCLE SO AS TO SERVE AS AN EXAMPLE{${\cdot}$}}文档进行编译,但文本不会绕圆圈弯曲(从我使用 TikZ 的短暂经验来看,这对我来说很有意义)。

答案1

您需要将字体信息包装在 中|...|,即初始字体分隔符(请参阅第 657 页的 pgfmanual v3.1.5)

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{ae}
\usepackage{tikz}

\usetikzlibrary{arrows,decorations,decorations.text}

\begin{document}
\begin{minipage}{0.5\textwidth}
    \begin{tikzpicture}
\draw%
[
postaction={
    decorate,
    decoration={
                text along path, 
                text={Some text to fill out the circle so as to serve as an example {${\cdot}$}}
            }, 
            font=\normalsize, 
%           align=fit to path
        }
]
(0,0) circle (2);
\end{tikzpicture}   
\end{minipage}  
%
\begin{minipage}{0.5\textwidth}
        \begin{tikzpicture}
\draw%
[
postaction={
    decorate,
    decoration={
        text along path, 
        text={|\fontfamily{trjn}\selectfont| SOME TEXT TO FILL OUT THE CIRCLE SO AS TO SERVE AS AN EXAMPLE{${\cdot}$}}
    }, 
    font=\normalsize, 
    %           align=fit to path
}
]
(0,0) circle (2);
    \end{tikzpicture}
\end{minipage}

\end{document}

在此处输入图片描述

编辑\usepackage{ae}正如 OP 所指出的,添加后才能真正利用字体。

相关内容