Re: [問題] \def展開時機
※ 引述《sppmg (sppmg)》之銘言:
: 試了很久,實在不理解\def的展開時機。
: \def\cmd{define} 之後,若將\cmd傳入其他指令,
: 是會在使用到當下展開(進行運算)其定義,
是的
: 還是說只有定義當下的值呢?(這好像不太合理)
: 我想要讓目錄中,一般章節的條目顯示為:「一、 目錄名」
: 但附錄要維持「A、 附錄名」
: 所以我在.cls中首先改寫\thecontentslabel 設定
: \gdef\thecontentslabel@chapter{
: \ifx\@chapapp\appendixname % 判斷 \appendix
: \appendixname\thecontentslabel、
: \else
: \zhnumber{\thecontentslabel}、
: \fi}
恕刪
問題是 \ifx\@chapapp\appendixname 永遠都是 false,因為你忘了 \expandafter,
所以 TeX 直接拿字串 \@chapapp\appendixname 去給\ifx比了,然後因為第一二個字
\ 和 @ 不一樣所以變成 false
改成 \expandafter\ifx\@chapapp\appendixname 便可以了
或者簡單點用 apptools 的 \ifappendix (TeX) 或 \IfAppendix (LaTeX)
而你好像只要 chapter numbering 從\arabic 變成 \zhnumber 已而,應該不用寫一個
cls 這麼麻煩吧?直接
\renewcommand\thechapter{\zhnumber{chapter}}
不行嗎?
--
『我思故我在』怎樣從法文變成拉丁文的:
je pense, donc je suis --- René Descartes, Discours de la Méthode (1637)
ego sum, ego existo --- ____, Meditationes de Prima Philosophia (1641)
ego cogito, ergo sum --- ____, Principia Philosophiae (1644)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.101.8
※ 文章網址: https://www.ptt.cc/bbs/LaTeX/M.1479880159.A.13F.html
推
11/23 15:46, , 1F
11/23 15:46, 1F
推
11/23 19:31, , 2F
11/23 19:31, 2F
→
11/23 19:33, , 3F
11/23 19:33, 3F
推
11/23 19:36, , 4F
11/23 19:36, 4F
→
11/23 19:37, , 5F
11/23 19:37, 5F
→
11/23 19:45, , 6F
11/23 19:45, 6F
→
11/23 19:46, , 7F
11/23 19:46, 7F
推
11/23 20:04, , 8F
11/23 20:04, 8F
→
11/23 20:07, , 9F
11/23 20:07, 9F
→
11/23 20:25, , 10F
11/23 20:25, 10F
討論串 (同標題文章)