如何在Mathematica笔记本中对齐注释?

时间:2011-06-15 09:23:12

标签: wolfram-mathematica mathematica-frontend

我不知道之前是否有过这样的问题。简单的格式化问题。 我注意到有时很难将注释( ---- )放在彼此之上。必须是字体类型问题。如果我可以让事情完全相互对齐,它在屏幕上看起来会好一点。这是一个例子:

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

但它实际上在我面前的笔记本中看起来像这样:

enter image description here

如果我在第二行中向左移动一个空格,它就像这样:

enter image description here

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

我不能使用其他类型的代码等类型。我想知道是否有人知道让这一点对齐的技巧。

感谢

编辑1: 在样式表演示

中显示输入单元格使用的字体

enter image description here

编辑2: 使用Alexey Popkov下面显示的代码修复了注释的字体问题,现在它们很容易对齐。这是一个截屏 enter image description here

编辑3:

嗯,这个党没有持续多久。在演示中不允许使用SetOptions。太糟糕了,因为Alexey的解决方案效果很好,并使评论保持一致并且看起来更好。

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

enter image description here

2 个答案:

答案 0 :(得分:7)

我之前从未真正担心过,因为我只对小评论或评论代码使用内联(* -- *)条评论。如果我需要多行注释,我会将代码拆分成较小的部分并使用文本单元格。

也就是说,您可以尝试使用最右侧\[AlignmentMarker]上的*)

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

显示为

screenshot


编辑以回应评论:

如果你在代码之间有评论(左边没有代码),那么可以把它放在GridBox(使用Ctrl-EnterCtrl-,创建)中,这是注释掉的使用白色字体(* ... *)

GridBox

很难给出代码来制作上述内容......但这里是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"]

答案 1 :(得分:2)

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

SetOptions[EvaluationNotebook[], 
 AutoStyleOptions -> {"CommentStyle" -> {FontWeight -> Plain,
     FontColor -> GrayLevel[0.6`], ShowAutoStyles -> False, 
     ShowSyntaxStyles -> False, AutoNumberFormatting -> False, 
     FontFamily -> "Consolas"}}]