Notebook
これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2026/01/04 20:57:27.410 (台灣標準時)
LaTeX での counter の利用方法について
講義資料を作っているとき、講義資料の中に練習問題を含めたいことがあるで
ござる。その際、それぞれの練習問題に番号をつけておくと便利でござる。講
義中に、「では、次に 10 個目の練習問題をやってみるでござる。」などと言
えば、どの問題に取り組めばよいのかわかりやすいからでござる。この番号を
手作業で一つ一つ文書中に書き込んでおくと、面倒なことが起きる場合がある
でござる。例えば、練習番号の順番を入れ替えたり、途中に新しい練習問題を
加えたり、既にある練習問題を削除したりする場合に、多数の番号を書き直さ
なくてはならないことになることがあるでござる。 LaTeX を使っているのな
らば、練習問題の数を数えて、番号をふる、などということは、 LaTeX にや
らせた方が確実で間違いがないでござるし、単純作業を LaTeX に任せる方が
より複雑な作業に集中できてよいでござる。
LaTeX で counter を使うには、例えば、以下のようにすればよいようでござ
る。 \newcounter{} で新しいカウンターを作成し、
\setcounter{} で初期値を設定し、 \stepcounter{}
でカウンターの値を一つ増やし、 \theカウンター名 でそのとき
のカウンターの値を出力できるでござる。 \newcommand{}{} を使っ
て、 increment と値の出力をコマンド一つでできるようにしておくと、便利
なようでござる。
\documentclass{article}
\usepackage{tcolorbox}
\newcounter{ExerciseNo}
\setcounter{ExerciseNo}{0}
\newcommand{\PrintExerciseNo}{\stepcounter{ExerciseNo}\theExerciseNo}
\begin{document}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\sin (30^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\cos (60^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\tan (45^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\end{document}
上の LaTeX ファイルを組版した結果は、以下の通りでござる。
これで、基本的には問題ないのでござるが、一つ修正したいことは、常に番号
を二桁にし、 10 よりも小さな数字の場合には、左側にゼロを付け加える、と
いうことでござる。どのようにすればよいのか調べてみたところ、
\two@digits{} を使えばよいようでござった。試してみたでござ
る。カウンターの値を出力するには \theカウンター名 を使えば
よいようなのでござるが、別のマクロによる処理にカウンターの値を使いたい
場合には、 \value{} を使うようでござる。また、 @
を含むマクロを使う場合には、 @ を含む部分を
\makeatletter と \makeatother で挟んでおく必要が
あるようでござる。
\documentclass{article}
\usepackage{tcolorbox}
\newcounter{ExerciseNo}
\setcounter{ExerciseNo}{0}
\makeatletter
\newcommand{\PrintExerciseNo}
{\stepcounter{ExerciseNo}\two@digits{\value{ExerciseNo}}}
\makeatother
\begin{document}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\sin (30^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\cos (60^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\begin{tcolorbox}
[title={\bf Exercise s08-\PrintExerciseNo},
colframe=blue, colback=blue!15!white]
Make a Python script to calculate $\tan (45^\circ)$ and print the
result of calculation.
\end{tcolorbox}
\end{document}
上の LaTeX ファイルを組版した結果は、以下の通りでござる。
参考文献
LaTeX の counter についての参考文献は以下の通りでござる。
- Section 11 of Dickimaw Books
- LaTeX/Counters
- Counters
- \newcounter: Allocating a counter
- \stepcounter
- \makeatletter & \makeatother
LaTeX 全般についての有用そうな文書は以下の通りでござる。
- LaTeX2e: An unofficial reference manual
- learn LaTeX.org
- LaTeX tutorial
- About this article:
- author: daisuke
- file: 20231107_00.html
- category: Computer___TeX
- title: LaTeX での counter の利用方法について
- mode: public
- last modified: 2023/11/16 08:05:05 (Taiwan Standard Time)
- html generated: 2026/01/04 20:57:27.410 (Taiwan Standard Time)
Frequently accessed files
- Misc___Taiwan/20240207_00.html
- 668 page views
- title: 台灣から台灣の外に EMS で荷物を発送する方法
- Computer___TeX/20231107_00.html
- 373 page views
- title: LaTeX での counter の利用方法について
- Misc___Taiwan/20240819_00.html
- 333 page views
- title: 住所から台灣の郵便番号を調べる方法
- Book___Chinese/20240424_00.html
- 289 page views
- title: 曹操の詩
- Computer___TeX/20240410_00.html
- 261 page views
- title: pdfTeX を使って PDF ファイルを作る方法
- Computer___TeX/20240411_00.html
- 211 page views
- title: LuaTeX を使って PDF ファイルを作成する方法
- Computer___TeX/20230726_01.html
- 209 page views
- title: Beamer の Metropolis テーマで block の色を変える方法
- Misc___Taiwan/20240903_01.html
- 195 page views
- title: 台湾の郵便局で EMS を利用して荷物を海外に送る方法
- Computer___NetBSD/20250301_01.html
- 182 page views
- title: yt-dlp で YouTube の動画をダウンロードするときのこと
- Computer___Network/20230516_00.html
- 180 page views
- title: OpenVPN 2.6 を使い VPN Gate に接続するときの注意点
- Computer___TeX/20240414_01.html
- 174 page views
- title: LuaTeX を使って日本語と中国語の漢字が混在した PDF ファイルを作成する方法
- Computer___Network/20241214_00.html
- 173 page views
- title: Google Colab で Python 3.12 を使う方法
- Computer___FreeBSD/20220621_0.html
- 171 page views
- title: FreeBSD での X.org の設定の仕方
- Computer___Network/20240130_00.html
- 167 page views
- title: Google Colaboratory で Python 3.12 を使う方法
- Computer___TeX/20240414_00.html
- 163 page views
- title: LuaTeX での fontspec を使ったフォントの設定の方法
- Computer___NetBSD/20230119_00.html
- 163 page views
- title: NetBSD でバイナリーパッケージを利用する方法
- Computer___Python/20250330_00.html
- 159 page views
- title: Jupyter Notebook で Matplotlib を使うときのこと
- Misc___Japan/20240718_00.html
- 158 page views
- title: 日本の運転免許証が失効してしまったときの再取得の手続きについて
- Computer___Python/20220518_0.html
- 131 page views
- title: Matplotlib で作る図の縦横比
- Computer___Network/20220413_1.html
- 129 page views
- title: HTML 文書の中の一部の文字を点滅させる方法
- Misc___Japan/20240610_00.html
- 129 page views
- title: NHK ラジオの「聞き逃し」の変更点 (2024 年 06 月)
- Computer___Python/20240101_00.html
- 128 page views
- title: Matplotlib の 3D plot においての注意点
- Computer___NetBSD/20250113_00.html
- 127 page views
- title: TigerVNC での X server の解像度の指定について
- Computer___NetBSD/20240805_03.html
- 127 page views
- title: NetBSD 10 のインストール
- Computer___Python/20220715_0.html
- 123 page views
- title: SciPy による最小二乗法
- Computer___NetBSD/20220818_1.html
- 123 page views
- title: Emacs の markdown-mode について
- Computer___NetBSD/20241102_00.html
- 119 page views
- title: ImageMagick の convert コマンドについて
- Computer___Hardware/20240820_00.html
- 117 page views
- title: Raspberry Pi 5 の演算性能
- Computer___NetBSD/20250409_00.html
- 117 page views
- title: Raspberry Pi 5 に NetBSD-10.1 をインストールする手順
- Computer___NetBSD/20240810_00.html
- 116 page views
- title: Raspberry Pi 5 に NetBSD-10 をインストールしてみた
HTML file generated by Kinoshita Daisuke.