
我想繪製一個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}