
두 개의 열이 있는 테이블을 그리고 싶습니다 TikZ
. 왼쪽 열에는 A부터 Z까지의 문자가 포함되고 오른쪽 열에는 해당 dancer
. 내가 사용하는 코드는 다음과 같습니다
\documentclass[a4paper, 12pt,landscape]{article}
\usepackage[vmargin={1cm,1cm},hmargin={8mm,1cm}]{geometry}
\usepackage{lmodern}
\usepackage{tikz}
\DeclareFontFamily{OT1}{dancers}{}
\DeclareFontShape{OT1}{dancers}{m}{n}{<-> dancers}{}
\newcommand{\dancers}[1]{%
\usefont{OT1}{dancers}{m}{n}\spaceskip=5pt
#1}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[
box/.style={draw, minimum size=7mm}]
\foreach \i [count=\ni from 0] in {A,B,...,Z}{
\node[box] at (0,-\ni*7mm) {\i};
\node[box] at (7mm,-\ni*7mm) {\dancers{\i}};
}
\end{tikzpicture}
\end{document}
결과의 세부사항은 다음과 같습니다.
보시다시피 정렬이 별로 좋지 않습니다. 어떻게 하면 더 잘할 수 있나요? 노드 크기를 유지하고 싶지만 해당 dancer
노드의 중앙에 위치하는 것이 더 좋습니다. 어떤 아이디어?
답변1
\smash{\raisebox{-8pt}{}}
에 간단한 것을 적용합니다 \dancers{}
.
가 없으면 \smash
수직 범위가 글리프 공간의 바닥을 벗어나 차트의 모양을 망칠 때까지 각 글리프를 12pt만큼 낮출 수 있습니다.
글리프가 기준선보다 너무 높은 곳에 있는 것은 이상해 보입니다(아마도 춤추는 동안 점프하고 있을 것입니다 ;^).
\documentclass[a4paper, 12pt,landscape]{article}
\usepackage[vmargin={1cm,1cm},hmargin={8mm,1cm}]{geometry}
\usepackage{lmodern}
\usepackage{tikz}
\DeclareFontFamily{OT1}{dancers}{}
\DeclareFontShape{OT1}{dancers}{m}{n}{<-> dancers}{}
\newcommand{\dancers}[1]{%
\usefont{OT1}{dancers}{m}{n}\spaceskip=5pt
#1}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[
box/.style={draw, minimum size=7mm}]
\foreach \i [count=\ni from 0] in {A,B,...,Z}{
\node[box] at (0,-\ni*7mm) {\i};
\node[box] at (7mm,-\ni*7mm) {\smash{\raisebox{-8pt}{\dancers{\i}}}};
}
\end{tikzpicture}
\end{document}