Tikz 用希伯来语扫描节点内的文本位置

Tikz 用希伯来语扫描节点内的文本位置

由于某种原因,第二个节点的文本没有打印在节点的框内,而是打印在 tikzpicture 的完全相反的一侧。

有什么办法可以修复它吗?

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning,backgrounds}

\usepackage[english,hebrew,bidi=basic,provide=*]{babel}
\babelfont[hebrew]{sf}[Script=Hebrew]{Arial}

\begin{document}
\begin{frame}
\begin{tikzpicture}[background rectangle/.style={fill=gray!33}, show background rectangle]

\node [draw,text width=0.75\textwidth, align=left, outer sep=0pt,inner sep=0pt](n1) {%
לורם איפסום דולור סיט אמט.
};

\node [draw,below = 0pt of n1.south east,anchor=north east,outer sep=0pt,inner sep=0pt](n2) {%
שלום עולם};
\filldraw (n2) circle (1pt);
\end{tikzpicture}
\end{frame}
\end{document}

截屏

(MWE 与 beamer 有关,但也出现在文章和书籍中)

答案1

添加包选项layout=graphics,即:

\usepackage[english,hebrew,bidi=basic,layout=graphics,provide=*]{babel}

在此处输入图片描述

答案2

\noindent请注意,无论选择哪种方式,在环境前插入tikzpicture都会导致问题仍然存在layout=graphics

与在环境前插入文本相同:

\documentclass{article}
%% same preamble as in Javier Bezos' answer
\begin{document}
אבג% so there is no \par command before the tikzpicture
\begin{tikzpicture}
〈same code〉
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容