7

我不知道这是不是以前问过的。简单的格式化问题。我注意到有时很难将评论(----)相互对齐。一定是字体类型问题。如果我能让东西完全对齐,它在屏幕上看起来会好一点。这是一个例子:

(*                        *)
(*  L E F T    P A N E L  *)
(*                        *)

但实际上在我面前的笔记本上是这样的:

在此处输入图像描述

如果我将第二行中的 *) 向左移动一个空格,它将变成这样:

在此处输入图像描述

所以,不能让它对齐。我正在使用输入类型的单元格(标准单元格)。

我不能使用其他单元格类型,例如代码等。我想知道是否有人知道让这个对齐的技巧。

谢谢

编辑 1:在样式表演示中显示输入单元格使用的字体

在此处输入图像描述

编辑 2:使用 Alexey Popkov 下面显示的代码,修复了注释的字体问题,现在它们很容易对齐。这是一个屏幕截图 在此处输入图像描述

编辑 3:

好吧,派对并没有持续多久。演示中不允许使用 SetOptions。太糟糕了,因为 Alexey 的解决方案效果很好,使评论对齐并且看起来更好。

反正。真的没什么大不了的。可以忍受一些错位的评论:)

在此处输入图像描述

4

2 回答 2

7

我以前从来没有真正担心过这一点,因为我只(* -- *)对小注释或注释代码使用内联注释。如果我需要多行注释,我会将我的代码分成更小的部分并使用文本单元格。

也就是说,您可以尝试\[AlignmentMarker]在最右边使用 s *)

1 + 2 + 3 +     (* First three  \[AlignmentMarker]*)
 4 + 5 + 6 +    (* Next three   \[AlignmentMarker]*)
 7 + 8 + 9      (* Last three   \[AlignmentMarker]*)

显示为

截屏


编辑以回应评论:

如果您在代码之间有注释(左侧没有代码),则可以将其放入 GridBox(使用Ctrl-Enterand创建)中,使用白色字体Ctrl-,注释掉。(* ... *)

网格框

很难提供代码来完成上述操作......但这里是 Box 表单:

Cell[BoxData[
 RowBox[{"Manipulate", "[", "\[IndentingNewLine]", 
  RowBox[{RowBox[{RowBox[{"a", " ", "=", " ", 
   RowBox[{"x", "+", "1"}]}], ";", "\[IndentingNewLine]", " ", 
    RowBox[{StyleBox["(*", FontColor->GrayLevel[1]], "", 
     GridBox[{{"(*", RowBox[{"Inter", "-", RowBox[{"code", Cell[""]}]}], "*)"},
              {"(*", "comments", "*)"}},
      GridBoxAlignment->{"Columns" -> {{Left}}, "ColumnsIndexed" -> {}, 
      "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}], " ", 
     StyleBox["*)", FontColor->GrayLevel[1]]}], "\[IndentingNewLine]", 
    RowBox[{"{", RowBox[{"a", ",", SuperscriptBox["a", "2"]}], "}"}]}], ",", 
   "\[IndentingNewLine]", 
   RowBox[{"{", RowBox[{"x", ",", "0", ",", "1"}], "}"}]}], 
  "]"}]], "Input"]
于 2011-06-15T09:54:21.530 回答
2

我安装Mathematica 7时没有这样的问题,因为它默认使用等宽字体“Courier New”作为样式的单元格Input。但是,如果由于某种原因,默认情况下在您的安装中使用了非等宽字体,您可以重新定义 Notebook 中的注释样式以使用等宽字体:

SetOptions[EvaluationNotebook[], 
 AutoStyleOptions -> {"CommentStyle" -> {FontWeight -> Plain,
     FontColor -> GrayLevel[0.6`], ShowAutoStyles -> False, 
     ShowSyntaxStyles -> False, AutoNumberFormatting -> False, 
     FontFamily -> "Consolas"}}]
于 2011-06-15T12:07:11.353 回答