در سطر ۴۱ فایل latex-xetex-bidi.def
ماکرو زیر تعریف شده. کاری که این ماکرو انجام میده اینه که جهت هر پاراگراف رو راست به چپ یا چپ به راست میکنه.
\def\bidi@RTL@everypar{{\setbox\z@\lastbox\if@RTL\beginR\else\beginL\fi\ifvoid\z@\else\usebox\z@\fi}}
دستور کلیدی در اینجا \usebox
است. تعریف این دستور در سطر ۴۹۹۱ فایل latex.ltx
بصورت زیر هست.
\def\usebox#1{\leavevmode\copy #1\relax}
دستور کلیدی در اینجا \leavevmode
هست. تعریف این دستور در سطر ۶۰۲ همین فایل بصورت زیر هست.
\def\leavevmode{\unhbox\voidb@x}
کادر \voidb@x
همون کادر ۱۰ هست.
\documentclass{article}
\begin{document}
\makeatletter
\showthe\voidb@x
\makeatother
\setbox10=\hbox{Hello}
Goodbye
\box10
\end{document}
بنابراین
\documentclass{article}
\begin{document}
\everypar{\unhbox10}
\setbox10=\hbox{Hello}
Goodbye
\box10
\end{document}
یا
\documentclass{article}
\begin{document}
\everypar{\unhbox\csname voidb@x\endcsname}
\setbox10=\hbox{Hello}
Goodbye
\box10
\end{document}
یا حتی
\documentclass{article}
\begin{document}
\everypar{\unhbox11}
\setbox11=\hbox{Hello}
Goodbye
\box11
\end{document}
دقیقا همون مشکل رو داره و این در حالتی است که در هیچکدوم از این فایلهای کمینه بسته زیپرشین به کار نرفته. مشکل اینجاست که شما از کادری که برای منظور دیگری طراحی شده، استفاده میکنید و این ایاد مشکل میکنه. بصورت کلی استفاده از registerهای عددی مطمئن نیست چون نمیدونی کدوم بسته ممکنه از اون کادر برای منظور دیگری استفاده کنه.
راهحل مناسب این هست که یک کادر جدید تعریف کنی تا این تداخل نام مشکل ایجاد نکنه.
\documentclass{article}
\usepackage{xepersian}
\settextfont{Arial}
\begin{document}
\newbox\mybox
\setbox\mybox=\hbox{Hello}
Goodbye
\box\mybox
\end{document}