From 62443ea9ca5060ecfcb383e92c87386bde92c022 Mon Sep 17 00:00:00 2001 From: Oliver Kopp Date: Thu, 16 Jan 2025 23:07:51 +0100 Subject: [PATCH] Refine ltg (#330) --- .github/generate-workflows.py | 1 - .../check-acmart-both-bibtex-2024-false.yml | 1 - .../check-acmart-both-bibtex-2024-true.yml | 1 - ...heck-acmart-pdflatex-bibtex-2024-false.yml | 1 - ...check-acmart-pdflatex-bibtex-2024-true.yml | 1 - .github/workflows/check-docker.yml | 137 ++++++++++++++++++ ...ieee-conference-both-bibtex-2024-false.yml | 1 - ...-ieee-conference-both-bibtex-2024-true.yml | 1 - ...-conference-pdflatex-bibtex-2024-false.yml | 1 - ...e-conference-pdflatex-bibtex-2024-true.yml | 1 - ...ck-ieee-journal-both-bibtex-2024-false.yml | 1 - ...eck-ieee-journal-both-bibtex-2024-true.yml | 1 - ...eee-journal-pdflatex-bibtex-2024-false.yml | 1 - ...ieee-journal-pdflatex-bibtex-2024-true.yml | 1 - ...ieee-peerreview-both-bibtex-2024-false.yml | 1 - ...-ieee-peerreview-both-bibtex-2024-true.yml | 1 - ...-peerreview-pdflatex-bibtex-2024-false.yml | 1 - ...e-peerreview-pdflatex-bibtex-2024-true.yml | 1 - .../check-lncs-both-bibtex-2024-false.yml | 1 - .../check-lncs-both-bibtex-2024-true.yml | 1 - .../check-lncs-pdflatex-bibtex-2024-false.yml | 1 - .../check-lncs-pdflatex-bibtex-2024-true.yml | 1 - CHANGELOG.md | 4 + generators/app/templates/Dockerfile.dante | 1 + generators/app/templates/Dockerfile.iot | 2 +- generators/app/templates/Dockerfile.reitzig | 4 +- generators/app/templates/font.preamble.en.tex | 8 + 27 files changed, 153 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/check-docker.yml diff --git a/.github/generate-workflows.py b/.github/generate-workflows.py index 77e24b64..2c73e41d 100755 --- a/.github/generate-workflows.py +++ b/.github/generate-workflows.py @@ -135,7 +135,6 @@ def stable_id(documentclass, ieeevariant, latexcompiler, bibtextool, texlive, la cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out """) ymlmiktex = open("workflows/miktex-check-{}.yml".format(dashedPartMiktex), "w+", encoding="utf-8") ymlmiktex.write("name: MiKTeX {}\n".format(dashedPartMiktex)) diff --git a/.github/workflows/check-acmart-both-bibtex-2024-false.yml b/.github/workflows/check-acmart-both-bibtex-2024-false.yml index febaea30..41084ea7 100644 --- a/.github/workflows/check-acmart-both-bibtex-2024-false.yml +++ b/.github/workflows/check-acmart-both-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-acmart-both-bibtex-2024-true.yml b/.github/workflows/check-acmart-both-bibtex-2024-true.yml index ad26f32a..eeeca09e 100644 --- a/.github/workflows/check-acmart-both-bibtex-2024-true.yml +++ b/.github/workflows/check-acmart-both-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-acmart-pdflatex-bibtex-2024-false.yml b/.github/workflows/check-acmart-pdflatex-bibtex-2024-false.yml index 9537a526..d3098264 100644 --- a/.github/workflows/check-acmart-pdflatex-bibtex-2024-false.yml +++ b/.github/workflows/check-acmart-pdflatex-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-acmart-pdflatex-bibtex-2024-true.yml b/.github/workflows/check-acmart-pdflatex-bibtex-2024-true.yml index 5ea2ccd1..a2f22f99 100644 --- a/.github/workflows/check-acmart-pdflatex-bibtex-2024-true.yml +++ b/.github/workflows/check-acmart-pdflatex-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-docker.yml b/.github/workflows/check-docker.yml new file mode 100644 index 00000000..5f43c257 --- /dev/null +++ b/.github/workflows/check-docker.yml @@ -0,0 +1,137 @@ +name: Check docker images +on: + schedule: + - cron: "0 6 * * 5" + push: + branches: + - main + paths-ignore: + - '.editorconfig' + - '.eslintignore' + - '.gitpod.dockerfile' + - '.gitpod.yml' + - '.gitattributes' + - '.gitignore' + - '.markdownlint.yml' + - 'CHANGELOG.md' + - 'CONTRIBUTING.md' + - 'generate-texlivefile.sh' + - 'LICENSE' + - 'README.md' + - 'setup-do.sh' + - 'user-data.sh' + - 'docs/**' + - '.vscode/**' + pull_request: + branches: + - main + paths-ignore: + - '.editorconfig' + - '.eslintignore' + - '.gitpod.dockerfile' + - '.gitpod.yml' + - '.gitattributes' + - '.gitignore' + - '.markdownlint.yml' + - 'CHANGELOG.md' + - 'CONTRIBUTING.md' + - 'generate-texlivefile.sh' + - 'LICENSE' + - 'README.md' + - 'setup-do.sh' + - 'user-data.sh' + - 'docs/**' + - '.vscode/**' + merge_group: +concurrency: + group: ${{ github.workflow }}-${{ github.actor_id }} + cancel-in-progress: true +jobs: + check-reitzig: + name: Create reitzig + runs-on: ubuntu-latest + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - name: Set up Git repository + uses: actions/checkout@v4 + with: + path: 'code' + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + cache-dependency-path: 'code/package-lock.json' + - run: npm ci + working-directory: ${{ github.workspace }}/code + - run: npm install -g yo + - name: Create lncs-reitzig + run: yo ${{ github.workspace }}/code/generators/app/index.js --documentclass=lncs --papersize=a4 --latexcompiler=pdflatex --bibtextool=bibtex --texlive=2024 --docker=reitzig --overleaf=no --lang=en --font=default --listings=minted --enquotes=csquotes --tweakouterquote=babel --todo=pdfcomment --examples=true --howtotext=true + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + driver-opts: network=host + - name: Build Docker image + uses: docker/build-push-action@v6 + with: + push: true + provenance: false + context: . + tags: localhost:5000/name/app:latest + - run: mkdir /tmp/out + - name: Build paper.tex + run: docker run -v $(pwd):/work/src -v /tmp/out:/work/out localhost:5000/name/app:latest work "latexmk paper.tex" + - uses: actions/upload-artifact@v4 + with: + name: result-reitzig + path: /tmp/out + check-iot-dante: + runs-on: ubuntu-latest + name: Create ${{ matrix.docker }} + strategy: + matrix: + docker: ["iot", "dante"] + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - name: Set up Git repository + uses: actions/checkout@v4 + with: + path: 'code' + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + cache-dependency-path: 'code/package-lock.json' + - run: npm ci + working-directory: ${{ github.workspace }}/code + - run: npm install -g yo + - name: Create lncs-${{ matrix.docker }} + run: yo ${{ github.workspace }}/code/generators/app/index.js --documentclass=lncs --papersize=a4 --latexcompiler=pdflatex --bibtextool=bibtex --texlive=2024 --docker=${{ matrix.docker }} --overleaf=no --lang=en --font=default --listings=minted --enquotes=csquotes --tweakouterquote=babel --todo=pdfcomment --examples=true --howtotext=true + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + driver-opts: network=host + - name: Build Docker image + uses: docker/build-push-action@v6 + with: + push: true + provenance: false + context: . + tags: localhost:5000/name/app:latest + - name: Build paper.tex + run: docker run -v $(pwd):/workdir localhost:5000/name/app:latest latexmk paper.tex + - uses: actions/upload-artifact@v4 + with: + name: result-${{ matrix.docker }} + path: paper.pdf diff --git a/.github/workflows/check-ieee-conference-both-bibtex-2024-false.yml b/.github/workflows/check-ieee-conference-both-bibtex-2024-false.yml index b35ebf02..5ab6b982 100644 --- a/.github/workflows/check-ieee-conference-both-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-conference-both-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-conference-both-bibtex-2024-true.yml b/.github/workflows/check-ieee-conference-both-bibtex-2024-true.yml index c3098cd5..f202cf1c 100644 --- a/.github/workflows/check-ieee-conference-both-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-conference-both-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-false.yml b/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-false.yml index e97b3e9e..ee6edb5c 100644 --- a/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-true.yml b/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-true.yml index c5318b50..e60a60c5 100644 --- a/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-conference-pdflatex-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-journal-both-bibtex-2024-false.yml b/.github/workflows/check-ieee-journal-both-bibtex-2024-false.yml index 2125e137..fc421365 100644 --- a/.github/workflows/check-ieee-journal-both-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-journal-both-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-journal-both-bibtex-2024-true.yml b/.github/workflows/check-ieee-journal-both-bibtex-2024-true.yml index cc7aa9ee..1cad6990 100644 --- a/.github/workflows/check-ieee-journal-both-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-journal-both-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-false.yml b/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-false.yml index e8e63890..758d5ce4 100644 --- a/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-true.yml b/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-true.yml index d496a979..4f775328 100644 --- a/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-journal-pdflatex-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-peerreview-both-bibtex-2024-false.yml b/.github/workflows/check-ieee-peerreview-both-bibtex-2024-false.yml index fa444abd..d7729c92 100644 --- a/.github/workflows/check-ieee-peerreview-both-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-peerreview-both-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-peerreview-both-bibtex-2024-true.yml b/.github/workflows/check-ieee-peerreview-both-bibtex-2024-true.yml index a4a49807..713444f7 100644 --- a/.github/workflows/check-ieee-peerreview-both-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-peerreview-both-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-false.yml b/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-false.yml index 1b88234d..e1820066 100644 --- a/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-false.yml +++ b/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-true.yml b/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-true.yml index ad955184..532d1acc 100644 --- a/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-true.yml +++ b/.github/workflows/check-ieee-peerreview-pdflatex-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-lncs-both-bibtex-2024-false.yml b/.github/workflows/check-lncs-both-bibtex-2024-false.yml index 1a34eef1..54aa9709 100644 --- a/.github/workflows/check-lncs-both-bibtex-2024-false.yml +++ b/.github/workflows/check-lncs-both-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-lncs-both-bibtex-2024-true.yml b/.github/workflows/check-lncs-both-bibtex-2024-true.yml index 051673c0..9f23d9e6 100644 --- a/.github/workflows/check-lncs-both-bibtex-2024-true.yml +++ b/.github/workflows/check-lncs-both-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-lncs-pdflatex-bibtex-2024-false.yml b/.github/workflows/check-lncs-pdflatex-bibtex-2024-false.yml index 604734b8..4c634a5a 100644 --- a/.github/workflows/check-lncs-pdflatex-bibtex-2024-false.yml +++ b/.github/workflows/check-lncs-pdflatex-bibtex-2024-false.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/.github/workflows/check-lncs-pdflatex-bibtex-2024-true.yml b/.github/workflows/check-lncs-pdflatex-bibtex-2024-true.yml index 11a6f4e4..d4a2b5fb 100644 --- a/.github/workflows/check-lncs-pdflatex-bibtex-2024-true.yml +++ b/.github/workflows/check-lncs-pdflatex-bibtex-2024-true.yml @@ -59,7 +59,6 @@ jobs: cache: 'npm' - run: npm ci - run: npm install -g yo - - run: mkdir /tmp/out - name: Summary table heading run: | TABLE='| documentclass | latexcompiler | bibtextool | texlive | lang | font | listing | enquote | tweakouterquote | todo | example | howtotext | link |' diff --git a/CHANGELOG.md b/CHANGELOG.md index f8ab1f3c..005fb1d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ We use dots as date separators, because it is supported in `package.json` (and d ## [Unreleased] +### Fixed + +- Fixed tag for iot Docker image. + ## [2025.1.14] ### Added diff --git a/generators/app/templates/Dockerfile.dante b/generators/app/templates/Dockerfile.dante index 7f64199c..e6ece683 100644 --- a/generators/app/templates/Dockerfile.dante +++ b/generators/app/templates/Dockerfile.dante @@ -1,4 +1,5 @@ FROM danteev/texlive:<% switch (texlive) { + case 2024: %>edge<% break; case 2023: %>edge<% break; // 2022 does not exist - see https://github.com/dante-ev/docker-texlive/blob/main/CHANGELOG.md case 2021: %>2021-D<% break; diff --git a/generators/app/templates/Dockerfile.iot b/generators/app/templates/Dockerfile.iot index dda9acc7..5a9aa89a 100644 --- a/generators/app/templates/Dockerfile.iot +++ b/generators/app/templates/Dockerfile.iot @@ -1,5 +1,5 @@ FROM registry.gitlab.com/islandoftex/images/texlive:<% switch (texlive) { - case 2024: %>latest-latest<% break; + case 2024: %>latest<% break; case 2023: %>TL2023-historic<% break; } -%> diff --git a/generators/app/templates/Dockerfile.reitzig b/generators/app/templates/Dockerfile.reitzig index 6a637a0c..25e94f32 100644 --- a/generators/app/templates/Dockerfile.reitzig +++ b/generators/app/templates/Dockerfile.reitzig @@ -17,9 +17,9 @@ RUN tlmgr update --self --repository https://mirrors.ctan.org/systems/texlive/tl COPY Texlivefile /work/src RUN xargs tlmgr install --repository https://mirrors.ctan.org/systems/texlive/tlnet/<%= texlive %>/tlnet-final < "/work/src/Texlivefile" &&\ <% } else { -%> -RUN tlmgr update --self --repository https://ctan.org/tex-archive/systems/texlive/tlnet +RUN tlmgr update --self --repository https://mirror.typesetting.eu COPY Texlivefile /work/src -RUN xargs tlmgr install --repository https://ctan.org/tex-archive/systems/texlive/tlnet < "/work/src/Texlivefile" &&\ +RUN xargs tlmgr install --repository https://mirror.typesetting.eu < "/work/src/Texlivefile" &&\ <% } -%> sha256sum "/work/src/Texlivefile" > "/work/tmp/Texlivefile.sha" &&\ # make <% if (bibtextool == "biblatex") { %>biber, <% } %>latexmk and texlogsieve available diff --git a/generators/app/templates/font.preamble.en.tex b/generators/app/templates/font.preamble.en.tex index 405fbc18..4f8478ed 100644 --- a/generators/app/templates/font.preamble.en.tex +++ b/generators/app/templates/font.preamble.en.tex @@ -1,3 +1,11 @@ +%% !!! If you change the font, be sure that words such as "workflow" can +%% !!! still be copied from the PDF. If this is not the case, you have +%% !!! to use glyphtounicode. See comment at cmap package. +%% +%% Background: "workflow" contains "fl" which is a ligature, which in turn +%% is rendered as one character in the PDF and needs to be split +%% whily copying. + <% if (documentclass == 'ustutt') { -%> %% Clashes with mathdesign % \PreventPackageFromLoading{amssymb,amsfont}