2018年4月26日木曜日

定理を再掲したときに定理番号も揃える(amsmathのtagと似た挙動の定理環境を作る).

LaTeXの話題です.amsmath.styで定義されているtagコマンドは,数式環境の式番号部分を自由な文字列で置き換えることができるようになっています.下に例を挙げます.

この画像を生成するLaTeXのコードは次のようになります.
\documentclass[a4paper,dvipdfmx,uplatex]{jsarticle}

\usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true,%
,colorlinks=true,linkcolor=blue]{hyperref}%

\usepackage{showkeys}
\usepackage{amsmath}
\numberwithin{equation}{section}


\begin{document}

\section{amsmath.styに含まれるtagコマンドの挙動}

\begin{equation}
 \label{eq:euler}
e^{i\theta}=\cos\theta +i\sin\theta
\end{equation}

\eqref{eq:euler}


\section{amsmath.styに含まれるtagコマンドの挙動の検証}


\begin{equation}
  \label{eq:euler2}
  \tag{\ref{eq:euler}}
e^{i\theta}=\cos\theta +i\sin\theta
\end{equation}


\eqref{eq:euler2}

\end{document}
最初のequation環境にeq:eulerというlabelをつけ,第2のequation環境ではtagコマンドを使って数式番号部分に¥ref{eq:euler}と書くことで,実際に表示される式番号が第1のequation環境のものと同じになっています.この第2のequation環境にはeq:euler2というlabelを付けており,これを¥eqref{eq:euler2}と参照すると表示される番号は第1のequation環境のものであるにも関わらず,リンクをクリックすると第2のequation環境にジャンプします.

このような現象が起こるのは,上記のファイルをタイプセットして得られるauxファイルの記述を見てみるとわかります.以下はauxファイルのリンク作成に関係する部分を抜き出したものです.
\@writefile{toc}{\contentsline {section}{\numberline {1}amsmath.styに含まれるtagコマンドの挙動}{1}{section.1}}
\newlabel{eq:euler}{{1.1}{1}{amsmath.styに含まれるtagコマンドの挙動}{equation.1.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}amsmath.styに含まれるtagコマンドの挙動の検証}{1}{section.2}}
\newlabel{eq:euler2}{{{\ref  {eq:euler}}}{1}{amsmath.styに含まれるtagコマンドの挙動の検証}{equation.2.1}{}}
第1のequation環境のlabelから作成されたnewlabelには,最初の引数にlabel名が,第2の引数には数式番号が入力されています.第2のequation環境のlabelから作成されたnewlabelには,最初の引数にlabel名が入力されているのは同じですが,第2の引数に¥ref{eq:euler}という文字列が入力されていて,これが実行されることで第2のequation環境の数式番号部分が第1のものに置き換わるわけです.newlabelの2番めの引数部分は,labelコマンドを用いた時点での¥@currentlabelの値が入力されるので,これを変更することでrefコマンドを使った文字列を入力することができそうです.

以上のtagの性質は,例えば1つの文書内のある場所に数式を書いたものの,その場所とはかなり離れた部分で頻繁に参照する場合,もう一度同じ数式を書きたいが,数式番号は以前に記述したものと一致させたいとなったときに便利です.

同様に定理環境ついても1つの文書内のある場所で定理を証明し,遠く離れた場所でその定理を頻繁に参照するようなときに,定理を再掲するも定理番号は最初のものと一致させたいという場合があるのではないでしょうか.また定理番号は最初のものを使いますが,リンク先は再掲した定理の部分に飛ぶほうが文書を読みやすいと思います.そこで上記のtagコマンドと同じような挙動をする定理環境をでっち上げてみました.結果は次のようになりました.
showkeys.styを使ってlabel名や参照先を表示させています.hyperrefで使われるlabelを再定義するという力技を使っているため,定理番号を再利用している部分のlabel名はshowkeysでは表示できなくなってしまっています.ソースファイルは以下のようになりました.
\documentclass[a4paper,dvipdfmx,uplatex]{jsarticle}

\usepackage[dvipdfmx,bookmarks=true,bookmarksnumbered=true,%
bookmarkstype=toc,colorlinks=true,linkcolor=blue]{hyperref}%
\usepackage{nameref}

\usepackage{showkeys}
\usepackage{amsmath}
\numberwithin{equation}{section}
\usepackage{tcolorbox}
\usepackage{varwidth} 
\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{xparse} %内部でxparse.styを読み込むのでNewDocumentCommandなどが使える.

%定理環境の定理番号部分の背景色
\definecolor{tcbtitlebackcolor}{RGB}{52,48,39}


%%%定理環境の定義
\newcounter{theoi}
\newcounter{theoii}
\numberwithin{theoi}{section}% numberwithinはamsmathで定義されているので要amsmath.sty
\NewTColorBox{theobox}{o m o}{%oは省略可能な引数、mは必須の引数を表す。
%dは省略可能な引数でで囲まれた部分を引数とする.
%#1=タイトル(省略可), #2=定理環境名, #3=定理番号部分を再利用したいときに\refコマンドを入れる.
enhanced,
coltitle=white,fonttitle=\bfseries\sffamily,
colbacktitle=tcbtitlebackcolor,
colback=white,
extras broken={%
colback=white,
frame empty,
},
breakable=true,
borderline={0.5mm}{0mm}{tcbtitlebackcolor},
leftrule=0pt,rightrule=0pt,
sharp corners=all,
boxsep=1mm,
before skip=3mm,
attach boxed title to top left={yshift*=-\tcboxedtitleheight-2.5mm},
boxed title style={sharp corners=all,toprule=0pt,bottomrule=0pt,leftrule=0pt,rightrule=0pt,
},
IfValueTF={#3}{%3つ目のオプション引数がある場合はタイトルの番号部分を書き換える。
IfNoValueTF={#1}{title={#2~#3.}}{title={#2~#3\,:~{#1}}}%
}%
{%
IfNoValueTF={#1}{title={#2~\thetheoi.}}{title={#2~\thetheoi\,:~{#1}}}%
},%
pad after break=-4.1mm, %breakした後の空きの調整
}

%% nameref.styのlabelコマンドの\@currentlabel部分を再利用するラベルで書き換えたものを
%% \my@labelというコマンドで定義する.
\makeatletter
\newcommand{\my@reuselabel}[1]{
\def\my@label##1{%
  \@bsphack
  \begingroup
    \def\label@name{##1}%
    \label@hook
    \protected@write\@auxout{}{%
      \string\newlabel{##1}{%
      % {\@currentlabel}%
        {#1}% \@currentlabelの部分に再利用するラベルを入れる
        {\thepage}%
        {\@currentlabelname}%
        {\@currentHref}{}%
      }%
    }%
  \endgroup
  \@esphack
}%
\ifNR@showkeys% showkeys.styを読み込んだときの対策
  \def\my@label##1{%
    \@bsphack
    \SK@\SK@@label{##1}%
    \begingroup
      \def\label@name{##1}%
      \label@hook
      \protected@write\@auxout{}{%
        \string\newlabel{##1}{%
 % {\@currentlabel}%
          {#1}% \@currentlabelの部分に再利用するラベルを入れる
          {\thepage}%
          {\@currentlabelname}%
          {\@currentHref}{}%
        }%
      }%
    \endgroup
    \@esphack
  }%
\fi
}

\NewDocumentEnvironment{theorem}{o m d<>}{%NewDocumentEnvironmentはxparse.styで定義されている。
 \IfValueTF{#3}{%
\let\my@@label=\label% \my@@labelに\labelをコピー
\my@reuselabel{#3}% 再利用するlabel名
\let\label=\my@label% labelコマンドを再定義
\my@reuselabel{#3}
\refstepcounter{theoii}
}{\refstepcounter{theoi}}
\begin{theobox}[#1]{#2}[#3]}{\end{theobox}
\IfValueT{#3}{\let\label=\my@@label}% labelコマンドを元に戻す。
}
\makeatother

\NewDocumentEnvironment{theo}{o d<>}{% 再利用するラベルは<>の中に入れる。
\begin{theorem}[#1]{定理}<#2>
}{\end{theorem}}

\NewDocumentEnvironment{prop}{o d<>}
{\begin{theorem}[#1]{命題}<#2>%
}{\end{theorem}}

\NewDocumentEnvironment{lem}{o d<>}
{\begin{theorem}[#1]{補題}<#2>%
}{\end{theorem}}


\NewDocumentEnvironment{coro}{o d<>}
{\begin{theorem}[#1]{系}<#2>%
}{\end{theorem}}




\begin{document}

\section{定理環境の再利用}

\begin{theo}[主定理]
\label{theo}
定理1~\fbox{\texttt{theo}}
\end{theo}

\begin{prop}
\label{prop:1}
命題1
\end{prop}

\begin{lem}
補題1
\end{lem}


\begin{theo}[主定理コピー]<\ref{theo}>
\label{theo:2}
定理2~\fbox{\texttt{theo:2}}
\end{theo}

\begin{coro}[主定理の系]
\label{coro:1}
系1
\end{coro}

定理~\ref{theo}

定理~\ref{theo:2}, 

命題~\ref{prop:1}, 

系~\ref{coro:1}


\pagebreak

\section{定理環境の再利用2}

\begin{prop}
\label{prop:2}
 命題2
\end{prop}

\begin{theo}[主定理コピー]<\ref{theo}>
\label{theo:3}

定理3~\fbox{\texttt{theo:3}}
\end{theo} 

\begin{theo}[主定理コピー]<\ref{theo:2}>
\label{theo:4}

定理4~\fbox{\texttt{theo:4}}
\end{theo} 

命題~\ref{prop:2}

定理~\ref{theo}, 

定理~\ref{theo:2}, 

定理~\ref{theo:3}, 

定理~\ref{theo:4}, 

\end{document}
上のソースファイルでは,hyperref.styのlabelコマンドの定義が書かれているnameref.styの該当部分をそのままコピーし,¥@currentlabel部分をrefコマンドで無理矢理書き換えるという操作を行っています.これで目的の挙動をする定理環境ができたのですが,考えてみればあまり使わないかもしれません.

2017年12月27日水曜日

ルベーグ積分の勉強ノート8

追記:2018/07/18:距離空間やBanach空間について少し加筆しました.

追記:2018/01/14:定理の枠が複数ページにわたるときに,行頭の開始位置が下がってしまい,見た目がおかしかったので修正しました.またフビニの定理の主張に色々誤りがあったので直しました.

ルベーグ積分の勉強ノートを更新しました.
こちらにおいておきます.

今回は測度論の部分を全面的に書き直しました.
以前ルベーグ測度の構成と一般の集合上の測度の話を分離したときに整合性が失われてしまった部分があり,その点を補正しました.

伊藤清三「ルベーグ積分入門」(旧版) p.14, p.15あたりで区間塊の体積が区間への分割の仕方によらないことが証明されていますが,以前からこの証明が直感的過ぎて好きでなかったので,詳細を補いました.

比較的最近に出版された本,例えば谷島賢二「ルベーグ積分と関数解析」や,G. B. Folland 「Real Analysis」では,抽象的な議論を先に済ませてしまい,特殊な場合としてルベーグ測度を構成しているようです.つまり直積測度の構成まで抽象的に議論を進め,1次元ルベーグ測度の直積として一般の次元のルベーグ測度を構成しています.

この方針は初学者にはかなり厳しいと思います.というのも,直積測度の構成をするためにルベーグ式の積分を使うので,一般的な積分論をある程度終えないと具体例が登場しないからです.(谷島本は1次元ルベーグ測度の構成とルベーグ積分を最初に持ってきてバランスを取っている印象)

柴田良弘「ルベーグ積分論」では最初に完全加法族とその上の測度の定義を持ち出していますが,抽象的なものはそのくらいに抑えて,一般の次元のルベーグ測度を構成するところから始めています.しかし区間の体積から区間塊(互いに素な区間の有限個の和集合)の体積を定義するときに,整合性のチェックを忘れています.つまり区間塊の体積が区間の体積の和として定義されるためには,最初に定義した区間の体積に対し,区間$I$が互いに素な有限個の区間$I_1, I_2,\dots, I_N$の和集合として表される場合に,区間の体積$v(I)$が$v(I)=v(I_1)+v(I_2)+\dotsb + v(I_N)$を満たしている必要があります.この性質が冒頭に述べた伊藤本で証明が曖昧模糊としている部分です.

柴田本を最初に読んだときには,伊藤本のこの部分を上手く避けていると思い込んでいたのですが,よくよく検討してみると証明そのものがされていないだけでした.今回の更新ではこの点を補いました.

また,伊藤本は$0\cdot\infty=0$の規約を取らない方針で書かれており,直積測度の構成部分が複雑な書き方になっているのはこの規約を避けているためだと思い込んでいました.その理由として,直積測度の前段階である有限加法族上の有限加法的測度が完全加法的であることの証明(定理9.4)に用いられる3つの補助定理はかなり証明が面倒で,しかも定理の証明に測度のσ有限性が欠かせないように見えます.

しかし谷島本やFolland本を見ると,完全加法性の証明にはσ有限性が必要でないように見えます.ところがこれらの本では直積測度の完全加法性を積分を通じて証明していて,そこで$0\cdot\infty=0$の規約を使っています.このようにσ有限性の仮定(+複雑な議論)と$0\cdot\infty=0$の規約がトレード・オフの関係にあるものだと思い込んでいたのですが,D. H. Fremlimの「Measure Theory」を眺めていると$0\cdot\infty=0$とσ有限性の両方を避けつつ完全加法性の証明ができることがわかりました.σ有限性は一意性の証明にのみ必要です.

伊藤本や柴田本では測度のどの性質の証明にどの条件が必要なのかがはっきりと分からない書き方になっていますが,谷島本はそのあたりが整理されていて良い本だと思います.

また今回の更新では,Fremlin本を参考に部分集合上に部分空間測度を定義する方法や部分空間測度の直積測度について詳しく調べました.これは関数解析の本で時々,$\mathbb{R}^n$の開集合$\Omega$上の$p$乗可積分関数全体のつくる関数空間$L^p(\Omega)$などが載っていることがあり,一般の集合$X$上の$L^p(X)$についての証明がそのまま使いたいと思ったことが発端です.任意の部分集合上でかなりきれいな結果が得られたのは予想外でした.積分のことを考えると集合に制限が必要になってきそうです.


2017年12月24日日曜日

bxjsclsの不具合?

bxjsbook.clsで数学の勉強ノートを取っているのですが,目次に表示されるページ番号が左揃いで3桁までを想定しているらしく,ページ数が1000を超えると一桁はみ出て見た目が残念なことになります.

どうにかならないものか.

2017年6月21日水曜日

tikzで行列の積を表現してみる

行列の積の成分計算を表す図をtikzで作成してみました。元ネタは佐武線形代数です。
画像は次の通り。
LaTeXのコードは次のようになりました。
行列の外の括弧を表現するのにdecorations.pathreplacingライブラリを,
行列を上部で揃えるのにpositioningライブラリを使っています.
色付けはbackgroundsライブラリを使い,scope環境にon background layerオプションを付けて文字の背後に色を付けるようにしました.

\documentclass[a4paper,dvipdfmx,uplatex]{jsarticle}

\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{matrix,backgrounds,fit,positioning}

\begin{document}
\begin{equation*}
\begin{tikzpicture}[every left delimiter/.style={xshift=1ex},every right delimiter/.style={xshift=-1ex}]
%
\matrix(A)[matrix of math nodes,nodes in empty cells,
 ampersand replacement=\&,
 left delimiter={[},right delimiter={]},
 inner sep=0.8ex,
 ]
 {
 \phantom{b_{11}}\&\hphantom{\dotsb}\&\phantom{\dotsb}\&a_{1j}\&\phantom{b_{1n}}\\
 \phantom{a_{11}}\&\&\&a_{2j}\&\phantom{a_{1n}}\\
 \phantom{\mathstrut}\&\&\&\phantom{\mathstrut}\&\\
 \phantom{\mathstrut}\&\&\&\phantom{\mathstrut}\&\\ 
 \phantom{a_{11}}\&\&\&a_{mj}\&\phantom{a_{1n}}\\
 };
 \draw[line width=1pt,line cap=round,dash pattern=on 0pt off 4\pgflinewidth](A-3-4.north)--(A-4-4.south);
 \draw[decorate,decoration={brace,amplitude=5}]
($(A-1-1.north west)+(-0.5ex,1.5ex)$)--($(A-1-5.north east)+(0.5ex,1.5ex)$)
 node[midway,yshift=2.5ex]{$n$};
 \draw[decorate,decoration={brace,mirror,amplitude=5}]
($(A-1-1.north west)+(-1.8ex,0.2ex)$)--($(A-5-1.south west)+(-1.8ex,-0.2ex)$)
 node[midway,xshift=-2.5ex]{$m$};
 \begin{scope}[on background layer]
 \fill[gray!40,rounded corners](A-1-4.north west) rectangle (A-5-4.south east);
 \end{scope} 

 \matrix(B)[matrix of math nodes,nodes in empty cells,
 ampersand replacement=\&,left delimiter={[},right delimiter={]},inner sep=0.8ex,
 left=0.8cm of A.north west,
 anchor=north east]
 {
 \phantom{b_{11}}\&\&\&\&\phantom{b_{11}}\\
 b_{h1}\&b_{h2}\&\vphantom{b_{h1}}\phantom{\dotsb}\&\phantom{\dotsb}\vphantom{b_{h1}}\&b_{h m}\\
 \phantom{b_{11}}\&\&\&\&\\
 \phantom{b_{11}}\&\&\&\&\\
 };
 \node[inner sep=0pt,fit=(B-2-3)(B-2-4)](fit1){};
 \node[baseline=(fit1.base)]at (fit1){$\dotsb\dotsb$};
 \draw[decorate,decoration={brace,amplitude=5}]
($(B-1-1.north west)+(-0.5ex,1.5ex)$)--($(B-1-5.north east)+(0.5ex,1.5ex)$)
 node[midway,yshift=2.5ex]{$m$};
 \draw[decorate,decoration={brace,mirror,amplitude=5}]
($(B-1-1.north west)+(-1.8ex,0.2ex)$)--($(B-4-1.south west)+(-1.8ex,-0.2ex)$)
 node[midway,xshift=-2.5ex]{$l$};
 \begin{scope}[on background layer]
 \fill[gray!40,rounded corners](B-2-1.south west) rectangle (B-2-5.north east);
 \end{scope} 

\matrix(BA)[matrix of math nodes,nodes in empty cells,
 ampersand replacement=\&,
 left delimiter={[},right delimiter={]},
 inner sep=0.8ex,
right=1.4cm of A.north east,
anchor=north west
]
 {
 \phantom{b_{11}}\&\phantom{\dotsb}\&\phantom{\dotsb}\&\phantom{b_{hj}}\&\phantom{b_{11}}\\
 \phantom{c_{11}}\&\phantom{c_{11}}\&\&\node[fill=gray!40,rounded corners]{c _{hj}};\&\phantom{c_{11}}\\
 \phantom{b_{11}}\&\&\&\phantom{c_{11}}\&\\
 \phantom{b_{11}}\&\&\&\phantom{b_{11}}\&\phantom{b_{11}}\\
 };
 \draw[decorate,decoration={brace,amplitude=5}]
($(BA-1-1.north west)+(-0.5ex,1.5ex)$)--($(BA-1-5.north east)+(0.5ex,1.5ex)$)
 node[midway,yshift=2.5ex]{$n$};
 \draw[decorate,decoration={brace,mirror,amplitude=5}]
($(BA-1-1.north west)+(-1.8ex,0.2ex)$)--($(BA-4-1.south west)+(-1.8ex,-0.2ex)$)
 node[midway,xshift=-2.5ex]{$l$};
\begin{scope}[on background layer]
 \draw[line width=1pt,line cap=round,dash pattern=on 0 pt off 4\pgflinewidth]
(BA-1-4.north)--(BA-4-4.south) (BA-2-1.west)--(BA-2-5.east);
\end{scope}
\node at($(A.east)+(10pt,15pt)$){$=$};
\node[below=0.5cm of A](A2){$A$};
\node(B2)at(B |- A2){$B$};
\node(BA2)at(BA |- A2){$BA$};
\draw[line width=1pt,line cap=round,dash pattern=on 0 pt off 4\pgflinewidth](B)--(B2) (A)--(A2) (BA)--(BA2);
\end{tikzpicture}
\end{equation*}
\end{document}

2017年5月23日火曜日

latexの箇条書きに全角文字を使う2

enumitem.styのenumerate環境については,こちらで箇条書きの番号に全角文字を使うことが可能になりました.

今度は箇条書きを横に並べる場合に同様のことができないか模索してみます.
今回はtasks.styとこのパッケージが依存しているcntformats.styを利用してみました.
この2つのパッケージは同じ作者によるものです.
ソースは次の通りです.

\documentclass[lualatex,a4paper,10pt,ja=standard]{bxjsarticle}


\makeatletter
\def\@kkana#1{%
  \ifcase#1\or ア\or イ\or ウ\or エ\or オ\or カ\or キ\or ク\or ケ\or コ\or
  サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or
  ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\else\@ctrerr\fi}
\makeatother


\usepackage{tasks} %箇条書きを横に並べる
\makeatletter
\NewPatternFormat{kk}{\@kkana}
\makeatother
\NewTasks[counter-format=tsk[kk]]{mytasks}[\item](1)


\begin{document}

\begin{mytasks}(3)
\item first
\item second
\item third
\item forth
\item fifth
\end{mytasks}

\end{document}

こちらをタイプセットしたのが次の画像です.
\NewTasks[option]{コマンド名}{separator}(標準の列数)はtasks.styで定義されているコマンドで,新しいtask環境を作ります.conter-format={counter specs}の部分で箇条書きのラベルを変更します.tskの文字列でtask-counterを置換するのですが,tskのオプション引数に入る文字としては,1, a, A, r, Rが用意されています.ここで1は\arabic, aは\alph, Aは\Alph, rは\roman, Rは\Romanを表しています.今回はこれら以外のカウンタ形式を用意するために,cntformats.styで定義されている\NewPatternFormat{pattern}{format}というコマンドを使っています.ここではkkという文字列で\@kkanaというフォーマットを表すように定義してあり,これをtskのオプション引数に入れることでtask環境のラベルを全角文字にしています.

counter-formatの定義で,tsk[kk]を全角丸括弧でくくってみて
\NewTasks[counter-format=(tsk[kk])]{mytasks}[\item](1)
とすると,次の画像のように

となり,ラベル位置が派手にズレてしまい上手くいきませんでした.
この方法では括弧やコンマなどをカウンタの前後に入れようとすると表示が崩れてしまいます.回避策を現在模索中です.

latexの箇条書き番号に全角文字を使う

latexのenumerate環境などの番号は通常数字やアルファベットしか使えないので,次のページ

を参考に,番号に全角文字(ア,イ,ウ,…など)が使えるようにしてみました.

enumerate環境については,最近ではenumitemパッケージの仕様が推奨されているようなので,このパッケージを利用してみます.

\documentclass[lualatex,a4paper,10pt,ja=standard]{bxjsarticle}

\makeatletter
\def\@iroha#1{%
  \ifcase#1\or い\or ろ\or は\or に\or ほ\or へ\or と\or ち\or り\or ぬ\or る\or を\or
  わ\or か\or よ\or た\or れ\or そ\or つ\or ね\or な\or ら\or む\or
  う\or ゐ\or の\or お\or く\or や\or ま\or け\or ふ\or こ\or え\or て\or 
  あ\or さ\or き\or ゆ\or め\or み\or し\or ゑ\or ひ\or も\or せ\or す\else\@ctrerr\fi}
\def\@kkana#1{%
  \ifcase#1\or ア\or イ\or ウ\or エ\or オ\or カ\or キ\or ク\or ケ\or コ\or
  サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or
  ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\else\@ctrerr\fi}
\def\@hkana#1{%
  \ifcase#1\or あ\or い\or う\or え\or お\or か\or き\or く\or け\or こ\or 
  さ\or し\or す\or せ\or そ\or た\or ち\or つ\or て\or と\or 
  な\or に\or ぬ\or ね\or の\or は\or ひ\or ふ\or へ\or ほ\else\@ctrerr\fi}
\makeatother
 
\usepackage[shortlabels]{enumitem} %enumerate環境
\AddEnumerateCounter{\kkana}{\@kkana}{ア}
\SetEnumerateShortLabel{kk}{(\kkana*)}

\begin{document}

\begin{enumerate}[kk]
 \item first
 \item second
 \item third
 \item forth
 \item fifth
\end{enumerate}

\end{document}

このソースをタイプセットしてみると次のようになります.
詳しくはenumitem.styのマニュアルを参照して頂きたいのですが,\AddEnumerateCounter{コマンド名}{code}{最大幅のラベル}というコマンドでenumitemの新しいカウンターの表現を定義します.enumitemではenumerate環境ごとに番号ラベルの詳細をオプション引数にlabel=の形で記述できますが,毎回設定するのは面倒なので,\SetEnumerateShortLabel{key}{replacement}でkey部分をreplacement部分で置換できるようにします.ここではkkをオプション引数に入れておけば,これを(\kkana*)に置換するという意味です.\kkanaは上で定義したカウンターで,*はカウンターの番号で置き換えられていきます.

2017年4月23日日曜日

Paper Lions "My Number"

素性を全く知らないのですが,YouTubeでは800万回再生されているMVもあれば,現時点で最新のこの曲のMVの再生回数は3400回弱だったり,有名なのかそうでもないのかよくわかりません.

取り敢えず,"My Number"のMVを貼り付けておきます.


80年代的な雰囲気を持っていてかなり好きです.多分youtubeの再生回数のうち50回くらいは私が再生したものだと思います.

この曲をきっかけに「Full Color」「My Friends」「Trophies」というアルバムを買ってみました.「Full Color」「My Friends」は収録曲の質がいずれも高く,気に入っています."My Number"は「Full Color」収録曲です.同アルバムに収録されている"Believer"のMVも貼り付けておきます.

こちらは再生回数が45,000回を超えており,認知度はあるようです.

最後に,再生回数が一番多い"Travelling"のMVを貼り付けておきます.

何故これだけ飛び抜けて多いのだろう.