Ich verwende den Code vonMark Wibrow(Textspiralen mit TikZ), um einen Spiraltext zu generieren, den ich als Titelbild eines Berichts einfügen könnte.
Der folgende Code funktioniert einwandfrei, wenn lateinische Buchstaben verwendet werden. Ich muss jedoch griechische Texte schreiben können. Wie kann ich diesen Code anpassen/korrigieren, um griechische Texte zu ermöglichen?
\documentclass[tikz,border=5]{standalone}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[english, greek]{babel}
\newcommand{\en}{\selectlanguage{english}}
\newcommand{\gr}{\selectlanguage{greek}}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}[
decoration={
reverse path,
text effects along path,
text={Κείμενο στα ελληνικά.}, %text in greek
text effects/.cd,
text along path,
character count=\i, character total=\n,
characters={scale=1-\i/\n}
}
]
\draw [decorate] (0,0)
\foreach \i [evaluate={\r=(\i/2000)^2;}] in {0,5,...,2880}{ -- (\i:\r)};
\end{tikzpicture}
\end{document}
Ich sollte erwähnen, dass ich zwei neue Befehle zum einfacheren Umschalten der Sprache hinzugefügt habe, sowie die üblichenBabelPaket zum Aktivieren der griechischen Schrift.
Antwort1
Als unwissender, einsprachiger britischer Englischsprecher habe ich praktisch keine Erfahrung mit nicht-englischen Schriftarten und dem babel
Paket in LaTeX
, daher habe ich keine Ahnung, wie praktisch/nützlich diese Lösung ist. Außerdem bin ich mir nicht sicher, ob die Zeichen richtig gezählt werden. Es muss eingehalten werden lualatex
oder xelatex
.
\documentclass[tikz,border=5]{standalone}
\usepackage{fontspec}
% Select appropriate font
\setmainfont{TeX Gyre Pagella}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}[
decoration={
reverse path,
text effects along path,
text={%
Βρυτε λεγερε συ μει. Φιμ συ αλτερα εριπυιτ σενσιβυς.
Ατ δεσωρε αλικυαμ εαμ. Ιυς αν θιμεαμ ομιθταντυρ,
ετ μολεστιε σορρυμπιθ εαμ, σινθ αδμοδυμ φιερενθ αδ πρι.
Φελ συ πυτανθ φιθυπεραθα, αεκυε ερρεμ ευμ συ. Νο ευισμοδ
μενθιτυμ πραεσενθ νες, πρω ελιγενδι σοτιδιεκυε σωνσλυδαθυρκυε ιν.
Ιδ μεα δισιθ φολυπθατιβυς. Ηομερω ρεπρεχενδυντ μελ νε,
αθκυι μελιυς προδεσεθ αν μει. Πρι ει δωσενδι νεγλεγενθυρ,
κυαεστιο ρεπριμικυε ατ φελ.
}, %text in greek
text effects/.cd,
text along path,
character count=\i, character total=\n,
characters={scale=1-\i/\n}
}
]
\path [decorate] (0,0)
\foreach \i [evaluate={\r=(\i/2000)^2;}] in {0,5,...,2880}{ -- (\i:\r)};
\end{tikzpicture}
\end{document}
Antwort2
(Als ich dies gepostet habe, sah ich, dass es eine Lua-/XeTeX-Lösung gibt, die ich bevorzugen würde. Hier ist jedoch eine pdfTeX-Methode.)
Denken Sie daran, dass jeder Buchstabe (in dieser Art von TikZ-Bild) in einem eigenen gesetzt ist \hbox
, was viele Effekte ermöglicht, aber seinen Preis hat. Die griechischen Buchstaben sind auch ein Problem, das ich nicht erklären kann.
Sie können aber auch die ältere Transliterationsmethode verwenden. Achten Sie nur darauf, dass Sie die mehrstelligen Glyphen genauso umschließen, wie Sie es mit anderen Akzenten tun würden (z. B. {\"u}ber
). Beachten Sie, dass \hbox
Sigma bei dieser Methode anscheinend als End-Sigma betrachtet wird, was Sie „beheben“ können, indem Sie es gruppieren:
\documentclass[tikz,border=5]{standalone}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
% Also works with these
%\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage[english, greek]{babel}
\newcommand{\en}{\selectlanguage{english}}
\newcommand{\gr}{\selectlanguage{greek}}
\usetikzlibrary{decorations.text}
\begin{document}
\selectlanguage{greek}
\begin{tikzpicture}[
decoration={
reverse path,
text effects along path,
% text={Κε{ί}μενο στα ελληνικ{ά}.}, %text in greek
text={Ke{'i}meno {sta} ellhnik{'a}.},
text effects/.cd,
text along path,
character count=\i, character total=\n,
characters={scale=1-\i/\n}
}
]
\draw [decorate] (0,0)
\foreach \i [evaluate={\r=(\i/2000)^2;}] in {0,5,...,2880}{ -- (\i:\r)};
\end{tikzpicture}
% Something a little more elaborate...
\begin{tikzpicture}[
decoration={%
reverse path, %
text effects along path, %
% text={Κε{ί}μενο στα ελληνικ{ά}.}, %text in greek
text={{<H}dona{`i} ka{`i} l{~u}pai f{'o}boi te ka{`i} j{'a}rrh
{>e}pijum{'i}ai te ka{`i} {>a}postpofa{`i} ka{`i} t{`o}
{>a}lge{~i}n t{'i}nos {>`a}n {e>~ien}? {>`H} g{`a}r yuq{~h}s,
{>`h} qrwm{'e}nhs fuq{~h}s {s'w}mati, {>`h} tr{'i}tou tin{`o}s
{>ex} {>a}mfo{~i}n.
% Diq~ws d`e ka`i to~uto; >`h g`ar t`o m~igma, >`h >`allo <'eteron
% >ek to~u m'igmatos. <Omo'iws d`e ka`i t`a >ek to'utwn t~wn
% pajhm'atwn gin'omena ka`i pratt'omena ka`i doxaz'omena.
}, %
text effects/.cd, %
text along path, %
character count=\i, character total=\n, %
characters={scale=1-\i/\n} %
}
]
\draw [decorate] (0,0) \foreach \i [evaluate={\r=(\i/2000)^2;}] in
{0,5,...,2880}{ -- (\i:\r)};
\end{tikzpicture}
\end{document}