각 초기화 Cell
이 임의의 이름으로 자체 .m- 파일에 자동 저장되는 노트를 만드는 방법이 있습니까?하나의 노트에 두 개의 초기화 셀이 각각 별도의 .m- 파일로 자동 저장됩니까?
P. 질문은 Wolfram Research Inc.에서 개발 한 Mathematica 프로그램과 관련이 있습니다. 수학 또는 수학 문제가 아닙니다.
각 초기화 Cell
이 임의의 이름으로 자체 .m- 파일에 자동 저장되는 노트를 만드는 방법이 있습니까?하나의 노트에 두 개의 초기화 셀이 각각 별도의 .m- 파일로 자동 저장됩니까?
P. 질문은 Wolfram Research Inc.에서 개발 한 Mathematica 프로그램과 관련이 있습니다. 수학 또는 수학 문제가 아닙니다.
다음 접근 방식이 만족스럽지 않은지 잘 모르겠다. 개발 용 노트북에있는 초기화 셀만 포함 된 소형 노트북을 만드는 방법을 원했습니다. 다음 코드는 현재 노트북의 초기화 셀을 하나의 새 노트에 기록하고 .m 파일을 부작용으로 자동 저장하지만 각 초기화 셀에 대해 별도의 노트와 .m 파일을 생성하도록 쉽게 조정할 수 있습니다.
In[162]:= nbToExtract = SelectedNotebook[]
In[163]:=
extractInitializationCells[nb_] :=
Block[{nbNew = CreateDocument[], count = 0},
(SelectionMove[nb, Next, Cell];
While[NotebookRead[nb] =!= {}, (If[InitializationCell /.
Options[NotebookSelection[nb], InitializationCell],
(count++;
NotebookWrite[nbNew, NotebookRead[nb]]), {}]; SelectionMove[nb, Next, Cell])];
Print[ToString[count] <> " initialization cell(s) found"];
CurrentValue[nbNew, AutoGeneratedPackage] = Automatic;
NotebookSave[nbNew, fn];
NotebookClose[nbNew];
Clear[nbNew](* just in case *))]
extractInitializationCells[nbToExtract]
이것은 단지 기능 extractInitializationCells
가 호출 한 셀 아래 초기화 세포를 추출한다. 그리고 자동 생성 패키지 메커니즘을 사용하는 것에 대한 이전주의 사항에 동의합니다. 또한 CurrentValue
은 역 호환성을 통해 무기한으로 보호되지 않지만 지금까지 여러 주요 Mathematica 버전에서 살아 남았습니다.
오, 그리고 @ BrettChampion의 버튼이나 그 비슷한 아이디어는이 방법에 필요합니다. 저장시 자동으로 실행되지 않습니다. 아마 각 저장에 이것을 달리기 위하여 정면 끝을 변경하는 방법이있다. 어떻게해야할지 모르겠다. – fairflow
나는 그 답을 모른다. 그러나 단지 호기심이있다. 왜 그렇게하고 싶습니까? –
할 수 있다고 생각하지 않습니다. 아마도 코드를 평가하고 고유 한 파일에 작성하는 초기화 셀을 작성할 수는 있지만 초기화 셀을 평가할 때마다 발생하며 파일이 저장 될 때마다 발생하지는 않습니다. –
@belisarius 이유는 MathLink를 통해 슬레이브 커널을 사용하기위한 어플리케이션을 개발하고 있기 때문입니다. 해당 커널에 대해 별도의 초기화 파일이 필요합니다. ** ** ** ** 노트북에 모든 코드를 포함시키는 것이 매우 편하다고 느낍니다. –