3

ドキュメントによると、「絵記号はセルのメインコンテンツの左側に配置され、コンテンツの最初の行に揃えられます。」しかし、私が評価すると

CellPrint@Cell[BoxData["Text"], CellDingbat -> "CellDingbat"]

"Default"私が得たスタイルシート付きのノートブックで

スクリーンショット

CellDingbatがの最初の行よりも下に配置されていることがわかりますCell。なぜこれが起こるのですか?CellDingbatの最初の行に合わせる方法はありCellますか?

4

5 に答える 5

4

セルの内容がでラップされている場合、絵記号とセルの内容のベースラインは同じように変化しないようBoxDataです。Sjoerdが指摘したようBoxData、セルの内容からを削除すると整列しますが、に追加BoxDataしてCellDingbatも何も変わらないようです。

ベースラインはを使用してシフトすることができAdjustmentBox、しばらく遊んだ後、ベースラインがによって外れていることがわかりました CurrentValue["FontAxisOffset"]/CurrentValue["FontMWidth"]。これらの項は両方ともで変化しますMagnificationが、観測されたオフセットは、のときに得られる定数値であることがわかりますMagnification->1。この場合、比率は0.20833 == 5/24です。

問題が本当にベースラインにあるのか、そしてその振る舞いに根本的な理由があるのか​​どうかはわかりません。また、必要なシフトがCell、Notebook、または$FrontEndの倍率に依存しない理由もわかりません。しかし、それはうまくいくようで、私はそれで遊んで十分な時間を過ごしました!

したがって、すべてが(基本的に)問題ないことをテストするには、

Do[CellPrint@Cell[BoxData["TxyT"], 
      CellDingbat -> BoxData[AdjustmentBox["TxyT", BoxBaselineShift -> -5/24]], 
      Magnification -> mag], {mag, 1, 5}]

絵記号

また、どのようにテストします

CellPrint@Cell[BoxData["TxyT"], 
   CellDingbat -> BoxData[AdjustmentBox["TxyT", BoxBaselineShift -> -5/24]], 
   Magnification -> Inherited]

含まれているノートブックとフロントエンドのさまざまな倍率を探します。

SetOptions[EvaluationNotebook[], Magnification -> 4.]

および/または

SetOptions[$FrontEnd, Magnification -> 4.]
于 2011-09-29T00:15:39.273 に答える
3

CellDingbatの代わりにCellLabel

絵記号は通常、テキストではなく小さなアイコンです。設計上、これらはセルの最初の行の内容のベースラインの下にいくらか配置されています。私の目には、彼らはそのようにうまく見えます。

Dingbatの代わりにセルのラベルが必要な場合は、次を使用しますCellLabel

CellPrint@Cell[BoxData["Text"], CellLabel -> "Example"]

セルラベル

左揃えは。で処理できますCellMargins

左側のラベルを使用する場合は、セルをとしてフォーマットしOutputますが、次の3つの例に示すように、配置は画面の倍率に依存することに注意してください。


拡大1


1倍半


2倍


于 2011-09-29T00:21:49.817 に答える
2

BoxData絵記号を置き換えるTextData(または削除BoxDataして「テキスト」を残す)と、絵記号とセルの内容が揃うことに気づきました。

于 2011-09-28T21:21:27.607 に答える
2

標準の「入力」または「コード」セルスタイルを使用したくない場合は、 SjoerdCellDingbatが指摘しているように、セルの内容と絵記号が自動的に整列します。セルの内容をラップした場合にのみ、セルの位置がずれます。BoxData

必要なセルが「テキスト」または「セクション」(など)セルである場合でも、セルの内容がに含まれていれば、テキストをフォーマットすることができますTextData[...]。例えば

絵記号

T配置が明確になるように、テキストを開始し、大文字で絵記号を終了したことに注意してください。

「入力」セルを手動で作成してコンテンツをラップするとTextData(デフォルトでは発生しません)、コードは実行されますが、スタイルは正しくありません。間隔が間違っており、構文の強調表示がアクティブではありません。以下を比較してください

入力

最初の印刷されたセルには構文の強調表示がありますが、セルの絵記号の位置がずれています。2番目の印刷されたセルには構文の強調表示がなく、間隔が狭いですが、絵記号は完全に位置合わせされています。


最後に、私はこのような解決策が機能することを理解する必要がありました。なぜなら、私は何年にもわたって自動セクション番号付けにセル絵記号を使用しており、位置合わせの問題が発生したことがないからです。たとえば、先週私が取り組んでいたノートブックの概要は、私の論文の章のサポートコードが含まれています
WZ
。セクションとサブセクションのセルには、スタイルシートで絵記号が付けられています
CellDingbat->TextData[{CounterBox["Section"], ". "}]

于 2011-09-29T13:28:22.807 に答える
1

指定することCellBaselineは効果がありますか?

のように

CellPrint[
 Cell[BoxData["Text"], CellDingbat -> "CellDingbat", 
  CellBaseline -> Bottom]]

デフォルトではなくCellBaseline -> Baseline

于 2011-09-30T00:10:40.940 に答える