
スパークラインのデータ シリーズを、環境自体で明示的に設定するのではなく、マクロ (または代替手段) で定義したいと思いますsparkline
。これまでの試みは失敗しました。MWE としては、次のようになります。
\documentclass[12pt]{memoir}
\usepackage{xcolor,tikz,sparklines}
\begin{document}
\xdef\SparkMacro{0 1 0.5 1.5 1 0.25}
\renewcommand{\sparklineheight}{1.75}
\begin{sparkline}{3}
\sparkrectangle 0 1.75
\spark \SparkMacro\ / % doesn't work
% \spark 0 1 0.5 1.5 1 0.25 /% does work
\end{sparkline}
\end{document}
sparkline
明示的に入力(またはコピーして貼り付け)せずに、これらのデータを環境に渡すにはどうすればよいですか?
答え1
\expandafter
表示する前にデータを展開する必要があります。また、末尾では\spark
なく実際のスペースが必要です。最も簡単な方法は、マクロがスペースで終わるようにすることです。\
\documentclass[12pt]{memoir}
\usepackage{xcolor,tikz,sparklines}
\begin{document}
\xdef\SparkMacro{0 1 0.5 1.5 1 0.25 }
\renewcommand{\sparklineheight}{1.75}
\begin{sparkline}{3}
\sparkrectangle 0 1.75
\expandafter\spark \SparkMacro / % doesn't work
%\spark 0 1 0.5 1.5 1 0.25 /% does work
\end{sparkline}
\end{document}
答え2
でEd Tufte スタイルのグラフ作成機能を提供するパッケージはありますか?私は、スパークライン パッケージではなく、pgfplots に基づいたスパークラインのソリューションを作成しました。
利点は、数値表を使用して入力を提供したり、数値表を提供してその表の数式に基づいてデータをプロットしたり、数式をすぐに提供したりできることです。
上記のソリューションは、棒グラフ、折れ線グラフ、散布図を特徴としており、最小/最大座標を自動的に決定することもできます。