eso-pic y bidi

eso-pic y bidi

Creé una clase de documento que usa el eso-picpaquete para colocar contenido en cada página en relación con la esquina superior izquierda. Ahora utilicé esta clase de documento en un documento que es (parcialmente) hebreo. Para hebreo estoy usando el polyglossiapaquete, segúnesta publicaciónjunto con XeLaTeX. Se polyglossiautiliza bidipara cambiar el diseño de la página de derecha a izquierda.

Todo funciona bien excepto la posición en la esquina superior izquierda. El siguiente ejemplo muestra mi problema:

\documentclass{article}

% set font for hebrew
\usepackage{fontspec}
\setmainfont{DejaVuSans.ttf}

% if polyglossia is commented
\providecommand{\setLTR}{}
\providecommand{\setRTL}{}

% write "test" a few times
\newcounter{loopcounter}
\newcommand{\writetest}{
    \loop
    \ifnum\value{loopcounter}<36
        Test\theloopcounter 
        \stepcounter{loopcounter}
    \repeat
}

% add the test in the top left corner
\usepackage{calc}
\usepackage{picture}
\usepackage{eso-pic}
\AddToShipoutPictureFG{
    \AtPageUpperLeft{%
        % see the bottom of the question for the \put()
        \put(0,0){
            \raisebox{-\height-3pt}{
                % needed to do left to right align and for breaking
                \parbox{\paperwidth}{
                    \setLTR
                    \writetest
                }
            }
        }
    }
}

\usepackage{polyglossia} % <- If those packages are commented the placing
\setmainlanguage{hebrew} % <- of the top left content is correct.

\begin{document}
    תוכן
\end{document}

Si compilo el ejemplo dado, obtengo el resultado que se muestra en la parte inferior de la siguiente imagen. Pero allí el contenido colocado en la esquina superior izquierda no está en la esquina superior izquierda.

La segunda imagen superior es exactamente el mismo ejemplo, pero \usepackage{polyglossia}están \setmainlanguage{hebrew}comentados. Entonces el bidipaquete no se está cargando. El texto de la esquina es correcto. Pero ahora el texto hebreo (por supuesto) no es de derecha a izquierda.

ingrese la descripción de la imagen aquí

Como puede ver en el código proporcionado, ya intenté usarlo \put()(junto con el picturepaquete) para corregir el desplazamiento. Pero no puedo descubrir qué es. Debería ser algo así como -\textwidth-\marginright. Pero no lo es.

Tenga en cuenta que \AddToShipoutPictureFGestá en la clase de documento. No está en el mismo archivo que el contenido. Quiero usar la clase de documento en varios archivos para que las dimensiones cambien. Tengo que saber el desplazamiento en relación con las dimensiones de la página. No como valores absolutos. Usar put(-11.872cm, 0)no resuelve mi problema.

¿Cómo puedo usarlo polyglossiajunto con eso-piccolocar contenido en la esquina superior izquierda?

Respuesta1

Aunque no es lo que esperabas, aquí tienes una solución que es fácil de implementar usando el backgroundpaquete y tikz:

\documentclass[letterpaper]{article}

% set font for hebrew
\usepackage{fontspec}
\setmainfont{DejaVuSans.ttf}

% write "test" a few times
\newcounter{loopcounter}
\newcommand{\writetest}{
    \loop
    \ifnum\value{loopcounter}<36
        Test\theloopcounter 
        \stepcounter{loopcounter}
    \repeat
}

% add the test in the top left corner
\usepackage[all]{background}
\backgroundsetup{%
  placement = top,
  color = black,
  opacity=1,
  scale = 1,
  vshift=-6pt,
  contents = {%
    \tikz \node [text width=\paperwidth-12pt, align=justify] {\writetest};
  },
}

\usepackage{polyglossia}
\setmainlanguage{hebrew}

\begin{document}
    תוכן
\end{document}

producción

información relacionada