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

Nas*_*ser 7 wolfram-mathematica mathematica-frontend

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

(*                        *)
(*  L E F T    P A N E L  *)
(*                        *)
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

在此输入图像描述

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

我不能使用其他细胞类型,如Code等.我想知道是否有人知道让这个对齐的技巧.

谢谢

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

在此输入图像描述

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

编辑3:

好吧,党不会持续很长时间.在演示中不允许使用SetOptions.太糟糕了,因为Alexey的解决方案效果很好,并使评论保持一致并且看起来更好.

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

在此输入图像描述

Sim*_*mon 7

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

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

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

显示为

截图


编辑以回应评论:

如果您在代码之间有注释(没有左边的代码),那么可以将它放在 GridBox(使用Ctrl-Enter和创建Ctrl-,)中,使用(* ... *)白色字体进行注释.

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"]
Run Code Online (Sandbox Code Playgroud)

  • +1另一个解决方案是意识到三个月后你不会理解你的Mma代码,无论你写了多少评论:) (4认同)

Ale*_*kov 2

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

SetOptions[EvaluationNotebook[], 
 AutoStyleOptions -> {"CommentStyle" -> {FontWeight -> Plain,
     FontColor -> GrayLevel[0.6`], ShowAutoStyles -> False, 
     ShowSyntaxStyles -> False, AutoNumberFormatting -> False, 
     FontFamily -> "Consolas"}}]
Run Code Online (Sandbox Code Playgroud)