hogashi.*

日記から何から。

 本日起きたら14時だったのだけど、すぐにスマートフォンの時計が止まって、30分くらいの間14:11を過ごした。
 さすがにおかしくて、気付いて焦って部屋のアナログ掛け時計を見たら16:17だったのだけど、これはこれでおかしくて、こっちも止まっていた。多分朝の4:17とかに止まったんだと思う。

 デジタルだから/アナログだからという議論が一瞬過ったけど、こういうときにはどっちもあんまり変わらないのかもしれない。

Scrapboxで文字数を数えるUserScript

 書いた。こうすると綺麗だよって思ったらそうしてください。
 文字数(改行除く)と行数の2種類を出します。

 Scrapbox における UserScript の導入は以下をご参照ください。

scrapbox.io

[追記(2017/07/08 21:31)]Scrapbox内でページ遷移したときの挙動を全く考えていなくて、ブラウザ再読込をしないと多分思った動作をしません。(やるとすればMutationObserverとかになるかなとは思っている)

本文

 // 文字数表示用エレメントを追加(各ページのときのみ)
 if (window.location.href.match(/https:\/\/scrapbox\.io\/[^/]+\/.+/)) {
   const pageInfo = document.getElementsByClassName('page-info')[0]
   let charWithoutBr = document.createElement('div'),
       brOnly = document.createElement('div')
   charWithoutBr.setAttribute('id', 'char-without-br')
   brOnly.setAttribute('id', 'br-only')
   charWithoutBr.innerHTML = brOnly.innerHTML = '0'
   pageInfo.appendChild(charWithoutBr)
   pageInfo.appendChild(brOnly)
   
   // 文字数を数える(改行を除く)
   var getCharCount = () => {
     return Array.from(
         document.getElementById('editor').getElementsByTagName('span')
       ).filter(v => {
         const className = v.getAttribute('class')
         return (!!className) &&
           (className.match(/c-[0-9]+/)) &&
           (v.getElementsByTagName('br').length == 0)
       })
       .length
   }
   
   // 行数を数える
   var lineCount = () => {
     return document.getElementById('editor')
       .getElementsByClassName('lines')[0]
       .getElementsByClassName('line')
       .length
   }
   
   // 文字数/行数を数えて表示を更新
   var updateCharCount = () => {
     document.getElementById('char-without-br').innerHTML = getCharCount()
     document.getElementById('br-only').innerHTML = lineCount()
   }
   updateCharCount()
   
   // キー押下で文字数を数えて表示を更新
   document.addEventListener('keydown', updateCharCount)
 }

(OLD) Scrapboxの数式記法中の\text環境をインラインにする

[追記(2017/07/07)] この内容をScrapboxに取り入れていただけました。記事は残しておきますが、この記事のように特段設定する必要は、既にありません。

~~

 Scrapbox の数式記法中で \text 環境を使うと改行されてしまうので、雑に(後述)インラインにします。

つまり

 以下のコードを自分の Scrapbox の settings という名前のページに貼り付けます。既に作っている人は1行目だけ消して追加でつければOK。

code:style.css
 /* katex \text environment */
 span.mord.text.displaystyle.textstyle.uncramped {
   display: inline-block;
   margin: 0 5px;
   /* font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; */
 }
 span.mord.mathrm.cjk_fallback {
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
   font-size: 15px;
 }

こうなります
f:id:hogashi:20170701163412p:plain

なぜ

 数式の中に数式でないテキスト(とりわけ日本語)を書きたいときはままあって調べていたら、 KaTeX では「\text{日本語}」のようにして使えるということがわかりました。
 が、使ってみると Scrapbox の方で「display: block;」されていて、改行されてしまうようでした。これを上述のように直しました。

 また、\text環境内の日本語フォントが微妙だったのでついでに標準のものに戻しています。日本語に限らず \text環境内の全部のフォントを標準にしたい場合は上のコメントアウトを戻してください。


 ただ、僕は Scrapbox の思想を理解していない可能性があるので、使いたい人がシュッと使えるくらいでいっか、となり割と雑な CSS になりました。
 Scrapbox の思想から外れていたらすみません。

人生ど

 飯田橋に行ったら人生がどうでも良くなったという雰囲気の日記ですが行ったのは一週間前です。

 飯田橋駅のトンネルとか階段の蛍光灯とかでテンションが上がり始めたけどその後忘れます。

f:id:hogashi:20170623143712j:plain
歩道橋から川

 川に被せて道路があって、しかもそこから降りるように繋がっていて何故か感動しまくって急いでたのに写真を撮りました。スマホ写真なので長い。

f:id:hogashi:20170623143730j:plain
浮いててエモい

 さらにここから川沿いに歩くと異常な起伏が存在したのですがあまりにおかしすぎたのと写真撮るの難しかったのと急いでたので撮らなかった、後悔はしています。
 急いで何をしに行ったかというと印刷博物館というところでフォント展みたいなことをしていたのを見に行ったということです*1。展の中は写真を撮ってはダメだったので入口と売店の写真しか無いです。

f:id:hogashi:20170623143613j:plain
看板

f:id:hogashi:20170623140239j:plain
売店の版

f:id:hogashi:20170623140749j:plain
2カメ

 版は紐で引き縛ってあることがわかってテンションが上がったのでピント合ってない気がする。版を売っていたということではなく版を使って印刷したポストカードを売っていて、他にもあったけど閉館間際で写真は無いです。とにかく急ぎまくっていたことがわかるけど展示自体はゆっくり見てた。

 というので博物館を出て、来るとき急いで最短で歩いたので飯田橋をゆったり歩くぞと言いつつ南に逸れて立ってた地図を10分くらい眺めてました。今回ここからグーグルマップを使っていない。

 寺めっちゃ多いじゃん、って言ったけど遠くて行ってません。

 元気と相談して大方経路を決めてから1時間くらい歩きました。地図を見てたのが東五軒町で、水道町とか赤城下町/赤城元町とかの地名で選んで順に回るという感じ。何故か印刷関係の会社や工場のようなものが沢山あって、川の水を使っていたのかなとか考えながら歩いていました。

f:id:hogashi:20170625182209j:plain
奥に坂が現れてテンションが上がりめっちゃ遠いのに撮った写真

 坂を登ったり下ったりしつつ、西に膨らんで東に戻るような経路で神社に来たけど信仰心が薄すぎて手水舎で手に水を受けられなかった様子です。お参りはしました。

 赤城神社の絵馬をかけるところに音楽関係のことが沢山祈願されていて、得てしてカタカナになるので渋い。

 本殿?がガラス張りだったり境内にカフェがあったりして近代神社でした。 

 白銀公園の横が結構な下り坂なために公園の柵がどんどん高くなる現象が起きたり、神楽坂に入った途端にお洒落なお店がどっと増えたりするのを見ながら、筑土八幡神社にもお参りをしました。筑土八幡神社の階段横に遊び場があって、土地自体異常な高まりなので遊び場は全体的に滑り台だったのと、スズメバチと虫に注意という看板に怯んだのは覚えています。あとはそのまま飯田橋駅へ入って帰りました。以下飯田橋駅です。



 地形とか面白かったのでもっと時間を使って写真を撮りつつ歩いてみたいですね。

*1:展の存在を思い出させてくれた友人special thanks

Windows+SublimeTextでのTeX環境修繕

 WindowsでSublimeTextのLaTeXToolsなる拡張機能を使ってTeXを書いているけど、いつからかタイプセット周りがうまくいかなくなったのでうまいことする。

tl;dr

 タイプセットとかはBasicBuilderというのが走るようになったっぽいので、前までのTraditionalBuilderに戻す。

状態

 jlisting使って書いたファイルをタイプセットしようとすると、

File ended while ... \lstlistingname ...

とかエラーが出てpdfまで行き着かなくなる。pdfに出ても日本語がでなくなったりする。

対処

 なんだかわからないけど、TraditionalBuilderですり替える。

# ...

# class TraditionalBuilder(PdfBuilder):
class BasicBuilder(PdfBuilder):

# ...

#		super(TraditionalBuilder, self).__init__(*args)
		super(BasicBuilder, self).__init__(*args)

#...

という感じで、"Traditional"という箇所を"Basic"に置き換えてやればよくなる。あんまり大きな声で良いとは言えないが。

 最後に元のBasicBuilder.pyを消すなり.py_orgなりにして、編集したTraditionalBuilder.pyをBasic~にしてやれば完了。それでもうまくいかないときは何回か再起動してやればうまくいったりする。

 LaTeXToolsは更新頻度が高くてメンテナンスされている感があるが、更新されるごとにまたもとに戻るので、また編集してやる必要がある。根本的になんとかするには、ファイルのアクセス権限とかをいじればなんとかなるかもしれない。

拡張機能「twitter画像原寸ボタンforGreaseTamperMonkey」ver.2.1.4公開

 昨晩本体を更新したので、続けてFireFoxなどに向けたMonkey系拡張機能用ユーザスクリプトも、同じver.2.1.4に更新しました。おそらく能動的にスクリプトを再インストールしないと更新されない?気がするので、してみてください。

 GreaseMonkey、TamperMonkeyは以下からインストールできます。


 twitter画像原寸ボタンは、以下のリンクをクリックしてインストールしてください。Monkey系は(先にMonkey系の拡張機能を入れておく必要がありますが)リンクのクリックだけで勝手にインストールを促してくれます。
https://github.com/hogashi/twitterOpenOriginalImage/raw/master/tooi-forGreaseTamperMonkey.user.js

 ↑ のコードの内容は以下で見られます。
twitterOpenOriginalImage/tooi-forGreaseTamperMonkey.user.js at master · hogashi/twitterOpenOriginalImage · GitHub


 変更内容はこちら。
hogashi.hatenablog.com


 使い方は変わっていません。設定方法としては、ソースコードの最初にある

hogehoge: 'istrue'

となっているのを

hogehoge: 'isfalse'

に変えるとhogehoge機能が無効になります。戻せば有効になります。よくわからなくなったり、動かなくなったりしたら、再インストールしてください。

 不具合があればお伝え下さい。
 ソースコードGitHubに公開しています。
GitHub - hogashi/twitterOpenOriginalImage: is a GoogleChrome extension which opens original image to new tab.

拡張機能「twitter画像原寸ボタン」ver.2.1.4公開

 拡張機能twitter画像原寸ボタン」ver.2.1.4を公開しました。割りと焦るタイプの不具合だったのでシュッと修正して、ついでにもうひとつ修正しました。今(2017/04/26/23:25)さっき公開したので明日になれば反映されるかなと思いますがゆったりお待ち下さい。

chrome.google.com

使い方は以下です。大きくは変わっていないということです。

hogashi.hatenablog.com

更新内容

 今回の更新は2つです。

  • "Original"という文字が見えなくなってボタンが見えづらくなっていたのを、文字を表示するように修正
  • 画像ツイートへの返信をするときCtrl+Enterで送信すると画像が開くようになっていたのを、開かないように修正

 実はボタンは存在していて、文字だけ表示されないようにtwitterのページスタイルが変更されていたようです。ボタンのスタイルはtwitterのものに則れるように極力寄せているのですが、たまにこういうことが起きます。もっともDOM構造が変わってしまったりするとボタン自体無くなったりするので、避けられないところではあります。

技術的な内容

 文字が消えていたのは、

.ProfileTweet-actionList

というclassに

font-size: 0;

というスタイルが当たるようになっていたからでした (ただブラウザのインスペクタから見ても打ち消しされていたりしてどこのスタイルが効いているかわかりませんでした)。
 つまり、

font-size: 13px;

と指定するようにしました。変更が小さかったのでなんとなく事細かに書いています。

 Ctrl+Enterで画像が開いてしまう不具合は、前に一回、返信時にEnterで改行できないというので修正していたところでした。そのときの修正法は、

document.activeElement.className.match(/rich-editor/)

という条件でテキストボックスにフォーカスがあるかどうかを判定して、あるなら入力中なので画像は開かない、という感じにしていました。
 今回出ていた症状の訳は、このフォーカスのある要素が"ツイートする瞬間から"テキストボックスではなくなってしまうということで、こうなります。
f:id:hogashi:20170426234159p:plain

 要は条件がズレていたということなので、ともかくCtrl/Alt/Shift/MetaKeyの押された状態では開かないように挙動を変えました(そもそも考えていなかった挙動でした)。

 ということでした。また何かあればお伝えください。

 ソースコードGitHubに公開しています。
GitHub - hogashi/twitterOpenOriginalImage: is a GoogleChrome extension which opens original image to new tab.