对象被 \rotatebox 旋转后的新位置

对象被 \rotatebox 旋转后的新位置

来自包的origin=lb宏中的选项“ ”表示对象将以其左下角为单位旋转。因此,以下代码中的“typeset-1 & typeset-2”\rotateboxgraphicx

\documentclass{article}
\usepackage{fancyhdr,graphicx,tcolorbox}
\begin{document}
\pagestyle{fancy}
\noindent
\parindent=0pt
\makebox[0pt][l]{some text}% typeset-1
\rotatebox[origin=lb]{90}{some text}\\[3em]% typeset-2

\rotatebox{0}{% typeset-3
  \begin{tcolorbox}[width=0.7\textwidth,height=6em]
    the left side of this box alligns well with the left end of the headrule.
  \end{tcolorbox}
}\\
%
\rotatebox[origin=lb]{90}{% typeset-4
  \begin{tcolorbox}[width=0.7\textwidth,height=6em]
    As the option "origin=lb" is used, the right side of this rotated box should align with the left end of the headrule, but it does not.
  \end{tcolorbox}
}
\end{document}

应该是这样的: 在此处输入图片描述 但得到这个: 在此处输入图片描述 当对象来自时tcolorbox(见上述代码中的 typeset-3 & typeset-4),它们有同样的问题。这是 的问题\rotatebox还是其他的问题?如何获得像第一张图那样的排版效果?

答案1

旋转框的宽度被考虑在内。因此它不会覆盖之前的文本或超出左边距。您必须隐藏旋转框的宽度:

\makebox[0pt][r]{\rotatebox[origin=lb]{90}{some text}}

或内容的高度:

\rotatebox[origin=lb]{90}{\smash{some text}}. 

请注意,如果存在像“我的文本”中的降部,这些建议的结果将会有所不同。

例子:

\documentclass{article}
\usepackage{graphicx}
\usepackage{parskip}% <- parskip instead parindent, only for the example
%\usepackage{showframe}% <- to show the pagelayout, only for the example
\begin{document}

\makebox[0pt][l]{some text}% typeset-1
\rotatebox[origin=lb]{90}{some text}\\[3em]% typeset-2

\makebox[0pt][l]{some text}% typeset-1
\makebox[0pt][r]{\rotatebox[origin=lb]{90}{some text}}% typeset-2

\makebox[0pt][l]{some text}% typeset-1
\rotatebox[origin=lb]{90}{\smash{some text}}% typeset-2

\bigskip
\noindent
\makebox[0pt][l]{some text}% typeset-1
\makebox[0pt][r]{\rotatebox[origin=lb]{90}{my text}}% typeset-2

\makebox[0pt][l]{some text}% typeset-1
\rotatebox[origin=lb]{90}{\smash{my text}}% typeset-2

\end{document}

结果:

在此处输入图片描述

相关内容