Twitter Digest 2017-05-14

  • いろいろ省略する方向で進めることにした。ちょっと心が軽くなった。 09:53:02, 2017-05-14
  • everyhook.sty なるものを発見。LaTeXカーネルを気にせず、\everypar に追加などが出来るようだ。これは使えるかも。 12:22:00, 2017-05-14
  • everyhookパッケージを利用して\everyparを変更することで、自家用の簡易wrapfigureが実現できた。アルゴリズムもこっちの方が簡単。 14:12:49, 2017-05-14
  • 予定変更でキャンセルの電話をしたのだが、キャンセルと分かった途端、こっちがまだ話しているのに、ささっと電話を切ろうする相手。そんなものですかね。なんか後味悪し。 15:51:06, 2017-05-14

Twitter Digest 2017-05-13

  • \parの再定義の仕方が悪いのか,\parを連続させたときに,その都度改行されてしまう。注意して使えば良いが,本家のwrapfigureではこういうことはないから,自家用の簡易版は未だしの感があるなあ。 10:24:23, 2017-05-13
  • 雑用というか連絡というか,面倒というわけではないが,それでも疲れるというか,言葉も選ばなくてはならず,心がすり減る思い。ふう〜。 16:28:12, 2017-05-13
  • メール出来る分はメールにしたが,そちらも気を使うのは同じ。電話だとなおさら。誰かに頼むわけにも行かず。 16:29:51, 2017-05-13
  • それにしても,ホントに電話番号でSMSだっけ,Macから送れているのだろうか。向こうはこっちの特定出来ているのだろうか。一応は名乗ったが。逆の場合だと疑心暗鬼になる気もする。心配。 16:31:36, 2017-05-13
  • 向こうの電話帳にこっちの番号が載っていれば,大丈夫だとは思うが,iPhoneでない場合とか,やったことないから心配だ。 16:32:57, 2017-05-13

自家用の簡易版wrapfigure

まだ欠点があるが,とりあえず自家用としては使えるものが出来たので,メモ。

\makeatletter
\newcount\@HangLines
\newdimen\@IndentWidth
\let\@CurrentPar=\par
\def\@hangcarrypar{% hanging indentationの間は,\parはこの\@hangcarryparに置き換えられる。
	\edef\next{\hangafter=\the\hangafter\hangindent=\the\hangindent}% 現在の値を後で使うため
	\@CurrentPar %% パラグラフを終了。現在,垂直モードのはず。
	\next %%新しいパラグラフで以前の\hangindent, \hangafterを復活させる。
	\edef\next{\prevgraf=\the\prevgraf}% これまでのパラグラフで組み立てた行数を後で参照するため
	\ifnum\prevgraf>\@HangLines %% すでに組み立て行数が指定の字下げ行数より大きい場合は,
		\hangafter=0\hangindent=0pt\prevgraf=0 %%字下げを終了させて,
		\let\par=\@CurrentPar %% \parを元に戻す。
	\else %% まだまだ字下げを続行する場合。
		\leavevmode %% これなしに垂直モードのまま\next だとずっと字下げが続いてダメだった。
		%% しかし,これがあるため,\parが連続したとき無視されずに改行されるという欠点あり。要改良
		\next %% これまで組み立てた行数を\prevgrafに代入する。
	\fi}
\def\MyWrapFig#1#2#3{% #1=Lines, #2=Width, #3=図版など
	\@HangLines=#1%
	\@IndentWidth=#2%
	\setbox0=\vbox{#3}%
	\dimen0=\hsize \advance\dimen0 -\@IndentWidth
	\par
	\vbox to 0pt{\moveright\dimen0\box0\vss}%
	\vskip -\parskip
	\vskip -\baselineskip
	\def\par{\@hangcarrypar}
	\prevgraf=0%
	\hangafter=-#1
	\hangindent=-#2\relax
}
\makeatother

Twitter Digest 2017-05-10

  • そう言えば,以前,TeXbookを参考にして,自前の簡易版wrapfigure的なものを作ったことがあった。単純な反面,wrapfigureのような奇妙な不具合は生じない。それにしてみようかと思う。 08:15:32, 2017-05-10
  • ただし,\par の代わりに\hangcarryover なるマクロを入れなくてはならないので,不便なこともある。\par を再定義してもよいが,後で戻さないと。 08:17:22, 2017-05-10
  • ということで,久し振りにKnuth先生のThe TeXbookの行分割のあたりを熟読中。 08:19:10, 2017-05-10

Twitter Digest 2017-05-08

  • asymptoteを複数使い分けているため,PATHの優先順位とか面倒。Emacs上では以前と同様asy2.16を使いたいのだが/usr/local/binのgs9.21が先に参照されてしまって,エラー。ううむ。 05:59:23, 2017-05-08
  • asy-init.elのPATHの設定では,gsの優先順位は変えられなかった。asy起動のときのみ参照されているのかも。 06:02:38, 2017-05-08
  • 泥縄の対処療法だが,シェルスクリプトを書くことに。まず,exportでパスの設定をして,asyとgsのバージョンを指定。しかる後に,asy起動。とりあえずいちいちターミナルに移動せずにEmacsからビルドできた。 06:05:25, 2017-05-08
  • スクリプト名はカッコ悪いが内容そのままにした。なんせ,asy216gs905.sh である。アハハ。 06:06:28, 2017-05-08
  • LaTeXトラブル。またも wrapfigure環境。延々と短い段落が続く。手動で\parindent=-45mm\hangafter=0 段落変わると効果終わるので,\parの代わりに\hfil\vajust(\vskip\parskip}\break\indent やれやれ 19:03:24, 2017-05-08

LaTeXのwrapfigureと黒魔術

図版の配置には,wrapfig.styによるwrapfigure環境を使っているのだが,たまに上手く行かないことがある。一番困るのは,図版はとっくに終わって,テキストの回り込み(短くなる部分)も終わっているのに,次の段落で,またもテキストが短くなってしまう現象だ。

前回これが発生したときは,wrapfigure環境の直後が垂直モードで,おそらくはそれが原因。そして \leavevmode を入れることで解決した。しかし,今回はそれとは違う。

原因は分からないものの,wrapfigureが行っている \parshape 関係の処理を強制的にリセットすれば何とかなるはず。検索したところ,同じ症状の人がいるようで,それを参考に以下のコードを挿入。

\makeatletter
\@@par \ifnum\@@parshape=\z@ \let\WF@pspars\@empty \fi % reset `parshape'
\global\advance\c@WF@wrappedlines-\prevgraf \prevgraf\z@
\ifnum\c@WF@wrappedlines< \tw@ \WF@finale \fi
\makeatother

要するに,wrapfigureの内部マクロに直接アクセスしているわけで,いささか黒魔術的ではあるが,仕方ない。

火曜日の弁当

[2017/05/02 の記録]
忘れていたが,今週火曜日の弁当。

今日の弁当 2017/05/02(火曜日)

ワンパターンで銀鱈粕漬けに,レンジチンしたキャベツとトマト。牛肉とシメジの甘辛炒めを少し入れて,隙間に,ブロッコリー,蒸した人参,細切り昆布煮を詰める。昆布煮は買ってきたお惣菜のもの。