私はアラビア語で多言語法を使って確率の本を書いています。いくつかのボックスのカウンターを 10 ずつ増やしたいと思っています (この原因は、アラビア文字がアブジャドで記数法で、最初の 9 文字目には単位を使用し、次の 9 文字目には 10 の位、次の 9 文字目には 100 の位、28 番目と最後の文字には 1000 の位を使用するためです... フランス語のウィキペディアを参照できますが、他にソースはありません...http://fr.wikipedia.org/wiki/Num%C3%A9ration_arabe)。私が見つけた解決策は、コマンドを使用して、すべての反復でカウンターを 9 ずつ増やすことですphantom={\addtocounter{\tcbcounter}{9}}
が、このボックスのラベルはこのコマンドの前のカウンターを参照します... tcolorbox パッケージのドキュメントでそれが自然であることがわかりました。それでは、アイテムに 9 を追加した後のラベルを例のラベルを参照するにはどうすればよいのでしょうか... または他のアイデアはありますか。ありがとうございます。これが私のファイルからの例です。
\documentclass[14pt,a4paper]{extbook}
\usepackage{titlesec}
\usepackage{amsmath,amssymb}
\usepackage[most]{tcolorbox}
\usepackage{boxedminipage}
\usepackage{slashbox}
\usepackage{titlesec}
\usepackage{enumitem}
\usepackage{minitoc}
\usepackage{rotating}
\usepackage{fmultico}
\setlength{\columnseprule}{0.1pt}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{pdflscape}
\usepackage{array}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic, AutoFakeSlant=-0.02]{Amiri}
\setsansfont[Script=Arabic,Scale=1.5]{Amiri}
\tikzstyle{boxwhite} =
[draw=white, thick, scale=.7, fill=white,
line width=0.1pt, text=black, rectangle,
font=\Large,
left, minimum height=.5cm]
\newcounter{example}
\newtcolorbox[auto counter,
number within=section,
number freestyle={\noexpand\arabic{section}\noexpand\alph{\tcbcounter}}]{example}[2][]{
enhanced,
colback=white,
colframe=white,
top=-.7cm,
bottom=-2mm,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
label={#2},
overlay unbroken and first={
\node[boxwhite]
at ([xshift=1.4cm,yshift=-.15cm]frame.north east)
{\strut\RL{\setlength{\extrarowheight}{-30.5pt}\textbf{$\begin{array}{c}
\hline
\rule{0pt}{2ex}
\mbox{\RL{مثال}}
\\
\mbox{\large\thetcbcounter}
\rule{0pt}{1.5ex}
\end{array}$}}};},
breakable,
width=1.048\textwidth,
arc=0pt,outer arc=0pt,
enlarge left by=-.085\textwidth,
extrude right by=-5pt,
extrude left by=-5pt,
#1}%
\newtcolorbox[use counter from=example]{example9}[2][]{
enhanced,
phantom={\addtocounter{\tcbcounter}{9}},
colback=white,
colframe=white,
top=-.7cm,
bottom=-2mm,
enlarge top by=\baselineskip/2+1mm,
enlarge top at break by=0mm,pad at break=2mm,
fontupper=\normalsize,
label={#2},
overlay unbroken and first={%
\node[boxwhite]
at ([xshift=1.4cm,yshift=-.15cm]frame.north east)
{\strut\RL{\setlength{\extrarowheight}{-30.5pt}\textbf{$\begin{array}{c}
\hline
\rule{0pt}{2ex}
\mbox{\RL{مثال}}
\\
\mbox{\large\thetcbcounter}
\rule{0pt}{1.5ex}
\end{array}$}}};},
breakable,
width=1.048\textwidth,
arc=0pt,outer arc=0pt,
enlarge left by=-.085\textwidth,
extrude right by=-5pt,
extrude left by=-5pt,
#1}%
\begin{document}
\begin{example}{ex0:a}
First
\end{example}
\begin{example}{ex0:b}
Second
\end{example}
\begin{example}{ex0:c}
....
\end{example}
\begin{example}{ex0:d}
....
\end{example}
\begin{example}{ex0:e}
....
\end{example}
\begin{example}{ex0:f}
....
\end{example}
\begin{example}{ex0:g}
....
\end{example}
\begin{example}{ex0:h}
....
\end{example}
\begin{example}{ex0:i}
....
\end{example}
\begin{example}{ex0:j}
....
\end{example}
\begin{example9}{ex0:k}
\LR{A good numeroted}
\end{example9}
\begin{example}{ex0:l}
\LR{A bad numeroted}
\end{example}
\LR{but the reference \ref{ex0:k} of the ten-th exercise is bad...}
\end{document}
答え1
カウンターを参照する場合は、カウンターを 増やす必要があります\refstepcounter
。これにより、ラベルが使用する内部コマンドが変更されます。
だからカウンターを
\addtocounter{\tcbcounter}{8}\refstepcounter{tcbcounter}}
最後のステップで正しい処理が行われるようにします。