コンテキストに応じて右から左へのリストをカスタマイズする

コンテキストに応じて右から左へのリストをカスタマイズする

右から左のリスト(アラビア語)でオプションを使用するmarginにはどうすればよいですか。column

..., أ , ب右から左へのリストに新しい列挙を定義しました が、 merginitemize 環境に またはその他のオプションを追加するとbullet、定義したラベルの代わりに が表示されます。

ムウェ

\setuppapersize[A4]
\mainlanguage[arabic]
\setupdirections[bidi=global]
\setupalign[r2l]  


\definefontfeature
  [arabic]
  [mode=node,language=dflt,script=arab,
    init=yes,medi=yes,fina=yes,isol=yes,
    liga=yes,dlig=yes,rlig=yes,tlig=yes,
    calt=yes,trep=yes,clig=yes,
    mark=yes,mkmk=yes,kern=yes,curs=yes]


\starttypescript [serif] [arabic]
  \definefontsynonym [Arabic] [name:Amiri] [features=arabic]
\stoptypescript

\starttypescript [serif] [arabic] [name]
 \usetypescript[serif][fallback]
 \definefontsynonym [Serif][Arabic][features=arabic]
\stoptypescript


\starttypescript [Arabic]
 \definetypeface [Arabic] [rm] [serif] [arabic] [default]
 \definetypeface [Arabic] [mm] [math]  [palatino] [default]
\stoptypescript 


\setuplayout[
  grid=min,
  backspace=20mm, width=170mm,
  topspace=10mm, height=275mm,
  header=10mm,footer=10mm,
  footerdistance=0.5mm
  ]


\setuppagenumbering[
  state=none,
 ]


\setupbodyfont[Arabic,18pt]
\setupinterlinespace[line=30pt]

\def\arabiclabel#1%
 {\ifcase#1 \or أ\or ب\or ج\or د\or ه\or
            و\or ي\else
  \expandafter\arabiclabel\expandafter{\the\numexpr#1-7\relax}\fi}

\defineconversion[s][\arabiclabel]


\starttext


\startitemize[s]
\item
كلمة
\item
كلمة
\item
كلمة
\stopitemize


\startitemize[s,margin=1em,columnn,three]
\item
كلمة
\item
كلمة
\item
كلمة
\stopitemize
 
\stoptext   

出力

ここに画像の説明を入力してください

右から左へのノートの列は右端から左端に向かって始まる必要があります

答え1

右から左に記述する環境で項目の列バージョンを設定するには、2 つの方法があります。(これはベータ版では機能しますが、TeXlive 2015 の安定版についてはわかりません。いずれにせよ、ベータ版はすぐに TeXlive 2016 に導入されるでしょう。)

最初のアプローチは、ドキュメント内のすべての項目の動作を変更することです。これは、主に右から左に記述するドキュメントで便利です。プリアンブルに次のコードを追加するだけです。

\setupmixedcolumns[itemgroupcolumns][direction=reverse]

2 番目のアプローチは、個々の項目の方向を変更することです。ここでは、他の回答で指摘されているように、キーワードと割り当てを分離する必要があることに注意する必要があります。2 番目のアプローチを使用した以下の例をご覧ください。

\setupalign[r2l]
\starttext
\startitemize[n,columns,three][direction=reverse]
\item One
\item Two
\item Three
\item Four
\item Five
\item Six
\item Seven
\stopitemize
\stoptext

実際、CONTEXT には 2 つの列項目化があります。1 つはあなたが使用したもので、もう 1 つは水平です。2 つの列と 2 つ以上の項目を想定すると、最初の方法では 2 番目の項目が 2 行目に配置されますが、2 番目の方法では 2 番目の項目が 1 行目の最初の項目の後に配置されます (これは、たとえば、特定の複数選択問題で役立ちます)。

右から左の設定で水平方式を使用するには、次の操作を試してください。

\startitemize[n,horizontal,two][direction=reverse]
\startitem One \stopitem
\startitem Two \stopitem
\startitem Three \stopitem
\startitem Four \stopitem
\stopitemize

もう 1 つ注意点があります。現在のベータ版では、インド数字を生成する(および) マクロまたは対応するキーに加えて、\abjadnumeralsおよび\arabicnumerals(好みの番号付けを生成する)を使用できます。 には、同様の番号付け方法が多数定義されています。\arabicdecimals\persiandecimalscore-con.mkiv

答え2

コードに 2 つの間違いがあります。

  1. キーワードはcolumns、column ではなく です。
  2. キーワードと割り当てを分離する必要があります (これはメーリング リストでは定番です)。

したがって、2 番目のアイテム グループは次のように始まる必要があります。

\startitemize [s,columns,three] [margin=1em]

関連情報