Notebook
これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2024/11/21 17:40:55.112 (台灣標準時)
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: 2024/11/21 17:40:55.112 (Taiwan Standard Time)
Frequently accessed files
- Computer___Python/20220518_0.html
- 11253 page views
- title: Matplotlib で作る図の縦横比
- Computer___Network/20230726_00.html
- 4791 page views
- title: git の SSL certificate problem の解決方法
- Misc___Taiwan/20240207_00.html
- 3517 page views
- title: 台灣から台灣の外に EMS で荷物を発送する方法
- Computer___Network/20230516_00.html
- 3491 page views
- title: OpenVPN 2.6 を使い VPN Gate に接続するときの注意点
- Computer___FreeBSD/20220621_0.html
- 2871 page views
- title: FreeBSD での X.org の設定の仕方
- Computer___Python/20220715_0.html
- 2196 page views
- title: SciPy による最小二乗法
- Computer___Network/20230508_00.html
- 2018 page views
- title: git push するときにパスワードの入力を省略する方法
- Food___Taiwan/20220429_0.html
- 1939 page views
- title: 「楊滇風」の滇味辣炒豬
- Computer___NetBSD/20220817_3.html
- 1666 page views
- title: JupyterLab のインストール直後に行うべきこと
- Computer___Python/20220410_0.html
- 1660 page views
- title: Pint モジュールを使った単位を含む数値の取り扱い
- Computer___Network/20240416_00.html
- 1615 page views
- title: git push としたときの error: RPC failed
- Computer___Network/20240130_00.html
- 1599 page views
- title: Google Colaboratory で Python 3.12 を使う方法
- Computer___Debian/20210223_1.html
- 1556 page views
- title: Debian で autofs を使い自動で NFS マウントする方法
- Computer___NetBSD/20230119_00.html
- 1509 page views
- title: NetBSD でバイナリーパッケージを利用する方法
- Computer___Python/20210124_0.html
- 1478 page views
- title: Python での argparse を使ったコマンドライン引数の取り扱い方法
- Computer___Python/20221013_0.html
- 1469 page views
- title: Matplotlib での作図において順番を決めて点や線を描画する方法
- Computer___NetBSD/20220818_1.html
- 1429 page views
- title: Emacs の markdown-mode について
- Computer___NetBSD/20220428_0.html
- 1428 page views
- title: Beamer で verbatim 環境を使う方法
- Science___Math/20220420_0.html
- 1305 page views
- title: ラプラシアンの三次元極座標表示
- Computer___NetBSD/20240101_02.html
- 1290 page views
- title: ffmpeg を使って動画に音声を追加する方法
- Computer___NetBSD/20220808_0.html
- 1270 page views
- title: 端末エミュレーターで使うフォントを指定する方法
- Computer___TeX/20230503_00.html
- 1263 page views
- title: LaTeX CJK で日本語や中国語を取り扱うための準備について
- Computer___NetBSD/20230515_00.html
- 1257 page views
- title: pkgsrc の fetch phase で問題
- Science___Astronomy/20220503_0.html
- 1252 page views
- title: Lane-Emden 方程式を数値的に解く
- Computer___NetBSD/20210127_0.html
- 1236 page views
- title: NetBSD 上で Apache により HTTPS サーバを立ち上げる方法
- Computer___Python/20240101_00.html
- 1224 page views
- title: Matplotlib の 3D plot においての注意点
- Computer___Network/20220413_1.html
- 1198 page views
- title: HTML 文書の中の一部の文字を点滅させる方法
- Computer___Python/20220816_1.html
- 1146 page views
- title: Binder を使って Python スクリプトを実行する
- Computer___NetBSD/20210204_0.html
- 1135 page views
- title: Raspberry Pi 4 への NetBSD のインストール
- Travel___Taiwan/20220809_2.html
- 1125 page views
- title: 老鷹溪生態親子步道
HTML file generated by Kinoshita Daisuke.