答案1
给你。我的代码是Paul Gaborit 的回答。
代码
\documentclass{article}
\usepackage{tikz}
\pagestyle{empty}
\newcommand\genkoyoshi[4]{%
\def\rowopacities{#1}%
\def\colnames{#2}%
\def\size{#3}%
\def\sep{#4}%
\begin{tikzpicture}[yscale=-1]
\pgfmathsetmacro{\inc}{\size+\sep}
\newcounter{col}
\newcounter{row}
\foreach \colname in \colnames{
\addtocounter{col}{1}
\setcounter{row}{0}
\foreach \rowopacity in \rowopacities{
\addtocounter{row}{1}
\draw ({(\thecol-1)*\inc pt},{\therow*\size})
rectangle ++ (\size,\size);
\node[text=black!\rowopacity] at ({(\thecol-1)*\inc+\size*0.5 pt},{\therow*\size+\size*0.5}) {\colname};
}
}
\end{tikzpicture}%
}
\begin{document}
\genkoyoshi{100,66,33,0,0,0,0,0,0,0}{a,b,c,d,e,f,g,h,i,j,k}{8mm}{2mm}
\end{document}
代码注释
该列表
100,66,33,0,0,0,0,0,0,0
给出了每行的不透明度 - 0 表示透明,100 表示完全黑色。该列表的长度给出了行数,因此0
末尾有填充符。列表
a,b,c,d,e,f,g,h,i,j,k
给出了每列所需的字符。是
8mm
每个单元格的高度和宽度,是2mm
列之间间隙的大小该符号
black!40
表示颜色为 40% 黑色和 60% 白色。每个字母在其单元格中水平和垂直居中,这就是为什么 看起来
g
有点高而d
看起来有点低。如果您不喜欢这样,请将{\colname}
第 20 行更改为{\strut\colname}
。
结果
答案2
我找到了合适的基础如何为表格中单行的字体设置颜色?
\documentclass{article}
\usepackage{tabu}
\usepackage{xcolor}
\begin{document}
\begin{tabu}{ |l|l| l| l| l| } \hline
\rowfont{\color{gray!90}} 0 & 1 & 2 & 3 & 4 \\ \hline
\rowfont{\color{gray!80}} 1 & A & B & C & D \\ \hline
\rowfont{\color{gray!70}} 2 & A & B & C & D \\ \hline
\rowfont{\color{gray!60}} 3 & A & B & C & D \\ \hline
\rowfont{\color{gray!50}} 4 & A & B & C & D \\ \hline
\rowfont{\color{gray!40}} 5 & A & B & C & D \\ \hline
\rowfont{\color{gray!30}} 6 & A & B & C & D \\ \hline
\rowfont{\color{gray!20}} 7 & A & B & C & D \\ \hline
\rowfont{\color{gray!10}} 8 & A & B & C & D \\ \hline
\end{tabu}
\end{document}
答案3
补充答案:
对于从右到左,可以先计算列,然后将字符位置作为列总数的增量。
平均能量损失
%babel
\documentclass{article}
\usepackage{xcolor}
\usepackage{fontspec}
\usepackage[japanese]{babel}
\babelfont{rm}{Noto Serif CJK JP}
\usepackage{tikz}
\pagestyle{empty}
\newcommand\genkoyoshi[4]{%
\def\rowopacities{#1}%
\def\colnames{#2}%
\def\size{#3}%
\def\sep{#4}%
\begin{tikzpicture}[yscale=-1]
\pgfmathsetmacro{\inc}{\size+\sep}
\newcounter{ltotal}
\foreach \n [count=\y] in \colnames{
\setcounter{ltotal}{\y}}
\newcounter{col}
\newcounter{row}
\foreach \colname in \colnames{
\addtocounter{col}{1}
\setcounter{row}{0}
\foreach \rowopacity in \rowopacities{
\addtocounter{row}{1}
\draw ({(\thecol-1)*\inc pt},{\therow*\size})
rectangle ++ (\size,\size);
\node[text=black!\rowopacity] at ({(\theltotal-\thecol)*\inc+\size*0.5 pt},{\therow*\size+\size*0.5}) {\colname};
}
}
\end{tikzpicture}%
}
\begin{document}
\huge
\color{blue}
\genkoyoshi{100,66,33,0,0,0,0,0,0,0}{太,陽,系,星,水,金,地,球,火,木,土}{8mm}{2mm}
\end{document}