summaryrefslogtreecommitdiff
path: root/macros/luatex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/luatex')
-rw-r--r--macros/luatex/generic/luaotfload/NEWS5
-rw-r--r--macros/luatex/generic/luaotfload/README.md4
-rw-r--r--macros/luatex/generic/luaotfload/filegraph.pdfbin40019 -> 40007 bytes
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-2022-10-03.lua (renamed from macros/luatex/generic/luaotfload/fontloader-2022-06-15.lua)287
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-font-cff.lua122
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-font-dsp.lua3
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-font-osd.lua18
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-l-math.lua14
-rw-r--r--macros/luatex/generic/luaotfload/fontloader-reference.lua141
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua61
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-bcp47.lua21
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-case.lua41
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-colors.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-conf.pdfbin77540 -> 77520 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-configuration.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-database.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-dvi.lua71
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-embolden.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-fallback.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-features.lua6
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-filelist.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-define.lua5
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua6
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-hashing.lua2
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-init.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-latex.pdfbin495247 -> 500170 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-letterspace.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-loaders.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-log.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-main.tex9
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-multiscript.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-notdef.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-parsers.lua8
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-resolvers.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-scripts.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-status.lua74
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-suppress.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-szss.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-t3.lua142
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.144
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.pdfbin76805 -> 76791 bytes
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tool.rst4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-tounicode.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload-unicode.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.528
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.conf.rst4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.lua4
-rw-r--r--macros/luatex/generic/luaotfload/luaotfload.sty2
-rw-r--r--macros/luatex/generic/luaotfload/scripts-demo.pdfbin19082 -> 21682 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo-graphite.pdfbin8560 -> 8562 bytes
-rw-r--r--macros/luatex/generic/luaotfload/shaper-demo.pdfbin8481 -> 8478 bytes
-rw-r--r--macros/luatex/latex/japanese-mathformulas/README.txt29
-rw-r--r--macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.pdfbin0 -> 132535 bytes
-rw-r--r--macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.tex275
-rw-r--r--macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.pdfbin0 -> 536610 bytes
-rw-r--r--macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.sty3779
-rw-r--r--macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.tex1867
-rw-r--r--macros/luatex/latex/letgut/README.md2
-rw-r--r--macros/luatex/latex/letgut/doc/letgut-banner-code.pdfbin154184 -> 154201 bytes
-rw-r--r--macros/luatex/latex/letgut/doc/letgut-code.pdfbin690506 -> 702257 bytes
-rw-r--r--macros/luatex/latex/letgut/doc/letgut.pdfbin366699 -> 379438 bytes
-rw-r--r--macros/luatex/latex/letgut/doc/letgut.tex136
-rw-r--r--macros/luatex/latex/letgut/doc/localconf.tex24
-rw-r--r--macros/luatex/latex/letgut/source/letgut.org523
70 files changed, 7252 insertions, 605 deletions
diff --git a/macros/luatex/generic/luaotfload/NEWS b/macros/luatex/generic/luaotfload/NEWS
index 289861f917..ab31f8c84c 100644
--- a/macros/luatex/generic/luaotfload/NEWS
+++ b/macros/luatex/generic/luaotfload/NEWS
@@ -1,5 +1,10 @@
Change History
--------------
+2022-10-03 luaotfload v3.23
+
+ * More reliable ToUnicode mappings in Harf mode
+ * Various bug fixes
+
2022-06-15 luaotfload v3.22
* Tailored case mappings
diff --git a/macros/luatex/generic/luaotfload/README.md b/macros/luatex/generic/luaotfload/README.md
index 4a1fa3a3b0..c325c4171e 100644
--- a/macros/luatex/generic/luaotfload/README.md
+++ b/macros/luatex/generic/luaotfload/README.md
@@ -1,8 +1,8 @@
# The Luaotfload Package
-VERSION: 3.22
+VERSION: 3.23
-DATE: 2022-06-15
+DATE: 2022-10-03
## Description
diff --git a/macros/luatex/generic/luaotfload/filegraph.pdf b/macros/luatex/generic/luaotfload/filegraph.pdf
index 07ccf2b986..79a370e2b1 100644
--- a/macros/luatex/generic/luaotfload/filegraph.pdf
+++ b/macros/luatex/generic/luaotfload/filegraph.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/fontloader-2022-06-15.lua b/macros/luatex/generic/luaotfload/fontloader-2022-10-03.lua
index 5e0af8e484..4df88ec41d 100644
--- a/macros/luatex/generic/luaotfload/fontloader-2022-06-15.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-2022-10-03.lua
@@ -1,6 +1,6 @@
--[[info-----------------------------------------------------------------------
Luaotfload fontloader package
- build 2022-06-15 18:33:10
+ build 2022-10-03 20:21:57
-------------------------------------------------------------------------------
© 2022 PRAGMA ADE / ConTeXt Development Team
@@ -63,7 +63,7 @@
--info]]-----------------------------------------------------------------------
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “data-con” 23a0f5386d46a1c157ae82a373e35fa0] ---
if not modules then modules={} end modules ['data-con']={
version=1.100,
@@ -184,10 +184,10 @@ function containers.cleanname(name)
return (gsub(lower(name),"[^%w\128-\255]+","-"))
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “data-con”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “data-con”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-nod” 1750af43148def9e7a75c6900a96f9dc] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “basics-nod” 1750af43148def9e7a75c6900a96f9dc] ---
if not modules then modules={} end modules ['luatex-fonts-nod']={
version=1.001,
@@ -454,10 +454,10 @@ do
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-nod”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “basics-nod”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-chr” ce4afac7ba19471f3c8f90800839f315] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “basics-chr” ce4afac7ba19471f3c8f90800839f315] ---
characters=characters or {}
@@ -4291,10 +4291,10 @@ characters.indicgroups={
},
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “basics-chr”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “basics-chr”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ini” 5343de60613adb24cdd7a8d2ee1d153c] ---
if not modules then modules={} end modules ['font-ini']={
version=1.001,
@@ -4335,10 +4335,10 @@ if node and not tex.getfontoffamily then
tex.getfontoffamily=node.family_font
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ini”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ini”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-mis” 17e967c9ec4d001deefd43ddf25e98f7] ---
if not modules then modules={} end modules ['luatex-font-mis']={
version=1.001,
@@ -4370,10 +4370,10 @@ function font.each()
return table.sortedhash(fonts.hashes.identifiers)
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-mis”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-mis”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-con” 724e5dd14aec2d4d189f8619898004cf] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-con” 724e5dd14aec2d4d189f8619898004cf] ---
if not modules then modules={} end modules ['font-con']={
version=1.001,
@@ -5741,10 +5741,10 @@ function constructors.addcoreunicodes(unicodes)
return unicodes
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-con”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-con”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-enc” c24fd6b4f34f87b9c4ff5e6193ce2656] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-enc” c24fd6b4f34f87b9c4ff5e6193ce2656] ---
if not modules then modules={} end modules ['luatex-font-enc']={
version=1.001,
@@ -5819,10 +5819,10 @@ function encodings.load(filename)
return containers.write(encodings.cache,name,data)
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-enc”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-enc”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-cid” 22b0367742fb253deef84ef7ccf5e8de] ---
if not modules then modules={} end modules ['font-cid']={
version=1.001,
@@ -5973,10 +5973,10 @@ function cid.getmap(specification)
return found
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cid”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-cid”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-map” 27ee748150e56f5f0e5f0fefc864f35e] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-map” 27ee748150e56f5f0e5f0fefc864f35e] ---
if not modules then modules={} end modules ['font-map']={
version=1.001,
@@ -6384,10 +6384,10 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-map”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-map”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-vfc” a81c29eda98cd62cbebdb6c93544b50d] ---
if not modules then modules={} end modules ['font-vfc']={
version=1.001,
@@ -6484,10 +6484,10 @@ helpers.commands=utilities.storage.allocate {
dummy=dummy,
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-vfc”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-vfc”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otr” 1896ac990a961f6d6fec551ca9b52a83] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otr” 1896ac990a961f6d6fec551ca9b52a83] ---
if not modules then modules={} end modules ['font-otr']={
version=1.001,
@@ -8331,10 +8331,10 @@ function readers.extend(fontdata)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otr”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otr”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oti” 309a75f9c14b77d87e94eba827dc4e71] ---
if not modules then modules={} end modules ['font-oti']={
version=1.001,
@@ -8477,10 +8477,10 @@ function otffeatures.checkeddefaultlanguage(featuretype,autolanguage,languages)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oti”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oti”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ott” 3f67b1b1d40bbc222681d8db4aff0f42] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ott” 3f67b1b1d40bbc222681d8db4aff0f42] ---
if not modules then modules={} end modules ["font-ott"]={
version=1.001,
@@ -9596,10 +9596,10 @@ function otffeatures.normalize(features,wrap)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ott”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ott”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cff” e38c1a40e1d1d577cdf7920fa50d0654] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-cff” 651c74e4804fbb85d31267210298f466] ---
if not modules then modules={} end modules ['font-cff']={
version=1.001,
@@ -10149,8 +10149,13 @@ local result={}
local justpass=false
local seacs={}
local procidx=nil
- local function showstate(where)
- report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ local function showstate(where,i,n)
+ if i then
+ local j=i+n-1
+ report("%w%-10s : [%s] step",depth*2+2,where,concat(stack," ",i,j<=top and j or top))
+ else
+ report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ end
end
local function showvalue(where,value,showstack)
if showstack then
@@ -10266,9 +10271,9 @@ local result={}
ymin=y
end
end
- local function xycurveto(x1,y1,x2,y2,x3,y3)
+ local function xycurveto(x1,y1,x2,y2,x3,y3,i,n)
if trace_charstrings then
- showstate("curveto")
+ showstate("curveto",i,n)
end
if keepcurve then
r=r+1
@@ -10405,6 +10410,15 @@ local result={}
if trace_charstrings then
showstate("rrcurveto")
end
+if top==6 then
+ local ax=x+stack[1]
+ local ay=y+stack[2]
+ local bx=ax+stack[3]
+ local by=ay+stack[4]
+ x=bx+stack[5]
+ y=by+stack[6]
+ xycurveto(ax,ay,bx,by,x,y,1,6)
+else
for i=1,top,6 do
local ax=x+stack[i]
local ay=y+stack[i+1]
@@ -10412,8 +10426,9 @@ local result={}
local by=ay+stack[i+3]
x=bx+stack[i+4]
y=by+stack[i+5]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
+end
top=0
end
local function hhcurveto()
@@ -10425,6 +10440,15 @@ local result={}
y=y+stack[1]
s=2
end
+if top==4 then
+ local ax=x+stack[1]
+ local ay=y
+ local bx=ax+stack[2]
+ local by=ay+stack[3]
+ x=bx+stack[4]
+ y=by
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=s,top,4 do
local ax=x+stack[i]
local ay=y
@@ -10432,8 +10456,9 @@ local result={}
local by=ay+stack[i+2]
x=bx+stack[i+3]
y=by
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top=0
end
local function vvcurveto()
@@ -10446,6 +10471,16 @@ local result={}
d=stack[1]
s=2
end
+if top==4 then
+ local ax=x+d
+ local ay=y+stack[1]
+ local bx=ax+stack[2]
+ local by=ay+stack[3]
+ x=bx
+ y=by+stack[4]
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+ d=0
+else
for i=s,top,4 do
local ax=x+d
local ay=y+stack[i]
@@ -10453,9 +10488,10 @@ local result={}
local by=ay+stack[i+2]
x=bx
y=by+stack[i+3]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
d=0
end
+end
top=0
end
local function xxcurveto(swap)
@@ -10463,6 +10499,33 @@ local result={}
if last then
top=top-1
end
+if top==4 then
+ local ax,ay,bx,by
+ if swap then
+ ax=x+stack[1]
+ ay=y
+ bx=ax+stack[2]
+ by=ay+stack[3]
+ y=by+stack[4]
+ if last then
+ x=bx+last
+ else
+ x=bx
+ end
+ else
+ ax=x
+ ay=y+stack[1]
+ bx=ax+stack[2]
+ by=ay+stack[3]
+ x=bx+stack[4]
+ if last then
+ y=by+last
+ else
+ y=by
+ end
+ end
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=1,top,4 do
local ax,ay,bx,by
if swap then
@@ -10490,8 +10553,9 @@ local result={}
end
swap=true
end
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top=0
end
local function hvcurveto()
@@ -10517,7 +10581,7 @@ local result={}
local by=ay+stack[i+3]
x=bx+stack[i+4]
y=by+stack[i+5]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
x=x+stack[top-1]
y=y+stack[top]
@@ -11661,26 +11725,35 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
end
end
else
+ report("unsupported fd index format %i",format)
end
if maxindex>=0 then
local cidarray=cid.fdarray
if cidarray then
setposition(f,header.offset+cidarray)
local dictionaries=readlengths(f,version=="cff2")
- for i=1,#dictionaries do
- dictionaries[i]=readstring(f,dictionaries[i])
- end
- parsedictionaries(data,dictionaries)
- cid.dictionaries=dictionaries
- readcidprivates(f,data)
- for i=1,#dictionaries do
- readlocals(f,data,dictionaries[i],version)
- end
- startparsing(fontdata,data,streams)
- for i=1,#charstrings do
- parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version,streams)
+ if #dictionaries>0 then
+ for i=1,#dictionaries do
+ dictionaries[i]=readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries=dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i],version)
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ local dictionary=dictionaries[fdindex[i]+1]
+ if dictionary then
+ parsecharstring(fontdata,data,dictionary,charstrings[i],glyphs,i,doshapes,version,streams)
+ else
+ end
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no cid dictionaries")
end
- stopparsing(fontdata,data)
else
report("no cid array")
end
@@ -11828,10 +11901,10 @@ function readers.cffcheck(filename)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-cff”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-cff”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ttf” a3ff07150b3535fd32f68748d53fcd36] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ttf” a3ff07150b3535fd32f68748d53fcd36] ---
if not modules then modules={} end modules ['font-ttf']={
version=1.001,
@@ -13091,10 +13164,10 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ttf”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ttf”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-dsp” 4935e6605ffd7bf57e66f0b6c132f883] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-dsp” 23a82ec8fdb9f226427e78904402e48a] ---
if not modules then modules={} end modules ['font-dsp']={
version=1.001,
@@ -16372,10 +16445,10 @@ function readers.mvar(f,fontdata,specification)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-dsp”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-dsp”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oup” 76dc3379061e5650f772909966b5759e] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oup” 76dc3379061e5650f772909966b5759e] ---
if not modules then modules={} end modules ['font-oup']={
version=1.001,
@@ -19213,10 +19286,10 @@ end
expandlookups(sublookups,sequences)
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oup”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oup”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otl” 308b1aab04bc131da7eb8e8c3b0471d4] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otl” 308b1aab04bc131da7eb8e8c3b0471d4] ---
if not modules then modules={} end modules ['font-otl']={
version=1.001,
@@ -19944,10 +20017,10 @@ otf.coverup={
end
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otl”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otl”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oto” 9febc4d75d17a543cd73fb17918f7307] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oto” 9febc4d75d17a543cd73fb17918f7307] ---
if not modules then modules={} end modules ['font-oto']={
version=1.001,
@@ -20416,10 +20489,10 @@ registerotffeature {
}
otf.basemodeinitializer=featuresinitializer
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-oto”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-oto”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otj” b2c165bd6771a57633f992d07384b739] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otj” b2c165bd6771a57633f992d07384b739] ---
if not modules then modules={} end modules ['font-otj']={
version=1.001,
@@ -21912,10 +21985,10 @@ function injections.handler(head,where)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otj”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otj”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ota” 2bb12d708e35bc05443eba791e2554e7] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ota” 2bb12d708e35bc05443eba791e2554e7] ---
if not modules then modules={} end modules ['font-ota']={
version=1.001,
@@ -22409,10 +22482,10 @@ directives.register("otf.analyze.useunicodemarks",function(v)
analyzers.useunicodemarks=v
end)
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ota”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ota”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ots” 55316a605d11a1d07d38795224c90a63] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ots” 55316a605d11a1d07d38795224c90a63] ---
if not modules then modules={} end modules ['font-ots']={
version=1.001,
@@ -26072,10 +26145,10 @@ registerotffeature {
},
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ots”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ots”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-osd” 9b5337b0051b8e42b6c8329127c59794] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-osd” 1716513d8fe5f28e0e88daad2be0e05b] ---
if not modules then modules={} end modules ['font-osd']={
version=1.001,
@@ -26084,14 +26157,6 @@ if not modules then modules={} end modules ['font-osd']={
copyright="TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
-local experiment1=false
-local experiment2=false
-local experiment2b1=false
-local experiment2b2=false
-experiments.register("fonts.indic.experiment1",function(v) experiment1=v end)
-experiments.register("fonts.indic.experiment2",function(v) experiment2=v end)
-experiments.register("fonts.indic.experiment2b1",function(v) experiment2b1=v end)
-experiments.register("fonts.indic.experiment2b2",function(v) experiment2b2=v end)
local insert,remove,imerge,copy,tohash=table.insert,table.remove,table.imerge,table.copy,table.tohash
local next,type,rawget=next,type,rawget
local formatters=string.formatters
@@ -28716,10 +28781,10 @@ for i=1,nofscripts do
methods[scripts_two[i]]=method_two
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-osd”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-osd”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ocl” 2a377351ae23c339764ec8ce2e8e9164] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ocl” 2a377351ae23c339764ec8ce2e8e9164] ---
if not modules then modules={} end modules ['font-ocl']={
version=1.001,
@@ -29267,10 +29332,10 @@ if context then
}
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-ocl”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-ocl”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otc” 57f5270b894e40efa93149c7d3fb0209] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otc” 57f5270b894e40efa93149c7d3fb0209] ---
if not modules then modules={} end modules ['font-otc']={
version=1.001,
@@ -30094,10 +30159,10 @@ end
otf.enhancers.enhance=enhance
otf.enhancers.register("check extra features",enhance)
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-otc”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-otc”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-onr” 6d161533f3437435e12a0ad64866df44] ---
if not modules then modules={} end modules ['font-onr']={
version=1.001,
@@ -30470,10 +30535,10 @@ function readers.getinfo(filename)
end
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-onr”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-onr”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-one” bd39d42055a44ca2002f8ddbbbbf27c3] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-one” bd39d42055a44ca2002f8ddbbbbf27c3] ---
if not modules then modules={} end modules ['font-one']={
version=1.001,
@@ -31188,10 +31253,10 @@ registerafmenhancer("normalize features",enhance_normalize_features)
registerafmenhancer("check extra features",otfenhancers.enhance)
registerafmenhancer("fix names",enhance_fix_names)
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-one”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-one”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-afk” 9da14e0fb22129c053acc599d1312544] ---
if not modules then modules={} end modules ['font-afk']={
version=1.001,
@@ -31358,10 +31423,10 @@ fonts.handlers.afm.helpdata={
}
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-afk”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-afk”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-tfm” f0eb5e2a8068b17ad401bb7efdba1630] ---
if not modules then modules={} end modules ['luatex-fonts-tfm']={
version=1.001,
@@ -31876,10 +31941,10 @@ registertfmfeature {
}
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-tfm”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-tfm”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-lua” 1fbfdf7b689b2bdfd0e3bb9bf74ce136] ---
if not modules then modules={} end modules ['font-lua']={
version=1.001,
@@ -31919,10 +31984,10 @@ function readers.lua(specification)
return check_lua(specification,fullname)
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-lua”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-lua”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-def” b9d908c2338b7dc443ce9d1e9fcb7139] ---
if not modules then modules={} end modules ['font-def']={
version=1.001,
@@ -32322,10 +32387,10 @@ if not context then
callbacks.register('define_font',definers.read,"definition of fonts (tfmdata preparation)")
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-def”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-def”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-shp” a40862fe382d26c1f3753431254bcfdd] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-shp” a40862fe382d26c1f3753431254bcfdd] ---
if not modules then modules={} end modules ['font-shp']={
version=1.001,
@@ -32690,10 +32755,10 @@ callback.register("glyph_stream_provider",function(id,index,mode)
return ""
end)
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-shp”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-shp”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-def” f435e0875f203f343157baeff876ec9c] ---
if not modules then modules={} end modules ['luatex-fonts-def']={
version=1.001,
@@ -32774,10 +32839,10 @@ function fonts.definers.applypostprocessors(tfmdata)
return tfmdata
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-def”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-def”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-ext” 32013cbc5d5d336be8b1d1e5879d86c4] ---
if not modules then modules={} end modules ['luatex-fonts-ext']={
version=1.001,
@@ -32963,10 +33028,10 @@ registerotffeature {
}
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-ext”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-ext”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-tex” ceb087ef6fa2f89aed7179f60ddf8f35] ---
if not modules then modules={} end modules ['font-imp-tex']={
version=1.001,
@@ -33065,10 +33130,10 @@ registerotffeature {
description="arabic digits",
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-tex”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-tex”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-ligatures” 250f6f4488ee770c23177afb2ff75676] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-ligatures” 250f6f4488ee770c23177afb2ff75676] ---
if not modules then modules={} end modules ['font-imp-ligatures']={
version=1.001,
@@ -33182,10 +33247,10 @@ if context then
}
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-ligatures”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-ligatures”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-italics” defcb415bc1e0a0999b27773902adc18] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-italics” defcb415bc1e0a0999b27773902adc18] ---
if not modules then modules={} end modules ['font-imp-italics']={
version=1.001,
@@ -33289,10 +33354,10 @@ if context then
registerafmfeature(dimensions_specification)
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-italics”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-italics”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-effects” d05997c1826355548ec9aec1346f9f23] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-effects” d05997c1826355548ec9aec1346f9f23] ---
if not modules then modules={} end modules ['font-imp-effects']={
version=1.001,
@@ -33649,10 +33714,10 @@ local specification={
registerotffeature(specification)
registerafmfeature(specification)
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “font-imp-effects”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “font-imp-effects”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-lig” fbd251eea3810a43a8d5542319361d68] ---
fonts.handlers.otf.addfeature {
@@ -35721,10 +35786,10 @@ fonts.handlers.otf.addfeature {
["type"]="ligature",
}
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-lig”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-lig”] ---
-do --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-gbn” 34e4543a02f6fbc8c2ade896cb6dc7df] ---
+do --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-gbn” 34e4543a02f6fbc8c2ade896cb6dc7df] ---
if not modules then modules={} end modules ['luatex-fonts-gbn']={
version=1.001,
@@ -35989,7 +36054,7 @@ function nodes.simple_font_handler(head,groupcode,size,packtype,direction)
return head
end
-end --- [luaotfload, fontloader-2022-06-15.lua scope for “fonts-gbn”] ---
+end --- [luaotfload, fontloader-2022-10-03.lua scope for “fonts-gbn”] ---
--- vim:ft=lua:sw=2:ts=8:et:tw=79
diff --git a/macros/luatex/generic/luaotfload/fontloader-font-cff.lua b/macros/luatex/generic/luaotfload/fontloader-font-cff.lua
index 4258991c67..114d7dd079 100644
--- a/macros/luatex/generic/luaotfload/fontloader-font-cff.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-font-cff.lua
@@ -735,8 +735,13 @@ local result = { }
local seacs = { }
local procidx = nil
- local function showstate(where)
- report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ local function showstate(where,i,n)
+ if i then
+ local j = i + n - 1
+ report("%w%-10s : [%s] step",depth*2+2,where,concat(stack," ",i,j <= top and j or top))
+ else
+ report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ end
end
local function showvalue(where,value,showstack)
@@ -873,9 +878,9 @@ local result = { }
end
end
- local function xycurveto(x1,y1,x2,y2,x3,y3) -- called local so no blend here
+ local function xycurveto(x1,y1,x2,y2,x3,y3,i,n) -- called local so no blend here
if trace_charstrings then
- showstate("curveto")
+ showstate("curveto",i,n)
end
if keepcurve then
r = r + 1
@@ -1019,6 +1024,16 @@ local result = { }
if trace_charstrings then
showstate("rrcurveto")
end
+if top == 6 then
+ local ax = x + stack[1] -- dxa
+ local ay = y + stack[2] -- dya
+ local bx = ax + stack[3] -- dxb
+ local by = ay + stack[4] -- dyb
+ x = bx + stack[5] -- dxc
+ y = by + stack[6] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,6)
+else
+-- print("rr",top==6,top)
for i=1,top,6 do
local ax = x + stack[i] -- dxa
local ay = y + stack[i+1] -- dya
@@ -1026,8 +1041,9 @@ local result = { }
local by = ay + stack[i+3] -- dyb
x = bx + stack[i+4] -- dxc
y = by + stack[i+5] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
+end
top = 0
end
@@ -1040,6 +1056,15 @@ local result = { }
y = y + stack[1] -- dy1
s = 2
end
+if top == 4 then
+ local ax = x + stack[1] -- dxa
+ local ay = y
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx + stack[4] -- dxc
+ y = by
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=s,top,4 do
local ax = x + stack[i] -- dxa
local ay = y
@@ -1047,8 +1072,9 @@ local result = { }
local by = ay + stack[i+2] -- dyb
x = bx + stack[i+3] -- dxc
y = by
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top = 0
end
@@ -1062,6 +1088,16 @@ local result = { }
d = stack[1] -- dx1
s = 2
end
+if top == 4 then
+ local ax = x + d
+ local ay = y + stack[1] -- dya
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx
+ y = by + stack[4] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+ d = 0
+else
for i=s,top,4 do
local ax = x + d
local ay = y + stack[i] -- dya
@@ -1069,9 +1105,10 @@ local result = { }
local by = ay + stack[i+2] -- dyb
x = bx
y = by + stack[i+3] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
d = 0
end
+end
top = 0
end
@@ -1080,6 +1117,33 @@ local result = { }
if last then
top = top - 1
end
+if top == 4 then
+ local ax, ay, bx, by
+ if swap then
+ ax = x + stack[1]
+ ay = y
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ y = by + stack[4]
+ if last then
+ x = bx + last
+ else
+ x = bx
+ end
+ else
+ ax = x
+ ay = y + stack[1]
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ x = bx + stack[4]
+ if last then
+ y = by + last
+ else
+ y = by
+ end
+ end
+ xycurveto(ax,ay,bx,by,x,y,1 ,4)
+else
for i=1,top,4 do
local ax, ay, bx, by
if swap then
@@ -1107,8 +1171,9 @@ local result = { }
end
swap = true
end
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top = 0
end
@@ -1137,7 +1202,7 @@ local result = { }
local by = ay + stack[i+3] -- dyb
x = bx + stack[i+4] -- dxc
y = by + stack[i+5] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
x = x + stack[top-1] -- dxc
y = y + stack[top] -- dyc
@@ -2531,7 +2596,7 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
end
end
else
- -- unsupported format
+ report("unsupported fd index format %i",format)
end
-- hm, always
if maxindex >= 0 then
@@ -2539,21 +2604,30 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
if cidarray then
setposition(f,header.offset+cidarray)
local dictionaries = readlengths(f,version == "cff2")
- for i=1,#dictionaries do
- dictionaries[i] = readstring(f,dictionaries[i])
- end
- parsedictionaries(data,dictionaries)
- cid.dictionaries = dictionaries
- readcidprivates(f,data)
- for i=1,#dictionaries do
- readlocals(f,data,dictionaries[i],version)
- end
- startparsing(fontdata,data,streams)
- for i=1,#charstrings do
- parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version,streams)
--- charstrings[i] = nil
+ if #dictionaries > 0 then
+ for i=1,#dictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries = dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i],version)
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ local dictionary = dictionaries[fdindex[i]+1]
+ if dictionary then
+ parsecharstring(fontdata,data,dictionary,charstrings[i],glyphs,i,doshapes,version,streams)
+ else
+ -- report("no dictionary for %a : %a => %a",version,i,fdindex[i]+1)
+ end
+ -- charstrings[i] = false
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no cid dictionaries")
end
- stopparsing(fontdata,data)
else
report("no cid array")
end
diff --git a/macros/luatex/generic/luaotfload/fontloader-font-dsp.lua b/macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
index d036783284..8f65ed9d94 100644
--- a/macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-font-dsp.lua
@@ -2515,6 +2515,8 @@ do
local scriptoffset = tableoffset + readushort(f)
local featureoffset = tableoffset + readushort(f)
local lookupoffset = tableoffset + readushort(f)
+ -- MFK : Rubik-Regular.ttf : we need to delay adding the offset
+ -- local variationsoffset = version > 0x00010000 and (tableoffset + readulong(f)) or 0
local variationsoffset = version > 0x00010000 and readulong(f) or 0
if not scriptoffset then
return
@@ -2541,6 +2543,7 @@ do
end
--
if variationsoffset > 0 then
+ -- loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
loadvariations(f,fontdata,tableoffset + variationsoffset,lookuptypes,featurehash,featureorder)
end
end
diff --git a/macros/luatex/generic/luaotfload/fontloader-font-osd.lua b/macros/luatex/generic/luaotfload/fontloader-font-osd.lua
index d169faf64d..ecf8009f91 100644
--- a/macros/luatex/generic/luaotfload/fontloader-font-osd.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-font-osd.lua
@@ -6,15 +6,15 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
license = "see context related readme files"
}
-local experiment1 = false
-local experiment2 = false
-local experiment2b1 = false
-local experiment2b2 = false
-
-experiments.register("fonts.indic.experiment1", function(v) experiment1 = v end)
-experiments.register("fonts.indic.experiment2", function(v) experiment2 = v end)
-experiments.register("fonts.indic.experiment2b1", function(v) experiment2b1 = v end)
-experiments.register("fonts.indic.experiment2b2", function(v) experiment2b2 = v end)
+-- local experiment1 = false
+-- local experiment2 = false
+-- local experiment2b1 = false
+-- local experiment2b2 = false
+
+-- experiments.register("fonts.indic.experiment1", function(v) experiment1 = v end)
+-- experiments.register("fonts.indic.experiment2", function(v) experiment2 = v end)
+-- experiments.register("fonts.indic.experiment2b1", function(v) experiment2b1 = v end)
+-- experiments.register("fonts.indic.experiment2b2", function(v) experiment2b2 = v end)
-- we need to check nbsphash (context only)
diff --git a/macros/luatex/generic/luaotfload/fontloader-l-math.lua b/macros/luatex/generic/luaotfload/fontloader-l-math.lua
index 69f0a19e98..6105bc3c2d 100644
--- a/macros/luatex/generic/luaotfload/fontloader-l-math.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-l-math.lua
@@ -14,9 +14,19 @@ end
if not math.round then
- local floor = math.floor
+ if xmath then
+
+ math.round = xmath.round
+
+ else
- function math.round(x) return floor(x + 0.5) end
+ local floor = math.floor
+
+ function math.round(x)
+ return x < 0 and -floor(-x + 0.5) or floor(x + 0.5)
+ end
+
+ end
end
diff --git a/macros/luatex/generic/luaotfload/fontloader-reference.lua b/macros/luatex/generic/luaotfload/fontloader-reference.lua
index 13389b292a..c539d886cc 100644
--- a/macros/luatex/generic/luaotfload/fontloader-reference.lua
+++ b/macros/luatex/generic/luaotfload/fontloader-reference.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 2022-05-11 11:34
+-- merge date : 2022-09-16 14:39
do -- begin closure to overcome local limits and interference
@@ -3031,8 +3031,14 @@ if not math.ceiling then
math.ceiling=math.ceil
end
if not math.round then
- local floor=math.floor
- function math.round(x) return floor(x+0.5) end
+ if xmath then
+ math.round=xmath.round
+ else
+ local floor=math.floor
+ function math.round(x)
+ return x<0 and -floor(-x+0.5) or floor(x+0.5)
+ end
+ end
end
if not math.div then
local floor=math.floor
@@ -13696,8 +13702,13 @@ local result={}
local justpass=false
local seacs={}
local procidx=nil
- local function showstate(where)
- report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ local function showstate(where,i,n)
+ if i then
+ local j=i+n-1
+ report("%w%-10s : [%s] step",depth*2+2,where,concat(stack," ",i,j<=top and j or top))
+ else
+ report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ end
end
local function showvalue(where,value,showstack)
if showstack then
@@ -13813,9 +13824,9 @@ local result={}
ymin=y
end
end
- local function xycurveto(x1,y1,x2,y2,x3,y3)
+ local function xycurveto(x1,y1,x2,y2,x3,y3,i,n)
if trace_charstrings then
- showstate("curveto")
+ showstate("curveto",i,n)
end
if keepcurve then
r=r+1
@@ -13952,6 +13963,15 @@ local result={}
if trace_charstrings then
showstate("rrcurveto")
end
+if top==6 then
+ local ax=x+stack[1]
+ local ay=y+stack[2]
+ local bx=ax+stack[3]
+ local by=ay+stack[4]
+ x=bx+stack[5]
+ y=by+stack[6]
+ xycurveto(ax,ay,bx,by,x,y,1,6)
+else
for i=1,top,6 do
local ax=x+stack[i]
local ay=y+stack[i+1]
@@ -13959,8 +13979,9 @@ local result={}
local by=ay+stack[i+3]
x=bx+stack[i+4]
y=by+stack[i+5]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
+end
top=0
end
local function hhcurveto()
@@ -13972,6 +13993,15 @@ local result={}
y=y+stack[1]
s=2
end
+if top==4 then
+ local ax=x+stack[1]
+ local ay=y
+ local bx=ax+stack[2]
+ local by=ay+stack[3]
+ x=bx+stack[4]
+ y=by
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=s,top,4 do
local ax=x+stack[i]
local ay=y
@@ -13979,8 +14009,9 @@ local result={}
local by=ay+stack[i+2]
x=bx+stack[i+3]
y=by
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top=0
end
local function vvcurveto()
@@ -13993,6 +14024,16 @@ local result={}
d=stack[1]
s=2
end
+if top==4 then
+ local ax=x+d
+ local ay=y+stack[1]
+ local bx=ax+stack[2]
+ local by=ay+stack[3]
+ x=bx
+ y=by+stack[4]
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+ d=0
+else
for i=s,top,4 do
local ax=x+d
local ay=y+stack[i]
@@ -14000,9 +14041,10 @@ local result={}
local by=ay+stack[i+2]
x=bx
y=by+stack[i+3]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
d=0
end
+end
top=0
end
local function xxcurveto(swap)
@@ -14010,6 +14052,33 @@ local result={}
if last then
top=top-1
end
+if top==4 then
+ local ax,ay,bx,by
+ if swap then
+ ax=x+stack[1]
+ ay=y
+ bx=ax+stack[2]
+ by=ay+stack[3]
+ y=by+stack[4]
+ if last then
+ x=bx+last
+ else
+ x=bx
+ end
+ else
+ ax=x
+ ay=y+stack[1]
+ bx=ax+stack[2]
+ by=ay+stack[3]
+ x=bx+stack[4]
+ if last then
+ y=by+last
+ else
+ y=by
+ end
+ end
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=1,top,4 do
local ax,ay,bx,by
if swap then
@@ -14037,8 +14106,9 @@ local result={}
end
swap=true
end
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top=0
end
local function hvcurveto()
@@ -14064,7 +14134,7 @@ local result={}
local by=ay+stack[i+3]
x=bx+stack[i+4]
y=by+stack[i+5]
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
x=x+stack[top-1]
y=y+stack[top]
@@ -15208,26 +15278,35 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
end
end
else
+ report("unsupported fd index format %i",format)
end
if maxindex>=0 then
local cidarray=cid.fdarray
if cidarray then
setposition(f,header.offset+cidarray)
local dictionaries=readlengths(f,version=="cff2")
- for i=1,#dictionaries do
- dictionaries[i]=readstring(f,dictionaries[i])
- end
- parsedictionaries(data,dictionaries)
- cid.dictionaries=dictionaries
- readcidprivates(f,data)
- for i=1,#dictionaries do
- readlocals(f,data,dictionaries[i],version)
- end
- startparsing(fontdata,data,streams)
- for i=1,#charstrings do
- parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version,streams)
+ if #dictionaries>0 then
+ for i=1,#dictionaries do
+ dictionaries[i]=readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries=dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i],version)
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ local dictionary=dictionaries[fdindex[i]+1]
+ if dictionary then
+ parsecharstring(fontdata,data,dictionary,charstrings[i],glyphs,i,doshapes,version,streams)
+ else
+ end
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no cid dictionaries")
end
- stopparsing(fontdata,data)
else
report("no cid array")
end
@@ -18685,7 +18764,7 @@ do
local scriptoffset=tableoffset+readushort(f)
local featureoffset=tableoffset+readushort(f)
local lookupoffset=tableoffset+readushort(f)
- local variationsoffset=version>0x00010000 and (tableoffset+readulong(f)) or 0
+ local variationsoffset=version>0x00010000 and readulong(f) or 0
if not scriptoffset then
return
end
@@ -18705,7 +18784,7 @@ do
resolvelookups(f,lookupoffset,fontdata,lookups,lookuptypes,lookuphandlers,what,tableoffset)
end
if variationsoffset>0 then
- loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+ loadvariations(f,fontdata,tableoffset+variationsoffset,lookuptypes,featurehash,featureorder)
end
end
end
@@ -31706,14 +31785,6 @@ if not modules then modules={} end modules ['font-osd']={
copyright="TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
license="see context related readme files"
}
-local experiment1=false
-local experiment2=false
-local experiment2b1=false
-local experiment2b2=false
-experiments.register("fonts.indic.experiment1",function(v) experiment1=v end)
-experiments.register("fonts.indic.experiment2",function(v) experiment2=v end)
-experiments.register("fonts.indic.experiment2b1",function(v) experiment2b1=v end)
-experiments.register("fonts.indic.experiment2b2",function(v) experiment2b2=v end)
local insert,remove,imerge,copy,tohash=table.insert,table.remove,table.imerge,table.copy,table.tohash
local next,type,rawget=next,type,rawget
local formatters=string.formatters
diff --git a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
index eb21180902..bcbdd74b2a 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-auxiliary.lua
@@ -4,10 +4,10 @@
-- AUTHOR: Khaled Hosny, Élie Roux, Philipp Gesang
-----------------------------------------------------------------------
-assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
+assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-auxiliary",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / auxiliary functions",
license = "GPL v2.0"
}
@@ -584,6 +584,61 @@ function aux.provides_language(font_id, asked_script, asked_language)
end
--[[doc--
+A function to check if a font is a variabe font with a given axis.
+--doc]]--
+
+function aux.provides_axis(font_id, asked_axis)
+ if not font_id or type (font_id) ~= "number"
+ or not asked_axis or type (asked_axis) ~= "string"
+ then
+ logreport ("both", 0, "aux",
+ "invalid parameters to provides_axis(%s, %s)",
+ tostring (font_id), tostring (asked_axis))
+ return false
+ end
+ local tfmdata = identifiers[font_id]
+ if not tfmdata then
+ logreport ("log", 0, "aux", "no font with id %d", font_id)
+ return false
+ end
+ local hbface = get_hbface(tfmdata)
+ if hbface then
+ if not hbface:ot_var_has_data() then return false end
+
+ if #asked_axis <= 4 then
+ local tag = harf.Tag.new(asked_axis)
+ local info = hbface:ot_var_find_axis_info(tag)
+ if info then
+ return true -- TODO: More info?
+ end
+ end
+
+ asked_axis = stringlower(asked_axis)
+ local infos = hbface:ot_var_get_axis_infos()
+ for i=1, #infos do
+ local info = infos[i]
+ if hbface:get_name(info.name_id):lower() == asked_axis then
+ return true -- TODO: More info?
+ end
+ end
+ else
+ asked_axis = stringlower(asked_axis)
+ local resources = tfmdata.resources
+ local variabledata = resources and resources.variabledata
+ if not variabledata then return false end
+ local axes = variabledata.axis
+ if not axes then return false end -- Shouldn't happen
+ for i=1, #axes do
+ local axis = axes[i]
+ if axis.tag == asked_axis or axis.name == asked_axis then
+ return true -- TODO: More info?
+ end
+ end
+ end
+ return false
+end
+
+--[[doc--
We strip the syntax elements from feature definitions (shouldn’t
actually be there in the first place, but who cares ...)
--doc]]--
diff --git a/macros/luatex/generic/luaotfload/luaotfload-bcp47.lua b/macros/luatex/generic/luaotfload/luaotfload-bcp47.lua
index 03dc65e5bc..fc90c14363 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-bcp47.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-bcp47.lua
@@ -55,7 +55,7 @@ local normalize_case, language_tag do
+ l.P'sgn-CH-DE' * l.Cc{language = 'sgg'}
local regular =
l.P'art-lojban' * l.Cc{language = 'jbo'}
- + l.P'cel-gaulish' * l.Cc{language = '...'}
+ + l.P'cel-gaulish' * l.Cc{language = 'cel-gaulish'} -- Might be xcg, xga or xtg
+ l.P'no-bok' * l.Cc{language = 'nb'}
+ l.P'no-nyn' * l.Cc{language = 'nn'}
+ l.P'zh-guoyu' * l.Cc{language = 'cmn'}
@@ -69,17 +69,18 @@ local normalize_case, language_tag do
* ('-' * variant)^0
* (#('-' * singleton * '-') * l.Cg(l.Cf(l.Ct'' * ('-' * extension)^0, rawset), 'extension'))^-1
* ('-' * privateuse)^-1
- language_tag = (grandfathered + l.Ct(langtag + privateuse)) * l.Cp()--* -1
+ language_tag = (grandfathered + l.Ct(langtag + privateuse)) * -1
end
local function parse(tag)
tag = normalize_case:match(tag)
if not tag then return end
- local parsed, pos = language_tag:match(tag)
- print(require'inspect'{parsed, pos})
- -- if not parsed then return parsed end
- return tag, parsed
-end
-for l in io.lines() do
- print(parse(l))
- -- io.stdout:write(parse(l), '\n')
+ return language_tag:match(tag), tag
end
+-- for l in io.lines() do
+-- print(parse(l))
+-- -- io.stdout:write(parse(l), '\n')
+-- end
+return {
+ normalize_case = function(n) return normalize_case:match(tag) end,
+ parse = parse,
+}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-case.lua b/macros/luatex/generic/luaotfload/luaotfload-case.lua
index f5a147334d..79fb370ec7 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-case.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-case.lua
@@ -1,4 +1,5 @@
local unicode_data = require'luaotfload-unicode'
+local bcp47 = require'luaotfload-bcp47'
local mapping_tables = unicode_data.casemapping
local soft_dotted = unicode_data.soft_dotted
@@ -26,6 +27,8 @@ local copy = direct.copy
local insert_after = direct.insert_after
local traverse = direct.traverse
+local report = luaotfload.log.report
+
local disc = node.id'disc'
--[[ We make some implicit assumptions about contexts in SpecialCasing.txt here which happened to be true when I wrote the code:
@@ -113,6 +116,15 @@ local function init_greek_data()
for c = 0x2126, 0x2126 do handle_char(c) end
end
+local relevant_languages = {
+ lt = true,
+ tr = true,
+ az = true,
+ hy = {_ = true, yiwn = true},
+ el = {_ = true, iota = true},
+ de = {_ = false, eszett = true},
+}
+
local function font_lang(feature)
return setmetatable({}, {__index = function(t, fid)
local f = font.getfont(fid)
@@ -127,6 +139,35 @@ local function font_lang(feature)
or (lang == 'ell' or lang == 'pgr') and 'el'
or false
end
+ if lang == 'de-alt' then
+ lang = 'de-x-eszett'
+ end
+ local parsed = lang and bcp47.parse(lang)
+ if lang and not parsed then
+ report('luaotfload-case', 0, 'Unable to parse passed language tag')
+ end
+ lang = parsed and parsed.language
+ local subtags = lang and relevant_languages[lang]
+ if subtags then
+ local private = parsed.private
+ if subtags ~= true and private then
+ local first = true
+ for _, ext in ipairs(private) do
+ if subtags[ext] then
+ if first then
+ lang = lang .. '-x'
+ first = nil
+ end
+ lang = lang .. '-' .. ext
+ end
+ end
+ if first then
+ lang = subtags._ and lang
+ end
+ end
+ else
+ lang = false
+ end
t[fid] = lang
return lang
end})
diff --git a/macros/luatex/generic/luaotfload/luaotfload-colors.lua b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
index 075b5210f5..378b0f62b6 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-colors.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-colors.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-colors",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / color",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Dohyun Kim, David Carlisle",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
index ba983ed74c..c735e60a99 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-conf.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
index 8368425334..9ed614b17e 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-configuration.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-configuration",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / config file reader",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-database.lua b/macros/luatex/generic/luaotfload/luaotfload-database.lua
index 63f799ca41..e71e923ff6 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-database.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-database.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-database",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / database",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
index 25f79419a6..093c171409 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-diagnostics.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-diagnostics",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload-tool submodule / diagnostics",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
index da045d1d34..eeac1c71d0 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-dvi.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-dvi",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / DVI",
license = "GPL v2.0",
author = "Marcel Krüger",
@@ -17,11 +17,19 @@ assert(luaotfload_module, "This is a part of luaotfload and should not be loaded
local getfont = font.getfont
local setfont = node.direct.setfont
local getdisc = node.direct.getdisc
+local getlist = node.direct.getlist
+local is_glyph = node.direct.is_glyph
+local todirect = node.direct.todirect
local traverse_glyph = node.direct.traverse_glyph
+local traverse_list = node.direct.traverse_list
local traverse_id = node.direct.traverse_id
+local traverse = node.direct.traverse
local uses_font = node.direct.uses_font
local define_font = font.define
+local hlist_t = node.id'hlist'
+local vlist_t = node.id'vlist'
local disc_t = node.id'disc'
+local glyph_t = node.id'glyph'
-- DVI output support
--
@@ -40,11 +48,67 @@ local disc_t = node.id'disc'
-- mapped_fonts maps fontids from the user to fontids used in the DVI file
local mapped_fonts = setmetatable({}, {__index = function(t, fid)
local font = getfont(fid)
- local mapped = font.backend_font or false
+ print(fid, font and font.fullname)
+ local mapped = font and font.backend_font or false
t[fid] = mapped
return mapped
end})
+local full_hprocess
+local function full_vprocess(head)
+ for _, id, _, list in traverse_list(head) do
+ if id == hlist_t then
+ full_hprocess(list)
+ elseif id == vlist_t then
+ full_vprocess(list)
+ else
+ assert(false)
+ end
+ end
+end
+
+function full_hprocess(head)
+ local last_f, last_mapping, last_mapped_font
+ for n, id in traverse(head) do
+ if id == hlist_t then
+ full_hprocess(getlist(n))
+ elseif id == vlist_t then
+ full_vprocess(getlist(n))
+ elseif id == disc_t then
+ local _, _, rep = getdisc(n)
+ for n, c, f in traverse_glyph(rep) do
+ if f ~= last_f then
+ last_f, last_mapping = f, mapped_fonts[f]
+ last_mapped_font = last_mapping and last_mapping.font
+ end
+ if last_mapping then
+ local mapped = last_mapping[c]
+ if mapped then setfont(n, mapped_font, mapped) end
+ end
+ end
+ elseif id == glyph_t then
+ local c, f = is_glyph(n)
+ if f ~= last_f then
+ last_f, last_mapping = f, mapped_fonts[f]
+ last_mapped_font = last_mapping and last_mapping.font
+ end
+ if last_mapping then
+ local mapped = last_mapping[c]
+ print(c, f, mapped)
+ if mapped then setfont(n, last_mapped_font, mapped) end
+ end
+ end
+ end
+end
+
+local function delayed_register_callback()
+ luatexbase.add_to_callback('pre_shipout_filter', function(list)
+ full_vprocess(todirect(list)) -- list should always be a single list node, so we can treat it as if it were a vlist with one node
+ return true
+ end, 'luaotfload.dvi')
+ delayed_register_callback = function() end
+end
+
local function process(head, font)
local mapping = mapped_fonts[font]
if not mapping then return head end
@@ -77,6 +141,7 @@ local function manipulate(tfmdata, _, dvi_kind)
if 2 ~= (tfmdata.encodingbytes or ((tfmdata.format == 'truetype' or tfmdata.format == 'opentype') and 2 or 1)) then
return
end
+ delayed_register_callback()
local newfont = {}
for k,v in pairs(tfmdata) do
newfont[k] = v
diff --git a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
index 7bc4da5a76..6070b1a9ba 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-embolden.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-embolden",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / embolden",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
index 253d16051c..2f010c11d0 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-fallback.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-fallback",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / fallback",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-features.lua b/macros/luatex/generic/luaotfload/luaotfload-features.lua
index 6e64020570..4b3c1a0859 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-features.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-features.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-features",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / features",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
@@ -484,6 +484,7 @@ do
local getaxisscale = helpers.getaxisscale
local function search(table, term, key_field, value_field)
if not table then return end
+ term = cleanname(term)
for i=1, #table do
local entry = table[i]
if cleanname(entry[key_field]) == term then
@@ -876,6 +877,7 @@ fonts.constructors.features.otf.register {
end,
},
processors = {
+ position = 1,
node = function(head, f, _, _, _)
return normalize_lookup[f](head)
end,
diff --git a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
index a5dac9e640..c7bfc4e43f 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-filelist.lua
@@ -6,8 +6,8 @@
if luaotfload_module then luaotfload_module {
name = "luaotfload-filelist",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / filelist",
license = "GPL v2.0"
} end
diff --git a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
index f585e298b8..428872e8d3 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-glyphlist.lua
@@ -1,8 +1,8 @@
if luaotfload_module then
luaotfload_module {
name = "luaotfload-glyphlist",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / autogenerated glyphlist",
copyright = "derived from https://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt",
original = "Adobe Glyph List, version 2.0, September 20, 2002",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
index c3b0a8509e..a5923b773c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-define.lua
@@ -5,8 +5,8 @@
do -- block to avoid to many local variables error
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-define",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / HarfBuzz font loading",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
@@ -394,6 +394,7 @@ local function scalefont(data, spec)
local unicodes = data.unicodes
for uni, gid in next, unicodes do
characters[uni] = characters[gid_offset + gid]
+ characters[uni].tounicode = uni
end
-- Select font palette, we support `palette=index` option, and load the first
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
index df0d0cf136..5b93356b6b 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-plug.lua
@@ -4,8 +4,8 @@
-----------------------------------------------------------------------
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-plug",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / HarfBuzz shaping",
license = "GPL v2.0",
author = "Khaled Hosny, Marcel Krüger",
@@ -1130,7 +1130,7 @@ local function set_tounicode()
if unicode then
newcharacters[unicode] = character
end
- character.tounicode = glyph.tounicode or "FFFD"
+ character.tounicode = glyph.tounicode or unicode or "FFFD"
character.used = true
end
end
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
index 2ca928d32a..467faa8893 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-cff2.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-cff2",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / CFF2 table processing",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
index 72239343d8..75a3804ea2 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-t2-writer.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-t2-writer",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / Type 2 charstring writer",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
index b39cd753ae..0e9b83cd60 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-harf-var-ttf.lua
@@ -5,8 +5,8 @@
do
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-harf-var-ttf",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / gvar table processing",
license = "GPL v2.0",
author = "Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-hashing.lua b/macros/luatex/generic/luaotfload/luaotfload-hashing.lua
deleted file mode 100644
index e88eab706c..0000000000
--- a/macros/luatex/generic/luaotfload/luaotfload-hashing.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-local constructors = fonts.constructors
-local original_hashfeatures = constructors.hashfeatures
diff --git a/macros/luatex/generic/luaotfload/luaotfload-init.lua b/macros/luatex/generic/luaotfload/luaotfload-init.lua
index ff959e3502..77cb1c54de 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-init.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-init.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-init",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / initialization",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
index ef2cea7a10..c9fde7abfa 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-latex.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
index ef19afe384..505e0a8186 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-letterspace.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-letterspace",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / letterspacing",
license = "GPL v2.0",
copyright = "PRAGMA ADE / ConTeXt Development Team",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
index eb09443077..2aec2fb15d 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-loaders.lua
@@ -8,8 +8,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-loaders",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / callback handling",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-log.lua b/macros/luatex/generic/luaotfload/luaotfload-log.lua
index 74b364e874..03a3d7bbce 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-log.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-log.lua
@@ -6,8 +6,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-log",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / logging",
license = "GPL v2.0",
author = "Khaled Hosny, Elie Roux, Philipp Gesang",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-main.tex b/macros/luatex/generic/luaotfload/luaotfload-main.tex
index 6d802cbbc2..b9e25919ca 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-main.tex
+++ b/macros/luatex/generic/luaotfload/luaotfload-main.tex
@@ -32,7 +32,7 @@
\beginfrontmatter
\setdocumenttitle {The \identifier{luaotfload} package}
- \setdocumentdate {2022-06-15 v3.22}
+ \setdocumentdate {2022-10-03 v3.23}
\setdocumentauthor {LaTeX3 Project\\
Elie Roux · Khaled Hosny · Philipp Gesang · Ulrike Fischer · Marcel Krüger\\
Home: \hyperlink {https://github.com/latex3/luaotfload}}
@@ -62,6 +62,13 @@ Supported is the \identifier{luatex} versions of a current TeXLive 2019 (and a c
\endsection
\beginsection{Changes}
+\beginsubsection{New in version 3.23}
+\begin{itemize}
+ \item More reliable ToUnicode mappings in Harf mode
+ \item Various bug fixes
+\end{itemize}
+\endsubsection
+
\beginsubsection {New in version 3.22}
\begin{itemize}
\item Tailored case mappings
diff --git a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
index bc3921e203..f7bb18c225 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-multiscript.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-multiscript",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / multiscript",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
index 418ea79d57..3923e8392c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-notdef.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-notdef",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / notdef",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
index b2cc9c30ea..0c91f4775c 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-parsers.lua
@@ -7,8 +7,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-parsers",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / parsers",
license = "GPL v2.0"
}
@@ -638,8 +638,8 @@ local features = Cg(feature_list, "features")
local specification = (path_lookup + prefixed + unprefixed)
* maybe_subfont
* modifier_list
-local font_request = Ct(specification * (colon^-1 * features)^-1
- + combo) --> TODO: feature list needed?
+local font_request = Ct(combo --> TODO: feature list needed?
+ + specification * (colon^-1 * features)^-1)
-- lpeg.print(font_request)
--- v2.5 parser: 1065 rules
diff --git a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
index 135a843cf3..d215aad8be 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-resolvers.lua
@@ -11,8 +11,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-resolvers",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / resolvers",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
index 8d98f7ce37..222e893718 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-scripts.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-script",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / Script helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-status.lua b/macros/luatex/generic/luaotfload/luaotfload-status.lua
index 7ec80b14fb..12efcf4452 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-status.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-status.lua
@@ -1,10 +1,10 @@
return {
["hashes"]={
- { "fontloader-2022-06-15.lua", "1d9c716b5c1d6ff84bee5e4ba3631eac" },
+ { "fontloader-2022-10-03.lua", "f5384fb6e665b4c3af844e55c9890073" },
{ "fontloader-util-fil.lua", "d0accf4180201efd567816a25ad5e037" },
{ "fontloader-util-str.lua", "f4a9dd15c3e40cd3915749ac13837c95" },
{ "fontloader-l-unicode.lua", "f368874f11f3c525de5864fd413e4b24" },
- { "fontloader-l-math.lua", "5a0740b359e2d55d6dca06a23e3c9df6" },
+ { "fontloader-l-math.lua", "e19c80b7e700a69df942d4df2e14aa28" },
{ "fontloader-l-boolean.lua", "abe28515dd33e8f6c416c09bca351cf8" },
{ "fontloader-l-file.lua", "5839d88d4de96b9e9c7e7f8f8eb885b3" },
{ "fontloader-l-io.lua", "3396a8644bae37e49b2cfc0c388c78f8" },
@@ -33,7 +33,7 @@ return {
{ "fontloader-font-one.lua", "bd39d42055a44ca2002f8ddbbbbf27c3" },
{ "fontloader-font-onr.lua", "6d161533f3437435e12a0ad64866df44" },
{ "fontloader-font-ocl.lua", "2a377351ae23c339764ec8ce2e8e9164" },
- { "fontloader-font-osd.lua", "9b5337b0051b8e42b6c8329127c59794" },
+ { "fontloader-font-osd.lua", "1716513d8fe5f28e0e88daad2be0e05b" },
{ "fontloader-font-otc.lua", "57f5270b894e40efa93149c7d3fb0209" },
{ "fontloader-font-ots.lua", "55316a605d11a1d07d38795224c90a63" },
{ "fontloader-font-ota.lua", "2bb12d708e35bc05443eba791e2554e7" },
@@ -43,9 +43,9 @@ return {
{ "fontloader-font-otl.lua", "308b1aab04bc131da7eb8e8c3b0471d4" },
{ "fontloader-font-ott.lua", "3f67b1b1d40bbc222681d8db4aff0f42" },
{ "fontloader-font-oti.lua", "309a75f9c14b77d87e94eba827dc4e71" },
- { "fontloader-font-dsp.lua", "4935e6605ffd7bf57e66f0b6c132f883" },
+ { "fontloader-font-dsp.lua", "23a82ec8fdb9f226427e78904402e48a" },
{ "fontloader-font-ttf.lua", "a3ff07150b3535fd32f68748d53fcd36" },
- { "fontloader-font-cff.lua", "e38c1a40e1d1d577cdf7920fa50d0654" },
+ { "fontloader-font-cff.lua", "651c74e4804fbb85d31267210298f466" },
{ "fontloader-font-otr.lua", "1896ac990a961f6d6fec551ca9b52a83" },
{ "fontloader-font-vfc.lua", "a81c29eda98cd62cbebdb6c93544b50d" },
{ "fontloader-font-map.lua", "27ee748150e56f5f0e5f0fefc864f35e" },
@@ -53,47 +53,47 @@ return {
{ "fontloader-font-con.lua", "724e5dd14aec2d4d189f8619898004cf" },
{ "fontloader-font-ini.lua", "5343de60613adb24cdd7a8d2ee1d153c" },
{ "fontloader-data-con.lua", "23a0f5386d46a1c157ae82a373e35fa0" },
- { "fontloader-reference.lua", "c256fdcc4661bf9c868002fe0f996d73" },
+ { "fontloader-reference.lua", "e4b70de7191ba92ba3b859427eeca91c" },
{ "fontloader-basics-gen.lua", "4bc43036e9796fccb0b8869f4b05bf2e" },
{ "mktests", "918cb50be9ee8bd645ac1a27dc501e8c" },
- { "mkstatus", "8bffa407d2323b24683f726fc6c1a634" },
+ { "mkstatus", "45611be8d0396d0e048e45fdb318fea0" },
{ "mkcharacters", "bfca0e96e1e351afe7077502f9595af9" },
{ "mkglyphlist", "7a8a8fdc0eac7fac2f13ec8f4e8e7aa9" },
{ "mkimport", "7d62f1042e548f8b9368f26b9ba4be5c" },
- { "luaotfload-glyphlist.lua", "a1eda1d4588777f77459f86bbe1f7500" },
+ { "luaotfload-glyphlist.lua", "76f7660436e588112a74e2bbdd4a813c" },
{ "luaotfload-characters.lua", "76415ca3ede312cad6e09038323489ae" },
- { "luaotfload-dvi.lua", "be1944354d7a1d6d4098966c9cc276b2" },
- { "luaotfload-tounicode.lua", "20fa6d02bae4274d7fbe18ff8683ca76" },
- { "luaotfload-unicode.lua", "69d17d1de56d8c0abdfb77ef7c11dfd6" },
- { "luaotfload-resolvers.lua", "490ba5d0a7b5164f9908f690507e5569" },
- { "luaotfload-parsers.lua", "daf4e973fb452f6a24d90c9a12508445" },
- { "luaotfload-fallback.lua", "56b58f94896f842ef46f25cad0be39bb" },
- { "luaotfload-szss.lua", "5512c588c3e53528f430d3dcd5342c61" },
- { "luaotfload-scripts.lua", "85cd3d5a0df9a0faaf8888fca2352d91" },
- { "luaotfload-multiscript.lua", "e84b33ced34f4ede4549e64831ba2e14" },
- { "luaotfload-loaders.lua", "4b5f6a7ba70f6cbe4eb10c98cc54e39e" },
- { "luaotfload-harf-plug.lua", "061fac6736fbe443c13fa66b1780366d" },
- { "luaotfload-harf-define.lua", "ff5743a2e17370ec42e2715e7dcd3efa" },
- { "luaotfload-notdef.lua", "a00724307cd32649101537414600da85" },
- { "luaotfload-embolden.lua", "2050240a6c33c2cfbb4573f2c3f25507" },
- { "luaotfload-letterspace.lua", "da30005de64912955267159c4310e215" },
- { "luaotfload-features.lua", "cba1c85ff9f4bb3d1af3d3e40db30536" },
- { "luaotfload-database.lua", "306e312f8d5cdebbfc8256bad91197ad" },
- { "luaotfload-configuration.lua", "b9f0b1bebfc3cb0e79688c101b428ba5" },
- { "luaotfload-colors.lua", "ceca08c762415386b78bbe6621ca2ba8" },
- { "luaotfload-auxiliary.lua", "ef7e3f0b64c4dbfc1a498ce4078195aa" },
- { "luaotfload-filelist.lua", "fb3ab92adb3e379822ed4568429b746c" },
- { "luaotfload-tool.lua", "e2f826b49e3baff8d46f2454b985cf39" },
- { "luaotfload-diagnostics.lua", "d7d7005692d1499e9685ab08f6152bf2" },
- { "luaotfload-log.lua", "20d82599e760f75a4c080d2b08dfe084" },
- { "luaotfload-init.lua", "0cf48cf4dbb22324a4b3e449830f21c5" },
+ { "luaotfload-dvi.lua", "34c763f62499f1bad2ae3883ef52e126" },
+ { "luaotfload-tounicode.lua", "9bc62ed441ed23b5222925b019479f78" },
+ { "luaotfload-unicode.lua", "30f5b1073daa0c6e85ca1db843fbd9cd" },
+ { "luaotfload-resolvers.lua", "2b21b7b0f08aa03ca0d527331718dc13" },
+ { "luaotfload-parsers.lua", "0dc623da7513746ee0e0d354505187b3" },
+ { "luaotfload-fallback.lua", "34996c5eb80691e8e9969145a1c63fa8" },
+ { "luaotfload-szss.lua", "87ac61c8fad7650fa6866518212f3a38" },
+ { "luaotfload-scripts.lua", "857b55175273a8277bab059b1bbfa6a4" },
+ { "luaotfload-multiscript.lua", "3436f18db0d08ee567e5051995a3165f" },
+ { "luaotfload-loaders.lua", "7298c7dd711f8480f4bca2aef5df90af" },
+ { "luaotfload-harf-plug.lua", "8b3b69f4c5e573212951c54336b6c75b" },
+ { "luaotfload-harf-define.lua", "ed98bd38d43fbc67e6140c343475d8dd" },
+ { "luaotfload-notdef.lua", "256afb391eb4010d3b69e5af1abebb7a" },
+ { "luaotfload-embolden.lua", "2abe4a85a428d79cae1260908a492477" },
+ { "luaotfload-letterspace.lua", "e950c4f3d6e466b7e59fd8d1d2598fa6" },
+ { "luaotfload-features.lua", "edaf61a299497abb089f9f160acaf5ba" },
+ { "luaotfload-database.lua", "6da3d95f9011b8320dab5c5a32a28978" },
+ { "luaotfload-configuration.lua", "18bbb7350d32b6409b7c331542a886e6" },
+ { "luaotfload-colors.lua", "4ad76dd049092806e62e93437674f003" },
+ { "luaotfload-auxiliary.lua", "c869a8e7d2242a02b0e10928c0cdc59c" },
+ { "luaotfload-filelist.lua", "105e78993704062bf12fd6773a3ed001" },
+ { "luaotfload-tool.lua", "4ba963522c4182e127396e0daa1dd314" },
+ { "luaotfload-diagnostics.lua", "fe454a8415defdce72fc7dbf8af92f39" },
+ { "luaotfload-log.lua", "dee4da9bd54f1a5f7453826b8ecd70ea" },
+ { "luaotfload-init.lua", "fdca1ee9ddbc4324dace4d89043ee1ff" },
{ "luaotfload-main.lua", "b19c9cc34cf1d676c39f872cfb41aef6" },
},
["notes"]={
["committer"]="Marcel Fabian Krüger <tex@2krueger.de>",
- ["description"]="v3.22/2022-06-15",
- ["loader"]="fontloader-2022-06-15.lua",
- ["revision"]="deb1cfef038a70ebd5a5762394adcbc0889c5cbf",
- ["timestamp"]="2022-06-15 19:23:05 +0200",
+ ["description"]="v3.23/2022-10-03",
+ ["loader"]="fontloader-2022-10-03.lua",
+ ["revision"]="a36774ba186e3bacab9398e50d0069a0372d3c12",
+ ["timestamp"]="2022-10-03 20:33:45 +0200",
},
} \ No newline at end of file
diff --git a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
index 6b105effbb..0e67e4eada 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-suppress.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-suppress",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / suppress",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-szss.lua b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
index 760e5c29b8..f8aca2bd64 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-szss.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-szss.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-szss",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / Special feature handling",
license = "GPL v2.0",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload-t3.lua b/macros/luatex/generic/luaotfload/luaotfload-t3.lua
deleted file mode 100644
index 215ba4b918..0000000000
--- a/macros/luatex/generic/luaotfload/luaotfload-t3.lua
+++ /dev/null
@@ -1,142 +0,0 @@
------------------------------------------------------------------------
--- FILE: luaotfload-t3.lua
--- DESCRIPTION: part of luaotfload / Type 3
------------------------------------------------------------------------
-do -- block to avoid to many local variables error
- assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
- name = "luaotfload-t3",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
- description = "luaotfload submodule / Type 3 font handling",
- license = "GPL v2.0",
- author = "Marcel Krüger",
- copyright = "Luaotfload Development Team",
- }
-end
-
---[[
-local function u8_to_utf16be(s)
- local d = {}
- local i = 0
- for _, cp, cp2 in utf8.codes(s) do
- i = i + 1
- if cp > 0x10000 then
- cp = cp - 0x10000
- local high = (cp>>10) | 0xD800
- local low = (cp&0x3FF) | 0xDC00
- d[i] = string.format('%04X%04X', high, low)
- else
- d[i] = string.format('%04X', cp)
- end
- end
- return table.concat(d, '', 1, i)
-end
-]]
-
-local function t3factory(basename, designsize, callback)
- local count = 0
- local gid_to_t3 = {}
- local t3_to_gid = {}
- return function(size)
- local fids = {}
- return function(gid, width, unicode)
- local t3id = gid_to_t3[gid]
- if not t3id then
- t3id = count
- count = count + 1
- gid_to_t3[gid] = t3id
- t3_to_gid[t3id] = gid
- end
- local t3fid, t3cid = t3id >> 8, ~(t3id & 0xFF)
- local fid = fids[t3fid + 1]
- local fontdir = fid and font.getfont(fid)
- local characters = fontdir and fontdir.characters
- if not (characters and characters[t3cid]) then
- characters = characters or {}
- -- First create the character
- local char = {
- width = width,
- height = 0, -- We never look at these two anyway
- depth = 0,
- tounicode = unicode,
- }
- characters[t3cid] = char
- if fid then -- Font already exists
- font.addcharacters(fid, {
- characters = {
- [t3cid] = char,
- },
- })
- else
- fontdir = {
- name = basename .. '_' .. basesize .. '_' .. t3fid,
- format = 'type3',
- psname = 'none',
- filename = 'not_a_real_filename', -- Can't be null to ensure reuse
- fullname = basename .. basesize .. '_' .. t3fid,
- characters = characters,
- designsize = basesize,
- size = size,
- cidinfo = {}, -- Can't be null to ensure reuse
- attributes = '/FontDescriptor<<\z
- /Type/FontDescriptor\z
- /FontName/VirtualLuaFont\z
- /Flags 4\z
- /ItalicAngle 0\z
- >>', -- TODO: Needs work
- t3_handler = function(stage, _, cid)
- cid = cid and assert(t3_to_gid[(t3fid << 8) | ~cid])
- return callback(stage, cid)
- end
- }
- fid = font.define(fontdir)
- fids[t3fid + 1] = fid
- end
- end
- vf.font(fid)
- vf.char(t3cid)
- end
- end
-end
-
-luatexbase.add_to_callback('provide_charproc_data', function(stage, fid, ...)
- local fontdir = font.getfont(fid)
- if not fontdir then error'Unknown font' end
- local handler = fontdir.t3_handler
- if not handler then error'Missing t3handler in Type 3 font' end
- return handler(stage, fid, ...)
-end, 'luaotfload.t3')
-
-return t3factory
---[===[
- function callback(stage, cid)
- if stage == 1 then
- local char = assert(characters[cid])
- local head = assert(char.head)
- local resource = tex.saveboxresource(head, nil--[[attributes]], nil--[[resources]], true--[[immediate]], 0--[[mode]], nil--[[margin]])
- local name = string.format('/F%i', pdf.getxformname(resource))
- local resources = characters.resources
- if resources then
- characters.resources = string.format('%s %s %i 0 R', resources, name, resource)
- else
- characters.resources = string.format('%s %i 0 R', name, resource)
- end
- char.resource = name
- elseif stage == 2 then
- local char = assert(characters[cid])
- width = char.width/65781
- return pdf.obj{
- type = 'stream',
- immediate = true,
- -- objnum =
- -- attr =
- -- compresslevel =
- string = string.format('%g 0 d0 %s Do', width, char.resource)
- }, width
- elseif stage == 3 then
- return 65781/655360, string.format('/XObject<<%s>>', characters.resources)
- end
- print(stage, fid, cid)
- end,
- }
-]===]
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.1 b/macros/luatex/generic/luaotfload/luaotfload-tool.1
index 8967467c46..bd0617503a 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.1
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.1
@@ -1,5 +1,8 @@
.\" Man page generated from reStructuredText.
.
+.TH LUAOTFLOAD-TOOL 1 "2022-10-03" "3.23" "text processing"
+.SH NAME
+luaotfload-tool \- generate and query the Luaotfload font names database
.
.nr rst2man-indent-level 0
.
@@ -27,9 +30,6 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LUAOTFLOAD-TOOL" 1 "2022-06-15" "3.22" "text processing"
-.SH NAME
-luaotfload-tool \- generate and query the Luaotfload font names database
.SH SYNOPSIS
.sp
\fBluaotfload\-tool\fP [ \-bcDfFiIlLnpqRSuvVhw ]
@@ -77,14 +77,14 @@ the \fILuaotfload\fP package. There are two general modes: \fBupdate\fP and
.SS update mode
.INDENT 0.0
.TP
-.B \-\-update\fP,\fB \-u
+.B \-\-update\fP,\fB \-u
Update the database; indexes new fonts.
.TP
-.B \-\-force\fP,\fB \-f
+.B \-\-force\fP,\fB \-f
Force rebuilding of the database; re\-indexes
all fonts.
.TP
-.B \-\-local\fP,\fB \-L
+.B \-\-local\fP,\fB \-L
Include font files in \fB$PWD\fP\&. This option
will cause large parts of the database to be
rebuilt. Thus it is quite inefficient.
@@ -93,16 +93,16 @@ the database is prevented from being saved
to disk, so the local fonts need to be parsed
with every invocation of \fBluaotfload\-tool\fP\&.
.TP
-.B \-\-no\-reload\fP,\fB \-n
+.B \-\-no\-reload\fP,\fB \-n
Suppress auto\-updates to the database (e.g.
when \fB\-\-find\fP is passed an unknown name).
.TP
-.B \-\-no\-compress\fP,\fB \-c
+.B \-\-no\-compress\fP,\fB \-c
Do not filter the plain text version of the
font index through gzip. Useful for debugging
if your editor is built without zlib.
.TP
-.B \-\-prefer\-texmf\fP,\fB \-p
+.B \-\-prefer\-texmf\fP,\fB \-p
Organize the file name database in a way so
that it prefer fonts in the \fITEXMF\fP tree over
system fonts if they are installed in both.
@@ -139,16 +139,16 @@ mapped to.
i.e. \fB\-\-find=file:foo.otf\fP checks whether
\fBfoo.otf\fP is indexed.
.TP
-.B \-\-fuzzy\fP,\fB \-F
+.B \-\-fuzzy\fP,\fB \-F
Show approximate matches to the file name if
the lookup was unsuccessful (requires
\fB\-\-find\fP).
.TP
-.B \-\-info\fP,\fB \-i
+.B \-\-info\fP,\fB \-i
Display basic information to a resolved font
file (requires \fB\-\-find\fP).
.TP
-.B \-\-inspect\fP,\fB \-I
+.B \-\-inspect\fP,\fB \-I
Display detailed information by loading the
font and analyzing the font table; very slow!
For the meaning of the returned fields see
@@ -189,7 +189,7 @@ format:
.sp
.nf
.ft C
-\&./luaotfload\-tool.lua \-\-list=\(dqformat\(dq \-\-fields=\(dqfile\->base,version\(dq
+\&./luaotfload\-tool.lua \-\-list="format" \-\-fields="file\->base,version"
.ft P
.fi
.UNINDENT
@@ -230,7 +230,7 @@ The default is plainname,version*.
.SS font and lookup caches
.INDENT 0.0
.TP
-.B \-\-flush\-lookups
+.B \-\-flush\-lookups
Clear font name lookup cache (experimental).
.TP
.BI \-\-cache\fB= DIRECTIVE
@@ -249,15 +249,15 @@ cache;
.SS debugging methods
.INDENT 0.0
.TP
-.B \-\-show\-blacklist\fP,\fB \-b
+.B \-\-show\-blacklist\fP,\fB \-b
Show blacklisted files (not directories).
.TP
-.B \-\-dry\-run\fP,\fB \-D
+.B \-\-dry\-run\fP,\fB \-D
Don’t load fonts when updating the database;
scan directories only.
(For debugging file system related issues.)
.TP
-.B \-\-no\-strip
+.B \-\-no\-strip
Do not strip redundant information after
building the database. Warning: this will
inflate the index to about two to three times
@@ -331,7 +331,7 @@ state.
Set verbosity level to \fIn\fP or the number of
repetitions of \fB\-v\fP\&.
.TP
-.B \-\-quiet
+.B \-\-quiet
No verbose output (log level set to zero).
.TP
.BI \-\-log\fB= CHANNEL
@@ -347,11 +347,11 @@ directory (the name will be chosen
automatically.
.UNINDENT
.TP
-.B \-\-version\fP,\fB \-V
+.B \-\-version\fP,\fB \-V
Show version numbers of components as well as
some basic information and exit.
.TP
-.B \-\-help\fP,\fB \-h
+.B \-\-help\fP,\fB \-h
Show help message and exit.
.TP
.BI \-\-diagnose\fB= CHECK
@@ -387,12 +387,12 @@ Read the configuration from \fIFILE\fP\&. See
\fBluaotfload.conf\fP(%) for documentation
concerning the format and available options.
.TP
-.B \-\-dumpconf
+.B \-\-dumpconf
Print the currently active configuration; the
output can be saved to a file and used for
bootstrapping a custom configuration files.
.TP
-.B \-\-aliases
+.B \-\-aliases
Dump the font name database as a kpathsea
aliases file. This option is experimental and
might go away.
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.lua b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
index 56b433bf2b..dc9dec543e 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.lua
@@ -9,8 +9,8 @@
local ProvidesLuaModule = {
name = "luaotfload-tool",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload-tool / database functionality",
license = "GPL v2.0"
}
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
index cb4c8141e0..640a657ea3 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tool.rst b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
index 25d90cd33a..68f761bdb0 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tool.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload-tool.rst
@@ -6,9 +6,9 @@
generate and query the Luaotfload font names database
-----------------------------------------------------------------------
-:Date: 2022-06-15
+:Date: 2022-10-03
:Copyright: GPL v2.0
-:Version: 3.22
+:Version: 3.23
:Manual section: 1
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
index 96ffd562b0..cb34d12aeb 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-tounicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-tounicode",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / tounicode",
license = "GPL v2.0",
author = "Hans Hagen, Khaled Hosny, Elie Roux, Philipp Gesang, Marcel Krüger",
diff --git a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
index e504f892e2..64a1eed448 100644
--- a/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload-unicode.lua
@@ -5,8 +5,8 @@
assert(luaotfload_module, "This is a part of luaotfload and should not be loaded independently") {
name = "luaotfload-unicode",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "luaotfload submodule / Unicode helpers",
license = "CC0 1.0 Universal",
author = "Marcel Krüger"
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.5 b/macros/luatex/generic/luaotfload/luaotfload.conf.5
index dc5b1d3e50..7617508bc3 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.5
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.5
@@ -1,5 +1,8 @@
.\" Man page generated from reStructuredText.
.
+.TH LUAOTFLOAD.CONF 5 "2022-10-03" "3.23" "text processing"
+.SH NAME
+luaotfload.conf \- Luaotfload configuration file
.
.nr rst2man-indent-level 0
.
@@ -27,9 +30,6 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LUAOTFLOAD.CONF" 5 "2022-06-15" "3.22" "text processing"
-.SH NAME
-luaotfload.conf \- Luaotfload configuration file
.SH SYNOPSIS
.INDENT 0.0
.IP \(bu 2
@@ -212,7 +212,7 @@ formats
T} T{
s
T} T{
-\fB\(dqotf,ttf,ttc\(dq\fP
+\fB"otf,ttf,ttc"\fP
T}
_
T{
@@ -285,7 +285,7 @@ containing one or more of these elements:
It corresponds loosely to the \fB\-\-formats\fP option to
\fBluaotfload\-tool\fP\&. Invalid or duplicate members are ignored; if the
list does not contain any useful identifiers, the default list
-\fB\(dqotf,ttf,ttc\(dq\fP will be used.
+\fB"otf,ttf,ttc"\fP will be used.
.sp
The variable \fBmax\-fonts\fP determines after processing how many font
files the font scanner will terminate the search. This is useful for
@@ -416,7 +416,7 @@ cache\-dir
T} T{
s
T} T{
-\fB\(dqfonts\(dq\fP
+\fB"fonts"\fP
T}
_
T{
@@ -424,7 +424,7 @@ names\-dir
T} T{
s
T} T{
-\fB\(dqnames\(dq\fP
+\fB"names"\fP
T}
_
T{
@@ -432,7 +432,7 @@ index\-file
T} T{
s
T} T{
-\fB\(dqluaotfload\-names.lua\(dq\fP
+\fB"luaotfload\-names.lua"\fP
T}
_
T{
@@ -440,7 +440,7 @@ lookups\-file
T} T{
s
T} T{
-\fB\(dqluaotfload\-lookup\-cache.lua\(dq\fP
+\fB"luaotfload\-lookup\-cache.lua"\fP
T}
_
.TE
@@ -472,7 +472,7 @@ anon\-sequence
T} T{
s
T} T{
-\fB\(dqtex,path,name\(dq\fP
+\fB"tex,path,name"\fP
T}
_
T{
@@ -480,7 +480,7 @@ color\-callback
T} T{
s
T} T{
-\fB\(dqpost_linebreak_filter\(dq\fP
+\fB"post_linebreak_filter"\fP
T}
_
T{
@@ -488,7 +488,7 @@ definer
T} T{
s
T} T{
-\fB\(dqpatch\(dq\fP
+\fB"patch"\fP
T}
_
T{
@@ -504,7 +504,7 @@ resolver
T} T{
s
T} T{
-\fB\(dqcached\(dq\fP
+\fB"cached"\fP
T}
_
T{
@@ -512,7 +512,7 @@ fontloader
T} T{
s
T} T{
-\fB\(dqdefault\(dq\fP
+\fB"default"\fP
T}
_
.TE
diff --git a/macros/luatex/generic/luaotfload/luaotfload.conf.rst b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
index e7fa382899..2f2bee0fa1 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.conf.rst
+++ b/macros/luatex/generic/luaotfload/luaotfload.conf.rst
@@ -6,9 +6,9 @@
Luaotfload configuration file
-----------------------------------------------------------------------
-:Date: 2022-06-15
+:Date: 2022-10-03
:Copyright: GPL v2.0
-:Version: 3.22
+:Version: 3.23
:Manual section: 5
:Manual group: text processing
diff --git a/macros/luatex/generic/luaotfload/luaotfload.lua b/macros/luatex/generic/luaotfload/luaotfload.lua
index 34181d0af7..a22880e736 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.lua
+++ b/macros/luatex/generic/luaotfload/luaotfload.lua
@@ -20,8 +20,8 @@ local authors = "\z
-- version number is used below!
local ProvidesLuaModule = {
name = "luaotfload",
- version = "3.22", --TAGVERSION
- date = "2022-06-15", --TAGDATE
+ version = "3.23", --TAGVERSION
+ date = "2022-10-03", --TAGDATE
description = "Lua based OpenType font support",
author = authors,
copyright = authors,
diff --git a/macros/luatex/generic/luaotfload/luaotfload.sty b/macros/luatex/generic/luaotfload/luaotfload.sty
index 6c9ceb1f43..aafcfb6930 100644
--- a/macros/luatex/generic/luaotfload/luaotfload.sty
+++ b/macros/luatex/generic/luaotfload/luaotfload.sty
@@ -39,7 +39,7 @@
\fi
\ifdefined\ProvidesPackage
\ProvidesPackage{luaotfload}%
- [2022/06/15 v3.22 OpenType layout system]
+ [2022/10/03 v3.23 OpenType layout system]
\fi
\directlua{
if xpcall(function ()%
diff --git a/macros/luatex/generic/luaotfload/scripts-demo.pdf b/macros/luatex/generic/luaotfload/scripts-demo.pdf
index 13825f2f01..4207a5fd7f 100644
--- a/macros/luatex/generic/luaotfload/scripts-demo.pdf
+++ b/macros/luatex/generic/luaotfload/scripts-demo.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
index 7bd624fc2e..1a8b1c182a 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo-graphite.pdf
Binary files differ
diff --git a/macros/luatex/generic/luaotfload/shaper-demo.pdf b/macros/luatex/generic/luaotfload/shaper-demo.pdf
index f9b07141b5..f4fe93315d 100644
--- a/macros/luatex/generic/luaotfload/shaper-demo.pdf
+++ b/macros/luatex/generic/luaotfload/shaper-demo.pdf
Binary files differ
diff --git a/macros/luatex/latex/japanese-mathformulas/README.txt b/macros/luatex/latex/japanese-mathformulas/README.txt
new file mode 100644
index 0000000000..b936573615
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/README.txt
@@ -0,0 +1,29 @@
+japanese-mathformulas - mathematical formula using amsmath and tikz==================================
+version 1.0.0
+
+Licence----------------------------------------------------------------------------------------------
+lppl1.3c
+Copyright (c) 2022- Hugh; Ponkichi
+This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license or (at your option) any later version.
+The latest version of this license is in
+
+http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of LaTeX version 2005/12/01 or later.
+
+Description------------------------------------------------------------------------------------------
+This is a style file for compiling basic math formulas. \NewDocumentCommand allows you to specify whether the formula should be used within a sentence or on a new line. The main packages used are amsmath, amssymb, siunitx, ifthen, xparse, tikz, mathtools, graphics.
+
+Contents---------------------------------------------------------------------------------------------
+japanese-mathformulas.sty the main file
+japanese-mathformulas.pdf a user guide attempt
+japanese-mathformulas.tex tex file of japanese-mathformulas.pdf
+japanese-mathformulas-sample.pdf an example of use in conjunction with ltjsarticle
+japanese-mathformulas-sample.tex tex file of japanese-mathformulas-sample.pdf
+README.txt this file
+
+Feedback---------------------------------------------------------------------------------------------
+dragon-hugh-houston0426@docomo.ne.jp
+(Mail here, please.)
+
+ Thank you for reading! \ No newline at end of file
diff --git a/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.pdf b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.pdf
new file mode 100644
index 0000000000..6657bbf2e4
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.pdf
Binary files differ
diff --git a/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.tex b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.tex
new file mode 100644
index 0000000000..08786e5a34
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas-sample.tex
@@ -0,0 +1,275 @@
+\documentclass[landscape,b4paper,twocolumn,fleqn]{ltjsarticle}
+
+\usepackage{iwona}%
+\usepackage{bookmark,xurl}
+\usepackage{mathformula,ascolorbox,enumerate,environ,tcolorbox,color}%
+\usepackage[hiragino-pron,deluxe,expert,bold]{luatexja-preset}%
+\usepackage[usetype1]{uline--}
+\usepackage[margin=15mm]{geometry}
+\makeatletter
+\newenvironment{kakkoenu}{\begin{enumerate}[\protect\expandafter\ajKakko 1]}{\end{enumerate}}
+\newenvironment{maruenu}{\begin{enumerate}[\protect\expandafter\ajMaru 1]}{\end{enumerate}}
+
+\def\breaklines#1{%
+\@tempcnta=0\relax
+\loop
+\ifnum\@tempcnta<#1\relax
+~\\
+\advance\@tempcnta by 1\relax
+\repeat
+}
+
+\newsavebox{\measure@tikzpicture}
+\NewEnviron{scaletikzpicturetowidth}[1]{%
+ \def\tikz@width{#1}%
+ \def\tikzscale{1}\begin{lrbox}{\measure@tikzpicture}%
+ \BODY
+ \end{lrbox}%
+ \pgfmathparse{#1/\wd\measure@tikzpicture}%
+ \edef\tikzscale{\pgfmathresult}%
+ \BODY
+}
+\NewDocumentCommand\circlestitle{ O{black} m }%
+ {%
+ \noindent%
+ \begin{scaletikzpicturetowidth}{\linewidth}%
+ \begin{tikzpicture}[scale=\tikzscale]%
+ \fill[#1!10!white](0,0)circle(.8);% section名の左の円1
+ \fill[#1!20!white](-1,1)circle(.5);% section名の左の円2
+ \fill[#1!30!white](-.8,2)circle(.35);% section名の左の円3
+ \fill[#1!40!white](-.5,2.8)circle(.15);% section名の左の円4
+ \fill[#1!10!white](7.5,.3)circle(.6);% section名の右の円1
+ \fill[#1!20!white](8.8,.9)circle(.45);% section名の右の円2
+ \fill[#1!30!white](10,1.28)circle(.3);% section名の右の円3
+ \fill[#1!40!white](11.1,1.4)circle(.25);% section名の右の円4
+ \fill[#1!50!white](12.15,1.38)circle(.225);% section名の右の円5
+ \fill[#1!50!white](12.8,.8)circle(.2125);% section名の右の円6
+ \fill[#1!50!white](12.5,0)circle(.15);% section名の右の円7
+ \draw(0,.2)node[right]{\Huge\textmg{\uline[width=.5pt]{4. \uline[-4.5pt,width=.5pt]{#2\<}}\uline[-4.5pt,width=.5pt]{\null\quad\quad}}};% section名
+ \draw(-.5,1.2)node[right]{\Large\textcolor{#1!50!white}{Chapter}};% Chapterの文字
+ \end{tikzpicture}%
+ \end{scaletikzpicturetowidth}%
+ }%
+
+\newcommand{\@sankoufudda}[2][]{%
+\def\@temphoge{#1}%
+\noindent\hspace{-1\zw}\makebox[2\zw]{\leaders\hrule height4.2pt depth-3.4pt\hfill\kern0pt}\textgt{【#2】}\ifx\@temphoge\@empty\else#1~\fi\leaders\hrule height4.2pt depth-3.4pt\hfill\kern0pt\hspace{-1\zw}\nopagebreak\par}
+\newcommand{\@sankoufutta}{\par\nopagebreak\noindent\hspace{-1\zw}\leaders\hrule height4.2pt depth-3.4pt\hfill\kern0pt\hspace{-1\zw}~%
+}
+\newenvironment{sankoubox}{\vspace{.5\zw}\@sankoufudda[{}]{参考}}{\@sankoufutta\vspace{.5\zw}}
+
+\DeclareTColorBox{colorkeybox}{ O{gray} D<>{!} }%
+ {%
+ enhanced,%
+ before skip=2mm,after skip=3mm,%
+ fontupper=\gtfamily,%
+ boxrule=0.4pt,%
+ left=5mm,right=2mm,top=1mm,bottom=1mm,%
+ colback=white,%
+ colframe=gray!20!#1,%
+ sharp corners,%
+ rounded corners=southeast,%
+ arc is angular,%
+ arc=3mm,%
+ underlay=%
+ {%
+ \path[fill=tcbcolback!80!#1]%
+ ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++%
+(0.1,-0.2);\path[draw=tcbcolframe,shorten <=-0.05mm,shorten >=-0.05mm]%
+ ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++%
+ (0.1,-0.2);\path[fill=gray!20!#1,draw=none] (interior.south west) rectangle node[white]{\Huge\bfseries #2} ([xshift=4mm]interior.north west);%
+ },%
+ drop fuzzy shadow,%
+ before upper={\hspace{1\zw}}%
+ }%
+
+\newcommand{\coloraftertext}[2]%
+ {%
+ \tcbox%
+ [%
+ #1%
+ on line,%
+ boxsep=0pt,boxrule=0pt,%
+ top=0mm,bottom=0mm,%
+ tcbox width=forced left,%
+ width=\linewidth-\the\@組カラーボックス@length%
+ ]%
+ {#2\relax\strut}%
+ }%
+\newlength{\@組カラーボックス@length}%
+\NewDocumentEnvironment{組カラーボックス}{ m m O{black} O{lightgray!55!white} }%
+ {%
+ \settowidth{\@組カラーボックス@length}{\hspace{.9999em}\gtfamily #1}
+ \begin{tcolorbox}%
+ [%
+ enhanced,%
+ colback=#3,%
+ colframe=black,%
+ left=0mm,right=0mm,top=0mm,bottom=0mm,%
+ boxsep=0mm,%
+ arc=0.2em,%
+ sharp corners=south,%
+ after skip=0mm%
+ ]%
+ \textcolor{white}{\gtfamily\,\,\,#1\,\,\,}%
+ \coloraftertext{colback=#3!30!white,arc=0.2em,sharp corners=south,}{\hspace{-2mm}\gtfamily\textcolor{black}{#2}}%
+ \end{tcolorbox}%
+ \nopagebreak\vspace{-2pt}\nopagebreak%
+ \begin{tcolorbox}%
+ [%
+ enhanced,%
+ breakable,%
+ colback=#4,%
+ colbacktitle=#3!90!white,%
+ colframe=#3!90!white,%
+ sharp corners=north,%
+ before skip=0mm,%
+ before upper={\hspace{1\zw}}%
+ ]%
+ }%
+ { \end{tcolorbox}}%
+
+\newcommand{\subcolorindexbox}[1]%
+ {%
+ \begin{tikzpicture}[scale=0.02\zw]%
+ \draw (0,0) circle [radius=2];%
+ \draw (0,0) circle [radius=1.5];%
+ \draw (0,0)--(0,3);%
+ \draw (0,0)--(0,-3);%
+ \draw (0,0)--(3,0);%
+ \draw (0,0)--(-3,0);%
+ \draw (0.5,0.5)--(0,3);%
+ \draw (0.5,0.5)--(3,0);%
+ \draw (0.5,-0.5)--(0,-3);%
+ \draw (0.5,-0.5)--(3,0);%
+ \draw (-0.5,0.5)--(0,3);%
+ \draw (-0.5,0.5)--(-3,0);%
+ \draw (-0.5,-0.5)--(0,-3);%
+ \draw (-0.5,-0.5)--(-3,0);%
+ \draw (0,0)--(1,1);%
+ \draw (0,0)--(1,-1);%
+ \draw (0,0)--(-1,1);%
+ \draw (0,0)--(-1,-1);%
+ \draw (1,1)--(0.4545,0.7272);%
+ \draw (1,1)--(0.7272,0.4545);%
+ \draw (1,-1)--(0.7272,-0.4545);%
+ \draw (1,-1)--(0.4545,-0.7272);%
+ \draw (-1,1)--(-0.4545,0.7272);%
+ \draw (-1,1)--(-0.7272,0.4545);%
+ \draw (-1,-1)--(-0.4545,-0.7272);%
+ \draw (-1,-1)--(-0.7272,-0.4545);%
+
+ \fill[#1] (0,0) circle [radius=2];%
+ \fill[white] (0,0) circle [radius=1.5];%
+
+ \fill[#1] (0,0)--(0.5,0.5)--(3,0);%
+ \draw[#1!50!white][very thin] (0.5,0.5)--(3,0);%
+ \fill[#1] (0.5,0.5)--(0.4545,0.7272)--(1,1);%
+ \draw[#1!50!white][very thin] (1,1)--(0.7272,0.4545);%
+ \draw[#1!50!white][very thin] (0.5,0.5)--(0,3);%
+ \draw[#1!50!white][very thin] (0,0)--(0,3);%
+ \draw[#1!50!white][very thin] (0,0)--(3,0);%
+ \fill[white] (0,3)--(0,0)--(0.5,0.5);%
+
+ \fill[#1] (0,3)--(-0.5,0.5)--(0,0);%
+ \draw[#1!50!white][very thin] (-1,1)--(-0.4545,0.7272);%
+ \fill[#1] (-1,1)--(-0.5,0.5)--(-0.7272,0.4545);%
+ \draw[#1!50!white][very thin] (0,3)--(-0.5,0.5);%
+ \fill[white] (-3,0)--(0,0)--(-0.5,0.5);%
+ \draw[#1!50!white][very thin] (-0.5,0.5)--(-3,0);%
+
+ \fill[#1] (-3,0)--(0,0)--(-0.5,-0.5);%
+ \draw[#1!50!white][very thin] (-3,0)--(-0.5,-0.5);%
+ \draw[#1!50!white][very thin] (0,0)--(-1,-1);%
+ \draw[#1!50!white][very thin] (-1,-1)--(-0.4545,-0.7272);%
+ \draw[#1!50!white][very thin] (-1,-1)--(-0.7272,-0.4545);%
+ \fill[#1] (-1,-1)--(-0.5,-0.5)--(-0.4545,-0.7272);%
+ \fill[white] (0,-3)--(0,0)--(-0.4545,-0.7272);%
+ \draw[#1!50!white][very thin] (-0.5,-0.5)--(0,-3);%
+
+ \fill[#1] (0,-3)--(0,0)--(0.5,-0.5);%
+ \draw[#1!50!white][very thin] (0,-3)--(0.5,-0.5);%
+ \draw[#1!50!white][very thin] (0,0)--(1,-1);%
+ \draw[#1!50!white][very thin] (1,-1)--(0.7272,-0.4545);%
+ \draw[#1!50!white][very thin] (1,-1)--(0.4545,-0.7272);%
+ \fill[#1] (1,-1)--(0.5,-0.5)--(0.7272,-0.4545);%
+ \fill[white] (3,0)--(0,0)--(0.5,-0.5);%
+ \draw[#1!50!white][very thin] (0.5,-0.5)--(3,0);%
+ \end{tikzpicture}%
+ }%
+\newlength{\colorindexboxlength}%
+\NewDocumentEnvironment{colorindexbox}{ O{black} }%
+ {%
+ \begin{tcolorbox}%
+ [%
+ skin=enhancedmiddle jigsaw,%
+ breakable,%
+ sidebyside,%
+ lefthand width=\colorindexboxlength+5mm,%
+ colback=white,%
+ colframe=white,%
+ opacityback=0,%
+ opacityframe=0,%
+ before upper={\hspace{1\zw}}%
+ ]%
+ \settowidth{\colorindexboxlength}{\subcolorindexbox{#1}}%
+ \subcolorindexbox{#1}%
+ \tcblower%
+ }%
+ {\end{tcolorbox}}%
+\makeatother
+
+\begin{document}%
+
+\circlestitle{相加平均と相乗平均の関係}
+
+\ascboxB{\textgt{相加平均と相乗平均の関係 基礎編}}
+
+\noindent
+\begin{ascolorbox9}{相加平均と相乗平均の関係}
+\相加相乗平均{公式}[b]
+\相加相乗平均{証明}
+\end{ascolorbox9}
+
+\begin{組カラーボックス}{前期第16回\quad 例題21}{相加平均・相乗平均の関係\ajKakko1}
+次の値を求めよ。
+\begin{kakkoenu}
+\item $x>-1$のとき,$2x+\bunsuu1{x+1}$の最小値
+\item $x>0$のとき,$\left(x+\bunsuu1x\right)\left(x+\bunsuu4x\right)$の最小値
+\end{kakkoenu}
+\end{組カラーボックス}
+
+\begin{ascolorbox3}{\textcolor{white}{解答欄解答欄解答欄}}
+\breaklines{15}
+\hfill{(目標時間:5分)}
+\end{ascolorbox3}
+
+\begin{colorkeybox}
+「$>0$」と「相加平均と相乗平均の関係」の記述は忘れずに!
+\end{colorkeybox}
+
+\begin{sankoubox}
+どんな最大・最小問題においても,有名不等式は第一選択肢に挙げたいところです。しかし,ただ適応するだけではなく,一工夫必要なものもたくさんあります。それをそれぞれ見ていきましょう。
+
+\begin{maruenu}
+\item そのまま適用すると$2\sqrt{\bunsuu{2x}{x+1}}$となり,なにもうまくいきません。そこで分母が$x+1$であることに注目し,それと相殺できるように$2x$の部分を$2x+2-2$とするとうまくいくでしょう。
+\item 普通に掛け算をした後に適用する分には問題ありませんが,$\left(x+\bunsuu1x\right),\,\left(x+\bunsuu4x\right)$それぞれについて個別に適用し($2\times4$としてしまうこと),それをかけてしまうと大問題です。なぜならそれぞれにおいて等号が成立する条件が違うからです。(前者は$x=1$,\,後者は4$x=2$)そのため,相加平均・相乗平均の関係は最後にまとめて用いること,そして用いた直後は必ず等号成立条件を確認することを心がけてください。
+\end{maruenu}
+\end{sankoubox}
+
+\begin{colorindexbox}
+以前に証明した
+\[x^3+y^3+z^3-3xyz\leqq0\]
+が分かれば,相加相乗平均を3文字に拡張した関係式の証明もできるので,宿題が終わってなお余力のある人は試してみよう!
+\end{colorindexbox}
+
+\begin{sankoubox}
+\url{https://mmsankosho.com/3kousoukasoujounoshoumeinoyarikata/}
+\end{sankoubox}
+
+\mbox{\UTF{27A1}}\ignorespaces\quad 将来的には$n$個に拡張した証明もやります。\vspace{.5\zw}
+
+\vfill{\hfill{(問題集\ p.35〜p.38)}}
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.pdf b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.pdf
new file mode 100644
index 0000000000..e0b9699357
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.pdf
Binary files differ
diff --git a/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.sty b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.sty
new file mode 100644
index 0000000000..201d70314e
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.sty
@@ -0,0 +1,3779 @@
+\NeedsTeXFormat{LaTeX2e}%
+
+\ProvidesPackage{mathformula}[2022/9/30,Version 1.0.0]%
+
+\RequirePackage{luatexja}%
+\RequirePackage{luatexja-fontspec}%
+\RequirePackage{luatexja-otf}%
+%\RequirePackage[hiragino-pron,deluxe,expert,bold]{luatexja-preset}%
+\RequirePackage{amsmath,amssymb,siunitx,ifthen,xparse,tikz,mathtools,graphics}%
+\usetikzlibrary{arrows,shapes,intersections,calc,angles,decorations.shapes,arrows.meta,quotes,through,decorations.text}%
+
+\newcommand{\空行}{\vskip\baselineskip}%
+\newcommand{\半空行}{\vskip.5\baselineskip}%
+\newcommand{\証明開始}{\noindent\textgt{【証明】}\par}%
+\newcommand{\証明終了}{\@rightalign{\ (Q.E.D.)}\par}%
+\newcommand{\数式カンマスペース}{,\ }%
+\newcommand*{\@rightalign}[1]%
+ {%
+ \hspace{\parfillskip}%
+ \mbox{}\linebreak[0]\mbox{}%
+ \nolinebreak[4]\hfill\mbox{#1}%
+ }%
+\newcommand{\Ttyuukakko}[1]{\left(#1\right)}%
+\newcommand{\Ttyuubracket}[1]{\left[#1\right]}%
+\newcommand{\Tdaikakko}[1]{\left\{#1\right\}}%
+\newcommand{\Tzettaiti}[1]{\left|#1\right|}%
+\def\shikimaru#1{\text{\quad$\cdots\cdots$\,\ajMaru{#1}}}
+\let\originalbigtriangleup\bigtriangleup
+\def\bigtriangleup#1{\originalbigtriangleup{\mathrm{#1}}}
+\DeclareRobustCommand\bunsuu{\@ifstar{\bunsuu@}{\@@bunsuu}}
+\def\@@bunsuu#1#2{%
+ \dfrac{\lower.44ex\hbox{$\,#1\,$}}{\lower-.1ex\hbox{$\,#2\,$}}}%
+\newlength{\@tempdima@math}
+\newlength{\@tempdimb@math}
+\newlength{\@tempdimd@math@math}
+\newlength{\@tempdimw@math}
+\DeclareRobustCommand\EMvphantom{\@ifstar{\EMvphantom@}{\EM@vphantom}}
+\def\EM@vphantom{\@ifnextchar[{\@EMvphantom}{\@EMvphantom[\apnd@ht]}}
+\def\@EMvphantom[#1]{\@ifnextchar[{\@@EMvphantom[#1]}{%
+ \@@EMvphantom[#1][#1]}}
+\def\@@EMvphantom[#1][#2]#3{{%
+% \edef\apnd@ht{#1}\edef\apnd@dp{#2}%
+ \@ifundefined{hakobanpush}{%
+ \@@@EMvphantom{#3}\ignorespaces
+ }{%
+ \hakobanpush\@@@EMvphantom{#3}\hakobanpop\ignorespaces
+ }%
+ \setlength{\@tempdima@math}{\ht0+#1}%
+ \setlength{\@tempdimb@math}{\dp0+#2}%
+ \vrule width \z@ height \@tempdima@math depth \@tempdimb@math
+}}
+\def\@@@EMvphantom#1{%
+ \ifmmode
+ \setbox0=\hbox{{$#1$}}%
+ \else
+ \setbox0=\hbox{{#1}}%
+ \fi
+}%
+\def\EMvphantom@{\@ifnextchar[{\@EMvphantom@}{\@EMvphantom@[\apnd@ht]}}%
+\def\@EMvphantom@[#1]{\@ifnextchar[{\@@EMvphantom@[#1]}{%
+ \@@EMvphantom@[#1][#1]}}%
+\def\@@EMvphantom@[#1][#2]#3{{\smash{#3}}%
+ \@@EMvphantom[#1][#2]{#3}\ignorespaces}%
+\newsavebox{\@tempboxd@math}
+\long\def\@colonfor#1:=#2\do#3{% % \@for の区切り記号を : に変えたバージョン
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else
+ \expandafter\@colonforloop#2:{\@nil}:\@nil\@@#1{#3}\fi}
+\long\def\@colonforloop#1:#2:#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@icolonforloop #3\@@#4{#5}\fi\fi}
+\long\def\@icolonforloop#1:#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \expandafter\@fornoop \else
+ #4\relax\expandafter\@icolonforloop\fi#2\@@#3{#4}}%
+\def\phrases@math{\renewcommand{\arraystretch}{1}\@ifnextchar<{\@phrases@math}{\@phrases@math<lr>}}
+\def\@phrases@math<#1>{\@ifnextchar[{\@@phrases@math<#1>}{\@@phrases@math<#1>[l]}}
+\def\@@phrases@math<#1>[#2]{\@ifnextchar({\@@@phrases@math<#1>[#2]}{\@@@phrases@math<#1>[#2](c)}}
+\def\@@@phrases@math<#1>[#2](#3){\@ifnextchar|{\@@@@phrases@math<#1>[#2](#3)}{\@@@phrases@math<#1>[#2](#3)|0pt|}}
+\def\@@@@phrases@math<#1>[#2](#3)|#4|#5{%
+ \savebox{\@tempboxd@math}{%
+ \EMvphantom*[5pt]{%
+ \ensuremath{%
+ \ifthenelse{\equal{#1}{lr}\OR\equal{#1}{l}}{\left\{}{\left.}%
+ \kern-.5ex%
+ \setbox8\hbox{\begin{tabular}{#2}#5\end{tabular}}%
+ \setlength{\@tempdimw@math}{\dp8+#4}%
+ \setbox9 \vtop to \@tempdimw@math {\leftskip0pt\rightskip0pt\hsize\wd8\noindent\smash{\usebox8}}%
+ \usebox9%
+ \kern-.5ex%
+ \ifthenelse{\equal{#1}{lr}\OR\equal{#1}{r}}{\right\}\ }{\right.}%
+ }%
+ }%
+ }%
+ \if#3t%
+ \setlength{\@tempdimd@math@math}{-\ht\@tempboxd@math + \baselineskip}%
+ \else
+ \if#3b%
+ \setlength{\@tempdimd@math@math}{\ht\@tempboxd@math - \baselineskip + 1pt}%
+ \else
+ \setlength{\@tempdimd@math@math}{0pt}%
+ \fi
+ \fi
+ \raisebox{\@tempdimd@math@math}{\usebox{\@tempboxd@math}}%
+}
+
+\NewDocumentCommand{\二次式展開}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a+b}^2=a^2+2ab+b^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a+b}^2=a^2+2ab+b^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a-b}^2=a^2-2ab+b^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a-b}^2=a^2-2ab+b^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{x-a}\Ttyuukakko{x+a}=x^2-a^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}
+ {\[\Ttyuukakko{x-a}\Ttyuukakko{x+a}=x^2-a^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{x+a}\Ttyuukakko{x+b}=x+\Ttyuukakko{a+b}x+ab$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{x+a}\Ttyuukakko{x+b}=x+\Ttyuukakko{a+b}x+ab\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\二次式因数分解}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$a^2+2ab+b^2=\Ttyuukakko{a+b}^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[a^2+2ab+b^2=\Ttyuukakko{a+b}^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$a^2-2ab+b^2=\Ttyuukakko{a-b}^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[a^2-2ab+b^2=\Ttyuukakko{a-b}^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$x^2-a^2=\Ttyuukakko{x-a}\Ttyuukakko{x+a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}
+ {\[x^2-a^2=\Ttyuukakko{x-a}\Ttyuukakko{x+a}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$x+\Ttyuukakko{a+b}x+ab=\Ttyuukakko{x+a}\Ttyuukakko{x+b}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[x+\Ttyuukakko{a+b}x+ab=\Ttyuukakko{x+a}\Ttyuukakko{x+b}\]}{\relax}%
+
+ }%
+
+
+\NewDocumentCommand{\平方根}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$a$は実数として,$\sqrt{a^2}=\Tzettaiti{a}$}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ $a$は実数として,%
+ \[\sqrt{a^2}=\Tzettaiti{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {%
+ $a\geqq0$のとき,%
+ $\Ttyuukakko{\sqrt{a}}^2=\Ttyuukakko{-\sqrt{a}}^2=a\数式カンマスペース\sqrt{a}\leqq0$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ $a\leqq0$のとき,%
+ \[\Ttyuukakko{\sqrt{a}}^2=\Ttyuukakko{-\sqrt{a}}^2=a\数式カンマスペース\sqrt{a}\leqq0\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$\sqrt{a}=\Tzettaiti{a}$}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {\[\sqrt{a}=\Tzettaiti{a}\]}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {%
+ $a>0\数式カンマスペース b>0\数式カンマスペース a\neq b$のとき,%
+ $\sqrt{a}\sqrt{b}=\sqrt{ab}$%
+ }%
+ {\relax}
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース b>0\数式カンマスペース a\neq b$のとき,%
+ \[\sqrt{a}\sqrt{b}=\sqrt{ab}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{i}}%
+ {$\bunsuu{\sqrt{a}}{\sqrt{b}}=\sqrt{\bunsuu{a}{b}}$}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{b}}%
+ {\[\bunsuu{\sqrt{a}}{\sqrt{b}}=\sqrt{\bunsuu{a}{b}}\]}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{i}}%
+ {$\sqrt{k^2a}=k\sqrt{a}$}%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{b}}%
+ {\[\sqrt{k^2a}=k\sqrt{a}\]}%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\一次不等式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {$a<b$のとき\数式カンマスペース $a+c<b+c$}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ $a<b$のとき\数式カンマスペース %
+ \[a+c<b+c\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$c>0$のとき,$ac<bc$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ $c>0$のとき,%
+ \[ac<bc\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {$c<0$のとき,$ac>bc$}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ $c<0$のとき,%
+ \[ac>bc\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\集合}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{積集合}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{A\cap B}$}{\relax}%
+ \ifthenelse{\equal{#1}{積集合}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{A\cap B}\]}{\relax}%
+ \ifthenelse{\equal{#1}{和集合}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{A\cup B}$}{\relax}%
+ \ifthenelse{\equal{#1}{和集合}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{A\cup B}\]}{\relax}%
+ \ifthenelse{\equal{#1}{補集合}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\overline{A}}$}{\relax}%
+ \ifthenelse{\equal{#1}{補集合}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\overline{A}}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\対偶}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定理}\AND\equal{#2}{i}}%
+ {%
+ $P$ならば$Q$の命題において,\par%
+ 逆は$Q$ならば$P$\par%
+ 裏は$P$でないならば$Q$でない\par%
+ 対偶は$Q$でないならば$P$でない\par%
+ 対偶と元の命題の真偽は一致する。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定理}\AND\equal{#2}{b}}%
+ {%
+ $P$ならば$Q$の命題において,\par%
+ 逆は$Q$ならば$P$\par%
+ 裏は$P$でないならば$Q$でない\par%
+ 対偶は$Q$でないならば$P$でない\par%
+ 対偶と元の命題の真偽は一致する。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 命題を「$p$ならば$q$」とし$p$の真理集合を$P$\数式カンマスペース $q$の真理集合を$Q$とする。\par%
+ 「$p$ならば$q$」が真のとき,$Q\subset P\Leftrightarrow\overline{P}\subset\overline{Q}$より対偶命題「$q$でないならば$p$でない」は真。\par%
+ 「$p$ならば$q$」が偽のとき,$Q\not\subset P\Leftrightarrow\overline{P}\not\subset\overline{Q}$より対偶命題「$q$でないならば$p$でない」は偽。\par
+ 従って,対偶命題と元の命題の真偽は一致する。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\newcommand{\背理法}{命題$P$ならば$Q$に対して$P$でないならば$Q$と仮定して矛盾を示す。}%
+
+
+\NewDocumentCommand{\二次関数}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{標準形}\AND\equal{#2}{i}}%
+ {$y=a\Ttyuukakko{x-p}^2+q$}{\relax}%
+ \ifthenelse{\equal{#1}{標準形}\AND\equal{#2}{b}}%
+ {\[y=a\Ttyuukakko{x-p}^2+q\]}{\relax}%
+ \ifthenelse{\equal{#1}{一般形}\AND\equal{#2}{i}}%
+ {$y=ax^2+bx+c$}{\relax}%
+ \ifthenelse{\equal{#1}{一般形}\AND\equal{#2}{b}}%
+ {\[y=ax^2+bx+c\]}{\relax}%
+ \ifthenelse{\equal{#1}{切片形}\AND\equal{#2}{i}}%
+ {$y=a\Ttyuukakko{x-\alpha}\Ttyuukakko{x-\beta}$}{\relax}%
+ \ifthenelse{\equal{#1}{切片形}\AND\equal{#2}{b}}%
+ {\[y=a\Ttyuukakko{x-\alpha}\Ttyuukakko{x-\beta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{平方完成}\AND\equal{#2}{i}}%
+ {$y=ax^2+bx+c$に対して,$y=a\Ttyuukakko{x+\bunsuu{b}{2a}}-\bunsuu{b^2-4ac}{4a}$}{\relax}%
+ \ifthenelse{\equal{#1}{平方完成}\AND\equal{#2}{b}}%
+ {%
+ $y=ax^2+bx+c$に対して,%
+ \[y=a\Ttyuukakko{x+\bunsuu{b}{2a}}-\bunsuu{b^2-4ac}{4a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\二次方程式の解の公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$ax^2+bx+c=0 \Ttyuukakko{a\neq0}$に対して,$x=\bunsuu{-b\pm\sqrt{b^2-4ac}}{2a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ $ax^2+bx+c=0 \Ttyuukakko{a\neq0}$に対して,%
+ \[x=\bunsuu{-b\pm\sqrt{b^2-4ac}}{2a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明A}}%
+ {%
+ \証明開始%
+ \vspace{-1\zw}%
+ \begin{align*}%
+ ax^2+bx+c&=0&\\%
+ a\Ttyuukakko{x^2+\bunsuu{b}{a}x}+c&=0&\\%
+ a\Tdaikakko{\Ttyuukakko{x+\bunsuu{b}{2a}}^2-\bunsuu{b^2}{4a^2}}+c&=0&\\%
+ a\Ttyuukakko{x+\bunsuu{b}{2a}}^2-\bunsuu{b^2}{4a}+c&=0&\\%
+ \Ttyuukakko{x+\bunsuu{b}{2a}}^2&=\bunsuu{b^2-4ac}{4a^2}&\\%
+ x&=\bunsuu{-b\pm\sqrt{b^2-4ac}}{2a}%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明B}}%
+ {%
+ \証明開始%
+ \vspace{-1\zw}%
+ \begin{align*}%
+ ax^2+bx+c&=0&\\%
+ 4a^2x^2+4abx+4ac&=0&\\%
+ \Ttyuukakko{2ax+b}^2-b^2+4ac&=0&\\%
+ 2ax+b&=\pm\sqrt{b^2-4ac}&\\%
+ x&=\bunsuu{-b\pm\sqrt{b^2-4ac}}{2a}%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角比の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義A}\AND\equal{#2}{i}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,0)--(1.5,0)--(1.5,2)--cycle;%
+ \draw(0,0)node[below]{A};%
+ \draw(1.5,0)node[below]{B};%
+ \draw(1.5,2)node[above]{C};%
+ \draw(0,0)coordinate(A);%
+ \draw(1.5,0)coordinate(B);%
+ \draw(1.5,2)coordinate(C);%
+ \draw pic[draw,black,thin,angle radius=0.3cm]{right angle=A--B--C};%
+ \draw pic["$\theta$",draw=black,->,thin,angle eccentricity=1.4,angle radius=0.4cm]{angle=B--A--C};%
+ \end{tikzpicture}%
+ \空行%
+ 図の様な直角三角形ABCにおいて$\angle\mathrm{CAB}=\theta$のとき,%
+ \[%
+ \sin\theta=\bunsuu{\text{BC}}{\text{AC}}\数式カンマスペース%
+ \cos\theta=\bunsuu{\text{AB}}{\text{AC}}\数式カンマスペース%
+ \tan\theta=\bunsuu{\text{BC}}{\text{AB}}%
+ \]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定義B}\AND\equal{#2}{i}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,0)--(1.05,1.4);%
+ \draw[dashed](0.75,1)--(0,1);%
+ \draw(0,0)node[below right]{O};%
+ \draw(0.75,0)node[below]{$x$};%
+ \draw(0,1)node[left]{$y$};%
+ \draw(0.8,1)node[right]{P$\Ttyuukakko{x,y}$};%
+ \draw(0,0)circle[radius=1.25];%
+ \draw(0,-1.25)node[below left]{$-r$};%
+ \draw(-1.25,0)node[below left]{$-r$};%
+ \draw(0,1.25)node[above left]{$r$};%
+ \draw(1.25,0)node[below right]{$r$};%
+ \draw[->,>=stealth,semithick](-1.5,0)--(1.5,0)node[right]{$x$};%
+ \draw[->,>=stealth,semithick](0,-1.5)--(0,1.5)node[above]{$y$};%
+ \draw[dashed](0,0)coordinate(O)-- (0.75,0)coordinate(Q)-- (0.75,1)coordinate(P);%
+ \draw pic["$\theta$",draw=black,->,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=Q--O--P};%
+ \end{tikzpicture}%
+ \空行%
+ 図において%
+ \[\sin\theta=\bunsuu{y}{r}\数式カンマスペース\cos\theta=\bunsuu{x}{r}\数式カンマスペース\tan\theta=\bunsuu{y}{x}\]%
+ このとき,$r=1$にしても一般性を失わない。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角比の相互関係}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin^2\theta+\cos^2\theta=1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin^2\theta+\cos^2\theta=1\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\tan\theta=\bunsuu{\sin\theta}{\cos\theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\tan\theta=\bunsuu{\sin\theta}{\cos\theta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$1+\tan^2\theta=\bunsuu{1}{\cos^2\theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[1+\tan^2\theta=\bunsuu{1}{\cos^2\theta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,0)--(1.05,1.4);%
+ \draw[dashed](0.75,1)--(0,1);%
+ \draw(0,0)node[below right]{O};%
+ \draw(0.75,0)node[below]{$x$};%
+ \draw(0,1)node[left]{$y$};%
+ \draw(0.8,1)node[right]{P$\Ttyuukakko{x,y}$};%
+ \draw(0,0)circle[radius=1.25];%
+ \draw(0,-1.25)node[below left]{$-r$};%
+ \draw(-1.25,0)node[below left]{$-r$};%
+ \draw(0,1.25)node[above left]{$r$};%
+ \draw(1.25,0)node[below right]{$r$};%
+ \draw[->,>=stealth,semithick](-1.5,0)--(1.5,0)node[right]{$x$};%
+ \draw[->,>=stealth,semithick](0,-1.5)--(0,1.5)node[above]{$y$};%
+ \draw[dashed](0,0)coordinate(O)-- (0.75,0)coordinate(Q)-- (0.75,1)coordinate(P);%
+ \draw pic["$\theta$",draw=black, ->,thin,angle eccentricity=1.4,angle radius=0.4cm]{angle=Q--O--P};%
+ \end{tikzpicture}%
+ \空行%
+ 図において,$\sin\theta=\bunsuu{y}{r}\数式カンマスペース\quad\cos\theta=\bunsuu{x}{r}$より%
+ \[\sin^2\theta+\cos^2\theta=\bunsuu{y^2+x^2}{r^2}\]%
+ ここで,三平方の定理より$x^2+y^2=r^2$なので%
+ \[\sin^2\theta+\cos^2\theta=\bunsuu{r^2}{r^2}=1\]%
+ \空行%
+ $\sin\theta=\bunsuu{y}{r}\数式カンマスペース\quad\cos\theta=\bunsuu{x}{r}\quad\tan\theta=\bunsuu{y}{x}$より%
+ \[\bunsuu{\sin\theta}{\cos\theta}=\bunsuu{y}{x}=\tan\theta\]%
+ \空行%
+ $\sin^2\theta+\cos^2\theta=1$の両辺を$\cos^2\theta$で割ることで,%
+ \[\bunsuu{\sin^2\theta}{\cos^2\theta}+1=\bunsuu{1}{\cos^2\theta}\]%
+ ここで,$\bunsuu{\sin\theta}{\cos\theta}=\tan\theta$なので%
+ \[\tan^2\theta+1=\bunsuu{1}{\cos^2\theta}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\ユークリッド幾何の公理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公理A}\AND\equal{#2}{i}}%
+ {二つの異なる二点を与えることで,それを通る直線が一意的に決定する。}{\relax}%
+ \ifthenelse{\equal{#1}{公理B}\AND\equal{#2}{i}}%
+ {一つの直線$l$と$l$上にない一つの点が与えられたとき,与えられた点を通り,$l$に平行な直線をただ一つ引くことができる。}{\relax}%
+ }%
+
+
+\newcommand{\直線}{両方向に限りなく伸びたまっすぐな線。}%
+
+
+\newcommand{\線分}{直線ABのうち,二点A\数式カンマスペース Bを端とする部分。}%
+
+
+\newcommand{\半直線}{直線ABのうち,一方の点を端とし,もう一方に限りなく伸びた部分。}%
+
+
+\newcommand{\距離}
+ {%
+ 空でない集合Xの元$x\数式カンマスペース y$にたいして,実数値$d(x\数式カンマスペース y)$が定義され,%
+ \[d(x\数式カンマスペース y)=0\Leftrightarrow x=y\数式カンマスペース\quad(x\数式カンマスペース y)=d(y\数式カンマスペース x)\数式カンマスペース\quad(x\数式カンマスペース y)\leqq d(x\数式カンマスペース y)+d(y\数式カンマスペース x)\]%
+ の三つの性質を満たす$d$をX上の距離といい,$(\text{X}\数式カンマスペース d)$を距離空間という。 %
+ }%
+
+
+\newcommand{\円}{平面上の一点から等しい距離にある点の集合。}%
+
+
+\newcommand{\弧}{円周上の二点A\数式カンマスペース Bに対して,A\数式カンマスペース Bによって分けられた円周の各々の部分を弧ABといい,$\overarc{AB}$と表す。}%
+
+
+\newcommand{\弦}{弧の両端を結んだ線分。}%
+
+
+\newcommand{\中心角}{円の中心を頂点として,2辺が弧の両端を通る角を,その弧に対する中心角という。}%
+
+
+\NewDocumentCommand{\対頂角}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,0)--(2,2);%
+ \draw(2,0)--(0,2);%
+ \draw(0,0)coordinate(O);%
+ \draw(2,2)coordinate(A);%
+ \draw(2,0)coordinate(B);%
+ \draw(0,2)coordinate(C); %
+ \draw(1,1)coordinate(D);%
+ \draw pic["A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=A--D--C};%
+ \draw pic["B",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=O--D--B};%
+ \end{tikzpicture}%
+ \空行%
+ 図において,$\angle\mathrm{A}$と$\angle\mathrm{B}$を対頂角という。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質}\AND\equal{#2}{i}}%
+ {対頂角は等しい。}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,0)--(2,2);%
+ \draw(2,0)--(0,2);%
+ \draw(0,0)coordinate(O);%
+ \draw(2,2)coordinate(A);%
+ \draw(2,0)coordinate(B);%
+ \draw(0,2)coordinate(C);%
+ \draw(1,1)coordinate(D);%
+ \draw pic["A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=A--D--C};%
+ \draw pic["\,C",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=B--D--A};%
+ \draw pic["B",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=O--D--B};%
+ \end{tikzpicture}%
+ \空行%
+ \[180^\circ =\angle\mathrm{A}+\angle\mathrm{C}\]%
+ \[180^\circ=\angle\mathrm{B}+\angle\mathrm{C}\]%
+ \[\Leftrightarrow\angle\mathrm{A}=\angle\mathrm{B}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\錯角}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1,-0.5)--(2,1);%
+ \draw(-1,-1)--(2,-1);%
+ \draw(0,-2)--(2,2);%
+ \draw(2,2)coordinate(A);%
+ \draw(1.3333,0.66666)coordinate(B);%
+ \draw(2,1)coordinate(C);%
+ \draw(2,-1)coordinate(D);%
+ \draw(0.5,-1)coordinate(E);%
+ \draw(0,-2)coordinate(F);%
+ \draw(-1,-1)coordinate(G);%
+ \draw(-1,-0.5)coordinate(H);%
+ \draw pic["\,A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=E--B--C};%
+ \draw pic["B\,\,\,",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=B--E--G};%
+ \end{tikzpicture}
+ \空行%
+ 図において,$\angle\mathrm{A}$と$\angle\mathrm{B}$を錯角という。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質}\AND\equal{#2}{i}}%
+ {直線$l\数式カンマスペース m$において,錯角が等しい$\Leftrightarrow$直線$l,m$は平行。}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(-1,1)--(2,1);%
+ \draw(-1,-1)--(2,-1);%
+ \draw(0,-2)--(2,2);%
+ \draw(2,2)coordinate(A);%
+ \draw(1.5,1)coordinate(B);%
+ \draw(2,1)coordinate(C);%
+ \draw(2,-1)coordinate(D);%
+ \draw(0.5,-1)coordinate(E);%
+ \draw(0,-2)coordinate(F);%
+ \draw(-1,-1)coordinate(G);%
+ \draw(-1,1)coordinate(H);%
+ \draw pic["\,\,\,A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=E--B--C};%
+ \draw pic["B\,\,\,",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=A--E--G};%
+ \draw pic["C\,\,\,",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.3cm] {angle=A--B--H};%
+ \end{tikzpicture}
+ \空行%
+ \begin{enumerate}%
+ \item 「平行ならば錯角が等しい」の証明。%
+ \空行%
+ 対頂角は等しいので,%
+ \[\angle\mathrm{A}=\angle\mathrm{C}\]%
+ ここで,$\angle\mathrm{B}$と$\angle\mathrm{C}$は同位角なので等しいので,%
+ \[\angle\mathrm{A}=\angle\mathrm{B}\]%
+ \item 「錯角が等しいならば平行」の証明。%
+ \空行%
+ 錯角が等しいので,%
+ \[\angle\mathrm{A}=\angle\mathrm{B}\]%
+ 対頂角は等しいので,%
+ \[\angle\mathrm{A}=\angle\mathrm{C}\]%
+ \[\Leftrightarrow\angle\mathrm{C}=\angle\mathrm{B}\]%
+ 即ち,同位角が等しいので二直線は平行。%
+ \end{enumerate}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+\NewDocumentCommand{\同位角}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1,-0.5)--(2,1);%
+ \draw(-1,-1)--(2,-1);%
+ \draw(0,-2)--(2,2);%
+ \draw(2,2)coordinate(A);%
+ \draw(1.3333,0.66666)coordinate(B);%
+ \draw(2,1)coordinate(C);%
+ \draw(2,-1)coordinate(D);%
+ \draw(0.5,-1)coordinate(E);%
+ \draw(0,-2)coordinate(F);%
+ \draw(-1,-1)coordinate(G);%
+ \draw(-1,-0.5)coordinate(H);%
+ \draw pic["\,\,A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=C--B--A};%
+ \draw pic["\,\,B",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=D--E--B};%
+ \end{tikzpicture}
+ \空行%
+ 図において,$\angle\mathrm{A}$と$\angle\mathrm{B}$を同位角という。
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公理}\AND\equal{#2}{i}}%
+ {直線$l,m$において,同位角が等しい$\Leftrightarrow$直線$l\数式カンマスペース m$は平行。}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\正弦定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {三角形ABCの外接円の半径をRとして,$\bunsuu{a}{\sin\text{A}}=2\text{R}\text{\ (}b\数式カンマスペース\text{B
+}\数式カンマスペース c\数式カンマスペース\text{Cについても同様に成立})$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 三角形ABCの外接円の半径をRとして,%
+ \[\bunsuu{a}{sin\text{A}}=2\text{R}\]%
+ ($b,B,c,C$についても同様に成立)%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(0,1.25)coordinate(A)-- (1,-0.75)coordinate(C)-- (-1,-0.75)coordinate(B);%
+ \draw pic["A",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=B--A--C};%
+ \draw(-1,0.75)coordinate(D);%
+ \draw pic["D",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=B--D--C};%
+ \draw(0,1.25)--(1,-0.75)--(-1,-0.75)--cycle;%
+ \draw(0,1.25)node[above]{A};%
+ \draw(1,-0.75)node[below]{C};%
+ \draw(-1,-0.75)node[left]{B};%
+ \draw(-1,0.75)node[left]{D};%
+ \draw(-1,0.75)--(1,-0.75)--(-1,-0.75)--cycle;%
+ \draw [line width=0.2pt] (B) to [bend right=27] node [fill=white,midway] { $a$ }(C);%
+ \draw(0,0)circle[radius=1.25];%
+ \draw pic[draw,black,thin,angle radius=0.3cm] {right angle=D--B--C};%
+ \draw(0,0)node[above]{O};%
+ \draw(0,0)coordinate(O);%
+ \fill[black](O)circle(0.03);%
+ \end{tikzpicture}%
+ \空行%
+ 図において円周角の定理より,%
+ \[\angle\mathrm{A}=\angle\mathrm{D}\]%
+ なので,円Oの半径をRとして$\sin\text{A}=\sin\text{D}=\bunsuu{a}{2\text{R}}$より,%
+ \[\bunsuu{a}{\sin\text{A}}=2\text{R}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\余弦定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {三角形ABCにおいて,$a^2=b^2+c^2-2bc\cos\text{A}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 三角形ABCにおいて,%
+ \[a^2=b^2+c^2-2bc\cos\text{A}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(0,0)--(2.5,0)--(1.5,2)--cycle;%
+ \draw(0,0)node[below]{A};%
+ \draw(1.5,2)node[above]{B};%
+ \draw(2.5,0)node[below]{C};%
+ \draw(1.5,0)node[below]{H};%
+ \draw(0,0)coordinate(A);%
+ \draw(1.5,0)coordinate(H);%
+ \draw(1.5,2)coordinate(B);%
+ \draw(1.5,0)--(1.5,2);%
+ \draw pic[draw,black,thin,angle radius=0.3cm] {right angle=A--H--B};%
+ \draw pic["$A$",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=H--A--B};%
+ \end{tikzpicture}%
+ \空行%
+ 図において$\text{BC}=a,\text{CA}=b,\text{AC}=c$として,%
+ \[\text{BH}=c\sin\text{A},\quad\text{AH}=c\cos\text{A}\]%
+ また,三角形BHCに三平方の定理を用いることにより%
+ \[\text{CB}^2=\text{BH}^2+\text{HC}^2\]%
+ ここで,$\text{HC}=\text{AC}-\text{AH}=b-c\cos\text{A},\quad\text{BH}=c\sin\text{A}$より%
+ \begin{align*}%
+ a^2&=\Ttyuukakko{c\sin\text{A}}^2+\Ttyuukakko{b-c\cos\text{A}}^2&\\%
+ &=c^2\sin^2\text{A}+b^2-2bc\cos\text{A}+c^2\cos^2\text{A}&\\%
+ &=c^2\Ttyuukakko{1-\cos^2\text{A}}+b^2-2bc\cos\text{A}+c^2\cos^2\text{A}&\\%
+ &=b^2+c^2-2bc\cos\text{A}%
+ \end{align*}%
+ よって,%
+ \[a^2=b^2+c^2-2bc\cos\text{A}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角形の面積}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {三角形ABCの面積を$S$として,$S=\bunsuu{1}{2}bc\sin\text{A}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 三角形ABCの面積を$S$として,%
+ \[S=\bunsuu{1}{2}bc\sin\text{A}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,0)--(2.5,0)--(1.5,2)--cycle;%
+ \draw(0,0)node[below]{A};%
+ \draw(1.5,2)node[above]{B};%
+ \draw(2.5,0)node[below]{C};%
+ \draw(1.5,0)node[below]{H};%
+ \draw(0,0)coordinate(A);%
+ \draw(1.5,0)coordinate(H);%
+ \draw(1.5,2)coordinate(B);%
+ \draw(1.5,0)--(1.5,2);%
+ \draw pic[draw,black,thin,angle radius=0.3cm] {right angle=A--H--B};%
+ \draw pic["$A$",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=H--A--B};%
+ \end{tikzpicture}%
+ \空行%
+ 図において%
+ \[\text{BC}=a\数式カンマスペース\text{CA}=B\数式カンマスペース\text{AC}=c\]%
+ また,三角形ABCの面積を$S$として$S=\bunsuu{1}{2}\text{AC}\times\text{BH}$と,$AB\sin\text{A}=\text{BH}$から,%
+ \[S=\bunsuu{1}{2}bc\sin\text{A}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\場合の数と確率}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{和集合の要素の個数}\AND\equal{#2}{i}}%
+ {$n\Ttyuukakko{A\cup B}=n\Ttyuukakko{A}+n\Ttyuukakko{B}-n\Ttyuukakko{A\cap B}$}{\relax}%
+ \ifthenelse{\equal{#1}{和集合の要素の個数}\AND\equal{#2}{b}}%
+ {\[n\Ttyuukakko{A\cup B}=n\Ttyuukakko{A}+n\Ttyuukakko{B}-n\Ttyuukakko{A\cap B}\]}{\relax}%
+ \ifthenelse{\equal{#1}{補集合の要素の個数}\AND\equal{#2}{i}}%
+ {全体集合を$U$として,$n\Ttyuukakko{\overline{A}}=n\Ttyuukakko{U}-n\Ttyuukakko{A}$}{\relax}%
+ \ifthenelse{\equal{#1}{補集合の要素の個数}\AND\equal{#2}{b}}%
+ {全体集合を$U$として,\[n\Ttyuukakko{\overline{A}}=n\Ttyuukakko{U}-n\Ttyuukakko{A}\]}{\relax}%
+ \ifthenelse{\equal{#1}{和の法則}\AND\equal{#2}{i}}%
+ {二つの事象A\数式カンマスペース Bにたいして,Aの起こりかたが$a$通り,Bの起こりかたが$b$通りのとき,AまたはBの起こる場合の数は$a+b$通り}{\relax}%
+ \ifthenelse{\equal{#1}{和の法則}\AND\equal{#2}{b}}%
+ {二つの事象A\数式カンマスペース Bにたいして,Aの起こりかたが$a$通り,Bの起こりかたが$b$通りのとき,AまたはBの起こる場合の数は$a+b$通り}{\relax}%
+ \ifthenelse{\equal{#1}{積の法則}\AND\equal{#2}{i}}%
+ {二つの事象A\数式カンマスペース Bにたいして,Aの起こりかたが$a$通り,Bの起こりかたが$b$通りのとき,AかつBの起こる場合の数は$ab$通り}{\relax}%
+ \ifthenelse{\equal{#1}{積の法則}\AND\equal{#2}{b}}%
+ {二つの事象A\数式カンマスペース Bにたいして,Aの起こりかたが$a$通り,Bの起こりかたが$b$通りのとき,AかつBの起こる場合の数は$ab$通り}{\relax}%
+ \ifthenelse{\equal{#1}{順列}\AND\equal{#2}{i}}%
+ {異なる$n$個のものから$r$個選んで並べる場合の数は${}_{n}P_{r}=\bunsuu{n!}{\Ttyuukakko{n-r}!}$}{\relax}%
+ \ifthenelse{\equal{#1}{順列}\AND\equal{#2}{b}}%
+ {%
+ 異なる$n$個のものから$r$個選んで並べる場合の数は%
+ \[{}_{n}P_{r}=\bunsuu{n!}{\Ttyuukakko{n-r}!}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{順列の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ 異なる$n$個のものから$r$個選んで並べる場合の数は,%
+ \[n\times\Ttyuukakko{n-1}\times\Ttyuukakko{n-2}\times\cdots\Ttyuukakko{n-r+1}=\bunsuu{n!}{\Ttyuukakko{n-r}!}\]%
+ ここで,$\bunsuu{n!}{\Ttyuukakko{n-r}!}$を${}_{n} P_{r}$と表す。%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{円順列}\AND\equal{#2}{i}}%
+ {異なる$n$個のものを円に並べる場合の数は$\Ttyuukakko{n-1}!$}{\relax}%
+ \ifthenelse{\equal{#1}{円順列}\AND\equal{#2}{b}}%
+ {異なる$n$個のものを円に並べる場合の数は\[\Ttyuukakko{n-1}!\]}{\relax}%
+ \ifthenelse{\equal{#1}{円順列の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $n$個のものを円形に並べるとき,1つを固定して考えると,残り$n-1$個を並べる順列の個数に等しい。よって$\Ttyuukakko{n-1}!$通りとなる。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{重複順列}\AND\equal{#2}{i}}%
+ {$n$個から$r$個,重複を許して並べる場合の数は$n^r$}{\relax}%
+ \ifthenelse{\equal{#1}{重複順列}\AND\equal{#2}{b}}%
+ {$n$個から$r$個,重複を許して並べる場合の数は\[n^r\]}{\relax}%
+ \ifthenelse{\equal{#1}{組み合わせ}\AND\equal{#2}{i}}%
+ {異なる$n$個のものから$r$個選ぶ場合の数は,${}_{n}C_{r}=\bunsuu{n!}{r!\Ttyuukakko{n-r}!}$}{\relax}%
+ \ifthenelse{\equal{#1}{組み合わせ}\AND\equal{#2}{b}}%
+ {%
+ 異なる$n$個のものから$r$個選ぶ場合の数は,%
+ \[{}_{n}C_{r}=\bunsuu{n!}{r!\Ttyuukakko{n-r}!}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{組み合わせの証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ 異なる$n$個のものから$r$個選ぶ場合の数は,順列を重複度で割ったものなので%
+ \[\bunsuu{{}_{n} P_{r}}{r!}=\bunsuu{n!}{r!\Ttyuukakko{n-r}!}\]%
+ ここで,$\bunsuu{n!}{r!\Ttyuukakko{n-r}!}$を${}_{n}C_{r}$と表す。
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{同じものを含む順列}\AND\equal{#2}{i}}%
+ {aが$p$個,bが$q$個,cが$r$個,とある時,それら全部を並べる場合の数は,$\bunsuu{n!}{p!q!r!}$(ただし,$p+q+r=n$)}{\relax}%
+ \ifthenelse{\equal{#1}{同じものを含む順列}\AND\equal{#2}{b}}%
+ {%
+ aが$p$個,bが$q$個,cが$r$個,とある時,それら全部を並べる場合の数は,%
+ \[\bunsuu{n!}{p!q!r!}\text{\ (ただし,$p+q+r=n$)}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{同じものを含む順列の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $n$個のものを並べる場合の数は$n!$通りだが,$n$個の中に同じものが含まれているので,重複度で割ることで$\bunsuu{n!}{p!q!r!}$を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+
+ \ifthenelse{\equal{#1}{確率の定義}\AND\equal{#2}{i}}%
+ {全事象$U$のどの根元事象も同様に確からしいとき,事象Aの起こる確率は,$P\Ttyuukakko{A}=\bunsuu{n\Ttyuukakko{A}}{n\Ttyuukakko{U}}$}{\relax}%
+ \ifthenelse{\equal{#1}{確率の定義}\AND\equal{#2}{b}}%
+ {%
+ 全事象$U$のどの根元事象も同様に確からしいとき,事象Aの起こる確率は,%
+ \[P\Ttyuukakko{A}=\bunsuu{n\Ttyuukakko{A}}{n\Ttyuukakko{U}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{排反の定義}\AND\equal{#2}{i}}%
+ {事象A\数式カンマスペース Bが同時に起こりえないとき}{\relax}%
+ \ifthenelse{\equal{#1}{排反の定義}\AND\equal{#2}{b}}%
+ {事象A\数式カンマスペース Bが同時に起こりえないとき}{\relax}%
+ \ifthenelse{\equal{#1}{確率の性質A}\AND\equal{#2}{i}}%
+ {任意の事象Aに対して,$0\leqq A\leqq1$}{\relax}%
+ \ifthenelse{\equal{#1}{確率の性質A}\AND\equal{#2}{b}}%
+ {%
+ 任意の事象Aに対して,%
+ \[0\leqq A\leqq1\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{確率の性質B}\AND\equal{#2}{i}}%
+ {全事象Uの確率$P\Ttyuukakko{U}=1$}{\relax}%
+ \ifthenelse{\equal{#1}{確率の性質B}\AND\equal{#2}{b}}%
+ {%
+ 全事象Uの確率%
+ \[P\Ttyuukakko{U}=1\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{和事象の確率}\AND\equal{#2}{i}}%
+ {$P\Ttyuukakko{A\cup B}=P\Ttyuukakko{A}+P\Ttyuukakko{B}-P\Ttyuukakko{A\cap B}$}{\relax}%
+ \ifthenelse{\equal{#1}{和事象の確率}\AND\equal{#2}{b}}%
+ {\[P\Ttyuukakko{A\cup B}=P\Ttyuukakko{A}+P\Ttyuukakko{B}-P\Ttyuukakko{A\cap B}\]}{\relax}%
+ \ifthenelse{\equal{#1}{余事象の確率}\AND\equal{#2}{i}}%
+ {$P\Ttyuukakko{\overline{A}}=1-P\Ttyuukakko{A}$}{\relax}%
+ \ifthenelse{\equal{#1}{余事象の確率}\AND\equal{#2}{b}}%
+ {\[P\Ttyuukakko{\overline{A}}=1-P\Ttyuukakko{A}\]}{\relax}%
+ \ifthenelse{\equal{#1}{独立な事象の確率}\AND\equal{#2}{i}}%
+ {事象AとBが独立のとき,事象Aが起こりかつ事象Bが起こる確率$p$は,$p=P\Ttyuukakko{A}P\Ttyuukakko{B}$}{\relax}%
+ \ifthenelse{\equal{#1}{独立な事象の確率}\AND\equal{#2}{b}}%
+ {%
+ 事象AとBが独立のとき,事象Aが起こりかつ事象Bが起こる確率$p$は,%
+ \[p=P\Ttyuukakko{A}P\Ttyuukakko{B}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{反復試行の確率}\AND\equal{#2}{i}}%
+ {一回の試行で事象Aの起こる確率を$p$として,この試行を$n$回行う反復試行でAが$r$回起こる確率は,${}_{n}C_{r}\Ttyuukakko{p}^r\Ttyuukakko{1-p}^{n-r}$}{\relax}%
+ \ifthenelse{\equal{#1}{反復試行の確率}\AND\equal{#2}{b}}%
+ {%
+ 一回の試行で事象Aの起こる確率を$p$として,この試行を$n$回行う反復試行でAが$r$回起こる確率は,%
+ \[{}_{n}C_{r}\Ttyuukakko{p}^r\Ttyuukakko{1-p}^{n-r}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{反復試行の確率の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $n$回の試行のうち事象Aが$r$回起こる順番の場合の数は${}_{n} C_{r}$通り。さらに,Aが起こる確率は$p$で$r$回起こり,Aの余事象が起こる確率は$p-1$で$n-r$回起こるので,%
+ \[{}_{n}C_{r}\Ttyuukakko{p}^r\Ttyuukakko{1-p}^{n-r}\]%
+ となる。
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{条件付き確率}\AND\equal{#2}{i}}%
+ {事象Aが起こったときの事象Bの起こる確率は,$P_{A}\Ttyuukakko{B}=\bunsuu{P\Ttyuukakko{A\cap B}}{P\Ttyuukakko{A}}$}{\relax}%
+ \ifthenelse{\equal{#1}{条件付き確率}\AND\equal{#2}{b}}%
+ {%
+ 事象Aが起こったときの事象Bの起こる確率は,%
+ \[P_{A}\Ttyuukakko{B}=\bunsuu{P\Ttyuukakko{A\cap B}}{P\Ttyuukakko{A}}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\newcommand{\図形の性質}[1]%
+ {%
+ \ifthenelse{\equal{#1}{内心}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-2.4,0.2)--(0,2)--(0,-3)--cycle;%
+ \draw(-1,0)circle[radius=1];%
+ \draw(-2.4,0.2)node[left]{A};%
+ \draw(0,2)node[above]{B};%
+ \draw(0,-3)node[below]{C};%
+ \draw(-1,0)node[below]{O};%
+ \end{tikzpicture}%
+ \空行%
+ 図においてOが内心%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{外心}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-2,0)--(1.6,1.2)--(1.2,-1.6)--cycle;%
+ \draw(0,0)circle[radius=2];%
+ \draw(0,0)node[below]{O};%
+ \draw(-2,0)node[left]{A};%
+ \draw(1.6,1.2)node[right]{B};%
+ \draw(1.2,-1.6)node[below]{C};%
+ \end{tikzpicture}%
+ \空行%
+ 図においてOが外心%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{垂心}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,0)--(3,0)--(2,3)--cycle;%
+ \draw(0,0)--(2.7,0.9);%
+ \draw(2,3)--(2,0);%
+ \draw(3,0)--(0.92,1.4);%
+ \draw(0,0)node[below]{A};%
+ \draw(3,0)node[below]{C};%
+ \draw(2,3)node[above]{B};%
+ \draw(2.7,0.9)node[right]{P};%
+ \draw(2,0)node[below]{Q};%
+ \draw(0.92309,1.46154)node[left]{R};%
+ \draw(2,1)node[right]{H};%
+ \end{tikzpicture}%
+ \空行%
+ 図においてHが垂心%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{重心}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,0)--(3,0)--(2,3)--cycle;%
+ \draw(0,0)--(2.5,1.5);%
+ \draw(3,0)--(1,1.5);%
+ \draw(2,3)--(1.5,0);%
+ \draw(0,0)node[below]{A};%
+ \draw(3,0)node[below]{B};%
+ \draw(2,3)node[above]{C};%
+ \draw(1.5,0)node[below]{D};%
+ \draw(2.5,1.5)node[right]{E};%
+ \draw(1,1.5)node[left]{F};%
+ \draw(1.75,1)node[right]{G};%
+ \end{tikzpicture}%
+ \空行%
+ 図においてGが重心%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{傍心}}%
+ {%
+ \begin{tikzpicture}
+ \draw(-0.4,2.8)--(-1,2)--(0.666666,2)--cycle;%
+ \draw(-0.4,2.8)node[above]{A};%
+ \draw(-1,2)node[left]{B};%
+ \draw(0.666666,2)node[right]{C};%
+ \draw(-0.4,2.8)--(-2.8,-0.4);%
+ \draw(-2.8,-0.4)node[below]{H};%
+ \draw(-0.4,2.8)--(2.8,0.4);%
+ \draw(2.8,0.4)node[right]{G};%
+ \draw(-0.4,2.8)--(0,0);%
+ \draw(0,0)node[below]{I};%
+ \draw(-1,2)--(0,0);%
+ \draw(0.666666,2)--(0,0);%
+ \draw(0,2)node[above]{D};%
+ \draw(-1.6,1.2)node[left]{E};%
+ \draw(1.2,1.6)node[right]{F};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ 図においてIが傍心%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{チェバの定理}}%
+ {%
+ \begin{tikzpicture}
+ \draw(2,3)--(0,0)--(3,0)--cycle;%
+ \draw(2,3)node[above]{A};%
+ \draw(2,3)--(1.5,0);%
+ \draw(0,0)node[below]{B};%
+ \draw(0,0)--(2.75,0.75);%
+ \draw(3,0)node[below]{C};%
+ \draw(3,0)--(0.5,0.75);%
+ \draw(1.5,0)node[below]{P};%
+ \draw(2.75,0.75)node[right]{Q};%
+ \draw(0.5,0.75)node[left]{R};%
+ \draw(1.62,0.8)node[right]{O};%
+ \end{tikzpicture}
+ \空行%
+ $\bunsuu{\text{BP}}{\text{PC}}\cdot\bunsuu{\text{CQ}}{\text{QA}}\cdot\bunsuu{\text{AR}}{\text{RB}}=1$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{チェバの定理の証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(2,3)--(0,0)--(3,0)--cycle;%
+ \draw(2,3)node[above]{A};%
+ \draw(2,3)--(1.5,0);%
+ \draw(0,0)node[below]{B};%
+ \draw(0,0)--(2.75,0.75);%
+ \draw(3,0)node[below]{C};%
+ \draw(3,0)--(0.5,0.75);%
+ \draw(1.5,0)node[below]{P};%
+ \draw(2.75,0.75)node[right]{Q};%
+ \draw(0.5,0.75)node[left]{R};%
+ \draw(1.62,0.8)node[right]{O};%
+ \end{tikzpicture}%
+ \空行%
+ 図において三角形の面積比を考えると,%
+ \[\bigtriangleup{ABO}:\bigtriangleup{ACO}=\mathrm{BP}:\mathrm{CP}\]%
+ \[\Leftrightarrow\bunsuu{\bigtriangleup{ABO}}{\bigtriangleup{ACO}}=\bunsuu{BP}{PC}\]%
+ 同様にして,%
+ \[\bunsuu{\bigtriangleup{BCO}}{\bigtriangleup{BAO}}=\bunsuu{CQ}{QA}\]%
+ \[\bunsuu{\bigtriangleup{CAO}}{\bigtriangleup{CBO}}=\bunsuu{AR}{RB}\]%
+ ここで,%
+ \[\bunsuu{\bigtriangleup{ABO}}{\bigtriangleup{ACO}}\cdot\bunsuu{\bigtriangleup{BCO}}{\bigtriangleup{BAO}}\cdot\bunsuu{\bigtriangleup{CAO}}{\bigtriangleup{CBO}}=1\]%
+ \[\Leftrightarrow\bunsuu{\text{BP}}{\text{PC}}\cdot\bunsuu{\text{CQ}}{\text{QA}}\cdot\bunsuu{\text{AR}}{\text{RB}}=1\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{メネラウスの定理}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(2,3)--(0,0)--(3,0)--cycle;%
+ \draw(2,3)node[above]{A};%
+ \draw(0,0)node[below]{B};%
+ \draw(3,0)node[right]{C};%
+ \draw(3,0)--(3.11111,-0.33333);%
+ \draw(2.25,0)node[below]{P};%
+ \draw(3.11111,-0.33333)node[below]{Q};%
+ \draw(3.11111,-0.33333)--(0.5,0.75);%
+ \draw(0.5,0.75)node[left]{R};%
+ \end{tikzpicture}%
+ \空行%
+ $\bunsuu{\text{BP}}{\text{PC}}\cdot\bunsuu{\text{CQ}}{\text{QA}}\cdot\bunsuu{\text{AR}}{\text{RB}}=1$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{メネラウスの定理の証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(2,3)--(0,0)--(3,0)--cycle;%
+ \draw(2,3)node[above]{A};%
+ \draw(0,0)node[below]{B};%
+ \draw(3,0)node[right]{C};%
+ \draw(3,0)--(3.11111,-0.33333);%
+ \draw(2.25,0)node[below]{P};%
+ \draw(3.11111,-0.33333)node[below]{Q};%
+ \draw(3.11111,-0.33333)--(0.5,0.75);%
+ \draw(0.5,0.75)node[left]{R};%
+ \draw(0.65,0.975)node[above left]{S};%
+ \draw(0.65,0.975)--(3,0);%
+ \end{tikzpicture}%
+ \空行%
+ $\text{SC}/ \!/ \text{RP}$より,%
+ \[\text{RA}:\text{SR}=\text{QA}:\text{CQ},\text{BR}:\text{RS}=\text{BP}:\text{PC}\]%
+ \[\Leftrightarrow\bunsuu{\text{CQ}}{\text{QA}}=\bunsuu{\text{SR}}{\text{AR}},\bunsuu{\text{BP}}{\text{PC}}=\bunsuu{\text{BR}}{\text{RS}}\]%
+ \[\bunsuu{\text{BP}}{\text{PC}}\cdot\bunsuu{\text{CQ}}{\text{QA}}\cdot\bunsuu{\text{AR}}{\text{RB}}=\bunsuu{\text{BR}}{\text{RS}}\cdot\bunsuu{\text{SR}}{\text{AR}}
+ \cdot\bunsuu{\text{AR}}{\text{RB}}=1\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{円周角の定理}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(1.2,1.6)--cycle;%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(-2,0)--cycle;%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.2,-1.6)node[right]{B};%
+ \draw(1.2,1.6)node[above]{P};%
+ \draw(-2,0)node[left]{Q};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ $\angle\mathrm{APB}=\angle\mathrm{AQB}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{円周角の定理の証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(1.2,1.6)--cycle;%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(0,0)--cycle;%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.2,-1.6)node[right]{B};%
+ \draw(1.2,1.6)node[above]{P};%
+ \draw(0,0)node[right]{O};%
+ \draw[dashed](-1.2,-1.6)--(1.2,1.6);%
+ \draw(-0.6,-1.4)node[above]{D};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ 三角形AOP,BOPは二等辺三角形なので,%
+ \[\angle\mathrm{APO}=\angle\mathrm{OAP}\数式カンマスペース\angle\mathrm{BPO}=\angle\mathrm{OBP}\]%
+ 三角形の外角より,%
+ \[\angle\mathrm{AOD}=2\angle\mathrm{APO}\数式カンマスペース\angle\mathrm{BOD}=2\angle\mathrm{BPO}\]%
+ \[\Leftrightarrow\angle\mathrm{AOB}=2\angle\mathrm{APB}\]%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.6,-1.2)--(1.6,1.2)--cycle;%
+ \draw(-1.6,-1.2)--(1.6,-1.2)--(0,0)--cycle;%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.6,-1.2)node[right]{B};%
+ \draw(1.6,1.2)node[above]{P};%
+ \draw(0,0)node[above]{O};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ 三角形OPBは二等辺三角形なので,%
+ \[\angle\mathrm{OPB}=\angle\mathrm{OBP}\]%
+ 三角形の外角より%
+ \[\angle\mathrm{AOB}=2\angle\mathrm{OPB}\]%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(0,0)--cycle;%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(-2,0)--cycle;%
+ \draw[dashed](-2,0)--(2,0);%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.2,-1.6)node[right]{B};%
+ \draw(0,0)node[above]{O};%
+ \draw(2,0)node[right]{D};%
+ \draw(-2,0)node[left]{Q};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ 三角形QOA,OQBは二等辺三角形なので,%
+ \[\angle\mathrm{OQA}=\angle\mathrm{OAQ}\数式カンマスペース\angle\mathrm{OQB}=\angle\mathrm{OBQ}\]%
+ となる,\par%
+ 三角形の外角より,%
+ \[\angle\mathrm{OQA}+\angle\mathrm{OAQ}=\angle\mathrm{DOA}\数式カンマスペース\angle\mathrm{OQB}+\angle\mathrm{OBQ}=\angle\mathrm{DOB}\]%
+ \[\Leftrightarrow\angle\mathrm{DOA}-\angle\mathrm{DOB}=2\Ttyuukakko{\angle\mathrm{OQA}-\angle\mathrm{BQO}}\]%
+ \[\Leftrightarrow\angle\mathrm{AOB}=2\angle\mathrm{AQB}\]%
+ \空行%
+ 従って,円に内接する三角形について,円周角の$2$倍が中心角である。\par%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(1.2,1.6)--cycle;%
+ \draw(-1.6,-1.2)--(1.2,-1.6)--(-2,0)--cycle;%
+ \draw(0,0)--(-1.6,-1.2)--(1.2,-1.6)--cycle;%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.2,-1.6)node[right]{B};%
+ \draw(1.2,1.6)node[above]{P};%
+ \draw(-2,0)node[left]{Q};%
+ \draw(0,0)node[above]{O};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ \[\angle\mathrm{APB}=2\angle\mathrm{AOB},\angle\mathrm{AQB}=2\angle\mathrm{AOB}\]%
+ \[\Leftrightarrow\angle\mathrm{AQB}=\angle\mathrm{APB}\]が成立。
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内接四角形の定理}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.6,-1.2)--(1.2,1.6)--(0,2);%
+ \draw(-1.6,-1.2)--(0,2);%
+ \draw(-1.6,-1.2)--(3,-1.2);%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.6,-1.2)node[below]{B};%
+ \draw(1.2,1.6)node[above]{C};%
+ \draw(0,2)node[above]{D};%
+ \draw(3,-1.2)node[below]{T};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ $\angle\mathrm{ADC}=\angle\mathrm{CBT}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内接四角形の定理の証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)--(1.6,-1.2)--(1.2,1.6)--(0,2);%
+ \draw(-1.6,-1.2)--(0,2);%
+ \draw(-1.6,-1.2)--(3,-1.2);%
+ \draw(-1.6,-1.2)node[left]{A};%
+ \draw(1.6,-1.2)node[below]{B};%
+ \draw(1.2,1.6)node[above]{C};%
+ \draw(0,2)node[above]{D};%
+ \draw(3,-1.2)node[below]{T};%
+ \draw(0,0)circle[radius=2];%
+ \draw(-1.6,-1.2)--(0,0);%
+ \draw(1.2,1.6)--(0,0);%
+ \draw(0,0)coordinate(O);%
+ \fill[black](O)circle(0.03);%
+ \end{tikzpicture}%
+ \空行%
+ \[\angle\mathrm{AOC}=2\angle\mathrm{ABC}\]%
+ \[\angle\mathrm{AOC}=2\angle\mathrm{ADC}\]%
+ ここで,$\angle\mathrm{ABC}+\angle\mathrm{ADC}=180^\circ$%
+ \[\Leftrightarrow\angle\mathrm{AOC}+\angle\mathrm{AOC}=180^\circ\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{接弦定理}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,-2)--(2,0)--(-1.2,1.6)--cycle;%
+ \draw(0,-2)node[below]{A};%
+ \draw(2,0)node[right]{B};%
+ \draw(-1.2,1.6)node[above]{C};%
+ \draw(3,-2)--(-3,-2);%
+ \draw(3,-2)node[below]{T};%
+ \draw(-3,-2)node[below]{S};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}
+ \空行%
+ $\angle\mathrm{BAT}=\angle\mathrm{ACB}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{接弦定理の証明}}%
+ {%
+ \証明開始%
+ \begin{enumerate}%
+ \item 鋭角のとき%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(0,-2)--(2,0)--(-1.2,1.6)--cycle;%
+ \draw[dashed](0,-2)--(2,0)--(0,2)--cycle;%
+ \draw(0,-2)node[below]{A};%
+ \draw(2,0)node[right]{B};%
+ \draw(-1.2,1.6)node[above]{C};%
+ \draw(3,-2)--(-3,-2);%
+ \draw(3,-2)node[below]{T};%
+ \draw(-3,-2)node[below]{S};%
+ \draw(0,2)node[above]{E};%
+ \draw(0,0)circle[radius=2];%
+ \draw(0,2)coordinate(E);%
+ \draw(2,0)coordinate(B);%
+ \draw(0,-2)coordinate(A);%
+ \draw pic[draw,black,thin,angle radius=0.3cm] {right angle=E--B--A};%
+ \end{tikzpicture}%
+ \空行%
+ 三角形ACBとABEについて円周角の定理より,%
+ \[\angle\mathrm{ACB}=\angle\mathrm{AEB}\]%
+ ここで,三角形ABEについて%
+ \[\angle\mathrm{BEA}+\angle\mathrm{BAE}=90^\circ\]%
+ また,ATが円の接線なので$\angle\mathrm{BAE}+\angle\mathrm{BAT}=90^\circ$から,%
+ \[\angle\mathrm{BAT}=\angle\mathrm{AEB}\]%
+ \[\Leftrightarrow\angle\mathrm{ACB}=\angle\mathrm{BAT}\]%
+ \空行%
+ \item 直角のとき%
+ \空行
+ \begin{tikzpicture}%
+ \draw(0,-2)--(2,0)--(0,2)--cycle;%
+ \draw(0,-2)node[below]{A};%
+ \draw(2,0)node[right]{B};%
+ \draw(3,-2)--(-3,-2);%
+ \draw(3,-2)node[below]{T};%
+ \draw(-3,-2)node[below]{S};%
+ \draw(0,2)node[above]{E};%
+ \draw(0,0)circle[radius=2];%
+ \draw(0,2)coordinate(E);%
+ \draw(2,0)coordinate(B);%
+ \draw(0,-2)coordinate(A);%
+ \draw pic[draw,black,thin,angle radius=0.3cm] {right angle=E--B--A};%
+ \end{tikzpicture}%
+ \空行%
+ ATが円の接線なので,%
+ \[\angle\mathrm{EAS}=90^\circ\]%
+ \[\Leftrightarrow\angle\mathrm{EBA}=\angle\mathrm{EAS}\]%
+ \空行%
+ \item 鈍角のとき%
+ \空行%
+ \begin{tikzpicture}%
+ \draw(0,-2)--(-2,0)--(-1.2,1.6)--cycle;
+ \draw(0,-2)node[below]{A};%
+ \draw(-2,0)node[left]{B};%
+ \draw(-1.2,1.6)node[above]{C};%
+ \draw(3,-2)--(-3,-2);%
+ \draw(3,-2)node[below]{T};%
+ \draw(-3,-2)node[below]{S};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ 鋭角のときの接弦定理より,%
+ \[\angle\mathrm{BCA}=\angle\mathrm{BAS}\]%
+ また,三角形ABCにおいて%
+ \[\angle\mathrm{ABC}=\angle\mathrm{ACB}+\angle\mathrm{BAC}\]%
+ \[\Leftrightarrow\angle\mathrm{ABC}=\angle\mathrm{CAT}\]%
+ \空行%
+ \end{enumerate}%
+ 従って円に内接する三角形について成り立つことが証明された。%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内角と外角の二等分線}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(5.3,0.8)--(0,0)--(4.8,0)--cycle;%
+ \draw(5.3,0.8)--(0,0)--(4,0)--cycle;%
+ \draw(5.3,0.8)--(0,0)--(6,0)--cycle;%
+ \draw(5.3,0.8)node[above]{A};%
+ \draw(0,0)--(6.3,0.950943395);%
+ \draw(0,0)node[below]{B};%
+ \draw(4.8,0)node[below]{C};%
+ \draw(4,0)node[below]{P};%
+ \draw(6,0)node[below]{Q};%
+ \draw(6.3,0.950943395)node[above]{R};%
+ \end{tikzpicture}%
+ \空行%
+ $\angle\mathrm{BAP}=\angle\mathrm{PAC},\angle\mathrm{CAQ}=\angle\mathrm{QAR}$のとき,\par%
+ $\text{BP}:\text{PC}=\text{BQ}:\text{QC}=\text{AB}:\text{AC}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理A}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(0,2)--(1.6,-1.2);%
+ \draw(0,2)node[above]{A};%
+ \draw(1.6,-1.2)node[below]{B};%
+ \draw(-1.6,-1.2)--(1.2,1.6);%
+ \draw(-1.6,-1.2)node[below]{C};%
+ \draw(1.2,1.6)node[above]{D};%
+ \draw(0.7,0.9)node[right]{P};%
+ \draw(0,0)circle[radius=2];%
+ \draw(0,0)node[below]{O};%
+ \end{tikzpicture}%
+ \空行%
+ $\text{PA}\cdot\text{PB}=\text{PC}\cdot\text{PD}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理Aの証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,2)--(1.6,-1.2);%
+ \draw(0,2)node[above]{A};%
+ \draw(1.6,-1.2)node[below]{B};%
+ \draw(-1.6,-1.2)--(1.2,1.6);%
+ \draw(-1.6,-1.2)node[below]{C};%
+ \draw(1.2,1.6)node[above]{D};%
+ \draw(0.7,0.9)node[right]{P};%
+ \draw(0,0)circle[radius=2];%
+ \draw(0,0)node[below]{O};%
+ \end{tikzpicture}%
+ \空行%
+ 円周角の定理より,%
+ \[\angle\mathrm{CAP}=\angle\mathrm{BDP},\quad\angle\mathrm{ACP}=\angle\mathrm{DBP}\]%
+ 三角形ACPと三角形DBPは相似なので,\par%
+ \[\text{PA}\cdot\text{PB}=\text{PC}\cdot\text{PD}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理B}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1.2,-1.6)node[below]{A};%
+ \draw(1.2,-1.6)--(-3.6,-1.6);%
+ \draw(1.2,-1.6)node[below]{B};%
+ \draw(-2,0)node[left]{C};%
+ \draw(0,2)--(-3.6,-1.6);%
+ \draw(0,2)node[above]{D};%
+ \draw(-3.6,-1.6)node[below]{P};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ $\text{PA}\cdot\text{PB}=\text{PC}\cdot\text{PD}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理Bの証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(-1.2,-1.6)node[below]{A};%
+ \draw(1.2,-1.6)--(-3.6,-1.6);%
+ \draw(1.2,-1.6)node[below]{B};%
+ \draw(-2,0)node[left]{C};%
+ \draw(0,2)--(-3.6,-1.6);%
+ \draw(0,2)node[above]{D};%
+ \draw(-3.6,-1.6)node[below]{P};%
+ \draw(0,0)circle[radius=2];%
+ \draw(-1.2,-1.6)--(-2,0);%
+ \end{tikzpicture}%
+ \空行%
+ 内接四角形の証明より,%
+ \[\angle\mathrm{CDB}=\angle\mathrm{CAP}\数式カンマスペース\angle\mathrm{DBA}=\angle\mathrm{PCA}\]%
+ 三角形ACPと三角形DPBは相似なので,%
+ \[\text{PA}\cdot\text{PB}=\text{PC}\cdot\text{PD}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理C}}%
+ {%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)node[below]{A};%
+ \draw(1.6,-1.2)--(-4.93,-1.2);%
+ \draw(1.6,-1.2)node[right]{B};%
+ \draw(-1.2,1.6)--(-4.93,-1.2);%
+ \draw(-1.2,1.6)node[above]{T};%
+ \draw(-4.93,-1.2)node[below]{P};%
+ \draw(0,0)circle[radius=2];%
+ \end{tikzpicture}%
+ \空行%
+ $\text{PA}\cdot\text{PB}=\text{PT}^2$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{方べきの定理Cの証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(-1.6,-1.2)node[below]{A};%
+ \draw(1.6,-1.2)--(-4.93,-1.2);%
+ \draw(1.6,-1.2)node[right]{B};%
+ \draw(-1.2,1.6)--(-4.93,-1.2);%
+ \draw(-1.2,1.6)node[above]{T};%
+ \draw(-4.93,-1.2)node[below]{P};%
+ \draw(0,0)circle[radius=2];%
+ \draw(-1.6,-1.2)--(-1.2,1.6);%
+ \draw(-1.2,1.6)--(1.6,-1.2);%
+ \end{tikzpicture}%
+ \空行%
+ 接弦定理より,%
+ \[\angle\mathrm{TBA}=\angle\mathrm{PTA}\]%
+ これと,$\angle\mathrm{P}$共通なので三角形PTAと三角形PBTは相似より,%
+ \[\text{PA}\cdot\text{PB}=\text{PT}^2\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+%%%%%%%%%%%%%%%%%%%%ここから数\UTF{2161}B%%%%%%%%%%%%%%%%%%%%
+\NewDocumentCommand{\三次式展開}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a+b}^{3}=a^{3}+3a^2b+3ab^2+b^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a+b}^{3}=a^{3}+3a^2b+3ab^2+b^{3}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a-b}^{3}=a^{3}-3a^2b+3ab^2-b^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a-b}^{3}=a^{3}-3a^2b+3ab^2-b^{3}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a+b}\Ttyuukakko{a^2-ab+b^2}=a^{3}+b^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a+b}\Ttyuukakko{a^2-ab+b^2}=a^{3}+b^{3}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a-b}\Ttyuukakko{a^2+ab+b^2}=a^{3}-b^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a-b}\Ttyuukakko{a^2+ab+b^2}=a^{3}-b^{3}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\三次式因数分解}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$a^{3}+b^{3}=\Ttyuukakko{a+b}\Ttyuukakko{a^2-ab+b^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[a^{3}+b^{3}=\Ttyuukakko{a+b}\Ttyuukakko{a^2-ab+b^2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$a^{3}-b^{3}=\Ttyuukakko{a-b}\Ttyuukakko{a^2+ab+b^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[a^{3}-b^{3}=\Ttyuukakko{a-b}\Ttyuukakko{a^2+ab+b^2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$a^{3}+3a^2b+3ab^2+b^{3}=\Ttyuukakko{a+b}^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[a^{3}+3a^2b+3ab^2+b^{3}=\Ttyuukakko{a+b}^{3}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$a^{3}-3a^2b+3ab^2-b^{3}=\Ttyuukakko{a-b}^{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[a^{3}-3a^2b+3ab^2-b^{3}=\Ttyuukakko{a-b}^{3}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\二項定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a+b}^{n}={}_{n}C_{0} a^{n}+{}_{n}C_{1} a^{n-1}b+{}_{n}C_{2} a^{n-2}b^2+....{}_{n}C_{n-1} ab^{n-1}+{}_{n}C_{n} b^{n}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a+b}^{n}={}_{n}C_{0} a^{n}+{}_{n}C_{1} a^{n-1}b+{}_{n}C_{2} a^{n-2}b^2+....{}_{n}C_{n-1} ab^{n-1}+{}_{n}C_{n} b^{n}\]}{\relax}%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{i}}%
+ {${}_{n}C_{r}a^{n-r}b^{r}$}{\relax}%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{b}}%
+ {\[{}_{n}C_{r}a^{n-r}b^{r}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $\Ttyuukakko{a+b}^{n}$を展開すると,$a^{r}b^{n-r}$の項の係数は$n$個の$a$から$r$個$a$を選ぶ場合の数に等しいので係数は${}_{n} C_{r}$よって,一般項は%
+ \[{}_{n}C_{r}a^{n-r}b^{r}\]%
+ この$r$に$1$から順番に自然数を代入したものが二項定理となる。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\分数式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\bunsuu{A}{B}\times\bunsuu{C}{D}=\bunsuu{AC}{BD}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\bunsuu{A}{B}\times\bunsuu{C}{D}=\bunsuu{AC}{BD}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\bunsuu{A}{B}\div \bunsuu{C}{D}=\bunsuu{AD}{BC}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\bunsuu{A}{B}\div \bunsuu{C}{D}=\bunsuu{AD}{BC}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\bunsuu{A}{C}+\bunsuu{B}{C}=\bunsuu{A+B}{C}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\bunsuu{A}{C}+\bunsuu{B}{C}=\bunsuu{A+B}{C}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\bunsuu{A}{C}-\bunsuu{B}{C}=\bunsuu{A-B}{C}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\bunsuu{A}{C}-\bunsuu{B}{C}=\bunsuu{A-B}{C}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\相加相乗平均}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース b>0$のとき,$\bunsuu{a+b}{2}\geqq\sqrt{ab}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース b>0$のとき,%
+ \[\bunsuu{a+b}{2}\geqq\sqrt{ab}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $a+b-2\sqrt{ab}\geqq0$を示す。%
+ \[a+b-2\sqrt{ab}=\Ttyuukakko{\sqrt{a}-\sqrt{b}}^2\]%
+ より,$\sqrt{a}-\sqrt{b}$は実数なので,%
+ \[\Ttyuukakko{\sqrt{a}-\sqrt{b}}^2\geqq0\]%
+ よって,$a>0\数式カンマスペース b>0$のとき,%
+ \[\bunsuu{a+b}{2}\geqq\sqrt{ab}\text{\ (等号成立条件は$a=b$)}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\虚数の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$i=\sqrt{-1}$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {\[i=\sqrt{-1}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\複素数の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {実数$a\数式カンマスペース b$を用いて,$a+bi$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 実数$a\数式カンマスペース b$を用いて,%
+ \[a+bi\]%
+ }%
+ {\relax}%
+ }%
+
+
+\newcommand{\二次方程式の解の判別}%
+ {%
+ $ax^2+bx+c=0\数式カンマスペース\Ttyuukakko{a\neq0}$の判別式を$D=b^2-4ac$とすると,%
+ \phrases@math[l]%
+ {%
+ $D>0$のとき,異なる二つの実数解\\%
+ $D=0$のとき,重解\\%
+ $D<0$のとき,異なる二つの虚数解%
+ }%
+ を持つ。
+ }%
+
+
+\NewDocumentCommand{\解と係数の関係}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{二次方程式の解と係数の関係A}\AND\equal{#2}{i}}%
+ {$ax^2+bx+c=0 \Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta$として,$\alpha+\beta=-\bunsuu{b}{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{二次方程式の解と係数の関係A}\AND\equal{#2}{b}}%
+ {%
+ $ax^2+bx+c=0 \Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta$として,%
+ \[\alpha+\beta=-\bunsuu{b}{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{二次方程式の解と係数の関係B}\AND\equal{#2}{i}}%
+ {$ax^2+bx+c=0 \Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta$として,$\alpha\beta=\bunsuu{c}{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{二次方程式の解と係数の関係B}\AND\equal{#2}{b}}%
+ {%
+ $ax^2+bx+c=0 \Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta$として,%
+ \[\alpha\beta=\bunsuu{c}{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{二次方程式の解と係数の関係の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ \[ax^2+bx+c=a\Ttyuukakko{x-\alpha}\Ttyuukakko{x-\beta}=a\Tdaikakko{x^2-\Ttyuukakko{\alpha+\beta}x+\alpha\beta}\]%
+ \[\Leftrightarrow ax^2+bx+c=a\Ttyuukakko{x^2+\bunsuu{b}{a}x+\bunsuu{c}{a}}\]%
+ 係数比較することで,%
+ \[\alpha+\beta=-\bunsuu{b}{a}\数式カンマスペース\alpha\beta=\bunsuu{c}{a}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係A}\AND\equal{#2}{i}}%
+ {$ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,$\alpha+\beta+\gamma=-\bunsuu{b}{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係A}\AND\equal{#2}{b}}%
+ {%
+ $ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,%
+ \[\alpha+\beta+\gamma=-\bunsuu{b}{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係B}\AND\equal{#2}{i}}%
+ {$ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,$\alpha\beta+\beta\gamma+\gamma\alpha=\bunsuu{c}{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係B}\AND\equal{#2}{b}}%
+ {%
+ $ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,%
+ \[\alpha\beta+\beta\gamma+\gamma\alpha=\bunsuu{c}{a}\]
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係C}\AND\equal{#2}{i}}%
+ {$ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,$\alpha\beta\gamma=-\bunsuu{d}{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係C}\AND\equal{#2}{b}}%
+ {%
+ $ax^{3}+bx^2+cx+d=0\Ttyuukakko{a\neq0}$の解を$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$として,%
+ \[\alpha\beta\gamma=-\bunsuu{d}{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{三次方程式の解と係数の関係の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ \vspace{-1\zw}
+ \[ax^{3}+bx^2+cx+d=a\Ttyuukakko{x-\alpha}\Ttyuukakko{x-\beta}\Ttyuukakko{x-\gamma}=a\Tdaikakko{x^3-\Ttyuukakko{\alpha+\beta+\gamma}x^2+\Ttyuukakko{\alpha\beta+\beta\gamma+\gamma\alpha}x-\alpha\beta\gamma}\]%
+ \[\Leftrightarrow ax^{3}+bx^2+cx+d=a\Ttyuukakko{x^3+\bunsuu{b}{a}x^2+\bunsuu{c}{a}x+\bunsuu{d}{a}}\]%
+ 係数比較することで,\par%
+ \[\alpha+\beta+\gamma=-\bunsuu{b}{a}\数式カンマスペース\alpha\beta+\beta\gamma+\gamma\alpha=\bunsuu{c}{a}\数式カンマスペース\alpha\beta\gamma=-\bunsuu{d}{a}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\剰余定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定理A}\AND\equal{#2}{i}}%
+ {整式 $P\Ttyuukakko{x}$を$x-k$で割った余りは$P\Ttyuukakko{k}$}{\relax}%
+ \ifthenelse{\equal{#1}{定理A}\AND\equal{#2}{b}}%
+ {%
+ 整式 $P\Ttyuukakko{x}$を$x-k$で割った余りは%
+ \[P\Ttyuukakko{k}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定理B}\AND\equal{#2}{i}}%
+ {整式$P\Ttyuukakko{x}$を$ax-b$で割った余りは$P\Ttyuukakko{\bunsuu{b}{a}}$}{\relax}%
+ \ifthenelse{\equal{#1}{定理B}\AND\equal{#2}{b}}%
+ {%
+ 整式$P\Ttyuukakko{x}$を$ax-b$で割った余りは%
+ \[P\Ttyuukakko{\bunsuu{b}{a}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $P\Ttyuukakko{x}$を$\Ttyuukakko{x-k}$で割った商を$Q\Ttyuukakko{x}$あまりを$R$として,%
+ \[P\Ttyuukakko{x}=\Ttyuukakko{x-k}Q\Ttyuukakko{x}+R\]%
+ $x=k$のとき,%
+ \[P\Ttyuukakko{k}=R\]%
+ よって,余りは%
+ \[P\Ttyuukakko{k}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\因数定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定理}\AND\equal{#2}{i}}%
+ {%
+ 整式$P\Ttyuukakko{x}$が$x-k$を因数に持つ$\Leftrightarrow P\Ttyuukakko{k}=0$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定理}\AND\equal{#2}{b}}%
+ {%
+ 整式$P\Ttyuukakko{x}$が$x-k$を因数に持つ%
+ \[\Leftrightarrow P\Ttyuukakko{k}=0\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 剰余の定理より,$x-k$で割った余りが$0$なので,%
+ \[P\Ttyuukakko{k}=0\]%
+ 剰余の定理より,$P\Ttyuukakko{k}=0$ということは$P\Ttyuukakko{x}$を$x-k$で割った余りが$0$ということなので,$P\Ttyuukakko{x}$は$x-k$を因数に持つ。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\点の座標}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{二点間の距離}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$間の距離は,$\sqrt{\Ttyuukakko{x_{2}-x_{1}}^2-\Ttyuukakko{y_{2}-y_{1}}^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{二点間の距離}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$間の距離は,%
+ \[\sqrt{\Ttyuukakko{x_{2}-x_{1}}^2-\Ttyuukakko{y_{2}-y_{1}}^2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内分点の座標}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$を$m:n$に内分する点の座標は,$\Ttyuukakko{\bunsuu{nx_{1}+mx_{2}}{n+m}\数式カンマスペース\bunsuu{ny_{1}+my_{2}}{n+m}}$}{\relax}%
+ \ifthenelse{\equal{#1}{内分点の座標}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$を$m:n$に内分する点の座標は,%
+ \[\Ttyuukakko{\bunsuu{nx_{1}+mx_{2}}{n+m}\数式カンマスペース\bunsuu{ny_{1}+my_{2}}{n+m}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内分点の座標の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $m:n$に内分する点の座標を$P\Ttyuukakko{x\数式カンマスペース y}$として,%
+ \[m:n=x-x_{1}:x_{2}-x\]%
+ \[\Leftrightarrow\Ttyuukakko{\bunsuu{nx_{1}+mx_{2}}{n+m}\数式カンマスペース\bunsuu{ny_{1}+my_{2}}{n+m}}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{外分点の座標}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$を$m:n$に外分する点の座標は,$\Ttyuukakko{\bunsuu{-nx_{1}+mx_{2}}{m-n}\数式カンマスペース \bunsuu{-ny_{1}+my_{2}}{m-n}}$}{\relax}%
+ \ifthenelse{\equal{#1}{外分点の座標}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$を$m:n$に外分する点の座標は,%
+ \[\Ttyuukakko{\bunsuu{-nx_{1}+mx_{2}}{m-n}\数式カンマスペース \bunsuu{-ny_{1}+my_{2}}{m-n}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{外分点の座標の証明}\AND\equal{#2}{b}}%
+ {%
+ \証明開始%
+ \begin{enumerate}%
+ \item $m>n$のとき\par%
+ $n:m$に外分する点の座標を$P\Ttyuukakko{x\数式カンマスペース y}$として,%
+ \[m:n=x-x_{1}:x-x_{2}\]%
+ \[\Leftrightarrow\Ttyuukakko{\bunsuu{-nx_{1}+mx_{2}}{m-n}\数式カンマスペース \bunsuu{-ny_{1}+my_{2}}{m-n}}\]%
+ \item $m<n$のとき\par%
+ $n:m$に外分する点の座標を$P\Ttyuukakko{x\数式カンマスペース y}$として,%
+ \[m:n=x-x_{2}:x-x_{1}\]%
+ \[\Leftrightarrow\Ttyuukakko{\bunsuu{-nx_{1}+mx_{2}}{m-n}\数式カンマスペース \bunsuu{-ny_{1}+my_{2}}{m-n}}\]%
+ \end{enumerate}%
+ よって$m\数式カンマスペース n$の大小に依らず%
+ \[\Ttyuukakko{\bunsuu{-nx_{1}+mx_{2}}{m-n}\数式カンマスペース \bunsuu{-ny_{1}+my_{2}}{m-n}}\]%
+ となる。%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{中点の座標}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$の中点は,$\Ttyuukakko{\bunsuu{x_{1}+x_{2}}{2}\数式カンマスペース\bunsuu{y_{1}+y_{2}}{2}}$}{\relax}%
+ \ifthenelse{\equal{#1}{中点の座標}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$として,線分$AB$の中点は,%
+ \[\Ttyuukakko{\bunsuu{x_{1}+x_{2}}{2}\数式カンマスペース\bunsuu{y_{1}+y_{2}}{2}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{中点の座標の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ 内分点の公式において$m=n$のとき,%
+ \[\Ttyuukakko{\bunsuu{x_{1}+x_{2}}{2}\数式カンマスペース\bunsuu{y_{1}+y_{2}}{2}}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{重心の座標}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}\数式カンマスペース C\Ttyuukakko{x_{3}\数式カンマスペース y_{3}}$として,三角形$ABC$の重心の座標は,$\Ttyuukakko{\bunsuu{x_{1}+x_{2}+x_{3}}{3}\数式カンマスペース\bunsuu{y_{1}+y_{2}+y_{3}}{3}}$}{\relax}%
+ \ifthenelse{\equal{#1}{重心の座標}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース B\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}\数式カンマスペース C\Ttyuukakko{x_{3}\数式カンマスペース y_{3}}$として,三角形$ABC$の重心の座標は,%
+ \[\Ttyuukakko{\bunsuu{x_{1}+x_{2}+x_{3}}{3}\数式カンマスペース\bunsuu{y_{1}+y_{2}+y_{3}}{3}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{重心の座標の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $A$と$B$の中点$M$の座標は$\Ttyuukakko{\bunsuu{x_{1}+x_{2}}{2}\数式カンマスペース\bunsuu{y_{1}+y_{2}}{2}}$\par%
+ 重心は$CM$を$2:1$に内分するので,重心の座標は内分点の公式より,%
+ \[\Ttyuukakko{\bunsuu{x_{1}+x_{2}+x_{3}}{3}\数式カンマスペース\bunsuu{y_{1}+y_{2}+y_{3}}{3}}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\直線の方程式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$ax+by+c=0$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[ax+by+c=0\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {点$\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}$を通り傾きが$m$の直線は,$y-y_{1}=m\Ttyuukakko{x-x_{1}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ 点$\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}$を通り傾きが$m$の直線は,%
+ \[y-y_{1}=m\Ttyuukakko{x-x_{1}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {異なる二点$\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$を通る直線$\Ttyuukakko{x_{1}\neq x_{2}}$は,$y-y_{1}=\bunsuu{y_{2}-y_{1}}{x_{2}-x_{1}}\Ttyuukakko{x-x_{1}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ 異なる二点$\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}\数式カンマスペース\Ttyuukakko{x_{2}\数式カンマスペース y_{2}}$を通る直線,$\Ttyuukakko{x_{1}\neq x_{2}}$は,%
+ \[y-y_{1}=\bunsuu{y_{2}-y_{1}}{x_{2}-x_{1}}\Ttyuukakko{x-x_{1}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式Bの証明}}%
+ {%
+ \証明開始%
+ 傾き$m$なので,$y=mx+a$と置ける($a$は切片)。\par%
+ ここで,$\Ttyuukakko{x_{1\数式カンマスペース x_{2}}}$を通るので,$y_{1}=mx_{1}+a$となり,連立することで%
+ \[y-y_{1}=m\Ttyuukakko{x-x_{1}}\]%
+ を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\二直線の関係}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {二直線$y=m_{1}x+n_{1}\数式カンマスペース y=m_{2}x+n_{2}$が平行$\Leftrightarrow m_{1}=m_{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ 二直線$y=m_{1}x+n_{1}\数式カンマスペース y=m_{2}x+n_{2}$が平行%
+ \[\Leftrightarrow m_{1}=m_{2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {二直線$y=m_{1}x+n_{1}\数式カンマスペース y=m_{2}x+n_{2}$が垂直$\Leftrightarrow m_{1}m_{2}=-1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ 二直線$y=m_{1}x+n_{1}\数式カンマスペース y=m_{2}x+n_{2}$が垂直%
+ \[\Leftrightarrow m_{1}m_{2}=-1\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式Bの証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $y=mx_{1}$上に点A$\Ttyuukakko{1\数式カンマスペース m_{1}}$\数式カンマスペース $y=mx_{2}$上にB$\Ttyuukakko{-m_{1}\数式カンマスペース 1}$をとる。\par%
+ H$\Ttyuukakko{1\数式カンマスペース 0}$\数式カンマスペース I$\Ttyuukakko{0\数式カンマスペース 1}$として,$\bigtriangleup{OAH}$と$\bigtriangleup{OBI}$は合同。よって,%
+ \[m_{1}m_{2}=-1\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\点と直線の距離}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {%
+ 点$\Ttyuukakko{x_{1}\数式カンマスペース y_{2}}$と直線$ax+bx+c=0$の距離は,$\bunsuu{\Tzettaiti{ax_{1}+by_{2}+c}}{\sqrt{a^2+b^2}}$%
+ }{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 点$\Ttyuukakko{x_{1}\数式カンマスペース y_{2}}$と直線$ax+bx+c=0$の距離は,%
+ \[\bunsuu{\Tzettaiti{ax_{1}+by_{2}+c}}{\sqrt{a^2+b^2}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 全体を$x$軸方向に$-x_{1}$\数式カンマスペース $y$軸方向に$-y_{1}$平行移動するとき,直線$l$は$a\Ttyuukakko{x+x_{1}}+b\Ttyuukakko{y+y_{1}}+c=0$となる。\par%
+ また,直線$l$に原点Oからおろした垂線との交点をHとする。ここでOH間の距離を$d$と置くと,%
+ \begin{enumerate}%
+ \item $a\neq0$のとき\par%
+ 直線$l$の垂線の傾きは$b$の値に依らず,$y=\bunsuu{b}{a}$となる。\par%
+ よって,Hの座標は二式を連立することで得られ,%
+ \[\Ttyuukakko{\bunsuu{-a\Ttyuukakko{ax_{1}+by_{1}+c}}{a^2+b^2}\数式カンマスペース\bunsuu{-b\Ttyuukakko{ax_{1}+by_{1}+c}}{a^2+b^2}}\]%
+ \begin{align*}%
+ \Leftrightarrow d&=\sqrt{\Tdaikakko{\Ttyuukakko{\bunsuu{-a\Ttyuukakko{ax_{1}+by_{1}+c}}{a^2+b^2}}^2+\Tdaikakko{\bunsuu{-b\Ttyuukakko{ax_{1}+by_{1}+c}}{a^2+b^2}}}^2}&\\%
+ &=\bunsuu{\Tzettaiti{ax_{1}+by_{2}+c}}{\sqrt{a^2+b^2}} %
+ \end{align*}%
+ \item $a=0$のとき\par%
+ 直線$l$は$y=-\bunsuu{by_{1}+c}{b}$となるので,%
+ \begin{align*}%
+ d&=\Tzettaiti{-\bunsuu{by_{1}+c}{b}}&\\%
+ &=\bunsuu{\Tzettaiti{by_{1}+c}}{\Tzettaiti{b}}&\\%
+ \end{align*}%
+ これは,$\bunsuu{\Tzettaiti{ax_{1}+by_{2}+c}}{\sqrt{a^2+b^2}}$に$a=0$を代入したものである。
+ \end{enumerate}%
+ よって,いずれの場合も%
+ \[\bunsuu{\Tzettaiti{ax_{1}+by_{2}+c}}{\sqrt{a^2+b^2}}\]%
+ を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\円の方程式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {中心$\Ttyuukakko{a\数式カンマスペース b}$で半径$r$の円は,$\Ttyuukakko{x-a}^2+\Ttyuukakko{y-b}^2=r^2$と表す($x^2+y^2+Ax+By+C=0\Ttyuukakko{l^2+m^2-4n>0}$の形でもよい)。}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {%
+ 中心$\Ttyuukakko{a\数式カンマスペース b}$で半径$r$の円は,%
+ \[\Ttyuukakko{x-a}^2+\Ttyuukakko{y-b}^2=r^2\]%
+ また,円は%
+ \[x^2+y^2+Ax+By+C=0\Ttyuukakko{A^2+B^2-4C>0}\]%
+ とも表せられる。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 円の中心をO\数式カンマスペース 円周上の任意の点を$P\Ttyuukakko{x\数式カンマスペース y}$として,三平方の定理より%
+ \[\Ttyuukakko{x-a}^2+\Ttyuukakko{y-b}^2=r^2\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\円と直線}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {円$x^2+y^2=r^2$上の点 $\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}$における接線の方程式は,$xx_{1}+yy_{1}=r^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 円$x^2+y^2=r^2$上の点 $\Ttyuukakko{x_{1}\数式カンマスペース y_{1}}$における接線の方程式は,%
+ \[xx_{1}+yy_{1}=r^2\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{enumerate}%
+ \item $x_{0}\neq0\数式カンマスペース y_{0}\neq0$のとき\par%
+ $A\Ttyuukakko{x_{0}\数式カンマスペース y_{0}}$と置いて,OAの傾きは$\bunsuu{y_{0}}{x_{0}}$となる。接線の傾きはこれに垂直なので,$-\bunsuu{x_{0}}{y_{0}}$また接線は点$\Ttyuukakko{x_{0}\数式カンマスペース y_{0}}$を通るので%
+ \[y=-\bunsuu{x_{0}}{y_{0}}\Ttyuukakko{x-x_{0}}+y_{0}\]%
+ より,$\Ttyuukakko{x_{0}\数式カンマスペース y_{0}}$が$x^2+y^2=r^2$上に存在することに留意して,$x_{0}x+y_{0}y=r^2$となる。\par%
+ \item $x_{0}\neq0$のとき\par%
+ $y_{0}=\pm r$より接線は$y=\pm r\text{\ (複合同順)}$\par%
+ \item $y_{0}=0$のとき\par%
+ $x_{0}=\pm r$より接線は$x=\pm r\text{\ (複合同順)}$%
+ \end{enumerate}%
+ よって,接線の方程式は%
+ \[xx_{1}+yy_{1}=r^2\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の相互関係}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin^2 \theta+\cos^2 \theta=1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin^2 \theta+\cos^2 \theta=1\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\tan\theta =\bunsuu{\sin\theta}{\cos\theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\tan\theta =\bunsuu{\sin\theta}{\cos\theta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$1+\tan^2 \theta=\bunsuu{1}{\cos^2 \theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[1+\tan^2 \theta=\bunsuu{1}{\cos^2 \theta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,0)--(1.05,1.4);%
+ \draw[dashed](0.75,1)--(0,1);%
+ \draw(0,0)node[below right]{O};%
+ \draw(0.75,0)node[below]{$x$};%
+ \draw(0,1)node[left]{$y$};%
+ \draw(0.8,1)node[right]{P$\Ttyuukakko{x,y}$};%
+ \draw(0,0)circle[radius=1.25];%
+ \draw(0,-1.25)node[below left]{$-r$};%
+ \draw(-1.25,0)node[below left]{$-r$};%
+ \draw(0,1.25)node[above left]{$r$};%
+ \draw(1.25,0)node[below right]{$r$};%
+ \draw[->,>=stealth,semithick](-1.5,0)--(1.5,0)node[right]{$x$};%
+ \draw[->,>=stealth,semithick](0,-1.5)--(0,1.5)node[above]{$y$};%
+ \draw[dashed](0,0)coordinate(O)-- (0.75,0)coordinate(Q)-- (0.75,1)coordinate(P);%
+ \draw pic["$\theta$",draw=black,->,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=Q--O--P};%
+ \end{tikzpicture}%
+ \空行%
+ 図において,$\sin\theta=\bunsuu{y}{r}\数式カンマスペース\quad\cos\theta=\bunsuu{x}{r}$より%
+ \[\sin^2\theta+\cos^2\theta=\bunsuu{y^2+x^2}{r^2}\]%
+ ここで,三平方の定理より$x^2+y^2=r^2$なので\par%
+ $\sin^2\theta+\cos^2\theta=\bunsuu{r^2}{r^2}=1$%
+ \空行%
+ $\sin\theta=\bunsuu{y}{r}\数式カンマスペース\quad\cos\theta=\bunsuu{x}{r}\quad\tan\theta=\bunsuu{y}{x}$より\par%
+ $\bunsuu{\sin\theta}{\cos\theta}=\bunsuu{y}{x}=\tan\theta$%
+ \空行%
+ $\sin^2\theta+\cos^2\theta=1$の両辺を$\cos^2\theta$で割ることで,\par%
+ \[\bunsuu{\sin^2\theta}{\cos^2\theta}+1=\bunsuu{1}{\cos^2\theta}\]%
+ ここで,$\bunsuu{\sin\theta}{\cos\theta}=\tan\theta$なので\par%
+ $\tan^2\theta+1=\bunsuu{1}{\cos^2\theta}$%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{-\theta}=-\sin\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{-\theta}=-\sin\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{-\theta}=\cos\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{-\theta}=\cos\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{-\theta}=-\tan\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{-\theta}=-\tan\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{\theta+\pi}=-\sin\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{\theta+\pi}=-\sin\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{\theta+\pi}=-\cos\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{\theta+\pi}=-\cos\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質F}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{\theta+\pi}=\tan\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質F}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{\theta+\pi}=\tan\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質G}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{\pi-\theta}=\sin\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質G}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{\pi-\theta}=\sin\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質H}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{\pi-\theta}=-\cos\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質H}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{\pi-\theta}=-\cos\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質I}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{\pi-\theta}=-\tan\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質I}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{\pi-\theta}=-\tan\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質J}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\cos\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質J}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\cos\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質K}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\sin\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質K}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\sin\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質L}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\bunsuu{1}{\tan\theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質L}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{\bunsuu{\pi}{2}-\theta}=\bunsuu{1}{\tan\theta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質M}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=\cos\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質M}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=\cos\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質N}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=-\sin\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{性質N}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=-\sin\theta\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質O}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=-\bunsuu{1}{\tan\theta}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質O}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{\theta+\bunsuu{\pi}{2}}=-\bunsuu{1}{\tan\theta}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の加法定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin\Ttyuukakko{\alpha\pm\beta}=\sin\alpha \cos\beta\pm \cos\alpha \sin\beta$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin\Ttyuukakko{\alpha\pm\beta}=\sin\alpha \cos\beta\pm \cos\alpha \sin\beta\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\cos\Ttyuukakko{\alpha\pm\beta}=\cos\alpha \cos\beta\mp \sin\alpha \sin\beta$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\cos\Ttyuukakko{\alpha\pm\beta}=\cos\alpha \cos\beta\mp \sin\alpha \sin\beta\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\tan\Ttyuukakko{\alpha\pm\beta}=\bunsuu{\tan\alpha \pm \tan\beta}{1\mp \tan\alpha \tan\beta}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\tan\Ttyuukakko{\alpha\pm\beta}=\bunsuu{\tan\alpha \pm \tan\beta}{1\mp \tan\alpha \tan\beta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \begin{tikzpicture}%
+ \draw(0,0)--(0.75,1);%
+ \draw(0,0)node[below right]{O};%
+ \draw(0.8,1)node[right]{P$\Ttyuukakko{\cos\alpha,\sin\alpha}$};%
+ \draw(0,0)circle[radius=1.25];%
+ \draw(0,-1.25)node[below left]{$-1$};%
+ \draw(-1.25,0)node[below left]{$-1$};%
+ \draw(0,1.25)node[above left]{$1$};%
+ \draw(1.25,0)node[below right]{$1$};%
+ \draw[->,>=stealth,semithick](-1.5,0)--(1.5,0)node[right]{$x$};%
+ \draw[->,>=stealth,semithick](0,-1.5)--(0,1.5)node[above]{$y$};%
+ \draw(-1,0.75)node[left]{Q$\Ttyuukakko{\cos\beta,\sin\beta}$};%
+ \draw(-1,0.75)coordinate(Q);%
+ \draw(-1,0.75)--(0.75,1);%
+ \draw(-1,0.75)--(0,0);%
+ \draw(0,0)coordinate(O)-- (0.75,0)coordinate(R)-- (0.75,1)coordinate(P);%
+ \draw pic["$\alpha$",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.5cm] {angle=R--O--P};%
+ \draw pic["$\beta$",draw=black,-,thin,angle eccentricity=1.4,angle radius=0.4cm] {angle=R--O--Q};%
+ \end{tikzpicture}%
+ \空行%
+ 図において,三角関数の性質より$\cos\Ttyuukakko{\beta-\alpha}=\cos\Ttyuukakko{\alpha-\beta}$なので,三角形QOPについて余弦定理より%
+ \[\mathrm{QP}^2=1^2+1^2-2\cdot1\cdot1\cdot\cos\Ttyuukakko{\alpha-\beta}\]%
+ また,QP間の距離について三平方の定理を用いて%
+ \[\mathrm{QP}^2=\Ttyuukakko{\cos\beta-\cos\alpha}^2+\Ttyuukakko{\sin\alpha-\sin\beta}^2\]%
+ \[\Leftrightarrow 2-2\cos\Ttyuukakko{\alpha-\beta}=\Ttyuukakko{\cos\beta-\cos\alpha}^2+\Ttyuukakko{\sin\alpha-\sin\beta}^2\]%
+ 両辺整理して,%
+ \[\cos\Ttyuukakko{\alpha-\beta}=\cos\alpha\cos\beta+\sin\alpha\sin\beta\]%
+ を得る。\par%
+ また,$\sin-\theta=-\sin\theta$より,%
+ \[\cos\Ttyuukakko{\alpha+\beta}=\cos\alpha\cos\beta-\sin\alpha\sin\beta\]%
+ \空行%
+ \[\cos\Ttyuukakko{\alpha-\beta}=\cos\alpha\cos\beta+\sin\alpha\sin\beta\]%
+ において,$\alpha$を$\bunsuu{\pi}{2}-\alpha$にすることで,%
+ \[\sin\Ttyuukakko{\alpha+\beta}=\sin\alpha \cos\beta+ \cos\alpha \sin\beta\]%
+ ここで,$\beta$を$-\beta$にすることで,%
+ \[\sin\Ttyuukakko{\alpha-\beta}=\sin\alpha \cos\beta-\cos\alpha \sin\beta\]%
+ \空行%
+ $\tan\theta=\bunsuu{\sin\theta}{\cos\theta}$より,%
+ \[\tan\Ttyuukakko{\alpha\pm\beta}=\bunsuu{\sin\alpha \cos\beta\pm \cos\alpha \sin\beta}{\cos\alpha \cos\beta\mp \sin\alpha \sin\beta}\]%
+ 両辺を$\cos\alpha\cos\beta$でわることで,%
+ \[\tan\Ttyuukakko{\alpha\pm\beta}=\bunsuu{\tan\alpha \pm \tan\beta}{1\mp \tan\alpha \tan\beta}\]%
+ を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の二倍角の公式}{ m O{i} }%%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin2\alpha=2\sin\alpha\cos\beta$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin2\alpha=2\sin\alpha\cos\beta\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\cos2\alpha=\cos^{2}\alpha-\sin^{2}\alpha$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\cos2\alpha=\cos^{2}\alpha-\sin^{2}\alpha\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\cos2\alpha=2\cos^{2}\alpha-1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\cos2\alpha=2\cos^{2}\alpha-1\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\cos2\alpha=1-2\sin^{2}\alpha$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\cos2\alpha=1-2\sin^{2}\alpha\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$\tan2\alpha=\frac{2\tan\alpha}{1-\tan^{2}\alpha}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {\[\tan2\alpha=\frac{2\tan\alpha}{1-\tan^{2}\alpha}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三角関数の加法定理\par%
+ \[\sin\Ttyuukakko{\alpha+\beta}=\sin\alpha \cos\beta+ \cos\alpha \sin\beta\]%
+ \[\cos\Ttyuukakko{\alpha+\beta}=\cos\alpha \cos\beta- \sin\alpha \sin\beta\]%
+ \[\tan\Ttyuukakko{\alpha+\beta}=\bunsuu{\tan\alpha + \tan\beta}{1- \tan\alpha \tan\beta}\]%
+ において,$\alpha=\beta=\theta$として,%
+ \[\sin2\theta=2\sin\theta\cos\theta\]%
+ \[\cos2\theta=\cos^{2}\theta-\sin^{2}\theta\]%
+ \[\tan2\theta=\bunsuu{2\tan\theta}{1-\tan^{2}\theta}\]%
+ を得る。\par%
+ また,$\cos2\theta=\cos^{2}\theta-\sin^{2}\theta$において,三角関数の相互関係$\sin^2\theta+\cos^2\theta=1$を用いて,%
+ \[\cos2\theta=2\cos^{2}\theta-1\]%
+ \[\Leftrightarrow\cos2\theta=1-2\sin^{2}\theta\]%
+ を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の三倍角の公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin3\alpha=-4\sin^{3}\alpha+3\sin\alpha$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin3\alpha=-4\sin^{3}\alpha+3\sin\alpha\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\cos3\alpha=4\cos^{3}\alpha-3\cos\alpha$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\cos3\alpha=4\cos^{3}\alpha-3\cos\alpha\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三角関数の加法定理%
+ \[\sin\Ttyuukakko{\alpha+\beta}=\sin\alpha \cos\beta+ \cos\alpha \sin\beta\]%
+ \[\cos\Ttyuukakko{\alpha+\beta}=\cos\alpha \cos\beta- \sin\alpha \sin\beta\]%
+ において,$\alpha=\theta\数式カンマスペース\beta=2\theta$のとき,%
+ \[\sin3\theta=\sin\theta \cos2\theta+ \cos\theta \sin2\theta\]%
+ \[\cos3\theta=\cos\theta\cos2\theta-\sin\theta\sin2\theta\]%
+ 二倍角の公式と三角関数の相互関係より,%
+ \begin{align*}%
+ \sin3\theta&=\sin\theta\Ttyuukakko{1-2\sin^{2}\theta}+2\sin\theta\cos^2\theta&\\%
+ &=\sin\theta-2\sin^{3}\theta+2\sin\theta\Ttyuukakko{1-\sin^2\theta}&\\%
+ &=-4\sin^{3}\theta+3\sin\theta&\\%
+ \cos3\theta&=\cos\theta\Ttyuukakko{2\cos^2\theta-1}-2\sin^2\theta\cos\theta&\\%
+ &=2\cos^{3}\theta-\cos\theta-2\Ttyuukakko{1-\cos^2\theta}\cos\theta &\\
+ &=4\cos^{3}\theta-3\cos\theta%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の積和公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin\alpha\cos\beta=\bunsuu{\sin\Ttyuukakko{\alpha+\beta}+\sin\Ttyuukakko{\alpha-\beta}}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin\alpha\cos\beta=\bunsuu{\sin\Ttyuukakko{\alpha+\beta}+\sin\Ttyuukakko{\alpha-\beta}}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\cos\alpha\cos\beta=\bunsuu{\cos\Ttyuukakko{\alpha+\beta}+\cos\Ttyuukakko{\alpha-\beta}}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\cos\alpha\cos\beta=\bunsuu{\cos\Ttyuukakko{\alpha+\beta}+\cos\Ttyuukakko{\alpha-\beta}}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\sin\alpha\sin\beta=\bunsuu{\cos\Ttyuukakko{\alpha+\beta}-\cos\Ttyuukakko{\alpha-\beta}}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\sin\alpha\sin\beta=\bunsuu{\cos\Ttyuukakko{\alpha+\beta}-\cos\Ttyuukakko{\alpha-\beta}}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三角関数の加法定理%
+ \begin{align*}
+ \sin\Ttyuukakko{\alpha+\beta}=\sin\alpha\cos\beta+\cos\alpha\sin\beta\shikimaru{1}\\%
+ \sin\Ttyuukakko{\alpha-\beta}=\sin\alpha\cos\beta-\cos\alpha\sin\beta\shikimaru{2}\\%
+ \cos\Ttyuukakko{\alpha+\beta}=\cos\alpha\cos\beta-\sin\alpha\sin\beta\shikimaru{3}\\%
+ \cos\Ttyuukakko{\alpha-\beta}=\cos\alpha\cos\beta+\sin\alpha\sin\beta\shikimaru{4}%
+ \end{align*}
+ より,$\text{\ajMaru{1}}+\text{\ajMaru{2}}$から%
+ \[\sin\alpha\cos\beta=\bunsuu{1}{2}\Tdaikakko{\sin\Ttyuukakko{\alpha+\beta}+\sin\Ttyuukakko{\alpha-\beta}}\]%
+ \半空行%
+ $\text{\ajMaru{3}}+\text{\ajMaru{4}}$から%
+ \[\cos\alpha\cos\beta=\bunsuu{1}{2}\Tdaikakko{\cos\Ttyuukakko{\alpha+\beta}+\cos\Ttyuukakko{\alpha-\beta}}\]%
+ \半空行%
+ $\text{\ajMaru{4}}-\text{\ajMaru{3}}$から%
+ \[\sin\alpha\sin\beta=\bunsuu{1}{2}\Tdaikakko{\cos\Ttyuukakko{\alpha-\beta}-\cos\Ttyuukakko{\alpha+\beta}}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の和積公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\sin{A}+\sin{B}=2 \sin\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\sin{A}+\sin{B}=2 \sin\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\sin{A}-\sin{B}=2 \cos\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\sin{A}-\sin{B}=2 \cos\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\cos{A}+\cos{B}=2 \cos\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\cos{A}+\cos{B}=2 \cos\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\cos{A}-\cos{B}=-2 \sin\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\cos{A}-\cos{B}=-2 \sin\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三角関数の積和の公式%
+ \[\sin\alpha\cos\beta=\bunsuu{1}{2}\Tdaikakko{\sin\Ttyuukakko{\alpha+\beta}+\sin\Ttyuukakko{\alpha-\beta}}\]%
+ \[\cos\alpha\cos\beta=\bunsuu{1}{2}\Tdaikakko{\cos\Ttyuukakko{\alpha+\beta}+\cos\Ttyuukakko{\alpha-\beta}}\]%
+ \[\sin\alpha\sin\beta=\bunsuu{1}{2}\Tdaikakko{\cos\Ttyuukakko{\alpha-\beta}-\cos\Ttyuukakko{\alpha+\beta}}\]%
+ において,$\alpha+\beta=A\数式カンマスペース\alpha-\beta=B$と置くことで,$\alpha=\bunsuu{A+B}{2}\数式カンマスペース\beta=\bunsuu{A-B}{2}$となるので,%
+ \[\sin{A}+\sin{B}=2 \sin\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}\]%
+ \[\sin{A}-\sin{B}=2 \cos\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}\]%
+ \[\cos{A}+\cos{B}=2 \cos\bunsuu{A+B}{2}\cos\bunsuu{A-B}{2}\]%
+ \[\cos{A}-\cos{B}=-2 \sin\bunsuu{A+B}{2}\sin\bunsuu{A-B}{2}\]%
+ \証明終了%
+ となる。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\三角関数の合成}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$a\sin\theta+b\cos\theta=\sqrt{a^2+b^2}\sin\Ttyuukakko{\theta+\alpha}\text{\ (ただし,$\sin\alpha=\bunsuu{b}{\sqrt{a^2+b^2}}\数式カンマスペース\cos\alpha=\bunsuu{a}{\sqrt{a^2+b^2}}$)}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ \[a\sin\theta+b\cos\theta=\sqrt{a^2+b^2}\sin\Ttyuukakko{\theta+\alpha}\text{\ (ただし,$\sin\alpha=\bunsuu{b}{\sqrt{a^2+b^2}}\数式カンマスペース\cos\alpha=\bunsuu{a}{\sqrt{a^2+b^2}}$)}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三角関数の加法定理\par%
+ $\sin\Ttyuukakko{\alpha+\beta}=\sin\alpha \cos\beta+ \cos\alpha \sin\beta$について,%
+ \[\bunsuu{a}{\sqrt{a^2+b^2}}=\cos\alpha\数式カンマスペース\bunsuu{b}{\sqrt{a^2+b^2}}=\sin\alpha\]%
+ とすることで,\par%
+ \[a\sin\theta+b\cos\theta=\sqrt{a^2+b^2}\sin\Ttyuukakko{\theta+\alpha}\]%
+ となる。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\有理数の指数}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$a>0$また$m\数式カンマスペース n$が正の整数,$r$が正の有理数のとき,$a^{\bunsuu{m}{n}}=\sqrt[n]{a^{m}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $a>0$また$m\数式カンマスペース n$が正の整数,$r$が正の有理数のとき,%
+ \[a^{\bunsuu{m}{n}}=\sqrt[n]{a^{m}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$a>0$また$n$が正の整数のとき,$a^{\bunsuu{1}{n}}=\sqrt[n]{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $a>0$また$n$が正の整数のとき,%
+ \[a^{\bunsuu{1}{n}}=\sqrt[n]{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$a>0$,$r$が正の有理数のとき,$a^{-r}=\bunsuu{1}{a^{r}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ $a>0$,$r$が正の有理数のとき,%
+ \[a^{-r}=\bunsuu{1}{a^{r}}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\指数法則}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$a>0$また,$r\数式カンマスペース s$は有理数のとき,$a^{r}a^{s}=a^{r+s}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $a>0$また,$r\数式カンマスペース s$は有理数のとき,%
+ \[a^{r}a^{s}=a^{r+s}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$a>0$また,$r\数式カンマスペース s$は有理数のとき,$\Ttyuukakko{a^{r}}^{s}=a^{rs}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $a>0$また,$r\数式カンマスペース s$は有理数のとき,%
+ \[\Ttyuukakko{a^{r}}^{s}=a^{rs}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース b>0$また,$r$は有理数のとき,$\Ttyuukakko{ab}^{r}=a^{r}b^{r}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース b>0$また,$r$は有理数のとき,%
+ \[\Ttyuukakko{ab}^{r}=a^{r}b^{r}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$a>0$また,$r\数式カンマスペース s$は有理数のとき,$\bunsuu{a^{r}}{a^{s}}=a^{r-s}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ $a>0$また,$r\数式カンマスペース s$は有理数のとき,%
+ \[\bunsuu{a^{r}}{a^{s}}=a^{r-s}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース b>0$また,$r$は有理数のとき,$\Ttyuukakko{\bunsuu{a}{b}}^{r}=\bunsuu{a^{r}}{b^{r}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース b>0$また,$r$は有理数のとき,%
+ \[\Ttyuukakko{\bunsuu{a}{b}}^{r}=\bunsuu{a^{r}}{b^{r}}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\対数の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {%
+ $a>0\数式カンマスペース b>0$また,$r\数式カンマスペース s$は有理数とする。\par%
+ $a^{p}=M$ならば,$\log_{a}M$,$\log_{a}M \log_{a}M$ならば,$a^{p}=M$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース b>0$また,$r\数式カンマスペース s$は有理数とする。\par%
+ $a^{p}=M$ならば,$\log_{a}M$\par%
+ $\log_{a}M$ならば,$a^{p}=M$%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\対数の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1$とするとき,$\log_{a}a=1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1$とするとき,%
+ \[\log_{a}a=1\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1$とするとき,$\log_{a}1=0$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1$とするとき,%
+ \[\log_{a}1=0\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1$とするとき,$\log_{a}\bunsuu{1}{a}=-1$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1$とするとき,%
+ \[\log_{a}\bunsuu{1}{a}=-1\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,$\log_{a}MN=\log_{a}M+\log_{a}N$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,%
+ \[\log_{a}MN=\log_{a}M+\log_{a}N\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,$\log_{a}\bunsuu{M}{N}=\log_{a}M-\log_{a}N$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,%
+ \[\log_{a}\bunsuu{M}{N}=\log_{a}M-\log_{a}N\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{i}}%
+ {$a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,$\log_{a}M^{k}=k\log_{a}M$}{\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{b}}%
+ {%
+ $a>0\数式カンマスペース a\neq1\数式カンマスペース M>0\数式カンマスペース N>0$とするとき,%
+ \[\log_{a}M^{k}=k\log_{a}M\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $p=\log_{a}M\数式カンマスペース q=\log_{a}N$として,\par%
+ $MN=a^{p}a^{q}$指数法則より%
+ \[MN=a^{p+q}\]%
+ ここで,対数の定義より%
+ \[\log_{a}MN=p+q\]%
+    \[\Leftrightarrow\log_{a}MN=\log_{a}M+\log_{a}N\]%
+ \空行%
+ $p=\log_{a}M\数式カンマスペース q=\log_{a}N$として,%
+ \[\bunsuu{M}{N}=\bunsuu{a^{p}}{a^{q}}\]%
+ 指数法則より%
+ \[\bunsuu{M}{N}=a^{p-q}\]%
+ ここで,対数の定義より%
+ \[\log_{a}\bunsuu{M}{N}=p-q\]%
+ \[\Leftrightarrow\log_{a}\bunsuu{M}{N}=\log_{a}M-\log_{a}N\]%
+ \空行%
+ $p=\log_{a}M$として,$a^{p}=M$より両辺$k$乗して%
+ \[a^{pk}=M^{k}\]%
+ 対数を取ると%
+ \[pk=\log_{a}M^{k}\]%
+ $p=\log_{a}M$より,%
+ \[\log_{a}M^{k}=k\log_{a}M\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\底の変換公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$a\数式カンマスペース b\数式カンマスペース c$は正の実数で,$a\neq1\数式カンマスペース b\neq1\数式カンマスペース c\neq1$のとき,$\log_{a}b=\bunsuu{\log_{c}b}{\log_{c}a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ $a\数式カンマスペース b\数式カンマスペース c$は正の実数で,$a\neq1\数式カンマスペース b\neq1\数式カンマスペース c\neq1$のとき,%
+ \[\log_{a}b=\bunsuu{\log_{c}b}{\log_{c}a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 対数の定義より$a^{\log_{a}b}=b$が成立。\par%
+ 底が$c$の対数を取ると,%
+ \[\log_{c}a^{\log_{a}b}=\log_{c}b\]%
+ 対数の性質より,%
+ \[\log_{a}b\log_{c}a=\log_{c}b\]%
+ よって,%
+ \[\log_{a}b=\bunsuu{\log_{c}b}{\log_{c}a}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\導関数の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$f'\Ttyuukakko{x}=\displaystyle\lim_{h \to 0}\bunsuu{f\Ttyuukakko{x+h}-f\Ttyuukakko{x}}{h}$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {\[f'\Ttyuukakko{x}=\displaystyle\lim_{h \to 0}\bunsuu{f\Ttyuukakko{x+h}-f\Ttyuukakko{x}}{h}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\べき乗関数と定数関数の導関数}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{x^{n}}'=nx^{n-1}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{x^{n}}'=nx^{n-1}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{c}'=0$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{c}'=0\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 導関数の定義より,\par%
+ \[\Ttyuukakko{x^{n}}'=\displaystyle\lim_{h \to 0}\bunsuu{\Ttyuukakko{x+h}^{n}-x^{n}}{h}\]%
+ 二項定理より,\par%
+ \begin{align*}%
+ \Ttyuukakko{x^{n}}'&=\displaystyle\lim_{h \to 0} \bunsuu{\Ttyuukakko{x+h}^{n}-x^{n}}{h}&\\%
+ &=\displaystyle\lim_{h \to 0}\bunsuu{{}_{n}C_{0} x^{n}+{}_{n}C_{1} x^{n-1}h+{}_{n}C_{2}x^{n-2}h^2+\cdots\cdot{}_{n}C_{n-1} xh^{n-1}+{}_{n}C_{n} h^{n}-x^{n}}{h}&\\%
+ &=\displaystyle\lim_{h \to 0}\Ttyuukakko{{}_{n}C_{1} x^{n-1}+{}_{n}C_{2}x^{n-2}h+\cdots+{}_{n}C_{n-1} xh^{n-2}+{}_{n}C_{n} h^{n-1}}&\\%
+ &=\displaystyle\lim_{h \to 0}\Tdaikakko{{}_{n}C_{1} x^{n-1}+\Ttyuukakko{{}_{n}C_{2}x^{n-2}+\cdots\cdot{}_{n}C_{n-1} xh^{n-3}+{}_{n}C_{n} h^{n-2}}h}&\\%
+ &={}_{n}C_{1} x^{n-1}&\\%
+ &=nx^{n-1}%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\導関数の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {${kf\Ttyuukakko{x}}'=kf'\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[{kf\Ttyuukakko{x}}'=kf'\Ttyuukakko{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {${f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}'=f'\Ttyuukakko{x}\pm g'\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[{f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}'=f'\Ttyuukakko{x}\pm g'\Ttyuukakko{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {${kf\Ttyuukakko{x}+lg\Ttyuukakko{x}}'=kf'\Ttyuukakko{x}+lg'\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[{kf\Ttyuukakko{x}+lg\Ttyuukakko{x}}'=kf'\Ttyuukakko{x}+lg'\Ttyuukakko{x}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\接線の方程式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {曲線$y=f\Ttyuukakko{x}$上の点$\Ttyuukakko{a\数式カンマスペース f\Ttyuukakko{a}}$における曲線の接線の方程式は,$y-f\Ttyuukakko{a}=f'\Ttyuukakko{x}\Ttyuukakko{x-a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 曲線$y=f\Ttyuukakko{x}$上の点$\Ttyuukakko{a\数式カンマスペース f\Ttyuukakko{a}}$における曲線の接線の方程式は,%
+ \[y-f\Ttyuukakko{a}=f'\Ttyuukakko{x}\Ttyuukakko{x-a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\不定積分の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,$\int_{}^{} f\Ttyuukakko{x}dx=F\Ttyuukakko{x}+C$($C$は積分定数)}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ $F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,%
+ \[\int_{}^{} f\Ttyuukakko{x}dx=F\Ttyuukakko{x}+C\]%
+ ($C$は積分定数)%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\べき乗関数の不定積分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$\int_{}^{} x^{n}dx=\bunsuu{1}{n+1}x^{n+1}+C\text{\ ($C$は積分定数)}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ \[\int_{}^{} x^{n}dx=\bunsuu{1}{n+1}x^{n+1}+C\text{\ ($C$は積分定数)}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\不定積分の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\displaystyle \int_{}^{} kf\Ttyuukakko{x}dx=k\displaystyle \int_{}^{} f\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\int_{}^{} kf\Ttyuukakko{x}dx=k\int_{}^{} f\Ttyuukakko{x}dx\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\displaystyle \int_{}^{} {f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}dx=\displaystyle \int_{}^{} f\Ttyuukakko{x}dx\pm\displaystyle \int_{}^{} g\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\int_{}^{} {f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}dx=\int_{}^{} f\Ttyuukakko{x}dx\pm\int_{}^{} g\Ttyuukakko{x}dx\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\displaystyle \int_{}^{} {kf\Ttyuukakko{x}+lg\Ttyuukakko{x}}dx=k\displaystyle \int_{}^{} f\Ttyuukakko{x}dx+l\displaystyle \int_{}^{} g\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\int_{}^{} {kf\Ttyuukakko{x}+lg\Ttyuukakko{x}}dx=k\int_{}^{} f\Ttyuukakko{x}dx+l\int_{}^{} g\Ttyuukakko{x}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\定積分の定義}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {曲線$y=f\Ttyuukakko{x}$と$x$軸(区間は$a$から$b$)に囲まれた部分の面積$S$について,$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,$S=\int_{b}^{a} f\Ttyuukakko{x}dx=[F\Ttyuukakko{x}]^{b}_{a}=F\Ttyuukakko{b}-F\Ttyuukakko{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 曲線$y=f\Ttyuukakko{x}$と$x$軸(区間は$a$から$b$)に囲まれた部分の面積$S$について,$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,%
+ \[S=\int_{b}^{a} f\Ttyuukakko{x}dx=[F\Ttyuukakko{x}]^{b}_{a}=F\Ttyuukakko{b}-F\Ttyuukakko{a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\定積分の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\int_{b}^{a} kf\Ttyuukakko{x}dx=k\int_{b}^{a} f\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\int_{b}^{a} kf\Ttyuukakko{x}dx=k\int_{b}^{a} f\Ttyuukakko{x}dx\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\int_{b}^{a} {f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}dx=\int_{b}^{a} f\Ttyuukakko{x}dx\pm\int_{b}^{a} g\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\int_{b}^{a} {f\Ttyuukakko{x}\pm g\Ttyuukakko{x}}dx=\int_{b}^{a} f\Ttyuukakko{x}dx\pm\int_{b}^{a} g\Ttyuukakko{x}dx\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\int_{a}^{a} f\Ttyuukakko{x}dx=0$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\int_{a}^{a} f\Ttyuukakko{x}dx=0\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\int_{b}^{a} f\Ttyuukakko{x}dx=-\int_{a}^{b} f\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\int_{b}^{a} f\Ttyuukakko{x}dx=-\int_{a}^{b} f\Ttyuukakko{x}dx\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$\int_{b}^{a} f\Ttyuukakko{x}dx=\int_{a}^{c} f\Ttyuukakko{x}dx+\int_{c}^{b} f\Ttyuukakko{x}dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {\[\int_{b}^{a} f\Ttyuukakko{x}dx=\int_{a}^{c} f\Ttyuukakko{x}dx+\int_{c}^{b} f\Ttyuukakko{x}dx\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\ベクトルの演算}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$k\数式カンマスペース l$が実数のとき,$\vec{a}+\vec{b}=\vec{b}+\vec{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $k\数式カンマスペース l$が実数のとき%
+ \[\vec{a}+\vec{b}=\vec{b}+\vec{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$k\数式カンマスペース l$が実数のとき,$\Ttyuukakko{\vec{a}+\vec{b}}+\vec{c}=\vec{a}+\Ttyuukakko{\vec{b}+\vec{c}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $k\数式カンマスペース l$が実数のとき%
+ \[\Ttyuukakko{\vec{a}+\vec{b}}+\vec{c}=\vec{a}+\Ttyuukakko{\vec{b}+\vec{c}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\vec{a}+\Ttyuukakko{a\vec{a}}=\vec{0}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\vec{a}+\Ttyuukakko{a\vec{a}}=\vec{0}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\vec{a}+\vec{0}=\vec{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\vec{a}+\vec{0}=\vec{a}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$\vec{a}-\vec{b}=\vec{a}+\Ttyuukakko{-\vec{b}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {\[\vec{a}-\vec{b}=\vec{a}+\Ttyuukakko{-\vec{b}}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{i}}%
+ {$k\数式カンマスペース l$が実数のとき,$k\Ttyuukakko{l\vec{a}}=l\Ttyuukakko{k\vec{b}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{b}}%
+ {%
+ $k\数式カンマスペース l$が実数のとき%
+ \[k\Ttyuukakko{l\vec{a}}=l\Ttyuukakko{k\vec{b}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式G}\AND\equal{#2}{i}}%
+ {$k\数式カンマスペース l$が実数のとき,$\Ttyuukakko{k+l}\vec{a}=k\vec{a}+l\vec{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式G}\AND\equal{#2}{b}}%
+ {%
+ $k\数式カンマスペース l$が実数のとき%
+ \[\Ttyuukakko{k+l}\vec{a}=k\vec{a}+l\vec{a}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式H}\AND\equal{#2}{i}}%
+ {$k$が実数のとき,$k\Ttyuukakko{\vec{a}+\vec{b}}=k\vec{a}+k\vec{b}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式H}\AND\equal{#2}{b}}%
+ {%
+ $k$が実数のとき%
+ \[k\Ttyuukakko{\vec{a}+\vec{b}}=k\vec{a}+k\vec{b}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式I}\AND\equal{#2}{i}}%
+ {$\overrightarrow{AB}+\overrightarrow{BC}=\overrightarrow{AC}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式I}\AND\equal{#2}{b}}%
+ {\[\overrightarrow{AB}+\overrightarrow{BC}=\overrightarrow{AC}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式J}\AND\equal{#2}{i}}%
+ {$\overrightarrow{OA}-\overrightarrow{OB}=\overrightarrow{BA}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式J}\AND\equal{#2}{b}}%
+ {\[\overrightarrow{OA}-\overrightarrow{OB}=\overrightarrow{BA}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式K}\AND\equal{#2}{i}}%
+ {$\overrightarrow{AA}=\vec{0}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式K}\AND\equal{#2}{b}}%
+ {\[\overrightarrow{AA}=\vec{0}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式L}\AND\equal{#2}{i}}%
+ {$\overrightarrow{BA}=\overrightarrow{AB}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式L}\AND\equal{#2}{b}}%
+ {\[\overrightarrow{BA}=\overrightarrow{AB}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\平面ベクトルの分解}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$\vec{a}\neq0\数式カンマスペース\vec{b}\neq0$で,$\vec{a}$と$\vec{b}$が平行でないとき,任意の$\vec{p}$はただ一通りに,$\vec{p}=s\vec{a}+t\vec{b}$の形に表せられる。}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}\neq0\数式カンマスペース\vec{b}\neq0$で,$\vec{a}$と$\vec{b}$が平行でないとき,任意の$\vec{p}$はただ一通りに,%
+ \[\vec{p}=s\vec{a}+t\vec{b}\]%
+ の形に表せられる。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\平面ベクトルの成分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,$\vec{a}=\vec{b}\Leftrightarrow a_{1}=b_{1}\数式カンマスペース a_{2}=b_{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,%
+ $\vec{a}=\vec{b}$%
+ \[\Leftrightarrow a_{1}=b_{1}\数式カンマスペース a_{2}=b_{2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,$a_{1}=b_{1}\数式カンマスペース a_{2}=b_{2}\Leftrightarrow\vec{a}=\vec{b}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,%
+ $a_{1}=b_{1}\数式カンマスペース a_{2}=b_{2}$%
+ \[\Leftrightarrow\vec{a}=\vec{b}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}$とすると,$\Tzettaiti{\vec{a}}=\sqrt{a_{1}^2+a_{2}^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}$とすると,%
+ \[\Tzettaiti{\vec{a}}=\sqrt{a_{1}^2+a_{2}^2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$また,$k\数式カンマスペース l$を実数として,$k\vec{a}+l\vec{b}=k\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}+l\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}=\Ttyuukakko{ka_{1}+lb_{1}\数式カンマスペース ka_{2}+lb_{2}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}=\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース\vec{b}=\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$また,$k\数式カンマスペース l$を実数として,%
+ \[k\vec{a}+l\vec{b}=k\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}+l\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}=\Ttyuukakko{ka_{1}+lb_{1}\数式カンマスペース ka_{2}+lb_{2}}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\ベクトルの成分と大きさ}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース B\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,$\overrightarrow{AB}=\Ttyuukakko{b_{1}-a_{1}\数式カンマスペース b_{2}-a_{2}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース B\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,%
+ \[\overrightarrow{AB}=\Ttyuukakko{b_{1}-a_{1}\数式カンマスペース b_{2}-a_{2}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース B\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,$\Tzettaiti{\overrightarrow{AB}}=\sqrt{\Ttyuukakko{b_{1}-a_{1}}^2+\Ttyuukakko{b_{2}-a_{2}}^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{a_{1}\数式カンマスペース a_{2}}\数式カンマスペース B\Ttyuukakko{b_{1}\数式カンマスペース b_{2}}$とすると,%
+ \[\Tzettaiti{\overrightarrow{AB}}=\sqrt{\Ttyuukakko{b_{1}-a_{1}}^2+\Ttyuukakko{b_{2}-a_{2}}^2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 三平方の定理より,%
+ \[\Tzettaiti{\overrightarrow{AB}}=\sqrt{\Ttyuukakko{b_{1}-a_{1}}^2+\Ttyuukakko{b_{2}-a_{2}}^2}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\平面ベクトルの内積}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {ベクトルの内積は,$\vec{a} \cdot\vec{b}=|\vec{a}||\vec{b}|\cos\theta \Ttyuukakko{0^{\circ} \leqq \theta \leqq 180^{\circ}}\text{\ (ただし,$\theta$は$\vec{a}$と$\vec{b}$のなす角}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ ベクトルの内積は,%
+ \[\vec{a} \cdot\vec{b}=|\vec{a}||\vec{b}|\cos\theta \Ttyuukakko{0^{\circ} \leqq \theta \leqq 180^{\circ}}\text{\ (ただし,$\theta$は$\vec{a}$と$\vec{b}$のなす角}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\内積の性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$\vec{a} \cdot\vec{b}=\vec{b} \cdot\vec{a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {\[\vec{a} \cdot\vec{b}=\vec{b} \cdot\vec{a}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\vec{a}+\vec{b}} \cdot\vec{c}=\vec{a} \cdot\vec{c}+\vec{b} \cdot\vec{c}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\vec{a}+\vec{b}} \cdot\vec{c}=\vec{a} \cdot\vec{c}+\vec{b} \cdot\vec{c}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\vec{c} \cdot\Ttyuukakko{\vec{b}+\vec{c}}=\vec{a} \cdot\vec{c}+\vec{b} \cdot\vec{c}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\vec{c} \cdot\Ttyuukakko{\vec{b}+\vec{c}}=\vec{a} \cdot\vec{c}+\vec{b} \cdot\vec{c}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$k$が実数のとき,$\Ttyuukakko{k\vec{a}} \cdot\vec{b}=\vec{a} \cdot\Ttyuukakko{k\vec{b}}=k\Ttyuukakko{\vec{a} \cdot\vec{b}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ $k$が実数のとき,%
+ \[\Ttyuukakko{k\vec{a}} \cdot\vec{b}=\vec{a} \cdot\Ttyuukakko{k\vec{b}}=k\Ttyuukakko{\vec{a} \cdot\vec{b}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$\vec{a} \cdot\vec{a}=\Tzettaiti{\vec{a}}^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {\[\vec{a} \cdot\vec{a}=\Tzettaiti{\vec{a}}^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{i}}%
+ {$\Tzettaiti{\vec{a}}=\sqrt{\vec{a} \cdot\vec{a}}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式F}\AND\equal{#2}{b}}%
+ {\[\Tzettaiti{\vec{a}}=\sqrt{\vec{a} \cdot\vec{a}}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\平面ベクトルの平行条件}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{条件}\AND\equal{#2}{i}}%
+ {%
+ $\vec{a}\neq\vec{0}\数式カンマスペース\vec{b}\neq\vec{0}$また,$k$は実数とする,\par%
+ $\vec{a}/ \!/ \vec{b}\Leftrightarrow\vec{b}=k\vec{a}$,$\vec{b}=k\vec{a}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{条件}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}\neq\vec{0}\数式カンマスペース\vec{b}\neq\vec{0}$また,$k$は実数とする,\par%
+ $\vec{a}/ \!/ \vec{b}$%
+ \[\Leftrightarrow\vec{b}=k\vec{a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\平面ベクトルの垂直条件}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{条件}\AND\equal{#2}{i}}%
+ {%
+ $\vec{a}\neq\vec{0}\数式カンマスペース\vec{b}\neq\vec{0}$また,$k$は実数とする,\par%
+ $\vec{a} \perp \vec{b}\Leftrightarrow\vec{a} \cdot\vec{b}=0$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{条件}\AND\equal{#2}{b}}%
+ {%
+ $\vec{a}\neq\vec{0}\数式カンマスペース\vec{b}\neq\vec{0}$また,$k$は実数とする,\par%
+ $\vec{a} \perp \vec{b}$%
+ \[\Leftrightarrow\vec{a} \cdot\vec{b}=0\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\位置ベクトル}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$を$m:n$に内分する点は,$\bunsuu{n\vec{a}+m\vec{b}}{m+n}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$を$m:n$に内分する点は,%
+ \[\bunsuu{n\vec{a}+m\vec{b}}{m+n}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{内分点の位置ベクトルの証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $P\Ttyuukakko{\vec{p}}$が$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$を$m:n$に内分するとき,%
+ \begin{align*}%
+ \vec{p}&=\vec{a}+\bunsuu{m}{m+n}\Ttyuukakko{\vec{b}-\vec{a}}&\\%
+ &=\bunsuu{n\vec{a}+m\vec{b}}{m+n}&\\%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$を$m:n$に外分する点は,$\bunsuu{-n\vec{a}+m\vec{b}}{m-n}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$を$m:n$に外分する点は,%
+ \[\bunsuu{-n\vec{a}+m\vec{b}}{m-n}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{外分点の位置ベクトルの証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ $m:n$に外分ということは$m:-n$に内分ということなので,$\bunsuu{-n\vec{a}+m\vec{b}}{m-n}$%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$の中点は,$\bunsuu{\vec{a}+\vec{b}}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$とする,線分$AB$の中点は,%
+ \[\bunsuu{\vec{a}+\vec{b}}{2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}\数式カンマスペース C\Ttyuukakko{\vec{c}}$とする,三角形$ABC$の重心は,$\bunsuu{\vec{a}+\vec{b}+\vec{c}}{3}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ $A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}\数式カンマスペース C\Ttyuukakko{\vec{c}}$とする,三角形$ABC$の重心は,%
+ \[\bunsuu{\vec{a}+\vec{b}+\vec{c}}{3}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\ベクトル方程式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$s\数式カンマスペース t$を実数とする。点$A\Ttyuukakko{\vec{a}}$をとおり,$\vec{d}$に平行な直線は,$\vec{p}=\vec{a}+t\vec{b}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $s\数式カンマスペース t$を実数とする。点$A\Ttyuukakko{\vec{a}}$をとおり,$\vec{d}$に平行な直線は,%
+ \[\vec{p}=\vec{a}+t\vec{b}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$s\数式カンマスペース t$を実数とする。二点$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$を通る直線は,$\vec{p}=\Ttyuukakko{1-t}\vec{a}+t\vec{b}\数式カンマスペース\vec{p}=a\vec{a}+t\vec{b}\text{\ (ただし,$s+t=1$)}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {%
+ $s\数式カンマスペース t$を実数とする。二点$A\Ttyuukakko{\vec{a}}\数式カンマスペース B\Ttyuukakko{\vec{b}}$を通る直線は,%
+ \[\vec{p}=\Ttyuukakko{1-t}\vec{a}+t\vec{b}\数式カンマスペース\vec{p}=a\vec{a}+t\vec{b}\text{\ (ただし,$s+t=1$)}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {点$A\Ttyuukakko{\vec{a}}$を通り,$\vec{n}$に垂直な直線$\vec{p}$について,$\vec{n}\cdot\Ttyuukakko{\vec{p}-\vec{a}}=0$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {%
+ 点$A\Ttyuukakko{\vec{a}}$を通り,$\vec{n}$に垂直な直線$\vec{p}$について,%
+ \[\vec{n}\cdot\Ttyuukakko{\vec{p}-\vec{a}}=0\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {中心$C\Ttyuukakko{\vec{c}}$,半径$r$の円は,$\Tzettaiti{\vec{p}-\vec{c}}=r\数式カンマスペース\Ttyuukakko{\vec{p}-\vec{c}}\cdot\Ttyuukakko{\vec{p}-\vec{c}}=r^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {%
+ 中心$C\Ttyuukakko{\vec{c}}$,半径$r$の円は,%
+ \[\Tzettaiti{\vec{p}-\vec{c}}=r\]%
+ \[\Ttyuukakko{\vec{p}-\vec{c}}\cdot\Ttyuukakko{\vec{p}-\vec{c}}=r^2\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\等差数列}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{i}}%
+ {初項$a_{1}$,公差$d$のとき,$a_{n}=a_{1}+\Ttyuukakko{n-1}d$}{\relax}%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{b}}%
+ {%
+ 初項$a_{1}$,公差$d$のとき,%
+ \[a_{n}=a_{1}+\Ttyuukakko{n-1}d\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{総和}\AND\equal{#2}{i}}%
+ {$S_{n}=\bunsuu{n\Ttyuukakko{a_{1}+a_{n}}}{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{総和}\AND\equal{#2}{b}}%
+ {\[S_{n}=\bunsuu{n\Ttyuukakko{a_{1}+a_{n}}}{2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \[S_{n}=a_{1}+\Ttyuukakko{a_{1}+d}+\Ttyuukakko{a_{1}+2d}+\cdots+\Tdaikakko{a_{1}+\Ttyuukakko{n-1}d}\]%
+ \[S_{n}=\Tdaikakko{a_{1}+\Ttyuukakko{n-1}d}+\cdots+a_{1}+\Ttyuukakko{a_{1}+d}+\Ttyuukakko{a_{1}+2d}\]%
+ 連立して,$2S=\Ttyuukakko{a_{1}+a_{n}}n$より,\par%
+ $S_{n}=\bunsuu{n\Ttyuukakko{a_{1}+a_{n}}}{2}$%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\等比数列}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{i}}%
+ {$a_{n}=ar^{n-1}$}{\relax}%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{b}}%
+ {\[a_{n}=ar^{n-1}\]}{\relax}%
+ \ifthenelse{\equal{#1}{総和}\AND\equal{#2}{i}}%
+ {%
+ $r\neq1$のとき,$S_{n}=\bunsuu{a_{1}\Ttyuukakko{1-r^{n}}}{1-r}$もしくは,$\bunsuu{a_{1}\Ttyuukakko{r^{n}-1}}{r-1}$\par%
+ $r=1$のとき,$S_{n}=na_{1}$%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{総和}\AND\equal{#2}{b}}%
+ {%
+ $r\neq1$のとき,%
+ \[S_{n}=\bunsuu{a_{1}\Ttyuukakko{1-r^{n}}}{1-r}\]%
+ もしくは,%
+ \[S_{n}=\bunsuu{a_{1}\Ttyuukakko{r^{n}-1}}{r-1}\]%
+ $r=1$のとき,%
+ \[S_{n}=na_{1}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ \[S_{n}=a_{1}+ra_{1}+r^2a_{1}+\cdots+r^{n-1}a_{1}\]%
+ \[S_{n}r=ra_{1}+r^2a_{2}+r^{3}a_{1}+\cdots+r^{n}\]%
+ 連立することで,$S\Ttyuukakko{1-r}=a_{1}-r^{n}a_{1}$となる。\par%
+ よって,%
+ \[S=\bunsuu{a_{1}\Ttyuukakko{1-r^{n}}}{1-r}\]%
+ また,$\bunsuu{-1}{-1}$をかけることで,%
+ \[S=\bunsuu{a_{1}\Ttyuukakko{r^{n}-1}}{r-1}\]%
+ 以上より,%
+ \[S=\bunsuu{a_{1}\Ttyuukakko{1-r^{n}}}{1-r}=\bunsuu{a_{1}\Ttyuukakko{r^{n}-1}}{r-1}\]%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\シグマの公式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{i}}%
+ {$c$は$k$に無関係なとき,$\displaystyle \sum_{k=1}^{n} c=nc$}{\relax}%
+ \ifthenelse{\equal{#1}{公式A}\AND\equal{#2}{b}}%
+ {%
+ $c$は$k$に無関係なとき,%
+ \[\displaystyle \sum_{k=1}^{n} c=nc\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{i}}%
+ {$\displaystyle \sum_{k=1}^{n} k=\bunsuu{1}{2}n\Ttyuukakko{n+1}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式B}\AND\equal{#2}{b}}%
+ {\[\displaystyle \sum_{k=1}^{n} k=\bunsuu{1}{2}n\Ttyuukakko{n+1}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{i}}%
+ {$\displaystyle \sum_{k=1}^{n} k^2=\bunsuu{1}{6}n\Ttyuukakko{n+1}\Ttyuukakko{2n+1}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式C}\AND\equal{#2}{b}}%
+ {\[\displaystyle \sum_{k=1}^{n} k^2=\bunsuu{1}{6}n\Ttyuukakko{n+1}\Ttyuukakko{2n+1}\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{i}}%
+ {$\displaystyle \sum_{k=1}^{n} k^{3}=\Tdaikakko{\bunsuu{1}{2}n\Ttyuukakko{n+1}}^2$}{\relax}%
+ \ifthenelse{\equal{#1}{公式D}\AND\equal{#2}{b}}%
+ {\[\displaystyle \sum_{k=1}^{n} k^{3}=\Tdaikakko{\bunsuu{1}{2}n\Ttyuukakko{n+1}}^2\]}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{i}}%
+ {$\displaystyle \sum_{k=1}^{n} r^{k-1}=\bunsuu{\Ttyuukakko{1-r^{n}}}{1-r}=\bunsuu{r^{n}-1}{r-1}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式E}\AND\equal{#2}{b}}%
+ {\[\displaystyle \sum_{k=1}^{n} r^{k-1}=\bunsuu{\Ttyuukakko{1-r^{n}}}{1-r}=\bunsuu{r^{n}-1}{r-1}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $\Ttyuukakko{k+1}^{3}=k^{3}+3k^2+3k+1$を用いる。\par%
+ $\Ttyuukakko{k+1}^{3}-k^{3}=3k^2+3k+1$の$k$に$1$から$n$までの自然数を代入したものを足したものは,%
+ \[\Ttyuukakko{n+1}^{3}-1=3\displaystyle \sum_{k=1}^{n} k^2+3\displaystyle \sum_{k=1}^{n} k=\bunsuu{1}{2}n\Ttyuukakko{n+1}+n\]%
+ \[\Leftrightarrow\displaystyle \sum_{k=1}^{n} k^2=\bunsuu{1}{6}n\Ttyuukakko{n+1}\Ttyuukakko{2n+1}\]
+ となる。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\シグマの性質}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{性質}\AND\equal{#2}{i}}%
+ {$p\数式カンマスペース q$が$k$に無関係な定数のとき,$\displaystyle\sum_{k=1}^{n}\Ttyuukakko{pa_{k}+qb_{k}}=p\displaystyle\sum_{k=1}^{n}a_{k}+q\displaystyle\sum_{k=1}^{n}a_{k}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質}\AND\equal{#2}{b}}%
+ {%
+ $p\数式カンマスペース q$が$k$に無関係な定数のとき,%
+ \[\displaystyle\sum_{k=1}^{n}\Ttyuukakko{pa_{k}+qb_{k}}=p\displaystyle\sum_{k=1}^{n}a_{k}+q\displaystyle\sum_{k=1}^{n}a_{k}\]%
+ }%
+ {\relax}%
+ }%
+
+\NewDocumentCommand{\階差数列}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{i}}%
+ {数列${a_{n}}$の階差数列を${b_{n}}$とすると,$2\leqq n$のとき,$a_{n}=a_{1}+\displaystyle\sum_{k=1}^{n-1}b_{k}$}{\relax}%
+ \ifthenelse{\equal{#1}{一般項}\AND\equal{#2}{b}}%
+ {%
+ 数列${a_{n}}$の階差数列を${b_{n}}$とすると,$2\leqq n$のとき,%
+ \[a_{n}=a_{1}+\displaystyle\sum_{k=1}^{n-1}b_{k}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\漸化式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{等差型}\AND\equal{#2}{i}}%
+ {$a_{n+1}=a_{n}+d$のとき,$a_{n}=a_{1}+\Ttyuukakko{n-1}d$}{\relax}%
+ \ifthenelse{\equal{#1}{等差型}\AND\equal{#2}{b}}%
+ {%
+ $a_{n+1}=a_{n}+d$のとき,%
+ \[a_{n}=a_{1}+\Ttyuukakko{n-1}d\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{等比型}\AND\equal{#2}{i}}%
+ {$a_{n+1}=ra_{n}$のとき,$a_{n}=a_{1}r^{n-1}$}{\relax}%
+ \ifthenelse{\equal{#1}{等比型}\AND\equal{#2}{b}}%
+ {%
+ $a_{n+1}=ra_{n}$のとき,%
+ \[a_{n}=a_{1}r^{n-1}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{階差型}\AND\equal{#2}{i}}%
+ {$a_{n+1}-a_{n}=f\Ttyuukakko{n}$のとき,$a_{1}+\displaystyle \sum_{k=1}^{n-1}f\Ttyuukakko{k}$ただし,$2\leqq n$}{\relax}%
+ \ifthenelse{\equal{#1}{階差型}\AND\equal{#2}{b}}%
+ {%
+ $a_{n+1}-a_{n}=f\Ttyuukakko{n}$のとき,%
+ \[a_{1}+\displaystyle \sum_{k=1}^{n-1}f\Ttyuukakko{k}\text{\ (ただし,$2\leqq n$)}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{特性方程式}\AND\equal{#2}{i}}%
+ {$a_{n+1}=pa_{n}+q \Ttyuukakko{p\neq0\数式カンマスペース q\neq0}$のとき,$a_{n+1}-c=p\Ttyuukakko{a_{n}-c}$と変形して等差型に(ただし,$c=pc+q$を満たす)。}{\relax}%
+ \ifthenelse{\equal{#1}{特性方程式}\AND\equal{#2}{b}}%
+ {%
+ $a_{n+1}=pa_{n}+q \Ttyuukakko{p\neq0\数式カンマスペース q\neq0}$のとき,%
+ \[a_{n+1}-c=p\Ttyuukakko{a_{n}-c}\]%
+ と変形して等差型に(ただし,$c=pc+q$を満たす)。%
+ }%
+ {\relax}%
+ }%
+
+
+\newcommand{\数学的帰納法}{自然数$n$に関する命題$P$が全ての自然数$n$について成立することを証明するには,$n=1$のときに$P$が成立することと,$n=k$のときに$P$が成立するという仮定のもと,$n=k+1$が成立することを証明する。}%
+
+
+%%%%%%%%%%%%%%%%%%%%ここから数\UTF{2162}%%%%%%%%%%%%%%%%%%%%
+\NewDocumentCommand{\共役複素数}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$\alpha=a+bi$のとき,共役な複素数$\overline{\alpha}$は$a-bi$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ $\alpha=a+bi$のとき,共役な複素数$\overline{\alpha}$は%
+ \[a-bi\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {$z$が実数かつ,$\overline{z}=z$ならば,$z$が実数。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {$z$が実数かつ,$\overline{z}=z$ならば,$z$が実数。}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$z$が純虚数ならば,$\overline{z}=-z\数式カンマスペース z\neq0$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ $z$が純虚数ならば,%
+ \[\overline{z}=-z\数式カンマスペース z\neq0\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {$\overline{z}=-z\数式カンマスペース z\neq0$ならば,$z$が純虚数。 }{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ \[\overline{z}=-z\数式カンマスペース z\neq0\]%
+ ならば,$z$が純虚数。 %
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{i}}%
+ {$\overline{\alpha+\beta}=\overline{\alpha}+\overline{\beta}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{b}}%
+ {\[\overline{\alpha+\beta}=\overline{\alpha}+\overline{\beta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{i}}%
+ {$\overline{\alpha-\beta}=\overline{\alpha}-\overline{\beta}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質E}\AND\equal{#2}{b}}%
+ {\[\overline{\alpha-\beta}=\overline{\alpha}-\overline{\beta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質F}\AND\equal{#2}{i}}%
+ {$\overline{\alpha\beta}=\overline{\alpha}\overline{\beta}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質F}\AND\equal{#2}{b}}%
+ {\[\overline{\alpha\beta}=\overline{\alpha}\overline{\beta}\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質G}\AND\equal{#2}{i}}%
+ {$\overline{\Ttyuukakko{\bunsuu{\alpha}{\beta}}}=\bunsuu{\overline{\alpha}}{\overline{\beta}}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質G}\AND\equal{#2}{b}}%
+ {\[\overline{\Ttyuukakko{\bunsuu{\alpha}{\beta}}}=\bunsuu{\overline{\alpha}}{\overline{\beta}}\]}{\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ $\alpha=a+bi\数式カンマスペース\beta=c+di$\quad($a\数式カンマスペース b c\数式カンマスペース d$は実数かつ$a\neq0\数式カンマスペース c\neq0$)として,%
+ \begin{align*}%
+ \overline{\alpha+\beta}&=\overline{\Ttyuukakko{a+c}+\Ttyuukakko{b+d}i}&\\%
+ &=\Ttyuukakko{a+c}-\Ttyuukakko{b+d}i&\\%
+ &=\Ttyuukakko{a-ci}+\Ttyuukakko{b-di}&\\%
+ &=\overline{\alpha}+\overline{\beta}%
+ \end{align*}%
+ \begin{align*}%
+ \overline{\alpha\beta}&=\overline{\Ttyuukakko{a+bi}\Ttyuukakko{c+di}}&\\%
+ &=\overline{\Ttyuukakko{ac-bd}+\Ttyuukakko{ad+bc}i}&\\
+ &=\Ttyuukakko{ac-bd}-\Ttyuukakko{ad+bc}i&\\%
+ &=\Ttyuukakko{a-bi}\Ttyuukakko{c-di}&\\%
+ &=\overline{\alpha}\overline{\beta}%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\複素数の絶対値}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {複素数$z=a+bi$に対して,$\Tzettaiti{z}=\Tzettaiti{a+bi}=\sqrt{a^2+b^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 複素数$z=a+bi$に対して,%
+ \[\Tzettaiti{z}=\Tzettaiti{a+bi}=\sqrt{a^2+b^2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {$\Tzettaiti{z}=\Tzettaiti{\overline{z}}=\Tzettaiti{-z}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {\[\Tzettaiti{z}=\Tzettaiti{\overline{z}}=\Tzettaiti{-z}\]}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$z\overline{z}=\Tzettaiti{z^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {\[z\overline{z}=\Tzettaiti{z^2}\]}{\relax}%
+ }%
+
+
+\NewDocumentCommand{\極形式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {複素数$\alpha=a+bi$について,$\alpha=r\Ttyuukakko{\cos\theta+i\sin\theta}\text{\ (ただし$z>0$)}$また,$r=\Tzettaiti{\alpha}=\sqrt{a^2+b^2}\数式カンマスペース\cos\theta=\bunsuu{a}{r}\数式カンマスペース\sin\theta=\bunsuu{b}{r}$を極形式という。}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 複素数$\alpha=a+bi$について,%
+ \[\alpha=r\Ttyuukakko{\cos\theta+i\sin\theta}\text{\ (ただし$z>0$)}\]%
+ また,$r=\Tzettaiti{\alpha}=\sqrt{a^2+b^2}\数式カンマスペース\cos\theta=\bunsuu{a}{r}\数式カンマスペース\sin\theta=\bunsuu{b}{r}$を極形式という。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,\par%
+ $\alpha\beta=r_{1}r_{2}\Tdaikakko{\cos\Ttyuukakko{\theta_{1}+\theta_{2}}+i\sin\Ttyuukakko{\theta_{1}+\theta_{2}}}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,%
+ \[\alpha\beta=r_{1}r_{2}\Tdaikakko{\cos\Ttyuukakko{\theta_{1}+\theta_{2}}+i\sin\Ttyuukakko{\theta_{1}+\theta_{2}}}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,\par%
+ $\bunsuu{\alpha}{\beta}=\bunsuu{r_{1}}{r_{2}}\Tdaikakko{\cos\Ttyuukakko{\theta_{1}+\theta_{2}}+i\sin\Ttyuukakko{\theta_{1}+\theta_{2}}}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,%
+ \[\bunsuu{\alpha}{\beta}=\bunsuu{r_{1}}{r_{2}}\Tdaikakko{\cos\Ttyuukakko{\theta_{1}+\theta_{2}}+i\sin\Ttyuukakko{\theta_{1}+\theta_{2}}}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\偏角}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {%
+ 複素数$\alpha=a+bi$について,$\alpha=r\Ttyuukakko{\cos\theta+i\sin\theta}$\par
+ ただし$z>0$のとき$\theta$を偏角といい,$\mathrm{aug}\alpha$で表す。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 複素数$\alpha=a+bi$について,%
+ \[\alpha=r\Ttyuukakko{\cos\theta+i\sin\theta}\]%
+ ただし$z>0$のとき$\theta$を偏角といい,%
+ \[\mathrm{aug}\alpha\]%
+ で表す。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,$\theta_{1}=\mathrm{arg}\alpha$また,$\mathrm{arg}\alpha=\theta_{1}+2n\pi$ ($n$は整数)}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,%
+ \[\theta_{1}=\theta_{1}+2n\pi=\mathrm{arg}\alpha\]%
+ ($n$は整数)%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,$\mathrm{arg}z_{1}z_{2}=\mathrm{arg}z_{1}+\mathrm{arg}z_{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,%
+ \[\mathrm{arg}z_{1}z_{2}=\mathrm{arg}z_{1}+\mathrm{arg}z_{2}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {$\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,$\mathrm{arg}\bunsuu{z_{1}}{z_{2}}=\mathrm{arg}z_{1}-\mathrm{arg}z_{2}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ $\alpha\数式カンマスペース\beta\数式カンマスペース\gamma$を複素数とする。$\alpha=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\beta=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}$のとき,%
+ \[\mathrm{arg}\bunsuu{z_{1}}{z_{2}}=\mathrm{arg}z_{1}-\mathrm{arg}z_{2}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\ドモアブルの定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$n$が整数のとき,$\Ttyuukakko{\cos\theta+i\sin\theta}^{n}=\cos n\theta+i\sin n\theta$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ $n$が整数のとき,%
+ \[\Ttyuukakko{\cos\theta+i\sin\theta}^{n}=\cos n\theta+i\sin n\theta\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{証明}}%
+ {%
+ \証明開始%
+ 複素数%
+ \[\alpha_{1}=r_{1}\Ttyuukakko{\cos\theta_{1}+i\sin\theta_{1}}\数式カンマスペース\alpha_{2}=r_{2}\Ttyuukakko{\cos\theta_{2}+i\sin\theta_{2}}\ldots\alpha_{n}=r_{n}\Ttyuukakko{\cos\theta_{n}+i\sin\theta_{n}}\]
+ に対して,$\alpha_{1}\alpha_{2}\cdots\alpha_{n}$を考えると,三角関数の積和の公式から%
+ \[\alpha_{1}\alpha_{2}\cdots\alpha_{n}=r_{1}r_{2}\cdots r_{n}\Tdaikakko{\cos\Ttyuukakko{\theta_{1}+\theta_{2}+\cdots+\theta_{n}}+i\sin\Ttyuukakko{\theta_{1}+\theta_{2}+\cdots+\theta_{n}}}\]%
+ となる。ここで,$\alpha_{1}=\alpha_{2}=\cdots=\alpha_{n}$のとき,%
+ \[\alpha^{n}=r^{n}\Ttyuukakko{\cos\theta+i\sin\theta}^{n}=r^{n}\Ttyuukakko{\cos n\theta+i\sin n\theta}\]%
+ \[\Leftrightarrow\Ttyuukakko{\cos\theta+i\sin\theta}^{n}=\cos n\theta+i\sin n\theta\]%
+ を得る。%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\放物線}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {定点$F$ (焦点)と$F$を通らない直線$l$ (準線)があるとき,焦点と準線からの距離の和が一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {定点$F$ (焦点)と$F$を通らない直線$l$ (準線)があるとき,焦点と準線からの距離の和が一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {放物線は$y^2=4px$と表せられる。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ 放物線は%
+ \[y^2=4px\]%
+ と表せられる。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {放物線の焦点は$F\Ttyuukakko{p\数式カンマスペース 0}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ 放物線の焦点は%
+ \[F\Ttyuukakko{p\数式カンマスペース 0}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {放物線の準線は$x=-p$}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ 放物線の準線は%
+ \[x=-p\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\楕円}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {二つの焦点$F$と$F'$からの距離の和が一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {二つの焦点$F$と$F'$からの距離の和が一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {楕円は$\bunsuu{x^2}{a^2}+\bunsuu{y^2}{b^2}=1$と表せられる。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ 楕円は%
+ \[\bunsuu{x^2}{a^2}+\bunsuu{y^2}{b^2}=1\]%
+ と表せられる。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {楕円の焦点は$F\Ttyuukakko{\sqrt{a^2-b^2}\数式カンマスペース 0}$と,$F'\Ttyuukakko{\sqrt{a^2-b^2}\数式カンマスペース 0}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ 楕円の焦点は%
+ \[F\Ttyuukakko{\sqrt{a^2-b^2}\数式カンマスペース 0} F'\Ttyuukakko{\sqrt{a^2-b^2}\数式カンマスペース 0}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {楕円の二つの焦点からの距離の和は$2a$である。}{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ 楕円の二つの焦点からの距離の和は%
+ \[2a\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\双曲線}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {二つの焦点$F$と$F'$からの距離の差が$0$でなく一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {二つの焦点$F$と$F'$からの距離の差が$0$でなく一定な点の軌跡。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{i}}%
+ {双曲線は$\bunsuu{x^2}{a^2}-\bunsuu{y^2}{b^2}=1$と表せられる。}{\relax}%
+ \ifthenelse{\equal{#1}{性質A}\AND\equal{#2}{b}}%
+ {%
+ 双曲線は%
+ \[\bunsuu{x^2}{a^2}-\bunsuu{y^2}{b^2}=1\]%
+ と表せられる。%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{i}}%
+ {双曲線の焦点は$F\Ttyuukakko{\sqrt{a^2+b^2}\数式カンマスペース 0}$と,$F'\Ttyuukakko{\sqrt{a^2+b^2}\数式カンマスペース 0}$}{\relax}%
+ \ifthenelse{\equal{#1}{性質B}\AND\equal{#2}{b}}%
+ {%
+ 双曲線の焦点は%
+ \[F\Ttyuukakko{\sqrt{a^2+b^2}\数式カンマスペース 0} F'\Ttyuukakko{\sqrt{a^2+b^2}\数式カンマスペース 0}\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{i}}%
+ {双曲線の二つの焦点からの距離の差は$2a$ }{\relax}%
+ \ifthenelse{\equal{#1}{性質C}\AND\equal{#2}{b}}%
+ {%
+ 双曲線の二つの焦点からの距離の差は%
+ \[2a\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{i}}%
+ {双曲線の漸近線は$\bunsuu{x}{a}-\bunsuu{y}{b}=0\数式カンマスペース\bunsuu{x}{a}+\bunsuu{y}{b}=0$}{\relax}%
+ \ifthenelse{\equal{#1}{性質D}\AND\equal{#2}{b}}%
+ {%
+ 双曲線の漸近線は%
+ \[\bunsuu{x}{a}-\bunsuu{y}{b}=0\数式カンマスペース\bunsuu{x}{a}+\bunsuu{y}{b}=0\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\連続な関数}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {定義域の$x$の値$a$に関して,$\displaystyle \lim_{x \to a}f\Ttyuukakko{x}=f\Ttyuukakko{a}$のとき,$f\Ttyuukakko{x}$は$x=a$で連続。}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 定義域の$x$の値$a$に関して,%
+ \[\displaystyle \lim_{x \to a}f\Ttyuukakko{x}=f\Ttyuukakko{a}\]%
+ のとき,$f\Ttyuukakko{x}$は$x=a$で連続。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\中間値の定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {閉区間$[a\数式カンマスペース b]$で連続な関数$f\Ttyuukakko{x}$について,$f\Ttyuukakko{a}\neq f\Ttyuukakko{b}$のとき,$f\Ttyuukakko{a}$と$f\Ttyuukakko{b}$の間の任意の実数$k$について,$f\Ttyuukakko{c}=k$となる$c$が少なからず一つ存在する。}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 閉区間$[a\数式カンマスペース b]$で連続な関数$f\Ttyuukakko{x}$について,$f\Ttyuukakko{a}\neq f\Ttyuukakko{b}$のとき,$f\Ttyuukakko{a}$と$f\Ttyuukakko{b}$の間の任意の実数$k$について,%
+ \[f\Ttyuukakko{c}=k\]%
+ となる$c$が少なからず一つ存在する。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\平均値の定理}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {関数$f\Ttyuukakko{x}$が閉区間$[a\数式カンマスペース b]$で連続,開区間$\Ttyuukakko{a\数式カンマスペース b}$で微分可能ならば,$\bunsuu{f\Ttyuukakko{b}-f\Ttyuukakko{a}}{b-a}=f'\Ttyuukakko{c} \Ttyuukakko{a<c<b}$を満たす$c$が存在する。}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 関数$f\Ttyuukakko{x}$が閉区間$[a\数式カンマスペース b]$で連続,開区間$\Ttyuukakko{a\数式カンマスペース b}$で微分可能ならば,%
+ \[\bunsuu{f\Ttyuukakko{b}-f\Ttyuukakko{a}}{b-a}=f'\Ttyuukakko{c} \Ttyuukakko{a<c<b}\]%
+ を満たす$c$が存在する。%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\微分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$f'\Ttyuukakko{x}=\displaystyle\lim_{h \to 0}\bunsuu{f\Ttyuukakko{x+h}-f\Ttyuukakko{x}}{h}$}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {\[f'\Ttyuukakko{x}=\displaystyle\lim_{h \to 0}\bunsuu{f\Ttyuukakko{x+h}-f\Ttyuukakko{x}}{h}\]}{\relax}%
+ \ifthenelse{\equal{#1}{積の微分公式}\AND\equal{#2}{i}}%
+ {$\Tdaikakko{f\Ttyuukakko{x}g\Ttyuukakko{x}}'=f'\Ttyuukakko{x}g\Ttyuukakko{x}+f\Ttyuukakko{x}g'\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{積の微分公式}\AND\equal{#2}{b}}%
+ {\[\Tdaikakko{f\Ttyuukakko{x}g\Ttyuukakko{x}}'=f'\Ttyuukakko{x}g\Ttyuukakko{x}+f\Ttyuukakko{x}g'\Ttyuukakko{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{商の微分公式}\AND\equal{#2}{i}}%
+ {$\Tdaikakko{\bunsuu{f\Ttyuukakko{x}}{g\Ttyuukakko{x}}}'=\bunsuu{f'\Ttyuukakko{x}g\Ttyuukakko{x}-f\Ttyuukakko{x}g'\Ttyuukakko{x}}{\Tdaikakko{g\Ttyuukakko{x}}^2}$}{\relax}%
+ \ifthenelse{\equal{#1}{商の微分公式}\AND\equal{#2}{b}}%
+ {\[\Tdaikakko{\bunsuu{f\Ttyuukakko{x}}{g\Ttyuukakko{x}}}'=\bunsuu{f'\Ttyuukakko{x}g\Ttyuukakko{x}-f\Ttyuukakko{x}g'\Ttyuukakko{x}}{\Tdaikakko{g\Ttyuukakko{x}}^2}\]}{\relax}%
+ \ifthenelse{\equal{#1}{合成関数の微分}\AND\equal{#2}{i}}%
+ {$\Tdaikakko{f\Ttyuukakko{g\Ttyuukakko{x}}}'=f'\Ttyuukakko{g\Ttyuukakko{x}}g'\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{合成関数の微分}\AND\equal{#2}{b}}%
+ {\[\Tdaikakko{f\Ttyuukakko{g\Ttyuukakko{x}}}'=f'\Ttyuukakko{g\Ttyuukakko{x}}g'\Ttyuukakko{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式A}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{c}'=0$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式A}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{c}'=0\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式B}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{x^{\alpha}}'=\alpha x^{\alpha-1}$ ($\alpha$は実数)}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式B}\AND\equal{#2}{b}}%
+ {%
+ \[\Ttyuukakko{x^{\alpha}}'=\alpha x^{\alpha-1}\]%
+ $\alpha$は実数%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式C}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\sin x}'=\cos x$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式C}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\sin x}'=\cos x\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式D}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\cos x}'=-\sin x$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式D}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\cos x}'=-\sin x\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式E}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\tan x}'=\bunsuu{1}{\cos^2x}$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式E}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\tan x}'=\bunsuu{1}{\cos^2x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式F}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\log\Tzettaiti{x}}'=\bunsuu{1}{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式F}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\log\Tzettaiti{x}}'=\bunsuu{1}{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式G}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{\log_{a}\Tzettaiti{x}}'=\bunsuu{1}{x\log a}$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式G}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{\log_{a}\Tzettaiti{x}}'=\bunsuu{1}{x\log a}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式H}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{e^{x}}'=e^{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式H}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{e^{x}}'=e^{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式I}\AND\equal{#2}{i}}%
+ {$\Ttyuukakko{a^{x}}'=a^{x}\log a$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の微分公式I}\AND\equal{#2}{b}}%
+ {\[\Ttyuukakko{a^{x}}'=a^{x}\log a\]}{\relax}%
+ \ifthenelse{\equal{#1}{三角関数の微分公式の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ \begin{align*}%
+ \Ttyuukakko{\sin x}'&=\displaystyle\lim_{h \to 0} \bunsuu{\sin\Ttyuukakko{x+h}-\sin x}{h}&\\%
+ &=\displaystyle\lim_{h \to 0} \bunsuu{\sin x\cos h+\cos x\sin x-\sin x}{h}&\\%
+ &=\displaystyle\lim_{h \to 0} \Ttyuukakko{\cos x\bunsuu{\sin h}{h}-\sin x\bunsuu{1-\cos x}{h}\bunsuu{1+\cos h}{1+\cos h}}&\\%
+ &=\displaystyle\lim_{h \to 0} \Ttyuukakko{\cos x\bunsuu{\sin h}{h}-\sin x\bunsuu{1}{1+\cos h}\bunsuu{\sin^2h}{h^2}h}&\\%
+ &=\cos x\cdot1-\sin x\cdot\bunsuu{1}{2}1^2\cdot0&\\%
+ &=\cos x&\\%
+ \Ttyuukakko{\cos x}'&=\Tdaikakko{\sin\Ttyuukakko{\bunsuu{\pi}{2}-x}}'&\\%
+ &=\cos\Ttyuukakko{\bunsuu{\pi}{2}-x}\cdot\Ttyuukakko{-1}&\\%
+ &=-\sin x%
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{対数関数の微分公式の証明}\AND\equal{#2}{i}}%
+ {%
+ \証明開始%
+ \begin{align*}%
+ \Ttyuukakko{\log x}'&=\displaystyle\lim_{h \to 0} \bunsuu{\log\Ttyuukakko{x+h}-\log x}{h}&\\%
+ &=\displaystyle\lim_{h \to 0} \bunsuu{\log\Ttyuukakko{1+\bunsuu{x}{h}}}{h}&\\%
+ \end{align*}%
+ ここで$\bunsuu{h}{x}=t$とおくと,$h=tx$となり$\displaystyle\lim_{h \to 0} t=0$なので,%
+ \begin{align*}%
+ \Ttyuukakko{\log x}'&=\displaystyle\lim_{h \to 0} \bunsuu{\log\Ttyuukakko{1+t}}{xt}&\\%
+ &=\displaystyle\lim_{h \to 0} \Tdaikakko{\bunsuu{\log\Ttyuukakko{1+t}}{t}\cdot\bunsuu{1}{x}}&\\%
+ &=\displaystyle\lim_{h \to 0} \log\Ttyuukakko{1+t}^{\bunsuu{1}{t}}\cdot\bunsuu{1}{x}&\\%
+ &=\log e\cdot\bunsuu{1}{x}&\\%
+ &=\bunsuu{1}{x}
+ \end{align*}%
+ $f\Ttyuukakko{x}=e^{x}$とおく。\par%
+ \begin{align*}%
+ \Ttyuukakko{e^{x}}'&=\displaystyle\lim_{h \to 0} \bunsuu{e^{x+h}-e^{x}}{h}&\\%
+ &=e^{x}\displaystyle\lim_{h \to 0} \bunsuu{e^{h}-1}{h}%
+ \end{align*}%
+ ここで$\Ttyuukakko{\log x}'=\bunsuu{1}{x}$より,$y=\log x$の$x=1$においての接線の傾きは$1$であり,$y=\log x$と$y=e^{x}$は$y=x$において対称であるので$y=e^{x}$の$x=0$においての接線の傾きも$1$なので,
+ \[f'\Ttyuukakko{0}\displaystyle\lim_{h \to 0} \bunsuu{e^{h}-1}{h}=1\]%
+ よって,%
+ \begin{align*}%
+ \Ttyuukakko{e^{x}}'&=e^{x}\displaystyle\lim_{h \to 0} \bunsuu{e^{h}-1}{h}&\\%
+ &=e^{x}\cdot1&\\%
+ &=e^{x}
+ \end{align*}%
+ \証明終了%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\法線の方程式}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {曲線$f\Ttyuukakko{x}$上の点$A\Ttyuukakko{a\数式カンマスペース f\Ttyuukakko{a}}$における法線の方程式は,$y-f\Ttyuukakko{a}=-\bunsuu{1}{f'\Ttyuukakko{a}}\Ttyuukakko{x-a}$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 曲線$f\Ttyuukakko{x}$上の点$A\Ttyuukakko{a\数式カンマスペース f\Ttyuukakko{a}}$における法線の方程式は,%
+ \[y-f\Ttyuukakko{a}=-\bunsuu{1}{f'\Ttyuukakko{a}}\Ttyuukakko{x-a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\不定積分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$とすると,$\displaystyle \int_{}^{} f\Ttyuukakko{x}dx=F\Ttyuukakko{x}+C$ ($C$は積分定数)}{\relax}%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ $F'\Ttyuukakko{x}=f\Ttyuukakko{x}$とすると,%
+ \[\displaystyle \int_{}^{} f\Ttyuukakko{x}dx=F\Ttyuukakko{x}+C\]%
+ ($C$は積分定数)%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{置換積分}\AND\equal{#2}{i}}%
+ {$\displaystyle \int_{}^{} f\Ttyuukakko{x}dx=\displaystyle \int_{}^{}f\Ttyuukakko{g\Ttyuukakko{t}}g'\Ttyuukakko{t}dt$ ($x=g\Ttyuukakko{t}$に置換)}{\relax}%
+ \ifthenelse{\equal{#1}{置換積分}\AND\equal{#2}{b}}%
+ {%
+ \[\displaystyle \int_{}^{} f\Ttyuukakko{x}dx=\displaystyle \int_{}^{}f\Ttyuukakko{g\Ttyuukakko{t}}g'\Ttyuukakko{t}dt\]%
+ ($x=g\Ttyuukakko{t}$に置換)%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{部分積分}\AND\equal{#2}{i}}%
+ {$\displaystyle \int_{}^{} f\Ttyuukakko{x}g'\Ttyuukakko{x}dx=f\Ttyuukakko{x}g\Ttyuukakko{x}-\displaystyle \int_{}^{}f'\Ttyuukakko{x}g\Ttyuukakko{x}$}{\relax}%
+ \ifthenelse{\equal{#1}{部分積分}\AND\equal{#2}{b}}%
+ {\[\displaystyle \int_{}^{} f\Ttyuukakko{x}g'\Ttyuukakko{x}dx=f\Ttyuukakko{x}g\Ttyuukakko{x}-\displaystyle \int_{}^{}f'\Ttyuukakko{x}g\Ttyuukakko{x}\]}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式A}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} x^{\alpha}dx=\bunsuu{1}{\alpha+1}x^{\alpha+1}+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式A}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} x^{\alpha}dx=\bunsuu{1}{\alpha+1}x^{\alpha+1}+C\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式B}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} \bunsuu{1}{x}dx=\log\Tzettaiti{x}+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式B}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} \bunsuu{1}{x}dx=\log\Tzettaiti{x}+C\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式C}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} \sin xdx=-\cos x+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式C}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} \sin xdx=-\cos x+C\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式D}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} \cos xdx=\sin x+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式D}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} \cos xdx=\sin x+C\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式E}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} e^{x}dx=e^{x}+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式E}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} e^{x}dx=e^{x}+C\]%
+ }%
+ {\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式F}\AND\equal{#2}{i}}%
+ {$C$は積分定数とする。$\displaystyle \int_{}^{} a^{x}dx=\bunsuu{a^{x}}{\log a}+C$}{\relax}%
+ \ifthenelse{\equal{#1}{初等関数の積分公式F}\AND\equal{#2}{b}}%
+ {%
+ $C$は積分定数とする。%
+ \[\displaystyle \int_{}^{} a^{x}dx=\bunsuu{a^{x}}{\log a}+C\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\定積分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{i}}%
+ {曲線$y=f\Ttyuukakko{x}$と$x$軸(間は$a$から$b$)に囲まれた部分の面積$S$について,$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,$S=\displaystyle \int_{b}^{a} f\Ttyuukakko{x}dx=[F\Ttyuukakko{x}]^{b}_{a}=F\Ttyuukakko{b}-F\Ttyuukakko{a}$}{\relax}%
+
+ \ifthenelse{\equal{#1}{定義}\AND\equal{#2}{b}}%
+ {%
+ 曲線$y=f\Ttyuukakko{x}$と$x$軸(間は$a$から$b$)に囲まれた部分の面積$S$について,$F'\Ttyuukakko{x}=f\Ttyuukakko{x}$のとき,%
+ \[S=\displaystyle \int_{b}^{a} f\Ttyuukakko{x}dx=[F\Ttyuukakko{x}]^{b}_{a}=F\Ttyuukakko{b}-F\Ttyuukakko{a}\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\区分求積法}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {$\displaystyle \lim_{n \to \infty} \sum_{k=0}^{n-1}f\Ttyuukakko{x_{k}}\mathit{\Delta}x=\displaystyle \lim_{n \to \infty} \sum_{k=1}^{n}f\Ttyuukakko{x_{k}}\mathit{\Delta}x$ここで,$\mathit{\Delta}x=\bunsuu{b-a}{n}\数式カンマスペース x_{k}=a+k\mathit{\Delta}x$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ \[\displaystyle \lim_{n \to \infty} \sum_{k=0}^{n-1}f\Ttyuukakko{x_{k}}\mathit{\Delta}x=\displaystyle \lim_{n \to \infty} \sum_{k=1}^{n}f\Ttyuukakko{x_{k}}\mathit{\Delta}x\]%
+ ここで,%
+ \[\mathit{\Delta}x=\bunsuu{b-a}{n}\数式カンマスペース x_{k}=a+k\mathit{\Delta}x\]%
+ }%
+ {\relax}%
+ }%
+
+
+\NewDocumentCommand{\体積の積分}{ m O{i} }%
+ {%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{i}}%
+ {曲線$y=f\Ttyuukakko{x}$と$x$軸の間の部分($a\leqq x\leqq b$)を$x$軸の周りに一回転させてできる回転体の体積は,$V=\pi\displaystyle \int_{a}^{b} \Tdaikakko{f\Ttyuukakko{x}}^2dx$}{\relax}%
+ \ifthenelse{\equal{#1}{公式}\AND\equal{#2}{b}}%
+ {%
+ 曲線$y=f\Ttyuukakko{x}$と$x$軸の間の部分($a\leqq x\leqq b$)を$x$軸の周りに一回転させてできる回転体の体積は,%
+ \[V=\pi\displaystyle \int_{a}^{b} \Tdaikakko{f\Ttyuukakko{x}}^2dx\]%
+ }%
+ {\relax}%
+ }% \ No newline at end of file
diff --git a/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.tex b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.tex
new file mode 100644
index 0000000000..f63a375bb5
--- /dev/null
+++ b/macros/luatex/latex/japanese-mathformulas/japanese-mathformulas.tex
@@ -0,0 +1,1867 @@
+\documentclass[fleqn]{ltjsarticle}% !lualatex
+
+\usepackage[hiragino-pron,deluxe,expert,bold]{luatexja-preset}%
+\usepackage{mathformula,framed,comment}%
+\usepackage[usetype1]{uline--}
+\title{\LARGE\uline{japanese-mathformulas.sty}\Large\\manual pdf\\(mainly for Japanese, lulatex)}%
+\author{\Large Hugh / Ponkichi}%
+\date{\today}
+\def\texttt#1{{\gtfamily #1}}
+%\def\auto#1#2{\ascboxB{#2}}
+%\def\auto#1#2{\bf{\u{● #2}}}
+\def\auto#1#2{\noindent\leftline{\uline{\textgt{#2}}}}
+
+\makeatletter
+\newlength{\@tempdimi}
+\let\@@vspace@@\vspace
+\def\vspace{\@ifstar{\@@vspace@}{\@vspace@}}
+\def\@vspace@#1{\par\setlength{\@tempdimi}{#1}\@@vspace@@{\@tempdimi}}
+\def\@@vspace@#1{\par\setlength{\@tempdimi}{#1}\@@vspace@@*{\@tempdimi}}
+
+\newlength{\pseprule} % 段仕切り線の太さ
+\setlength{\pseprule}{.5truept}
+\newlength{\psep} % 段の間隔
+\setlength{\psep}{30pt}
+\newenvironment{multicolparx}[1]{%
+ \begin{trivlist}\item[]\hspace{\parindent}%
+ \multicolumnparallelparagraphs{#1}{\psep}%
+}{%
+ \endmulticolumnparallelparagraphs
+ \end{trivlist}%
+}
+\newcount\columnsleft \newcount\totalcolumns \newdimen\separation
+\def\multicolumnparallelparagraphs#1#2{%
+ \hbadness5000 \vbadness9999 \tolerance9999
+ \totalcolumns=#1 \let\xpar=\par \separation=#2
+ \vskip\parskip
+ \columnsleft=#1\relax
+ \hbox to\hsize\bgroup
+ \let\par\nextmulticolumnparallelparagraph
+ \dimen0=#2 \advance\hsize-\columnsleft\dimen0 \advance\hsize\dimen0
+ \divide\hsize\columnsleft\relax
+ \vtop\bgroup
+}
+\def\nextmulticolumnparallelparagraph{%
+ \@@vspace@@{\baselineskip}\egroup
+ \advance\columnsleft-1
+ \ifnum\columnsleft>0\relax
+ \hfil\vrule\@width\the\pseprule\hspace{.45\separation}\vtop\bgroup
+ \else
+ \egroup
+ \xpar\vskip-2pt\xpar
+ \multicolumnparallelparagraphs\totalcolumns\separation
+ \fi
+}
+\def\endmulticolumnparallelparagraphs{%
+ \egroup
+ \advance\columnsleft-1
+ \ifnum\columnsleft>0\relax
+ \hfil\vtop\bgroup\hbox to \hsize{}
+ \endmulticolumnparallelparagraphs
+ \else
+ \egroup
+ \xpar
+ \fi
+}
+\makeatother
+
+\begin{document}
+
+\maketitle
+
+\begin{multicolparx}{2}
+\parbox[t]{\hsize}{\begin{center}%
+-機能紹介と注記-
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+- Function Introduction and Notes -
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+中学高校で習う数学の定理や公式を出力するためのstyファイル。\\
+\detokenize{\NewDocumentCommand}によって,インデント数式か別行立て数式かを指定できる。
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+This is a style file for compiling basic math formulas.\\
+\detokenize{\NewDocumentCommand} allows you to specify whether the formula should be used within a sentence or on a new line.
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+後の例では記述がないが,$\Ttyuubracket{\mathrm{i}}$か$\Ttyuubracket{\mathrm{b}}$かの指定をしない場合は自動的に$\Ttyuubracket{\mathrm{i}}$とみなされる。
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+Although not shown in the examples below, if $\Ttyuubracket{\mathrm{i}}$ or $\Ttyuubracket{\mathrm{b}}$ is not specified, it is automatically assumed to be $\Ttyuubracket{\mathrm{i}}$.
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+二段組の文書を作成するときは,数式の上下間スペースを減らすために,以下をpreambleに記述するとよい。
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+When making two-column document, you are recommended to put these lines at preamble.\par
+These reduce the space above and below math expressions.
+\end{center}}%
+\end{multicolparx}
+
+\begin{framed}
+\begin{verbatim}
+\AtBeginDocument{
+ \abovedisplayskip =0\abovedisplayskip
+ \abovedisplayshortskip=0\abovedisplayshortskip
+ \belowdisplayskip =0\belowdisplayskip
+ \belowdisplayshortskip=0\belowdisplayshortskip}
+\end{verbatim}
+\end{framed}
+
+\begin{multicolparx}{2}
+\parbox[t]{\hsize}{\begin{center}%
+以下が実例。
+\end{center}}%
+
+\parbox[t]{\hsize}{\begin{center}%
+Now, here are the actual examples!
+\end{center}}%
+\end{multicolparx}
+
+\auto{1}{\detokenize{\二次式展開{公式A}[i]}}\par
+\二次式展開{公式A}[i]\par
+\auto{2}{\detokenize{\二次式展開{公式A}[b]}}
+\二次式展開{公式A}[b]
+
+\auto{33}{\detokenize{\二次式因数分解{公式A}[i]}}\par
+\二次式因数分解{公式A}[i]\par
+\auto{34}{\detokenize{\二次式因数分解{公式A}[b]}}
+\二次式因数分解{公式A}[b]
+%\begin{simplesquarebox}{二次式展開}
+%\begin{description}
+\auto{1}{\detokenize{\二次式展開{公式A}[i]}}\par
+\二次式展開{公式A}[i]\par
+\auto{2}{\detokenize{\二次式展開{公式A}[b]}}
+\二次式展開{公式A}[b]
+\auto{3}{\detokenize{\二次式展開{公式B}[i]}}\par
+\二次式展開{公式B}[i]\par
+\auto{4}{\detokenize{\二次式展開{公式B}[b]}}
+\二次式展開{公式B}[b]
+\auto{5}{\detokenize{\二次式展開{公式C}[i]}}\par
+\二次式展開{公式C}[i]\par
+\auto{6}{\detokenize{\二次式展開{公式C}[b]}}
+\二次式展開{公式C}[b]
+\auto{7}{\detokenize{\二次式展開{公式D}[i]}}\par
+\二次式展開{公式D}[i]\par
+\auto{8}{\detokenize{\二次式展開{公式D}[b]}}
+\二次式展開{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二次式因数分解}
+%\begin{description}
+\auto{9}{\detokenize{\二次式因数分解{公式A}[i]}}\par
+\二次式因数分解{公式A}[i]\par
+\auto{10}{\detokenize{\二次式因数分解{公式A}[b]}}
+\二次式因数分解{公式A}[b]
+\auto{11}{\detokenize{\二次式因数分解{公式B}[i]}}\par
+\二次式因数分解{公式B}[i]\par
+\auto{12}{\detokenize{\二次式因数分解{公式B}[b]}}
+\二次式因数分解{公式B}[b]
+\auto{13}{\detokenize{\二次式因数分解{公式C}[i]}}\par
+\二次式因数分解{公式C}[i]\par
+\auto{14}{\detokenize{\二次式因数分解{公式C}[b]}}
+\二次式因数分解{公式C}[b]
+\auto{15}{\detokenize{\二次式因数分解{公式D}[i]}}\par
+\二次式因数分解{公式D}[i]\par
+\auto{16}{\detokenize{\二次式因数分解{公式D}[b]}}
+\二次式因数分解{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平方根}
+%\begin{description}
+\auto{17}{\detokenize{\平方根{定義}[i]}}\par
+\平方根{定義}[i]\par
+\auto{18}{\detokenize{\平方根{定義}[b]}}\par
+\平方根{定義}[b]
+\auto{19}{\detokenize{\平方根{性質A}[i]}}\par
+\平方根{性質A}[i]\par
+\auto{20}{\detokenize{\平方根{性質A}[b]}}\par
+\平方根{性質A}[b]
+\auto{21}{\detokenize{\平方根{性質B}[i]}}\par
+\平方根{性質B}[i]\par
+\auto{22}{\detokenize{\平方根{性質B}[b]}}
+\平方根{性質B}[b]
+\auto{23}{\detokenize{\平方根{性質C}[i]}}\par
+\平方根{性質C}[i]\par
+\auto{24}{\detokenize{\平方根{性質C}[b]}}
+\平方根{性質C}[b]
+\auto{25}{\detokenize{\平方根{性質D}[i]}}\par
+\平方根{性質D}[i]\par
+\auto{26}{\detokenize{\平方根{性質D}[b]}}
+\平方根{性質D}[b]
+\auto{27}{\detokenize{\平方根{性質E}[i]}}\par
+\平方根{性質E}[i]\par
+\auto{28}{\detokenize{\平方根{性質E}[b]}}
+\平方根{性質E}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{一次不等式}
+%\begin{description}
+\auto{29}{\detokenize{\一次不等式{性質A}[i]}}\par
+\一次不等式{性質A}[i]\par
+\auto{30}{\detokenize{\一次不等式{性質A}[b]}}\par
+\一次不等式{性質A}[b]
+\auto{31}{\detokenize{\一次不等式{性質B}[i]}}\par
+\一次不等式{性質B}[i]\par
+\auto{32}{\detokenize{\一次不等式{性質B}[b]}}\par
+\一次不等式{性質B}[b]
+\auto{33}{\detokenize{\一次不等式{性質C}[i]}}\par
+\一次不等式{性質C}[i]\par
+\auto{34}{\detokenize{\一次不等式{性質C}[b]}}\par
+\一次不等式{性質C}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{集合}
+%\begin{description}
+\auto{35}{\detokenize{\集合{積集合}[i]}}\par
+\集合{積集合}[i]\par
+\auto{36}{\detokenize{\集合{積集合}[b]}}
+\集合{積集合}[b]
+\auto{37}{\detokenize{\集合{和集合}[i]}}\par
+\集合{和集合}[i]\par
+\auto{38}{\detokenize{\集合{和集合}[b]}}
+\集合{和集合}[b]
+\auto{39}{\detokenize{\集合{補集合}[i]}}\par
+\集合{補集合}[i]\par
+\auto{40}{\detokenize{\集合{補集合}[b]}}
+\集合{補集合}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{対偶}
+%\begin{description}
+\auto{41}{\detokenize{\対偶{定理}[i]}}\par
+\対偶{定理}[i]\par
+\auto{41}{\detokenize{\対偶{定理}[b]}}\par
+\対偶{定理}[b]\par
+\auto{41}{\detokenize{\対偶{証明}}}\par
+\対偶{証明}\par
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{背理法}
+%\begin{description}
+\auto{42}{\detokenize{\背理法}}\par
+\背理法
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二次関数}
+%\begin{description}
+\auto{43}{\detokenize{\二次関数{標準形}[i]}}\par
+\二次関数{標準形}[i]\par
+\auto{44}{\detokenize{\二次関数{標準形}[b]}}
+\二次関数{標準形}[b]
+\auto{45}{\detokenize{\二次関数{一般形}[i]}}\par
+\二次関数{一般形}[i]\par
+\auto{46}{\detokenize{\二次関数{一般形}[b]}}
+\二次関数{一般形}[b]
+\auto{47}{\detokenize{\二次関数{切片形}[i]}}\par
+\二次関数{切片形}[i]\par
+\auto{48}{\detokenize{\二次関数{切片形}[b]}}
+\二次関数{切片形}[b]
+\auto{49}{\detokenize{\二次関数{平方完成}[i]}}\par
+\二次関数{平方完成}[i]\par
+\auto{50}{\detokenize{\二次関数{平方完成}[b]}}\par
+\二次関数{平方完成}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二次方程式の解の公式}
+%\begin{description}
+\auto{51}{\detokenize{\二次方程式の解の公式{公式}[i]}}\par
+\二次方程式の解の公式{公式}[i]\par
+\auto{52}{\detokenize{\二次方程式の解の公式{公式}[b]}}\par
+\二次方程式の解の公式{公式}[b]
+\auto{52}{\detokenize{\二次方程式の解の公式{証明A}[i]}}\par
+\二次方程式の解の公式{証明A}[i]\par
+\auto{52}{\detokenize{\二次方程式の解の公式{証明B}[i]}}\par
+\二次方程式の解の公式{証明B}[i]\par
+%\end{description}
+%\end{simplesquarebox}
+
+\auto{52}{\detokenize{\三角比の定義{定義A}[i]}}\par
+\三角比の定義{定義A}[i]\par
+\auto{52}{\detokenize{\三角比の定義{定義B}[i]}}\par
+\三角比の定義{定義B}[i]\par
+
+
+
+%\begin{simplesquarebox}{三角比の相互関係}
+%\begin{description}
+\auto{53}{\detokenize{\三角比の相互関係{公式A}[i]}}\par
+\三角比の相互関係{公式A}[i]\par
+\auto{54}{\detokenize{\三角比の相互関係{公式A}[b]}}
+\三角比の相互関係{公式A}[b]
+\auto{55}{\detokenize{\三角比の相互関係{公式B}[i]}}\par
+\三角比の相互関係{公式B}[i]\par
+\auto{56}{\detokenize{\三角比の相互関係{公式B}[b]}}
+\三角比の相互関係{公式B}[b]
+\auto{57}{\detokenize{\三角比の相互関係{公式C}[i]}}\par
+\三角比の相互関係{公式C}[i]\par
+\auto{58}{\detokenize{\三角比の相互関係{公式C}[b]}}
+\三角比の相互関係{公式C}[b]
+\auto{57}{\detokenize{\三角比の相互関係{証明}}}\par
+\三角比の相互関係{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{正弦定理}
+%\begin{description}
+\auto{59}{\detokenize{\正弦定理{公式}[i]}}\par
+\正弦定理{公式}[i]\par
+\auto{60}{\detokenize{\正弦定理{公式}[b]}}
+\正弦定理{公式}[b]\par
+\auto{59}{\detokenize{\正弦定理{証明}}}\par
+\正弦定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{余弦定理}
+%\begin{description}
+\auto{61}{\detokenize{\余弦定理{公式}[i]}}\par
+\余弦定理{公式}[i]\par
+\auto{62}{\detokenize{\余弦定理{公式}[b]}}
+\余弦定理{公式}[b]
+\auto{61}{\detokenize{\余弦定理{証明}}}\par
+\余弦定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{三角形の面積}
+%\begin{description}
+\auto{63}{\detokenize{\三角形の面積{公式}[i]}}\par
+\三角形の面積{公式}[i]\par
+\auto{64}{\detokenize{\三角形の面積{公式}[b]}}
+\三角形の面積{公式}[b]
+\auto{63}{\detokenize{\三角形の面積{証明}}}\par
+\三角形の面積{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{場合の数と確率}
+%\begin{description}
+\auto{65}{\detokenize{\場合の数と確率{和集合の要素の個数}[i]}}\par
+\場合の数と確率{和集合の要素の個数}[i]\par
+\auto{66}{\detokenize{\場合の数と確率{和集合の要素の個数}[b]}}
+\場合の数と確率{和集合の要素の個数}[b]
+%\auto{67}{\detokenize{\場合の数と確率{積集合の要素の個数}[i]}}\par
+%\場合の数と確率{積集合の要素の個数}[i]\par
+%\auto{68}{\detokenize{\場合の数と確率{積集合の要素の個数}[b]}}
+%\場合の数と確率{積集合の要素の個数}[b]
+\auto{69}{\detokenize{\場合の数と確率{補集合の要素の個数}[i]}}\par
+\場合の数と確率{補集合の要素の個数}[i]\par
+\auto{70}{\detokenize{\場合の数と確率{補集合の要素の個数}[b]}}
+\場合の数と確率{補集合の要素の個数}[b]
+\auto{71}{\detokenize{\場合の数と確率{和の法則}[i]}}\par
+\場合の数と確率{和の法則}[i]\par
+\auto{72}{\detokenize{\場合の数と確率{和の法則}[b]}}
+\場合の数と確率{和の法則}[b]
+\auto{73}{\detokenize{\場合の数と確率{積の法則}[i]}}\par
+\場合の数と確率{積の法則}[i]\par
+\auto{74}{\detokenize{\場合の数と確率{積の法則}[b]}}
+\場合の数と確率{積の法則}[b]
+\auto{75}{\detokenize{\場合の数と確率{順列}[i]}}\par
+\場合の数と確率{順列}[i]\par
+\auto{76}{\detokenize{\場合の数と確率{順列}[b]}}
+\場合の数と確率{順列}[b]
+\auto{75}{\detokenize{\場合の数と確率{順列の証明}[i]}}\par
+\場合の数と確率{順列の証明}[i]\par
+\auto{77}{\detokenize{\場合の数と確率{円順列}[i]}}\par
+\場合の数と確率{円順列}[i]\par
+\auto{78}{\detokenize{\場合の数と確率{円順列}[b]}}
+\場合の数と確率{円順列}[b]
+\auto{77}{\detokenize{\場合の数と確率{円順列の証明}[i]}}\par
+\場合の数と確率{円順列の証明}[i]\par
+\auto{79}{\detokenize{\場合の数と確率{重複順列}[i]}}\par
+\場合の数と確率{重複順列}[i]\par
+\auto{80}{\detokenize{\場合の数と確率{重複順列}[b]}}
+\場合の数と確率{重複順列}[b]
+\auto{81}{\detokenize{\場合の数と確率{組み合わせ}[i]}}\par
+\場合の数と確率{組み合わせ}[i]\par
+\auto{82}{\detokenize{\場合の数と確率{組み合わせ}[b]}}
+\場合の数と確率{組み合わせ}[b]
+\auto{81}{\detokenize{\場合の数と確率{組み合わせの証明}[i]}}\par
+\場合の数と確率{組み合わせの証明}[i]\par
+\auto{83}{\detokenize{\場合の数と確率{同じものを含む順列}[i]}}\par
+\場合の数と確率{同じものを含む順列}[i]\par
+\auto{84}{\detokenize{\場合の数と確率{同じものを含む順列}[b]}}
+\場合の数と確率{同じものを含む順列}[b]
+\auto{83}{\detokenize{\場合の数と確率{同じものを含む順列の証明}[i]}}\par
+\場合の数と確率{同じものを含む順列の証明}[i]\par
+\auto{85}{\detokenize{\場合の数と確率{確率の定義}[i]}}\par
+\場合の数と確率{確率の定義}[i]\par
+\auto{86}{\detokenize{\場合の数と確率{確率の定義}[b]}}
+\場合の数と確率{確率の定義}[b]
+\auto{87}{\detokenize{\場合の数と確率{排反の定義}[i]}}\par
+\場合の数と確率{排反の定義}[i]\par
+\auto{88}{\detokenize{\場合の数と確率{排反の定義}[b]}}
+\場合の数と確率{排反の定義}[b]\par
+\auto{89}{\detokenize{\場合の数と確率{確率の性質A}[i]}}\par
+\場合の数と確率{確率の性質A}[i]\par
+\auto{90}{\detokenize{\場合の数と確率{確率の性質A}[b]}}
+\場合の数と確率{確率の性質A}[b]
+\auto{91}{\detokenize{\場合の数と確率{確率の性質B}[i]}}\par
+\場合の数と確率{確率の性質B}[i]\par
+\auto{92}{\detokenize{\場合の数と確率{確率の性質B}[b]}}
+\場合の数と確率{確率の性質B}[b]
+\auto{93}{\detokenize{\場合の数と確率{和事象の確率}[i]}}\par
+\場合の数と確率{和事象の確率}[i]\par
+\auto{94}{\detokenize{\場合の数と確率{和事象の確率}[b]}}
+\場合の数と確率{和事象の確率}[b]
+\auto{95}{\detokenize{\場合の数と確率{積事象の確率}[i]}}\par
+%\場合の数と確率{積事象の確率}[i]\par
+%\auto{96}{\detokenize{\場合の数と確率{積事象の確率}[b]}}
+%\場合の数と確率{積事象の確率}[b]
+%\auto{97}{\detokenize{\場合の数と確率{余事象の確率}[i]}}\par
+\場合の数と確率{余事象の確率}[i]\par
+\auto{98}{\detokenize{\場合の数と確率{余事象の確率}[b]}}
+\場合の数と確率{余事象の確率}[b]
+\auto{99}{\detokenize{\場合の数と確率{独立な事象の確率}[i]}}\par
+\場合の数と確率{独立な事象の確率}[i]\par
+\auto{100}{\detokenize{\場合の数と確率{独立な事象の確率}[b]}}
+\場合の数と確率{独立な事象の確率}[b]
+\auto{101}{\detokenize{\場合の数と確率{反復試行の確率}[i]}}\par
+\場合の数と確率{反復試行の確率}[i]\par
+\auto{102}{\detokenize{\場合の数と確率{反復試行の確率}[b]}}
+\場合の数と確率{反復試行の確率}[b]
+\auto{101}{\detokenize{\場合の数と確率{反復試行の確率の証明}[i]}}\par
+\場合の数と確率{反復試行の確率の証明}[i]\par
+\auto{103}{\detokenize{\場合の数と確率{条件付き確率}[i]}}\par
+\場合の数と確率{条件付き確率}[i]\par
+\auto{104}{\detokenize{\場合の数と確率{条件付き確率}[b]}}
+\場合の数と確率{条件付き確率}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{図形の性質}
+%\begin{description}
+\auto{105}{\detokenize{\図形の性質{内心}}}\par
+\図形の性質{内心}\par
+\auto{106}{\detokenize{\図形の性質{外心}}}\par
+\図形の性質{外心}\par
+\auto{107}{\detokenize{\図形の性質{垂心}}}\par
+\図形の性質{垂心}\par
+\auto{108}{\detokenize{\図形の性質{重心}}}\par
+\図形の性質{重心}\par
+\auto{109}{\detokenize{\図形の性質{傍心}}}\par
+\図形の性質{傍心}\par
+\auto{110}{\detokenize{\図形の性質{チェバの定理}}}\par
+\図形の性質{チェバの定理}\par
+\auto{110}{\detokenize{\図形の性質{チェバの定理の証明}}}\par
+\図形の性質{チェバの定理の証明}\par
+\auto{111}{\detokenize{\図形の性質{メネラウスの定理}}}\par
+\図形の性質{メネラウスの定理}\par
+\auto{111}{\detokenize{\図形の性質{メネラウスの定理の証明}}}\par
+\図形の性質{メネラウスの定理の証明}
+\auto{112}{\detokenize{\図形の性質{円周角の定理}}}\par
+\図形の性質{円周角の定理}\par
+\auto{112}{\detokenize{\図形の性質{円周角の定理の証明}}}\par
+\図形の性質{円周角の定理の証明}\par
+\auto{113}{\detokenize{\図形の性質{内接四角形の定理}}}\par
+\図形の性質{内接四角形の定理}\par
+\auto{113}{\detokenize{\図形の性質{内接四角形の定理の証明}}}\par
+\図形の性質{内接四角形の定理の証明}\par
+\auto{114}{\detokenize{\図形の性質{接弦定理}}}\par
+\図形の性質{接弦定理}\par
+\auto{114}{\detokenize{\図形の性質{接弦定理の証明}}}\par
+\図形の性質{接弦定理の証明}\par
+\auto{115}{\detokenize{\図形の性質{内角と外角の二等分線}}}\par
+\図形の性質{内角と外角の二等分線}\par
+\auto{116}{\detokenize{\図形の性質{方べきの定理A}}}\par
+\図形の性質{方べきの定理A}\par
+\auto{116}{\detokenize{\図形の性質{方べきの定理Aの証明}}}\par
+\図形の性質{方べきの定理Aの証明}
+\auto{117}{\detokenize{\図形の性質{方べきの定理B}}}\par
+\図形の性質{方べきの定理B}\par
+\auto{117}{\detokenize{\図形の性質{方べきの定理Bの証明}}}\par
+\図形の性質{方べきの定理Bの証明}
+\auto{118}{\detokenize{\図形の性質{方べきの定理C}}}\par
+\図形の性質{方べきの定理C}\par
+\auto{118}{\detokenize{\図形の性質{方べきの定理Cの証明}}}\par
+\図形の性質{方べきの定理Cの証明}
+%\end{description}
+%\end{simplesquarebox}
+
+%%%%%%%%%%%%%%%%%%%%ここから数\UTF{2161}B%%%%%%%%%%%%%%%%%%%%
+%n-118=個数
+%\begin{simplesquarebox}{展開}
+%\begin{description}
+\auto{119}{\detokenize{\三次式展開{公式A}[i]}}\par
+\三次式展開{公式A}[i]\par
+\auto{120}{\detokenize{\三次式展開{公式A}[b]}}
+\三次式展開{公式A}[b]
+\auto{121}{\detokenize{\三次式展開{公式B}[i]}}\par
+\三次式展開{公式B}[i]\par
+\auto{122}{\detokenize{\三次式展開{公式B}[b]}}
+\三次式展開{公式B}[b]
+\auto{123}{\detokenize{\三次式展開{公式C}[i]}}\par
+\三次式展開{公式C}[i]\par
+\auto{124}{\detokenize{\三次式展開{公式C}[b]}}
+\三次式展開{公式C}[b]
+\auto{125}{\detokenize{\三次式展開{公式D}[i]}}\par
+\三次式展開{公式D}[i]\par
+\auto{126}{\detokenize{\三次式展開{公式D}[b]}}
+\三次式展開{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{因数分解}
+%\begin{description}
+\auto{127}{\detokenize{\三次式因数分解{公式A}[i]}}\par
+\三次式因数分解{公式A}[i]\par
+\auto{128}{\detokenize{\三次式因数分解{公式A}[b]}}
+\三次式因数分解{公式A}[b]
+\auto{129}{\detokenize{\三次式因数分解{公式B}[i]}}\par
+\三次式因数分解{公式B}[i]\par
+\auto{130}{\detokenize{\三次式因数分解{公式B}[b]}}
+\三次式因数分解{公式B}[b]
+\auto{131}{\detokenize{\三次式因数分解{公式C}[i]}}\par
+\三次式因数分解{公式C}[i]\par
+\auto{132}{\detokenize{\三次式因数分解{公式C}[b]}}
+\三次式因数分解{公式C}[b]
+\auto{133}{\detokenize{\三次式因数分解{公式D}[i]}}\par
+\三次式因数分解{公式D}[i]\par
+\auto{134}{\detokenize{\三次式因数分解{公式D}[b]}}
+\三次式因数分解{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二項定理}
+%\begin{description}
+\auto{135}{\detokenize{\二項定理{公式}[i]}}\par
+\二項定理{公式}[i]\par
+\auto{136}{\detokenize{\二項定理{公式}[b]}}
+\二項定理{公式}[b]
+\auto{137}{\detokenize{\二項定理{一般項}[i]}}\par
+\二項定理{一般項}[i]\par
+\auto{138}{\detokenize{\二項定理{一般項}[b]}}
+\二項定理{一般項}[b]
+\auto{135}{\detokenize{\二項定理{証明}}}\par
+\二項定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{分数式}
+%\begin{description}
+\auto{139}{\detokenize{\分数式{公式A}[i]}}\par
+\分数式{公式A}[i]\par
+\auto{140}{\detokenize{\分数式{公式A}[b]}}
+\分数式{公式A}[b]
+\auto{141}{\detokenize{\分数式{公式B}[i]}}\par
+\分数式{公式B}[i]\par
+\auto{142}{\detokenize{\分数式{公式B}[b]}}
+\分数式{公式B}[b]
+\auto{143}{\detokenize{\分数式{公式C}[i]}}\par
+\分数式{公式C}[i]\par
+\auto{144}{\detokenize{\分数式{公式C}[b]}}
+\分数式{公式C}[b]
+\auto{145}{\detokenize{\分数式{公式D}[i]}}\par
+\分数式{公式D}[i]\par
+\auto{146}{\detokenize{\分数式{公式D}[b]}}
+\分数式{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{相加相乗平均}
+%\begin{description}
+\auto{147}{\detokenize{\相加相乗平均{公式}[i]}}\par
+\相加相乗平均{公式}[i]\par
+\auto{148}{\detokenize{\相加相乗平均{公式}[b]}}
+\相加相乗平均{公式}[b]
+\auto{147}{\detokenize{\相加相乗平均{証明}}}\par
+\相加相乗平均{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{虚数の定義}
+%\begin{description}
+\auto{149}{\detokenize{\虚数の定義{定義}[i]}}\par
+\虚数の定義{定義}[i]\par
+\auto{150}{\detokenize{\虚数の定義{定義}[b]}}
+\虚数の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{複素数の定義}
+%\begin{description}
+\auto{151}{\detokenize{\複素数の定義{定義}[i]}}\par
+\複素数の定義{定義}[i]\par
+\auto{152}{\detokenize{\複素数の定義{定義}[b]}}\par
+\複素数の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二次方程式の解の判別}
+%\begin{description}
+\auto{153}{\detokenize{\二次方程式の解の判別}}\par
+\二次方程式の解の判別
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{解と係数の関係}
+%\begin{description}
+\auto{154}{\detokenize{\解と係数の関係{二次方程式の解と係数の関係A}[i]}}\par
+\解と係数の関係{二次方程式の解と係数の関係A}[i]\par
+\auto{155}{\detokenize{\解と係数の関係{二次方程式の解と係数の関係A}[b]}}
+\解と係数の関係{二次方程式の解と係数の関係A}[b]
+\auto{156}{\detokenize{\解と係数の関係{二次方程式の解と係数の関係B}[i]}}\par
+\解と係数の関係{二次方程式の解と係数の関係B}[i]\par
+\auto{157}{\detokenize{\解と係数の関係{二次方程式の解と係数の関係B}[b]}}
+\解と係数の関係{二次方程式の解と係数の関係B}[b]
+\auto{154}{\detokenize{\解と係数の関係{二次方程式の解と係数の関係の証明}[i]}}\par
+\解と係数の関係{二次方程式の解と係数の関係の証明}[i]\par
+\auto{158}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係A}[i]}}\par
+\解と係数の関係{三次方程式の解と係数の関係A}[i]\par
+\auto{159}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係A}[b]}}
+\解と係数の関係{三次方程式の解と係数の関係A}[b]
+\auto{160}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係B}[i]}}\par
+\解と係数の関係{三次方程式の解と係数の関係B}[i]\par
+\auto{161}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係B}[b]}}
+\解と係数の関係{三次方程式の解と係数の関係B}[b]
+\auto{162}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係C}[i]}}\par
+\解と係数の関係{三次方程式の解と係数の関係C}[i]\par
+\auto{163}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係C}[b]}}
+\解と係数の関係{三次方程式の解と係数の関係C}[b]
+\auto{158}{\detokenize{\解と係数の関係{三次方程式の解と係数の関係の証明}[i]}}\par
+\解と係数の関係{三次方程式の解と係数の関係の証明}[i]\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{剰余定理}
+%\begin{description}
+\auto{164}{\detokenize{\剰余定理{定理A}[i]}}\par
+\剰余定理{定理A}[i]\par
+\auto{165}{\detokenize{\剰余定理{定理A}[b]}}
+\剰余定理{定理A}[b]
+\auto{166}{\detokenize{\剰余定理{定理B}[i]}}\par
+\剰余定理{定理B}[i]\par
+\auto{167}{\detokenize{\剰余定理{定理B}[b]}}
+\剰余定理{定理B}[b]
+\auto{164}{\detokenize{\剰余定理{証明}}}\par
+\剰余定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{因数定理}
+%\begin{description}
+\auto{168}{\detokenize{\因数定理{定理}[i]}}\par
+\因数定理{定理}[i]\par
+\auto{168}{\detokenize{\因数定理{定理}[b]}}
+\因数定理{定理}[b]
+\auto{168}{\detokenize{\因数定理{証明}}}\par
+\因数定理{証明}\par
+
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{点の座標}
+%\begin{description}
+\auto{169}{\detokenize{\点の座標{二点間の距離}[i]}}\par
+\点の座標{二点間の距離}[i]\par
+\auto{170}{\detokenize{\点の座標{二点間の距離}[b]}}
+\点の座標{二点間の距離}[b]
+\auto{171}{\detokenize{\点の座標{内分点の座標}[i]}}\par
+\点の座標{内分点の座標}[i]\par
+\auto{172}{\detokenize{\点の座標{内分点の座標}[b]}}
+\点の座標{内分点の座標}[b]
+\auto{171}{\detokenize{\点の座標{内分点の座標の証明}[i]}}\par
+\点の座標{内分点の座標の証明}[i]\par
+\auto{173}{\detokenize{\点の座標{外分点の座標}[i]}}\par
+\点の座標{外分点の座標}[i]\par
+\auto{174}{\detokenize{\点の座標{外分点の座標}[b]}}
+\点の座標{外分点の座標}[b]
+\auto{173}{\detokenize{\点の座標{外分点の座標の証明}[i]}}\par
+\点の座標{外分点の座標の証明}[i]\par
+\auto{175}{\detokenize{\点の座標{中点の座標}[i]}}\par
+\点の座標{中点の座標}[i]\par
+\auto{176}{\detokenize{\点の座標{中点の座標}[b]}}
+\点の座標{中点の座標}[b]
+\auto{175}{\detokenize{\点の座標{中点の座標の証明}[i]}}\par
+\点の座標{中点の座標の証明}[i]\par
+\auto{177}{\detokenize{\点の座標{重心の座標}[i]}}\par
+\点の座標{重心の座標}[i]\par
+\auto{178}{\detokenize{\点の座標{重心の座標}[b]}}
+\点の座標{重心の座標}[b]
+\auto{177}{\detokenize{\点の座標{重心の座標の証明}[i]}}\par
+\点の座標{重心の座標の証明}[i]\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{直線の方程式}
+%\begin{description}
+\auto{179}{\detokenize{\直線の方程式{公式A}[i]}}\par
+\直線の方程式{公式A}[i]\par
+\auto{180}{\detokenize{\直線の方程式{公式A}[b]}}
+\直線の方程式{公式A}[b]
+\auto{181}{\detokenize{\直線の方程式{公式B}[i]}}\par
+\直線の方程式{公式B}[i]\par
+\auto{182}{\detokenize{\直線の方程式{公式B}[b]}}
+\直線の方程式{公式B}[b]
+\auto{183}{\detokenize{\直線の方程式{公式C}[i]}}\par
+\直線の方程式{公式C}[i]\par
+\auto{184}{\detokenize{\直線の方程式{公式C}[b]}}
+\直線の方程式{公式C}[b]
+\auto{183}{\detokenize{\直線の方程式{公式Bの証明}}}\par
+\直線の方程式{公式Bの証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{二直線の関係}
+%\begin{description}
+\auto{185}{\detokenize{\二直線の関係{公式A}[i]}}\par
+\二直線の関係{公式A}[i]\par
+\auto{186}{\detokenize{\二直線の関係{公式A}[b]}}
+\二直線の関係{公式A}[b]
+\auto{187}{\detokenize{\二直線の関係{公式B}[i]}}\par
+\二直線の関係{公式B}[i]\par
+\auto{188}{\detokenize{\二直線の関係{公式B}[b]}}
+\二直線の関係{公式B}[b]
+\auto{185}{\detokenize{\二直線の関係{公式Bの証明}[i]}}\par
+\二直線の関係{公式Bの証明}[i]\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{点と直線の距離}
+%\begin{description}
+\auto{189}{\detokenize{\点と直線の距離{公式}[i]}}\par
+\点と直線の距離{公式}[i]\par
+\auto{190}{\detokenize{\点と直線の距離{公式}[b]}}
+\点と直線の距離{公式}[b]
+\auto{189}{\detokenize{\点と直線の距離{証明}}}\par
+\点と直線の距離{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{円の方程式}
+%\begin{description}
+\auto{191}{\detokenize{\円の方程式{公式}[i]}}\par
+\円の方程式{公式}[i]\par
+\auto{192}{\detokenize{\円の方程式{公式}[b]}}
+\円の方程式{公式}[b]
+\auto{191}{\detokenize{\円の方程式{証明}}}\par
+\円の方程式{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{円と直線}
+%\begin{description}
+\auto{193}{\detokenize{\円と直線{公式}[i]}}\par
+\円と直線{公式}[i]\par
+\auto{194}{\detokenize{\円と直線{公式}[b]}}
+\円と直線{公式}[b]
+\auto{193}{\detokenize{\円と直線{証明}}}\par
+\円と直線{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{三角関数の相互関係}
+%\begin{description}
+\auto{195}{\detokenize{\三角関数の相互関係{公式A}[i]}}\par
+\三角関数の相互関係{公式A}[i]\par
+\auto{196}{\detokenize{\三角関数の相互関係{公式A}[b]}}
+\三角関数の相互関係{公式A}[b]
+\auto{197}{\detokenize{\三角関数の相互関係{公式B}[i]}}\par
+\三角関数の相互関係{公式B}[i]\par
+\auto{198}{\detokenize{\三角関数の相互関係{公式B}[b]}}
+\三角関数の相互関係{公式B}[b]
+\auto{199}{\detokenize{\三角関数の相互関係{公式C}[i]}}\par
+\三角関数の相互関係{公式C}[i]\par
+\auto{200}{\detokenize{\三角関数の相互関係{公式C}[b]}}
+\三角関数の相互関係{公式C}[b]
+\auto{195}{\detokenize{\三角関数の相互関係{証明}}}\par
+\三角関数の相互関係{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+\auto{201}{\detokenize{\三角関数の性質{性質A}[i]}}\par
+\三角関数の性質{性質A}[i]\par
+\auto{202}{\detokenize{\三角関数の性質{性質A}[b]}}
+\三角関数の性質{性質A}[b]
+\auto{203}{\detokenize{\三角関数の性質{性質B}[i]}}\par
+\三角関数の性質{性質B}[i]\par
+\auto{204}{\detokenize{\三角関数の性質{性質B}[b]}}
+\三角関数の性質{性質B}[b]
+\auto{205}{\detokenize{\三角関数の性質{性質C}[i]}}\par
+\三角関数の性質{性質C}[i]\par
+\auto{206}{\detokenize{\三角関数の性質{性質C}[b]}}
+\三角関数の性質{性質C}[b]
+\auto{207}{\detokenize{\三角関数の性質{性質D}[i]}}\par
+\三角関数の性質{性質D}[i]\par
+\auto{208}{\detokenize{\三角関数の性質{性質D}[b]}}
+\三角関数の性質{性質D}[b]
+\auto{209}{\detokenize{\三角関数の性質{性質E}[i]}}\par
+\三角関数の性質{性質E}[i]\par
+\auto{210}{\detokenize{\三角関数の性質{性質E}[b]}}
+\三角関数の性質{性質E}[b]
+\auto{211}{\detokenize{\三角関数の性質{性質F}[i]}}\par
+\三角関数の性質{性質F}[i]\par
+\auto{212}{\detokenize{\三角関数の性質{性質F}[b]}}
+\三角関数の性質{性質F}[b]
+\auto{213}{\detokenize{\三角関数の性質{性質G}[i]}}\par
+\三角関数の性質{性質G}[i]\par
+\auto{214}{\detokenize{\三角関数の性質{性質G}[b]}}
+\三角関数の性質{性質G}[b]
+\auto{215}{\detokenize{\三角関数の性質{性質H}[i]}}\par
+\三角関数の性質{性質H}[i]\par
+\auto{216}{\detokenize{\三角関数の性質{性質H}[b]}}
+\三角関数の性質{性質H}[b]
+\auto{217}{\detokenize{\三角関数の性質{性質I}[i]}}\par
+\三角関数の性質{性質I}[i]\par
+\auto{218}{\detokenize{\三角関数の性質{性質I}[b]}}
+\三角関数の性質{性質I}[b]
+\auto{219}{\detokenize{\三角関数の性質{性質J}[i]}}\par
+\三角関数の性質{性質J}[i]\par
+\auto{220}{\detokenize{\三角関数の性質{性質J}[b]}}
+\三角関数の性質{性質J}[b]
+\auto{221}{\detokenize{\三角関数の性質{性質K}[i]}}\par
+\三角関数の性質{性質K}[i]\par
+\auto{222}{\detokenize{\三角関数の性質{性質K}[b]}}
+\三角関数の性質{性質K}[b]
+\auto{223}{\detokenize{\三角関数の性質{性質L}[i]}}\par
+\三角関数の性質{性質L}[i]\par
+\auto{224}{\detokenize{\三角関数の性質{性質L}[b]}}
+\三角関数の性質{性質L}[b]
+\auto{225}{\detokenize{\三角関数の性質{性質M}[i]}}\par
+\三角関数の性質{性質M}[i]\par
+\auto{226}{\detokenize{\三角関数の性質{性質M}[b]}}
+\三角関数の性質{性質M}[b]
+\auto{227}{\detokenize{\三角関数の性質{性質N}[i]}}\par
+\三角関数の性質{性質N}[i]\par
+\auto{228}{\detokenize{\三角関数の性質{性質N}[b]}}
+\三角関数の性質{性質N}[b]
+\auto{229}{\detokenize{\三角関数の性質{性質O}[i]}}\par
+\三角関数の性質{性質O}[i]\par
+\auto{230}{\detokenize{\三角関数の性質{性質O}[b]}}
+\三角関数の性質{性質O}[b]
+
+
+%\begin{simplesquarebox}{三角関数の加法定理}
+%\begin{description}
+\auto{231}{\detokenize{\三角関数の加法定理{公式A}[i]}}\par
+\三角関数の加法定理{公式A}[i]\par
+\auto{232}{\detokenize{\三角関数の加法定理{公式A}[b]}}
+\三角関数の加法定理{公式A}[b]
+\auto{233}{\detokenize{\三角関数の加法定理{公式B}[i]}}\par
+\三角関数の加法定理{公式B}[i]\par
+\auto{234}{\detokenize{\三角関数の加法定理{公式B}[b]}}
+\三角関数の加法定理{公式B}[b]
+\auto{235}{\detokenize{\三角関数の加法定理{公式C}[i]}}\par
+\三角関数の加法定理{公式C}[i]\par
+\auto{236}{\detokenize{\三角関数の加法定理{公式C}[b]}}
+\三角関数の加法定理{公式C}[b]
+\auto{231}{\detokenize{\三角関数の加法定理{証明}}}\par
+\三角関数の加法定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+\auto{237}{\detokenize{\三角関数の二倍角の公式{公式A}[i]}}\par
+\三角関数の二倍角の公式{公式A}[i]\par
+\auto{238}{\detokenize{\三角関数の二倍角の公式{公式A}[b]}}
+\三角関数の二倍角の公式{公式A}[b]
+\auto{239}{\detokenize{\三角関数の二倍角の公式{公式B}[i]}}\par
+\三角関数の二倍角の公式{公式B}[i]\par
+\auto{240}{\detokenize{\三角関数の二倍角の公式{公式B}[b]}}
+\三角関数の二倍角の公式{公式B}[b]
+\auto{241}{\detokenize{\三角関数の二倍角の公式{公式C}[i]}}\par
+\三角関数の二倍角の公式{公式C}[i]\par
+\auto{242}{\detokenize{\三角関数の二倍角の公式{公式C}[b]}}
+\三角関数の二倍角の公式{公式C}[b]
+\auto{243}{\detokenize{\三角関数の二倍角の公式{公式D}[i]}}\par
+\三角関数の二倍角の公式{公式D}[i]\par
+\auto{244}{\detokenize{\三角関数の二倍角の公式{公式D}[b]}}
+\三角関数の二倍角の公式{公式D}[b]
+\auto{245}{\detokenize{\三角関数の二倍角の公式{公式E}[i]}}\par
+\三角関数の二倍角の公式{公式E}[i]\par
+\auto{246}{\detokenize{\三角関数の二倍角の公式{公式E}[b]}}
+\三角関数の二倍角の公式{公式E}[b]
+\auto{237}{\detokenize{\三角関数の二倍角の公式{証明}}}\par
+\三角関数の二倍角の公式{証明}\par
+\auto{247}{\detokenize{\三角関数の三倍角の公式{公式A}[i]}}\par
+\三角関数の三倍角の公式{公式A}[i]\par
+\auto{248}{\detokenize{\三角関数の三倍角の公式{公式A}[b]}}
+\三角関数の三倍角の公式{公式A}[b]
+\auto{249}{\detokenize{\三角関数の三倍角の公式{公式B}[i]}}\par
+\三角関数の三倍角の公式{公式B}[i]\par
+\auto{250}{\detokenize{\三角関数の三倍角の公式{公式B}[b]}}
+\三角関数の三倍角の公式{公式B}[b]
+%\auto{251}{\detokenize{\三角関数の三倍角の公式{公式C}[i]}}\par
+%\三角関数の三倍角の公式{公式C}[i]\par
+%\auto{251}{\detokenize{\三角関数の三倍角の公式{公式C}[b]}}
+%\三角関数の三倍角の公式{公式C}[b]
+\auto{247}{\detokenize{\三角関数の三倍角の公式{証明}}}\par
+\三角関数の三倍角の公式{証明}\par
+
+\auto{252}{\detokenize{\三角関数の積和公式{公式A}[i]}}\par
+\三角関数の積和公式{公式A}[i]\par
+\auto{253}{\detokenize{\三角関数の積和公式{公式A}[b]}}
+\三角関数の積和公式{公式A}[b]
+\auto{254}{\detokenize{\三角関数の積和公式{公式B}[i]}}\par
+\三角関数の積和公式{公式B}[i]\par
+\auto{255}{\detokenize{\三角関数の積和公式{公式B}[b]}}
+\三角関数の積和公式{公式B}[b]
+\auto{256}{\detokenize{\三角関数の積和公式{公式C}[i]}}\par
+\三角関数の積和公式{公式C}[i]\par
+\auto{257}{\detokenize{\三角関数の積和公式{公式C}[b]}}
+\三角関数の積和公式{公式C}[b]
+\auto{252}{\detokenize{\三角関数の積和公式{証明}}}\par
+\三角関数の積和公式{証明}\par
+
+\auto{258}{\detokenize{\三角関数の和積公式{公式A}[i]}}\par
+\三角関数の和積公式{公式A}[i]\par
+\auto{259}{\detokenize{\三角関数の和積公式{公式A}[b]}}
+\三角関数の和積公式{公式A}[b]
+\auto{260}{\detokenize{\三角関数の和積公式{公式B}[i]}}\par
+\三角関数の和積公式{公式B}[i]\par
+\auto{261}{\detokenize{\三角関数の和積公式{公式B}[b]}}
+\三角関数の和積公式{公式B}[b]
+\auto{262}{\detokenize{\三角関数の和積公式{公式C}[i]}}\par
+\三角関数の和積公式{公式C}[i]\par
+\auto{263}{\detokenize{\三角関数の和積公式{公式C}[b]}}
+\三角関数の和積公式{公式C}[b]
+\auto{264}{\detokenize{\三角関数の和積公式{公式D}[i]}}\par
+\三角関数の和積公式{公式D}[i]\par
+\auto{265}{\detokenize{\三角関数の和積公式{公式D}[b]}}
+\三角関数の和積公式{公式D}[b]
+\auto{258}{\detokenize{\三角関数の和積公式{証明}}}\par
+\三角関数の和積公式{証明}\par
+
+%\begin{simplesquarebox}{三角関数の合成}
+%\begin{description}
+\auto{267}{\detokenize{\三角関数の合成{公式}[i]}}\par
+\三角関数の合成{公式}[i]\par
+\auto{268}{\detokenize{\三角関数の合成{公式}[b]}}
+\三角関数の合成{公式}[b]\par
+\auto{267}{\detokenize{\三角関数の合成{証明}}}\par
+\三角関数の合成{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{有理数の指数}
+%\begin{description}
+\auto{269}{\detokenize{\有理数の指数{公式A}[i]}}\par
+\有理数の指数{公式A}[i]\par
+\auto{270}{\detokenize{\有理数の指数{公式A}[b]}}
+\有理数の指数{公式A}[b]
+\auto{271}{\detokenize{\有理数の指数{公式B}[i]}}\par
+\有理数の指数{公式B}[i]\par
+\auto{272}{\detokenize{\有理数の指数{公式B}[b]}}
+\有理数の指数{公式B}[b]
+\auto{273}{\detokenize{\有理数の指数{公式C}[i]}}\par
+\有理数の指数{公式C}[i]\par
+\auto{274}{\detokenize{\有理数の指数{公式C}[b]}}
+\有理数の指数{公式C}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{指数法則}
+%\begin{description}
+\auto{275}{\detokenize{\指数法則{公式A}[i]}}\par
+\指数法則{公式A}[i]\par
+\auto{276}{\detokenize{\指数法則{公式A}[b]}}
+\指数法則{公式A}[b]
+\auto{277}{\detokenize{\指数法則{公式B}[i]}}\par
+\指数法則{公式B}[i]\par
+\auto{278}{\detokenize{\指数法則{公式B}[b]}}
+\指数法則{公式B}[b]
+\auto{279}{\detokenize{\指数法則{公式C}[i]}}\par
+\指数法則{公式C}[i]\par
+\auto{280}{\detokenize{\指数法則{公式C}[b]}}
+\指数法則{公式C}[b]
+\auto{281}{\detokenize{\指数法則{公式D}[i]}}\par
+\指数法則{公式D}[i]\par
+\auto{282}{\detokenize{\指数法則{公式D}[b]}}
+\指数法則{公式D}[b]
+\auto{283}{\detokenize{\指数法則{公式E}[i]}}\par
+\指数法則{公式E}[i]\par
+\auto{284}{\detokenize{\指数法則{公式E}[b]}}
+\指数法則{公式E}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{対数の定義}
+%\begin{description}
+\auto{285}{\detokenize{\対数の定義{定義}[i]}}\par
+\対数の定義{定義}[i]\par
+\auto{286}{\detokenize{\対数の定義{定義}[b]}}
+\対数の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{対数の性質}
+%\begin{description}
+\auto{287}{\detokenize{\対数の性質{公式A}[i]}}\par
+\対数の性質{公式A}[i]\par
+\auto{288}{\detokenize{\対数の性質{公式A}[b]}}
+\対数の性質{公式A}[b]
+\auto{289}{\detokenize{\対数の性質{公式B}[i]}}\par
+\対数の性質{公式B}[i]\par
+\auto{290}{\detokenize{\対数の性質{公式B}[b]}}
+\対数の性質{公式B}[b]
+\auto{291}{\detokenize{\対数の性質{公式C}[i]}}\par
+\対数の性質{公式C}[i]\par
+\auto{292}{\detokenize{\対数の性質{公式C}[b]}}
+\対数の性質{公式C}[b]
+\auto{293}{\detokenize{\対数の性質{公式D}[i]}}\par
+\対数の性質{公式D}[i]\par
+\auto{294}{\detokenize{\対数の性質{公式D}[b]}}
+\対数の性質{公式D}[b]
+\auto{295}{\detokenize{\対数の性質{公式E}[i]}}\par
+\対数の性質{公式E}[i]\par
+\auto{296}{\detokenize{\対数の性質{公式E}[b]}}
+\対数の性質{公式E}[b]
+\auto{297}{\detokenize{\対数の性質{公式F}[i]}}\par
+\対数の性質{公式F}[i]\par
+\auto{298}{\detokenize{\対数の性質{公式F}[b]}}
+\対数の性質{公式F}[b]
+\auto{287}{\detokenize{\対数の性質{証明}}}\par
+\対数の性質{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{底の変換公式}
+%\begin{description}
+\auto{299}{\detokenize{\底の変換公式{公式}[i]}}\par
+\底の変換公式{公式}[i]\par
+\auto{300}{\detokenize{\底の変換公式{公式}[b]}}
+\底の変換公式{公式}[b]
+\auto{299}{\detokenize{\底の変換公式{証明}}}\par
+\底の変換公式{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{導関数の微分}
+%\begin{description}
+\auto{301}{\detokenize{\導関数の定義{定義}[i]}}\par
+\導関数の定義{定義}[i]\par
+\auto{302}{\detokenize{\導関数の定義{定義}[b]}}
+\導関数の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{べき乗関数と定数関数の導関数}
+%\begin{description}
+\auto{303}{\detokenize{\べき乗関数と定数関数の導関数{公式A}[i]}}\par
+\べき乗関数と定数関数の導関数{公式A}[i]\par
+\auto{304}{\detokenize{\べき乗関数と定数関数の導関数{公式A}[b]}}
+\べき乗関数と定数関数の導関数{公式A}[b]
+\auto{305}{\detokenize{\べき乗関数と定数関数の導関数{公式B}[i]}}\par
+\べき乗関数と定数関数の導関数{公式B}[i]\par
+\auto{306}{\detokenize{\べき乗関数と定数関数の導関数{公式B}[b]}}
+\べき乗関数と定数関数の導関数{公式B}[b]
+\auto{303}{\detokenize{\べき乗関数と定数関数の導関数{証明}}}\par
+\べき乗関数と定数関数の導関数{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{導関数の性質}
+%\begin{description}
+\auto{307}{\detokenize{\導関数の性質{公式A}[i]}}\par
+\導関数の性質{公式A}[i]\par
+\auto{308}{\detokenize{\導関数の性質{公式A}[b]}}
+\導関数の性質{公式A}[b]
+\auto{309}{\detokenize{\導関数の性質{公式B}[i]}}\par
+\導関数の性質{公式B}[i]\par
+\auto{310}{\detokenize{\導関数の性質{公式B}[b]}}
+\導関数の性質{公式B}[b]
+\auto{311}{\detokenize{\導関数の性質{公式C}[i]}}\par
+\導関数の性質{公式C}[i]\par
+\auto{312}{\detokenize{\導関数の性質{公式C}[b]}}
+\導関数の性質{公式C}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{接線の方程式}
+%\begin{description}
+\auto{313}{\detokenize{\接線の方程式{公式}[i]}}\par
+\接線の方程式{公式}[i]\par
+\auto{314}{\detokenize{\接線の方程式{公式}[b]}}
+\接線の方程式{公式}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{不定積分の定義}
+%\begin{description}
+\auto{315}{\detokenize{\不定積分の定義{定義}[i]}}\par
+\不定積分の定義{定義}[i]\par
+\auto{316}{\detokenize{\不定積分の定義{定義}[b]}}
+\不定積分の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{べき乗関数の不定積分}
+%\begin{description}
+\auto{317}{\detokenize{\べき乗関数の不定積分{公式}[i]}}\par
+\べき乗関数の不定積分{公式}[i]\par
+\auto{318}{\detokenize{\べき乗関数の不定積分{公式}[b]}}
+\べき乗関数の不定積分{公式}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{不定積分の性質}
+%\begin{description}
+%\auto{319}{\texttt{\textbackslash 不定積分の性質\h{-0.1mm}$\lbrace$\h{公式A}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式A}[i]\par}\par
+\不定積分の性質{公式A}[i]\par\par
+%\auto{320}{\texttt{\textbackslash 不定積分の性質\h{-0.1mm}$\lbrace$\h{公式A}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式A}[b]}\par
+\不定積分の性質{公式A}[b]
+%\auto{321}{\texttt{\textbackslash 不定積分の性質\h{-0.1mm}$\lbrace$\h{公式B}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式B}[i]\par}\par
+\不定積分の性質{公式B}[i]\par\par
+%\auto{322}{\texttt{\textbackslash 不定積分の性質\h{-0.1mm}$\lbrace$\h{公式B}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式B}[b]}\par
+\不定積分の性質{公式B}[b]
+%\auto{323}{\texttt{\textbackslash 不定積分の性質\h{-0.1mm}$\lbrace$\h{公式C}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式C}[i]\par}\par
+\不定積分の性質{公式C}[i]\par\par
+%\auto{324}{\texttt{\textbackslash
+%\不定積分の性質{公式C}\h{-0.1mm}$\rbrace$\kakkokukuri[[]{i}}}\par
+\auto[1]{\不定積分の性質{公式C}[b]}\par
+\不定積分の性質{公式C}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{定積分の定義}
+%\begin{description}
+\auto{325}{\detokenize{\定積分の定義{定義}[i]}}\par
+\定積分の定義{定義}[i]\par
+\auto{326}{\detokenize{\定積分の定義{定義}[b]}}
+\定積分の定義{定義}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{定積分の性質}
+%\begin{description}
+\auto{327}{\detokenize{\定積分の性質{公式A}[i]}}\par
+\定積分の性質{公式A}[i]\par
+\auto{328}{\detokenize{\定積分の性質{公式A}[b]}}
+\定積分の性質{公式A}[b]
+\auto{329}{\detokenize{\定積分の性質{公式B}[i]}}\par
+\定積分の性質{公式B}[i]\par
+\auto{330}{\detokenize{\定積分の性質{公式B}[b]}}
+\定積分の性質{公式B}[b]
+\auto{331}{\detokenize{\定積分の性質{公式C}[i]}}\par
+\定積分の性質{公式C}[i]\par
+\auto{332}{\detokenize{\定積分の性質{公式C}[b]}}
+\定積分の性質{公式C}[b]
+\auto{333}{\detokenize{\定積分の性質{公式D}[i]}}\par
+\定積分の性質{公式D}[i]\par
+\auto{334}{\detokenize{\定積分の性質{公式D}[b]}}
+\定積分の性質{公式D}[b]
+\auto{335}{\detokenize{\定積分の性質{公式E}[i]}}\par
+\定積分の性質{公式E}[i]\par
+\auto{336}{\detokenize{\定積分の性質{公式E}[b]}}
+\定積分の性質{公式E}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{ベクトルの演算}
+%\begin{description}
+%n-336=個数
+\auto{337}{\detokenize{\ベクトルの演算{公式A}[i]}}\par
+\ベクトルの演算{公式A}[i]\par
+\auto{338}{\detokenize{\ベクトルの演算{公式A}[b]}}
+\ベクトルの演算{公式A}[b]
+\auto{339}{\detokenize{\ベクトルの演算{公式B}[i]}}\par
+\ベクトルの演算{公式B}[i]\par
+\auto{340}{\detokenize{\ベクトルの演算{公式B}[b]}}
+\ベクトルの演算{公式B}[b]
+\auto{341}{\detokenize{\ベクトルの演算{公式C}[i]}}\par
+\ベクトルの演算{公式C}[i]\par
+\auto{342}{\detokenize{\ベクトルの演算{公式C}[b]}}
+\ベクトルの演算{公式C}[b]
+\auto{343}{\detokenize{\ベクトルの演算{公式D}[i]}}\par
+\ベクトルの演算{公式D}[i]\par
+\auto{344}{\detokenize{\ベクトルの演算{公式D}[b]}}
+\ベクトルの演算{公式D}[b]
+\auto{345}{\detokenize{\ベクトルの演算{公式E}[i]}}\par
+\ベクトルの演算{公式E}[i]\par
+\auto{346}{\detokenize{\ベクトルの演算{公式E}[b]}}
+\ベクトルの演算{公式E}[b]
+\auto{347}{\detokenize{\ベクトルの演算{公式F}[i]}}\par
+\ベクトルの演算{公式F}[i]\par
+\auto{348}{\detokenize{\ベクトルの演算{公式F}[b]}}
+\ベクトルの演算{公式F}[b]
+\auto{349}{\detokenize{\ベクトルの演算{公式G}[i]}}\par
+\ベクトルの演算{公式G}[i]\par
+\auto{350}{\detokenize{\ベクトルの演算{公式G}[b]}}
+\ベクトルの演算{公式G}[b]
+\auto{351}{\detokenize{\ベクトルの演算{公式H}[i]}}\par
+\ベクトルの演算{公式H}[i]\par
+\auto{352}{\detokenize{\ベクトルの演算{公式H}[b]}}
+\ベクトルの演算{公式H}[b]
+\auto{353}{\detokenize{\ベクトルの演算{公式I}[i]}}\par
+\ベクトルの演算{公式I}[i]\par
+\auto{354}{\detokenize{\ベクトルの演算{公式I}[b]}}
+\ベクトルの演算{公式I}[b]
+\auto{355}{\detokenize{\ベクトルの演算{公式J}[i]}}\par
+\ベクトルの演算{公式J}[i]\par
+\auto{356}{\detokenize{\ベクトルの演算{公式J}[b]}}
+\ベクトルの演算{公式J}[b]
+\auto{357}{\detokenize{\ベクトルの演算{公式K}[i]}}\par
+\ベクトルの演算{公式K}[i]\par
+\auto{358}{\detokenize{\ベクトルの演算{公式K}[b]}}
+\ベクトルの演算{公式K}[b]
+\auto{359}{\detokenize{\ベクトルの演算{公式L}[i]}}\par
+\ベクトルの演算{公式L}[i]\par
+\auto{360}{\detokenize{\ベクトルの演算{公式L}[b]}}
+\ベクトルの演算{公式L}[b]
+%\auto{361}{\detokenize{\ベクトルの演算{公式M}[i]}}\par
+%\ベクトルの演算{公式M}[i]\par
+%\auto{362}{\detokenize{\ベクトルの演算{公式M}[b]}}
+%\ベクトルの演算{公式M}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平面ベクトルの分解}
+%\begin{description}
+\auto{363}{\detokenize{\平面ベクトルの分解{公式}[i]}}\par
+\平面ベクトルの分解{公式}[i]\par
+\auto{364}{\detokenize{\平面ベクトルの分解{公式}[b]}}
+\平面ベクトルの分解{公式}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平面ベクトルの成分}
+%\begin{description}
+\auto{365}{\detokenize{\平面ベクトルの成分{公式A}[i]}}\par
+\平面ベクトルの成分{公式A}[i]\par
+\auto{366}{\detokenize{\平面ベクトルの成分{公式A}[b]}}
+\平面ベクトルの成分{公式A}[b]
+\auto{367}{\detokenize{\平面ベクトルの成分{公式B}[i]}}\par
+\平面ベクトルの成分{公式B}[i]\par
+\auto{368}{\detokenize{\平面ベクトルの成分{公式B}[b]}}
+\平面ベクトルの成分{公式B}[b]
+\auto{369}{\detokenize{\平面ベクトルの成分{公式C}[i]}}\par
+\平面ベクトルの成分{公式C}[i]\par
+\auto{370}{\detokenize{\平面ベクトルの成分{公式C}[b]}}
+\平面ベクトルの成分{公式C}[b]
+\auto{371}{\detokenize{\平面ベクトルの成分{公式D}[i]}}\par
+\平面ベクトルの成分{公式D}[i]\par
+\auto{372}{\detokenize{\平面ベクトルの成分{公式D}[b]}}
+\平面ベクトルの成分{公式D}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{ベクトルの成分と大きさ}
+%\begin{description}
+\auto{373}{\detokenize{\ベクトルの成分と大きさ{公式A}[i]}}\par
+\ベクトルの成分と大きさ{公式A}[i]\par
+\auto{374}{\detokenize{\ベクトルの成分と大きさ{公式A}[b]}}
+\ベクトルの成分と大きさ{公式A}[b]
+\auto{375}{\detokenize{\ベクトルの成分と大きさ{公式B}[i]}}\par
+\ベクトルの成分と大きさ{公式B}[i]\par
+\auto{376}{\detokenize{\ベクトルの成分と大きさ{公式B}[b]}}
+\ベクトルの成分と大きさ{公式B}[b]
+\auto{373}{\detokenize{\ベクトルの成分と大きさ{証明}}}\par
+\ベクトルの成分と大きさ{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平面ベクトルの内積}
+%\begin{description}
+\auto{377}{\detokenize{\平面ベクトルの内積{公式}[i]}}\par
+\平面ベクトルの内積{公式}[i]\par
+\auto{378}{\detokenize{\平面ベクトルの内積{公式}[b]}}
+\平面ベクトルの内積{公式}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{内積の性質}
+%\begin{description}
+\auto{379}{\detokenize{\内積の性質{公式A}[i]}}\par
+\内積の性質{公式A}[i]\par
+\auto{380}{\detokenize{\内積の性質{公式A}[b]}}
+\内積の性質{公式A}[b]
+\auto{381}{\detokenize{\内積の性質{公式B}[i]}}\par
+\内積の性質{公式B}[i]\par
+\auto{382}{\detokenize{\内積の性質{公式B}[b]}}
+\内積の性質{公式B}[b]
+\auto{383}{\detokenize{\内積の性質{公式C}[i]}}\par
+\内積の性質{公式C}[i]\par
+\auto{384}{\detokenize{\内積の性質{公式C}[b]}}
+\内積の性質{公式C}[b]
+\auto{385}{\detokenize{\内積の性質{公式D}[i]}}\par
+\内積の性質{公式D}[i]\par
+\auto{386}{\detokenize{\内積の性質{公式D}[b]}}
+\内積の性質{公式D}[b]
+\auto{387}{\detokenize{\内積の性質{公式E}[i]}}\par
+\内積の性質{公式E}[i]\par
+\auto{388}{\detokenize{\内積の性質{公式E}[b]}}
+\内積の性質{公式E}[b]
+\auto{389}{\detokenize{\内積の性質{公式F}[i]}}\par
+\内積の性質{公式F}[i]\par
+\auto{390}{\detokenize{\内積の性質{公式F}[b]}}
+\内積の性質{公式F}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平面ベクトルの平行条件}
+%\begin{description}
+\auto{391}{\detokenize{\平面ベクトルの平行条件{条件}[i]}}\par
+\平面ベクトルの平行条件{条件}[i]\par
+\auto{392}{\detokenize{\平面ベクトルの平行条件{条件}[b]}}
+\平面ベクトルの平行条件{条件}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平面ベクトルの垂直条件}
+%\begin{description}
+\auto{393}{\detokenize{\平面ベクトルの垂直条件{条件}[i]}}\par
+\平面ベクトルの垂直条件{条件}[i]\par
+\auto{394}{\detokenize{\平面ベクトルの垂直条件{条件}[b]}}
+\平面ベクトルの垂直条件{条件}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{位置ベクトル}
+%\begin{description}
+\auto{395}{\detokenize{\位置ベクトル{公式A}[i]}}\par
+\位置ベクトル{公式A}[i]\par
+\auto{396}{\detokenize{\位置ベクトル{公式A}[b]}}
+\位置ベクトル{公式A}[b]
+\auto{395}{\detokenize{\位置ベクトル{公式A}[i]}}\par
+\位置ベクトル{内分点の位置ベクトルの証明}[i]\par
+\auto{397}{\detokenize{\位置ベクトル{公式B}[i]}}\par
+\位置ベクトル{公式B}[i]\par
+\auto{398}{\detokenize{\位置ベクトル{公式B}[b]}}
+\位置ベクトル{公式B}[b]
+\auto{397}{\detokenize{\位置ベクトル{外分点の位置ベクトルの証明}[i]}}\par
+\位置ベクトル{外分点の位置ベクトルの証明}[i]\par
+\auto{399}{\detokenize{\位置ベクトル{公式C}[i]}}\par
+\位置ベクトル{公式C}[i]\par
+\auto{400}{\detokenize{\位置ベクトル{公式C}[b]}}
+\位置ベクトル{公式C}[b]
+\auto{401}{\detokenize{\位置ベクトル{公式D}[i]}}\par
+\位置ベクトル{公式D}[i]\par
+\auto{402}{\detokenize{\位置ベクトル{公式D}[b]}}
+\位置ベクトル{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{ベクトル方程式}
+%\begin{description}
+\auto{403}{\detokenize{\ベクトル方程式{公式A}[i]}}\par
+\ベクトル方程式{公式A}[i]\par
+\auto{404}{\detokenize{\ベクトル方程式{公式A}[b]}}
+\ベクトル方程式{公式A}[b]
+\auto{405}{\detokenize{\ベクトル方程式{公式B}[i]}}\par
+\ベクトル方程式{公式B}[i]\par
+\auto{406}{\detokenize{\ベクトル方程式{公式B}[b]}}
+\ベクトル方程式{公式B}[b]
+\auto{407}{\detokenize{\ベクトル方程式{公式C}[i]}}\par
+\ベクトル方程式{公式C}[i]\par
+\auto{408}{\detokenize{\ベクトル方程式{公式C}[b]}}
+\ベクトル方程式{公式C}[b]
+\auto{409}{\detokenize{\ベクトル方程式{公式D}[i]}}\par
+\ベクトル方程式{公式D}[i]\par
+\auto{410}{\detokenize{\ベクトル方程式{公式D}[b]}}
+\ベクトル方程式{公式D}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{等差数列}
+%\begin{description}
+\auto{411}{\detokenize{\等差数列{一般項}[i]}}\par
+\等差数列{一般項}[i]\par
+\auto{412}{\detokenize{\等差数列{一般項}[b]}}
+\等差数列{一般項}[b]
+\auto{413}{\detokenize{\等差数列{総和}[i]}}\par
+\等差数列{総和}[i]\par
+\auto{414}{\detokenize{\等差数列{総和}[b]}}
+\等差数列{総和}[b]
+\auto{411}{\detokenize{\等差数列{証明}}}\par
+\等差数列{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{等比数列}
+%\begin{description}
+\auto{415}{\detokenize{\等比数列{一般項}[i]}}\par
+\等比数列{一般項}[i]\par
+\auto{416}{\detokenize{\等比数列{一般項}[b]}}
+\等比数列{一般項}[b]
+\auto{417}{\detokenize{\等比数列{総和}[i]}}\par
+\等比数列{総和}[i]\par
+\auto{418}{\detokenize{\等比数列{総和}[b]}}
+\等比数列{総和}[b]
+\auto{415}{\detokenize{\等比数列{証明}}}\par
+\等比数列{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{シグマの公式}
+%\begin{description}
+\auto{419}{\detokenize{\シグマの公式{公式A}[i]}}\par
+\シグマの公式{公式A}[i]\par
+\auto{420}{\detokenize{\シグマの公式{公式A}[b]}}
+\シグマの公式{公式A}[b]
+\auto{421}{\detokenize{\シグマの公式{公式B}[i]}}\par
+\シグマの公式{公式B}[i]\par
+\auto{422}{\detokenize{\シグマの公式{公式B}[b]}}
+\シグマの公式{公式B}[b]
+\auto{423}{\detokenize{\シグマの公式{公式C}[i]}}\par
+\シグマの公式{公式C}[i]\par
+\auto{424}{\detokenize{\シグマの公式{公式C}[b]}}
+\シグマの公式{公式C}[b]
+\auto{425}{\detokenize{\シグマの公式{公式D}[i]}}\par
+\シグマの公式{公式D}[i]\par
+\auto{426}{\detokenize{\シグマの公式{公式D}[b]}}
+\シグマの公式{公式D}[b]
+\auto{427}{\detokenize{\シグマの公式{公式E}[i]}}\par
+\シグマの公式{公式E}[i]\par
+\auto{428}{\detokenize{\シグマの公式{公式E}[b]}}
+\シグマの公式{公式E}[b]
+\auto{419}{\detokenize{\シグマの公式{証明}}}\par
+\シグマの公式{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{シグマの性質}
+%\begin{description}
+\auto{429}{\detokenize{\シグマの性質{性質}[i]}}\par
+\シグマの性質{性質}[i]\par
+\auto{430}{\detokenize{\シグマの性質{性質}[b]}}
+\シグマの性質{性質}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{階差数列}
+%\begin{description}
+\auto{431}{\detokenize{\階差数列{一般項}[i]}}\par
+\階差数列{一般項}[i]\par
+\auto{432}{\detokenize{\階差数列{一般項}[b]}}
+\階差数列{一般項}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{漸化式}
+%\begin{description}
+\auto{433}{\detokenize{\漸化式{等差型}[i]}}\par
+\漸化式{等差型}[i]\par
+\auto{434}{\detokenize{\漸化式{等差型}[b]}}
+\漸化式{等差型}[b]
+\auto{435}{\detokenize{\漸化式{等比型}[i]}}\par
+\漸化式{等比型}[i]\par
+\auto{436}{\detokenize{\漸化式{等比型}[b]}}
+\漸化式{等比型}[b]\par
+\auto{437}{\detokenize{\漸化式{階差型}[i]}}\par
+\漸化式{階差型}[i]\par
+\auto{438}{\detokenize{\漸化式{階差型}[b]}}
+\漸化式{階差型}[b]\par
+\auto{439}{\detokenize{\漸化式{特性方程式}[i]}}\par
+\漸化式{特性方程式}[i]\par
+\auto{440}{\detokenize{\漸化式{特性方程式}[b]}}
+\漸化式{特性方程式}[b]
+
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{数学的帰納法}
+%\begin{description}
+\auto{441}{\detokenize{\数学的帰納法}}\par
+\数学的帰納法
+
+%\end{description}
+%\end{simplesquarebox}
+
+%%%%%%%%%%%%%%%%%%%%ここから数\UTF{2162}%%%%%%%%%%%%%%%%%%%%
+
+%\begin{simplesquarebox}{共役複素数}
+%\begin{description}
+%n-441=個数
+\auto{442}{\detokenize{\共役複素数{定義}[i]}}\par
+\共役複素数{定義}[i]\par
+\auto{443}{\detokenize{\共役複素数{定義}[b]}}
+\共役複素数{定義}[b]
+\auto{444}{\detokenize{\共役複素数{性質A}[i]}}\par
+\共役複素数{性質A}[i]\par
+\auto{445}{\detokenize{\共役複素数{性質A}[b]}}
+\共役複素数{性質A}[b]\par
+\auto{446}{\detokenize{\共役複素数{性質B}[i]}}\par
+\共役複素数{性質B}[i]\par
+\auto{447}{\detokenize{\共役複素数{性質B}[b]}}
+\共役複素数{性質B}[b]
+\auto{448}{\detokenize{\共役複素数{性質C}[i]}}\par
+\共役複素数{性質C}[i]\par
+\auto{449}{\detokenize{\共役複素数{性質C}[b]}}
+\共役複素数{性質C}[b]\par
+\auto{450}{\detokenize{\共役複素数{性質D}[i]}}\par
+\共役複素数{性質D}[i]\par
+\auto{451}{\detokenize{\共役複素数{性質D}[b]}}
+\共役複素数{性質D}[b]
+\auto{452}{\detokenize{\共役複素数{性質E}[i]}}\par
+\共役複素数{性質E}[i]\par
+\auto{453}{\detokenize{\共役複素数{性質E}[b]}}
+\共役複素数{性質E}[b]
+\auto{454}{\detokenize{\共役複素数{性質F}[i]}}\par
+\共役複素数{性質F}[i]\par
+\auto{455}{\detokenize{\共役複素数{性質F}[b]}}
+\共役複素数{性質F}[b]
+\auto{456}{\detokenize{\共役複素数{性質G}[i]}}\par
+\共役複素数{性質G}[i]\par
+\auto{457}{\detokenize{\共役複素数{性質G}[b]}}
+\共役複素数{性質G}[b]
+\auto{442}{\detokenize{\共役複素数{証明}}}\par
+\共役複素数{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{複素数の絶対値}
+%\begin{description}
+\auto{458}{\detokenize{\複素数の絶対値{定義}[i]}}\par
+\複素数の絶対値{定義}[i]\par
+\auto{459}{\detokenize{\複素数の絶対値{定義}[b]}}
+\複素数の絶対値{定義}[b]
+\auto{460}{\detokenize{\複素数の絶対値{性質A}[i]}}\par
+\複素数の絶対値{性質A}[i]\par
+\auto{461}{\detokenize{\複素数の絶対値{性質A}[b]}}
+\複素数の絶対値{性質A}[b]
+\auto{462}{\detokenize{\複素数の絶対値{性質B}[i]}}\par
+\複素数の絶対値{性質B}[i]\par
+\auto{463}{\detokenize{\複素数の絶対値{性質B}[b]}}
+\複素数の絶対値{性質B}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{極形式}
+%\begin{description}
+\auto{464}{\detokenize{\極形式{定義}[i]}}\par
+\極形式{定義}[i]\par
+\auto{465}{\detokenize{\極形式{定義}[b]}}
+\極形式{定義}[b]\par
+\auto{466}{\detokenize{\極形式{性質A}[i]}}\par
+\極形式{性質A}[i]\par
+\auto{467}{\detokenize{\極形式{性質A}[b]}}
+\極形式{性質A}[b]
+\auto{468}{\detokenize{\極形式{性質B}[i]}}\par
+\極形式{性質B}[i]\par
+\auto{469}{\detokenize{\極形式{性質B}[b]}}
+\極形式{性質B}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{偏角}
+%\begin{description}
+\auto{470}{\detokenize{\偏角{定義}[i]}}\par
+\偏角{定義}[i]\par
+\auto{471}{\detokenize{\偏角{定義}[b]}}
+\偏角{定義}[b]\par
+\auto{472}{\detokenize{\偏角{性質A}[i]}}\par
+\偏角{性質A}[i]\par
+\auto{473}{\detokenize{\偏角{性質A}[b]}}
+\偏角{性質A}[b]\par
+\auto{474}{\detokenize{\偏角{性質B}[i]}}\par
+\偏角{性質B}[i]\par
+\auto{475}{\detokenize{\偏角{性質B}[b]}}
+\偏角{性質B}[b]
+\auto{476}{\detokenize{\偏角{性質C}[i]}}\par
+\偏角{性質C}[i]\par
+\auto{477}{\detokenize{\偏角{性質C}[b]}}
+\偏角{性質C}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{ドモアブルの定理}
+%\begin{description}
+\auto{478}{\detokenize{\ドモアブルの定理{公式}[i]}}\par
+\ドモアブルの定理{公式}[i]\par
+\auto{479}{\detokenize{\ドモアブルの定理{公式}[b]}}
+\ドモアブルの定理{公式}[b]
+\auto{478}{\detokenize{\ドモアブルの定理{証明}}}\par
+\ドモアブルの定理{証明}\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{放物線}
+%\begin{description}
+\auto{480}{\detokenize{\放物線{定義}[i]}}\par
+\放物線{定義}[i]\par
+\auto{481}{\detokenize{\放物線{定義}[b]}}
+\放物線{定義}[b]
+\auto{482}{\detokenize{\放物線{性質A}[i]}}\par
+\放物線{性質A}[i]\par
+\auto{483}{\detokenize{\放物線{性質A}[b]}}
+\放物線{性質A}[b]\par
+\auto{484}{\detokenize{\放物線{性質B}[i]}}\par
+\放物線{性質B}[i]\par
+\auto{485}{\detokenize{\放物線{性質B}[b]}}
+\放物線{性質B}[b]
+\auto{486}{\detokenize{\放物線{性質C}[i]}}\par
+\放物線{性質C}[i]\par
+\auto{487}{\detokenize{\放物線{性質C}[b]}}
+\放物線{性質C}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{楕円}
+%\begin{description}
+\auto{488}{\detokenize{\楕円{定義}[i]}}\par
+\楕円{定義}[i]\par
+\auto{489}{\detokenize{\楕円{定義}[b]}}
+\楕円{定義}[b]\par
+\auto{490}{\detokenize{\楕円{性質A}[i]}}\par
+\楕円{性質A}[i]\par
+\auto{491}{\detokenize{\楕円{性質A}[b]}}
+\楕円{性質A}[b]\par
+\auto{492}{\detokenize{\楕円{性質B}[i]}}\par
+\楕円{性質B}[i]\par
+\auto{493}{\detokenize{\楕円{性質B}[b]}}
+\楕円{性質B}[b]
+\auto{494}{\detokenize{\楕円{性質C}[i]}}\par
+\楕円{性質C}[i]\par
+\auto{495}{\detokenize{\楕円{性質C}[b]}}
+\楕円{性質C}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{双曲線}
+%\begin{description}
+\auto{496}{\detokenize{\双曲線{定義}[i]}}\par
+\双曲線{定義}[i]\par
+\auto{497}{\detokenize{\双曲線{定義}[b]}}
+\双曲線{定義}[b]\par
+\auto{498}{\detokenize{\双曲線{性質A}[i]}}\par
+\双曲線{性質A}[i]\par
+\auto{499}{\detokenize{\双曲線{性質A}[b]}}
+\双曲線{性質A}[b]\par
+\auto{500}{\detokenize{\双曲線{性質B}[i]}}\par
+\双曲線{性質B}[i]\par
+\auto{501}{\detokenize{\双曲線{性質B}[b]}}
+\双曲線{性質B}[b]
+\auto{502}{\detokenize{\双曲線{性質C}[i]}}\par
+\双曲線{性質C}[i]\par
+\auto{503}{\detokenize{\双曲線{性質C}[b]}}
+\双曲線{性質C}[b]
+\auto{504}{\detokenize{\双曲線{性質D}[i]}}\par
+\双曲線{性質D}[i]\par
+\auto{505}{\detokenize{\双曲線{性質D}[b]}}
+\双曲線{性質D}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{連続な関数}
+%\begin{description}
+\auto{506}{\detokenize{\連続な関数{公式}[i]}}\par
+\連続な関数{公式}[i]\par
+\auto{507}{\detokenize{\連続な関数{公式}[b]}}
+\連続な関数{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{中間値の定理}
+%\begin{description}
+\auto{508}{\detokenize{\中間値の定理{公式}[i]}}\par
+\中間値の定理{公式}[i]\par
+\auto{509}{\detokenize{\中間値の定理{公式}[b]}}
+\中間値の定理{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{平均値の定理}
+%\begin{description}
+\auto{510}{\detokenize{\平均値の定理{公式}[i]}}\par
+\平均値の定理{公式}[i]\par
+\auto{511}{\detokenize{\平均値の定理{公式}[b]}}
+\平均値の定理{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{微分}
+%\begin{description}
+\auto{512}{\detokenize{\微分{定義}[i]}}\par
+\微分{定義}[i]\par
+\auto{513}{\detokenize{\微分{定義}[b]}}
+\微分{定義}[b]
+\auto{514}{\detokenize{\微分{積の微分公式}[i]}}\par
+\微分{積の微分公式}[i]\par
+\auto{515}{\detokenize{\微分{積の微分公式}[b]}}
+\微分{積の微分公式}[b]
+\auto{516}{\detokenize{\微分{商の微分公式}[i]}}\par
+\微分{商の微分公式}[i]\par
+\auto{517}{\detokenize{\微分{商の微分公式}[b]}}
+\微分{商の微分公式}[b]
+\auto{518}{\detokenize{\微分{合成関数の微分}[i]}}\par
+\微分{合成関数の微分}[i]\par
+\auto{519}{\detokenize{\微分{合成関数の微分}[b]}}
+\微分{合成関数の微分}[b]
+\auto{520}{\detokenize{\微分{初等関数の微分公式A}[i]}}\par
+\微分{初等関数の微分公式A}[i]\par
+\auto{521}{\detokenize{\微分{初等関数の微分公式A}[b]}}
+\微分{初等関数の微分公式A}[b]
+\auto{522}{\detokenize{\微分{初等関数の微分公式B}[i]}}\par
+\微分{初等関数の微分公式B}[i]\par
+\auto{523}{\detokenize{\微分{初等関数の微分公式B}[b]}}
+\微分{初等関数の微分公式B}[b]
+\auto{524}{\detokenize{\微分{初等関数の微分公式C}[i]}}\par
+\微分{初等関数の微分公式C}[i]\par
+\auto{525}{\detokenize{\微分{初等関数の微分公式C}[b]}}
+\微分{初等関数の微分公式C}[b]
+\auto{526}{\detokenize{\微分{初等関数の微分公式D}[i]}}\par
+\微分{初等関数の微分公式D}[i]\par
+\auto{527}{\detokenize{\微分{初等関数の微分公式D}[b]}}
+\微分{初等関数の微分公式D}[b]
+\auto{528}{\detokenize{\微分{初等関数の微分公式E}[i]}}\par
+\微分{初等関数の微分公式E}[i]\par
+\auto{529}{\detokenize{\微分{初等関数の微分公式E}[b]}}
+\微分{初等関数の微分公式E}[b]
+\auto{530}{\detokenize{\微分{初等関数の微分公式F}[i]}}\par
+\微分{初等関数の微分公式F}[i]\par
+\auto{531}{\detokenize{\微分{初等関数の微分公式F}[b]}}
+\微分{初等関数の微分公式F}[b]
+\auto{532}{\detokenize{\微分{初等関数の微分公式G}[i]}}\par
+\微分{初等関数の微分公式G}[i]\par
+\auto{533}{\detokenize{\微分{初等関数の微分公式G}[b]}}
+\微分{初等関数の微分公式G}[b]
+\auto{534}{\detokenize{\微分{初等関数の微分公式H}[i]}}\par
+\微分{初等関数の微分公式H}[i]\par
+\auto{535}{\detokenize{\微分{初等関数の微分公式H}[b]}}
+\微分{初等関数の微分公式H}[b]
+\auto{536}{\detokenize{\微分{初等関数の微分公式I}[i]}}\par
+\微分{初等関数の微分公式I}[i]\par
+\auto{537}{\detokenize{\微分{初等関数の微分公式I}[b]}}
+\微分{初等関数の微分公式I}[b]
+\auto{512}{\detokenize{\微分{三角関数の微分公式の証明}[i]}}\par
+\微分{三角関数の微分公式の証明}[i]\par
+\auto{512}{\detokenize{\微分{対数関数の微分公式の証明}[i]}}\par
+\微分{対数関数の微分公式の証明}[i]\par
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{接線の方程式}
+%\begin{description}
+\auto{538}{\detokenize{\接線の方程式{公式}[i]}}\par
+\接線の方程式{公式}[i]\par
+\auto{539}{\detokenize{\接線の方程式{公式}[b]}}
+\接線の方程式{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{法線の方程式}
+%\begin{description}
+\auto{540}{\detokenize{\法線の方程式{公式}[i]}}\par
+\法線の方程式{公式}[i]\par
+\auto{541}{\detokenize{\法線の方程式{公式}[b]}}
+\法線の方程式{公式}[b]
+%\end{description
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{不定積分}
+%\begin{description}
+\auto{542}{\detokenize{\不定積分{定義}[i]}}\par
+\不定積分{定義}[i]\par
+\auto{543}{\detokenize{\不定積分{定義}[b]}}
+\不定積分{定義}[b]\par
+\auto{544}{\detokenize{\不定積分{置換積分}[i]}}\par
+\不定積分{置換積分}[i]\par
+\auto{545}{\detokenize{\不定積分{置換積分}[b]}}
+\不定積分{置換積分}[b]\par
+\auto{546}{\detokenize{\不定積分{部分積分}[i]}}\par
+\不定積分{部分積分}[i]\par
+\auto{547}{\detokenize{\不定積分{部分積分}[b]}}
+\不定積分{部分積分}[b]
+\auto{548}{\detokenize{\不定積分{初等関数の積分公式A}[i]}}\par
+\不定積分{初等関数の積分公式A}[i]\par
+\auto{549}{\detokenize{\不定積分{初等関数の積分公式A}[b]}}
+\不定積分{初等関数の積分公式A}[b]
+\auto{550}{\detokenize{\不定積分{初等関数の積分公式B}[i]}}\par
+\不定積分{初等関数の積分公式B}[i]\par
+\auto{551}{\detokenize{\不定積分{初等関数の積分公式B}[b]}}
+\不定積分{初等関数の積分公式B}[b]
+\auto{552}{\detokenize{\不定積分{初等関数の積分公式C}[i]}}\par
+\不定積分{初等関数の積分公式C}[i]\par
+\auto{553}{\detokenize{\不定積分{初等関数の積分公式C}[b]}}
+\不定積分{初等関数の積分公式C}[b]
+\auto{554}{\detokenize{\不定積分{初等関数の積分公式D}[i]}}\par
+\不定積分{初等関数の積分公式D}[i]\par
+\auto{555}{\detokenize{\不定積分{初等関数の積分公式D}[b]}}
+\不定積分{初等関数の積分公式D}[b]
+\auto{556}{\detokenize{\不定積分{初等関数の積分公式E}[i]}}\par
+\不定積分{初等関数の積分公式E}[i]\par
+\auto{557}{\detokenize{\不定積分{初等関数の積分公式E}[b]}}
+\不定積分{初等関数の積分公式E}[b]
+\auto{558}{\detokenize{\不定積分{初等関数の積分公式F}[i]}}\par
+\不定積分{初等関数の積分公式F}[i]\par
+\auto{559}{\detokenize{\不定積分{初等関数の積分公式F}[b]}}
+\不定積分{初等関数の積分公式F}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{定積分}
+%\begin{description}
+\auto{560}{\detokenize{\定積分{定義}[i]}}\par
+\定積分{定義}[i]\par
+\auto{561}{\detokenize{\定積分{定義}[b]}}
+\定積分{定義}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{区分求積法}
+%\begin{description}
+\auto{562}{\detokenize{\区分求積法{公式}[i]}}\par
+\区分求積法{公式}[i]\par
+\auto{563}{\detokenize{\区分求積法{公式}[b]}}
+\区分求積法{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+%\begin{simplesquarebox}{体積の積分}
+%\begin{description}
+\auto{564}{\detokenize{\体積の積分{公式}[i]}}\par
+\体積の積分{公式}[i]\par
+\auto{565}{\detokenize{\体積の積分{公式}[b]}}
+\体積の積分{公式}[b]
+%\end{description}
+%\end{simplesquarebox}
+
+\end{document} \ No newline at end of file
diff --git a/macros/luatex/latex/letgut/README.md b/macros/luatex/latex/letgut/README.md
index c37e469424..e38b789e5e 100644
--- a/macros/luatex/latex/letgut/README.md
+++ b/macros/luatex/latex/letgut/README.md
@@ -8,7 +8,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-09-02 v0.9.3
+2022-10-03 v0.9.4
Development
-----------
diff --git a/macros/luatex/latex/letgut/doc/letgut-banner-code.pdf b/macros/luatex/latex/letgut/doc/letgut-banner-code.pdf
index 89b12697a9..b232420d44 100644
--- a/macros/luatex/latex/letgut/doc/letgut-banner-code.pdf
+++ b/macros/luatex/latex/letgut/doc/letgut-banner-code.pdf
Binary files differ
diff --git a/macros/luatex/latex/letgut/doc/letgut-code.pdf b/macros/luatex/latex/letgut/doc/letgut-code.pdf
index ccb1faeda0..1e8e46f241 100644
--- a/macros/luatex/latex/letgut/doc/letgut-code.pdf
+++ b/macros/luatex/latex/letgut/doc/letgut-code.pdf
Binary files differ
diff --git a/macros/luatex/latex/letgut/doc/letgut.pdf b/macros/luatex/latex/letgut/doc/letgut.pdf
index e722117da8..23f2bf4091 100644
--- a/macros/luatex/latex/letgut/doc/letgut.pdf
+++ b/macros/luatex/latex/letgut/doc/letgut.pdf
Binary files differ
diff --git a/macros/luatex/latex/letgut/doc/letgut.tex b/macros/luatex/latex/letgut/doc/letgut.tex
index 5069d57237..91006a60ea 100644
--- a/macros/luatex/latex/letgut/doc/letgut.tex
+++ b/macros/luatex/latex/letgut/doc/letgut.tex
@@ -67,7 +67,7 @@
}
\author{Association GUTenberg}
\date{%
- Version 0.9.3 en date du \today%
+ Version 0.9.4 en date du \today%
\texorpdfstring{%
\\
\url{https://framagit.org/gutenberg/letgut}%
@@ -359,8 +359,8 @@ Les options de la \letgutcls{} peuvent être spécifiées de deux façons :
D'autres options peuvent être passées à la \letgutcls{}. Il est ainsi possible
de faire usage de langues du \package*{babel}, autres que le français et
l'anglais déjà chargées par \letgut{}, en les stipulant en option de
-\docAuxCommand{documentclass} et en les employant selon la syntaxe du
-\package*{babel}.
+\docAuxCommand{documentclass} et en les employant selon la syntaxe de ce
+package.
\section{Titre et titres courants}
\label{sec:titre}
@@ -540,7 +540,8 @@ Les articles de la \lettre{} sont émaillés de concepts (packages ou classes
récurrente. Aussi des commandes spécifiques sont-elles prévues de façon à en
faciliter la saisie et à en homogénéiser la mise en forme.
-\subsection{Packages et classes, logiciels, fichiers, locutions étrangères}
+\subsection{Packages et classes, logiciels, fichiers, locutions étrangères,
+ points de code Unicode}
\label{sec:classes-packages-et}
\begin{docCommands}
@@ -647,6 +648,16 @@ Attention aux \foreignloc{load-time options} !
Mais... \latinloc{errare humanum est}.
\end{ltx-code-result}
+\begin{docCommand}{Ucode}{\oarg{nom}\marg{point de code}}
+ Cette commande est conçue pour afficher le \meta{point de code} et
+ éventuellement le \meta{nom} d'un caractère Unicode sous la forme
+ \enquote{U+\meta{point de code} (\meta{\textsc{nom}})}.
+\end{docCommand}
+
+\begin{ltx-code-result}[title addon=Point de code d'un caractère Unicode,listing options app={deletekeywords={[3]{options}}}]
+Unicode a prévu le caractère \Ucode[symbole numéro]{2116}.
+\end{ltx-code-result}
+
\subsection{Termes et expressions}
\label{sec:termes}
@@ -654,8 +665,8 @@ Mais... \latinloc{errare humanum est}.
{
{ doc name = gutenberg },
{ doc name = gut },
- { doc name = lettre },
- { doc name = lettregut },
+ % { doc name = lettre },
+ % { doc name = lettregut },
{ doc name = cahier },
{ doc name = cahiers },
{ doc name = cahiergut },
@@ -678,23 +689,23 @@ Mais... \latinloc{errare humanum est}.
\centering
\begin{tabular}{ll}
\toprule
- \refCom{gutenberg} & \gutenberg \\
- \refCom{gut} & \gut \\
- \refCom{lettre} & \lettre \\
- \refCom{lettregut} & \lettregut \\
- \refCom{cahier} & \cahier \\
- \refCom{cahiergut} & \cahiergut \\
- \refCom{cahiers} & \cahiers \\
- \refCom{cahiersgut} & \cahiersgut \\ \midrule
- \refCom{letgut} & \letgut \\
- \refCom{letgutcls} & \letgutcls \\ \midrule
- \refCom{knuth} & \knuth \\
- \refCom{lamport} & \lamport \\
- \refCom{tl} & \tl \\
- \refCom{tugboat} & \tugboat \\ \midrule
- \refCom{linux} & \linux \\
- \refCom{macos} & \macos \\
- \refCom{windows} & \windows \\ \bottomrule
+ \refCom{gutenberg} & \gutenberg \\
+ \refCom{gut} & \gut \\
+ % \refCom{lettre} & \lettre \\
+ % \refCom{lettregut} & \lettregut \\
+ \refCom{cahier} & \cahier \\
+ \refCom{cahiergut} & \cahiergut \\
+ \refCom{cahiers} & \cahiers \\
+ \refCom{cahiersgut} & \cahiersgut \\ \midrule
+ \refCom{letgut} & \letgut \\
+ \refCom{letgutcls} & \letgutcls \\ \midrule
+ \refCom{knuth} & \knuth \\
+ \refCom{lamport} & \lamport \\
+ \refCom{tl} & \tl \\
+ \refCom{tugboat} & \tugboat \\ \midrule
+ \refCom{linux} & \linux \\
+ \refCom{macos} & \macos \\
+ \refCom{windows} & \windows \\ \bottomrule
\end{tabular}
\caption{Effet des commandes de raccourcis}
\label{tab:raccourcis}
@@ -717,6 +728,83 @@ de \docAuxCommand{section}%
(préfixe pas en grandes capitales).
\end{dbwarning}
+\begin{docCommands}[
+ doc new=2022-10-03,
+ doc name=lettrenumber,
+ doc parameter = \oarg{entier relatif signé}
+ ]
+ {
+ { },
+ { doc name=lettrenumber* },
+ }
+ \index{configuration}%
+ Cette commande affiche le numéro de la \lettre{} :
+ \begin{description}
+ \item[en cours] si l'argument optionnel n'est pas employé ;
+ \item[décalé de celui en cours] de l'\meta{entier relatif
+ signé}\footnote{\label{entier-signe}C.-à-d. un \enquote{plus} ou un
+ \enquote{moins} (\lstinline|+| ou \lstinline|-|) suivi d'un nombre
+ entier.} spécifié sinon.
+ \end{description}
+ En version étoilée, la chaîne \enquote{\no{}} précède ce numéro.
+\end{docCommands}
+
+\ExplSyntaxOn
+\int_gset:Nn \g__letgut_number_int {46}
+\ExplSyntaxOff
+
+\begin{ltx-code-result}[title addon=emploi de la commande \refCom{lettrenumber},listing options app={deletekeywords={[6]{cours,lettre}}}]
+Si le numéro de la \lettre{} en cours est 46, celui de la \lettre
+\begin{enumerate}
+\item en cours est \lettrenumber ;
+\item en cours est le \lettrenumber* ;
+\item suivante est \lettrenumber[+1] ;
+\item précédente est le \lettrenumber*[-1].
+\end{enumerate}
+\end{ltx-code-result}
+
+\begin{docCommands}[]
+ {
+ { doc name = lettre },
+ { doc name = lettre, doc new=2022-10-03, doc parameter = \oarg{argument optionnel} },
+ { doc name = lettre*, doc new=2022-10-03, doc parameter = \oarg{argument optionnel} },
+ { doc name = lettregut },
+ { doc name = lettregut, doc new=2022-10-03, doc parameter = \oarg{argument optionnel} },
+ { doc name = lettregut*, doc new=2022-10-03, doc parameter = \oarg{argument optionnel} },
+ }
+ %
+ Ces commandes affichent les chaînes de caractères respectivement
+ \enquote{\lettre} et \enquote{\lettregut}, le cas échéant suivies du numéro
+ de la \lettre{} :
+ \begin{description}
+ \item[en cours] si l'\meta{argument optionnel} est un point (⅛.⅛) ;
+ \item[décalé de celui en cours] de ce qui est spécifié si l'\meta{argument optionnel} est un
+ entier relatif signé\footref{entier-signe} ;
+ \item[spécifié] si l'\meta{argument optionnel} est autre.
+ \end{description}
+ En version étoilée, la chaîne \enquote{\no{}} précède le numéro (seulement si
+ l'\meta{argument optionnel} est employé).
+\end{docCommands}
+
+\begin{ltx-code-result}[title addon=emplois des commandes \refCom{lettre} et \refCom{lettregut},listing options app={deletekeywords={[6]{cours,lettre}}}]
+Si le numéro de la \lettre{} en cours est 46, on a :
+\begin{enumerate}
+\item \lettre
+\item \lettre[.]
+\item \lettre[+10]
+\item \lettre[-10]
+\item \lettre[43]
+\item \lettre[coucou]
+\item \lettre*[.]
+\item \lettre*[+10]
+\item \lettre*[-10]
+\item \lettre*[43]
+\item \lettre*
+\end{enumerate}
+On fait usage de ces commandes
+dans la \lettregut*[.].
+\end{ltx-code-result}
+
\subsection{Touches de clavier}
\label{sec:touches-de-clavier}
@@ -1741,7 +1829,7 @@ listing options app={deletekeywords={[4]{
\item commandes ;
\item environnements ;
\item clés ;
- \item valeurs de clé ;
+ \item valeurs de clé.
\end{itemize}
}%
% \renewcommand{\indexname}{Index des commandes}
diff --git a/macros/luatex/latex/letgut/doc/localconf.tex b/macros/luatex/latex/letgut/doc/localconf.tex
index 32eab1c21e..af0c9ecd5e 100644
--- a/macros/luatex/latex/letgut/doc/localconf.tex
+++ b/macros/luatex/latex/letgut/doc/localconf.tex
@@ -4,6 +4,8 @@
% Pour l'index
\usepackage[imakeidx]{xindex}
\makeindex
+\indexsetup{level=\title,toclevel=title,firstpagestyle=fancy}
+
% Commande sans laquelle les numéros de pages de l'index ne seraient pas des
% hyperliens
\DeclareHookRule{env/document/begin}{xindex}{before}{hyperref}
@@ -61,11 +63,22 @@
keywords~ bold=false
}%
+% Redéfinition de commande pour que les mentions des nouveautés et mises à jour
+% ne dépassent pas dans la marge
+\renewcommand{\tcbdocmarginnote}[2][]{%
+ \marginnote{%
+ \begin{tcolorbox}[enhanced~ jigsaw,size=fbox,boxrule=1pt,leftrule=0pt,rightrule=0pt,
+ arc=0pt,outer~ arc=1pt,boxsep=1pt,top=1pt,bottom=1pt,
+ nobeforeafter,width=\c__letgut_hoffset_dim-\marginparsep,
+ colframe=red!50!white,colback=red!25!yellow!5!white,fontupper=\scriptsize,
+ if~ odd~ page~ or~ oneside={flushright~ upper}{flushleft~ upper},
+ doc@marginnote,#1]#2\end{tcolorbox}}}
+
\renewcommand*{\tcbdocnew}[1]{
\scriptsize\sffamily\textcolor{green!50!black}{\bfseries
-Nouv. :} #1}
+Nouv. :~} #1}
\renewcommand*{\tcbdocupdated}[1]{\scriptsize\sffamily\textcolor{blue!75!black}{\bfseries
-\textsc{m.-à-j.} :} #1}
+\textsc{m.-à-j.} :~} #1}
%
\NewDocumentCommand \valinit { o }
@@ -133,6 +146,13 @@ Nouv. :} #1}
%
\ExplSyntaxOff
+% Nous voulons que les notes marginales soient toujours dans la marge de
+% gauche :
+\makeatletter
+\patchcmd{\@mn@@@marginnote}{\begingroup}{\begingroup\@twosidefalse}{}{\fail}
+\reversemarginpar
+\makeatother
+
%%% Local Variables:
%%% mode: latex
diff --git a/macros/luatex/latex/letgut/source/letgut.org b/macros/luatex/latex/letgut/source/letgut.org
index 2a8e9bbcc2..dd76cbe8d7 100644
--- a/macros/luatex/latex/letgut/source/letgut.org
+++ b/macros/luatex/latex/letgut/source/letgut.org
@@ -24,6 +24,9 @@
#+export_file_name: ../../../doc/lualatex/letgut/letgut-code
* Ctanomat file :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Ctanomatfile-2uoc55h0jlj0
+:END:
We create here a ~ctanomat~ description file in order to simplify the upload of
new versions of the class on CTAN.
@@ -51,7 +54,7 @@ new versions of the class on CTAN.
% This field contains the version of the package.
% The value is optional.
% The value is restricted to 32 characters.
- \version{0.9.3 2022-09-02}
+ \version{0.9.4 2022-10-03}
% -------------------------------------------------------------------------
% This field contains the name of the author(s).
% The value is optional.
@@ -128,11 +131,15 @@ new versions of the class on CTAN.
% The value is optional.
% The value is restricted to 8192 characters.
\begin{announcement}
- ## [0.9.3] - 2022-09-02
+ ## [0.9.4] - 2022-10-03
+
+ ### Added
+ - Command `\lettrenumber` that displays various Lettre numbers related to the one of the current issue.
+ - Options of `\lettre` and `\lettregut` that add various Lettre numbers related to the one of the current issue.
+ - Command `\Ucode` for points and names of Unicode characters.
### Changed
- - Local conf. file doesn't require anymore to start with \ExplSyntaxOff in some instances.
- - Documentation improved.
+ - Documentation completed and improved.
\end{announcement}
% -------------------------------------------------------------------------
% This field contains the one-liner for the package.
@@ -188,6 +195,9 @@ new versions of the class on CTAN.
#+end_src
* Changelog file :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Changelogfile-2buc55h0jlj0
+:END:
#+begin_src markdown :tangle ../../../doc/lualatex/letgut/CHANGELOG.md
# Changelog
@@ -199,6 +209,16 @@ new versions of the class on CTAN.
## [Unreleased]
+ ## [0.9.4] - 2022-10-03
+
+ ### Added
+ - Command `\lettrenumber` that displays various Lettre numbers related to the one of the current issue.
+ - Options of `\lettre` and `\lettregut` that add various Lettre numbers related to the one of the current issue.
+ - Command `\Ucode` for points and names of Unicode characters.
+
+ ### Changed
+ - Documentation improved.
+
## [0.9.3] - 2022-09-02
### Changed
@@ -245,6 +265,9 @@ new versions of the class on CTAN.
#+end_src
* Readme file :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Readmefile-8xuc55h0jlj0
+:END:
#+begin_src markdown :tangle ../../../doc/lualatex/letgut/README.md
letgut - Support for the newsletter “La Lettre GUTenberg”
@@ -257,7 +280,7 @@ to the newsletter “La Lettre GUTenberg” of GUTenberg, the French TeX User Gr
Release
-------
-2022-09-02 v0.9.3
+2022-10-03 v0.9.4
Development
-----------
@@ -266,6 +289,9 @@ https://framagit.org/gutenberg/letgut.
#+end_src
* How to :noexport:
+:PROPERTIES:
+:CUSTOM_ID: Howto-565g55h0jlj0
+:END:
We explain in a \file*{HOWTO.md} file how to:
@@ -315,6 +341,9 @@ the corresponding `.tex` file (which doesn't derive from an Org Mode file).
#+end_src
* Identification
+:PROPERTIES:
+:CUSTOM_ID: Identification-mn5g55h0jlj0
+:END:
#+begin_src latex
% This is file `letgut.cls',
@@ -346,6 +375,9 @@ the corresponding `.tex` file (which doesn't derive from an Org Mode file).
#+end_src
* Debugging
+:PROPERTIES:
+:CUSTOM_ID: Debugging-846g55h0jlj0
+:END:
#+begin_src latex
% \RequirePackage[
@@ -356,6 +388,9 @@ the corresponding `.tex` file (which doesn't derive from an Org Mode file).
#+end_src
* Implementation
+:PROPERTIES:
+:CUSTOM_ID: Implementation-vy6g55h0jlj0
+:END:
These document classes can only be used with \LaTeXe, so we make
sure that an appropriate message is displayed when another \TeX{}
@@ -387,14 +422,17 @@ Now, we can announce the class name and its version:
#+begin_src latex
\ProvidesExplClass{letgut}
- {2022-03-17}
- {0.9}
+ {2022-10-03}
+ {0.9.4}
{
Class for the newsletter “The GUTenberg Letter”
}
#+end_src
** Messages
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMessages-xg7g55h0jlj0
+:END:
We specify the messages come from a class, which is letgut (see
\url{https://github.com/latex3/latex3/issues/887}).
@@ -454,6 +492,9 @@ Some messages are declared for future use.
#+end_src
** Engine checking
+:PROPERTIES:
+:CUSTOM_ID: ImplementationEnginechecking-lz7g55h0jlj0
+:END:
#+begin_src latex
\sys_if_engine_luatex:F {
@@ -462,8 +503,14 @@ Some messages are declared for future use.
#+end_src
** Declarations
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarations-3j8g55h0jlj0
+:END:
*** Booleans
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsBooleans-s09g55h0jlj0
+:END:
- For testing the emptyness of the title.
#+begin_src latex
@@ -483,6 +530,9 @@ Some messages are declared for future use.
#+end_src
*** Dimensions
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsDimensions-gj9g55h0jlj0
+:END:
- Geometry of the document
#+begin_src latex
@@ -565,6 +615,9 @@ Some messages are declared for future use.
#+end_src
*** Skips (lengths with rubber components)
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsSkipslengthswithrubbercomponents-a4ag55h0jlj0
+:END:
The following skips, borrowed from the standard classes, are specified in
~ex~ unit, which depends on the font used and hence have to be specified
@@ -663,11 +716,17 @@ We close the ~\AddToHook{begindocument/before}~ argument.
*** Integers
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsIntegers-7pag55h0jlj0
+:END:
#+begin_src latex
\int_new:N \g__letgut_ltx_example_int
#+end_src
*** Strings
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsStrings-t7bg55h0jlj0
+:END:
#+begin_src latex
\str_new:N \g__letgut_label_ltx_example_str
@@ -681,85 +740,94 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
*** Token lists
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsTokenlists-grbg55h0jlj0
+:END:
**** Constant ones
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsTokenlistsConstantones-obcg55h0jlj0
+:END:
#+begin_src latex
- \tl_const:Nn \c__letgut_online_issn_tl {
- 2742-6149~ (version~ numérique)
- }
- \tl_const:Nn \c__letgut_paper_issn_tl {
- 1257–2217~ (version~ papier)
- }
- \tl_const:Nn \c__letgut_cahier_tl { \emph{ Cahier } }
- \tl_const:Nn \c__letgut_cahiers_tl {
- \c__letgut_cahier_tl \emph{ s }
- }
- \tl_const:Nn \c__letgut_gnu_linux_tl { \software{GNU/Linux} }
- \tl_const:Nn \c__letgut_macOS_tl { \software{macOS} }
- \tl_const:Nn \c__letgut_windows_tl { \software{Windows} }
- \tl_const:Nn \c__letgut_package_tl { package }
- \tl_const:Nn \c__letgut_class_tl { classe }
- \tl_const:Nn \c__letgut_file_tl { fichier }
- \tl_const:Nn \c__letgut_software_tl { logiciel }
- \tl_const:Nn \c__letgut_tugboat_tl { \emph{ TUGboat } }
- \tl_const:Nn \c__letgut_tex_live_tl {
- \hologo{ TeX }\nobreakspace Live
- }
- \tl_const:Nn \c__letgut_banner_file_tl { bandeau }
- \tl_const:Nn \c__letgut_editorial_file_tl { editorial }
- \tl_const:Nn \c__letgut_informations_gutenberg_file_tl {
- informations-gut
- }
- \tl_const:Nn \c__letgut_acronyms_file_tl { letgut-acronyms }
- \tl_const:Nn \c__letgut_local_config_file_tl { localconf }
- \tl_const:Nn \c__letgut_lstlanguage_file_tl { letgut-lstlang.sty }
- \tl_const:Nn \c__letgut_contents_name_tl { Sommaire }
- \tl_const:Nn \c__letgut_draftwatermark_text_tl {
- \textnormal{Brouillon}
- }
- \tl_const:Nn \c__letgut_membership_reminder_tl {
- {\LARGE
- \bfseries
- Avez-vous~ pensé~ à~ régler~ votre~ cotisation~ ?
- % \the\year~ ?
- \par
- \medskip
- }
- Si~ vous~ avez~ oublié,~ ce~ n'est~ ni~ trop~ tard~
- ni~ difficile~ :
- \par
- \url{https://www.gutenberg-asso.fr/?Adherer-en-ligne}
- \bool_if:NT \g__letgut_informations_bool {
- \file_if_exist:nT
- {./\c__letgut_informations_gutenberg_file_tl}{
- \par
- Voir~ aussi~ page~ \pageref{letgut_label_adhesions}.
- }
- }
- }
- \tl_const:Nn \c__letgut_missing_editorial_tl {
- Ne~ pas~ omettre~ l'éditorial~ !\\(à~ faire~ figurer~
- dans~ un~ \file*{\c__letgut_editorial_file_tl.tex}~
- dans~ le~ dossier~ courant)
- }
- \tl_const:Nn \c__letgut_missing_infomations_tl {
- Ne~ pas~ omettre~ les~ informations~ sur~
- \c__letgut_gutenberg_tl{}~ !\\(dans~ un~
- \file*{\c__letgut_informations_gutenberg_file_tl.tex}~
- situé~ soit~ dans~ le~ dossier~ courant, soit~ dans~ le~
- dossier~ parent)
- }
- \tl_const:Nn \c__letgut_default_alert_box_color_tl {
- gray9
- }
- \tl_const:Nn \c__letgut_default_allcolors_links_color_tl
- {
- teal!60!black
- }
+ \tl_const:Nn \c__letgut_online_issn_tl {
+ 2742-6149~ (version~ numérique)
+ }
+ \tl_const:Nn \c__letgut_paper_issn_tl {
+ 1257–2217~ (version~ papier)
+ }
+ \tl_const:Nn \c__letgut_cahier_tl { \emph{ Cahier } }
+ \tl_const:Nn \c__letgut_cahiers_tl {
+ \c__letgut_cahier_tl \emph{ s }
+ }
+ \tl_const:Nn \c__letgut_gnu_linux_tl { \software{GNU/Linux} }
+ \tl_const:Nn \c__letgut_macOS_tl { \software{macOS} }
+ \tl_const:Nn \c__letgut_windows_tl { \software{Windows} }
+ \tl_const:Nn \c__letgut_package_tl { package }
+ \tl_const:Nn \c__letgut_class_tl { classe }
+ \tl_const:Nn \c__letgut_file_tl { fichier }
+ \tl_const:Nn \c__letgut_software_tl { logiciel }
+ \tl_const:Nn \c__letgut_tugboat_tl { \emph{ TUGboat } }
+ \tl_const:Nn \c__letgut_tex_live_tl {
+ \hologo{ TeX }\nobreakspace Live
+ }
+ \tl_const:Nn \c__letgut_banner_file_tl { bandeau }
+ \tl_const:Nn \c__letgut_editorial_file_tl { editorial }
+ \tl_const:Nn \c__letgut_informations_gutenberg_file_tl {
+ informations-gut
+ }
+ \tl_const:Nn \c__letgut_acronyms_file_tl { letgut-acronyms }
+ \tl_const:Nn \c__letgut_local_config_file_tl { localconf }
+ \tl_const:Nn \c__letgut_lstlanguage_file_tl { letgut-lstlang.sty }
+ \tl_const:Nn \c__letgut_contents_name_tl { Sommaire }
+ \tl_const:Nn \c__letgut_draftwatermark_text_tl {
+ \textnormal{Brouillon}
+ }
+ \tl_const:Nn \c__letgut_membership_reminder_tl {
+ {\LARGE
+ \bfseries
+ Avez-vous~ pensé~ à~ régler~ votre~ cotisation~ ?
+ % \the\year~ ?
+ \par
+ \medskip
+ }
+ Si~ vous~ avez~ oublié,~ ce~ n'est~ ni~ trop~ tard~
+ ni~ difficile~ :
+ \par
+ \url{https://www.gutenberg-asso.fr/?Adherer-en-ligne}
+ \bool_if:NT \g__letgut_informations_bool {
+ \file_if_exist:nT
+ {./\c__letgut_informations_gutenberg_file_tl}{
+ \par
+ Voir~ aussi~ page~ \pageref{letgut_label_adhesions}.
+ }
+ }
+ }
+ \tl_const:Nn \c__letgut_missing_editorial_tl {
+ Ne~ pas~ omettre~ l'éditorial~ !\\(à~ faire~ figurer~
+ dans~ un~ \file*{\c__letgut_editorial_file_tl.tex}~
+ dans~ le~ dossier~ courant)
+ }
+ \tl_const:Nn \c__letgut_missing_infomations_tl {
+ Ne~ pas~ omettre~ les~ informations~ sur~
+ \c__letgut_gutenberg_tl{}~ !\\(dans~ un~
+ \file*{\c__letgut_informations_gutenberg_file_tl.tex}~
+ situé~ soit~ dans~ le~ dossier~ courant, soit~ dans~ le~
+ dossier~ parent)
+ }
+ \tl_const:Nn \c__letgut_default_alert_box_color_tl {
+ gray9
+ }
+ \tl_const:Nn \c__letgut_default_allcolors_links_color_tl
+ {
+ teal!60!black
+ }
#+end_src
**** Variables ones
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsTokenlistsVariablesones-pxcg55h0jlj0
+:END:
#+begin_src latex
\tl_new:N \g__letgut_mark_tl
@@ -772,6 +840,9 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
*** Comma separated lists
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsCommaseparatedlists-vhdg55h0jlj0
+:END:
#+begin_src latex
\clist_new:N \g__letgut_pagecolor_clist
@@ -782,12 +853,18 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
*** Sequences
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDeclarationsSequences-m2eg55h0jlj0
+:END:
#+begin_src latex
\seq_new:N \l__letgut_first_last_names_items_seq
#+end_src
** Class options
+:PROPERTIES:
+:CUSTOM_ID: ImplementationClassoptions-4meg55h0jlj0
+:END:
In order to provide class options, we load the \package{l3keys2e} which provides
\LaTeXe{} option processing using \LaTeX3 keys:
@@ -802,6 +879,9 @@ We define the 2 load time options for the target audience:
- ~for-authors~, (only) the author(s) of an article of the “Lettre”.
** Date handling
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDatehandling-c5fg55h0jlj0
+:END:
#+begin_src latex
\int_new:N \g__letgut_date_month_int
@@ -909,6 +989,9 @@ We define the 2 load time options for the target audience:
#+end_src
** Class and package loading
+:PROPERTIES:
+:CUSTOM_ID: ImplementationClassandpackageloading-aqfg55h0jlj0
+:END:
The \letgutcls{} is based on the ~article~ class. It is by default two sided
because of the alternating headers, and will by typeset with ~11pt~ as global
@@ -1087,6 +1170,9 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
** Settings for the loaded packages
+:PROPERTIES:
+:CUSTOM_ID: ImplementationSettingsfortheloadedpackages-cdgg55h0jlj0
+:END:
- We switch to the French typographic conventions for \package{siunitx}.
#+begin_src latex
@@ -1302,6 +1388,9 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
** Page color default settings
+:PROPERTIES:
+:CUSTOM_ID: ImplementationPagecolordefaultsettings-c1hg55h0jlj0
+:END:
By default, the page color will be the one linked to the ~screen~ option.
@@ -1312,6 +1401,9 @@ We close the ~\AddToHook{begindocument/before}~ argument.
#+end_src
** Options
+:PROPERTIES:
+:CUSTOM_ID: ImplementationOptions-imhg55h0jlj0
+:END:
We now define the options of the class:
@@ -1389,6 +1481,9 @@ We now define the options of the class:
#+end_src
** Headers
+:PROPERTIES:
+:CUSTOM_ID: ImplementationHeaders-78ig55h0jlj0
+:END:
We now define the headers.
@@ -1421,6 +1516,9 @@ We now define the headers.
#+end_src
** Marginal notes
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMarginalnotes-1uig55h0jlj0
+:END:
We want the marginal notes to be in the left margin.
#+begin_src latex
@@ -1428,6 +1526,9 @@ We now define the headers.
#+end_src
** Table of contents
+:PROPERTIES:
+:CUSTOM_ID: ImplementationTableofcontents-rhjg55h0jlj0
+:END:
The table of contents is customized:
@@ -1475,6 +1576,9 @@ We now define the headers.
#+end_src
** COMMENT Alerts
+:PROPERTIES:
+:CUSTOM_ID: ImplementationAlerts-o4kg55h0jlj0
+:END:
We create a box to display alerts.
@@ -1492,6 +1596,9 @@ We now define the headers.
#+end_src
** Geometry of the document
+:PROPERTIES:
+:CUSTOM_ID: ImplementationGeometryofthedocument-mqkg55h0jlj0
+:END:
#+begin_src latex
\geometry{
@@ -1509,6 +1616,9 @@ We now define the headers.
#+end_src
** Alert box
+:PROPERTIES:
+:CUSTOM_ID: ImplementationAlertbox-rblg55h0jlj0
+:END:
#+begin_src latex
\cs_new_protected:Nn \__letgut_alert_box:nn
@@ -1538,6 +1648,9 @@ We now define the headers.
#+end_src
** “Title” and marks
+:PROPERTIES:
+:CUSTOM_ID: ImplementationTitleandmarks-5ylg55h0jlj0
+:END:
We redefine ~\@title~ in order to make it empty. Hence we can later test if
the ~\title~ has been populated by the user (thanks to ~\title~) and, if so,
@@ -1590,6 +1703,9 @@ $>0$.
#+end_src
** First page handling
+:PROPERTIES:
+:CUSTOM_ID: ImplementationFirstpagehandling-nmmg55h0jlj0
+:END:
The first page is special as it should automatically contain certain elements:
- the banner,
@@ -1849,6 +1965,9 @@ Membership reminder.
#+end_src
** Last page handling
+:PROPERTIES:
+:CUSTOM_ID: ImplementationLastpagehandling-jbng55h0jlj0
+:END:
The last page is special: it should automatically contain some informations about
\gutenberg.
@@ -1903,8 +2022,14 @@ the author(s) of the “Lettre”.
#+end_src
** Sections, subsections, etc.
+:PROPERTIES:
+:CUSTOM_ID: ImplementationSectionssubsectionsetc-vzng55h0jlj0
+:END:
*** Numbering
+:PROPERTIES:
+:CUSTOM_ID: ImplementationSectionssubsectionsetcNumbering-lmog55h0jlj0
+:END:
We want all the sections to be unnumbered.
#+begin_src latex
@@ -1912,6 +2037,9 @@ the author(s) of the “Lettre”.
#+end_src
*** Format
+:PROPERTIES:
+:CUSTOM_ID: ImplementationSectionssubsectionsetcFormat-tapg55h0jlj0
+:END:
- We create the new level ~\title~ for the titles of the articles. They are
displayed uppercased.
@@ -2050,8 +2178,14 @@ the author(s) of the “Lettre”.
#+end_src
** Document commands
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommands-s1qg55h0jlj0
+:END:
*** Setup
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsSetup-roqg55h0jlj0
+:END:
We define the command that lets us specify the newsletter setup.
@@ -2062,6 +2196,9 @@ We define the command that lets us specify the newsletter setup.
#+end_src
*** For the rubric dedicated to new stuffs appeared on \acs{ctan}
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsFortherubricdedicatedtonewstuffsappearedonacsctan-jerg55h0jlj0
+:END:
- We create a new type of list, dedicated to the new stuffs (classes, packages,
etc.) on CTAN and similar to a description list (except the label provided in
@@ -2110,6 +2247,9 @@ We define the command that lets us specify the newsletter setup.
#+end_src
*** Persons and authors
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsPersonsandauthors-h5sg55h0jlj0
+:END:
For both persons and authors, the argument of:
- a single individual is given as:
@@ -2215,6 +2355,9 @@ For both persons and authors, the argument of:
#+end_src
*** Horizontal rule
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsHorizontalrule-8vsg55h0jlj0
+:END:
#+begin_src latex
\NewDocumentCommand {\separator} { } {
@@ -2226,6 +2369,9 @@ For both persons and authors, the argument of:
#+end_src
*** Alert boxes
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsAlertboxes-ijtg55h0jlj0
+:END:
#+begin_src latex
\colorlet {letgut_default_alert_box_color} {
@@ -2239,6 +2385,9 @@ For both persons and authors, the argument of:
#+end_src
*** Typesetting of packages, classes, files and softwares.
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsTypesettingofpackagesclassesfilesandsoftwares-09ug55h0jlj0
+:END:
The ~\c__letgut_httpsprefix_tl~ comes from:
@@ -2322,6 +2471,13 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
#+end_src
*** Names, expressions, etc.
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsNamesexpressionsetc-11vg55h0jlj0
+:END:
+
+We define here some commands for names and expressions that are likely to be
+frequently used. The more the users will resort to these commands, the less
+will be inconsistently typesetted these names and expressions.
#+begin_src latex
\NewExpandableDocumentCommand { \gutenberg } { } {
@@ -2330,12 +2486,12 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
\NewExpandableDocumentCommand { \gut } { } {
\c__letgut_gutenberg_tl
}
- \NewExpandableDocumentCommand { \lettre } { } {
- \c__letgut_Lettre_tl
- }
- \NewExpandableDocumentCommand { \lettregut } { } {
- \lettre \c_space_tl \gutenberg
- }
+ % \NewExpandableDocumentCommand { \lettre } { } {
+ % \c__letgut_Lettre_tl
+ % }
+ % \NewExpandableDocumentCommand { \lettregut } { } {
+ % \lettre \c_space_tl \gutenberg
+ % }
\NewExpandableDocumentCommand { \Cahier } { } {
\c__letgut_cahier_tl
}
@@ -2383,7 +2539,100 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
}
#+end_src
+We define the command ~\lettrenumber~ that displays the number of
+some \lettre{} issue:
+
+- preceeded by “\no” if used starred,
+- by default the current one,
+- possibly shifted w.r.t. the current one, depending on the first token of the
+ optional argument:
+ - if it is not ~.~, ~+~ nor ~-~: this argument (pretty useless: it is easier
+ to directly type the desired number),
+ - if it is ~.~: the current number of the \lettre (pretty useless: it is
+ easier to just not use the optional argument),
+ - if it is ~+~ or ~-~ followed by a number: the current number of the \lettre,
+ shifted by what is specified.
+
+#+begin_src latex
+ \cs_new_protected:Npn \__letgut_get_lettre_number:n #1
+ {
+ \tl_if_empty:nTF {#1}{
+ \int_use:N \g__letgut_number_int
+ }{
+ \tl_set:Nx \l_tmpa_tl {\tl_head:n { #1 }}
+ \tl_set:Nn \l_tmpb_tl { #1 }
+ \tl_case:NnF \l_tmpa_tl {
+ {\c__letgut_plus_tl} {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
+ {\c__letgut_minus_tl} {\int_eval:n {\g__letgut_number_int\l_tmpa_tl\tl_range:Nnn \l_tmpb_tl { 2 } { -1 }}}
+ {\c__letgut_dot_tl} {\int_use:N \g__letgut_number_int}
+ }
+ {\l_tmpb_tl}
+ }
+ }
+ \NewDocumentCommand { \lettrenumber } { s O{} } {
+ \IfBooleanT{#1}{
+ \no
+ }
+ \__letgut_get_lettre_number:n { #2 }
+ }
+#+end_src
+
+The “\lettre” and “\lettregut” expressions are treated separately since they are
+subject to variations, depending how they are used. The corresponding commands
+~\lettre~ and ~\lettregut~ used without star nor optional argument typeset
+resp. “\lettre” and “\lettregut”:
+
+- immediately followed by “\no” if used starred,
+- followed by some strings, depending on the first token of their optional
+ argument:
+ - if it is not ~.~, ~+~ nor ~-~: this argument,
+ - if it is ~.~: the current number of the \lettre,
+ - if it is ~+~ or ~-~ followed by a number: the current number of the \lettre,
+ shifted by what is specified.
+
+#+begin_src latex
+ \tl_const:Nn \c__letgut_plus_tl { + }
+ \tl_const:Nn \c__letgut_minus_tl { - }
+ \tl_const:Nn \c__letgut_dot_tl { . }
+ \cs_new_protected:Npn \__letgut_lettre:nnn #1 #2 #3
+ {
+ \c__letgut_Lettre_tl #2
+ \tl_if_empty:nF {#1}
+ {
+ #3
+ \c_space_tl
+ \__letgut_get_lettre_number:n {#1}
+ }
+ }
+ \NewDocumentCommand { \lettre } { s O{} } {
+ \IfBooleanTF{#1}{
+ \__letgut_lettre:nnn { #2 } { } {
+ \tl_if_empty:nF {#2}{
+ \c_space_tl\no
+ }
+ }
+ }{
+ \__letgut_lettre:nnn { #2 } { } { }
+ }
+ }
+ \NewDocumentCommand { \lettregut } { s O{} } {
+ \IfBooleanTF{#1}{
+ \__letgut_lettre:nnn { #2 } { \c_space_tl \c__letgut_gutenberg_tl } { \c_space_tl\no }
+ }{
+ \__letgut_lettre:nnn { #2 } { \c_space_tl \c__letgut_gutenberg_tl } { }
+ }
+ }
+#+end_src
+
+The ~\lettre~ and ~\lettregut~ can be used in titles, sections, etc. (involving
+bookmarks) but, because their last argument isn't a mandatory one, they would
+have an inconsistent behavior if used with their star or their optional
+argument (see https://tex.stackexchange.com/q/427557/18401).
+
*** Foreign locutions
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsForeignlocutions-1svg55h0jlj0
+:END:
#+begin_src latex
\cs_new_protected:Npn \__letgut_emphasis:n #1
@@ -2398,7 +2647,29 @@ https://github.com/latex3/hyperref/issues/188#issuecomment-826302843.
}
#+end_src
+*** Unicode code points
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsUnicodecodes-30lksfa0nlj0
+:END:
+
+#+begin_src latex
+ \cs_new_protected:Npn \__letgut_unicode_code:nn #1 #2
+ {
+ U+\bgroup\addfontfeature{Numbers={Lining,Proportional}}#2\egroup
+ \tl_if_empty:nF {#1}{
+ \c_space_tl
+ ({\addfontfeature{RawFeature={smcp,c2sc}}#1})
+ }
+ }
+ \NewDocumentCommand { \Ucode } { O{} m } {
+ \__letgut_unicode_code:nn {#1}{#2}
+ }
+#+end_src
+
*** Bookmarks handling
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsBookmarkshandling-zbxg55h0jlj0
+:END:
We disabling some commands when their arguments have to go to bookmarks.
@@ -2449,6 +2720,9 @@ We disabling some commands when their arguments have to go to bookmarks.
#+end_src
*** Acronyms
+:PROPERTIES:
+:CUSTOM_ID: ImplementationDocumentcommandsAcronyms-93yg55h0jlj0
+:END:
The following command let us define acronyms. The arguments are as follows:
- ~#1~: optional argument that let us override the default settings of this
@@ -2688,6 +2962,9 @@ is printed when used for the first time with ~\ac~).
#+end_src
** Bibliography
+:PROPERTIES:
+:CUSTOM_ID: ImplementationBibliography-ruyg55h0jlj0
+:END:
We want the ~\citeauthor~ command to display, not only the last, but the
full name of the authors.
@@ -2703,6 +2980,9 @@ full name of the authors.
#+end_src
** Book reviews
+:PROPERTIES:
+:CUSTOM_ID: ImplementationBookreviews-ekzg55h0jlj0
+:END:
#+begin_src latex
\tl_new:N \g__letgut_bookreview_frontcover_tl
@@ -2787,6 +3067,9 @@ extensions of the ~graphicx~ package.
#+end_src
** Keyboard keys
+:PROPERTIES:
+:CUSTOM_ID: ImplementationKeyboardkeys-qa0h55h0jlj0
+:END:
We make use of the Linux Biolinum Keyboard font and extend somehow the ~\LKey~
provided by the \package*{biolinum} in order to more easily write keyboard keys
@@ -2837,6 +3120,9 @@ for usual characters on French keyboards.
#+end_src
** Miscellanous
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanous-r11h55h0jlj0
+:END:
- We specify the possible hyphenations of \enquote{\gutenberg}.
#+begin_src latex
@@ -2844,6 +3130,9 @@ for usual characters on French keyboards.
#+end_src
*** ISSN
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousISSN-cr1h55h0jlj0
+:END:
#+begin_src latex
\cs_new_protected:Npn \__letgut_issn:
@@ -2860,6 +3149,9 @@ for usual characters on French keyboards.
#+end_src
*** Non selectable text
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousNonselectabletext-wh2h55h0jlj0
+:END:
We create a control sequence that makes its argument not selectable in the
PDF. This will be used notably for the line numbers of the listings and the
@@ -2872,6 +3164,9 @@ watermarks.
#+end_src
*** Typesetting of code, etc.
+:PROPERTIES:
+:CUSTOM_ID: ImplementationMiscellanousTypesettingofcodeetc-f83h55h0jlj0
+:END:
We provide a ~\meta~ macro that (poorly) mimics the one of the
\package*{doc}. It is added at the very end of the preamble since other
@@ -2898,6 +3193,9 @@ watermarks.
#+end_src
** Listings
+:PROPERTIES:
+:CUSTOM_ID: ImplementationListings-514h55h0jlj0
+:END:
We define a style for all the listings which resets all the \TeX{} control
sequences and keywords, and fix some defaults.
@@ -2980,6 +3278,9 @@ following characteristics:
#+end_src
*** LaTeX listings and examples
+:PROPERTIES:
+:CUSTOM_ID: ImplementationListingsLaTeXlistingsandexamples-xt4h55h0jlj0
+:END:
We define the colors for the syntax highlighting of LaTeX listings.
@@ -3405,6 +3706,9 @@ the `lstlang0.sty` or ~letgut-lstlang.sty~ files.
#+end_src
*** Terminal listings
+:PROPERTIES:
+:CUSTOM_ID: ImplementationListingsTerminallistings-fq5h55h0jlj0
+:END:
We define a command dedicated to terminal stdin and stdout.
@@ -3638,6 +3942,9 @@ We define some colors used in the terminal listings.
#+end_src
*** Unicode characters with positions above 256
+:PROPERTIES:
+:CUSTOM_ID: ImplementationListingsUnicodecharacterswithpositionsabove256-4l6h55h0jlj0
+:END:
Unicode characters with positions above 256 causes troubles in
listings. Here is a workaround for some of them (see
@@ -3663,6 +3970,9 @@ https://tex.stackexchange.com/a/25396).
#+end_src
** Local config file
+:PROPERTIES:
+:CUSTOM_ID: ImplementationLocalconfigfile-me7h55h0jlj0
+:END:
Each issue of the Lettre requires certain local configurations: configuration
dedicated to the issue in question, particular packages used in the articles,
@@ -3675,16 +3985,18 @@ at its beginning.
#+begin_src latex
\file_if_exist:nT {./\c__letgut_local_config_file_tl}{
- \use:n { \ExplSyntaxOff \file_input:n {./\c__letgut_local_config_file_tl} }
- \ExplSyntaxOn
+ \@pushfilename
+ \xdef\@currname{\c__letgut_local_config_file_tl}
+ \file_input:n {./\c__letgut_local_config_file_tl}
+ \@popfilename
}
#+end_src
-We don't want the book review entry types to be listed in the bibliography
-(they appears only thanks to the ~bookreview~ environment).
+ We don't want the book review entry types to be listed in the bibliography
+ (they appears only thanks to the ~bookreview~ environment).
#+begin_src latex
- \ExecuteBibliographyOptions[bookreview]{skipbib,skiplab}
+ \ExecuteBibliographyOptions[bookreview]{skipbib,skiplab}
#+end_src
#+begin_src latex
@@ -3692,6 +4004,9 @@ We don't want the book review entry types to be listed in the bibliography
#+end_src
* (biblatex) Data model
+:PROPERTIES:
+:CUSTOM_ID: biblatexDatamodel-vx7h55h0jlj0
+:END:
We give the (\package{biblatex}) data model that enriches the default one for
several purposes:
@@ -3699,7 +4014,7 @@ several purposes:
- the books advertisements.
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.lbx :exports both
-\ProvidesFile{letgut.lbx}[2022-09-02 v0.9.3 letgut localization]
+\ProvidesFile{letgut.lbx}[2022-10-03 v0.9.4 letgut localization]
\InheritBibliographyExtras{french}
\DeclareBibliographyStrings{
inherit = {french},
@@ -3713,7 +4028,7 @@ several purposes:
create the corresponding new entry).
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.dbx :exports both
- \ProvidesFile{letgut.dbx}[2022-09-02 v0.9.3 letgut data model macros]
+ \ProvidesFile{letgut.dbx}[2022-10-03 v0.9.4 letgut data model macros]
\DeclareBibliographyDriver{bookreview}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
@@ -3768,7 +4083,7 @@ several purposes:
We provide a specific ~biblatex~ citation style .
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut.cbx :exports both
- \ProvidesFile{letgut.cbx}[2022-09-02 v0.9.3 letgut base citation style]
+ \ProvidesFile{letgut.cbx}[2022-10-03 v0.9.4 letgut base citation style]
\RequireCitationStyle{numeric}
#+end_src
@@ -3798,8 +4113,14 @@ well...
#+end_src
* Provided files
+:PROPERTIES:
+:CUSTOM_ID: Providedfiles-g09h55h0jlj0
+:END:
** Example file of an issue of the newsletter
+:PROPERTIES:
+:CUSTOM_ID: ProvidedfilesExamplefileofanissueofthenewsletter-ak9h55h0jlj0
+:END:
#+begin_src latex :tangle ../../../doc/lualatex/letgut/lettre-example.tex :exports both
% Hey, Emacs! This is a -*- mode: latex -*- file!
@@ -3892,6 +4213,9 @@ well...
#+end_src
** Example of an editorial
+:PROPERTIES:
+:CUSTOM_ID: ProvidedfilesExampleofaneditorial-06ah55h0jlj0
+:END:
#+begin_src latex :tangle ../../../doc/lualatex/letgut/editorial.tex :exports both
Ceci est un intéressant éditorial de la \lettregut{}
@@ -3911,6 +4235,9 @@ well...
#+end_src
** Informations about \gutenberg
+:PROPERTIES:
+:CUSTOM_ID: ProvidedfilesInformationsabout\gutenberg-hqah55h0jlj0
+:END:
#+begin_src latex :tangle ../../../tex/lualatex/letgut/informations-gut.tex :exports both
% Hey, Emacs! This is a -*- mode: latex -*- file!
@@ -3945,7 +4272,7 @@ well...
\item[le site \hologo{TeX}nique de questions et réponses :]
\url{https://texnique.fr/}
\item[la foire aux questions :]
- \url{https://faq.gutenberg.eu.org}
+ \url{https://faq.gutenberg-asso.fr/}
\end{description}
\end{description}
%
@@ -4070,6 +4397,9 @@ well...
#+end_src
** Acronyms
+:PROPERTIES:
+:CUSTOM_ID: ProvidedfilesAcronyms-8cbh55h0jlj0
+:END:
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut-acronyms.tex :exports both
% Hey, Emacs! This is a -*- mode: latex -*- file!
@@ -4366,6 +4696,9 @@ well...
#+end_src
** Language driver file
+:PROPERTIES:
+:CUSTOM_ID: ProvidedfilesLanguagedriverfile-4cch55h0jlj0
+:END:
#+begin_src latex :tangle ../../../tex/lualatex/letgut/letgut-lstlang.sty :exports both
% \lst@definelanguage[...]{TeX}{%
@@ -4409,7 +4742,7 @@ well...
package,package*,class,class*,software,software*,file,file*,%
foreignloc,latinloc,gutenberg,gut,lettre,lettregut,Cahier,%
Cahiers,letgut,letgutcls,knuth,lamport,tugboat,item*,letgutacro,%
- separator,alertbox,terminal,inputarticle,%
+ separator,alertbox,terminal,inputarticle,lettrenumber,%
},%
% Keywords of class 1 : keywords that contain other characters (since
% of the same class as the ones specified as 'otherkeywords')