diff --git a/.github/workflows/serve-ximera.yml b/.github/workflows/serve-ximera.yml new file mode 100644 index 000000000..e3be5dfdc --- /dev/null +++ b/.github/workflows/serve-ximera.yml @@ -0,0 +1,96 @@ +name: Ximera Workflow + +on: + push: + +jobs: + build-ximera: + name: Build and preview Ximera Courses + runs-on: ubuntu-latest + + permissions: + actions: read + contents: read + packages: write + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # full + + - name: Setup cache + uses: actions/cache@v4 + with: + path: | + **/*.html + **/*.pdf + **/*.svg + **/*.aux + **/*.xref + **/*.toc + !xmPictures/** + !.git/** + !.github/** + key: ximera-${{ github.ref_name }}-${{ github.sha }} + restore-keys: | + ximera-${{ github.ref_name }}- + ximera- + + + - name: Build and publish Ximera courses + env: + GPG_KEY: ${{ secrets.GPG_KEY }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + XIMERA_URL: ${{ vars.XIMERA_URL }} + XIMERA_NAME: ${{ vars.XIMERA_NAME }}${{ github.ref_name }} + run: | + ls -alrt + # git config --global --add safe.directory "$(pwd)" + # export COMMAND=./xmScripts/xmlatex.test + # ./xmScripts/xmlatex ghaction calculus*.tex || echo NOK + ./xmScripts/xmlatex ghaction --compile draft.html || echo NOK + echo "✅ Published to $XIMERA_URL$XIMERA_NAME " >> $GITHUB_STEP_SUMMARY + + - name: Setup ximera serve cache (only .git) + id: serve-cache + uses: actions/cache/save@v4 + with: + path: | + xmScripts/** + .git/** + key: ximeraSERVE-${{ github.ref_name }}-${{ github.sha }} + + + publish-ximera: + name: Publish Ximera Courses + needs: build-ximera # Waits for the build job to complete + runs-on: ubuntu-latest + environment: production + steps: + + + - name: Restore ximera serve cache (only .git) + id: serve-cache-restore + uses: actions/cache/restore@v4 + with: + fail-on-cache-miss: true + path: | + xmScripts/** + .git/** + key: ximeraSERVE-${{ github.ref_name }}-${{ github.sha }} + + - name: Serve + env: + GPG_KEY: ${{ secrets.GPG_KEY }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + XIMERA_URL: ${{ vars.XIMERA_URL }} + XIMERA_NAME: ${{ vars.XIMERA_NAME }} + run: | + ./xmScripts/xmlatex name + ./xmScripts/xmlatex serve -f --compile draft.html # NOTE: -f should not be needed ... + # ./xmScripts/xmlatex serve calculus*.tex -f # NOTE: -f should not be needed ... + echo "✅ Published to $XIMERA_URL$XIMERA_NAME " >> $GITHUB_STEP_SUMMARY + + + diff --git a/antiderivatives/digInBasicAntiderivatives.tex b/antiderivatives/digInBasicAntiderivatives.tex index 9fe8af5a3..b6312ab6f 100644 --- a/antiderivatives/digInBasicAntiderivatives.tex +++ b/antiderivatives/digInBasicAntiderivatives.tex @@ -559,7 +559,7 @@ \section{Differential equations} \end{question} \begin{remark} We can directly check that any function $f(x)=Ce^x$ is a solution to our differential equation $f'(x)=f(x)$. Could there be any others? It turns out that these are the \textit{only} solutions. But showing that we didn't miss any is a bit tricky. - \begin{expandable} + \begin{expandable}{explanation}{} \begin{explanation} Well, suppose we have some mysterious function $f$ and all we know is that $f'(x)=f(x)$. Let's define a new function $g(x)=f(x)/e^x$. Since our denominator is never 0, the quotient rule tells us that \[ diff --git a/computationsForGraphingFunctions/breakGround.tex b/computationsForGraphingFunctions/breakGround.tex index 96be4694f..402ad5c97 100644 --- a/computationsForGraphingFunctions/breakGround.tex +++ b/computationsForGraphingFunctions/breakGround.tex @@ -56,7 +56,7 @@ \item Compute $f'$ and $f''$. \item Analyze end behavior: as $x \to \pm \infty$, what happens to the graph of $f$? Does it have horizontal asymptotes, increase or decrease without bound, or have some other kind of behavior? \end{enumerate} - \item Use either the first or second derivative test to identify local extrema and/or + Use either the first or second derivative test to identify local extrema and/or find the intervals where your function is increasing/decreasing. In what order should we take these steps? For example, one must compute $f'$ before computing $f''$. Also, one must compute $f'$ before diff --git a/continuityOfFunctionsOfSeveralVariables/digInContinuity.tex b/continuityOfFunctionsOfSeveralVariables/digInContinuity.tex index adf607d3a..80d2d35d0 100644 --- a/continuityOfFunctionsOfSeveralVariables/digInContinuity.tex +++ b/continuityOfFunctionsOfSeveralVariables/digInContinuity.tex @@ -103,7 +103,7 @@ \] A set that is not bounded is \dfn{unbounded}. \end{itemize} - \item Given a set $S$, we denote the \dfn{boundary} of $S$ by + Given a set $S$, we denote the \dfn{boundary} of $S$ by $\partial S$. \end{definition} diff --git a/coverArt/calculus1Cover/starsRed.xbb b/coverArt/calculus1Cover/starsRed.xbb new file mode 100644 index 000000000..8f46052ef --- /dev/null +++ b/coverArt/calculus1Cover/starsRed.xbb @@ -0,0 +1,6 @@ +%%Title: coverArt/calculus1Cover/starsRed.jpg +%%Creator: extractbb 20240407 +%%BoundingBox: 0 0 5184 3456 +%%HiResBoundingBox: 0.000000 0.000000 5184.000000 3456.000000 +%%CreationDate: Thu Feb 6 21:02:28 2025 + diff --git a/coverArt/calculus2Cover/starsBlue.xbb b/coverArt/calculus2Cover/starsBlue.xbb new file mode 100644 index 000000000..eaed206bc --- /dev/null +++ b/coverArt/calculus2Cover/starsBlue.xbb @@ -0,0 +1,6 @@ +%%Title: coverArt/calculus2Cover/starsBlue.jpg +%%Creator: extractbb 20240407 +%%BoundingBox: 0 0 5184 3456 +%%HiResBoundingBox: 0.000000 0.000000 5184.000000 3456.000000 +%%CreationDate: Thu Feb 6 21:02:28 2025 + diff --git a/coverArt/calculus3Cover/starsTurquoise.xbb b/coverArt/calculus3Cover/starsTurquoise.xbb new file mode 100644 index 000000000..43e4bc60c --- /dev/null +++ b/coverArt/calculus3Cover/starsTurquoise.xbb @@ -0,0 +1,6 @@ +%%Title: coverArt/calculus3Cover/starsTurquoise.jpg +%%Creator: extractbb 20240407 +%%BoundingBox: 0 0 5184 3456 +%%HiResBoundingBox: 0.000000 0.000000 5184.000000 3456.000000 +%%CreationDate: Thu Feb 6 21:02:28 2025 + diff --git a/coverArt/calculusA2Cover/starsGreen.xbb b/coverArt/calculusA2Cover/starsGreen.xbb new file mode 100644 index 000000000..9c2bb3027 --- /dev/null +++ b/coverArt/calculusA2Cover/starsGreen.xbb @@ -0,0 +1,6 @@ +%%Title: coverArt/calculusA2Cover/starsGreen.jpg +%%Creator: extractbb 20240407 +%%BoundingBox: 0 0 5184 3456 +%%HiResBoundingBox: 0.000000 0.000000 5184.000000 3456.000000 +%%CreationDate: Thu Feb 6 21:02:28 2025 + diff --git a/coverArt/calculusECover/starsAmber.xbb b/coverArt/calculusECover/starsAmber.xbb new file mode 100644 index 000000000..ef0a7ffa0 --- /dev/null +++ b/coverArt/calculusECover/starsAmber.xbb @@ -0,0 +1,6 @@ +%%Title: coverArt/calculusECover/starsAmber.jpg +%%Creator: extractbb 20240407 +%%BoundingBox: 0 0 5184 3456 +%%HiResBoundingBox: 0.000000 0.000000 5184.000000 3456.000000 +%%CreationDate: Thu Feb 6 21:02:28 2025 + diff --git a/definitionOfTheDerivative/exercises/averageVelocityInterval1.tex b/definitionOfTheDerivative/exercises/averageVelocityInterval1.tex index c3b9096e4..19cba85b9 100644 --- a/definitionOfTheDerivative/exercises/averageVelocityInterval1.tex +++ b/definitionOfTheDerivative/exercises/averageVelocityInterval1.tex @@ -50,9 +50,9 @@ \begin{exercise} The average velocity of the object on the interval $[0,2]$ is -\[ +$$ v_{\text{av}} = \answer{0}\text{m/s.} -\] +$$ \end{exercise} \end{exercise} diff --git a/definitionOfTheDerivative/exercises/secantLineTangentLine1.tex b/definitionOfTheDerivative/exercises/secantLineTangentLine1.tex index 080255757..5644bc28c 100644 --- a/definitionOfTheDerivative/exercises/secantLineTangentLine1.tex +++ b/definitionOfTheDerivative/exercises/secantLineTangentLine1.tex @@ -11,9 +11,9 @@ \begin{exercise} An object is moving along a horizontal line. Its position in feet is given by -\[ +$$ s(t) = t^2 - 2 -\] +$$ where $0\leq t\leq 5$ is in seconds. Consider the points on the line below. @@ -47,26 +47,26 @@ \begin{exercise} The average velocity of the object on the interval $[1,3]$ is -\[ +$$ v_{\text{av}} = \answer{4}\text{ft/s.} -\] +$$ The average velocity of the object on the interval $[1,t]$ for $t>1$ is -\[ +$$ v_{\text{av}} = \answer{t+1}\text{ft/s.} -\] +$$ The average velocity of the object on the interval $[t,1]$ for $0