
Fiquei preso tentando descobrir uma maneira de fazer partituras de Okinawa chamadas "Kunkunshi" (veja a imagem abaixo).
Basicamente, estou tentando fazer uma grade de caracteres japoneses. Deve haver doze quadrados em uma coluna, separados por um espaço de cerca de 66% da largura dos quadrados. Os caracteres devem estar centralizados no quadrado ou em fonte menor no meio de dois quadrados. Idealmente, as letras poderiam ser escritas ao lado dos caracteres na grade, conforme mostrado na imagem.
A ajuda mais próxima que pude encontrar foiesta pergunta sobre modelos de caligrafia japonesa.
Responder1
O seguinte fornecerá algo para começar. Existe um loop para desenhar a grade e uma API rudimentar para colocar letras em algumas células, linhas ou locais de "letras". Peça esclarecimentos nos comentários, se necessário.
\documentclass [border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\def\atcenter#1#2#3{
% Puts #3 at cell (#1,#2)
\path (#1,#2) +(.3,.5) node {#3};
}
\def\atline#1#2#3{
% Puts #3 at the line between cells (#1, #2-0.5) and (#1, #2+0.5)
\path (#1,#2) +(.3,.5) node[fill=white, font=\tiny, inner xsep=1mm, inner ysep=0] {#3};
}
\def\lyrics#1#2#3{
% Puts #3 at the right side of the column #1, at fractional y-coordinate #2
\path (#1,.5) +(.6,#2) node[font=\tiny,anchor=west, inner sep=0.5mm] {#3};
}
\begin{tikzpicture}[x=10mm,y=-6mm]
% Draw the grid
\draw[thick] (1,1) rectangle (11,13);
\foreach \column in {1,...,10} {
\foreach \row in {1,...,12} {
\draw (\column,\row) rectangle +(0.6,1);
}
}
% Some example letters in cells
\foreach \letter [count=\i from 1] in {A,B,C,D,E,F,G,H,I,J,K,L} {
\atcenter{10}{\i}{\letter};
}
% Some example letters at lines
\atline{10}{2.5}{a};
\atline{10}{3.5}{b};
% Another column with letter
\foreach \letter [count=\i from 1] in {M,N,O,P,Q,R} {
\atcenter{9}{\i}{\letter};
}
% Example "lyrics". Note the expression used as #2
\foreach \letter [count=\i from 1] in {f,o,o,b,a,r} {
\lyrics{9}{3+\i*0.4}{\letter}
}
\end{tikzpicture}
\end{document}
O código acima produz:
Atualizar
Só por diversão, tentei com caracteres japoneses, para ver se funcionava. Funcionou! (requer fonte xelatex e AozoraMinchoRegular.ttf, que élivre).
Isenção de responsabilidadeNão entendo uma palavra de japonês :-)
Código:
\documentclass [border=2mm]{standalone}
\usepackage{xeCJK}
\setCJKmainfont{AozoraMinchoRegular.ttf}
\usepackage{tikz}
\begin{document}
\def\atcenter#1#2#3{
% Puts #3 at cell (#1,#2)
\path (#1,#2) +(.3,.5) node {#3};
}
\def\atline#1#2#3{
% Puts #3 at the line between cells (#1, #2-0.5) and (#1, #2+0.5)
\path (#1,#2) +(.3,.5) node[fill=white, font=\tiny, inner xsep=1mm, inner ysep=0] {#3};
}
\def\lyrics#1#2#3{
% Puts #3 at the right side of the column #1, at fractional y-coordinate #2
\path (#1,.5) +(.6,#2) node[font=\tiny,anchor=west, inner sep=0.5mm] {#3};
}
\begin{tikzpicture}[x=10mm,y=-6mm]
% Draw the grid
\draw[thick] (1,1) rectangle (11,13);
\foreach \column in {1,...,10} {
\foreach \row in {1,...,12} {
\draw (\column,\row) rectangle +(0.6,1);
}
}
% Some example letters in cells
\foreach \letter [count=\i from 1] in {中,中,工,上,四,合,四,五,中,中,工,上}
{
\atcenter{10}{\i}{\letter};
}
% Some example letters at lines
\atline{10}{2.5}{五};
\atline{10}{3.5}{中};
% Another column with letter
\foreach \letter [count=\i from 1] in {四,合,四,五,中,中,工,上}
{
\atcenter{9}{\i}{\letter};
}
% Example "lyrics". Note the expression used as #2
\foreach \letter [count=\i from 1] in {日,本,語,で} {
\lyrics{9}{3+\i*0.5}{\letter}
}
\end{tikzpicture}
\end{document}
Resultado: