タグ別アーカイブ: ライフハック

vlookup関数で参照先が複数ある時

春学期の成績つける際に書いてあって放置してあった完全に自分用メモです。

成績をつける際に,vlookup関数で名前やIDを参照するというのはよくある作業だと思います。vlookup関数の引数の基本は以下の通り。

vlookup(参照元,範囲,引っ張ってくる列,参照方法)

で,名前の列が1列ならこれだけでいいのですが,スピーキング授業の話の記事で紹介したようにペアでスピーキングテストなんかをやると,得点の列は1列で,名前の列が2列になります。最終的な成績が入るExcelシートでは名前は1列で,vlookup関数は指定範囲の1列目から名前を探してくることになりますから,2列目にある名前は参照されません。そして,誰が1列目で誰が2列目かはわからない状態なので,人によって参照範囲を変えることもできません。そこで使うのがIFERROR関数です。

IFERROR関数は,1つ目の引数でエラーが出た場合に2つ目の引数を実行するという関数です。つまり,この関数の1つ目でペアの1列目から始まる範囲を指定し,2つ目の関数でペアの2列目から始まる範囲を指定すれば解決するというわけです。意外に簡単でした。つまり,

IFERROR(VLOOKUP(名前セル, 参照先1, 引っ張ってくる列, 参照方法), VLOOKUP(名前セル, 参照先2, 引っ張ってくる列, 参照方法))

とすれば良いことになります。参照先1では2列あるペア列の1列目が先頭列になるように指定し,参照先2では2列目が先頭列になるように1列参照列を右側にずらします。そして,引っ張ってくる列も1列ずらして指定します。こうすることで,1列目の中から名前を探して点数を引っ張ってきて,もしここでエラーが出る(つまり1列目に名前がない)場合には2列目の中から名前を探して対応する点数を引っ張ってくることになります。このやり方を応用すれば,ペアだけではなく3人や4人といったグループの場合でも同じことができます。もちろん,Rとかで縦横変換して名前の列はすべて1列にまとめるようなことをしても最終的に名前が1列,点数で1列という形のデータを得ることはできるのですが。今回はEXCEL上で完結させる場合の話でした。

なにをゆう たむらゆう。

おしまい。

 

[R] Rmarkdown(xaringan)で学会発表スライド作るときの超初心者メモ

ちょっと放置してあったので一部思い出しながらですがメモ書きです。もう一ヶ月も前になりますが,発表資料をRmarkdownで作って公開するということをしました。これまでならkeynoteで作ってPDFにしてslideshareやspeakerdeckにしてたのですが,分析が結構モリモリでこの部分はすでにRmarkdownで作ってあったので,その部分をベースにして他のスライドを作ってしまうほうが早いと思ってすべてRmarkdownでいくことにしました(結果的にそれで時間が余計にかかった気も笑)。

Rの講習的なものや、論文投稿時に実験データの分析レポートを添えて出す、という時以外でRmarkdownを使う機会が今までなく、学会発表スライドを作るときにいくつかつまずくポイントがあったので、今後同じことにならないように自分用のメモとして残しておきます。基本的なこともきっと含まれていると思うので、本当に初心者向けです。ちなみに、私が使っているのはオンラインプレビューができるxaringanというやつです。

  1. R chunkオプションでcache =T
  2. 画像を2枚並べて表示する
  3. 画像の埋め込みに注意

Cache = Tオプション

分析の結果を提示する際に、R上で分析したものをそのままスライドに埋め込める(いちいち表にまとめ直してパワポに貼り付けるとかの必要がない)というのがRmarkdownの強みですよね。しかし、中には1つの分析にかなりの時間がかかる場合もあります。その分析コードの部分以外のところを修正したりしてknitすると、分析に時間がかかるので修正したかった部分が反映されたのかとかを見るのにも無駄な時間を費やしてしまいます。特に、xaringanはRmdを保存したら自動的にknitするので、こまめに保存しながらやる癖がついていたらなおさら大変です。分析が1度だけならまだしも、いくつも分析がある場合には数時間とかかかることもあるかもしれません。ベイズとかだったらもっとですよね。

で、これを回避するために、分析コードのRチャンクのオプションとしてcache =Tというのがあります。これをすることで、一度knitして分析をすれば、その計算結果を保存しておいてくれます。よって、分析をいちいちし直すことをしないので時間もかかりません。注意点は,この分析コードのあるチャンク内での変更があった場合と、この分析コードのチャンクオプションに変更があった場合にはもう一度分析をやり直すということです。よって,時間を要する分析のコードは最初にcache =Tにして一度knitしてしまい,細かいところをいじるのは後にするというのがいいのかなと思います。

画像を並べて表示

普通にRで描くプロットを並べて出すには,par(mfrow=(c1,2))みたいにしてあげれば1行2列でできますよね。で,xaringanでこれやってもどうしても2枚横並びの表示になりませんでした。そこで色々調べたところ,出力の際の幅を半分にしてあげればよいというアドバイスを見かけたので,Rチャンクオプションでout.width =”50%”としてあげました。画像の解像度はdpiオプションで調整できるので,この2つの組み合わせでいい感じに仕上げてあげればよいのかなと。

画像の埋め込み

これがxaringan使うときのネックになるポイントなのですが,xaringanは画像ファイルなどがself-containedではないんですよね。よって,ウェブ上にスライドを公開しようとしたときにHTMLファイルだけアップロードすればよいというわけにはいきません。GitHubなどに画像ファイルなどもすべてアップロードする必要がありました。もしかすると何か方法があるのかもしれませんが,結局ウェブにアップロードするしか解決策が見つからなかったのでこういう方法にしました。xaringanはオンラインでプレビューできるという点が強みなのですが,アップロードとかにちょっと手間がかかるというのが難点かもしれません。また,画像ファイルもアップロードすることでオンライン上での閲覧は問題なくなりますが,DLすると見た目が変わる&画像が見れないということになるので,他の媒体でPDF公開されているスライドをDLしてオフライン環境で見ることが多いというような方々にとっては,普通にPDFで公開してくれよめんどいなぁということになってしまうのかもしれません。非常に悩ましいです。

おわりに

私自身GitHub初心者なので,毎回やるたびにどうやってやるのかいちいち調べながらやっていて,もしかすると普通のプレゼンソフトでスライド作ったほうが時間かからないんじゃないか…とか思いつつ,無駄なこだわりでRmarkdownを使って投影資料を作るようにしています。他にもいくつかつまづいたポイントがあったような記憶があるのですが,いかんせんもう覚えていないのでとりあえず上記3点だけメモとして残しておきます。R関係については意外と自分が一番助かっているのではないかと思うくらい自分でよく忘れて記事探すことが多いので,これもきっと未来の自分を助けることになると信じて。そして,こうやって書いて公開すると解決策が見つかったりするかもしれないという淡い期待を抱いて….

なにをゆう たむらゆう。

おしまい。

Rmarkdownでスライド作るときのリアルタイムプレビュー

Twitterでたまたま見つけてすごく便利そうだったので試してみたら本当に便利だったという話です。元ネタは下記のリンク。自分用のメモとしても残しておきます。

Instant preview without fully rebuilding HTML, and the linked navigation

RmarkdownはRスクリプト書くだけじゃなくてスライド作りができて,Rのスクリプトやその結果も出力に混ぜたりできるので便利なのですが,1つの難点が,実際の出力がその場で確認できないということなのですね。つまり,Rmdファイルで書いているものがスライドにどう落とし込まれるのかについては,knitしてHTMLファイルを作らないとわからないと。で,それはめんどくさいので,編集しながらリアルタイムプレビューが見れるようにしたよというのが上のリンク先の話です。xaringanパッケージというものを使います。xaringanパッケージをつかったスライド作成については他に詳しく書かれている方もいるのでそちらのリンクを。

xaringanによるスライド作成入門

もともと,xaringanパッケージのInfinite Moon Readerというものは,編集中の.Rmdファイルをsaveしたらプレビューが見れるというもので,それを拡張してわざわざsaveせずともプレビューが見れるようにしたというものです。デモのスクリーンキャプチャ動画を載せておきます。

上のリンク先にも書いてありますが,Rのコードチャンクはリアルタイムでは反映されないので,一旦saveしてコンパイルし直す必要があります。

outputオプションがxaringan::moon_readerになっていないとこのプレビュー機能は使えないので,デザインが気に入らないという人はcssファイルをいじって自分好みに変更するということをしなくてはいけないようです。詳しくは,上の「スライド作成入門」のリンクを御覧ください。私は日本語フォントが中国語っぽくなってしまってうのを避けるために,フォントの設定だけいじりました。slides_filesの下にあるremark-css-0.0.1に,”default-fonts.css”というファイルがあるので,それをコピペしてRmdファイルが有る場所と同じディレクトリに”My-font.css”というファイルをつくりました。その中で,”body{ font-family:”の後ろに自分の好きなフォントを書いて保存すればOKです(下記の画像参照)。

他には,スライドのフォントサイズを変えるというのもしたかったので,下記のリンクを参考にしました。フォントを変えるのと同様に,”default.css”をコピペして”My-theme.css”というファイルを作り,そこにスライド全体のフォントサイズを変える設定を追記しました。また,リンク先にスライドの1ページだけフォントサイズを変える”.my-one-page-font”というのもあったのでそれも追記しました。

https://stackoverflow.com/questions/53481699/customize-font-size-for-all-the-slides-in-xaringan

それから,スライドの中で一部分だけ文字サイズを小さくしたり大きくしたりというのもタグでできると便利なので,下記のリンク先で書かれていた”.small”と”.large”というのも”My-theme.css”に追記しています。

https://github.com/yihui/xaringan/wiki/Font-Size

これらの自分好み設定を反映させるには,YAMLヘッダーのoutputオプションを次のようにしてあげます。

output:
xaringan::moon_reader:
css: [“My-theme.css”,”My-font.css”]

Rmarkdownでスライド作ることに慣れている人や,がつがつcssファイル書いてカスタマイズできる人には当たり前のことかもしれないのですが,私はそのあたり初心者なのでこういうことも知りませんでした。

ちなみにですが,このxaringan::moon_readerにはめちゃくちゃ面白い“yolo: true”というオプションがあります。

 

ちなみに,これは挿入される画像を自分で指定することもできますし,どのくらいの頻度かも指定できます。こういう遊び心があるのはなんかいいですよね。

というわけで,Rmarkdownでスライドを作ったりする方はぜひ一度お試しあれ。

なにをゆう たむらゆう。

おしまい。

 

42.5インチディスプレイが快適すぎる話

先日,42.5インチのディスプレイを買いました。

【Amazon.co.jp限定】LG モニター ディスプレイ 43UD79T-B 42.5インチ/4K/IPS非光沢/HDMI×4・DP・USB Type-C・RS-232C/スピーカー/ブルーライト低減

知り合いのK先生が買ったというので,便乗しました。ただ,私がK先生から最初に話を聞いたときは,「そんなでかいモニタ必要ないでしょうw 大きすぎw」というもの。みなさんも,「テレビならわかるけど作業用のモニタでそんな大きいのは…という感想をお持ちになられたかもしれません。ウェブを少し検索してみても,

43インチ4KモニターをPCディスプレイにすべきじゃない理由!!

など,おすすめできないという方もいるようです。他にも,いろいろレビューを書いている方がいらっしゃるようなので,気になる方は覗いてみてください。

パソコンの4Kディスプレーは「43型」が便利だった

【開発環境】42.5インチディスプレイを試してみた!

【レビュー 大きすぎ?】巨大モニターLG 43UD79 Bを使ってみた感想 超高精細4K 43インチ級液晶モニター

私が使ってみた感想は,「ちょうどいい」です。むしろ,もうこれより小さいモニタには戻れないと言ってもいいくらいです。このモニタにする前は,23インチモニタと19.1インチ(かな?)のスクエア型モニタを使っていて,大きい方はWindows機,スクエア型の方はMBAをつないで使っていました。今は,23.5インチにMBAをつなぎ,42.5インチをWindows機で使っています(MBAとHDMIをつなぐ変換コネクタがないのでMBAつないだらどうかはわかりません)。

私の研究室の机は,デフォルトでおいてあるオフィスワーク用のデスクで,左右に引き出しがついているものです。横幅がそれなりにあるので,42.5インチのモニタを置いても,その横にUSBハブ,HDD,AirMac Time Capsuleを置くくらいのスペースはあります。逆側には23インチモニタ用のモニタアームもつけてます。

このモニタを置くために机上のモニタ台を取っ払い,ScanSnapを移動し,等々をしたので,むしろ逆に机が広くなったという印象さえあるくらいです。

モニタのみやすさについては,椅子のヘッドレストに首をしっかり固定した状態でちょうどよく,この状態でかなりはっきりと文字が見えるので,以前よりもモニタを見る姿勢がよくなったなと思っています。1画面表示で例えばウェブブラウザを開くと下のようにスペースが無駄になるので,基本はwindowsキー+左右矢印キーのショートカットキーでウィンドウを左右に寄せて,1画面上でウィンドウを左右に二分割するようにしています。

ウィンドウ1つでウェブブラウザを開くと右側のスペースがほぼ無駄になります。

2分割するとちょうどよいです。

論文をPDFで読もうという場合も見開き表示にしても拡大率が120%でいけます。2枚同時に並べて,横幅に合わせて拡大すると,だいたい150%でちょうどよくなります。普段150%にして見ているという方は,42.5インチモニタの快適さを強く実感できると思います。

左側のPDFはトップページの論文情報だけ幅が違うので左右に若干の隙間ができています

それから,MS-Wordファイルを開いた場合,見開き表示にコメント欄まで表示しても,横スクロールの必要がありません。たまに,大きくするとコメント欄が見づらくなって面倒だということもありますよね。そんなこともこの大きさのモニタなら何も問題ありません。ちなみに,下の画像の倍率は110%です。

シングルページだと,230%くらいで横幅がぴったりになり,ダブルスペースで15行くらいの表示になります。

そしてなんとなんと,RStudioも超快適です!RStudioはデフォルトで4ペイン表示なわけで,これがまさに42.5インチディスプレイの大きさと相性抜群なわけです。普段ならPlotsのペインが小さすぎてグラフを描いたらちょっと拡大してとかやっている人も多いかと思いますが,心配無用です。なぜなら何もせずともそこらのラップトップPCの画面より大きい画面でグラフが表示されるわけですから。縦幅もしっかりあるので,Markdownファイルとコンソールの表示領域も広いです。23インチモニタを縦置きしている気分ですね。

このデータのやつ分析の結果を早くまとめて発表しないとパイセンにしばかれる

これは私の買ったLGディスプレイの機能になりますが,画面分割のバリエーションが豊富に設定できます。4分割にもなりますし,左右どちらかは2分割でもう一方は縦長スクリーンのようなことも可能です。ウィンドウを開いてそのスペースに移動させると自動的にウィンドウサイズを調整してくれるので,左右に分割以外の方法で使いたいときにはもってこいでしょう。42.5インチは,21.5インチディスプレイが4枚と同等ですから,4分割でも小さくて見えづらいなどということは全くありません。


ただし,このディスプレイでもしかしたら気になる方がいるかなと思うのは,正面からディスプレイを見ていると画面端が少し死角になって見えなくなってしまうことです(注1)。普通にしている分には私は特に問題を感じていませんが,気になるという人もいるかもしれません。

このウィンドウ分割機能は便利ですが,もっと便利になるためにはどうなっていたら最高かという個人的なことを言わせてもらうと,画面分割がデスクトップ画面ごとに変更できるといいなあという感じです。私は,いつも仮想デスクトップをいくつか作ってWindowsキー+Ctrl+左右矢印キー(MBAならトラックパッドの四本指横スワイプ)でデスクトップを行き来するのが大好きなのですが,例えばデスクトップ1では二分割,デスクトップ2では三分割,みたいなことができたらもっといいなと思いました(別にこれができなくても何も文句はないです)。

ということで,私のお仕事環境には42.5インチは最強というお話でした。

なにをゆう たむらゆう

おしまい。

 

注1. 少しだけですね。私はデフォルトの表示サイズを150%にして使っていますが,それで1文字の半分が見えなくなるというくらいです。(顔を画面端に持っていって角度をなくせば見えます)

[R] 同じディレクトリ内でファイルを複製する

はじめに

ライティングの授業で(またそれかよ),次のようなことを考えました。

テンプレートのファイルを作って,学生の人数分だけコピーし,さらにそれぞれのファイルに学生の名前をつけたい!

まず思いつくのは,雛形ファイルを作り,Ctrl+CとCtrl+Vを駆使して学生の人数分のファイルを用意し,1つずつファイルをリネームするといういわゆる土方作業ですが,そんなことやってられませんよね。というわけで,Rで簡単にファイル複製とリネームをやってしまおうということです。別に特別なことはしておらず,自分用のメモです。もっと簡単な方法があれば教えてください。

ワーキングディレクトリを変更

まず,ワーキングディレクトリを,テンプレファイルが置いてある場所に変更しましょう。

setwd("C:/Users/Yu/Desktop/test")

getwd()

## [1] "C:/Users/Yu/Desktop/test"

必要な情報を取得

ファイルをコピーする際にフルパスを使うので,その情報をあらかじめ変数に入れておきます。そして,list.files()関数で,ワーキングディレクトリ内にあるファイルの情報を取得します(別に1つしかないので手入力でもOKです)。そして,originalという変数に,テンプレファイルのフルパスを入れておきます。

dirnow<-getwd()

file<-list.files()
original<-file.path(dirnow,file)


ファイル名の準備

ファイルにつける名前の準備です。ここでは例としてアルファベットを使っていますが,学生の名前を使う場合は学生の名前をコピペする等してname変数に入れてください。その後,テンプレファイルの前に名前をつけてfilenameという変数に入れています。sep=”_”は区切り文字をアンダーバーで指定しているということなので,ここは任意の文字に変えられます。

name<-LETTERS[1:26]
filename<-paste(name,"test.docx",sep="_")

print(filename)

##  [1] "A_test.docx" "B_test.docx" "C_test.docx" "D_test.docx" "E_test.docx"
##  [6] "F_test.docx" "G_test.docx" "H_test.docx" "I_test.docx" "J_test.docx"
## [11] "K_test.docx" "L_test.docx" "M_test.docx" "N_test.docx" "O_test.docx"
## [16] "P_test.docx" "Q_test.docx" "R_test.docx" "S_test.docx" "T_test.docx"
## [21] "U_test.docx" "V_test.docx" "W_test.docx" "X_test.docx" "Y_test.docx"
## [26] "Z_test.docx"

ファイルのコピーとリネーム

それでは,ここで,ファイルのコピーとファイルの名前変更をfor関数で一気に行います。file.copy()関数は,fromでコピー元,toでコピー先を指定します。この時,fromではもとファイルのフルパスであるoriginalを使います。そして,toのところで,「ワーキングディレクトリ+名前変更後のファイル名」を指定してあげると,コピーされたファイル名に名前がつくことになります。paste()関数は,文字列結合の関数です。ファイルの一覧の中にblog.htmlとblog.Rmdというファイルが入っていますが,この2つはこのブログのために作ったファイルですので関係ないです。

for (i in 1:length(filename)){
file.copy(from=original,to=paste(dirnow,filename[i],sep="/"))
}

list.files()

##  [1] "A_test.docx"     "B_test.docx"     "blog.html"      
##  [4] "blog.Rmd"        "C_test.docx"     "D_test.docx"    
##  [7] "E_test.docx"     "F_test.docx"     "G_test.docx"    
## [10] "H_test.docx"     "I_test.docx"     "J_test.docx"    
## [13] "K_test.docx"     "L_test.docx"     "M_test.docx"    
## [16] "N_test.docx"     "O_test.docx"     "P_test.docx"    
## [19] "Q_test.docx"     "R_test.docx"     "S_test.docx"    
## [22] "T_test.docx"     "test.docx"       "test.Rproj"     
## [25] "U_test.docx"     "V_test.docx"     "W_test.docx"    
## [28] "X_test.docx"     "Y_test.docx"     "Z_test.docx"

こんな感じでファイル複製とリネームができます。Google Classroomを使っていると、教材ファイルをコピーして配布という機能があり、それを使うと自動的に学生の名前のついたファイルができるのですが,それなしでやろうとすると,こうなるかなという感じです。

これを使って何をするかという記事はまた改めてポストしようと思います。

なにをゆう たむらゆう。

おしまい。

R MarkdownからそのままWordPressに

下記は,Rmarkdownの出力をそのままWordPressに流し込むためのテストです。Rmarkdownファイルを開いたときに入っているデフォルトのコードと文章です。RmarkdownからWordPressに流すために必要な作業については下記ウェブサイトが参考になりました。

R markdownの出力をWordpressへそのまま投稿する | On Your Mark . Tokyo

ただし,plotの画像が表示されなかったので,それを解決するために下記のウェブサイトも参考にしました。

How to publish with R Markdown in WordPress

 

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

plot of chunk pressure

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

Scrivenerで相互参照と連番作成

私は,論文執筆にScrivenerという有料のソフトウェアを使っています(Mac版)。バインダー機能とか語数の管理とか,色々便利なことはあるのですが(参考:Scrivener — A perfect program for dissertation writing),今日は論文執筆中にこれできてほしいと思った機能のやり方を覚えたので自分的メモを残しておきます。

私が文法を主に扱う論文を書くことが多いからなのかもしれませんが,例文をたくさん論文の中に挿入するんですね。以下のような感じで。

In (1), the omission of the plural morpheme makes the sentence ungrammatical.

(1) * I should have finished these thing by yesterday.

私の能力不足なのかもしれませんが,例文を後から足したり引いたりとかもしますし,また頭から順番に書いていくというわけでもないので,番号がずれてしまうことがあります。その対処法として,Xとかを使って最初に書くときはすべて番号をXで置き換えて,最終的にScrivenerからWordに原稿を出力してフォーマットなどを調整する際に最初から読み直して番号を振っていくという方法を取っていました。図表番号にも同じようなことをしていて,Table X shows…as illustrated in Figure X,というように書いておいてからあとで直していました。ただ,この方法だとやっぱり番号がずれたりしてしまうことがあって,自分でも気づかずに査読者に指摘されることもしばしばありました。図表に関しては,Wordでは図表番号の挿入という機能があるので,それを使うようにしています。図表番号の挿入を使っていれば,相互参照の挿入もできるみたいですね。で,例文でもこれを応用したりマクロを使ったりするとそういうことができるようなのです。言語学では例文がたくさん挿入されますから,そういった方たちにとっては死活問題ですよね。

参考

Wordで例文の番号を自動で連番にする

研究者のための Word 利用法 (3)

統語論恐怖症: Wordで連番機能を使う

ただし,これもScrivenerの中でできるならそうしてしまいたいわけです。そこで,「Scrivener 相互参照」でぐぐってみても,外部ファイルの参照みたいな記事はあるのですが,本文中で連番を作成したり相互参照をするよう方法は見つけられず。そこで,「scrivener cross」まで打つと,次に「reference」が出てきます。

参考

Unvexed: Stuff that Works: How to do cross-references in Scrivener

Has anyone figured out a way of cross-referencing examples in the …

A better way to force sequential ordering of numbered items

簡単に言うと<$n>タグを使うと,コンパイルするときに自動で連番作成してくれて,相互参照されるようになっているようです。<$n:ex>,<$n:fig>, <$n:tab>のようにすることで,ex,fig,tabごとに連番を作ってくれるみたいです。さきほどの例でいえば,<$n:ex:first>,<$n:ex:second>のようにしてあげれば,そこに数字が自動的に挿入されるという仕組みです。手でいちいちこのタグを打ち込むのは面倒だと思う方もいるかもしれませんが,私としては結構画期的だと思うので使っていきたいです。

一つ問題は,先ほどのタグは純粋にアラビア数字にしか置換されないということです。つまり,

In <$n:ex:first>, the omission of the plural morpheme makes the sentence ungrammatical.

<$n:ex:first> * I should have finished these thing by yesterday.

のようにscrivener上で書いたものをコンパイルすると,出力は次のようになってしまいます。

 

In 1, the omission of the plural morpheme makes the sentence ungrammatical.

1 * I should have finished these thing by yesterday.

(1)のようにしたいときは,タグをさらに丸括弧で囲んで,(<$n:ex:first>)としなくてはいけません。これはそこまで厄介ではありませんが,少し厄介なのは,同じ番号を繰り返して,(1a), (1b)のようなものを作ることが出来ない点です(注1)。その場合,exの部分を別のキーワードに設定して,(<$n:ex1:first>),(<$n:ex2:first>)のようにすれば,それぞれ初出なら1が出てきますから,そこにaやbを自分で書き足して,(<$n:ex1:first>a),(<$n:ex2:first>b)とすれば,(1a),(1b),のような連番作成はおそらく可能でしょう。これを使うことの問題は,そもそも例文の「グループ」という概念を壊すことになってしまうので,どのキーワードを使えば何の数字が出てくるかを自分で把握しながらタグを使わないといけない点です。これは少しめんどくさそうです。もちろん,アルファベットの見出しを用いないですべて連番にすることはできるといえばできるので,そちらでも良いかもしれません(そもそも私自身数字とアルファベットの使い分けに明確なルールを持っているわけでもないです)。

ということで,この連番作成機能は役に立ちそうなので,メモとして書いておきました。今週指導教官に初稿を提出することになっているので,ラストスパート頑張ります。

なにをゆう たむらゆう

おしまい。

 

追記(注1):今考えれば,同じタグを使って(<$n:ex1:first>a),(<$n:ex1:first>b)とかやればいいだけでした…