表形式環境での回転ボックスの間隔

表形式環境での回転ボックスの間隔

この表の間隔について誰か説明してもらえますか?

  • 回転したボックスの一部に、ベースラインで区切られた 0、1、2、または 3 文字が含まれるのはなぜですか?
  • 一部のボックスに先頭/末尾にスペースがあるのはなぜですか?

これらを制御するメカニズムが何なのか分かりません。

\documentclass{article}

\usepackage{array}
\usepackage{rotating}

\renewcommand{\arraystretch}{0}%
\setlength{\fboxsep}{0pt}%

\newcommand{\testBox}[2]{%
  \setlength{\fboxsep}{0pt}%
  \fboxrule=.1pt%
  \fbox{%
    \rotatebox[origin=#1]{#2}%
      {#1 #2}%
  }%
}

\begin{document}

\noindent
\tt

\begin{tabular}%
{@{}|llll|llll|llll|@{}}%
  \hline%
  \rlap{\rule{211pt}{.1pt}}%
  \testBox{rt}{090}&%
  \testBox{rb}{090}&%
  \testBox{rt}{270}&%
  \testBox{rb}{270}&%
  %
  \testBox{ct}{090}&%
  \testBox{cb}{090}&%
  \testBox{ct}{270}&%
  \testBox{cb}{270}&%
  %
  \testBox{lt}{090}&%
  \testBox{lb}{090}&%
  \testBox{lt}{270}&%
  \testBox{lb}{270}\\%
  \hline%
\end{tabular}

\end{document}

表形式でボックスを回転する

答え1

私がコメントしたように、それは私にとっては理にかなっています。[元の] ボックスの指定された回転原点 (たとえば、右下) は、回転の前後で同じ垂直位置のままです。唯一の奇妙な点は、回転したボックスのベースラインとボックスの間にギャップができてしまう場合 (たとえば、右上 270 など)、テキストの位置を変更せずにボックスがベースラインまで拡張されることです。

私が言いたいことを示すために、回転前の画像と回転後の画像の両方で回転ポイントが重なるように、MWE を多少調整して、回転していないボックスと回転したボックスを重ね合わせました。

\documentclass{article}

\usepackage{array}
\usepackage{rotating}

\renewcommand{\arraystretch}{0}%
\setlength{\fboxsep}{0pt}%

\newcommand{\testBox}[3][0]{%
  \setlength{\fboxsep}{0pt}%
  \fboxrule=.1pt%
  \setbox0=\hbox{\fbox{#2 #3}}%
  \fbox{%
      {#2 #3}%
  }\kern-\wd0%
  \rlap{\makebox[\dimexpr\wd0+#1\ht0][r]{\fbox{%
    \rotatebox[origin=#2]{#3}%
      {#2 #3}%
  }}}%
  \kern\wd0%
}

\begin{document}

\noindent
\tt

  \leavevmode\rlap{\rule{211pt}{.1pt}}
  \testBox[1]{rt}{090}\quad
  \testBox{rb}{090}\quad
  \testBox{rt}{270}\quad
  \testBox[1]{rb}{270}

\renewcommand{\testBox}[3][0]{%
  \setlength{\fboxsep}{0pt}%
  \fboxrule=.1pt%
  \setbox0=\hbox{\fbox{#2 #3}}%
  \fbox{%
      {#2 #3}%
  }\kern-\wd0%
  \rlap{\makebox[\dimexpr\wd0+#1\ht0][c]{\fbox{%
    \rotatebox[origin=#2]{#3}%
      {#2 #3}%
  }}}%
  \kern\wd0%
}
  \leavevmode\rlap{\rule{211pt}{.1pt}}
  \testBox[1]{ct}{090}\quad
  \testBox[-1]{cb}{090}\quad
  \testBox[-1]{ct}{270}\quad
  \testBox[1]{cb}{270}

\renewcommand{\testBox}[3][0]{%
  \setlength{\fboxsep}{0pt}%
  \fboxrule=.1pt%
  \setbox0=\hbox{\fbox{#2 #3}}%
  \fbox{%
      {#2 #3}%
  }\kern-\dimexpr\wd0+#1\ht0\relax%
  \rlap{\makebox[\wd0][l]{\fbox{%
    \rotatebox[origin=#2]{#3}%
      {#2 #3}%
  }}}%
  \kern+\dimexpr\wd0+#1\ht0\relax%%
}
  \leavevmode\rlap{\rule{211pt}{.1pt}}
  \testBox{lt}{090}\quad
  \testBox[1]{lb}{090}\quad
  \testBox[1]{lt}{270}\quad
  \testBox{lb}{270}


\end{document}

ここに画像の説明を入力してください

わかりやすくするために、回転の原点に赤いマークを手動で(LaTeX の外部で)追加しました。

ここに画像の説明を入力してください

関連情報