Я построил 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}