
편집하다 :내가 하고 싶은 일을 설명하기 위해 몇 가지 예를 추가했습니다.
나는 중첩된 Young tableaux를 그릴 수 있기를 원합니다. Young tableaux의 정의는 다음을 참조하세요.https://en.wikipedia.org/wiki/Young_tableau. 중첩이란 테이블의 셀 내용 자체가 테이블이라는 의미입니다. 예를 들어 내 결과는 다음과 같아야 합니다.
일반적으로 행과 열의 길이는 제한되지 않습니다. 다음은 내가 할 수 있는 작업을 설명하는 또 다른 예입니다.
나는 타블로이드와 칼럼 타블로이드도 원하기 때문에 (ytableau 또는 genyoungtabtikz 패키지 대신) 이 답변의 방법을 사용하여 tableaux를 그립니다.
그러나 나는 tikz에 익숙하지 않고 원하는대로 작동하지 않습니다. 첫 번째 예에는 최소한의 코드가 있습니다. 컴퓨터가 두 방법을 혼동하지 않도록 \Tableau와 \PTableau를 사용했습니다.
\documentclass{article}
\usepackage{tikz}
\newcount\tableauRow\newcount\tableauCol
\newcommand\Tableau[2]{%
\begin{tikzpicture}[scale=#2,draw/.append style={thick,black},baseline=-4mm]
\tableauRow=0
\foreach \Row in {#1} {
\tableauCol=1
\foreach\k in \Row {
\draw(\the\tableauCol,\the\tableauRow)+(-.5,-.5)rectangle++(.5,.5);
\draw(\the\tableauCol,\the\tableauRow)node{\k};
\global\advance\tableauCol by 1
}
\global\advance\tableauRow by -1
}
\end{tikzpicture}
}
\newcommand\PTableau[2]{%
\begin{tikzpicture}[scale=#2,draw/.append style={thick,black},baseline=-4mm]
\tableauRow=0
\foreach \Row in {#1} {
\tableauCol=1
\foreach\k in \Row {
\draw(\the\tableauCol,\the\tableauRow)+(-.5,-.5)rectangle++(.5,.5);
\draw(\the\tableauCol,\the\tableauRow)node{\k};
\global\advance\tableauCol by 1
}
\global\advance\tableauRow by -1
}
\end{tikzpicture}
}
\begin{document}
\[
\PTableau{{\Tableau{{1,2},{3,4}}{0.5},\Tableau{{5,6},{7,8}}{0.5}}}{1.5}
\]
\end{document}
이 코드를 사용하면 결과는 내가 원하는 것이 아닌 다음과 같습니다(컴퓨터 문제 때문에 그렸지만 문제를 보여줍니다).
원하는 결과를 얻으려면 \PTableau에서 무엇을 수정해야 합니까? 그리고 대부분 왜 그렇습니까?
답변1
출력이 상상한 것과 같은지 확실하지 않지만 \pic
실제로 중첩되지는 않지만 결과가 중첩된 것처럼 보이도록 서로 쌓아 올리는 s를 사용하는 접근 방식은 다음과 같습니다.
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\tikzset{
pics/tableau/.style={
code={
\tikzset{tableau/.cd, #1}
\pgfmathsetmacro{\s}{\pgfkeysvalueof{/tikz/tableau/size}*1pt}
\pgfmathsetmacro{\c}{\pgfkeysvalueof{/tikz/tableau/cols}}
\begin{scope}[
shift={(\pgfkeysvalueof{/tikz/tableau/at})},
]
\foreach \n [count=\i from 0] in \tableaulist {
\path[\ifx\n\empty\else draw\fi]
({mod(\i,\c)*\s},{int(-1*\i/\c)*\s})
coordinate (-\i)
rectangle ++({\s},{-1*\s})
node[pos=0.5] (-n\i) { \n };
}
\end{scope}
}
},
tableau/list/.store in=\tableaulist,
tableau/list/.initial={1},
tableau/cols/.initial={2},
tableau/size/.initial={1},
tableau/at/.initial={0,0}
}
\begin{document}
\begin{tikzpicture}
\pic (A) {tableau={list={1,{},9,10,11,{},12,{},20}, cols=3}};
\pic[tableau/size=0.5] (B) {tableau={list={2,3,{},8}, cols=2, at=A-1}};
\pic[tableau/size=0.25, font=\tiny]
{tableau={list={4,5,6,7}, cols=2, at=B-2}};
\pic[tableau/size=0.333, font=\tiny]
{tableau={list={13,14,15,16,17,18,{},{},19}, cols=3, at=A-7}};
\end{tikzpicture}
\end{document}