
2 列の表を描画します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
、垂直方向の範囲がグリフ スペースの下部からはみ出してグラフの外観が台無しになる前に、各グリフを 12 ポイントまで下げることができます。
グリフがベースラインよりかなり高い位置に配置されているのは珍しいようです (ダンス中にジャンプしているのかもしれません ;^)
\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}