自己顕示欲の開放治療所

erg, programming and something.

別名:Laughing and Grief 雑記

Latin and Greekは習ったこともない

真面目な記事の他、特定の方には不快と思われる事柄に関して言及を行うことがあります。ちょっと頑張りますが、Blog内で解決できなかった場合要望があれば別ページに技術記事は書き直します

最近ergのこと書いてなかったなあって

この記事は

WORDIAN Advent Calendar 2017 - Adventar の19日目の記事です。

今日はポエムでお送りします。

前置き

美少女ゲームが好きです。 進路決めたときも理由の半分くらいに美少女ゲームのことが頭にあったと思います。情報系は美少女ゲームのプラットフォームであるPCを扱う職業だからです。

「性的搾取」とか「表現の自由」とか昨今は(以前からですが)ありますね。

ところで僕、「装甲悪鬼村正」が好きでですね。どのルートも好きなんですが、英雄篇は最初にやったこともあって特に印象的です。

正義を為すことは罪悪である これは避けられぬ理。 潔白にて正義を達する道は無い 邪悪の討滅は、正義がその正義を捨て去ることによってのみ成される 善悪相殺 善と悪は刺し違えて、共に滅ぶもの

まあ、引用してみただけです。ここだけ、今、取り出すとどう解釈されるのか。言葉の応酬というものは所詮ゲームですから、コンテキスト無く語ることはナンセンスで、また元のコンテキストから離れてその言葉を用いるのもまたアレです。

自分のコンテキストすら把握するのは困難であるのに、況んや他者の、他国の、他文化の、他世界のコンテキストをや。碇ゲンドウ君も人と人は分かり合えないと言っていた気もします。

それでも世界は自分だけではないのですから、相互理解の努力を欠かす訳にはいかないのです。

嘘を吐きました。世界はあなた一人、僕一人ではありませんが、世界は自分だけです。自分以外をどう世界に取り込むかは恐らく自由ですが、世界はどこまでも自分の色に染まっています。この辺りの取り扱いを間違えると、悲惨ですね。「相互理解」という名の押し付け合いには気を付けましょう。

本題

最近はようやくというべきか、Android対応のえっちげーなどが出始めました。コンシューマー版タイトルも含めて。 AUGUSTの「千の刃濤、桃花染の皇姫」や、OVERDRIVEの「キラ☆キラ」「DEARDROPS」などが出ていることを考えると、BURIKOエンジンがコンバートしやすい環境があるんでしょうか。いや、各社の根性な気もします。 吉里吉里Android版の開発の話*1もありましたし、「PCでプレイするゲーム」というハードルを取り払う話みたいなのはありますね。

Windowsという話では、ブラウザを利用した、ティラノスクリプトアルマイトJSといった手段も出ていますが、爆発的に流行ったりは今のところしていないので、制約がどこかにあるのでしょう。ちゃんと調べなきゃいけないかもですね。でも、ブラウザ環境(もしくは疑似ブラウザ環境)で動くという方向性は希望が結構あるんじゃないかと思います。

Ren'pyは僕のウォッチしてた頃はPython2環境が必要みたいな状況でした。

現行のゲームってエンジンとUIとスクリプトが不可分で配布(販売)されている感じがありますよね。中身が1つにパッキングされているという訳ではなく、販売形態として。 WindowsPCが今まではスーファミとかPS本体みたいな扱いだったわけですが、ロスが大きいのではという素人考えがあります。JVMとかみたいに1つレイヤを敷いて、その上で動くようにしたいのです。DirectX9.0cがそれという説もありますが、もっとプラットフォームを拡大した際の話として。

その際にUnityやブラウザ環境というのが現行では良さそうという感じがあります。各種スクリプトエンジン毎の特徴や書き易さもありますから、例えば「ERGフリーク」のような状態のものがあれば最高やという気持ちです。 各社そうなろうと努力しているんだろうなとぼんやり思う訳ですが。

ブラウザ環境で単純に動くというだけだと、ラノゲツクールとかになってしまいそうですが*2、提供したいのは「基盤」なんですよね。JS以外の何らかの改造を加えた「ブラウザ環境を基にした何か」。

「ERGフリーク」、他にも利点は多分あって。「DMMブックス」というアプリがあります。DMM(R).comの電子書籍を読むのに使えます。これはGooglePlayで配布ができるんですね。で、R18のコンテンツもDMMのアカウントと紐付いたこのアプリで読めるんですよ。AppleStoreやGooglePlayといった、えっちげーとポリシーの相性が悪い場所でもこれは配布できる。中身に興味を持ってもらうための最初の一歩として、これは大きいのではないかと思います。一般ゲーにも利用できるでしょうし、これを規制するのであれば「包丁は殺人に使えるから禁止」みたいな論法がまかり通るような状態なので世界は末期です。「生殖器はレイプに使えるので禁止」とかいう世界観、1本いずれ書いてみたいですね。

後書き

↑の、できるなら自分で作ってみたいし、誰が作ってもそれはそれでOKという気持ちなので、忘れずにいたいですね。

以上、ポエムでした。

*1:非公式コンバートのkirikiroidなどもありました。

*2:JS+IDEらしい。でも規約でエロゲダメらしいですね。

SmartPhoneにToughnessを求める

この記事は

WORDIAN Advent Calendar 2017 - Adventar の16日目の記事です。

はじめに

人は、自分に無いものを他に求めるのだそうです。ならば、儚い僕達が圧倒的なToughnessを求めるのは、何も不思議ではない訳です。

僕のスマートフォンデビューは京セラのTORQUE SKT01です。周りがスマートフォンだらけになっても僕がヒューチャーフォンから変更していなかったのはそう、頑丈さが足りなかったからです。ですからTORQUEがSIMフリーで登場したときは迷わず注文しました。頑丈さを除いたスペックは当時としても他のスマートフォンと比べ劣り気味でしたが、頑丈さはそれを補って余りある魅力を放っていました。

今回ついにスマートフォンを買い換えたので、軽く書きます。

CAT S60

2017/12/18追記:僕は↑ではなくオンキョーストアにて購入しています。

「Rugged Phone」というのがジャンル的には良いようですが、頑丈なスマートフォンには実はそこそこの市場があります。ボクダケジャナインダ。

頑丈さは当然として、サーモカメラを搭載し、水深のあるところ用に音量の段階を上げる機能も付いています。

喜びの声です。買ったばかりでうっかり地面に叩き落としても、画面が割れたりしない*1

Toughnessのメリット

壊れない。これに尽きる気もしますが。

携帯電話というのは、精密機器でありながらラフな取り回しが求められます。うっかりインシデントは防げないなら、起こっても問題無いものを選ぶというのは当然の帰結ですね。 また、大概この手のは防水なので雨の日や風呂の中でもあまり気にせず使えます。

副次的な要素として、あまり周りに使用する人間のいない形状、機種は知人が多く利用するスペースなどで混同を避けられます。

長く使うものには愛着も湧くというもの。頑丈は信頼へ。

機体にかかる代金は初期費用こそ割高に感じますが、数年使用し、物理的故障も可能性が低いことを鑑みれば大したデメリットにはならないのです。

弊害

長持ちするということは使用期間が長くなるということで。頑丈なスマートフォンは特にソフトウェア面で遅れがちです。堅牢さが確保されている状態からアップデートもあまりかからないので。TORQUEも最後の方はアプリがOSバージョン的に非対応はザラでしたね。

形状が特殊になりがちで、汎用のケースがあまり使えないという点もあります。

余談

今までがAndroid4.2だったので色々できないことが多かったんですが、一気に6ですよ6。いや今や最新は8ですが。

レスポンスはまあ機体由来の性能だとして、UIが明るい感じになったのが大きいですね。あとフォントがNotoSansに。不満はそんなに無いですが、幾つかから選べるようになるとエンドユーザとしては嬉しいですね。

6に上がったので、Pionner製のDAP操作アプリ「Remote Duo App」が動くようになりました。電車なんかでスマートフォンいじりながら作業していると嬉しい機能です。

あと、実家に導入したGoogle Home mini用のアプリも入れました。ChromeCastも持っていないので、当面はBluetoothスピーカーになりそうです。

おわりに

https://adventar.org/calendars/2573

明日の担当は未定です......。

*1:限度はあります

tomboが無ければ作ればいいじゃない

この記事は

WORDIAN Advent Calendar 2017 - Adventar

の14日目の記事です。

トンボ

pLaTeXのパッケージの標準のやつにはtombotombowオプションがついているものがあります。 これは何をしてくれるかというと、印刷所などで入稿する際に必要になったりする「断ち切り線」を追加してくれるんねすね。

さてこのオプション、僕の大好きなbxjsclassesにはついていません。処理系依存の機能を使っているから一部できない処理系があるからだそうで。

でも入稿時に困りますよね。僕の周りでもこのトンボとフォント群のためにAdobe社に頭を垂れた人間を最近見ました。

tombobase.cls

ところで、LaTeXってpdfを埋め込めるんですよ。勿論元のpdfの情報は壊れたり壊れなかったりする訳ですが、まあ表示上は問題無い。つまり、

「一度完成したpdfを取りこんでトンボを加えたLaTeXを再度コンパイルする」

ということができるのではないか、と考えた訳です。

で、基本文書クラスのtombo, tombowに関する部分だけひっぱってくればいいかなと思ったんですけど、いざやってみたら「normalfontの設定がありません」など、tomboにはあまり関係が無い(日時を出力する程度)ところで詰まる。全体をひっぱるなら別にクラスファイルを作る必要は無い訳で。......うん?

結果

A4の文書の場合、

\documentclass[tombo,a4paper]{ltjsarticle}
\usepackage{bxpapersize}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-, offset= 1in -1in ]{main}
\end{document}

tomboの実装があるltjsclassesを呼んで、pdfpagesパッケージを利用、保険としてbxpapersizeを入れれば完成です(main.pdfはA4とします)。 最初は取りこんだ文書が左寄りになってしまいましたが、左の余白を見ると元のpdfの余白と同じ程度。そこでltjsclassesの中身を見ると、tomboは各端+1inchの所になっていたので、offsetオプションで調整しました。

これで対処できなくなるのはA6とかB6サイズを使い始めたときかと思います。 ありがとうpdfpages。

問題点

写真とか絵などはみ出すやつをこの方法だと作れないんですね。

参考

Next day

明日はwakarin111君です。

Golang でC++のプログラムを書き直す

ゆずソフトの単独ライブ決まりましたね。OPの榊原ゆい単独体制からの移行はこの為の伏線だったと思っています。

この記事は

WORDIAN Advent Calendar 2017 - Adventar の9日目です。

※本記事は技術記事ではありません。多分。

始まり

github.com

「おっGolangで実装したSubsonicAPIのあるサーバー、ええやん!」と思い、開いたところ、

Lightweight Subsonic server written in go (server) and c++ (media indexer) using sqlite as backend and taglib for indexing.

「エッC++ナンデ......」となったので、

「よっしゃGolangで実装したろ」 とやる気が発生したので進めていくことになりました。卒研が行き詰まっているとかそんなことはね。ハハハ。問題点ははっきりしているのでもうすぐ危機は脱するよ、多分。

勿論Golangにはcgoのライブラリも結構な数が存在し、それらを使うことを踏まえるとPure Goで書く、Golangのみで実装するといったことはあまり意味は無いのかも知れませんが。

幸いにも相手は1ファイルのみ。まあ、なんくるないさー。

他人のコードの再実装は、楽しい!

言語が違うと例えばprint文の書き方も異なってきます。しかし、やりたい内容は別言語で既に書いてあるのです。卒研とは違います。

Golangで書くと見た目整っていいですね。これは個人の感想です。

ついでに書けば、Githubの草生やし活動として「楽」。だって気づいたら「TeX」タグのついたRepositoryばっかりだった訳で、シューカツ的にもあまりよろしくありません。

終わり

8割方の作業は終わりましたが、まだ完成していません。

明日の担当はKarasuTX君です。

プラハ2のアリスティアいちゃいちゃアフターもDLしなきゃ......。

Google HomeとHome-Radi

この記事は

WORDIAN Advent Calendar 2017 - Adventar

の7日目の記事です。あと何日埋めることになるのか。

Intro

皆さん、ほめられてのびるらじおZ、通称ほめらじ、聴いてますか? 僕は最近聴けてません。

ツイで流れてきて知ったんですけど、ほめらじ初のPCゲームがPOP祭りで出るとか。これは再びほめらじリスナーになる機運が高まりますね。でもブラウザを開いて再生する労力が最近は衰え気味なので、Google Homeから再生してもらえたらな、というのが今回のモチベーションです。とはいえ、音泉のアクセス集計の役のは立ちたいので暖かみのある手動ブラウザアクセスについてはまた検討したいです。

前情報

ほめられてのびるらじお

ゲームメーカーPurple Software*1ぱれっと*2がコンビを組んでお送りしていた筈のネットラジオ。パーソナリティーは風音様と荻原秀樹さん。10周年を迎えた。ネットラジオとしては異例の長寿番組、の筈。

Google Home

Google Homeとは皆の玩具です。もう少し詳しく説明すると、所謂「スマートスピーカー」というヤツで、音声でコマンドのやりとりができます。様々なIoT機器と連携し、目指せスマートホーム。

編集部にも1台あるので、折角だからコイツから ほめらじを流してもらいましょう。

Heroku

ホスティングサービス。対立候補としてGAE*3などがありましたが、料金体系の前に敗北。用途と相談して、これに落ち着きました。アカウントにメールアドレスと名前を登録すればメールが届いて始められます。

基本的な使い方についてはチュートリアルを参考にしてください。

IFTTT(イフト)

"If This Then That" 異なるアプリ、デバイスの中継をやってくれるサービス、で大体間違っていない筈。これでGoogle HomeとHerokuを繋いでもらいます。 比較検討の結果、Dialogflowになりました。ついでにHerokuも無くなりました。

Dialogflow

google-home-notifier

JSライブラリ。解説は

Google Home開発入門 / google-home-notifier解説 - Qiita が良いです。

実装

とはいえ、npmに音泉の謎APIをライブラリ化した先駆者がいらっしゃるので、それを利用させてもらえれば大幅に手間は縮小します*4

という訳で、流れとしては

  1. Google Homeに「音泉」と言う。
  2. Dialogflowでエージェントが起動する。
  3. Google Homeに「ほめらじを流して」と言う。 1.DialogflowがローカルサーバにJSONを飛ばす。
  4. ローカルサーバが音源のURLを取得する。
  5. ローカルサーバがGoogle HomeにURLを飛ばす。
  6. Google Homeが音声を再生する。
  7. ほめらじが流れる。

では、やっていきです。

問題発生

case:1

kotodama.today

という訳でローカルに転がっているサーバにWebhooksを喰わせて行くことになりました。

ローカルサーバ使うならHeroku要らなかった説は正直ある。

case:2

「Dialogflowとfirebaseで簡単に連携できるし、ファンクションのホスティングもしてくれるからこれだけで良くね?」となって暫く実装を進めたものの、どうにも動作しない。よく見ると料金体系のところに「無料枠ではOutbound Network使えないよ」という旨の記載が。使いたければ富豪になるしかねえ。

この方式で行くなら

qiita.com

が参考になります。app.tellapp.ask

speak = `<speak><audio src="${url}"></audio></speak>`

喰わせるの(実際はもう一手間要りますが)、ハックという感じがしていいですよね*5

Outro

進捗:ローカルサーバにDialogflowの応答を受けたら再生可能な状態にした。が、Dialogflowのアカウント設定やエージェント設定やらで謎な状況になってしまったのでここまでです。

ちょっと忙しかったり記事書き足したりして滅茶苦茶になってしまったのでリベンジします。

明日の担当は @linerlock 君です。

*1:最新作は「アオイトリ

*2:最新作は「9 -nine-」シリーズ

*3:Google App Engine

*4:リンクは多分載せない方が良さそうな気がする。ググれ

*5:通常渡したstringは問答無用にTextToSpeech噛ませられるが、こうするとurlを音声ソースとして扱ってくれる

レポート省力化

この記事は WORDIAN Advent Calendar 2017 - Adventar の2日目です。

LaTeXネタ2つ目。

何をするのか

「どうせまた.md.texみたいなのだろ?」と思った貴方。 「そうだよ」

要求環境

  • TeX Live
  • Pandoc
  • Make
  • Printer

そのままでも見られるモノというのがLightweight Markup Languageというヤツなんで、なんだったら生テキストをそのまま印刷したい所ですがそうもいかないというワケで。

まあ先ずは.mdを書いていきましょう。好きなのはRe:VIEW(.re)なんですけどね*1

使うのは皆大好きbxjsclassesになります。

を見てください。

PacndocからLaTeXの話はいっぱいあるのでググッた方が早いような気もするので省きます。

Pandoc ユーザーズガイド 日本語版 - Japanese Pandoc User's Association

やりたいこと

  • 毎回タイトルや名前を入れたくない
  • デフォルトの見た目はちょっと変えたい
  • レポート自体は時刻名とかで管理したい

という訳で、Pandocでカスタムしたテンプレートを読み込むが基本方針となります。

ちなみにbxjsclasses作者様のサイトでPandocモードの説明がされてます*2が、これそのままだと毎回自分の名前を打つ必要などがあるので、どうにかしたい。で、

テンプレ作成

$ pandoc -D latex > report.tex

でいじる元のファイルがゲットできるんですが。……結果から書くと、あんまりいじるところがなかった:cry:

まあ、一読しておくのをオススメします。

発覚するオプション

  • --include-in-header=FILE (or -H FILE) :LaTeXだと\begin{document}の前に入る。
  • --include-before-body=FILE (or -B FILE):LaTeXだと\begin{document}の後に入る。

つまりヘッダを書いておいてPandoc叩くときに挿入すれば目的達成、ということでした。

知見

最初は--include-in-headerだけでいけるかなと思ったんですけど、titleとかを設定したテキストを-Hで入れたら、

$ pandoc input.md -o output.pdf -H header --latex-engine=lualatex -V documentclass=bxjsarticle -V classoption=pandoc 
-V classoption=a4paper 

としたとき、完成したpdfにタイトルなどが表示されていない状態に。 -o output.texで確認するとヘッダ内容が入っているので、 「コイツどのタイミングでヘッダ挿入してんだ?*3」となった。 力技解決として、-B maketitle(中身は\maketitleだけ書いてある)も入れて叩くことに。解決した

headerは

\title{\today Weekly-Report}
\author{hidaruma}

maketitleは

\maketitle

みたいな感じに。テンプレートで\date{}が入っているので、headerに書いてあっても無になるので注意ですね。書くならmaketitleの前に挿入すべし。

いざ省力化へ

Makefile

使うコマンドが大体分かったらmakeパイセンの出番です。正直しょっちゅう書き方を忘れます。

LATEX ?= lualatex
PAPER ?= a4paper
CLASS ?= bxjsarticle
OPTIONPANDOC ?= pandoc
OPTIONJAFONT=sourcehan
PANDOC ?= pandoc
MONOFONT ?= SourceHanCodeJP
HEADER ?= header
BEFOREBODY ?= maketitle
SRC_DIR = ./src
BUILD_DIR = ./build

RM = rm

.PHONY clean

%.pdf: %.md
        $(PANDOC) $(SRC_DIR)/$< -o $(BUILD_DIR)/$@ \
        --latex-engine=$(LATEX) -V papersize=$(PAPER) -V documentclass=$(CLASS) \
        -V classoption=$(OPTIONPANDOC) -V classoption=jafont=$(OPTIONJAFONT) \
        -V monofont=$(MONOFONT) \
        --listings \
        --include-in-header=$(HEADER) --include-before-body=$(BEFOREBODY)

%.tex: %.md
        $(PANDOC) $(SRC_DIR)/$< -o $(BUILD_DIR)/$@ \
        --latex-engine=$(LATEX) -V papersize=$(PAPER) -V documentclass=$(CLASS) \
        -V classoption=$(OPTIONPANDOC) -V classoption=jafont=$(OPTIONJAFONT) \
        -V monofont=$(MONOFONT) \
        --listings \
        --include-in-header=$(HEADER) --include-before-body=$(BEFOREBODY)

clean:
    $(RM) $(BUILD_DIR)/*.pdf $(BUILD_DIR)/*.tex     

あとはsrcディレクトリに.mdを突っこんで

make hoge.pdf

とすればbuildディレクトリにブツが生成されます。

終わりに

成果物を

https://github.com/hidaruma/report/

に上げました。

WORDIAN Advent Calendar 2017 - Adventar 明日の担当はびしょ〜じょ君です。

僕はまた空きっぱなしの所があったら、とりあえずGitHub - takahashim/review-pandoc: Re:VIEW Writer for Pandocを覗いてネタを確定させたいと思います。

卒論をLuaLaTeXで書く

この記事は

WORDIAN Advent Calendar 2017 - Adventar の1日目になります。

最高の卒業体験がしたい

卒業までの道は平坦とはいきませんでした。いや、まだ卒業してないんですが。まあ卒業可能性高ということで、浮かれている訳です。

卒業するためには何が必要なのか? それは卒論です。つまり最高の卒業は最高の卒論によって齎されるのです*1

最高の卒論

最高の卒論といっても色々あります。

  • 内容が最高の卒論
  • 体裁が最高の卒論
  • 卒業が可能な卒論

無論内容が最高であるに越したことはありませんが、そこは明日以降の自分に期待するしかありません。 よって考えるべきは卒論の見た目になります。

卒論を作成するにあたって利用できるツールは幾つかありますが、最終的には規定に沿ったPDFができれば勝ちです。 どのようにツールを選ぶかといえば、最高の執筆体験で選ぶべきでしょう。 最近はMSWord推しの人も随分見かけます。一太郎はテンプレートを配っている大学もありましたが、弊学はそうではなかったのでまあ除外します。

ところでMSWordで作成された.docxファイルには大きな欠陥があって、 platexコマンドやlualatexコマンドで処理できないんですね。ということでlatexコマンドが叩ける.texを使っていきたいと思います。

ここで弊大学が学内で配布している卒論テンプレートを見てみると

  • 使用するクラスファイルがjreport*2
  • bf命令とか残りまくってる
  • timesを読み込んでいる
  • アンダーラインと長い題目名で壊れる

など多くの学生が悲鳴を上げる内容になっています。そして皆思うでしょう、「俺が作るしかない」と。 しかし、自分で配布されたテンプレートを改造していく学生でもクラスファイルを変更する例はあまり無いようです。

幸い2017年を生きる僕達はTeXLive2017という資産を使うことができます。 これは大きなアドで、bxjsclassesを使えるしLuaLaTeXのバージョンは1.0以降だし、つまり結論としては

卒論をLuaLaTeXで書く

LuaLaTeX用に書いた.texlualatexコマンドで処理できるんですね。.tex中でLuaが書けるとか余録もあります。

LuaLaTeX

LuaLaTeXはpdftexの実装の1つです。絶賛開発中な雰囲気を数年間出してたので敬遠していた人も多いかと思いますが、もうバージョン番号は1.0を超えているんですね。pLaTeXなどと比較すると枯れているとはとてもとても言えませんが、そろそろもうちょっと信頼されてもいいんじゃないでしょうか。

bxjsreport.cls

「LuaLaTeX使うって言ってたのに汎用(pLaTeX、XeLaTeX、LuaLaTeXで利用可能)クラスかよ」 って話ではあるんですが、「卒業が可能な卒論」を目指す立場なので、lualatexでのみ問題が発生する場合などに備えて選びました。

sourcehan

現代を生きる僕達には他にも源ノ角ゴシック、源ノ明朝の利用が許されています。pLaTeXから利用するにはちょっと手間ですが、LuaLaTeXなら1行程で済んでしまいます*3

作ってみた

github.com

main.tex

documentclassの宣言と各種パッケージ、分割した各章の読み込みしかほとんどやらせていないですね。 \input{}は便利。\include{}は改ページしてしまうので注意しましょう。あと、元のテンプレートから引き継いだ突然の余白とか。

\documentclass[autodetect-engine,dvi=dvipdfmx,a4paper,base=11pt, jafont=auto, ja=standard]{bxjsreport}
\geometry{left=25truemm,top=35truemm,right=25truemm,bottom=50truemm}

\geometry{left=25truemm,top=35truemm,right=25truemm,bottom=50truemm} bxjsでは最初にエンジンをオプションで書いておく必要がありますが、autodetect-engine, dvi=dvipdfmxとすることで勝手に判別してくれるようになります。

jafont=auto,ja=standardでは、 jafont=autoによってupdmap-kanji-config-*で設定されたフォントが読み込まれるようになります。 autoではなくここをsourcehanにするとsoucehanを使ってくれるようになります。ja=standardにしておけば滅多に間違いは無い筈です。

base=11ptとしています。これは欧文文字サイズ基準が11ptになる指定です。日本語文字の大きさ基準を指定するjbaseもありますが、元のテンプレートでの指定[a4paper,11pt]{jreport}を考えるとこの指定が正しい筈です。

\geometryは他のクラスファイルであれば\usepackage[option]{geometry}とする所ですが、bxjsがgeometryを使ってる関係で既に読み込まれているのでこういう表記になります。

cover.sty

\usepackage[B]{cover}
\input{personal}

卒論最大の鬼門と名高い表紙作成用スタイルファイル。基本的には\maketitle命令の改造をしているパッケージ。 オプションのBは学部生を表します。修論の場合はMを指定すると良い感じになる筈。 必要事項をpersonal.texに書かせて読み込む形にしています。

ulemパッケージを持ってくることで長文題目名でも壊れないという、皆が辿ることをやっています。 正直題目名以外は長くなるケースがほとんど無いので元の\underline指定のままで良い。というか\advisor\andを挟んだりすると\ulineだと挙動が違ったりするのでそのままの方が良いです。

thesis.sty

\usepackage[B]{thesis}

基本は卒論の書式に合わせての改変命令集。 \andを全角空白2つ分に変えたり、abstract環境を中央寄せ「要旨」見出し付きに変更したりします。

packages.tex

input{packages}

必要パッケージを\usepackageしまくる場所。

  • comment comment環境で囲むことで該当箇所をコメント化。試行錯誤するときに便利です。
  • graphicx 画像、図を用意するために。実質必須パッケージです。
  • hyperref メタタグ入れたりPDF内のリンクを用意したりします。
  • url urlを入れるときに使います。
  • newtxtext, newtxmath 実質必須パッケージ。より良いTimes New Romanを使うようにします。

終わり

最高の卒論にしていこうな。

明日の担当は @hid_alma1026 君です(棒) !

WORDIAN Advent Calendar 2017 - Adventar

*1:卒論発表会? 知らない子ですね......

*2:長らくjsreportが存在しなかったという事情も関係ありそう

*3:実際にはbxjsclassesの場合オプションに数文字渡すだけです