ラベル PC TIPS の投稿を表示しています。 すべての投稿を表示
ラベル PC TIPS の投稿を表示しています。 すべての投稿を表示

2015/05/06

Igorで画像のロード

Igorで画像をロードするのにQuickTimeが必要ということでインストールしたがQTCF.dllが見つからないと文句を言われた。仕方ないなぁとQuickTime\QTSystemにあるQTCF.dllをIgor.exeと同じフォルダにコピーしたところうまくいった。このdllだけで処理してるならQuickTimeをアンインストールしても良いかな?と期待したがさすがにそれはダメだった。ただ、インストールすべき項目は別のプログラムからライブラリをたたくessentialなんちゃらだけで良いので、viewerなどのインストールは不要みたいだ。

という備忘録。

2015/02/11

achemsoパッケージ

ACSの雑誌に投稿しようと構想してる論文をぼちぼち書きはじめるかなぁと決意。そういえばACSからtexパッケージが新しくなりましたと余計なお世話ありがたいお知らせが来てたのでしぶしぶインストールしたのだが、ちょっと面倒だったので、備忘録を残しておく。
  1. CTANのachemsoからachemso.tds.zipを落としてに解凍。
  2. コマンドラインで"texhash"を実行。
  3. その他、マニュアルに記載された必要になるパッケージ(caption,float,geometry,natbib,setspace,xkeyval)をCTANからzipでダウンロード。
  4. captionを解凍してフォルダに移動し、"tex caption.ins"を実行。できた一連のスタイルファイルを\tex\latex\achemsoに移動。
  5. floatを解凍してフォルダに移動し、"tex float.ins"を実行。既にシステムにあると言われたので上書きせずに途中停止。
  6. geometryを解凍してフォルダに移動し、"tex geometry.ins"を実行。できたスタイルファイルを\tex\latex\achemsoに移動。
  7. natbibを解凍してフォルダに移動し、"tex natbib.ins"を実行。できたスタイルファイルを\tex\latex\achemsoに移動。
  8. setspaceを解凍したらスタイルファイルが入ってたので\tex\latex\achemsoに移動。
  9. xkeyvalを入れようとしたら「これはkeyvalのextensionだ」と抜かすのでリンクをたどるとkeyvalというのはgraphicsパッケージで使われてるもので、これは最初から入っておるという。じゃあ、どうやってインストールするのだとpdfを読むがよくわからんのでとりあえずスキップ。
  10. 色々入れたので念のためもう一度コマンドラインで"texhash"を実行。
  11. うまくインストールされているか確認するためにachmso-demo.texをタイプセットするも"mhchem.styが必要"と言われたので、前回投稿したさいに使ったファイルを\tex\latex\achemsoに移動。念のためもう一度コマンドラインで"texhash"を実行。
  12. もう一度タイプセットしたら今度は「\mciteSubRefなどしらん」と言われる。web検索したところmciteplus.styというのを入れれば良いとのことなのでzipを落として解凍。スタイルファイルが入っていたので\tex\latex\achemsoに移動する。bstファイルが入っているのが気になるが、natbibとコンパチだと書いてあるので無視する。
  13. あと、mciteplusの情報を探した際に「スタイルファイルが古かったからACSフォーマットが通らなかった」とあったので念のためmhchem.styも念のため更新。こちらもzipを落として解凍したらスタイルファイルが入っていたので\tex\latex\achemsoに移動。他にもスタイルファイルがあったがこれもとりあえず無視する。
  14. いよいよ、ともう一度タイプセットしたらまた「\mciteSubRefなどしらん」と言われる。そういえば"texhash"してなかった、ということでコマンドラインで実行したらようやく通った。
もう一度やれと言われたら嫌なのでachemsoフォルダをzipして保存しておくことにする。やれやれ。

(150216追記)
achemsoパッケージは\includegraphicsで.pdfや.pngを埋め込む際のBoundingBox指定で、.bbファイルをうまく読み取ってくれない模様。仕方が無いので、コマンドラインで
ebb hogehoge.pdf
などしてbbファイルを作った後、.bbファイル中に書き込まれてる値をオプションで直接打ち込むとうまくいった。具体的には、
%%BoundingBox: 0 0 1417 1000
という感じの行が.bbファイルにあるはずなので、それを参考に
\includegraphics[width=\textwidth,bb=0 0 1417 1000,keepaspectratio]{hogehoge.pdf}
のように指定すればOK。いつもはebbするだけで良いので多少手間は増えるが、まぁ仕方あるまい。
ちなみにpdfcropというpdfファイルの余白をクロップするプログラムがW32TeXにはついているが、Perlで書かれてるので別途環境が必要。Pealを入れてないので面倒だなぁと思ってたら「バッチで作る、劣化版pdfcrop」というのがあったのでありがたく使わせていただく。

2014/11/15

装置監視用自動電子メール送信スクリプト

装置監視用に自動で画面をキャプチャーしてメールを送り付けるスクリプトを作ったので、誰かの役に立てばとログを残しておく。 

OSはwindowsで、メール送信はOSに標準装備のWSH/VBscriptとバッチファイル、画面のキャプチャーはスクリーンショットというフリーソフトを使用。 スクリーンショットの本体であるPrtScrn.exeと以下のファイルを同じフォルダに置いてsendmail.batを実行すればOK(メールアドレスとsmtp設定は各自変更のこと)。

作成に用いた引用元を示したかったのだが、色々なページからソースを引っ張ってきたのでどれがどれかわからなくなってしまった…

sendmail.bat
@echo off

:LOOP

REM 3600sに1回送信。間隔を変えたければ3600を変更する。
timeout /T 3600 /NOBREAK >nul
PrtScrn.exe -f screenshot.png
cscript sendmail.vbs your@mail.address.jp screenshot.png
del screenshot.png

REM 永遠に自動ループするので、終わるときはCTRL+Cで強制終了。
goto LOOP
sendmail.vbs
'引数より送信先アドレスと貼付ファイル名を取得
Set args = WScript.Arguments
strAddress = args.item(0)
strAttachment = args.item(1)

Set oMsg = CreateObject("CDO.Message")

'メール送信元アドレス
oMsg.From = "my@mail.address.jp"
oMsg.ReplyTo = "no-reply@mail.address.jp"

'メール送信先アドレス
oMsg.To = strAddress
'oMsg.Cc = "cc先メールアドレス"
'oMsg.Bcc = "bcc先メールアドレス"

'メール本文
oMsg.Subject = "件名"
oMsg.TextBody = "本文" & vbCrLf & Now
oMsg.AddAttachment strAttachment

'SMTPサーバとサーバポートの指定
oMsg.TextBodyPart.Charset = "ISO-2022-JP"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendusing") = 2
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpserver") = "smtp.mail.address.jp"
oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpserverport") = 25

'SMTP認証が必要な時はコメントを外しユーザーネームとパスワードを記入
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpauthenticate") = true
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendusername") = "ユーザーネーム記入"
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "sendpassword") = "メールパスワード記入"

'SSL送信が必要な時はコメントを外す
'oMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/" + "smtpusessl") = true

oMsg.Configuration.Fields.Update
oMsg.Send

2011/05/17

自力でwordの相互参照

皆さん、論文は何で書いてますか?
数学、物理系ならTexの方が多いんじゃないでしょうか。
そういう私も普段の原稿はTexなのですが、普通にWordファイルが添付されてくるこのご時世、そういうわけにはいかないことがしばしばあります。
ところが、悲しいことにTexよりも簡単であってしかるべきWordに悩まされることは多いのではないでしょうか。
私の場合、やりたいことは分かっているのだが、それをどのような操作で実現したらよいのか分からない、というケースが多いような気がします。

今日もまさにそんなことがあって、色々と恨み辛みを書き連ねたいところですが、そんなことをしても時間の無駄なのでやめます。
代わりに、忘れないようにちゃんとlogを残します。
こんな解決の仕方をする人は珍しいような気がしますが、ひょっとしたら誰かの役に立つかもしれませんので。

[目的]
wordでreferenceの参照をする。

[問題]
"引用文献の挿入"というボタンはあるのだが、なぜかdisableになっている(当方word2010)。

[失敗事例]
"図表番号の挿入"というボタンでごまかそうとしたが、1行まるまる引用されてしまう。
山田により、…が報告された[2] N. L. Yamada et al., hogehoge Journal 1 (2011) 111.。
↑こんなことになる。

[解決策(力業)]
1.何でも良いので「フィールド欄」というのを作る。
例えば、"図表番号の挿入"をすると、番号部分が「フィールド欄」になっている。

2.右クリックで「フィールドの編集」というのを行い、以下のフィールドコードを記入する。
SEQ ref

すると、refという変数の連番が作成できるので、これをreferenceの文献に並べていく。
コピペでやるとフィールド更新というのをやる必要がある(全選択+F9で一度に更新できる)。
※ひょっとしたら、先ほどの"図表番号の挿入"でrefというラベルを定義しないとダメかもしれない。

3.このフィールドを選択した状態で「ブックマーク」というのを定義する。
Word2010の場合、「挿入→リンク→ブックマーク」で定義できる。
これに、文献の識別名を入力する。

4.引用したい場所でフィールドコードを以下のようにした「フィールド欄」を作成すると番号が引用される。
SEQ ref "識別名"

これもコピペでやるとフィールド更新というのをやる必要がある。


多分、もっと賢い何かしらのやり方があるのでしょうが、調べきれませんでした。
このやり方も十分面倒なので正直使いたくないところですが、レポートをとりまとめているので、この機能がないと番号を取り違えることが目に見えているので、とりあえずこれで我慢します。

誰かの参考になることを祈って。