レポートは20ページで、そのうち15ページは計算です。 理にかなった活動はなく、指を使ってのばかげた骨の折れる式のセットです。
私が学部生の仕事を書き始めたとき、これらの数十/数百の式すべてをそれぞれ約10のレポートに入れる必要はないことが明らかになりましたが、EmacsとEmacs Lispの機能についてもっと知りたいという要望がありました。プログラム式。
ラテックス、オクターブ、Emacs
誰も知らない場合、Wordには嫌な数式があります。 やや良い状況
これはOpenOfficeにあり、数式は特別な言語で入力する必要があります。
これらのアプリケーションの両方で、多額をロードする必要があり、それに応じて、
マウスを使用して苦しめられた遅いプログラム。 まさか
ドキュメントのアセンブリを自動化します。 したがって、私が使用する一連のレポートには
ラテックス。
ラテックスは、流行語を使用しない場合、そのような科学的マークアップ言語です
テキスト。 文書全体がプレーンテキストで入力され、フィードされます
パーサーに対して、印刷または読み取りに便利な形式を発行します。 私の
ケース-pdf。
私は通常、単純なテキストファイルとして保存されているすべてのものが大好きです。 ここにいつも
プログラマーの想像力の範囲があります:ドキュメントは定期的に拷問される可能性があります
式、スクリプトの自動作成、作成と編集が簡単
追加の手続きなしのテンプレート。
Octaveを使用して卒業証書の計算を自動化するのが賢明です-無料
Matlabのクローン。 プログラムは、完全に互換性のある非常にシンプルな言語を使用します
元のプログラムの言語で。 追加の開発努力はありません
かかった。
まあ、これはすべて特別な接着剤と組み合わされています-ユニバーサルスーパーデュパーエディター
Emax。すべてのコードとテキストを記述します。 子会社として
このプロセスは、Octaveコードインタープリターを開始し、入力とプレビューを行います
式-特別なAuctexモード。
Emaxは、いわゆるLispマシンです。 すべての機能、
最も基本的なものは、Lisp関数型言語の簡易バージョンでスクリプト化されています。 で
いつでも小さな関数を書いて、Emaxにフィードを送ることができます
使用する任意のキーにピン留めします。
サブタスク
そのため、プログラムは次のタスクを解決する必要があります。
- Octaveで選択した式を逆アセンブルし、置換が必要な構造を強調表示します。
- 変数名を強調表示する シンボリック形式の下位インデックスで省略されている部分を選択します(たとえば、x_2でxと2を強調表示し、最初の数字は名前、2番目の数字は下位インデックス)。
- 基本的な数学関数を定義し、必要に応じて読みやすい形式で置き換えます(たとえば、abs()関数をモジュール-垂直スティックのペアで置き換えます)。
- シンボリック式を作成した後、その中の各変数をその値で置き換える必要があります。
- 数式の値を計算し、結果を返します。
解決策
最初の3つのポイントは、Elispの単純なパーサーによって解決されます。 最後のポイントは非常に
子プロセスの標準スレッドのように、実行が簡単です(
この場合-Octaveインタープリター)、任意の文字列を送信して、
標準出力。 つまり、Octaveを使用してファイルを実行した後、
計算では、単に変数の名前を送信し、それらの数値を取得することができます
値。
以上です。 Octaveファイル内の数式が含まれる行にカーソルを置き、カップルを押します
キー-数式がレポートファイルに文字の形式で挿入され、次に形式で挿入されます
数字、そして最後に結果。
イラストを見てください!
![だった](https://habrastorage.org/getpro/habr/olpictures/c48/00f/ac6/c4800fac6d5e1368767151636712204b.png)
![それで](https://habrastorage.org/getpro/habr/olpictures/7f7/d88/ffc/7f7d88ffcad555f5d6ddb2c0fade9f71.png)
![Emaxでプレビュー式](https://habrastorage.org/getpro/habr/olpictures/6e4/868/002/6e48680025d9724713b0e4ceb8a190c2.png)
可能な改善
この方法で1つの数式を挿入するには、カーソルを移動して、
いくつかのキー。 原則として、さらに進んでレポートを作成できます
私から完全に独立しています。 言って、特別なコメントでマークします
レポートの例では、式を挿入する必要がありますが、計算ファイルでも同じです
計算式の横に例を配置します。 その後、書くだけで十分です
「build-report」コマンド、そしてその後-ドキュメントがどのように満たされるかを見てください。
しかし、どういうわけか、手が届きませんでした... :)はい、私は大学で、
さらに、このプログラムは役に立ちません。 しかし、経験は間違いなくポジティブで、卒業証書です
より速く前進し始めました。 残念です、私の教職員は
プログラミング、そのようなことのために誰も頭をstrでるとは思わない。
一般に、ラテックスドキュメントのコレクション、Elispコード、および説明
彼、あなたは適切な住所で私に個人的に連絡できる。 喜んで
可能な限り、Emacsを支援します。 もちろん、達人のレベルまで、私はまだ非常に
そして非常に遠い。 通常、問題はElispプログラミングの最初の経験です。