eso-pic вместе с биди

eso-pic вместе с биди

Я построил documentclass, который использует eso-picпакет для размещения контента на каждой странице относительно верхнего левого угла. Теперь я использовал этот documentclass в документе, который (частично) на иврите. Для иврита я использую пакет polyglossia, согласноэта почтавместе с XeLaTeX. polyglossiaИспользуется bidiдля переключения макета страницы на направление справа налево.

Все работает нормально, кроме позиционирования в левом верхнем углу. Следующий пример показывает мою проблему:

\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}

Если я скомпилирую данный пример, то получу результат, показанный внизу следующей картинки. Но там контент, размещенный в верхнем левом углу, не находится в верхнем левом углу.

Вторая верхняя картинка — это точно такой же пример, но \usepackage{polyglossia}и \setmainlanguage{hebrew}прокомментированы. Так что bidiпакет не загружается. Текст в углу правильный. Но теперь текст на иврите (конечно) не справа налево.

введите описание изображения здесь

Как вы можете видеть в моем предоставленном коде, я уже пытался использовать \put()(вместе с pictureпакетом) для исправления смещения. Но я не могу выяснить, что это такое. Это должно быть что-то вроде -\textwidth-\marginright. Но это не так.

Обратите внимание, что \AddToShipoutPictureFGнаходится в documentclass. Он не находится в том же файле, что и содержимое. Я хочу использовать documentclass в разных файлах, поэтому размеры меняются. Мне нужно знать смещение относительно размеров страницы. Не как абсолютные значения. Использование put(-11.872cm, 0)не решает мою проблему.

Как можно использовать polyglossiaвместе с eso-picразмещением контента в левом верхнем углу?

решение1

Хотя это и не то, на что вы надеялись, вот решение, которое легко реализовать с помощью пакета backgroundи 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}

выход

Связанный контент