Graphicx,\rotatebox Hacer que el origen de la rotación termine en el mismo lugar dentro del cuadro circundante donde terminaría si el cuadro no fuera rotado

Graphicx,\rotatebox Hacer que el origen de la rotación termine en el mismo lugar dentro del cuadro circundante donde terminaría si el cuadro no fuera rotado

Para ilustrar cosas, creé un mwe donde dentro de una tabla tienes celdas donde un cuadro que contiene algo de texto gira alrededor de su punto de referencia.

Las columnas izquierda y derecha contienen lo mismo. La columna de la derecha contiene además algunos rectángulos para que puedas ver los puntos de referencia de las cajas originales y las medidas de las cajas resultantes de la rotación.

Al mirar la segunda fila, parece que el comando \rotateboxdel paquete gráficox envuelve el resultado de la rotación en un cuadro.

Al colocar en el cuadro circundante el cuadro entregado por el \rotateboxcomando -, me gustaría que el origen de rotación rotado terminara en el mismo lugar donde terminaría si el cuadro no estuviera rotado. Como se puede ver en la tercera fila de la tabla del resultado de compilar el ejemplo siguiente. (Con el mwe a continuación, "el cuadro circundante" es el cuadro que contiene el contenido de la celda de la tabla creada por el entorno tabular).

Como elegí el caso especial en el que la rotación se realiza alrededor del punto de referencia de la caja en un ángulo de 45 grados en sentido contrario a las agujas del reloj, se necesitaba algo de desplazamiento/interletraje "manual" hacia la izquierda que se podía calcular fácilmente.

Pero todavía me pregunto si pasé por alto una forma menos engorrosa que podría describirse en grfguide para que el origen de rotación rotado termine en el mismo lugar dentro del cuadro circundante donde terminaría si el cuadro no se rotara. (Con el mwe a continuación, "el cuadro circundante" es el cuadro que contiene el contenido de la celda de la tabla creada por el entorno tabular).

(Para calcular cosas, uno podría colocar cosas rotadas y no rotadas \phantomenvueltas en cajas de ancho/alto/profundidad cero que contengan imágenes tikz para almacenar algunas coordenadas..., pero me pregunto si hay alguna manera fácil de hacer las cosas que pasé por alto al leer grfguide.)

\documentclass{article}
\usepackage{graphicx, xcolor}

\ExplSyntaxOn\cs_new_eq:NN \fpeval \fp_eval:n\ExplSyntaxOff

\newbox\boxtorotate

\newlength\scratchy
\newcommand\Osepfbox[1]{{%
  \scratchy=\fboxsep
  \colorlet{saved}{.}%
  \fboxsep=-\fboxrule
  \color{lightgray}%
  \fbox{\fboxsep=\scratchy\color{saved}#1}%
}}%

\newcommand*\referencepointbox{%
  \hbox{%
    {%
      \color{lightgray}%
      \kern-\fboxrule \kern-\fboxsep \kern-.2pt
      \vbox{%
        \hbox{%
          \fbox{\vrule height 0.2pt depth 0.2pt width 0.4pt}%
        }%
        \kern-\prevdepth
      }%
      \kern-\fboxrule \kern-\fboxsep \kern-0.2pt
    }%
    \copy\boxtorotate
  }%
}%

\newcommand*\noreferencepointbox{\hbox{\copy\boxtorotate}}

\begin{document}

\setbox\boxtorotate=\hbox{Some text}

\begin{tabular}{|l|l|}
\hline&\\
\rlap{\noreferencepointbox}\rotatebox[x=0pt, y=0pt]{0}{\noreferencepointbox}&
\rlap{\referencepointbox}\Osepfbox{\rotatebox[x=0pt, y=0pt]{0}{\referencepointbox}}%
\\&\\
\hline&\\
\rlap{\noreferencepointbox}\rotatebox[x=0pt, y=0pt]{45}{\noreferencepointbox}&
\rlap{\referencepointbox}\Osepfbox{\rotatebox[x=0pt, y=0pt]{45}{\referencepointbox}}%
\\&\\
\hline&\\
\rlap{\noreferencepointbox}%
\kern-\fpeval{sqrt((\ht\boxtorotate)*(\ht\boxtorotate)*0.5)}pt 
\rotatebox[x=0pt, y=0pt]{45}{\noreferencepointbox}&
\rlap{\referencepointbox}%
\kern-\fpeval{sqrt((\ht\boxtorotate)*(\ht\boxtorotate)*0.5)}pt
\Osepfbox{\rotatebox[x=0pt, y=0pt]{45}{\referencepointbox}}%
\\&\\
\hline
\end{tabular}

\end{document}

ingrese la descripción de la imagen aquí

información relacionada