命題

命題の逆、裏,対偶の関係を示す図です。

文字の表示位置,矢印の始点・終点をCinderellaの作図機能で作図します。それから,図を見ながらスクリプトを書きます。

なお,この図は,「KeTCindyによる図入り教材の作成」のページ https://www65.atwiki.jp/ketcindy/pages/22.html を参考にしています。

まず,逆,裏,対偶の文字を入れる場所に点をとります。

画面したの磁石ツール(グリッドにスナップする)をクリックしておいて,格子点にぴったり置けるようにします。位置はひとまず適当でよいでしょう。

次に,矢印の始点と終点および式を表示する位置です。この時点で各点の位置を調整しながら作図すればよいでしょう。作図順は問いません。下図の通りでなくてかまいません。

式を書く矩形は,中心と対角点で決めますので,対角点を4つとっておきます。この位置はスクリプトで決めるので,適当な位置に取っておけばよいでしょう。下図のハイライトしている点ですが,実際には4点が同時にハイライトするわけではありません。

この4点の位置を決めるスクリプトを書きます。

矩形は Ovaldata() で描くので,たとえば,P5を中心として,対角点P9をどこに置くかで

P9.xy=P5.xy+[0.8,0.4];

としています。0.8と0.4はあとで調整することもできます。

4点を配置したら,Ovaldataで矩形を描き,Expr() で式を書きます。

P9.xy=P5.xy+[0.8,0.4];

P10.xy=P6.xy+[0.8,0.4];

P11.xy=P7.xy+[0.8,0.4];

P12.xy=P8.xy+[0.8,0.4];

Fontsize("La");

Ovaldata("1",[P5,P9],[0]);

Expr([P5,"c","p\to q"]);

Ovaldata("2",[P6,P10],[0]);

Expr([P6,"c","q\to p"]);

Ovaldata("3",[P7,P11],[0]);

Expr([P7,"c","\overline{p}\to \overline{q}"]);

Ovaldata("4",[P8,P12],[0.1]);

Expr([P8,"c","\overline{q}\to \overline{p}"]);

画面上では文字の大きさが不明なので,これでひとまず書き出してみましょう。

矩形の大きさと文字のバランスをここで調整します。

文字の大きさは Fontsize("La"); としています。

次に文字と矢線です。

文字は

Letter([A,"c","対偶",E,"c","逆",D,"c","逆",B,"c","裏",C,"c","裏"]);

矢線はArrowdata() で書きますが,一つ書いたらコピーして中身を書き換えてもよいですが,次のようにすることもできます。

すなわち,矢線の始点、終点をセットにした12本分のリストを作っておき,forall() でまとめて表示するのです。forall() はCindyscriptの関数で,リストの要素を順に走査して処理をします。

allowlist=[[F,G],[L,M],[H,K],[N,O],[P,Q],[R,S],[T,U],[V,W],[X,Y],[P3,P4],[Z,P0],[P1,P2]];

forall(allowlist,Arrowdata(#,["Color=blue"]));

矢線はオプションで青に色指定をしています。

スクリプトの全体をあらためて示しましょう。

Texparent="fig";

Ketinit();

Addax(0);

Fontsize("La");

// 矩形の対角位置を調整

P9.xy=P5.xy+[0.8,0.4];

P10.xy=P6.xy+[0.8,0.4];

P11.xy=P7.xy+[0.8,0.4];

P12.xy=P8.xy+[0.8,0.4];

Ovaldata("1",[P5,P9],[0.1]);

Expr([P5,"c","p\to q"]);

Ovaldata("2",[P6,P10],[0.1]);

Expr([P6,"c","q\to p"]);

Ovaldata("3",[P7,P11],[0.1]);

Expr([P7,"c","\overline{p}\to \overline{q}"]);

Ovaldata("4",[P8,P12],[0.1]);

Expr([P8,"c","\overline{q}\to \overline{p}"]);

Letter([A,"c","対偶",E,"c","逆",D,"c","逆",B,"c","裏",C,"c","裏"]);

allowlist=[[F,G],[L,M],[H,K],[N,O],[P,Q],[R,S],[T,U],[V,W],[X,Y],[P3,P4],[Z,P0],[P1,P2]];

forall(allowlist,Arrowdata(#,["Color=blue"]));

Figpdf();

Windispg();