沿路径改变比例的文本

沿路径改变比例的文本

我的搜索并没有找到我想要的任何内容。

我想创建一些类似于你所看到的文本这里。我并不是想创作海报。我只是想以Beyond与单词的书写方式相似(或稍微夸张一点)的方式书写单词Raiders

到目前为止我尝试过的是

\documentclass[border=2in]{standalone}
\usepackage{fontspec}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{shapes.symbols,decorations.pathmorphing,fit,decorations.text,backgrounds}
\begin{document}

\begin{tikzpicture}
  \path (-5,-5) rectangle (5,5);

  \path[postaction={decorate},
        draw,        
        decoration={text effects along path,
                    text={Beyond},
                    text effects/.cd,
                    character count=\i,
                    character total=\n,
                    characters={
                      text along path,
                      font=\sffamily\Huge\bfseries,
                      text=red,
                      scale=1/(\i/\n)*0.75-1.25,
                      anchor=center,
                      },                    
                   %% text align=align,
                   }]
        (-5,-5) .. controls (-5,1.5) and (1.5,5) .. (5,5);
\end{tikzpicture}

\end{document}

这完全不符合我的口味。

我希望看到更好的东西。或者,至少,指出这个网站上已经说明了我想要的东西的答案。

答案1

直接窃取我的序言绘制不同形状的文本。可以进行改进(提高 2 倍左右),这样就不必花时间切割空白空间(见下文)。

回顾一下的参数\parabtext,可选参数01确定左端是粗(0)还是细(1)。要理解第一个强制参数,请考虑一个比例,其中第一个字母的基线高度为 0.0,第一个字母的顶部高度为 1.0。对于当前问题,此参数给出最后一个字母顶部的坐标。第二个强制参数给出单词最细部分的高度减少分数。第三个参数给出单词被切割成的垂直条带的数量。最后一个参数是要应用转换的单词/短语。

\documentclass{article}
\usepackage{ifthen,trimclip,calc,fp,graphicx,xcolor}
\newsavebox\mytext
\newcounter{mycount}
\newlength\clipsize
\newcommand\parabtext[5][0]{%
  \edef\neck{#3}% percent to depress the amplitude
  \def\cuts{#4}% Number of cuts
  \savebox{\mytext}{\kern.2pt#5\kern.2pt}% TEXT
  \FPeval{\myprod}{1/cuts}%
  \clipsize=\myprod\wd\mytext\relax%
  \setcounter{mycount}{0}%
  \whiledo{\value{mycount}<\cuts}{%
    \stepcounter{mycount}%
    \edef\NA{\themycount}%
    \edef\NB{\the\numexpr\cuts-\themycount\relax}%
    \FPeval{\myprod}{\NA*\NB*4/\cuts/\cuts}%
    \ifnum0#1=0\relax%
      \FPeval{\myprod}{1 - \neck*(\myprod)}%
    \else%
      \FPeval{\myprod}{1 - \neck*(1-\myprod)}%
    \fi%
    \clipbox{%
      \value{mycount}\clipsize\relax{} %
      -1pt %
      \wd\mytext-\value{mycount}\clipsize-\clipsize\relax{} %
      -1pt%
    }{\raisebox{#2\dimexpr\ht\mytext-\myprod\ht\mytext}{%
        \scalebox{1}[\myprod]{\usebox{\mytext}}}}%
  }%
}
\begin{document}
\Huge\sffamily\bfseries%
\parabtext{1}{.8}{200}{Beyo‌​nd~~~~~~~~}

\parabtext{2}{.8}{300}{Beyond~~~~~~~~~~}
\end{document}

在此处输入图片描述

这是不花时间切割空白空间的版本:

\documentclass{article}
\usepackage{ifthen,trimclip,calc,fp,graphicx,xcolor}
\newsavebox\mytext
\newcounter{mycount}
\newlength\clipsize
\newcommand\parabtext[5][0]{%
  \edef\neck{#3}% percent to depress the amplitude
  \def\cuts{#4}% Number of cuts
  \savebox{\mytext}{\kern.2pt#5#5\kern.2pt}% TEXT
  \FPeval{\myprod}{1/cuts}%
  \clipsize=\myprod\wd\mytext\relax%
  \setcounter{mycount}{0}%
  \whiledo{\value{mycount}<\the\numexpr\cuts/2\relax}{%
    \stepcounter{mycount}%
    \edef\NA{\themycount}%
    \edef\NB{\the\numexpr\cuts-\themycount\relax}%
    \FPeval{\myprod}{\NA*\NB*4/\cuts/\cuts}%
    \ifnum0#1=0\relax%
      \FPeval{\myprod}{1 - \neck*(\myprod)}%
    \else%
      \FPeval{\myprod}{1 - \neck*(1-\myprod)}%
    \fi%
    \clipbox{%
      \value{mycount}\clipsize\relax{} %
      -1pt %
      \wd\mytext-\value{mycount}\clipsize-\clipsize\relax{} %
      -1pt%
    }{\raisebox{#2\dimexpr\ht\mytext-\myprod\ht\mytext}{%
        \scalebox{1}[\myprod]{\usebox{\mytext}}}}%
  }%
}
\begin{document}
\Huge\sffamily\bfseries%
\parabtext{1}{.8}{200}{Beyo‌​nd}

\parabtext{1.7}{.7}{300}{Beyond}
\end{document}

在此处输入图片描述

相关内容