Creé una clase de documento que usa el eso-pic
paquete 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 polyglossia
paquete, segúnesta publicaciónjunto con XeLaTeX. Se polyglossia
utiliza bidi
para 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 bidi
paquete no se está cargando. El texto de la esquina es correcto. Pero ahora el texto hebreo (por supuesto) no es de derecha a izquierda.
Como puede ver en el código proporcionado, ya intenté usarlo \put()
(junto con el picture
paquete) 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 \AddToShipoutPictureFG
está 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 polyglossia
junto con eso-pic
colocar 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 background
paquete 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}