- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
761 :132人目の素数さん[]:2017/12/05(火) 15:46:46.41 ID:+EWjrhnp - >>760
\myvert みたいにしてしまうことも出来るが、\vert を独自マクロに書き換える事も出来るし、 文字「|」をマクロみたいにTeXに扱わせることが出来る (文字「|」を、「制御綴り control sequence」のようにTeXが解釈するようにする 事も出来るということ)。 左の括弧が始まる時に、括弧の大きさを変数に入れておけば、真ん中の棒を その変数に合わせたサイズにしてしまうことを、やろうと思えば出来る。 集合の記号とは少し違うが、本質的に同じ事をやっているのが、\Braket マクロ。 platex でも、braket.sty で使える。 マクロ名を何も書かないで、{・・・} と書くと、中の部分は、C言語のローカル変数の スコープのような感じになる。そこで変数を定義すると、ローカル変数のようになり、 外部には漏れない。だから、その変数の値で、真ん中の棒の大きさを変える事が出来るはず。 左括弧のマクロの定義部分に、\bgroupを書き、 右括弧のマクロの定義部分に、\egroupを書けば、そのような事が出来ると思われる。 大きさを取得するには、\setbox0=\hbox{・・・} として、\ht0 とすると、・・・ の部分の高さが 取得できるハズ。これを利用すると、括弧の大きさを自動選択することも出来ると思われる。 \newbox\toto として、\setbox\toto とすると、0 以外の番号を自動的にアロケートできる。 番号は、0〜255が使える。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
762 :132人目の素数さん[]:2017/12/05(火) 15:55:12.04 ID:+EWjrhnp - 試してないけど、
\hbox{A\vruleB} とすると、AやBに合わせて縦棒が表示されるかも知れない。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
763 :132人目の素数さん[]:2017/12/05(火) 16:04:51.49 ID:+EWjrhnp - >>760
試しに、 \begin{align} \hbox{\Bigg\{ A \vrule B \Bigg\}} \end{align} としてみたところ、\vrule の部分が、左右の括弧と同じ大きさになって表示される 事が分かった。 大体の理由は、\vrule は、縦棒を「目いっぱい」引くようなコマンドで、その 「目いっぱい」の長さは、自分が含まれている「ボックス」によって決まるから、 という事らしい。 \hbox は、水平ボックスを作るコマンド。今の場合、大きさを明示して無いので 中に入っているオブジェクトの大きさになる。 \vrule自体はボックスの大きさに影響を与えない。自分がボックスの長さにまで伸びる。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
765 :132人目の素数さん[]:2017/12/05(火) 16:22:52.31 ID:+EWjrhnp - >>760
\begin{align} \left\{ x \, \vrule \, x > \frac{1}{2} \right\} \end{align} とすると、まず、分数の \frac{1}{2} の高さに合わせて、左右の中括弧の 大きさが自動的に決定される。この場合、分数が大きいので、 大き目な中括弧になる。 そして、\vrule は、中括弧の高さにあわせた縦棒に表示される。 実際にやってみると、数学の教科書と余り変わらないような表示になった。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
767 :132人目の素数さん[]:2017/12/05(火) 18:17:30.27 ID:+EWjrhnp - >>760
こういうものも見つけた: Manually controlled size of delimiters in macros: https://tex.stackexchange.com/questions/102888/manually-controlled-size-of-delimiters-in-macros Arbitrary \left \right delimiters: https://tex.stackexchange.com/questions/251999/arbitrary-left-right-delimiters
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
768 :132人目の素数さん[]:2017/12/05(火) 18:43:57.43 ID:+EWjrhnp - >>760
mathtoolsのドキュメント: http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/mathtools/mathtools.pdf のp.24に、量子力学の bracket について、 \DeclarePairedDelimiterX\braket[3]{\langle}{\rangle}% {#1\,\delimsize\vert\,\mathopen{}#2\,\delimsize\vert\,\mathopen{}#3} という例が出ている。 \braket[\Big]{B}{\sum_{k} f_k}{C} のように使う。引数の個数 [3] に対応した、{B}{\sum_{k} f_k}{C} が 3 つの引数。 マクロ中で、\delimsize が、括弧の大きさに展開されるらしい。 出力結果は: <B|\sum_k f_k|C> みたいになる。 なお、マクロ展開時、明示的に書かなくても、 \langle、\rangle の直前に、\Big などが自動的に付くらしい。 \delimsize\vert の部分は、\Big\vert のようになるらしい。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
769 :132人目の素数さん[]:2017/12/05(火) 18:58:48.42 ID:+EWjrhnp - >>760
あと、>>767 の1つ目のリンク先に \newcommand\set[3]{\csname #3l\endcsname\{#1% \,\csname#3\endcsname\vert\,% #2\csname #3r\endcsname\}} というやり方が出ている。 使用時は、 \set{A}{B}{\Big} のようにすると、 \Bigl\{ A \Big\vert B \Bigr\} のように展開される。出力結果は、{, |, } の3つとも高さが 「\Big」 で、 { A | B } となる。 \csname, \endcsname は、囲まれた部分が、マクロ展開された後に、 制御綴り (=マクロ名) と解釈される。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
770 :132人目の素数さん[]:2017/12/05(火) 19:39:56.31 ID:+EWjrhnp - 話は変わって、\cancel マクロは、platexでも使える。
でも、TeXは、「傾斜した直線」は「苦手」とされているのに、 どうやって斜めの直線を引いているのかとても疑問。 cancel.styを見てみても、 グラフィックを扱える picture環境などは 全く使われていない。 実装では、割り算や掛け算をしているように見えるので、直線を自前で描いて いる可能性がある。となると、繰り返しが必要だが、TeXで「繰り返し」を行 えそうなコマンドとしては、\repeatや、\leaders があるが、それらは 全く使われていない。 残りの可能性としては、C言語の関数の再帰呼び出しに似たような 「再帰マクロ展開(呼び出し?)」を使っている可能性。 それはじっくりコード(?)を解析しないと分からないので、良く分からなくなった。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
771 :132人目の素数さん[]:2017/12/05(火) 19:43:11.89 ID:+EWjrhnp - % #3, #4 vector direction
% #5 vector width \vector(#3,#4){#5} というコマンドが使われているのが気になる。 \vectorコマンドは、cancel.styでは定義されていないようだ。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
773 :132人目の素数さん[]:2017/12/05(火) 23:40:56.81 ID:+EWjrhnp - >>772
http://d.hatena.ne.jp/zrbabbler/20120411/1334151482 1. \middle\mid とすることは出来ない。 2. 代わりに \middle| と書くと、これは「関係演算子」の扱いにならないので失敗してしまう。 とある。
|
- \section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net
774 :132人目の素数さん[]:2017/12/05(火) 23:43:54.16 ID:+EWjrhnp - (オイラは、\middleについて良く理解してない)
|