tikz 日历中从右到左的周列表样式

tikz 日历中从右到左的周列表样式

我发现这个问题TikZ 日历中的垂直周列表我需要创建一个类似的样式,RTL week list从右侧开始按周排列

下面是一个例子xelatex

\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calendar,positioning}
\usepackage{fontspec}
\setmainfont[Script=Arabic]{Amiri}

\def\pgfcalendarmonthname#1{\translate{\ifcase#1\or جانفي\or فيفري\or مارس\or أفريل
\or ماي\or جوان\or جويلية\or أوت\or سبتمبر\or أكتوبر\or نوفمبر\or ديسمبر\fi} }

\pagestyle{empty}


%\tikzstyle{RTL week list}=[??]

\begin{document}

\begin{tikzpicture}
[every calendar/.style = {
    month label above centered,
    month text = {\Large{\%mt}},
    }]

\calendar[dates=2018-01-01 to 2018-01-last,week list]if (Friday) [red];

\end{tikzpicture}

\end{document}

使用此输出

enter image description here

我需要的是这样的

enter image description here

答案1

使用day xshift=一些负间距量,请根据您的个人喜好进行调整。样式week list使用day xshift等来分隔各个日期,通常使用正值从左到右列出日期,使用负值反转列表。

我不得不禁用字体设置(我没有阿拉伯字体)

\documentclass[12pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calendar,positioning}
%\usepackage{fontspec}
%\setmainfont[Script=Arabic]{Amiri}

%\def\pgfcalendarmonthname#1{\translate{\ifcase#1\or جانفي\or فيفري\or مارس\or أفريل
%\or ماي\or جوان\or جويلية\or أوت\or سبتمبر\or أكتوبر\or نوفمبر\or ديسمبر\fi} }

\pagestyle{empty}


%\tikzstyle{RTL week list}=[??]

\begin{document}

\begin{tikzpicture}
[every calendar/.style = {
    month label above centered,
    month text = {\Large{\%mt}},
    }]

\calendar[dates=2018-01-01 to 2018-01-last, week list, day xshift=-3ex]if (Friday) [red];

\end{tikzpicture}

\end{document}

enter image description here

相关内容