我的搜索并没有找到我想要的任何内容。
我想创建一些类似于你所看到的文本这里。我并不是想创作海报。我只是想以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
,可选参数0
或1
确定左端是粗(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}{Beyond~~~~~~~~}
\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}{Beyond}
\parabtext{1.7}{.7}{300}{Beyond}
\end{document}