Showing posts with label LaTeX. Show all posts
Showing posts with label LaTeX. Show all posts

Saturday, 6 July 2013

そういえば platex でも文字化けしたりするんだ

友人から相談をうけた事象をきっかけに,そういえばそうなんだなあ,という話.

platex とかで encoding を読み間違えると,普通にコンパイル通ってしれっと文字化けすることがある.

例えば, hoge.tex
\documentclass{jsarticle}
\begin{document}
日本語通るかな?

Hello, World!
\end{document}

というのを考えてみる.utf-8 で書いて utf-8 で読んでもらうと当然普通に通る.

一方これを,
$ platex --kanji=Shift_JIS hoge.tex
$ dvipdfmx hoge.dvi
とすると,たとえばここでは
** WARNING ** No character mapping available.
 CMap name: H
 input str: <7c>

** WARNING ** No character mapping available.
 CMap name: H
 input str: <7e>
]
と Warning が出るもののコンパイルは通って,

となる.もちろんというかなんと言うか,文字によっては Warning 無しで通ってしまうこともあって,たとえば foo.tex
\documentclass{jsarticle}
\begin{document}
あ
\end{document}
で
$ platex --kanji=Shift_JIS foo.tex
$ dvipdfmx foo.dvi
特に Warning とかもなく一見普通にコンパイルされて


今回のは utf-8 のを shift_jis として読むというやや特殊な(?)状況.
エディタが utf-8 で扱ってたのを Windows 環境の platex でそのままコンパイル,という話だったのだが,
逆に shift_jis のファイルを utf-8 のつもりで読むとめったにうまく行かないっぽい.
もっと露骨に問題が発生する感じ.
なんとなく encoding ミスると大抵の場合はそうなるイメージだった. 

Sunday, 23 June 2013

Beamer 入門 的ななにか

をしばらく前に作り始めており,一段落したので公開します.
それ自身も beamer で組んだ pdf ファイル.
↓
introduction_to_beamer-1.0.pdf (dropbox)

これの creative commons by-sa 版.上のやつは基本的に再配布とか改変とか不可です.
(といっても画像が一枚違うだけなんですが…)
↓
introduction_to_beamer-CC-compiled.pdf

上の Creative Commons 版の .tex とか中で使った画像とか詰め合わせ.
 tar.gz で固めてあるので解凍したらそのまま使えます.
こちらもフォルダ内全部 CC-BY-SA.
↓
Another_Introduction_to_Beamer-CC.tar.gz

なにかのお役に立てば.ご助言やなんや,お待ちしております.ここのコメント欄でも.

Tuesday, 5 February 2013

beamer : \end{frame} in verbatim environment

beamer では,\verb|| などを含む frame では
\begin{frame}[fragile]{title}{subtitle}
    texts here
\end{frame}
と [fragile] オプションを与えねばならず,それでだいたいうまくいくのだが,
verbatim 環境 や \verb|| のなかに \end{frame} が入っている場合にエラーが出る.
7 Feb 2013 0200JST :こんな深夜にどうかと思いますが, 今やったら
\verb|| の方は普通に通ったので一回取り下げます.
これを書いた時の僕か今の僕かどちらかがぼけてるということ,と思われます.
ただつい10時間ほど前に texlive2012 入れたのでその辺のアレも一応疑っておきましょう.
(なおこれはたとえば article とかでは普通に通ります.)
ソース:
\documentclass[pdflatex]{beamer}
\begin{document}
\begin{frame}[fragile]{title}{subtitle}
    \begin{verbatim}
        \end{frame}
    \end{verbatim}
\end{fragile}
\end{document}
verbatim の場合
Runaway argument?
^^M
! File ended while scanning use of \@xverbatim.
<inserted text>
                \par
l.5         \end{frame}

verbatim 環境の代わりに verb|\end{frame}| の場合
Runaway argument?
! File ended while scanning use of \next.
<inserted text>
                \par
<*> bem.tex
 なお,この \end{frame} が他のもの, \end{document} とか \begin{frame} とか,
 なら普通に通って予期された結果が得られる.

さて,この大変奇妙な事態.
\verb とか verbatim 全体が駄目ならまだ話はわかるけれども,
\end{frame} が駄目というのはどういうわけか.
  これを書きながら思いついたけど,そういえば \end{verbatim} を出そうとして
\begin{verbatim}
       \end{verbatim}
\end{verbatim}
ってやっても通りませんね.その辺に類似した事象なんだろうか.
ちなみに
\begin{verbatim}
      \begin{verbatim}
      \end{verbatim}
\end{verbatim}
も駄目.

 さて,TeX とか  LaTeX とか beamer でなにが起こってるのかを調べるには僕のスキルは不足していて,
とりあえず検索かけるといくつか同様の話題は見つかる
  (http://latex-beamer-class.10966.n7.nabble.com/end-frame-in-verbatim-td1457.htmlとか
http://compgroups.net/comp.text.tex/beamer-bug-end-frame-inside-of-verbatim/1936178 )
ものの,ここで挙げられている対策は  
[fragile] ではなく [containsverbatim] をオプションとして指定する
というもの.
この [containsverbatim] オプションは今回初めて知ったものだが,
beamer のドキュメントでも触れられていない. ちょっと古いコマンドらしい.
実際これでコンパイルは通るのだが, containsverbatim 下では \pause が効かない.
(cf. http://tex.stackexchange.com/questions/55687/pause-wont-generate-extra-slides-in-a-containsverbatim-frame)
僕のやった限りでは当該 frame のはじめの \pause 以降が出力されず,
次の  frame は出力される,といった感じ.

…というわけでこれはできるだけ使いたくない.
と,なると,ですね.とりあえず今のところ僕の見つけた最善策は,
beamer に用意されている semiverbatim 環境を使うこと.
この環境では \, {, } は普通の環境と同じ意味を持ち, \ { } は \\ \{ \} で出力する:
\begin{semiverbatim}
       \\end\{frame\}
\end{semiverbatim}
 でこれはちゃんと通る(のだが今度は置換とかめんどくさいのとソースの可読性が下がる……).

というわけで珍しく真面目にエラー吐くケースの報告と
とりあえず欲しい出力を得る方法でした.
beamer か verb かその辺の何かが問題なんだと思うのですが詳しい人,どうなんでしょう.
そのうち TeX wiki とか tex.stackexchange.com に投げてみてもいい.
% 例によって mathjax との衝突と思われるレイアウト崩れが発生したので
% blog 全体への mathjax 適用を外しました.
% 別にここでは mathjax 呼んでないんやけどな……
%  なにか解決策ご存知の方があったら教えてください.

Tuesday, 8 January 2013

Makefile -> 8Jan2013.pdf

make を使って,例えばその日の日付を名前に含んだファイルをつくりたい.
とくにバックアップとるのとか, ( $ make backup みたいな感じで)自動化できたら嬉しい.
というわけでとりあえず日付をお名前に冠したファイルを作ってみよう.
#ほとんど make 関係無かった ()

というわけでじゃじゃーん, ` ` ( backquote )の出番であります.
backquote についてはもう en.wikipedia がだいたい喋ってくれてるからいいや.
 ( http://en.wikipedia.org/wiki/Grave_accent#Use_in_programming .)
(ただ,要確認だが,いまちょちょっとやった感じでは Makefile のなかで
 $({some command}) は動かなかったように思われる(?))

そして
本日のtip:ファイル名に日付や時刻を入れるには - 檜山正幸のキマイラ飼育記
 ( http://d.hatena.ne.jp/m-hiyama/20081129/1227922157 )
を紹介すればもう僕になにもいうことはない.
そもそも今日のこれは備忘録なので.

でまあとりあえず example.tex から,
 今日なら 08.01.2013.example.pdf を pdflatex で作るのがこちらの Makefile.

-->
1 #Makefile
2 F=`date +%d.%m.%Y`.example
3 $F.pdf:example.tex
4         pdflatex example.tex
5         mv example.pdf $F.pdf

実際使うならたぶん $ make backup みたいな使い方にするのがいいと思うし,
pdf つくるよりは zip とか tar.gz とかのほうがいいことが多い気がする.
フォルダ内の画像と tex と sty と pdf まとめるとかね.

まあというわけで殆ど backquote とそれが make 内にも使えるよってだけの話.

#なんか (blogger さんが頑張り過ぎかな?) preview どおり表示されず
#Makefile が正しく見えない模様.ドラッグで反転して頂ければみえるようですが……
#うーん.

Friday, 4 January 2013

vim - :TOhtml

実用的な記事とかも書いてみよう.

たとえばこの blog で僕の書いた tex とか python のコードを紹介したいときに,
syntax highlighting をそのままに html としてここに貼り付けたりしたい
(以前 scilab のコードとか紹介した時は,直接 copy & paste でそのあたり上手く行ったけれど,
 vim を使ったりしてるいまはそういうわけにもいかず, gedit でも駄目みたい).

なんかツールあるんかいな,とおもって調べてみると,たとえば
highlight 3.12 というソフトが見つかったりしたっぽい.
っぽいというのは実際インストールとかしてないし,
そもそも信頼できるサイトかもしらないというような話ですが,
一応 URL 紹介しておくとこちら. http://www.andre-simon.de/
Highlight converts source code to formatted text with syntax highlighting.
  • Coloured output in HTML, XHTML, RTF, ODT, TeX, LaTeX, SVG and BBCode format
  • Supports 175 programming languages
といっておられて, きちんと動くならかなり高機能っぽい.

もう少し調べてみると, vim のコマンドで
  :TOhtml
というものがあるという情報に行き着いた.早速使ってみるとかなりいい感じ.
たとえば mysource.tex を開いているときに :TOhtml とお願いすると
デフォルトでは mysource.tex.html が作られる.
 88 %_____________________________________________________________
 89 % brackets, absolute value and norm.
 90 \newcommand{\brac}[1]{\left({#1}\right)}
 91 \newcommand{\bbrac}[1]{\bigl({#1}\bigr)}
 92 \newcommand{\Bbrac}[1]{\Bigl({#1}\Bigr)}
 93 \newcommand{\bbracc}[1]{\biggl({#1}\biggr)}
 94 \newcommand{\abs}[1]{\left|{#1}\right|}
 95 \newcommand{\norm}[1]{\left\|{#1}\right\|}
 96 \newcommand{\cbrac}[1]{\left\{{#1}\right\}}
 97 \newcommand{\bcbrac}[1]{\bigl\{{#1}\bigr\}}
 98 \newcommand{\Bcbrac}[1]{\Bigl\{{#1}\Bigr\}}
 99 \newcommand{\sbrac}[1]{\left[{#1}\right]}
100 \newcommand{\bsbrac}[1]{\bigl[{#1}\bigr]}
101 \newcommand{\Bsbrac}[1]{\Bigl[{#1}\Bigr]}
102 %_____________________________________________________________

たとえばこれは僕が数学系のノートとったりするときにかなり汎用的に使ってる .sty の一部.行頭の数字は行番号です.
元々吐き出してくれる html では背景色が白なのだけれど,ちょっと見にくいのでそこは変更しました.
いくつかオプションもあって,行番号表示しないとかいろいろ.
color theme はどうも vim での表示に使われているものに一致するようで,
:TOhtml についてだけ別に theme を設定する方法があるといいとおもうのだが,
まだそこは見つけられてない.
いろんな color theme があるが,
 http://vimcolorschemetest.googlecode.com/svn/html/index-tex.html
に色々あるようなので,参考にしましょう.

Saturday, 3 November 2012

LaTeX - 2nd Nov 2012

ここ最近 LaTeX まわりで新しく知ったこと,あるいは思い出したこと.

  • 初めて本格的に amsthm package を使った.これについては例えば en.wikibooks が充実してる.
  • 日本語で組版すると, theorem 中とそれ以外の区切りがはっきりしなかったりするので(手書きなら若干 theorem 環境内にインデントを入れる気がするが), framed.sty を使ってみている.なかなかいい感じである.
    • framed.sty - CTAN
    • 解説や拡張については 滋賀大学の http://www.biwako.shiga-u.ac.jp/sensei/kumazawa/tex/framed.html が充実している感じ.
      • biwako.shiga-u.ac.jp 下のページにはこれに限らずちょくちょくお世話になっている気がする.
    • 今のところ framed 環境を使っているが leftbar もいいかも.
      • framed -> theorem で入れ子にすると, framed で一旦くくった後に再び theorem 環境が始まるので,枠と theorem の間が広すぎるように感じて,\vspace*{-0.4\baselineskip} を挟んでいる.
      • \(
        \newenvironment{ftheo}{%
        \begin{framed}\vspace*{-0.4\baselineskip}
        \begin{theorem}%
        }%
        {%
        \end{theorem}\vspace*{-0.4\baselineskip}\end{framed}%
        }
        • 上のやつの一行目は無視してください(原因不明{Mathjax 周りちゃうかなあと思うけどよくわからない…}の表示の乱れを解消する最小の再現例がこれ)
  • equation  カウンタを例えば section ごとにリセットするようにするなら
    \makeatletter
    \@addtoreset{equation}{section}
    \makeatother
  • footnote とは別に,文書の最後に註釈を飛ばす形の命令作りたい.
  • framed 環境は footnote を "飲み込む" ので(各自実験を),今のところ \footnotemark と \footnotetext で対処するほかない.
    • 1つの framed 環境に複数の footnotemark があると,カウンタはその数だけ最初に増えてから footnotetext を入れることになるので,
      \addtocounter{-1}
      でカウンタを調節してからやるとよい(なんとなく \addtocounter を憶えていてびっくりした)・
    • この辺もうまいこと1つの命令でできないかなぁ.
  • と,上記2つの目標のためにやはり .sty とか .cls とか,ともかく TeX 自体に近い部分をもうちょっと勉強したいなとおもいました. \makeatletter とか殆ど使ったことないし(情けない).

Tuesday, 10 July 2012

O

さてさてお久しぶり.いまあんまりつらつら書けるほどはっきり目が醒めてないので
(そういえば昨晩の1時ごろに謎の電話がかかってきたのであった),
とりあえず箇条書き的に行きましょう.
  • LaTeX で日本語が扱えない問題が解決しつつある.詳しくは解決しきった時に書くけど,
    • Linux で普通に入る pLaTeX は EUC-JP 以外対応してない(憤怒).TeX live 2011 が,ということ. Ubuntu でいうと 12.10で入る TeX live 2012 は utf-8 に対応します.ubuntu 12.04 でも TeX live 2012 を入れる方法はあるし今はそれで使っていますが. (5 Mar 2013 追記)
      • これについては,一度保存しなおして試したことがあったはずだったのだが,i) encoding 変えたと思ったら変えられてなかった,か, ii) Terminal から直接コンパイルせず TeXworks つかった ことによって成功しなかったと思われる.
    • 一方, TeXworks の方は,どうもそもそも pLaTeX が入っていることを今のところ認識しておらず,jarticle, jsarticle いずれも読み込めず,日本語も受け付けなかったのはこういう事情によると思われる.
    • というわけで,iconv でエンコーディング変換,ターミナルから platex , pdfdvimx で変換していくと一応無事な pdf 出力が得られた.jsarticle も無事使える.
    • なお,このあたりについてはぽぽさんにご教示頂き,自動化する makefile を紹介(というかなんというか)していただいた.大変ありがたいことである.ついでに そもそも何も知らない makefile についてこういう使い方できるとは思ってなかったので,参考にしたいところ.
  • ついでに IPAex フォントをインストールしたけど (apt-cache search と apt-get はすごく便利!),埋め込み方がわからないので放置.今のところ和文はゴシック体(のように見えるもの)で表示される.
    •  マクロツイーターでの過去記事 ( TeX live, W32TeX) とかみるといいとおもうよ (5 Mar 2013 追記)
  • そういえばある程度までなら LaTeX のトラブルシュートに能力があることが示せつつあって嬉しい.
  • Vim の方は一向に未解決.そもそも一部の漢字だけは表示されることがあるとは.
  • ぴゅとん のこの前のプログラムは少し改善された.
  • ぴゅとん で素数判定/素因数分解/素数の表作るプログラム書いた.
    • 最近のPCすごい.ごく愚直なプログラムでも\(10^7\)までとかの素数をふつうに吐いてくれる.(一応 \(10^7\)までの素数表はこちら.plain text, コンマ区切りで5MB あるので注意.ちなみに gedit や notepad.exe では開けた実績がない{今のところ開けたのはvim で開いたのと python での importのみ}).
    • さらに↑の表を使って,もっとアホみたいに大きい数字を素数かどうか判定する/そして表を作るプログラムも.素因数分解はまだでおじゃる. 例えば\(10^8 \)~\(10^8+10^7\) とかも出してくれた.こちらも 5MB ある(up しませんが要望があればいつでも).素数表から割っていく数を取っていくことではやくなるかな,と思ったけど,最初にたくさん読み込みすぎるとそれはそれでよくないのかもしれない.
      • たとえば for と while とどっちがええの,とか,そういうふうに,思考の流れとしては同じ事をやってても"より速い"プログラムを書くテクニックもほしいなぁとか思ったり.今はそれ以前の問題ですが.
  • 生協の建物が耐震工事のため在庫棚卸セール:書籍15% off にまつわる話をしようかと思ったけど↑がずいぶん長いので明日か明後日かそのうち.なんせ毎日物欲を刺激されてる.とりあえず
    • グルジア語楽しすぎてグルジア語の本買った(昨日).
      • 語学って,僕もグルジア語を本当にある程度やり始めるとは思わなかったわけで,なんにせよそういうところがあるから,大きめの図書館へのアクセスがある場合は色々借りまくって,いいな,って思うのを継続的にやるのがいいのではないかと思う.
    • N.Bourbaki の éléments de mathématique : Algèbre Chapitres 1 à 3 を衝動買い(今日).だってだって.もともとセールで本当に破格だったし,そして僕は仏語選択なのだ.どれだけかかるかわからへんけどのったり読んでいこう.こういうのでノートを選ぶのも楽しいひと時.
    • メモとしては,数理神学.音声学.言語学の基本的な方法.Japanese. 政治学.
  • ごがく徒のつどい.これも後日.
  • 本読まなきゃ.

Sunday, 24 June 2012

LaTeX- still counting

とりあえずカウンタの勉強も兼ねて.
前言ってた,「命題13」「定義14」みたいな感じで連番を振りたいときようの .sty .

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%24th June 2012. Mutsuteru @exumbra_insolem on twitter,
%all rights reserved.
%distributed under LGPL license.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%definition of \mtheo. the counter is theoremMutsu, and
%this counter is independent.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{theoremMutsu}
\renewcommand{\thetheoremMutsu}{\arabic{theoremMutsu}.}
\newcommand{\mtheo}[1]{\paragraph{{#1} \thetheoremMutsu}\stepcounter{theoremMutsu}}
%\newcommand{\mtheo}[1]{\stepcounter{theoremMutsu}\paragraph{{#1} \thetheoremMutsu.}
% DOES NOT work. it yealds, when the counter theoremMutsu is first set to 0,'' 2,3,4,..., n,n''.
\setcounter{theoremMutsu}{0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%next definition of \dtheo, this counter is dependent on section.
%thus the numbering is reset in each new section.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcounter{dtheoremMutsu}[section]
\renewcommand{\thedtheoremMutsu}{\arabic{section}.\arabic{dtheoremMutsu}.}
\newcommand{\dtheo}[1]{\paragraph{{#1} \thedtheoremMutsu}\stepcounter{dtheoremMutsu}}
\setcounter{dtheoremMutsu}{0}
 \newcounter{a}[b] で b のこどものカウンタ a を作れる.


\mtheo{definition} で 「definition 1. 」
次例えば \mtheo{proposition} で「proposition 2.」
以降 3., 4. ... とカウントしていきます.
\dtheo{} の方は section 番号と倶に 「proposition 1.1.」 みたいな.
これは section が変わるとまた1からのカウントになります.
\mtheo, \dtheo ともに paragraph を作る設定にしてあります.つまり
\paragraph{definition 13.} とかやってたのの,カウントを自動でしてくれるのがこちら.

LGPL で配布しますがご利用の際は ひとこえかけていただけると喜びます.
数式のカウントとも連動するようにできたりしたら良いかもしれない.
\theequation を書き換えるとかして.


vim ほんま捗るわぁ.まだ文字化け治ってないから日本語打てへんけど.

Tuesday, 19 June 2012

LaTeX : customizing enumerate environment

enumerate 環境は便利やけど.デフォルトでは 1. 2. とかいう表示なので,
これをカスタマイズしたいことがある.ちょっとメモ.

まずは何がどうなっているか.
  • 番号出力は \labelenumi (label - enum- i: 第一レベル.以下 ii, iii, iv と続く).
  • カウンタを出力するのが \theenumi (ii, iii, ..)
  • カウンタ自体は enumi.
  • そして,カウンタを引数にとって,それを \roman, \arabic, \alph, \Alph, \Roman で出力できる(という理解でいい筈.enumi と section を引数にとって確認.).
だから,たとえば enumerate で (1), (2)... にしたいなら
\renewcommand{\labelenumi}{(\theenumi)}
 とか,
\renewcommand{\labelenumi}{(\arabic{enumi})}
とかすればいいんですねー(他の応用の仕方については「読者は悟れ,」).
あとこのあたりはカウンタの話になってくるけど,
\renewcommand{\labelenumi}{\arabic{section}-\roman{enumi})}
とかそういうのもありかなぁ.


また, enumerate パッケージというのもあって,
これを使えばenumerate 環境にオプションをつけられる.
\begin{enumerate}[example 1]
とかでお手軽.ただこれは jsarticle 下で jsarticle のよい体裁を崩してしまう(美文書より).
A, a, I, i, 1 が対応する書体のカウンタとみなされるらしい.
これらを文字として入れたい時は {A} などとする(ここも美文書より).


Tuesday, 17 April 2012

\stackrel \mathop

\(\LaTeX\) の話です.
普段,例えば = の上に def. という文字列をつける ( \(\stackrel{\text{def.}}{=}\) ) にあたっては,\stackrel を使っていたのだけれど,
今日ちょっと機会があって調べなおしてみると, \mathop もあるらしい.
名前からして \mathop って math operator のこと(きっと).
(上下につけるというよりは,だから,operator として宣言することに主眼がある命令かも.もっと公式な説明にあたってみないといけないだろう.)
とすれば,多分\stackrel とは両サイドのスペーシングが違うのだろう,と思って,幾つか比較をしてみた.
確かに2つで違うのが判る.
なお, \mathop は \mathop{ } ^{ } _{ } の形で使うことができ,例えば
\( A\displaystyle \mathop{\Longleftrightarrow}^{\text{def.}}_{3} B.\)

 上から順に,
 a \Longleftrightarrow b
 a \mathop{\Longleftrightarrow}^{\text{def.}}b
 a \stackrel{\text{def.}}{\Longleftrightarrow}b
 a \Longleftrightarrow b
  a=b
  a+b
 a \mathop{=}^{\text{A}} b
a=b
 a \stackrel{\text{A}}{=} b
 a+b

 上下で見比べられるように冗長に作ってある.



こういうのって正書法みたいなのがあるから,それもきちんと身につけないと.

Saturday, 4 February 2012

LaTeX : typesetting french

仏語の組版にあたって, à とかは例えば \' a とかで出せるのだけれど,
それだけでは i) 合字に過ぎない し, ii) キーボードから直接打ち込めるわけじゃない(→遅い)
というので,改善が求められていた.あと hyphenation とかもできたら仏語に合わせて欲しい.
とりあえず,手持ちの美文書作成入門とかを参照してみると,
\usepackage[T1]{fontenc}%à とかも含んだ encoding に.
\usepackage{textcomp}% TC fonts 扱う package
\usepackage[utf8]{inputenx}% 入力を utf8 に.キーボードから直接打ち込める
\usepackage{lmodern}% これはフォントの話.まあよい
\usepackage[french]{babel}% babel.

っていう感じで行けそう. babel 以外のところはこれでスムーズにいけてるっぽいんだが,
babel は
! LaTeX Error: File `scalefnt.sty' not found.
とかいうてくる.一応無視すればパッと見普通に動くっちゃ動くんだけれども.
まあそもそも tex のコマンド類とは仲良くなってきたけど本体が何してるのかあんまり知らんしなー.
あと encoding とかも詳しいことは何も知らない.
新しいスタイルファイルとかの導入もやったことないし. MikTeX はそこはやりやすいけど.
解決法探すと共にその辺も勉強していかなくてはなりますまいて.

Thursday, 22 December 2011

ymmathnote.sty

微積,といえば,(行列たくさん扱う線形代数と違って)微積の授業は比較的 TeX 化しやすいため,
授業と平行して,ノートを TeX で 取ることがしばしばある.
無論この時は結構早く打つのが必要なので, 省入力のためだけのスタイルファイルを用意してる.
現時点の version 保存の意味を兼ねてここにあげてみよう.
ここを見ている人が使うのは自由(というか,気に入ったらどしどし使ってやってください)ですが,
利用者が作ったものとして更に配布したりするのはやめてください.

以下,ymmathnote.sty

\usepackage{amsmath,amssymb,type1cm,bm}
\newcommand{\pdif}[2]{\frac{\partial{#1}}{\partial{#2}}}
\newcommand{\dpdif}[2]{\dfrac{\partial{#1}}{\partial{#2}}}
\newcommand{\bite}{\begin{itemize}}
\newcommand{\eite}{\end{itemize}}
\newcommand{\under}[1]{\begin{itemize}\item {#1}\end{itemize}}
\newcommand{\bien}{\begin{itemize}}
\newcommand{\enen}{\end{itemize}}
\newcommand{\brac}[1]{\left({#1}\right)}
\newcommand{\bbrac}[1]{\bigl({#1}\bigr)}
\newcommand{\Bbrac}[1]{\Bigl({#1}\Bigr)}
\newcommand{\abs}[1]{\left|{#1}\right|}
全部,ここで使うパッケージと LaTeX 標準の命令と被らないように作ってあるから,
基本的には競合して不便,という事にはならないはず.
軽く解説すると,
  • まず amsmath, amssymb, type1cm, bm(数式中\bm{hoge}で太字.) を使う.
  • \pdif{a}{b}で a の b での偏微分∂a/∂b (partial differentiation), \dpdif はその\displayle 版.
  • \bite, \eite は \begin{itemize}, \end{itemize}の省入力.
  • \under は itemize 環境の縮約版. \begin と\end と\item までセットにしてる.{}の中に複数 \itemをいれこむことで普通の itemize 環境としても使えるけどソースが見難くなるから非推奨
  • \bien, \enen は \begin{enumerate}, \end{enumerate}の省入力.それじゃあ been やんか,って言うたらだめです.\bite に引きずられましたごめんなさい((   \beenが defined かどうか確かめるのが面倒なので,と,\bien というのを打つのに慣れたので一旦はこのままで.
  • \brac{hoge} で\right,\left つかって大きさが調節される小括弧 (bracket)で囲む.
  • \bbrac, \Bbrac はそれぞれ,小括弧を \bigl と \bigr,\Bigl と \Bigr で大きさ変えたもの.時々\left, \right では思った大きさにならないことがあるのでそういう時に.
  • \abs{hoge} は絶対値(absolute value).これも \left, \right での大きさ調整込み.
と,まあこんなもん.

授業の回に応じて, \bm{x}とか,f(x,y,z) とかを出力する命令を別個に作ると
(ソース作る姿勢としてはアウトかもしれないけど),さらにはかどります.
ここにあるのは,様々な範囲で使えて,かつ実績がある人らばかりで,
実際にノート取ってる時は臨時で色んな命令が登場します.ここにいるのはそのレギュラーという感じ.
\bite,\eite,\bien,\enen は他の教科のノート取りにも汎用性が高く,気に入ってる命令たちである.

もとは,\int とその後の数式までの間を詰める \Int  (\int \!\! )とかあったりしたのだが,
それはずいぶん慣れて,後に続く式の形,とか,定積分なら上下に何がついてるか,とかによって
\! の数を変えるようになってきた(し,\! うつ速度も上がってきた)ので外した.
好みにもよるけど,不定積分なら \! 2個か3個,
定積分は付いてるものの大きさによるがだいたい4~5 ,くらいがバランスいい気がする.
特に定積分でのスペース調整はこだわりどころ.
dx とかの前には \, 入れてちょっと区切りを作るのも忘れないようにしたいですね(以下数分略

あとスタイルファイルとして追加したいのは,例えば itemize 環境の中で直接別行立て数式打つときに
\item \[ \int_1^a f(x)\,dx\]
とかやると・と数式の間に垂直方向に隙間が空くので,それの調整含めた\item 系統とか,
定理を述べる際に,ひと通りの条件を左詰め複数行で書くのを,
今はだいたい array とか使ってやってるんだが,それをもう少し整備したまとまりある命令とか,
カウンタ勉強して自前の定理環境とか,まあ他にも色々.

結構 LaTeX は長期的に「はまってる」っていっていいんじゃないか,と思っている.

Monday, 28 November 2011

\mbox

今まで\mbox{} は基本的に「見えないスペース無しの箱」として,改行やるときとかに使ってた.
例えば, \paragraph{abc} の直後に改行入れたいときは(そもそも邪道なのかもしれないが),
\paragraph{abc}

ABC is...
としても上手くいかないため,
\paragraph{abc}\mbox{}

ABC is...
としてたりした(たとえば,"\ "を入れるのでもいけただろうが).
今回は, The not so short introduction to LaTeX2e に
"It causes its argument to be kept together under all circumstances. "
と紹介されているその旨味を活かした使い方.
例えば画像枠とかでちょっとした文字が追い出されそうになった場合とかに
文字列を \mbox{} で囲えばうまくいく.
状況によっては\caption とか使いたくないところもあるからね.

\fbox{}で箱が見える.