mirror of
https://github.com/TeachBooks/manual.git
synced 2026-11-12 22:35:51 +00:00
Remove obsolete instruction notebooks and update ToC
Deleted instructie.ipynb, instructie_2.ipynb, and lesoefeningen.ipynb from the book. Updated _toc.yml to remove references to these files and moved the Sphinx-Gated-Directives manual link to the correct section. Minor update to intro.md.
This commit is contained in:
parent
ab38930bb3
commit
a4cb6d7090
5 changed files with 1 additions and 3467 deletions
|
|
@ -2,12 +2,6 @@ format: jb-book
|
|||
root: intro
|
||||
|
||||
parts:
|
||||
- caption: test sphinx_gated_directives
|
||||
chapters:
|
||||
- external: https://github.com/TeachBooks/Sphinx-Gated-Directives/blob/main/MANUAL.md
|
||||
- file: instructie.ipynb
|
||||
- file: instructie_2.ipynb
|
||||
- file: lesoefeningen.ipynb
|
||||
- caption: Your First TeachBook!
|
||||
chapters:
|
||||
- file: intro/book.md
|
||||
|
|
@ -95,6 +89,7 @@ parts:
|
|||
- external: https://github.com/TeachBooks/Sphinx-ref-graph/blob/manual/README.md
|
||||
- external: https://github.com/TeachBooks/Sphinx-GitHub-Alerts/blob/main/README.md
|
||||
- external: https://github.com/TeachBooks/Sphinx-Metadata-Figure/blob/main/MANUAL.ipynb # BUMP
|
||||
- external: https://github.com/TeachBooks/Sphinx-Gated-Directives/blob/main/MANUAL.md
|
||||
- file: features/visuals.md
|
||||
sections:
|
||||
- external: https://github.com/TeachBooks/Sphinx-Accessibility/blob/manual/README.md
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
205
book/intro.md
205
book/intro.md
|
|
@ -1,210 +1,5 @@
|
|||
---
|
||||
file_format: mystnb
|
||||
kernelspec:
|
||||
name: python3
|
||||
---
|
||||
|
||||
# TeachBooks Manual
|
||||
|
||||
## Nesting inside of a start-directive
|
||||
|
||||
### Different directives
|
||||
|
||||
::::{prf:theorem-start} The parent theorem
|
||||
:label: parent-theorem-label
|
||||
|
||||
This is a parent theorem. This text is inside the parent theorem.
|
||||
|
||||
:::{prf:axiom-start} A child axiom
|
||||
:label: child-axiom-label
|
||||
|
||||
This is a child axiom. This text is inside the child directive.
|
||||
:::
|
||||
|
||||
This is text after the child-start, before the child-end, inside the parent theorem.
|
||||
|
||||
:::{prf:axiom-end}
|
||||
Text inside the end. This text will not be rendered.
|
||||
:::
|
||||
|
||||
Finally some text after the entire child, inside the theorem start.
|
||||
|
||||
::::
|
||||
|
||||
Some text after the entire parent theorem start, but before the parent theorem end.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
### Same directives
|
||||
|
||||
::::{prf:theorem-start} The parent theorem
|
||||
:label: parent-theorem-label2
|
||||
|
||||
This is a parent theorem. This text is inside the parent theorem.
|
||||
|
||||
:::{prf:theorem-start} A child theorem
|
||||
:label: child-theorem-label
|
||||
|
||||
This is a child theorem. This text is inside the child directive.
|
||||
:::
|
||||
|
||||
This is text after the child-start, before the child-end, inside the parent theorem.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
Finally some text after the entire child, inside the theorem start.
|
||||
|
||||
::::
|
||||
|
||||
Some text after the entire parent theorem start, but before the parent theorem end.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
## Nesting outside of a start-directive
|
||||
|
||||
### Different directives
|
||||
|
||||
::::{prf:theorem-start} The parent theorem
|
||||
:label: parent-theorem-label3
|
||||
|
||||
This is a parent theorem. This text is inside the parent theorem.
|
||||
::::
|
||||
|
||||
Some text outside the parent theorem start, before the child start directive.
|
||||
|
||||
:::{exercise-start} A child exercise
|
||||
:label: child-exercise-label2
|
||||
|
||||
This is a child exercise. This text is inside the child directive.
|
||||
:::
|
||||
|
||||
This is text after the child-start, before the child-end.
|
||||
|
||||
:::{exercise-end}
|
||||
:::
|
||||
|
||||
Finally some text after the entire child, outside the theorem start, before the end.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
:::{exercise} This is an exercise outside any theorem.
|
||||
:label: exercise-outside-theorem
|
||||
|
||||
Solve this exercise.
|
||||
:::
|
||||
|
||||
### Same directives
|
||||
|
||||
::::{prf:theorem-start} The parent theorem
|
||||
:label: parent-theorem-label4
|
||||
|
||||
This is a parent theorem. This text is inside the parent theorem.
|
||||
::::
|
||||
|
||||
Some text outside the parent theorem start, before the child start directive.
|
||||
|
||||
:::{prf:theorem-start} A child theorem
|
||||
:label: child-theorem-label5
|
||||
|
||||
This is a child theorem. This text is inside the child directive.
|
||||
:::
|
||||
|
||||
This is text after the child-start, before the child-end.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
Finally some text after the entire child, outside the theorem start, before the end.
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
### Nested exercise directives
|
||||
|
||||
:::{exercise-start} An outer exercise with an inner exercise between start and end
|
||||
:label: outer-exercise-label
|
||||
This is an outer exercise. This text is inside the outer exercise.
|
||||
:::
|
||||
|
||||
:::{exercise-start} An inner exercise
|
||||
:label: inner-exercise-label
|
||||
This is an inner exercise. This text is inside the inner exercise.
|
||||
:::
|
||||
This is text after the inner exercise start, before the inner exercise end.
|
||||
|
||||
:::{exercise-end}
|
||||
:::
|
||||
|
||||
Finally some text after the entire inner exercise, inside the outer exercise.
|
||||
|
||||
:::{exercise-end}
|
||||
:::
|
||||
|
||||
## Examples with code
|
||||
|
||||
### Block directive with also a figure
|
||||
|
||||
:::{prf:theorem-start} A title
|
||||
:label: theorem-label
|
||||
|
||||
This is a theorem. This text is inside the directive.
|
||||
:::
|
||||
|
||||
Now some extra text that should come inside the theorem.
|
||||
|
||||
:::{figure} images/sphinx-logo.svg
|
||||
:alt: Sphinx logo
|
||||
:width: 200px
|
||||
:align: center
|
||||
|
||||
Sphinx is a great tool for documentation! This figure should be inside the theorem.
|
||||
:::
|
||||
|
||||
```{code-cell} ipython3
|
||||
a = "This is some"
|
||||
b = "Python code"
|
||||
c = "that should be inside the theorem."
|
||||
print(f"{a} {b} {c}")
|
||||
```
|
||||
|
||||
:::{prf:theorem-end}
|
||||
:::
|
||||
|
||||
### Figure directive with nothing with also another figure
|
||||
|
||||
:::{figure-start} images/nothing.svg
|
||||
:name: figure-label
|
||||
:alt: Nothing
|
||||
:align: center
|
||||
|
||||
This is a figure. This text is inside the caption.
|
||||
:::
|
||||
|
||||
```{code-cell} ipython3
|
||||
a = "This is some"
|
||||
b = "Python code"
|
||||
c = "that should be inside the figure,"
|
||||
d = "above the caption."
|
||||
print(f"{a} {b} {c} {d}")
|
||||
```
|
||||
|
||||
Now some extra text that should come inside the figure, above the caption.
|
||||
|
||||
:::{figure} images/sphinx-logo.svg
|
||||
:alt: Sphinx logo
|
||||
:width: 200px
|
||||
:align: center
|
||||
|
||||
Sphinx is a great tool for documentation! This figure should be inside the parent figure, above the parent caption.
|
||||
:::
|
||||
|
||||
:::{figure-end}
|
||||
:::
|
||||
|
||||
This manual is primarily designed for and by teachers for use in education, but should be a useful resource for anyone interested in creating and collaborating on a TeachBook: a <a href="https://jupyterbook.org/v1/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="images/logo-wide.svg" alt="Jupyter book v1"> v1</a> using the <a href="https://www.sphinx-doc.org/"><img style="display:inline-block; height:1.5em; width:auto; transform:translate(0, -0.15em)" src="images/sphinx-logo.svg" alt="Sphinx logo"> Sphinx backend</a> with additional editing tools and book features. Our aim is to provide a simple way to start book-making for new users (it only takes 10 clicks!), ease the editing process for anyone, and provide additional features developed for education-purposes. We hope you find this resource useful and refer back to it often.
|
||||
|
||||
TeachBooks originated at Delft University of Technology in the Netherlands, and some of the material in this Manual reflects tools and resources specific to TU Delft. With the exception of a few tools for which we have educational licenses at Delft, everything in this Manual is open source. Despite this, we are happy to grow our open source community beyond Delft and welcome contributions from all users.
|
||||
|
|
|
|||
|
|
@ -1,316 +0,0 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "44f13f99",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"````{margin}\n",
|
||||
"```{attributiongrey} Bronvermelding\n",
|
||||
":class: attribution\n",
|
||||
"\n",
|
||||
"Deze oefening is aangepast van https://oit.tudelft.nl/CT1000/2024/week_3/session_1/intro.html\n",
|
||||
"\n",
|
||||
"% Figures from https://github.com/TUDelft-books/CT1000/blob/2025/book/week_3/session_1/intro_data/Tekening1.vsdx\n",
|
||||
"\n",
|
||||
"```\n",
|
||||
"```` \n",
|
||||
"\n",
|
||||
"# Begeleide oefening 1_oud\n",
|
||||
"\n",
|
||||
"Gegeven is de volgende constructie:\n",
|
||||
"\n",
|
||||
"```{figure} lesoefeningen_data/figure2.svg\n",
|
||||
"---\n",
|
||||
"align: center\n",
|
||||
"---\n",
|
||||
"Constructie, $EI = 6400 \\ \\rm{kNm^2}$\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::::{exercise}\n",
|
||||
":label: ODE_3_1\n",
|
||||
":nonumber: true\n",
|
||||
"\n",
|
||||
"Bepaal de segmenten en teken de vrijlichaamsschema's.\n",
|
||||
"\n",
|
||||
"```{h5p} https://tudelft.h5p.com/content/1292630673009985967/embed\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::::\n",
|
||||
"\n",
|
||||
"% solution_start\n",
|
||||
"\n",
|
||||
"::::{admonition} Solution\n",
|
||||
":class: solution, dropdown\n",
|
||||
"\n",
|
||||
"$q_z = -12 \\cdot x + 0$\n",
|
||||
"\n",
|
||||
"::::\n",
|
||||
"\n",
|
||||
"% solution_end\n",
|
||||
"\n",
|
||||
":::::{exercise}\n",
|
||||
":label: ODE_3_2\n",
|
||||
":nonumber: true\n",
|
||||
"\n",
|
||||
"Bepaal de relaties van de krachtsgrootheden en verplaatsingen.\n",
|
||||
"\n",
|
||||
"```{h5p} https://tudelft.h5p.com/content/1292630677998825487/embed\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::::\n",
|
||||
"\n",
|
||||
"% solution_start\n",
|
||||
"\n",
|
||||
"::::{admonition} Solution\n",
|
||||
":class: solution, dropdown\n",
|
||||
"\n",
|
||||
"- $ w \\left( 0\\right) = 0 $\n",
|
||||
"- $ M \\left( 0\\right) = 0$\n",
|
||||
"- $ w \\left( 8\\right) = 0$\n",
|
||||
"- $ \\varphi \\left( 8 \\right) = 0$\n",
|
||||
"\n",
|
||||
"::::\n",
|
||||
"\n",
|
||||
"% solution_end\n",
|
||||
"\n",
|
||||
":::::{exercise-start}\n",
|
||||
":label: ODE_3_3\n",
|
||||
":nonumber: true\n",
|
||||
"\n",
|
||||
"Los de integratieconstanten op. Je kan gebruik maken van de volgende code cellen. (Klik op {fa}`rocket` --> {guilabel}`Live Code` om live python code te activeren op deze pagina.)\n",
|
||||
"\n",
|
||||
"```{h5p} https://tudelft.h5p.com/content/1292630704310133517/embed\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::::\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "91dc34be",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"\n",
|
||||
"A = np.array([\n",
|
||||
" [ , , , ],\n",
|
||||
" [ , , , ],\n",
|
||||
" [ , , , ],\n",
|
||||
" [ , , , ],\n",
|
||||
"])\n",
|
||||
"\n",
|
||||
"b = np.array([\n",
|
||||
" ,\n",
|
||||
" ,\n",
|
||||
" ,\n",
|
||||
" ,\n",
|
||||
"])\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "ce6f1792",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"np.linalg.solve(A,b)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "9e466305",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import sympy as sym\n",
|
||||
"sym.init_printing()\n",
|
||||
"\n",
|
||||
"x = sym.symbols('x')\n",
|
||||
"\n",
|
||||
"q = \n",
|
||||
"EI = 6400\n",
|
||||
"\n",
|
||||
"C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n",
|
||||
"\n",
|
||||
"V = -sym.integrate(q, x) + C_1\n",
|
||||
"M = sym.integrate(V, x) + C_2\n",
|
||||
"kappa = M/EI\n",
|
||||
"phi = sym.integrate(kappa, x) + C_3\n",
|
||||
"w = -sym.integrate(phi, x) + C_4\n",
|
||||
"\n",
|
||||
"eq1 = sym.Eq(w.subs(x,0), )\n",
|
||||
"eq2 = sym.Eq( .subs(x,0), )\n",
|
||||
"eq3 = sym.Eq(w.subs(x,8), )\n",
|
||||
"eq4 = sym.Eq( .subs(x,8),0)\n",
|
||||
"\n",
|
||||
"sol = sym.solve([eq1,eq2,eq3,eq4],(C_1,C_2,C_3,C_4))\n",
|
||||
"for k, v in sol.items():\n",
|
||||
" print(f\"{k} = {v} ≈ {v.evalf()}\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "94270e4f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
":::::{exercise-end}\n",
|
||||
":::::\n",
|
||||
"\n",
|
||||
"% solution_start\n",
|
||||
"\n",
|
||||
"::::{solution-start} ODE_3_3\n",
|
||||
":class: dropdown\n",
|
||||
"::::\n",
|
||||
"\n",
|
||||
"$ w = - \\cfrac{x^{5}}{10} + \\cfrac{64 x^{3}}{5} - \\cfrac{2048 x}{5} = - 0.1 x^{5} + 12.8 x^{3} - 409.6 x $\n",
|
||||
"% solution_end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"id": "f46e4efd",
|
||||
"metadata": {
|
||||
"tags": [
|
||||
"solution"
|
||||
]
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"\n",
|
||||
"A = np.array([\n",
|
||||
" [ 0 , 0 , 0,1],\n",
|
||||
" [ 0 , 1 , 0,0],\n",
|
||||
" [-1/75 ,-1/200,-8,1],\n",
|
||||
" [ 1/200, 1/800, 1,0],\n",
|
||||
"])\n",
|
||||
"\n",
|
||||
"b = np.array([\n",
|
||||
" 0,\n",
|
||||
" 0,\n",
|
||||
" 64/125,\n",
|
||||
" -8/25,\n",
|
||||
"])\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"id": "300cd851",
|
||||
"metadata": {
|
||||
"tags": [
|
||||
"solution"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"array([-7.68e+01, 0.00e+00, 6.40e-02, 0.00e+00])"
|
||||
]
|
||||
},
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"np.linalg.solve(A,b)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"id": "96516034",
|
||||
"metadata": {
|
||||
"tags": [
|
||||
"solution"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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",
|
||||
"text/latex": [
|
||||
"$\\displaystyle - 0.1 x^{5} + 12.8 x^{3} - 409.6 x$"
|
||||
],
|
||||
"text/plain": [
|
||||
" 5 3 \n",
|
||||
"- 0.1⋅x + 12.8⋅x - 409.6⋅x"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import sympy as sym\n",
|
||||
"sym.init_printing()\n",
|
||||
"\n",
|
||||
"x = sym.symbols('x')\n",
|
||||
"\n",
|
||||
"q = -12 * x\n",
|
||||
"EI = 6400\n",
|
||||
"\n",
|
||||
"C_1, C_2, C_3, C_4 = sym.symbols('C_1 C_2 C_3 C_4')\n",
|
||||
"\n",
|
||||
"V = -sym.integrate(q, x) + C_1\n",
|
||||
"M = sym.integrate(V, x) + C_2\n",
|
||||
"kappa = M/EI\n",
|
||||
"phi = sym.integrate(kappa, x) + C_3\n",
|
||||
"w = -sym.integrate(phi, x) + C_4\n",
|
||||
"\n",
|
||||
"eq1 = sym.Eq(w.subs(x,0),0)\n",
|
||||
"eq2 = sym.Eq(M.subs(x,0),0)\n",
|
||||
"eq3 = sym.Eq(w.subs(x,8),0)\n",
|
||||
"eq4 = sym.Eq(phi.subs(x,8),0)\n",
|
||||
"\n",
|
||||
"sol = sym.solve([eq1,eq2,eq3,eq4],(C_1,C_2,C_3,C_4))\n",
|
||||
"\n",
|
||||
"display((w.subs(sol)*EI).evalf())\n",
|
||||
"\n",
|
||||
"A,b = sym.linear_eq_to_matrix((eq1,eq2,eq3,eq4), (C_1,C_2,C_3,C_4))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b3a4c9d4",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"% solution_start\n",
|
||||
"\n",
|
||||
"::::{solution-end}\n",
|
||||
"::::\n",
|
||||
"\n",
|
||||
"% solution_end"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "base",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.11"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue