• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

LaTeXでenumerateを使うとき、デフォルトだと項目間の行間が結構広くて, 文章を書くときにちょっとブサイクになってしまいます。

(論文なんかを書いているとき、特にそう思います。僕だけ・・・??)

そんなときは、 \setlength{\itemep}{Xcm} を使えば、行間を調整できます。

   1  \begin{enumerate}
   2      \setlength{\itemsep}{0cm} % この場合、行間が0cm
   3      \item 1番目の項目
   4      \item 2番目の項目
   5     6     7     8  \end{enumerate}

posted by Png y_tsuda on Sat 24 Jan 2009 at 05:13

所属している研究室が絡んでいる国際会議があって、そこの準備をしてきました。

任された仕事は、良く分からない音響・照明機材の操作や会場の準備などさまざまあったのですが、ここでは汎用性の高い無線ルータの設置術を書きたいと思います。

これから書くことは、僕が考えた理想的なスケジュールとなっています。

たぶん、スケジュール通りに進むことはないと思うので、あしからず・・・。

学会1週間前

無線ルータを調達し、設定をしておきます。

設定は、会場を使うには会場費を支払わないといけない場合があるため、自分の机などで行います。

主な設定内容は、

  • SSID
  • キー
  • DHCP接続数 です。

SSID&キーは学会の名前、場所にちなんだものをつけておくと良いのではないでしょうか。

今までに参加した学会も、だいたい学会の名前だったりしました。

例)

  • SSID: xxgakkai-2009
  • キー: XXkyoto2009

これらSSID&キーは何らかの方法を使って、参加者にアナウンスします。 (僕の場合は、研究室の秘書さんを通じて、参加者にアナウンスしていただきました。)

そして、DHCPでの接続数は参加人数に合わせて変更しておきます。1週間前になると、だいたいの参加人数の見込みがわかると思うので。

小さい教室を複数使って行う学会では、教室のキャパシティによってDHCPの接続数を変更すると良いと思います。

最後に、ルータの設定をいじられないように、管理者パスワードはランダムにつけておくのが良いと思います。

ランダムなパスワードをつけるには、n文字の半角英数文字列を生成する を使ってみてください。

簡単に設定しましたが、セキュリティがザルなのが残念なところ・・・。

あまり意味ないですが、any接続拒否とかにしておくと良いかもしれないですね・・・。

気休めですが・・・。

学会前日

看板の設置などにまぎれて、設定内容の確認をさせてもらいます。

僕の場合は、1時間だけ会場をお借りして作業を行いました。

ここでの確認内容は、

  • ネットへの接続
  • チャンネルの設定

ネットへの接続は必須です。つながらないと話になりません。

チャンネルは、他に無線ルータが設置されていると迷惑をかけることになるかもしれないので、バッティングしないように設定しておきましょう。

確認が済んだら、撤収しましょう。

置いたままにしてると、なくなるかもしれないので・・・。

学会当日

朝早くから出むいて、設置します。

そして、最後の確認を行いましょう。

あとは、クレームが出てこないように祈っていましょう。 (国際会議だと、英語で捲し立てられて怖いです。)

実際に学会の準備をしてみて・・・

上に書いたようにスケジュールが進むことはないですね・・・このように進めば、理想的なのですが・・・。

僕の場合、会場のLANを使うには申請がいったのですが、事務処理をしてくれるところで手違いがあって、ネットワークの制御をしている大元のところで設定を失敗してたらしく、どうしようもない状況になってしまいました。

(おかげで、僕は英語で捲し立てられました・・・。)

それと、やっぱりセキュリティがザルなのが気になりました。

最近はUSBメモリとかが激安なので、その中にSSIDとキーをテキストで保存しておいて、学会のお土産として配布するのがいいかもしれません。

WPA-AESで16進数の64桁の文字列をキーに使っていても、コピー&ペーストで済みますし、参加者に連絡する手間も省けると思うので。

学会によっては、名札の裏に個人のアカウントを発行して、それを使ってインターネット接続するような場合もあるそうです。

今度準備に関わるときは、いろいろと提案してみよう。

以上、学会での無線ルータの設置でした。

posted by Png y_tsuda on Wed 21 Jan 2009 at 01:12

諸々の事情があり、最近Windowsを使うはめになってるのですが、TeX環境がまったくインストールされていなかったので、環境整備しています。

そこで、せっかくなので OMakeを使って継続ビルド をしたいと思います。

Windowsを良く使ってる人の参考になれば。この時期は卒論頑張ってる人が多いと思うので。

(Windowsを普段あまり使わない僕がいうのもなんですが・・・)

参考

身長が5cm伸びて、念願の170cm超えです!

用意するもの

手順

インストールする

The OMake build systemからダウンロードしてきたインストーラを使ってインストールします。

何も考えずにOKとかNextみたいなボタンをクリックすれば大丈夫です。

使ってみる

上に挙げた hayamizさんの記事の手順そのまま実行していきます。

OMakefileとOmakerootの作成

まず、コマンドプロンプトを開いて、作業ディレクトリで omake --install とします。

   1  C:\・・・\作業ディレクトリ>omake --install
   2  *** omake: creating OMakeroot
   3  *** omake: creating OMakefile
   4  *** omake: project files OMakefile and OMakeroot have been installed
   5  *** omake: you should edit these files before continuing
これで、OMakefileとOMakerootが作業ディレクトリに作成されます。

OMakefileの編集

ファイルの内容を消して、まるまるコピペしてください。

   1  LATEX = platex
   2  
   3  LaTeXDocument(main, main)
   4  
   5  .DEFAULT: main.dvi

これで、TeXファイルを保存するたびに、ビルドされ、DVIファイルが作成されます。

ついでにPDFも作成したいときは、

   1  LATEX = platex
   2  DVIPDFM = dvipdfmx
   3  
   4  LaTeXDocument(main, main)
   5  
   6  .DEFAULT: main.pdf main.dvi
としてください。

OMake起動!

コマンドプロンプトで omake コマンドを実行します。

   1  C:\・・・\作業ディレクトリ>omake -P --verbose
   2  *** omake: reading OMakefiles
   3  --- Checking for latex... (found c:\usr\local\bin\latex.exe)
   4  --- Checking for uname... (found c:\Program Files\Git\bin\uname.exe)
   5  --- Checking LaTeX capabilities... (tetex2 mode enabled)
   6  *** omake: finished reading OMakefiles (4.14 sec)
   7  - scan . scan-latex-main.tex
   8  + <compute 1 value dependencies>
   9  - scan . scan-latex-main.tex
  10  + Shell.echo()
  11       | Shell.run-latex(stdout-to-stderr platex -file-line-error '-output-comment
  12  =LaTeX Output (built with OMake)' -recorder main.tex)
  13  This is pTeXk, Version 3.141592-p3.1.4 (sjis) (Web2C 7.5.3)
  14  
  15   ・
  16   ・
  17   ・
  18  

起動すれば、あとはTeXファイルを編集し、保存するだけです。

これで、編集→保存→ビルド→編集→保存→ビルド→・・・というわずらわしいビルドの手間が省けます。

ちなみに・・・

   1  --- Checking for uname... (found c:\Program Files\Git\bin\uname.exe)
とか出ているので、もしかしたら、 uname.exe が必要なのかもしれません。 僕の環境では、Gitをインストールしたついでに入っていたみたいです。

これは、ついでにバージョン管理もしろってことですね!

まとめ

  • OMakeすばらしい!
  • Linuxと違って、Windowsはインストールがめんどくさい
  • 複数ファイルのときのビルドは、今後の課題
posted by Png y_tsuda on Thu 15 Jan 2009 at 14:21 with 1 comment

最近、僕が作ってる某学会のシステムのコードをそのままコピペ。

ここでは都合上「アプリケーションの実行パス」となっていますが、気にしないでください。

   1  ' プロシージャ: Function
   2  ' 名前        : GetAppExecPath
   3  ' 機能        : アプリケーションの実行パスを取得する
   4  ' 引数        : なし
   5  ' 戻り値      : String
   6  ' 備考        : なし
   7  Public Function GetAppExecPath() As String
   8      
   9      GetAppExecPath = CurrentProject.Path & "\"
  10  
  11  End Function

たとえば、開いているデータベースファイルが "C:\Documents and Settings\y_tsuda\My Documents\test.mdb" だとすると、"C:\Documents and Settings\y_tsuda\My Documents\" を返してくれます。

開いているデータベースがどこのディレクトリにあるのかを取得するには、

   1  'C:\Documents and Settings\y_tsuda\My Documents
   2  CurrentProject.Path 

を使います。

ただ、このままだと最後に \ がついていないので、

   1  'C:\Documents and Settings\y_tsuda\My Documents\ <- \が入る
   2  CurrentProject.Path & "\" 

としておくのがいろいろと都合がいいと思います。

この CurrentProject オブジェクトには現在開いているデータベースについての情報が入ってそう(名前からして・・・)なので、いろいろと見てみると面白いかもしれません。

posted by Png y_tsuda on Tue 13 Jan 2009 at 18:53

[Access VBA] 任意のコマンドを実行するで書いた、Shell関数を使ったVBAでの任意のコマンドの実行方法は非同期なものだと知りました。

Shell関数は任意のコマンドを実行し、コマンドの終了を待たずにShell関数の呼び出し以降のステートメントが実行されていきます。

それではあまりうれしくないときがあるので、同期実行する方法を以下に示します。

この方法を使うと、呼び出したコマンドが終了してから、以降のステートメントが実行されていきます。

以下、ソースコード。

   1  Dim strShellCommand As String     ' シェルコマンド
   2  Dim objWSH As Object              ' WSH
   3  
   4  strShellCommand = " "    ' 実行したいコマンド
   5      
   6  ' WSHを使ってコマンドを実行する
   7  Set objWSH = CreateObject("WScript.Shell")
   8  objWSH.Run strShellCommand, vbNormalFocus, True ' 第3引数がTrueなら、同期実行
   9  Set objWSH = Nothing

ソースを見るとなんとなくわかるかもしれませんが、WSHを使います。

第1引数は、コマンドを入れてあげます。

第2引数は、WindowStyleを入れてあげます。ここに入る値は、Shell関数のと同じです。

第3引数は、同期実行ならTrue、非同期実行ならFalseを入れてあげます。

See Also

posted by Png y_tsuda on Fri 9 Jan 2009 at 18:58

   1  Function FunctionName(引数) As 型
   2      FunctionName = 返したい値  '←これがReturnに相当するらしい。
   3  End Function

らしい・・・。

たとえば、Exampleという名前のFunctionがあるとすると、最後にExampleという変数に値を代入することによってReturnできる

VisualBasicではReturnってあった気が・・・。 これがVBAのワナなのか・・・。

Access2003を今使ってるけど、2007やったらReturnできたりするんやろうか。

posted by Png y_tsuda on Thu 8 Jan 2009 at 14:54

Access VBAから任意のコマンドを実行したいとき、 Shell 関数を使います。

Shell関数の定義は、

   1  Shell(PathName 
   2        [, WindowStyle As VbAppWinStyle = vbMinimizedFocus]
   3       ) As Double

です。

WindowStyleは省略可能で、省略した場合は、vbMinimizedFocusという値をとります。

WindowStyleは他には以下のような種類があります。

WindowStyleの種類
種類説明
vbHide非表示
vbMaximizedFocus最大化、フォーカスする
vbMinimizedFocus最小化、フォーカスする
vbMinimizedNoFocus最小化、フォーカスしない
vbNormalFocus普通、フォーカスする
vbNormalNoFocus普通、フォーカスしない

たとえば、

   1  Private Sub 実行_Click()
   2      Call Shell("notepad", vbMaximizedFocus)
   3  End Sub

というコードを書くと、notepadを実行し、ウィンドウは最大化された状態で表示され、フォーカスされます。

posted by Png y_tsuda on Sun 4 Jan 2009 at 18:00
Contents
enumerateで行間を調整する
学会の準備で使える無線ルータ設置術
WindowsでOMakeを使って継続ビルド
[Access VBA] 開いているデータベースファイルのパスを取得する
[Access VBA] Shell関数から実行するコマンドは非同期実行 & 同期実行する方法
[Access VBA] Functionプロシージャで値を返す
[Access VBA] 任意のコマンドを実行する
Comments
Aleksey: The uname check is only due to a somewhat slopp... '11-2
Yu Tsuda: あぁ、そうですね、、syncすると戻ってしまいますね・・・。 ご指摘ありがとうございます!! '09-7
ursm: /usr/portage 以下のファイルは更新のたび元に戻ってしまうので、/etc/porta... '09-7
Yu Tsuda: 見た目だけでも、わざわざGentooをこういうリストに入れてるのがすごいなぁと思ったりしたので... '09-3
Leonard Chin (レオ): ただし、VirtualBoxで「Gentoo」などを選択しても、別にどのOSを入れても大丈夫だ... '09-3
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ