トップページ > 数学 > 2017年12月05日 > +EWjrhnp

書き込み順位&時間帯一覧

3 位/81 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000000000022032000211



使用した名前一覧書き込んだスレッド一覧
132人目の素数さん
\section{TeX の時間} %%% 第 XI 節 %%% Part.2 [無断転載禁止]©2ch.net

書き込みレス一覧

\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について良く理解してない)


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。