From 61789e9b40a49daf2cc2dcee50c25f9c2041e706 Mon Sep 17 00:00:00 2001 From: Sina Atalay Date: Sun, 18 Feb 2024 17:19:59 +0100 Subject: [PATCH] update tests --- .../LICENSE | 2 +- .../dummytheme/EducationEntry.j2.tex | 0 .../dummytheme/ExperienceEntry.j2.tex | 0 .../dummytheme/Header.j2.tex | 0 .../dummytheme/NormalEntry.j2.tex | 0 .../dummytheme/OneLineEntry.j2.tex | 0 .../dummytheme/Preamble.j2.tex | 0 .../dummytheme/PublicationEntry.j2.tex | 0 .../dummytheme/SectionBeginning.j2.tex | 0 .../dummytheme/SectionEnding.j2.tex | 0 .../dummytheme/TextEntry.j2.tex | 0 .../dummytheme/__init__.py | 7 + .../dummytheme/theme_auxiliary_file.cls} | 0 .../theme_auxiliary_file.cls} | 0 .../sb2nov_empty}/LICENSE | 2 +- .../sb2nov_filled/LICENSE | 22 + .../classic_empty/John_Doe_CV.md | 4 + .../classic_filled/John_Doe_CV.md | 66 ++ .../moderncv_empty/John_Doe_CV.md | 4 + .../moderncv_filled/John_Doe_CV.md | 66 ++ .../sb2nov_empty/John_Doe_CV.md | 4 + .../sb2nov_filled/John_Doe_CV.md | 66 ++ .../John_Doe_CV_PASTETOGRAMMARLY.html | 1 + .../John_Doe_CV_PASTETOGRAMMARLY.html | 41 + .../John_Doe_CV_PASTETOGRAMMARLY.html | 1 + .../John_Doe_CV_PASTETOGRAMMARLY.html | 41 + .../John_Doe_CV_PASTETOGRAMMARLY.html | 1 + .../John_Doe_CV_PASTETOGRAMMARLY.html | 41 + tests/conftest.py | 66 +- tests/reference_files/John_Doe_CV.yaml | 5 - .../classic_theme_full/classic_theme_CV.aux | 9 - .../classic_theme_full/classic_theme_CV.log | 515 ------------ .../classic_theme_full/classic_theme_CV.pdf | Bin 203400 -> 0 bytes .../classic_theme_full/classic_theme_CV.tex | 132 ---- .../auixiliary_directory/dummy_theme_file.cls | 301 ------- .../dummytheme/dummy_theme_file.cls | 301 ------- .../auixiliary_directory/dummy_theme_file.cls | 301 ------- .../dummy_theme_file.cls | 301 ------- .../latex_files/classic_theme_CV.tex | 132 ---- .../latex_files/mcdowell_theme_CV.tex | 50 -- .../latex_files/moderncv_theme_CV.tex | 70 -- .../classic_theme_CV.md | 4 - .../classic_theme_CV.md_PASTETOGRAMMARLY.html | 1 - .../mcdowell_theme_CV.md | 4 - ...mcdowell_theme_CV.md_PASTETOGRAMMARLY.html | 1 - .../moderncv_theme_CV.md | 4 - ...moderncv_theme_CV.md_PASTETOGRAMMARLY.html | 1 - .../mcdowellcv.cls | 301 ------- .../mcdowell_theme_full/mcdowell_theme_CV.aux | 5 - .../mcdowell_theme_full/mcdowell_theme_CV.log | 458 ----------- .../mcdowell_theme_full/mcdowell_theme_CV.pdf | Bin 10780 -> 0 bytes .../mcdowell_theme_full/mcdowell_theme_CV.tex | 50 -- .../mcdowell_theme_full/mcdowellcv.cls | 301 ------- .../moderncv_theme_full/moderncv_theme_CV.aux | 9 - .../moderncv_theme_full/moderncv_theme_CV.log | 737 ------------------ .../moderncv_theme_full/moderncv_theme_CV.pdf | Bin 18856 -> 0 bytes .../moderncv_theme_full/moderncv_theme_CV.tex | 70 -- tests/test_cli.py | 16 +- tests/test_data_models.py | 88 ++- tests/test_renderer.py | 310 ++++++-- 60 files changed, 744 insertions(+), 4168 deletions(-) rename tests/{reference_files/mcdowell_theme_auxiliary_files => auxiliary_files/test_copy_theme_files_to_output_directory}/LICENSE (96%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/EducationEntry.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/ExperienceEntry.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/Header.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/NormalEntry.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/OneLineEntry.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/Preamble.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/PublicationEntry.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/SectionBeginning.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/SectionEnding.j2.tex (100%) rename tests/{reference_files => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme}/dummytheme/TextEntry.j2.tex (100%) create mode 100644 tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/__init__.py rename tests/{reference_files/mcdowell_theme_full/mcdowell_theme_CV.out => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/theme_auxiliary_file.cls} (100%) rename tests/{reference_files/moderncv_theme_full/moderncv_theme_CV.out => auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/theme_auxiliary_files/theme_auxiliary_file.cls} (100%) rename tests/{reference_files/mcdowell_theme_full => auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_empty}/LICENSE (96%) create mode 100644 tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_filled/LICENSE create mode 100644 tests/auxiliary_files/test_generate_markdown_file/classic_empty/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_generate_markdown_file/classic_filled/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_generate_markdown_file/moderncv_empty/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_generate_markdown_file/moderncv_filled/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_generate_markdown_file/sb2nov_empty/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_generate_markdown_file/sb2nov_filled/John_Doe_CV.md create mode 100644 tests/auxiliary_files/test_markdown_to_html/classic_empty/John_Doe_CV_PASTETOGRAMMARLY.html create mode 100644 tests/auxiliary_files/test_markdown_to_html/classic_filled/John_Doe_CV_PASTETOGRAMMARLY.html create mode 100644 tests/auxiliary_files/test_markdown_to_html/moderncv_empty/John_Doe_CV_PASTETOGRAMMARLY.html create mode 100644 tests/auxiliary_files/test_markdown_to_html/moderncv_filled/John_Doe_CV_PASTETOGRAMMARLY.html create mode 100644 tests/auxiliary_files/test_markdown_to_html/sb2nov_empty/John_Doe_CV_PASTETOGRAMMARLY.html create mode 100644 tests/auxiliary_files/test_markdown_to_html/sb2nov_filled/John_Doe_CV_PASTETOGRAMMARLY.html delete mode 100644 tests/reference_files/John_Doe_CV.yaml delete mode 100644 tests/reference_files/classic_theme_full/classic_theme_CV.aux delete mode 100644 tests/reference_files/classic_theme_full/classic_theme_CV.log delete mode 100644 tests/reference_files/classic_theme_full/classic_theme_CV.pdf delete mode 100644 tests/reference_files/classic_theme_full/classic_theme_CV.tex delete mode 100644 tests/reference_files/dummytheme/auixiliary_directory/dummy_theme_file.cls delete mode 100644 tests/reference_files/dummytheme/dummy_theme_file.cls delete mode 100644 tests/reference_files/dummytheme_theme_auxiliary_files/auixiliary_directory/dummy_theme_file.cls delete mode 100644 tests/reference_files/dummytheme_theme_auxiliary_files/dummy_theme_file.cls delete mode 100644 tests/reference_files/latex_files/classic_theme_CV.tex delete mode 100644 tests/reference_files/latex_files/mcdowell_theme_CV.tex delete mode 100644 tests/reference_files/latex_files/moderncv_theme_CV.tex delete mode 100644 tests/reference_files/markdown_and_html_files/classic_theme_CV.md delete mode 100644 tests/reference_files/markdown_and_html_files/classic_theme_CV.md_PASTETOGRAMMARLY.html delete mode 100644 tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md delete mode 100644 tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md_PASTETOGRAMMARLY.html delete mode 100644 tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md delete mode 100644 tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md_PASTETOGRAMMARLY.html delete mode 100644 tests/reference_files/mcdowell_theme_auxiliary_files/mcdowellcv.cls delete mode 100644 tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.aux delete mode 100644 tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.log delete mode 100644 tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.pdf delete mode 100644 tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.tex delete mode 100644 tests/reference_files/mcdowell_theme_full/mcdowellcv.cls delete mode 100644 tests/reference_files/moderncv_theme_full/moderncv_theme_CV.aux delete mode 100644 tests/reference_files/moderncv_theme_full/moderncv_theme_CV.log delete mode 100644 tests/reference_files/moderncv_theme_full/moderncv_theme_CV.pdf delete mode 100644 tests/reference_files/moderncv_theme_full/moderncv_theme_CV.tex diff --git a/tests/reference_files/mcdowell_theme_auxiliary_files/LICENSE b/tests/auxiliary_files/test_copy_theme_files_to_output_directory/LICENSE similarity index 96% rename from tests/reference_files/mcdowell_theme_auxiliary_files/LICENSE rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory/LICENSE index 9d349e1..4d4f656 100644 --- a/tests/reference_files/mcdowell_theme_auxiliary_files/LICENSE +++ b/tests/auxiliary_files/test_copy_theme_files_to_output_directory/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 Daniil Belyakov +Copyright (c) 2015 Sourabh Bajaj Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tests/reference_files/dummytheme/EducationEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/EducationEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/EducationEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/EducationEntry.j2.tex diff --git a/tests/reference_files/dummytheme/ExperienceEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/ExperienceEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/ExperienceEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/ExperienceEntry.j2.tex diff --git a/tests/reference_files/dummytheme/Header.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/Header.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/Header.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/Header.j2.tex diff --git a/tests/reference_files/dummytheme/NormalEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/NormalEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/NormalEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/NormalEntry.j2.tex diff --git a/tests/reference_files/dummytheme/OneLineEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/OneLineEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/OneLineEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/OneLineEntry.j2.tex diff --git a/tests/reference_files/dummytheme/Preamble.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/Preamble.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/Preamble.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/Preamble.j2.tex diff --git a/tests/reference_files/dummytheme/PublicationEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/PublicationEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/PublicationEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/PublicationEntry.j2.tex diff --git a/tests/reference_files/dummytheme/SectionBeginning.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/SectionBeginning.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/SectionBeginning.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/SectionBeginning.j2.tex diff --git a/tests/reference_files/dummytheme/SectionEnding.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/SectionEnding.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/SectionEnding.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/SectionEnding.j2.tex diff --git a/tests/reference_files/dummytheme/TextEntry.j2.tex b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/TextEntry.j2.tex similarity index 100% rename from tests/reference_files/dummytheme/TextEntry.j2.tex rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/TextEntry.j2.tex diff --git a/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/__init__.py b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/__init__.py new file mode 100644 index 0000000..ce07e49 --- /dev/null +++ b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/__init__.py @@ -0,0 +1,7 @@ +from typing import Literal + +import pydantic + + +class DummythemeThemeOptions(pydantic.BaseModel): + theme: Literal['dummytheme'] diff --git a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.out b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/theme_auxiliary_file.cls similarity index 100% rename from tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.out rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/dummytheme/theme_auxiliary_file.cls diff --git a/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.out b/tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/theme_auxiliary_files/theme_auxiliary_file.cls similarity index 100% rename from tests/reference_files/moderncv_theme_full/moderncv_theme_CV.out rename to tests/auxiliary_files/test_copy_theme_files_to_output_directory_custom_theme/theme_auxiliary_files/theme_auxiliary_file.cls diff --git a/tests/reference_files/mcdowell_theme_full/LICENSE b/tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_empty/LICENSE similarity index 96% rename from tests/reference_files/mcdowell_theme_full/LICENSE rename to tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_empty/LICENSE index 9d349e1..4d4f656 100644 --- a/tests/reference_files/mcdowell_theme_full/LICENSE +++ b/tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_empty/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 Daniil Belyakov +Copyright (c) 2015 Sourabh Bajaj Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_filled/LICENSE b/tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_filled/LICENSE new file mode 100644 index 0000000..4d4f656 --- /dev/null +++ b/tests/auxiliary_files/test_generate_latex_file_and_copy_theme_files/sb2nov_filled/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Sourabh Bajaj + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/tests/auxiliary_files/test_generate_markdown_file/classic_empty/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/classic_empty/John_Doe_CV.md new file mode 100644 index 0000000..03dc986 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/classic_empty/John_Doe_CV.md @@ -0,0 +1,4 @@ +# John Doe's CV + + + diff --git a/tests/auxiliary_files/test_generate_markdown_file/classic_filled/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/classic_filled/John_Doe_CV.md new file mode 100644 index 0000000..de50575 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/classic_filled/John_Doe_CV.md @@ -0,0 +1,66 @@ +# John Doe's CV + +- Phone: +90 541 999 99 99 +- Email: [johndoe@example.com](mailto:johndoe@example.com) +- Location: Istanbul, Turkey +- Website: [example.com](https://example.com/) +- LinkedIn: [johndoe](https://linkedin.com/in/johndoe) +- GitHub: [johndoe](https://github.com/johndoe) +- Instagram: [johndoe](https://instagram.com/johndoe) +- Orcid: [0000-0000-0000-0000](https://orcid.org/0000-0000-0000-0000) +- Mastodon: [@johndoe@example](https://mastodon.social/@johndoe@example) +- Twitter: [johndoe](https://twitter.com/johndoe) + + +# Section1 + +My Text Entry +My Text Entry +# Section2 + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +# Section3 + +## CERN, Researcher + + + + +## CERN, Researcher + + + + +# Section4 + +## Boğaziçi University, BS in Mechanical Engineering + + + + +## Boğaziçi University, BS in Mechanical Engineering + + + + +# Section5 + +## My Entry + + +## My Entry + + +# Section6 + +- My One Line Entry: My Details +- My One Line Entry: My Details diff --git a/tests/auxiliary_files/test_generate_markdown_file/moderncv_empty/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/moderncv_empty/John_Doe_CV.md new file mode 100644 index 0000000..03dc986 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/moderncv_empty/John_Doe_CV.md @@ -0,0 +1,4 @@ +# John Doe's CV + + + diff --git a/tests/auxiliary_files/test_generate_markdown_file/moderncv_filled/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/moderncv_filled/John_Doe_CV.md new file mode 100644 index 0000000..de50575 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/moderncv_filled/John_Doe_CV.md @@ -0,0 +1,66 @@ +# John Doe's CV + +- Phone: +90 541 999 99 99 +- Email: [johndoe@example.com](mailto:johndoe@example.com) +- Location: Istanbul, Turkey +- Website: [example.com](https://example.com/) +- LinkedIn: [johndoe](https://linkedin.com/in/johndoe) +- GitHub: [johndoe](https://github.com/johndoe) +- Instagram: [johndoe](https://instagram.com/johndoe) +- Orcid: [0000-0000-0000-0000](https://orcid.org/0000-0000-0000-0000) +- Mastodon: [@johndoe@example](https://mastodon.social/@johndoe@example) +- Twitter: [johndoe](https://twitter.com/johndoe) + + +# Section1 + +My Text Entry +My Text Entry +# Section2 + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +# Section3 + +## CERN, Researcher + + + + +## CERN, Researcher + + + + +# Section4 + +## Boğaziçi University, BS in Mechanical Engineering + + + + +## Boğaziçi University, BS in Mechanical Engineering + + + + +# Section5 + +## My Entry + + +## My Entry + + +# Section6 + +- My One Line Entry: My Details +- My One Line Entry: My Details diff --git a/tests/auxiliary_files/test_generate_markdown_file/sb2nov_empty/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/sb2nov_empty/John_Doe_CV.md new file mode 100644 index 0000000..03dc986 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/sb2nov_empty/John_Doe_CV.md @@ -0,0 +1,4 @@ +# John Doe's CV + + + diff --git a/tests/auxiliary_files/test_generate_markdown_file/sb2nov_filled/John_Doe_CV.md b/tests/auxiliary_files/test_generate_markdown_file/sb2nov_filled/John_Doe_CV.md new file mode 100644 index 0000000..de50575 --- /dev/null +++ b/tests/auxiliary_files/test_generate_markdown_file/sb2nov_filled/John_Doe_CV.md @@ -0,0 +1,66 @@ +# John Doe's CV + +- Phone: +90 541 999 99 99 +- Email: [johndoe@example.com](mailto:johndoe@example.com) +- Location: Istanbul, Turkey +- Website: [example.com](https://example.com/) +- LinkedIn: [johndoe](https://linkedin.com/in/johndoe) +- GitHub: [johndoe](https://github.com/johndoe) +- Instagram: [johndoe](https://instagram.com/johndoe) +- Orcid: [0000-0000-0000-0000](https://orcid.org/0000-0000-0000-0000) +- Mastodon: [@johndoe@example](https://mastodon.social/@johndoe@example) +- Twitter: [johndoe](https://twitter.com/johndoe) + + +# Section1 + +My Text Entry +My Text Entry +# Section2 + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +## My Title ([10.1109/TASC.2023.3340648](https://doi.org/10.1109/TASC.2023.3340648)) + +- Dec. 2023 +- J. Doe, J. Doe + +# Section3 + +## CERN, Researcher + + + + +## CERN, Researcher + + + + +# Section4 + +## Boğaziçi University, BS in Mechanical Engineering + + + + +## Boğaziçi University, BS in Mechanical Engineering + + + + +# Section5 + +## My Entry + + +## My Entry + + +# Section6 + +- My One Line Entry: My Details +- My One Line Entry: My Details diff --git a/tests/auxiliary_files/test_markdown_to_html/classic_empty/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/classic_empty/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..0814fe1 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/classic_empty/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1 @@ +

John Doe's CV

\ No newline at end of file diff --git a/tests/auxiliary_files/test_markdown_to_html/classic_filled/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/classic_filled/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..102f0c3 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/classic_filled/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1,41 @@ +

John Doe's CV

+ +

Section1

+

My Text Entry +My Text Entry

+

Section2

+

My Title (10.1109/TASC.2023.3340648)

+ +

My Title (10.1109/TASC.2023.3340648)

+ +

Section3

+

CERN, Researcher

+

CERN, Researcher

+

Section4

+

Boğaziçi University, BS in Mechanical Engineering

+

Boğaziçi University, BS in Mechanical Engineering

+

Section5

+

My Entry

+

My Entry

+

Section6

+ \ No newline at end of file diff --git a/tests/auxiliary_files/test_markdown_to_html/moderncv_empty/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/moderncv_empty/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..0814fe1 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/moderncv_empty/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1 @@ +

John Doe's CV

\ No newline at end of file diff --git a/tests/auxiliary_files/test_markdown_to_html/moderncv_filled/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/moderncv_filled/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..102f0c3 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/moderncv_filled/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1,41 @@ +

John Doe's CV

+ +

Section1

+

My Text Entry +My Text Entry

+

Section2

+

My Title (10.1109/TASC.2023.3340648)

+ +

My Title (10.1109/TASC.2023.3340648)

+ +

Section3

+

CERN, Researcher

+

CERN, Researcher

+

Section4

+

Boğaziçi University, BS in Mechanical Engineering

+

Boğaziçi University, BS in Mechanical Engineering

+

Section5

+

My Entry

+

My Entry

+

Section6

+ \ No newline at end of file diff --git a/tests/auxiliary_files/test_markdown_to_html/sb2nov_empty/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/sb2nov_empty/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..0814fe1 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/sb2nov_empty/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1 @@ +

John Doe's CV

\ No newline at end of file diff --git a/tests/auxiliary_files/test_markdown_to_html/sb2nov_filled/John_Doe_CV_PASTETOGRAMMARLY.html b/tests/auxiliary_files/test_markdown_to_html/sb2nov_filled/John_Doe_CV_PASTETOGRAMMARLY.html new file mode 100644 index 0000000..102f0c3 --- /dev/null +++ b/tests/auxiliary_files/test_markdown_to_html/sb2nov_filled/John_Doe_CV_PASTETOGRAMMARLY.html @@ -0,0 +1,41 @@ +

John Doe's CV

+ +

Section1

+

My Text Entry +My Text Entry

+

Section2

+

My Title (10.1109/TASC.2023.3340648)

+ +

My Title (10.1109/TASC.2023.3340648)

+ +

Section3

+

CERN, Researcher

+

CERN, Researcher

+

Section4

+

Boğaziçi University, BS in Mechanical Engineering

+

Boğaziçi University, BS in Mechanical Engineering

+

Section5

+

My Entry

+

My Entry

+

Section6

+ \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index a794d8c..5e8b69f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -60,6 +60,64 @@ def rendercv_data_model() -> dm.RenderCVDataModel: return dm.get_a_sample_data_model() +@pytest.fixture +def rendercv_empty_curriculum_vitae_data_model() -> dm.CurriculumVitae: + return dm.CurriculumVitae(name="John Doe") + + +@pytest.fixture +def rendercv_filled_curriculum_vitae_data_model( + text_entry, + publication_entry, + experience_entry, + education_entry, + normal_entry, + one_line_entry, +) -> dm.CurriculumVitae: + return dm.CurriculumVitae( + name="John Doe", + label="Mechanical Engineer", + location="Istanbul, Turkey", + email="johndoe@example.com", + phone="+905419999999", # type: ignore + website="https://example.com", # type: ignore + social_networks=[ + dm.SocialNetwork(network="LinkedIn", username="johndoe"), + dm.SocialNetwork(network="GitHub", username="johndoe"), + dm.SocialNetwork(network="Instagram", username="johndoe"), + dm.SocialNetwork(network="Orcid", username="0000-0000-0000-0000"), + dm.SocialNetwork(network="Mastodon", username="@johndoe@example"), + dm.SocialNetwork(network="Twitter", username="johndoe"), + ], + sections={ + "section1": [ + text_entry, + text_entry, + ], + "section2": [ + publication_entry, + publication_entry, + ], + "section3": [ + experience_entry, + experience_entry, + ], + "section4": [ + education_entry, + education_entry, + ], + "section5": [ + normal_entry, + normal_entry, + ], + "section6": [ + one_line_entry, + one_line_entry, + ], + }, + ) + + @pytest.fixture def jinja2_environment() -> jinja2.Environment: return r.setup_jinja2_environment() @@ -76,10 +134,10 @@ def root_directory_path(tests_directory_path) -> pathlib.Path: @pytest.fixture -def reference_files_directory_path(tests_directory_path) -> pathlib.Path: - return tests_directory_path / "reference_files" +def auxiliary_files_directory_path(tests_directory_path) -> pathlib.Path: + return tests_directory_path / "auxiliary_files" @pytest.fixture -def input_file_path(reference_files_directory_path) -> pathlib.Path: - return reference_files_directory_path / "John_Doe_CV.yaml" +def input_file_path(auxiliary_files_directory_path) -> pathlib.Path: + return auxiliary_files_directory_path / "John_Doe_CV.yaml" diff --git a/tests/reference_files/John_Doe_CV.yaml b/tests/reference_files/John_Doe_CV.yaml deleted file mode 100644 index e017a7f..0000000 --- a/tests/reference_files/John_Doe_CV.yaml +++ /dev/null @@ -1,5 +0,0 @@ -cv: - name: John Doe - -design: - theme: classic \ No newline at end of file diff --git a/tests/reference_files/classic_theme_full/classic_theme_CV.aux b/tests/reference_files/classic_theme_full/classic_theme_CV.aux deleted file mode 100644 index 2b19003..0000000 --- a/tests/reference_files/classic_theme_full/classic_theme_CV.aux +++ /dev/null @@ -1,9 +0,0 @@ -\relax -\providecommand\hyper@newdestlabel[2]{} -\providecommand\HyField@AuxAddToFields[1]{} -\providecommand\HyField@AuxAddToCoFields[2]{} -\providecommand\BKM@entry[2]{} -\newlabel{LastPage}{{}{1}{}{page.1}{}} -\gdef\lastpage@lastpage{1} -\gdef\lastpage@lastpageHy{1} -\gdef \@abspage@last{1} diff --git a/tests/reference_files/classic_theme_full/classic_theme_CV.log b/tests/reference_files/classic_theme_full/classic_theme_CV.log deleted file mode 100644 index de92a17..0000000 --- a/tests/reference_files/classic_theme_full/classic_theme_CV.log +++ /dev/null @@ -1,515 +0,0 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2024.2.13) 14 FEB 2024 20:21 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**c:/GIT/ARCHIVE/rendercv-v1/tests/reference_files/classic_theme_full/classic_theme_CV.tex -(c:/GIT/ARCHIVE/rendercv-v1/tests/reference_files/classic_theme_full/classic_theme_CV.tex -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/article.cls -Document Class: article 2023/05/17 v1.4n Standard LaTeX document class -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/size10.clo -File: size10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) -) -\c@part=\count187 -\c@section=\count188 -\c@subsection=\count189 -\c@subsubsection=\count190 -\c@paragraph=\count191 -\c@subparagraph=\count192 -\c@figure=\count193 -\c@table=\count194 -\abovecaptionskip=\skip48 -\belowcaptionskip=\skip49 -\bibindent=\dimen140 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2020/01/02 v5.9 Page Geometry - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2022/05/29 v1.15 key=value parser (DPC) -\KV@toks@=\toks17 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifvtex.sty -Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/iftex.sty -Package: iftex 2022/02/03 v1.0f TeX engine tests -)) -\Gm@cnth=\count195 -\Gm@cntv=\count196 -\c@Gm@tempcnt=\count197 -\Gm@bindingoffset=\dimen141 -\Gm@wd@mp=\dimen142 -\Gm@odd@mp=\dimen143 -\Gm@even@mp=\dimen144 -\Gm@layoutwidth=\dimen145 -\Gm@layoutheight=\dimen146 -\Gm@layouthoffset=\dimen147 -\Gm@layoutvoffset=\dimen148 -\Gm@dimlist=\toks18 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/titlesec/titlesec.sty -Package: titlesec 2023/10/27 v2.16 Sectioning titles -\ttl@box=\box51 -\beforetitleunit=\skip50 -\aftertitleunit=\skip51 -\ttl@plus=\dimen149 -\ttl@minus=\dimen150 -\ttl@toksa=\toks19 -\titlewidth=\dimen151 -\titlewidthlast=\dimen152 -\titlewidthfirst=\dimen153 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/tabularx.sty -Package: tabularx 2023/07/08 v2.11c `tabularx' package (DPC) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/array.sty -Package: array 2023/10/16 v2.5g Tabular extension package (FMi) -\col@sep=\dimen154 -\ar@mcellbox=\box52 -\extrarowheight=\dimen155 -\NC@list=\toks20 -\extratabsurround=\skip52 -\backup@length=\skip53 -\ar@cellbox=\box53 -) -\TX@col@width=\dimen156 -\TX@old@table=\dimen157 -\TX@old@col=\dimen158 -\TX@target=\dimen159 -\TX@delta=\dimen160 -\TX@cols=\count198 -\TX@ftn=\toks21 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/xcolor/xcolor.sty -Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package xcolor Info: Driver file: pdftex.def on input line 274. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/mathcolor.ltx) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. -Package xcolor Info: Model `RGB' extended on input line 1366. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/dvipsnam.def -File: dvipsnam.def 2016/06/17 v3.0m Driver-dependent file (DPC,SPQR) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/enumitem/enumitem.sty -Package: enumitem 2019/06/20 v3.9 Customized lists -\labelindent=\skip54 -\enit@outerparindent=\dimen161 -\enit@toks=\toks22 -\enit@inbox=\box54 -\enit@count@id=\count199 -\enitdp@description=\count266 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3kernel/expl3.sty -Package: expl3 2024-01-22 L3 programming layer (loader) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX) -\l__color_backend_stack_int=\count267 -\l__pdf_internal_box=\box55 -)) -Package: fontawesome5 2022/05/02 v5.15.4 Font Awesome 5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty -Package: l3keys2e 2023-10-10 LaTeX2e option processing using LaTeX3 keys -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/xparse/xparse.sty -Package: xparse 2023-10-10 L3 Experimental document command parser -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-generic-helper.sty -Package: fontawesome5-generic-helper 2022/05/02 v5.15.4 non-uTeX helper for fontawesome5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-mapping.def))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdfescape/pdfescape.sty -Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/infwarerr/infwarerr.sty -Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) -) -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hycolor/hycolor.sty -Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/auxhook/auxhook.sty -Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/refcount/refcount.sty -Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvoptions/kvoptions.sty -Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) -)) -\c@section@level=\count268 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/etoolbox/etoolbox.sty -Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) -\etb@tempcnta=\count269 -) -\@linkdim=\dimen162 -\Hy@linkcounter=\count270 -\Hy@pagecounter=\count271 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/intcalc/intcalc.sty -Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) -) -\Hy@SavedSpaceFactor=\count272 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) -Now handling font encoding PU ... -... no UTF-8 mapping file for font encoding PU -) -Package hyperref Info: Option `colorlinks' set `true' on input line 4062. -Package hyperref Info: Hyper figures OFF on input line 4179. -Package hyperref Info: Link nesting OFF on input line 4184. -Package hyperref Info: Hyper index ON on input line 4187. -Package hyperref Info: Plain pages OFF on input line 4194. -Package hyperref Info: Backreferencing OFF on input line 4199. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4446. -\c@Hy@tempcnt=\count273 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip16 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 4784. -\XeTeXLinkMargin=\dimen163 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bitset/bitset.sty -Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) -)) -\Fld@menulength=\count274 -\Field@Width=\dimen164 -\Fld@charsize=\dimen165 -Package hyperref Info: Hyper figures OFF on input line 6063. -Package hyperref Info: Link nesting OFF on input line 6068. -Package hyperref Info: Hyper index ON on input line 6071. -Package hyperref Info: backreferencing OFF on input line 6078. -Package hyperref Info: Link coloring ON on input line 6081. -Package hyperref Info: Link coloring with OCG OFF on input line 6088. -Package hyperref Info: PDF/A mode OFF on input line 6093. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atbegshi-ltx.sty -Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi -package with kernel methods -) -\Hy@abspage=\count275 -\c@Item=\count276 -\c@Hfootnote=\count277 -) -Package hyperref Info: Driver (autodetected): hpdftex. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2024-01-20 v7.01h Hyperref driver for pdfTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atveryend-ltx.sty -Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package -with kernel methods -) -\Fld@listcount=\count278 -\c@bookmark@seq@number=\count279 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) -) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. -) -\Hy@SectionHShift=\skip55 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/eso-pic/eso-pic.sty -Package: eso-pic 2023/05/03 v3.0c eso-pic (RN) -\ESO@tempdima=\dimen166 -\ESO@tempdimb=\dimen167 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/calc.sty -Package: calc 2023/07/08 v4.3 Infix arithmetic (KKT,FJ) -\calc@Acount=\count280 -\calc@Bcount=\count281 -\calc@Adimen=\dimen168 -\calc@Bdimen=\dimen169 -\calc@Askip=\skip56 -\calc@Bskip=\skip57 -LaTeX Info: Redefining \setlength on input line 80. -LaTeX Info: Redefining \addtolength on input line 81. -\calc@Ccount=\count282 -\calc@Cskip=\skip58 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/bookmark/bookmark.sty -Package: bookmark 2023-12-10 v1.31 PDF bookmarks (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/bookmark/bkm-pdftex.def -File: bkm-pdftex.def 2023-12-10 v1.31 bookmark driver for pdfTeX and luaTeX (HO) -\BKM@id=\count283 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lastpage/lastpage.sty -Package: lastpage 2023/10/14 v2.0e lastpage: 2.09 or 2e? (HMM) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lastpage/lastpage2e.sty -Package: lastpage2e 2023/10/14 v2.0e Decide which 2e lastpage version to use (HMM) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lastpage/lastpagemodern.sty -Package: lastpagemodern 2023-10-14 v2.0e Refers to last page's name (HMM; JPG) -\c@lastpagecount=\count284 -) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/sourcesanspro/sourcesanspro.sty -Package: sourcesanspro 2018/05/19 v2.7 Adobe's Source Sans Pro typeface - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifxetex.sty -Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifluatex.sty -Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/xkeyval/xkeyval.sty -Package: xkeyval 2022/06/16 v2.9 package option processing (HA) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/xkeyval/xkeyval.tex (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/xkeyval/xkvutils.tex -\XKV@toks=\toks23 -\XKV@tempa@toks=\toks24 -) -\XKV@depth=\count285 -File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2021/04/29 v2.0v Standard LaTeX package - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/ly1/ly1enc.def -File: ly1enc.def 2022/06/11 v0.8 TeX 'n ANSI encoding (DPC/KB) -Now handling font encoding LY1 ... -... processing UTF-8 mapping file for font encoding LY1 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/ly1enc.dfu -File: ly1enc.dfu 2022/06/07 v1.3c UTF-8 support - defining Unicode char U+00A0 (decimal 160) - defining Unicode char U+00A1 (decimal 161) - defining Unicode char U+00A2 (decimal 162) - defining Unicode char U+00A3 (decimal 163) - defining Unicode char U+00A4 (decimal 164) - defining Unicode char U+00A5 (decimal 165) - defining Unicode char U+00A6 (decimal 166) - defining Unicode char U+00A7 (decimal 167) - defining Unicode char U+00AA (decimal 170) - defining Unicode char U+00AB (decimal 171) - defining Unicode char U+00AD (decimal 173) - defining Unicode char U+00AE (decimal 174) - defining Unicode char U+00B0 (decimal 176) - defining Unicode char U+00B5 (decimal 181) - defining Unicode char U+00B6 (decimal 182) - defining Unicode char U+00B7 (decimal 183) - defining Unicode char U+00BA (decimal 186) - defining Unicode char U+00BB (decimal 187) - defining Unicode char U+00BC (decimal 188) - defining Unicode char U+00BD (decimal 189) - defining Unicode char U+00BE (decimal 190) - defining Unicode char U+00BF (decimal 191) - defining Unicode char U+00C0 (decimal 192) - defining Unicode char U+00C1 (decimal 193) - defining Unicode char U+00C2 (decimal 194) - defining Unicode char U+00C3 (decimal 195) - defining Unicode char U+00C4 (decimal 196) - defining Unicode char U+00C5 (decimal 197) - defining Unicode char U+00C6 (decimal 198) - defining Unicode char U+00C7 (decimal 199) - defining Unicode char U+00C8 (decimal 200) - defining Unicode char U+00C9 (decimal 201) - defining Unicode char U+00CA (decimal 202) - defining Unicode char U+00CB (decimal 203) - defining Unicode char U+00CC (decimal 204) - defining Unicode char U+00CD (decimal 205) - defining Unicode char U+00CE (decimal 206) - defining Unicode char U+00CF (decimal 207) - defining Unicode char U+00D0 (decimal 208) - defining Unicode char U+00D1 (decimal 209) - defining Unicode char U+00D2 (decimal 210) - defining Unicode char U+00D3 (decimal 211) - defining Unicode char U+00D4 (decimal 212) - defining Unicode char U+00D5 (decimal 213) - defining Unicode char U+00D6 (decimal 214) - defining Unicode char U+00D8 (decimal 216) - defining Unicode char U+00D9 (decimal 217) - defining Unicode char U+00DA (decimal 218) - defining Unicode char U+00DB (decimal 219) - defining Unicode char U+00DC (decimal 220) - defining Unicode char U+00DD (decimal 221) - defining Unicode char U+00DE (decimal 222) - defining Unicode char U+00DF (decimal 223) - defining Unicode char U+00E0 (decimal 224) - defining Unicode char U+00E1 (decimal 225) - defining Unicode char U+00E2 (decimal 226) - defining Unicode char U+00E3 (decimal 227) - defining Unicode char U+00E4 (decimal 228) - defining Unicode char U+00E5 (decimal 229) - defining Unicode char U+00E6 (decimal 230) - defining Unicode char U+00E7 (decimal 231) - defining Unicode char U+00E8 (decimal 232) - defining Unicode char U+00E9 (decimal 233) - defining Unicode char U+00EA (decimal 234) - defining Unicode char U+00EB (decimal 235) - defining Unicode char U+00EC (decimal 236) - defining Unicode char U+00ED (decimal 237) - defining Unicode char U+00EE (decimal 238) - defining Unicode char U+00EF (decimal 239) - defining Unicode char U+00F0 (decimal 240) - defining Unicode char U+00F1 (decimal 241) - defining Unicode char U+00F2 (decimal 242) - defining Unicode char U+00F3 (decimal 243) - defining Unicode char U+00F4 (decimal 244) - defining Unicode char U+00F5 (decimal 245) - defining Unicode char U+00F6 (decimal 246) - defining Unicode char U+00F8 (decimal 248) - defining Unicode char U+00F9 (decimal 249) - defining Unicode char U+00FA (decimal 250) - defining Unicode char U+00FB (decimal 251) - defining Unicode char U+00FC (decimal 252) - defining Unicode char U+00FD (decimal 253) - defining Unicode char U+00FE (decimal 254) - defining Unicode char U+00FF (decimal 255) - defining Unicode char U+0131 (decimal 305) - defining Unicode char U+0141 (decimal 321) - defining Unicode char U+0142 (decimal 322) - defining Unicode char U+0152 (decimal 338) - defining Unicode char U+0153 (decimal 339) - defining Unicode char U+0160 (decimal 352) - defining Unicode char U+0161 (decimal 353) - defining Unicode char U+0174 (decimal 372) - defining Unicode char U+0175 (decimal 373) - defining Unicode char U+0176 (decimal 374) - defining Unicode char U+0177 (decimal 375) - defining Unicode char U+0178 (decimal 376) - defining Unicode char U+017D (decimal 381) - defining Unicode char U+017E (decimal 382) - defining Unicode char U+0192 (decimal 402) - defining Unicode char U+0218 (decimal 536) - defining Unicode char U+0219 (decimal 537) - defining Unicode char U+021A (decimal 538) - defining Unicode char U+021B (decimal 539) - defining Unicode char U+0237 (decimal 567) - defining Unicode char U+02C6 (decimal 710) - defining Unicode char U+02DC (decimal 732) - defining Unicode char U+2013 (decimal 8211) - defining Unicode char U+2014 (decimal 8212) - defining Unicode char U+201C (decimal 8220) - defining Unicode char U+201D (decimal 8221) - defining Unicode char U+2020 (decimal 8224) - defining Unicode char U+2021 (decimal 8225) - defining Unicode char U+2022 (decimal 8226) - defining Unicode char U+2026 (decimal 8230) - defining Unicode char U+2030 (decimal 8240) - defining Unicode char U+2039 (decimal 8249) - defining Unicode char U+203A (decimal 8250) - defining Unicode char U+2122 (decimal 8482) - defining Unicode char U+FB00 (decimal 64256) - defining Unicode char U+FB01 (decimal 64257) - defining Unicode char U+FB02 (decimal 64258) - defining Unicode char U+FB03 (decimal 64259) - defining Unicode char U+FB04 (decimal 64260) - defining Unicode char U+FB05 (decimal 64261) - defining Unicode char U+FB06 (decimal 64262) -)))) -LaTeX Font Info: Trying to load font information for T1+SourceSansPro-TLF on input line 117. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/sourcesanspro/T1SourceSansPro-TLF.fd -File: T1SourceSansPro-TLF.fd 2020/01/19 (autoinst) Font definitions for T1/SourceSansPro-TLF. -) -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/m/n' aliased to -(Font) `T1/SourceSansPro-TLF/regular/n' on input line 117. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/regular/n' will be -(Font) scaled to size 10.0pt on input line 117. - (./classic_theme_CV.aux) -\openout1 = `classic_theme_CV.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 117. -LaTeX Font Info: ... okay on input line 117. -LaTeX Font Info: Checking defaults for LY1/ptm/m/n on input line 117. -LaTeX Font Info: Trying to load font information for LY1+ptm on input line 117. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/ly1/ly1ptm.fd -File: ly1ptm.fd 2001/02/01 font definitions for LY1/ptm using Berry names. -) -LaTeX Font Info: ... okay on input line 117. - -*geometry* driver: auto-detecting -*geometry* detected driver: pdftex -*geometry* verbose mode - [ preamble ] result: -* driver: pdftex -* paper: a4paper -* layout: -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: -* h-part:(L,W,R)=(35.28157pt, 526.94473pt, 35.28157pt) -* v-part:(T,H,B)=(56.9055pt, 731.23584pt, 56.9055pt) -* \paperwidth=597.50787pt -* \paperheight=845.04684pt -* \textwidth=526.94473pt -* \textheight=731.23584pt -* \oddsidemargin=-36.98842pt -* \evensidemargin=-36.98842pt -* \topmargin=-52.36449pt -* \headheight=12.0pt -* \headsep=25.0pt -* \topskip=0.0pt -* \footskip=28.45274pt -* \marginparwidth=57.0pt -* \marginparsep=11.0pt -* \columnsep=10.0pt -* \skip\footins=9.0pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidefalse -* \@mparswitchfalse -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -Package hyperref Info: Link coloring ON on input line 117. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/b/n' aliased to -(Font) `T1/SourceSansPro-TLF/bold/n' on input line 122. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/bold/n' will be -(Font) scaled to size 30.0pt on input line 122. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/m/it' aliased to -(Font) `T1/SourceSansPro-TLF/regular/it' on input line 132. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/regular/it' will be -(Font) scaled to size 10.0pt on input line 132. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/m/it' aliased to -(Font) `T1/SourceSansPro-TLF/regular/it' on input line 132. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/regular/it' will be -(Font) scaled to size 9.0pt on input line 132. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/m/n' aliased to -(Font) `T1/SourceSansPro-TLF/regular/n' on input line 132. -LaTeX Font Info: Font shape `T1/SourceSansPro-TLF/regular/n' will be -(Font) scaled to size 9.0pt on input line 132. -[1 - -{c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/fonts/enc/dvips/sourcesanspro/a_emkxm5.enc}] -enddocument/afterlastpage: lastpage setting LastPage. -(./classic_theme_CV.aux) - *********** -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> - *********** - ) -Here is how much of TeX's memory you used: - 13948 strings out of 476161 - 247083 string characters out of 5790867 - 1924978 words of memory out of 5000000 - 35810 multiletter control sequences out of 15000+600000 - 603836 words of font info for 44 fonts, out of 8000000 for 9000 - 14 hyphenation exceptions out of 8191 - 75i,10n,79p,381b,434s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on classic_theme_CV.pdf (1 page, 203400 bytes). -PDF statistics: - 24 PDF objects out of 1000 (max. 8388607) - 16 compressed objects within 1 object stream - 2 named destinations out of 1000 (max. 500000) - 1 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/tests/reference_files/classic_theme_full/classic_theme_CV.pdf b/tests/reference_files/classic_theme_full/classic_theme_CV.pdf deleted file mode 100644 index 32ea8a9880da4453d110f599ad9b260eac4e3cca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203400 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

Tz0sFayfHg;NU-u+YL&%Px_nLLi8>p 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\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1} -} % left-aligned fixed width column type -\newcolumntype{R}[1]{ - >{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1} -} % right-aligned fixed width column type -\newcolumntype{K}[1]{ - >{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X -} % left-aligned flexible width column type -\setlength\tabcolsep{-1.5pt} % no space between columns -\newenvironment{highlights}{ - \begin{itemize}[ - topsep=0pt, - parsep=0.10 cm, - partopsep=0pt, - itemsep=0pt, - after=\vspace{-1\baselineskip}, - leftmargin=0.4 cm + 3pt - ] - }{ - \end{itemize} - } % new environment for highlights - -\newenvironment{header}{ - \setlength{\topsep}{0pt}\par\kern\topsep\centering\color{primaryColor}\linespread{1.5} - }{ - \par\kern\topsep - } % new environment for the header - -\newcommand{\placelastupdatedtext}{% \placetextbox{}{}{} - \AddToShipoutPictureFG*{% Add to current page foreground - \put( - \LenToUnit{\paperwidth-1.24 cm-0.2 cm+0.05cm}, - \LenToUnit{\paperheight-1.0 cm} - ){\vtop{{\null}\makebox[0pt][c]{ - \small\color{gray}\textit{Last updated in January 2024}\hspace{\widthof{Last updated in January 2024}} - }}}% - }% -}% - -% save the original href command in a new command: -\let\hrefWithoutArrow\href - % new command for external links: -\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{#2 \raisebox{.15ex}{\footnotesize \faExternalLink*}}}} - -\let\originalTabularx\tabularx -\let\originalEndTabularx\endtabularx - -\renewenvironment{tabularx}{\bgroup\centering\originalTabularx}{\originalEndTabularx\par\egroup} - -\begin{document} - \placelastupdatedtext - - \begin{header} - \fontsize{30 pt}{30 pt} - \textbf{classic theme} - - \vspace{0.2 cm} - - \normalsize - \end{header} - - \vspace{0.2 cm} - - -\end{document} \ No newline at end of file diff --git a/tests/reference_files/dummytheme/auixiliary_directory/dummy_theme_file.cls b/tests/reference_files/dummytheme/auixiliary_directory/dummy_theme_file.cls deleted file mode 100644 index d8fb41d..0000000 --- a/tests/reference_files/dummytheme/auixiliary_directory/dummy_theme_file.cls +++ /dev/null @@ -1,301 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] - -% Set up the fonts according to options -\def\mainfontsize{11pt} -\def\mainfontface{Times New Roman} - -\DeclareOption{calibri}{% - \def\mainfontface{Calibri} -} - -% Set up papersize according to options, default to US letter -\def\papersize{letterpaper} -%Set up bool for adjusting vspacing later -\newif\ifpapersize - -\DeclareOption{a4paper}{% - \def\papersize{a4paper} - \papersizetrue -} - -\DeclareOption{letterpaper}{% - \def\papersize{letterpaper} - \papersizefalse -} -\ProcessOptions\relax - -% Set font size and paper type -\LoadClass[\papersize,\mainfontsize]{article} - -% Set document margins -\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} - -% Set font face -% \usepackage{fontspec} -% \setmainfont[SmallCapsFeatures={Renderer=Basic}, -% Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} - -% Remove paragraph indentation -\usepackage[parfill]{parskip} - -% Required for boldface (\bf and \bfseries) tabular columns -\usepackage{array} - -% Required for ifthenelse statements -\usepackage{etoolbox} - -% Suppress page numbers -\pagestyle{empty} - -% Flexible tables -\usepackage{tabu} - -% For custom margins -\usepackage{changepage} - -% To customize lists -\usepackage{enumitem} -% Remove left margin from lists, suppress vertical item separation and set top -% separation to a negative value to suppress a single parskip before lists -\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} - -% For adjusting spacing based on the platform used -\usepackage{ifthen} -\usepackage{ifplatform} - -% For spcaed small caps -\usepackage{microtype} - -\DeclareMicrotypeSet*{smallcapsi} { - encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*,si,scit} -} - -%-------------------------------------------------------------------------------- -% Constants - -%-------------------------------------------------------------------------------- - -\ifthenelse{\equal{\platformname}{\notwindowsname}}{ - \def\namespaceskip{0.575em} - \def\afterheaderspace{1.1pt} - \def\beforesectionheaderspace{5pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{2.85pt} - \def\sectionheaderhrlueheight{0.518pt} - \def\aftersectionheaderspace{-5.8pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-5.75pt} - \else - \def\aftersinglelinesubsectionheaderspace{-20.25pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-11.75pt} - \def\aftermultilinesubsectionheaderspace{-7.75pt} - \def\afteremptysubsectionheaderspace{1.25pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{2.1pt} -}{ - \def\namespaceskip{0.4em} - \def\afterheaderspace{3pt} - \def\beforesectionheaderspace{4.75pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{3pt} - \def\sectionheaderhrlueheight{0.5pt} - \def\aftersectionheaderspace{-4pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-4pt} - \else - \def\aftersinglelinesubsectionheaderspace{-18.5pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-10pt} - \def\aftermultilinesubsectionheaderspace{-6pt} - \def\afteremptysubsectionheaderspace{3pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{4pt} -} - -%-------------------------------------------------------------------------------- -% Header Setup and Printing - -%-------------------------------------------------------------------------------- - -% Address -\makeatletter - -\newcommand\address[1]{\def\@address{#1}} -\address{} - -\newcommand\printaddress{ - \small{\@address} -} - -\makeatother - -% Name -\makeatletter - -\newcommand\name[1]{\def\@name{#1}} -\name{} - -\newcommand\printname{ - \typeout {kokoko} - \typeout \spaceskip - \spaceskip \namespaceskip \relax - \textbf{\LARGE\textls[110]{\textsc{\@name}}} -} - -\makeatother - -% Contacts -\makeatletter - -\newcommand\contacts[1]{\def\@contacts{#1}} -\contacts{} - -\newcommand\printcontacts{ - \small{\@contacts} -} - -\makeatother - -\makeatletter -\newcommand\makeheader{ - \begin{center} - \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } - \printaddress & \printname & \printcontacts \\ - \end{tabu} - \end{center} - \vspace*{\afterheaderspace} -} -\makeatother - -%-------------------------------------------------------------------------------- -% Sections and Subsections - -%-------------------------------------------------------------------------------- - -% Print a section header -\makeatletter -\newenvironment{cvsection}[1]{ - \vspace*{\beforesectionheaderspace} - % Set text margins to equal \tabcolsep (6pt by default) - \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} - \textsc{\textbf{#1}} - \end{adjustwidth} - \vspace*{\beforesectionheaderhrulespace} - \hrule height \sectionheaderhrlueheight - \vspace*{\aftersectionheaderspace} -}{} -\makeatother - -% Print a subsection -\makeatletter -% Define toggles checking if titles were defined -\newtoggle{lefttitledefined} -\newtoggle{centertitledefined} -\newtoggle{righttitledefined} - -\newenvironment{cvsubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvpublicationsubsection}[4][2]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[3.5,p] X[r,p] } - \textbf{#2} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvonelinesubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{-5pt} -} -\makeatother diff --git a/tests/reference_files/dummytheme/dummy_theme_file.cls b/tests/reference_files/dummytheme/dummy_theme_file.cls deleted file mode 100644 index d8fb41d..0000000 --- a/tests/reference_files/dummytheme/dummy_theme_file.cls +++ /dev/null @@ -1,301 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] - -% Set up the fonts according to options -\def\mainfontsize{11pt} -\def\mainfontface{Times New Roman} - -\DeclareOption{calibri}{% - \def\mainfontface{Calibri} -} - -% Set up papersize according to options, default to US letter -\def\papersize{letterpaper} -%Set up bool for adjusting vspacing later -\newif\ifpapersize - -\DeclareOption{a4paper}{% - \def\papersize{a4paper} - \papersizetrue -} - -\DeclareOption{letterpaper}{% - \def\papersize{letterpaper} - \papersizefalse -} -\ProcessOptions\relax - -% Set font size and paper type -\LoadClass[\papersize,\mainfontsize]{article} - -% Set document margins -\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} - -% Set font face -% \usepackage{fontspec} -% \setmainfont[SmallCapsFeatures={Renderer=Basic}, -% Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} - -% Remove paragraph indentation -\usepackage[parfill]{parskip} - -% Required for boldface (\bf and \bfseries) tabular columns -\usepackage{array} - -% Required for ifthenelse statements -\usepackage{etoolbox} - -% Suppress page numbers -\pagestyle{empty} - -% Flexible tables -\usepackage{tabu} - -% For custom margins -\usepackage{changepage} - -% To customize lists -\usepackage{enumitem} -% Remove left margin from lists, suppress vertical item separation and set top -% separation to a negative value to suppress a single parskip before lists -\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} - -% For adjusting spacing based on the platform used -\usepackage{ifthen} -\usepackage{ifplatform} - -% For spcaed small caps -\usepackage{microtype} - -\DeclareMicrotypeSet*{smallcapsi} { - encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*,si,scit} -} - -%-------------------------------------------------------------------------------- -% Constants - -%-------------------------------------------------------------------------------- - -\ifthenelse{\equal{\platformname}{\notwindowsname}}{ - \def\namespaceskip{0.575em} - \def\afterheaderspace{1.1pt} - \def\beforesectionheaderspace{5pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{2.85pt} - \def\sectionheaderhrlueheight{0.518pt} - \def\aftersectionheaderspace{-5.8pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-5.75pt} - \else - \def\aftersinglelinesubsectionheaderspace{-20.25pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-11.75pt} - \def\aftermultilinesubsectionheaderspace{-7.75pt} - \def\afteremptysubsectionheaderspace{1.25pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{2.1pt} -}{ - \def\namespaceskip{0.4em} - \def\afterheaderspace{3pt} - \def\beforesectionheaderspace{4.75pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{3pt} - \def\sectionheaderhrlueheight{0.5pt} - \def\aftersectionheaderspace{-4pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-4pt} - \else - \def\aftersinglelinesubsectionheaderspace{-18.5pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-10pt} - \def\aftermultilinesubsectionheaderspace{-6pt} - \def\afteremptysubsectionheaderspace{3pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{4pt} -} - -%-------------------------------------------------------------------------------- -% Header Setup and Printing - -%-------------------------------------------------------------------------------- - -% Address -\makeatletter - -\newcommand\address[1]{\def\@address{#1}} -\address{} - -\newcommand\printaddress{ - \small{\@address} -} - -\makeatother - -% Name -\makeatletter - -\newcommand\name[1]{\def\@name{#1}} -\name{} - -\newcommand\printname{ - \typeout {kokoko} - \typeout \spaceskip - \spaceskip \namespaceskip \relax - \textbf{\LARGE\textls[110]{\textsc{\@name}}} -} - -\makeatother - -% Contacts -\makeatletter - -\newcommand\contacts[1]{\def\@contacts{#1}} -\contacts{} - -\newcommand\printcontacts{ - \small{\@contacts} -} - -\makeatother - -\makeatletter -\newcommand\makeheader{ - \begin{center} - \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } - \printaddress & \printname & \printcontacts \\ - \end{tabu} - \end{center} - \vspace*{\afterheaderspace} -} -\makeatother - -%-------------------------------------------------------------------------------- -% Sections and Subsections - -%-------------------------------------------------------------------------------- - -% Print a section header -\makeatletter -\newenvironment{cvsection}[1]{ - \vspace*{\beforesectionheaderspace} - % Set text margins to equal \tabcolsep (6pt by default) - \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} - \textsc{\textbf{#1}} - \end{adjustwidth} - \vspace*{\beforesectionheaderhrulespace} - \hrule height \sectionheaderhrlueheight - \vspace*{\aftersectionheaderspace} -}{} -\makeatother - -% Print a subsection -\makeatletter -% Define toggles checking if titles were defined -\newtoggle{lefttitledefined} -\newtoggle{centertitledefined} -\newtoggle{righttitledefined} - -\newenvironment{cvsubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvpublicationsubsection}[4][2]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[3.5,p] X[r,p] } - \textbf{#2} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvonelinesubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{-5pt} -} -\makeatother diff --git a/tests/reference_files/dummytheme_theme_auxiliary_files/auixiliary_directory/dummy_theme_file.cls b/tests/reference_files/dummytheme_theme_auxiliary_files/auixiliary_directory/dummy_theme_file.cls deleted file mode 100644 index d8fb41d..0000000 --- a/tests/reference_files/dummytheme_theme_auxiliary_files/auixiliary_directory/dummy_theme_file.cls +++ /dev/null @@ -1,301 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] - -% Set up the fonts according to options -\def\mainfontsize{11pt} -\def\mainfontface{Times New Roman} - -\DeclareOption{calibri}{% - \def\mainfontface{Calibri} -} - -% Set up papersize according to options, default to US letter -\def\papersize{letterpaper} -%Set up bool for adjusting vspacing later -\newif\ifpapersize - -\DeclareOption{a4paper}{% - \def\papersize{a4paper} - \papersizetrue -} - -\DeclareOption{letterpaper}{% - \def\papersize{letterpaper} - \papersizefalse -} -\ProcessOptions\relax - -% Set font size and paper type -\LoadClass[\papersize,\mainfontsize]{article} - -% Set document margins -\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} - -% Set font face -% \usepackage{fontspec} -% \setmainfont[SmallCapsFeatures={Renderer=Basic}, -% Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} - -% Remove paragraph indentation -\usepackage[parfill]{parskip} - -% Required for boldface (\bf and \bfseries) tabular columns -\usepackage{array} - -% Required for ifthenelse statements -\usepackage{etoolbox} - -% Suppress page numbers -\pagestyle{empty} - -% Flexible tables -\usepackage{tabu} - -% For custom margins -\usepackage{changepage} - -% To customize lists -\usepackage{enumitem} -% Remove left margin from lists, suppress vertical item separation and set top -% separation to a negative value to suppress a single parskip before lists -\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} - -% For adjusting spacing based on the platform used -\usepackage{ifthen} -\usepackage{ifplatform} - -% For spcaed small caps -\usepackage{microtype} - -\DeclareMicrotypeSet*{smallcapsi} { - encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*,si,scit} -} - -%-------------------------------------------------------------------------------- -% Constants - -%-------------------------------------------------------------------------------- - -\ifthenelse{\equal{\platformname}{\notwindowsname}}{ - \def\namespaceskip{0.575em} - \def\afterheaderspace{1.1pt} - \def\beforesectionheaderspace{5pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{2.85pt} - \def\sectionheaderhrlueheight{0.518pt} - \def\aftersectionheaderspace{-5.8pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-5.75pt} - \else - \def\aftersinglelinesubsectionheaderspace{-20.25pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-11.75pt} - \def\aftermultilinesubsectionheaderspace{-7.75pt} - \def\afteremptysubsectionheaderspace{1.25pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{2.1pt} -}{ - \def\namespaceskip{0.4em} - \def\afterheaderspace{3pt} - \def\beforesectionheaderspace{4.75pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{3pt} - \def\sectionheaderhrlueheight{0.5pt} - \def\aftersectionheaderspace{-4pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-4pt} - \else - \def\aftersinglelinesubsectionheaderspace{-18.5pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-10pt} - \def\aftermultilinesubsectionheaderspace{-6pt} - \def\afteremptysubsectionheaderspace{3pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{4pt} -} - -%-------------------------------------------------------------------------------- -% Header Setup and Printing - -%-------------------------------------------------------------------------------- - -% Address -\makeatletter - -\newcommand\address[1]{\def\@address{#1}} -\address{} - -\newcommand\printaddress{ - \small{\@address} -} - -\makeatother - -% Name -\makeatletter - -\newcommand\name[1]{\def\@name{#1}} -\name{} - -\newcommand\printname{ - \typeout {kokoko} - \typeout \spaceskip - \spaceskip \namespaceskip \relax - \textbf{\LARGE\textls[110]{\textsc{\@name}}} -} - -\makeatother - -% Contacts -\makeatletter - -\newcommand\contacts[1]{\def\@contacts{#1}} -\contacts{} - -\newcommand\printcontacts{ - \small{\@contacts} -} - -\makeatother - -\makeatletter -\newcommand\makeheader{ - \begin{center} - \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } - \printaddress & \printname & \printcontacts \\ - \end{tabu} - \end{center} - \vspace*{\afterheaderspace} -} -\makeatother - -%-------------------------------------------------------------------------------- -% Sections and Subsections - -%-------------------------------------------------------------------------------- - -% Print a section header -\makeatletter -\newenvironment{cvsection}[1]{ - \vspace*{\beforesectionheaderspace} - % Set text margins to equal \tabcolsep (6pt by default) - \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} - \textsc{\textbf{#1}} - \end{adjustwidth} - \vspace*{\beforesectionheaderhrulespace} - \hrule height \sectionheaderhrlueheight - \vspace*{\aftersectionheaderspace} -}{} -\makeatother - -% Print a subsection -\makeatletter -% Define toggles checking if titles were defined -\newtoggle{lefttitledefined} -\newtoggle{centertitledefined} -\newtoggle{righttitledefined} - -\newenvironment{cvsubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvpublicationsubsection}[4][2]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[3.5,p] X[r,p] } - \textbf{#2} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvonelinesubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{-5pt} -} -\makeatother diff --git a/tests/reference_files/dummytheme_theme_auxiliary_files/dummy_theme_file.cls b/tests/reference_files/dummytheme_theme_auxiliary_files/dummy_theme_file.cls deleted file mode 100644 index d8fb41d..0000000 --- a/tests/reference_files/dummytheme_theme_auxiliary_files/dummy_theme_file.cls +++ /dev/null @@ -1,301 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] - -% Set up the fonts according to options -\def\mainfontsize{11pt} -\def\mainfontface{Times New Roman} - -\DeclareOption{calibri}{% - \def\mainfontface{Calibri} -} - -% Set up papersize according to options, default to US letter -\def\papersize{letterpaper} -%Set up bool for adjusting vspacing later -\newif\ifpapersize - -\DeclareOption{a4paper}{% - \def\papersize{a4paper} - \papersizetrue -} - -\DeclareOption{letterpaper}{% - \def\papersize{letterpaper} - \papersizefalse -} -\ProcessOptions\relax - -% Set font size and paper type -\LoadClass[\papersize,\mainfontsize]{article} - -% Set document margins -\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} - -% Set font face -% \usepackage{fontspec} -% \setmainfont[SmallCapsFeatures={Renderer=Basic}, -% Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} - -% Remove paragraph indentation -\usepackage[parfill]{parskip} - -% Required for boldface (\bf and \bfseries) tabular columns -\usepackage{array} - -% Required for ifthenelse statements -\usepackage{etoolbox} - -% Suppress page numbers -\pagestyle{empty} - -% Flexible tables -\usepackage{tabu} - -% For custom margins -\usepackage{changepage} - -% To customize lists -\usepackage{enumitem} -% Remove left margin from lists, suppress vertical item separation and set top -% separation to a negative value to suppress a single parskip before lists -\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} - -% For adjusting spacing based on the platform used -\usepackage{ifthen} -\usepackage{ifplatform} - -% For spcaed small caps -\usepackage{microtype} - -\DeclareMicrotypeSet*{smallcapsi} { - encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*,si,scit} -} - -%-------------------------------------------------------------------------------- -% Constants - -%-------------------------------------------------------------------------------- - -\ifthenelse{\equal{\platformname}{\notwindowsname}}{ - \def\namespaceskip{0.575em} - \def\afterheaderspace{1.1pt} - \def\beforesectionheaderspace{5pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{2.85pt} - \def\sectionheaderhrlueheight{0.518pt} - \def\aftersectionheaderspace{-5.8pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-5.75pt} - \else - \def\aftersinglelinesubsectionheaderspace{-20.25pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-11.75pt} - \def\aftermultilinesubsectionheaderspace{-7.75pt} - \def\afteremptysubsectionheaderspace{1.25pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{2.1pt} -}{ - \def\namespaceskip{0.4em} - \def\afterheaderspace{3pt} - \def\beforesectionheaderspace{4.75pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{3pt} - \def\sectionheaderhrlueheight{0.5pt} - \def\aftersectionheaderspace{-4pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-4pt} - \else - \def\aftersinglelinesubsectionheaderspace{-18.5pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-10pt} - \def\aftermultilinesubsectionheaderspace{-6pt} - \def\afteremptysubsectionheaderspace{3pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{4pt} -} - -%-------------------------------------------------------------------------------- -% Header Setup and Printing - -%-------------------------------------------------------------------------------- - -% Address -\makeatletter - -\newcommand\address[1]{\def\@address{#1}} -\address{} - -\newcommand\printaddress{ - \small{\@address} -} - -\makeatother - -% Name -\makeatletter - -\newcommand\name[1]{\def\@name{#1}} -\name{} - -\newcommand\printname{ - \typeout {kokoko} - \typeout \spaceskip - \spaceskip \namespaceskip \relax - \textbf{\LARGE\textls[110]{\textsc{\@name}}} -} - -\makeatother - -% Contacts -\makeatletter - -\newcommand\contacts[1]{\def\@contacts{#1}} -\contacts{} - -\newcommand\printcontacts{ - \small{\@contacts} -} - -\makeatother - -\makeatletter -\newcommand\makeheader{ - \begin{center} - \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } - \printaddress & \printname & \printcontacts \\ - \end{tabu} - \end{center} - \vspace*{\afterheaderspace} -} -\makeatother - -%-------------------------------------------------------------------------------- -% Sections and Subsections - -%-------------------------------------------------------------------------------- - -% Print a section header -\makeatletter -\newenvironment{cvsection}[1]{ - \vspace*{\beforesectionheaderspace} - % Set text margins to equal \tabcolsep (6pt by default) - \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} - \textsc{\textbf{#1}} - \end{adjustwidth} - \vspace*{\beforesectionheaderhrulespace} - \hrule height \sectionheaderhrlueheight - \vspace*{\aftersectionheaderspace} -}{} -\makeatother - -% Print a subsection -\makeatletter -% Define toggles checking if titles were defined -\newtoggle{lefttitledefined} -\newtoggle{centertitledefined} -\newtoggle{righttitledefined} - -\newenvironment{cvsubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvpublicationsubsection}[4][2]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[3.5,p] X[r,p] } - \textbf{#2} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvonelinesubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{-5pt} -} -\makeatother diff --git a/tests/reference_files/latex_files/classic_theme_CV.tex b/tests/reference_files/latex_files/classic_theme_CV.tex deleted file mode 100644 index cd8cc29..0000000 --- a/tests/reference_files/latex_files/classic_theme_CV.tex +++ /dev/null @@ -1,132 +0,0 @@ -\documentclass[10pt, a4paper]{article} - -% Packages: -\usepackage[ - ignoreheadfoot, % set margins without considering header and footer - top=2 cm, % seperation between body and page edge from the top - bottom=2 cm, % seperation between body and page edge from the bottom - left=1.24 cm, % seperation between body and page edge from the left - right=1.24 cm, % seperation between body and page edge from the right - footskip=1.0 cm, % seperation between body and footer - % showframe % for debugging - ]{geometry} % for adjusting page geometry -\usepackage[explicit]{titlesec} % for customizing section titles -\usepackage{tabularx} % for making tables with fixed width columns -\usepackage{array} % tabularx requires this -\usepackage[dvipsnames]{xcolor} % for coloring text -\definecolor{primaryColor}{RGB}{0, 79, 144} % define primary color -\usepackage{enumitem} % for customizing lists -\usepackage{fontawesome5} % for using icons -\usepackage[ - pdftitle={classic theme's CV}, - pdfauthor={classic theme}, - colorlinks=true, - urlcolor=primaryColor -]{hyperref} % for links, metadata and bookmarks -\usepackage[pscoord]{eso-pic} % for floating text on the page -\usepackage{calc} % for calculating lengths -\usepackage{bookmark} % for bookmarks -\usepackage{lastpage} % for getting the total number of pages -\usepackage[default, type1]{sourcesanspro} % for using source sans pro font - -% Some settings: -\pagestyle{empty} % no header or footer -\setcounter{secnumdepth}{0} % no section numbering -\setlength{\parindent}{0pt} % no indentation -\setlength{\topskip}{0pt} % no top skip -\makeatletter -\let\ps@customFooterStyle\ps@plain % Copy the plain style to customFooterStyle -\patchcmd{\ps@customFooterStyle}{\thepage}{ - \color{gray}\textit{\small classic theme | Page \thepage{} of \pageref*{LastPage}} -}{}{} % replace number by desired string -\makeatother -\pagestyle{customFooterStyle} - -\titleformat{\section}{ - % make the font size of the section title large and color it with the primary color - \Large\color{primaryColor} - }{ - }{ - }{ - % print bold title, give 0.15 cm space and draw a line of 0.8 pt thickness - % from the end of the title to the end of the body - \textbf{#1}\hspace{0.15cm}\titlerule[0.8pt]\hspace{-0.1cm} - }[] % section title formatting - -\titlespacing{\section}{ - % left space: - 0pt - }{ - % top space: - 0.2 cm - }{ - % bottom space: - 0.2 cm - } % section title spacing - -\newcolumntype{L}[1]{ - >{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}p{#1} -} % left-aligned fixed width column type -\newcolumntype{R}[1]{ - >{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}p{#1} -} % right-aligned fixed width column type -\newcolumntype{K}[1]{ - >{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X -} % left-aligned flexible width column type -\setlength\tabcolsep{-1.5pt} % no space between columns -\newenvironment{highlights}{ - \begin{itemize}[ - topsep=0pt, - parsep=0.10 cm, - partopsep=0pt, - itemsep=0pt, - after=\vspace{-1\baselineskip}, - leftmargin=0.4 cm + 3pt - ] - }{ - \end{itemize} - } % new environment for highlights - -\newenvironment{header}{ - \setlength{\topsep}{0pt}\par\kern\topsep\centering\color{primaryColor}\linespread{1.5} - }{ - \par\kern\topsep - } % new environment for the header - -\newcommand{\placelastupdatedtext}{% \placetextbox{}{}{} - \AddToShipoutPictureFG*{% Add to current page foreground - \put( - \LenToUnit{\paperwidth-1.24 cm-0.2 cm+0.05cm}, - \LenToUnit{\paperheight-1.0 cm} - ){\vtop{{\null}\makebox[0pt][c]{ - \small\color{gray}\textit{Last updated in January 2024}\hspace{\widthof{Last updated in January 2024}} - }}}% - }% -}% - -% save the original href command in a new command: -\let\hrefWithoutArrow\href - % new command for external links: -\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{#2 \raisebox{.15ex}{\footnotesize \faExternalLink*}}}} - -\let\originalTabularx\tabularx -\let\originalEndTabularx\endtabularx - -\renewenvironment{tabularx}{\bgroup\centering\originalTabularx}{\originalEndTabularx\par\egroup} - -\begin{document} - \placelastupdatedtext - - \begin{header} - \fontsize{30 pt}{30 pt} - \textbf{classic theme} - - \vspace{0.2 cm} - - \normalsize - \end{header} - - \vspace{0.2 cm} - - -\end{document} \ No newline at end of file diff --git a/tests/reference_files/latex_files/mcdowell_theme_CV.tex b/tests/reference_files/latex_files/mcdowell_theme_CV.tex deleted file mode 100644 index 47e6b26..0000000 --- a/tests/reference_files/latex_files/mcdowell_theme_CV.tex +++ /dev/null @@ -1,50 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -% The font could be set to Windows-specific Calibri by using the 'calibri' option -\documentclass[]{mcdowellcv} - -% For mathematical symbols -\usepackage{amsmath} - -% For links -\usepackage[colorlinks]{hyperref} -\usepackage{xcolor} - -% for icons -\usepackage{fontawesome5} - -% save the original href command in a new command: -\let\hrefWithoutArrow\href - % new command for external links: -\renewcommand{\href}[2]{\textnormal{\hrefWithoutArrow{#1}{\color{blue}\mbox{#2 \raisebox{.15ex}{\scriptsize \faExternalLink*}}}}} - -% Set applicant's personal data for header -\name{mcdowell theme} -\address{} -\contacts{ } - -\begin{document} - \makeheader - - -\end{document} \ No newline at end of file diff --git a/tests/reference_files/latex_files/moderncv_theme_CV.tex b/tests/reference_files/latex_files/moderncv_theme_CV.tex deleted file mode 100644 index fc887ab..0000000 --- a/tests/reference_files/latex_files/moderncv_theme_CV.tex +++ /dev/null @@ -1,70 +0,0 @@ -%% start of file `template.tex'. -%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv). -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License version 1.3c, -% available at http://www.latex-project.org/lppl/. - -\documentclass[10pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman') - -% moderncv themes -\moderncvstyle{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy' -\moderncvcolor{blue} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red' -%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name - -% adjust the page margins -\usepackage[scale=0.75]{geometry} -\setlength{\hintscolumnwidth}{3.8 cm} % if you want to change the width of the column with the dates -%\setlength{\makecvheadnamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks... - -% font loading -% for luatex and xetex, do not use inputenc and fontenc -% see https://tex.stackexchange.com/a/496643 -\ifxetexorluatex - \usepackage{fontspec} - \usepackage{unicode-math} - \defaultfontfeatures{Ligatures=TeX} - \setmainfont{Latin Modern Roman} - \setsansfont{Latin Modern Sans} - \setmonofont{Latin Modern Mono} - \setmathfont{Latin Modern Math} -\else - \usepackage[T1]{fontenc} - \usepackage{lmodern} -\fi - -% document language -\usepackage[english]{babel} % FIXME: using spanish breaks moderncv - -% personal data -\name{moderncv theme}{} -% \familyname{} - -% Social icons -% \social[linkedin]{john.doe} % optional, remove / comment the line if not wanted -% \social[xing]{john\_doe} % optional, remove / comment the line if not wanted -% \social[twitter]{ji\_doe} % optional, remove / comment the line if not wanted -% \social[github]{jdoe} % optional, remove / comment the line if not wanted -% \social[gitlab]{jdoe} % optional, remove / comment the line if not wanted -% \social[stackoverflow]{0000000/johndoe} % optional, remove / comment the line if not wanted -% \social[bitbucket]{jdoe} % optional, remove / comment the line if not wanted -% \social[skype]{jdoe} % optional, remove / comment the line if not wanted -% \social[orcid]{0000-0000-000-000} % optional, remove / comment the line if not wanted -% \social[researchgate]{jdoe} % optional, remove / comment the line if not wanted -% \social[researcherid]{jdoe} % optional, remove / comment the line if not wanted -% \social[telegram]{jdoe} % optional, remove / comment the line if not wanted -% \social[whatsapp]{12345678901} % optional, remove / comment the line if not wanted -% \social[signal]{12345678901} % optional, remove / comment the line if not wanted -% \social[matrix]{@johndoe:matrix.org} % optional, remove / comment the line if not wanted -% \social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted - -\begin{document} - \maketitle - - % save the original href command in a new command: - \let\hrefWithoutArrow\href - % new command for external links: - \renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{\color{color1} #2 \raisebox{.15ex}{\footnotesize \faExternalLink*}}}} - - -\end{document} \ No newline at end of file diff --git a/tests/reference_files/markdown_and_html_files/classic_theme_CV.md b/tests/reference_files/markdown_and_html_files/classic_theme_CV.md deleted file mode 100644 index 19b8d40..0000000 --- a/tests/reference_files/markdown_and_html_files/classic_theme_CV.md +++ /dev/null @@ -1,4 +0,0 @@ -# classic theme's CV - - - diff --git a/tests/reference_files/markdown_and_html_files/classic_theme_CV.md_PASTETOGRAMMARLY.html b/tests/reference_files/markdown_and_html_files/classic_theme_CV.md_PASTETOGRAMMARLY.html deleted file mode 100644 index e99cb76..0000000 --- a/tests/reference_files/markdown_and_html_files/classic_theme_CV.md_PASTETOGRAMMARLY.html +++ /dev/null @@ -1 +0,0 @@ -

classic theme's CV

\ No newline at end of file diff --git a/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md b/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md deleted file mode 100644 index 73386e4..0000000 --- a/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md +++ /dev/null @@ -1,4 +0,0 @@ -# mcdowell theme's CV - - - diff --git a/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md_PASTETOGRAMMARLY.html b/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md_PASTETOGRAMMARLY.html deleted file mode 100644 index 28b6950..0000000 --- a/tests/reference_files/markdown_and_html_files/mcdowell_theme_CV.md_PASTETOGRAMMARLY.html +++ /dev/null @@ -1 +0,0 @@ -

mcdowell theme's CV

\ No newline at end of file diff --git a/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md b/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md deleted file mode 100644 index 38db916..0000000 --- a/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md +++ /dev/null @@ -1,4 +0,0 @@ -# moderncv theme's CV - - - diff --git a/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md_PASTETOGRAMMARLY.html b/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md_PASTETOGRAMMARLY.html deleted file mode 100644 index c831b2e..0000000 --- a/tests/reference_files/markdown_and_html_files/moderncv_theme_CV.md_PASTETOGRAMMARLY.html +++ /dev/null @@ -1 +0,0 @@ -

moderncv theme's CV

\ No newline at end of file diff --git a/tests/reference_files/mcdowell_theme_auxiliary_files/mcdowellcv.cls b/tests/reference_files/mcdowell_theme_auxiliary_files/mcdowellcv.cls deleted file mode 100644 index d8fb41d..0000000 --- a/tests/reference_files/mcdowell_theme_auxiliary_files/mcdowellcv.cls +++ /dev/null @@ -1,301 +0,0 @@ -%% The MIT License (MIT) -%% -%% Copyright (c) 2015 Daniil Belyakov -%% -%% Permission is hereby granted, free of charge, to any person obtaining a copy -%% of this software and associated documentation files (the "Software"), to deal -%% in the Software without restriction, including without limitation the rights -%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -%% copies of the Software, and to permit persons to whom the Software is -%% furnished to do so, subject to the following conditions: -%% -%% The above copyright notice and this permission notice shall be included in all -%% copies or substantial portions of the Software. -%% -%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -%% SOFTWARE. - -\ProvidesClass{mcdowellcv}[2022/03/18 v1.2.0 McDowell CV class] - -% Set up the fonts according to options -\def\mainfontsize{11pt} -\def\mainfontface{Times New Roman} - -\DeclareOption{calibri}{% - \def\mainfontface{Calibri} -} - -% Set up papersize according to options, default to US letter -\def\papersize{letterpaper} -%Set up bool for adjusting vspacing later -\newif\ifpapersize - -\DeclareOption{a4paper}{% - \def\papersize{a4paper} - \papersizetrue -} - -\DeclareOption{letterpaper}{% - \def\papersize{letterpaper} - \papersizefalse -} -\ProcessOptions\relax - -% Set font size and paper type -\LoadClass[\papersize,\mainfontsize]{article} - -% Set document margins -\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} - -% Set font face -% \usepackage{fontspec} -% \setmainfont[SmallCapsFeatures={Renderer=Basic}, -% Ligatures={TeX, NoCommon, NoDiscretionary}]{\mainfontface} - -% Remove paragraph indentation -\usepackage[parfill]{parskip} - -% Required for boldface (\bf and \bfseries) tabular columns -\usepackage{array} - -% Required for ifthenelse statements -\usepackage{etoolbox} - -% Suppress page numbers -\pagestyle{empty} - -% Flexible tables -\usepackage{tabu} - -% For custom margins -\usepackage{changepage} - -% To customize lists -\usepackage{enumitem} -% Remove left margin from lists, suppress vertical item separation and set top -% separation to a negative value to suppress a single parskip before lists -\setlist{leftmargin=*, noitemsep, topsep=-1\parskip} - -% For adjusting spacing based on the platform used -\usepackage{ifthen} -\usepackage{ifplatform} - -% For spcaed small caps -\usepackage{microtype} - -\DeclareMicrotypeSet*{smallcapsi} { - encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, - shape = {sc*,si,scit} -} - -%-------------------------------------------------------------------------------- -% Constants - -%-------------------------------------------------------------------------------- - -\ifthenelse{\equal{\platformname}{\notwindowsname}}{ - \def\namespaceskip{0.575em} - \def\afterheaderspace{1.1pt} - \def\beforesectionheaderspace{5pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{2.85pt} - \def\sectionheaderhrlueheight{0.518pt} - \def\aftersectionheaderspace{-5.8pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-5.75pt} - \else - \def\aftersinglelinesubsectionheaderspace{-20.25pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-11.75pt} - \def\aftermultilinesubsectionheaderspace{-7.75pt} - \def\afteremptysubsectionheaderspace{1.25pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{2.1pt} -}{ - \def\namespaceskip{0.4em} - \def\afterheaderspace{3pt} - \def\beforesectionheaderspace{4.75pt} - \def\sectionheadermargin{6pt} - \def\beforesectionheaderhrulespace{3pt} - \def\sectionheaderhrlueheight{0.5pt} - \def\aftersectionheaderspace{-4pt} - - \ifpapersize - \def\aftersinglelinesubsectionheaderspace{-4pt} - \else - \def\aftersinglelinesubsectionheaderspace{-18.5pt} - \fi - - \def\afterdoublelinesubsectionheaderspace{-10pt} - \def\aftermultilinesubsectionheaderspace{-6pt} - \def\afteremptysubsectionheaderspace{3pt} - \def\subsectionmargin{9pt} - \def\aftersubsectionspace{4pt} -} - -%-------------------------------------------------------------------------------- -% Header Setup and Printing - -%-------------------------------------------------------------------------------- - -% Address -\makeatletter - -\newcommand\address[1]{\def\@address{#1}} -\address{} - -\newcommand\printaddress{ - \small{\@address} -} - -\makeatother - -% Name -\makeatletter - -\newcommand\name[1]{\def\@name{#1}} -\name{} - -\newcommand\printname{ - \typeout {kokoko} - \typeout \spaceskip - \spaceskip \namespaceskip \relax - \textbf{\LARGE\textls[110]{\textsc{\@name}}} -} - -\makeatother - -% Contacts -\makeatletter - -\newcommand\contacts[1]{\def\@contacts{#1}} -\contacts{} - -\newcommand\printcontacts{ - \small{\@contacts} -} - -\makeatother - -\makeatletter -\newcommand\makeheader{ - \begin{center} - \begin{tabu} to 1\textwidth { X[l,m] X[2,c,m] X[r,m] } - \printaddress & \printname & \printcontacts \\ - \end{tabu} - \end{center} - \vspace*{\afterheaderspace} -} -\makeatother - -%-------------------------------------------------------------------------------- -% Sections and Subsections - -%-------------------------------------------------------------------------------- - -% Print a section header -\makeatletter -\newenvironment{cvsection}[1]{ - \vspace*{\beforesectionheaderspace} - % Set text margins to equal \tabcolsep (6pt by default) - \begin{adjustwidth}{\sectionheadermargin}{\sectionheadermargin} - \textsc{\textbf{#1}} - \end{adjustwidth} - \vspace*{\beforesectionheaderhrulespace} - \hrule height \sectionheaderhrlueheight - \vspace*{\aftersectionheaderspace} -}{} -\makeatother - -% Print a subsection -\makeatletter -% Define toggles checking if titles were defined -\newtoggle{lefttitledefined} -\newtoggle{centertitledefined} -\newtoggle{righttitledefined} - -\newenvironment{cvsubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvpublicationsubsection}[4][2]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[3.5,p] X[r,p] } - \textbf{#2} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{\aftersubsectionspace} -} - -\newenvironment{cvonelinesubsection}[4][1]{ - \notblank{#2}{\toggletrue{lefttitledefined}}{} - \notblank{#3}{\toggletrue{centertitledefined}}{} - \notblank{#4}{\toggletrue{righttitledefined}}{} - \ifboolexpr{togl {lefttitledefined} or togl {centertitledefined} or togl {righttitledefined}}{ - \begin{tabu} to 1\textwidth { X[l,p] X[c,p] X[r,p] } - \textbf{#2} & \textbf{#3} & \textbf{#4} \\ - \end{tabu} - % Add space according to the specidied number of lines - \ifnumcomp{#1}{=}{1}{\vspace*{\aftersinglelinesubsectionheaderspace}}{ - \ifnumcomp{#1}{=}{2}{\vspace*{\afterdoublelinesubsectionheaderspace}}{ - \vspace*{\aftermultilinesubsectionheaderspace} - } - } - }{ - \vspace*{\afteremptysubsectionheaderspace} - } - \togglefalse{lefttitledefined} - \togglefalse{centertitledefined} - \togglefalse{righttitledefined} - \begin{adjustwidth}{\subsectionmargin}{\subsectionmargin} -} -{ - \end{adjustwidth} - \vspace*{-5pt} -} -\makeatother diff --git a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.aux b/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.aux deleted file mode 100644 index d98a3ad..0000000 --- a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.aux +++ /dev/null @@ -1,5 +0,0 @@ -\relax -\providecommand\hyper@newdestlabel[2]{} -\providecommand\HyField@AuxAddToFields[1]{} -\providecommand\HyField@AuxAddToCoFields[2]{} -\gdef \@abspage@last{1} diff --git a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.log b/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.log deleted file mode 100644 index 3f96b02..0000000 --- a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.log +++ /dev/null @@ -1,458 +0,0 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2024.2.13) 14 FEB 2024 20:22 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**c:/GIT/ARCHIVE/rendercv-v1/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.tex -(c:/GIT/ARCHIVE/rendercv-v1/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.tex -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> -(./mcdowellcv.cls -Document Class: mcdowellcv 2022/03/18 v1.2.0 McDowell CV class -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/article.cls -Document Class: article 2023/05/17 v1.4n Standard LaTeX document class -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/size11.clo -File: size11.clo 2023/05/17 v1.4n Standard LaTeX file (size option) -) -\c@part=\count187 -\c@section=\count188 -\c@subsection=\count189 -\c@subsubsection=\count190 -\c@paragraph=\count191 -\c@subparagraph=\count192 -\c@figure=\count193 -\c@table=\count194 -\abovecaptionskip=\skip48 -\belowcaptionskip=\skip49 -\bibindent=\dimen140 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2020/01/02 v5.9 Page Geometry - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2022/05/29 v1.15 key=value parser (DPC) -\KV@toks@=\toks17 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifvtex.sty -Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/iftex.sty -Package: iftex 2022/02/03 v1.0f TeX engine tests -)) -\Gm@cnth=\count195 -\Gm@cntv=\count196 -\c@Gm@tempcnt=\count197 -\Gm@bindingoffset=\dimen141 -\Gm@wd@mp=\dimen142 -\Gm@odd@mp=\dimen143 -\Gm@even@mp=\dimen144 -\Gm@layoutwidth=\dimen145 -\Gm@layoutheight=\dimen146 -\Gm@layouthoffset=\dimen147 -\Gm@layoutvoffset=\dimen148 -\Gm@dimlist=\toks18 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/parskip/parskip.sty -Package: parskip 2021-03-14 v2.0h non-zero parskip adjustments - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvoptions/kvoptions.sty -Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/etoolbox/etoolbox.sty -Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) -\etb@tempcnta=\count198 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/array.sty -Package: array 2023/10/16 v2.5g Tabular extension package (FMi) -\col@sep=\dimen149 -\ar@mcellbox=\box51 -\extrarowheight=\dimen150 -\NC@list=\toks19 -\extratabsurround=\skip50 -\backup@length=\skip51 -\ar@cellbox=\box52 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tabu/tabu.sty -Package: tabu 2019/01/11 v2.9 - flexible LaTeX tabulars (FC+tabu-fixed) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/varwidth/varwidth.sty -Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages -\@vwid@box=\box53 -\sift@deathcycles=\count199 -\@vwid@loff=\dimen151 -\@vwid@roff=\dimen152 -) -\c@taburow=\count266 -\tabu@nbcols=\count267 -\tabu@cnt=\count268 -\tabu@Xcol=\count269 -\tabu@alloc=\count270 -\tabu@nested=\count271 -\tabu@target=\dimen153 -\tabu@spreadtarget=\dimen154 -\tabu@naturalX=\dimen155 -\tabucolX=\dimen156 -\tabu@Xsum=\dimen157 -\extrarowdepth=\dimen158 -\abovetabulinesep=\dimen159 -\belowtabulinesep=\dimen160 -\tabustrutrule=\dimen161 -\tabu@thebody=\toks20 -\tabu@footnotes=\toks21 -\tabu@box=\box54 -\tabu@arstrutbox=\box55 -\tabu@hleads=\box56 -\tabu@vleads=\box57 -\tabu@cellskip=\skip52 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/changepage/changepage.sty -Package: changepage 2009/10/20 v1.0c check page and change page layout -\c@cp@cntr=\count272 -\cp@tempcnt=\count273 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/enumitem/enumitem.sty -Package: enumitem 2019/06/20 v3.9 Customized lists -\labelindent=\skip53 -\enit@outerparindent=\dimen162 -\enit@toks=\toks22 -\enit@inbox=\box58 -\enit@count@id=\count274 -\enitdp@description=\count275 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/ifthen.sty -Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/ifplatform/ifplatform.sty -Package: ifplatform 2017/10/13 v0.4a Testing for the operating system - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/shellesc.sty -Package: shellesc 2023/07/08 v1.0d unified shell escape interface for LaTeX -Package shellesc Info: Restricted shell escape enabled on input line 77. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/infwarerr/infwarerr.sty -Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) -) -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/catchfile/catchfile.sty -Package: catchfile 2019/12/09 v1.8 Catch the contents of a file (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/etexcmds/etexcmds.sty -Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifluatex.sty -Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. -) - -Package ifplatform Warning: - shell escape is disabled, so I can only detect \ifwindows. - -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype.sty -Package: microtype 2023/03/13 v3.1a Micro-typographical refinements (RS) -\MT@toks=\toks23 -\MT@tempbox=\box59 -\MT@count=\count276 -LaTeX Info: Redefining \noprotrusionifhmode on input line 1059. -LaTeX Info: Redefining \leftprotrusion on input line 1060. -\MT@prot@toks=\toks24 -LaTeX Info: Redefining \rightprotrusion on input line 1078. -LaTeX Info: Redefining \textls on input line 1368. -\MT@outer@kern=\dimen163 -LaTeX Info: Redefining \textmicrotypecontext on input line 1988. -\MT@listname@count=\count277 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype-pdftex.def -File: microtype-pdftex.def 2023/03/13 v3.1a Definitions specific to pdftex (RS) -LaTeX Info: Redefining \lsstyle on input line 902. -LaTeX Info: Redefining \lslig on input line 902. -\MT@outer@space=\skip54 -) -Package microtype Info: Loading configuration file microtype.cfg. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype.cfg -File: microtype.cfg 2023/03/13 v3.1a microtype main configuration file (RS) -))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2023/05/13 v2.17o AMS math features -\@mathmargin=\skip55 - -For additional information on amsmath, use the `?' option. -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2021/08/26 v2.01 AMS text - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 generic functions -\@emptytoks=\toks25 -\ex@=\dimen164 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d Bold Symbols -\pmbraise@=\dimen165 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 2022/04/08 v2.04 operator names -) -\inf@bad=\count278 -LaTeX Info: Redefining \frac on input line 234. -\uproot@=\count279 -\leftroot@=\count280 -LaTeX Info: Redefining \overline on input line 399. -LaTeX Info: Redefining \colon on input line 410. -\classnum@=\count281 -\DOTSCASE@=\count282 -LaTeX Info: Redefining \ldots on input line 496. -LaTeX Info: Redefining \dots on input line 499. -LaTeX Info: Redefining \cdots on input line 620. -\Mathstrutbox@=\box60 -\strutbox@=\box61 -LaTeX Info: Redefining \big on input line 722. -LaTeX Info: Redefining \Big on input line 723. -LaTeX Info: Redefining \bigg on input line 724. -LaTeX Info: Redefining \Bigg on input line 725. -\big@size=\dimen166 -LaTeX Font Info: Redeclaring font encoding OML on input line 743. -LaTeX Font Info: Redeclaring font encoding OMS on input line 744. -\macc@depth=\count283 -LaTeX Info: Redefining \bmod on input line 905. -LaTeX Info: Redefining \pmod on input line 910. -LaTeX Info: Redefining \smash on input line 940. -LaTeX Info: Redefining \relbar on input line 970. -LaTeX Info: Redefining \Relbar on input line 971. -\c@MaxMatrixCols=\count284 -\dotsspace@=\muskip16 -\c@parentequation=\count285 -\dspbrk@lvl=\count286 -\tag@help=\toks26 -\row@=\count287 -\column@=\count288 -\maxfields@=\count289 -\andhelp@=\toks27 -\eqnshift@=\dimen167 -\alignsep@=\dimen168 -\tagshift@=\dimen169 -\tagwidth@=\dimen170 -\totwidth@=\dimen171 -\lineht@=\dimen172 -\@envbody=\toks28 -\multlinegap=\skip56 -\multlinetaggap=\skip57 -\mathdisplay@stack=\toks29 -LaTeX Info: Redefining \[ on input line 2953. -LaTeX Info: Redefining \] on input line 2954. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdfescape/pdfescape.sty -Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hycolor/hycolor.sty -Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/auxhook/auxhook.sty -Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/refcount/refcount.sty -Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) -) -\c@section@level=\count290 -) -\@linkdim=\dimen173 -\Hy@linkcounter=\count291 -\Hy@pagecounter=\count292 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/intcalc/intcalc.sty -Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) -) -\Hy@SavedSpaceFactor=\count293 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) -Now handling font encoding PU ... -... no UTF-8 mapping file for font encoding PU -) -Package hyperref Info: Option `colorlinks' set `true' on input line 4062. -Package hyperref Info: Hyper figures OFF on input line 4179. -Package hyperref Info: Link nesting OFF on input line 4184. -Package hyperref Info: Hyper index ON on input line 4187. -Package hyperref Info: Plain pages OFF on input line 4194. -Package hyperref Info: Backreferencing OFF on input line 4199. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4446. -\c@Hy@tempcnt=\count294 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip17 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 4784. -\XeTeXLinkMargin=\dimen174 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bitset/bitset.sty -Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) -)) -\Fld@menulength=\count295 -\Field@Width=\dimen175 -\Fld@charsize=\dimen176 -Package hyperref Info: Hyper figures OFF on input line 6063. -Package hyperref Info: Link nesting OFF on input line 6068. -Package hyperref Info: Hyper index ON on input line 6071. -Package hyperref Info: backreferencing OFF on input line 6078. -Package hyperref Info: Link coloring ON on input line 6081. -Package hyperref Info: Link coloring with OCG OFF on input line 6088. -Package hyperref Info: PDF/A mode OFF on input line 6093. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atbegshi-ltx.sty -Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi -package with kernel methods -) -\Hy@abspage=\count296 -\c@Item=\count297 -\c@Hfootnote=\count298 -) -Package hyperref Info: Driver (autodetected): hpdftex. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2024-01-20 v7.01h Hyperref driver for pdfTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atveryend-ltx.sty -Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package -with kernel methods -) -\Fld@listcount=\count299 -\c@bookmark@seq@number=\count300 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) -) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. -) -\Hy@SectionHShift=\skip58 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/xcolor/xcolor.sty -Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package xcolor Info: Driver file: pdftex.def on input line 274. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/mathcolor.ltx) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. -Package xcolor Info: Model `RGB' extended on input line 1366. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3kernel/expl3.sty -Package: expl3 2024-01-22 L3 programming layer (loader) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX) -\l__color_backend_stack_int=\count301 -\l__pdf_internal_box=\box62 -)) -Package: fontawesome5 2022/05/02 v5.15.4 Font Awesome 5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty -Package: l3keys2e 2023-10-10 LaTeX2e option processing using LaTeX3 keys -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/xparse/xparse.sty -Package: xparse 2023-10-10 L3 Experimental document command parser -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-generic-helper.sty -Package: fontawesome5-generic-helper 2022/05/02 v5.15.4 non-uTeX helper for fontawesome5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-mapping.def))) (./mcdowell_theme_CV.aux) -\openout1 = `mcdowell_theme_CV.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 46. -LaTeX Font Info: ... okay on input line 46. - -*geometry* driver: auto-detecting -*geometry* detected driver: pdftex -*geometry* verbose mode - [ preamble ] result: -* driver: pdftex -* paper: -* layout: -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: -* h-part:(L,W,R)=(54.2025pt, 505.89pt, 54.2025pt) -* v-part:(T,H,B)=(43.36243pt, 708.24513pt, 43.36243pt) -* \paperwidth=614.295pt -* \paperheight=794.96999pt -* \textwidth=505.89pt -* \textheight=708.24513pt -* \oddsidemargin=-18.06749pt -* \evensidemargin=-18.06749pt -* \topmargin=-65.90756pt -* \headheight=12.0pt -* \headsep=25.0pt -* \topskip=11.0pt -* \footskip=30.0pt -* \marginparwidth=59.0pt -* \marginparsep=10.0pt -* \columnsep=10.0pt -* \skip\footins=10.0pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidefalse -* \@mparswitchfalse -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -LaTeX Info: Redefining \microtypecontext on input line 46. -Package microtype Info: Applying patch `item' on input line 46. -Package microtype Info: Applying patch `toc' on input line 46. -Package microtype Info: Applying patch `eqnum' on input line 46. -Package microtype Info: Applying patch `footnote' on input line 46. -Package microtype Info: Applying patch `verbatim' on input line 46. -Package microtype Info: Generating PDF output. -Package microtype Info: Character protrusion enabled (level 2). -Package microtype Info: Using protrusion set `smallcapsi'. -Package microtype Info: Automatic font expansion enabled (level 2), -(microtype) stretch: 20, shrink: 20, step: 1, non-selected. -Package microtype Info: Using expansion set `smallcapsi'. -LaTeX Info: Redefining \showhyphens on input line 46. -Package microtype Info: No adjustment of tracking. -Package microtype Info: No adjustment of interword spacing. -Package microtype Info: No adjustment of character kerning. -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/mt-cmr.cfg -File: mt-cmr.cfg 2013/05/19 v2.2 microtype config. file: Computer Modern Roman (RS) -) -Package hyperref Info: Link coloring ON on input line 46. - (./mcdowell_theme_CV.out) (./mcdowell_theme_CV.out) -\@outlinefile=\write3 -\openout3 = `mcdowell_theme_CV.out'. - - -kokoko -\spaceskip -[1 - -{c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./mcdowell_theme_CV.aux) - *********** -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> - *********** - - -LaTeX Font Warning: Some font shapes were not available, defaults substituted. - -Package rerunfilecheck Info: File `mcdowell_theme_CV.out' has not changed. -(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. - ) -Here is how much of TeX's memory you used: - 15808 strings out of 476161 - 276022 string characters out of 5790867 - 1924978 words of memory out of 5000000 - 37652 multiletter control sequences out of 15000+600000 - 565222 words of font info for 64 fonts, out of 8000000 for 9000 - 14 hyphenation exceptions out of 8191 - 77i,16n,79p,1083b,640s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on mcdowell_theme_CV.pdf (1 page, 10780 bytes). -PDF statistics: - 18 PDF objects out of 1000 (max. 8388607) - 12 compressed objects within 1 object stream - 2 named destinations out of 1000 (max. 500000) - 4609 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.pdf b/tests/reference_files/mcdowell_theme_full/mcdowell_theme_CV.pdf deleted file mode 100644 index 81e4b855808aeeeff45968c36c6f96951545ff92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10780 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 patch level 1 -L3 programming layer <2024-01-22> -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncv.cls -Document Class: moderncv 2022-02-21 v2.3.1 modern curriculum vitae and letter document class -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/size10.clo -File: size10.clo 2023/05/17 v1.4n Standard LaTeX file (size option) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/etoolbox/etoolbox.sty -Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) -\etb@tempcnta=\count187 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/ifthen.sty -Package: ifthen 2022/04/13 v1.1d Standard LaTeX ifthen package (DPC) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/xcolor/xcolor.sty -Package: xcolor 2023/11/15 v3.01 LaTeX color extensions (UK) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package xcolor Info: Driver file: pdftex.def on input line 274. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/mathcolor.ltx) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1350. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1354. -Package xcolor Info: Model `RGB' extended on input line 1366. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1368. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1369. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1370. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1371. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1372. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1373. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/colortbl/colortbl.sty -Package: colortbl 2022/06/20 v1.0f Color table columns (DPC) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/array.sty -Package: array 2023/10/16 v2.5g Tabular extension package (FMi) -\col@sep=\dimen140 -\ar@mcellbox=\box51 -\extrarowheight=\dimen141 -\NC@list=\toks17 -\extratabsurround=\skip48 -\backup@length=\skip49 -\ar@cellbox=\box52 -) -\everycr=\toks18 -\minrowclearance=\skip50 -\rownum=\count188 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/iftex.sty -Package: iftex 2022/02/03 v1.0f TeX engine tests -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip16 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2022/05/29 v1.15 key=value parser (DPC) -\KV@toks@=\toks19 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 2021/08/11 v1.11 sin cos tan (DPC) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration -) -Package graphics Info: Driver file: pdftex.def on input line 107. -) -\Gin@req@height=\dimen142 -\Gin@req@width=\dimen143 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -Package: fancyhdr 2022/11/09 v4.1 Extensive control of page headers and footers -\f@nch@headwidth=\skip51 -\f@nch@O@elh=\skip52 -\f@nch@O@erh=\skip53 -\f@nch@O@olh=\skip54 -\f@nch@O@orh=\skip55 -\f@nch@O@elf=\skip56 -\f@nch@O@erf=\skip57 -\f@nch@O@olf=\skip58 -\f@nch@O@orf=\skip59 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/tweaklist.sty) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/tools/calc.sty -Package: calc 2023/07/08 v4.3 Infix arithmetic (KKT,FJ) -\calc@Acount=\count189 -\calc@Bcount=\count190 -\calc@Adimen=\dimen144 -\calc@Bdimen=\dimen145 -\calc@Askip=\skip60 -\calc@Bskip=\skip61 -LaTeX Info: Redefining \setlength on input line 80. -LaTeX Info: Redefining \addtolength on input line 81. -\calc@Ccount=\count191 -\calc@Cskip=\skip62 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/xparse/xparse.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3kernel/expl3.sty -Package: expl3 2024-01-22 L3 programming layer (loader) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -File: l3backend-pdftex.def 2024-01-04 L3 backend support: PDF output (pdfTeX) -\l__color_backend_stack_int=\count192 -\l__pdf_internal_box=\box53 -)) -Package: xparse 2023-10-10 L3 Experimental document command parser -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype.sty -Package: microtype 2023/03/13 v3.1a Micro-typographical refinements (RS) -\MT@toks=\toks20 -\MT@tempbox=\box54 -\MT@count=\count193 -LaTeX Info: Redefining \noprotrusionifhmode on input line 1059. -LaTeX Info: Redefining \leftprotrusion on input line 1060. -\MT@prot@toks=\toks21 -LaTeX Info: Redefining \rightprotrusion on input line 1078. -LaTeX Info: Redefining \textls on input line 1368. -\MT@outer@kern=\dimen146 -LaTeX Info: Redefining \textmicrotypecontext on input line 1988. -\MT@listname@count=\count194 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype-pdftex.def -File: microtype-pdftex.def 2023/03/13 v3.1a Definitions specific to pdftex (RS) -LaTeX Info: Redefining \lsstyle on input line 902. -LaTeX Info: Redefining \lslig on input line 902. -\MT@outer@space=\skip63 -) -Package microtype Info: Loading configuration file microtype.cfg. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/microtype.cfg -File: microtype.cfg 2023/03/13 v3.1a microtype main configuration file (RS) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvcollection.sty -Package: moderncvcollection 2022-02-21 v2.3.1 moderncv collections -\c@collection@iterator=\count195 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvcompatibility.sty -Package: moderncvcompatibility 2022-02-21 v2.3.1 modern curriculum vitae and letter compatibility patches -) -\c@collection@phones@count=\count196 -\c@collection@socials@count=\count197 -\c@cvcolumnscounter=\count198 -\c@cvcolumnsautowidthcounter=\count199 -\c@tmpiteratorcounter=\count266 -\cvcolumnsdummywidth=\skip64 -\cvcolumnswidth=\skip65 -\cvcolumnsautowidth=\skip66 -\cvcolumnautowidth=\skip67 -\bibindent=\skip68 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvstyleclassic.sty -Package: moderncvstyleclassic 2022-02-21 v2.3.1 modern curriculum vitae and letter style scheme: classic - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncviconssymbols.sty -Package: moderncviconssymbols 2021-12-12 v2.2.0 modern curriculum vitae icons selector - - -Class moderncv Warning: "academicons requires xetex/luatex to work. Using alternatives.". - -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncviconsawesome.sty -Package: moderncviconsawesome 2022-02-21 v2.3.1 modern curriculum vitae icons: awesome - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5.sty -Package: fontawesome5 2022/05/02 v5.15.4 Font Awesome 5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty -Package: l3keys2e 2023-10-10 LaTeX2e option processing using LaTeX3 keys -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-generic-helper.sty -Package: fontawesome5-generic-helper 2022/05/02 v5.15.4 non-uTeX helper for fontawesome5 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/fontawesome5-mapping.def)))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncviconstikz.sty -Package: moderncviconstikz 2022-02-21 v2.3.1 modern curriculum vitae and letter icons: tickz - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex -\pgfutil@everybye=\toks22 -\pgfutil@tempdima=\dimen147 -\pgfutil@tempdimb=\dimen148 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def -\pgfutil@abb=\box55 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/pgf.revision.tex) -Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10) -)) -Package: pgf 2023-01-15 v3.1.10 (3.1.10) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex -Package: pgfsys 2023-01-15 v3.1.10 (3.1.10) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex -\pgfkeys@pathtoks=\toks23 -\pgfkeys@temptoks=\toks24 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex -\pgfkeys@tmptoks=\toks25 -)) -\pgf@x=\dimen149 -\pgf@y=\dimen150 -\pgf@xa=\dimen151 -\pgf@ya=\dimen152 -\pgf@xb=\dimen153 -\pgf@yb=\dimen154 -\pgf@xc=\dimen155 -\pgf@yc=\dimen156 -\pgf@xd=\dimen157 -\pgf@yd=\dimen158 -\w@pgf@writea=\write3 -\r@pgf@reada=\read2 -\c@pgf@counta=\count267 -\c@pgf@countb=\count268 -\c@pgf@countc=\count269 -\c@pgf@countd=\count270 -\t@pgf@toka=\toks26 -\t@pgf@tokb=\toks27 -\t@pgf@tokc=\toks28 -\pgf@sys@id@count=\count271 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg -File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10) -) -Driver file for pgf: pgfsys-pdftex.def - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def -File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def -File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10) -))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex -File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfsyssoftpath@smallbuffer@items=\count272 -\pgfsyssoftpath@bigbuffer@items=\count273 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex -File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex -Package: pgfcore 2023-01-15 v3.1.10 (3.1.10) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex -\pgfmath@dimen=\dimen159 -\pgfmath@count=\count274 -\pgfmath@box=\box56 -\pgfmath@toks=\toks29 -\pgfmath@stack@operand=\toks30 -\pgfmath@stack@operation=\toks31 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex -\c@pgfmathroundto@lastzeros=\count275 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex -File: pgfcorepoints.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@picminx=\dimen160 -\pgf@picmaxx=\dimen161 -\pgf@picminy=\dimen162 -\pgf@picmaxy=\dimen163 -\pgf@pathminx=\dimen164 -\pgf@pathmaxx=\dimen165 -\pgf@pathminy=\dimen166 -\pgf@pathmaxy=\dimen167 -\pgf@xx=\dimen168 -\pgf@xy=\dimen169 -\pgf@yx=\dimen170 -\pgf@yy=\dimen171 -\pgf@zx=\dimen172 -\pgf@zy=\dimen173 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex -File: pgfcorepathconstruct.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@path@lastx=\dimen174 -\pgf@path@lasty=\dimen175 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex -File: pgfcorepathusage.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@shorten@end@additional=\dimen176 -\pgf@shorten@start@additional=\dimen177 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex -File: pgfcorescopes.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfpic=\box57 -\pgf@hbox=\box58 -\pgf@layerbox@main=\box59 -\pgf@picture@serial@count=\count276 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex -File: pgfcoregraphicstate.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgflinewidth=\dimen178 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex -File: pgfcoretransformations.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@pt@x=\dimen179 -\pgf@pt@y=\dimen180 -\pgf@pt@temp=\dimen181 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex -File: pgfcorequick.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex -File: pgfcoreobjects.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex -File: pgfcorepathprocessing.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex -File: pgfcorearrows.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfarrowsep=\dimen182 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex -File: pgfcoreshade.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@max=\dimen183 -\pgf@sys@shading@range@num=\count277 -\pgf@shadingcount=\count278 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex -File: pgfcoreimage.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex -File: pgfcoreexternal.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfexternal@startupbox=\box60 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex -File: pgfcorelayers.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex -File: pgfcoretransparency.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex -File: pgfcorepatterns.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex -File: pgfcorerdf.code.tex 2023-01-15 v3.1.10 (3.1.10) -))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex -File: pgfmoduleshapes.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfnodeparttextbox=\box61 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex -File: pgfmoduleplot.code.tex 2023-01-15 v3.1.10 (3.1.10) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty -Package: pgfcomp-version-0-65 2023-01-15 v3.1.10 (3.1.10) -\pgf@nodesepstart=\dimen184 -\pgf@nodesepend=\dimen185 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty -Package: pgfcomp-version-1-18 2023-01-15 v3.1.10 (3.1.10) -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgffor.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/pgf/math/pgfmath.sty (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex -Package: pgffor 2023-01-15 v3.1.10 (3.1.10) -\pgffor@iter=\dimen186 -\pgffor@skip=\dimen187 -\pgffor@stack=\toks32 -\pgffor@toks=\toks33 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex -Package: tikz 2023-01-15 v3.1.10 (3.1.10) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex -File: pgflibraryplothandlers.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgf@plot@mark@count=\count279 -\pgfplotmarksize=\dimen188 -) -\tikz@lastx=\dimen189 -\tikz@lasty=\dimen190 -\tikz@lastxsaved=\dimen191 -\tikz@lastysaved=\dimen192 -\tikz@lastmovetox=\dimen193 -\tikz@lastmovetoy=\dimen194 -\tikzleveldistance=\dimen195 -\tikzsiblingdistance=\dimen196 -\tikz@figbox=\box62 -\tikz@figbox@bg=\box63 -\tikz@tempbox=\box64 -\tikz@tempbox@bg=\box65 -\tikztreelevel=\count280 -\tikznumberofchildren=\count281 -\tikznumberofcurrentchild=\count282 -\tikz@fig@count=\count283 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex -File: pgfmodulematrix.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfmatrixcurrentrow=\count284 -\pgfmatrixcurrentcolumn=\count285 -\pgf@matrix@numberofcolumns=\count286 -) -\tikz@expandcount=\count287 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex -File: tikzlibrarytopaths.code.tex 2023-01-15 v3.1.10 (3.1.10) -))))) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvheadi.sty -Package: moderncvheadi 2022-02-21 v2.3.1 modern curriculum vitae and letter header variant: 1 -\quotewidth=\skip69 -\makecvheadnamewidth=\skip70 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvbodyi.sty -Package: moderncvbodyi 2022-02-21 v2.3.1 modern curriculum vitae and letter body variant: 1 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvskillmatrix.sty -Package: moderncvskillmatrix 2022-02-21 v2.3.1 modern curriculum vitae and letter skill matrix - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/multirow/multirow.sty -Package: multirow 2021/03/15 v2.8 Span multiple rows of a table -\multirow@colwidth=\skip71 -\multirow@cntb=\count288 -\multirow@dima=\skip72 -\bigstrutjot=\dimen197 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/arydshln/arydshln.sty -Package: arydshln 2004/08/31 v1.71 -\dashlinedash=\dimen198 -\dashlinegap=\dimen199 -\adl@box=\box66 -\adl@height=\dimen256 -\adl@heightsave=\dimen257 -\adl@depth=\dimen258 -\adl@depthsave=\dimen259 -\adl@finaldepth=\dimen260 -\adl@columns=\count289 -\adl@ncol=\count290 -\adl@currentcolumn=\count291 -\adl@currentcolumnsave=\count292 -\adl@totalheight=\count293 -\adl@totalheightsave=\count294 -\adl@dash=\count295 -\adl@gap=\count296 -\adl@cla=\count297 -\adl@clb=\count298 -\adl@everyvbox=\toks34 -\adl@LTpagetotal=\dimen261 -) -\cvSkill@RectangleSize=\skip73 -\my@repeat@count=\count299 -\cvskill@width=\skip74 -\cvskill@descriptorwidth=\skip75 -\cvskill@experiencewidth=\skip76 -\skillmatrix@columnwidth=\skip77 -\skillmatrix@commentwidth=\skip78 -\skillmatrix@padding=\skip79 -\skillmatrix@hintscolumnwidth=\skip80 -\skillmatrix@bodylength=\skip81 -\cvskilllegend@leftdescriptorwidth=\skip82 -\cvskilllegend@rightdescriptorwidth=\skip83 -\skilllegend@hintscolumnwidth=\skip84 -\skilllegend@padding=\skip85 -\skilllegend@bodylength=\skip86 -\separatorrulewidth=\skip87 -) -\hintscolumnwidth=\skip88 -\separatorcolumnwidth=\skip89 -\maincolumnwidth=\skip90 -\doubleitemcolumnwidth=\skip91 -\listitemsymbolwidth=\skip92 -LaTeX Font Info: Trying to load font information for U+fontawesomefree0 on input line 48. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/fontawesome5/ufontawesomefree0.fd) -\listitemcolumnwidth=\skip93 -\listdoubleitemcolumnwidth=\skip94 -\baseletterheight=\skip95 -\cvitemwithcommentbox=\box67 -\cvitemwithcommentskilllength=\skip96 -\cvitemwithcommentcommentlength=\skip97 -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-local/tex/latex/moderncv/moderncvcolorblue.sty -Package: moderncvcolorblue 2022-02-21 v2.3.1 modern curriculum vitae and letter color scheme: blue -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2020/01/02 v5.9 Page Geometry - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/iftex/ifvtex.sty -Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. -) -\Gm@cnth=\count300 -\Gm@cntv=\count301 -\c@Gm@tempcnt=\count302 -\Gm@bindingoffset=\dimen262 -\Gm@wd@mp=\dimen263 -\Gm@odd@mp=\dimen264 -\Gm@even@mp=\dimen265 -\Gm@layoutwidth=\dimen266 -\Gm@layoutheight=\dimen267 -\Gm@layouthoffset=\dimen268 -\Gm@layoutvoffset=\dimen269 -\Gm@dimlist=\toks35 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2021/04/29 v2.0v Standard LaTeX package -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/lmodern.sty -Package: lmodern 2015/05/01 v1.6.1 Latin Modern Fonts -LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. -LaTeX Font Info: Overwriting symbol font `letters' in version `normal' -(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. -LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' -(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. -LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' -(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. -LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. -LaTeX Font Info: Overwriting symbol font `letters' in version `bold' -(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. -LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' -(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. -LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' -(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. -LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' -(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' -(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' -(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' -(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. -LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' -(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2024/02/07 v24.2 The Babel package -\babel@savecnt=\count303 -\U@D=\dimen270 -\l@unhyphenated=\language6 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/babel/txtbabel.def) -\bbl@readstream=\read3 -\bbl@dirlevel=\count304 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/babel-english/english.ldf -Language: english 2017/06/06 v3.3r English support from the babel system -Package babel Info: Hyphen rules for 'british' set to \l@english -(babel) (\language0). Reported on input line 82. -Package babel Info: Hyphen rules for 'UKenglish' set to \l@english -(babel) (\language0). Reported on input line 83. -Package babel Info: Hyphen rules for 'canadian' set to \l@english -(babel) (\language0). Reported on input line 102. -Package babel Info: Hyphen rules for 'australian' set to \l@english -(babel) (\language0). Reported on input line 105. -Package babel Info: Hyphen rules for 'newzealand' set to \l@english -(babel) (\language0). Reported on input line 108. -)) -(c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/babel/locale/en/babel-english.tex -Package babel Info: Importing font and identification data for english -(babel) from babel-en.ini. Reported on input line 11. -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2024-01-20 v7.01h Hypertext links for LaTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty -Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty -Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdfescape/pdfescape.sty -Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty -Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty -Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/infwarerr/infwarerr.sty -Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) -) -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -)) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hycolor/hycolor.sty -Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/auxhook/auxhook.sty -Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2023-11-26 v2.56 Cross-referencing by name of section - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/refcount/refcount.sty -Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty -Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/kvoptions/kvoptions.sty -Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO) -)) -\c@section@level=\count305 -) -\@linkdim=\dimen271 -\Hy@linkcounter=\count306 -\Hy@pagecounter=\count307 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2024-01-20 v7.01h Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/intcalc/intcalc.sty -Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) -) -\Hy@SavedSpaceFactor=\count308 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2024-01-20 v7.01h Hyperref: PDF Unicode definition (HO) -Now handling font encoding PU ... -... no UTF-8 mapping file for font encoding PU -) -Package hyperref Info: Option `unicode' set `true' on input line 4062. -Package hyperref Info: Hyper figures OFF on input line 4179. -Package hyperref Info: Link nesting OFF on input line 4184. -Package hyperref Info: Hyper index ON on input line 4187. -Package hyperref Info: Plain pages OFF on input line 4194. -Package hyperref Info: Backreferencing OFF on input line 4199. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4446. -\c@Hy@tempcnt=\count309 -LaTeX Info: Redefining \url on input line 4784. -\XeTeXLinkMargin=\dimen272 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bitset/bitset.sty -Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty -Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO) -)) -\Fld@menulength=\count310 -\Field@Width=\dimen273 -\Fld@charsize=\dimen274 -Package hyperref Info: Hyper figures OFF on input line 6063. -Package hyperref Info: Link nesting OFF on input line 6068. -Package hyperref Info: Hyper index ON on input line 6071. -Package hyperref Info: backreferencing OFF on input line 6078. -Package hyperref Info: Link coloring OFF on input line 6083. -Package hyperref Info: Link coloring with OCG OFF on input line 6088. -Package hyperref Info: PDF/A mode OFF on input line 6093. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atbegshi-ltx.sty -Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi -package with kernel methods -) -\Hy@abspage=\count311 -\c@Item=\count312 -\c@Hfootnote=\count313 -) -Package hyperref Info: Driver (autodetected): hpdftex. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2024-01-20 v7.01h Hyperref driver for pdfTeX - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/base/atveryend-ltx.sty -Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend package -with kernel methods -) -\Fld@listcount=\count314 -\c@bookmark@seq@number=\count315 - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty -Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO) - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty -Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) -) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 285. -) -\Hy@SectionHShift=\skip98 -) -Package hyperref Info: Option `breaklinks' set `true' on input line 61. -Package hyperref Info: Option `bookmarksopen' set `true' on input line 61. -LaTeX Font Info: Trying to load font information for T1+lmr on input line 61. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/t1lmr.fd -File: t1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) (./moderncv_theme_CV.aux) -\openout1 = `moderncv_theme_CV.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 61. -LaTeX Font Info: ... okay on input line 61. -LaTeX Font Info: Trying to load font information for T1+lmss on input line 61. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/t1lmss.fd -File: t1lmss.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty -Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf -Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 485. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live -)) -LaTeX Info: Redefining \microtypecontext on input line 61. -Package microtype Info: Applying patch `item' on input line 61. -Package microtype Info: Applying patch `toc' on input line 61. -Package microtype Info: Applying patch `eqnum' on input line 61. -Package microtype Info: Applying patch `footnote' on input line 61. -Package microtype Info: Applying patch `verbatim' on input line 61. -Package microtype Info: Generating PDF output. -Package microtype Info: Character protrusion enabled (level 2). -Package microtype Info: Using default protrusion set `alltext'. -Package microtype Info: Automatic font expansion enabled (level 2), -(microtype) stretch: 20, shrink: 20, step: 1, non-selected. -Package microtype Info: Using default expansion set `alltext-nott'. -LaTeX Info: Redefining \showhyphens on input line 61. -Package microtype Info: No adjustment of tracking. -Package microtype Info: No adjustment of interword spacing. -Package microtype Info: No adjustment of character kerning. -Package microtype Info: Loading generic protrusion settings for font family -(microtype) `lmss' (encoding: T1). -(microtype) For optimal results, create family-specific settings. -(microtype) See the microtype manual for details. - -*geometry* driver: auto-detecting -*geometry* detected driver: pdftex -*geometry* verbose mode - [ preamble ] result: -* driver: pdftex -* paper: a4paper -* layout: -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: -* h-part:(L,W,R)=(74.68848pt, 448.1309pt, 74.68849pt) -* v-part:(T,H,B)=(84.50467pt, 633.78513pt, 126.75705pt) -* \paperwidth=597.50787pt -* \paperheight=845.04684pt -* \textwidth=448.1309pt -* \textheight=633.78513pt -* \oddsidemargin=2.41849pt -* \evensidemargin=2.41849pt -* \topmargin=-24.76532pt -* \headheight=12.0pt -* \headsep=25.0pt -* \topskip=10.0pt -* \footskip=30.0pt -* \marginparwidth=57.0pt -* \marginparsep=11.0pt -* \columnsep=10.0pt -* \skip\footins=9.0pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidefalse -* \@mparswitchfalse -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -Package hyperref Info: Link coloring OFF on input line 61. -(./moderncv_theme_CV.out) (./moderncv_theme_CV.out) -\@outlinefile=\write4 -\openout4 = `moderncv_theme_CV.out'. - -\makecvheaddetailsbox=\box68 -LaTeX Font Info: Trying to load font information for OT1+lmr on input line 63. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/ot1lmr.fd -File: ot1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/microtype/mt-cmr.cfg -File: mt-cmr.cfg 2013/05/19 v2.2 microtype config. file: Computer Modern Roman (RS) -) -LaTeX Font Info: Trying to load font information for OML+lmm on input line 63. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/omllmm.fd -File: omllmm.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) -LaTeX Font Info: Trying to load font information for OMS+lmsy on input line 63. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/omslmsy.fd -File: omslmsy.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) -LaTeX Font Info: Trying to load font information for OMX+lmex on input line 63. - (c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/tex/latex/lm/omxlmex.fd -File: omxlmex.fd 2015/05/01 v1.6.1 Font defs for Latin Modern -) -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <9> on input line 63. -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <6> on input line 63. -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <5> on input line 63. -\makecvheadpicturebox=\box69 -\makecvheaddetailswidth=\skip99 -\makecvheadpicturewidth=\skip100 -\makecvheadnamebox=\box70 - -Underfull \hbox (badness 10000) in paragraph at lines 63--63 - - [] - -[1 - -{c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{c:/GIT/ARCHIVE/rendercv-v1/rendercv/tinytex-release/TinyTeX/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc}] (./moderncv_theme_CV.aux) - *********** -LaTeX2e <2023-11-01> patch level 1 -L3 programming layer <2024-01-22> - *********** -Package rerunfilecheck Info: File `moderncv_theme_CV.out' has not changed. -(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. - ) -Here is how much of TeX's memory you used: - 26652 strings out of 476161 - 525994 string characters out of 5790867 - 1926978 words of memory out of 5000000 - 48209 multiletter control sequences out of 15000+600000 - 585922 words of font info for 68 fonts, out of 8000000 for 9000 - 14 hyphenation exceptions out of 8191 - 129i,11n,129p,1083b,470s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on moderncv_theme_CV.pdf (1 page, 18856 bytes). -PDF statistics: - 22 PDF objects out of 1000 (max. 8388607) - 16 compressed objects within 1 object stream - 2 named destinations out of 1000 (max. 500000) - 14349 words of extra memory for PDF output out of 14400 (max. 10000000) - diff --git a/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.pdf b/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.pdf deleted file mode 100644 index 92ddd4019c77652a1e5104f19489dce9fbdea69d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18856 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 diff --git a/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.tex b/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.tex deleted file mode 100644 index fc887ab..0000000 --- a/tests/reference_files/moderncv_theme_full/moderncv_theme_CV.tex +++ /dev/null @@ -1,70 +0,0 @@ -%% start of file `template.tex'. -%% Copyright 2006-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2022 moderncv maintainers (github.com/moderncv). -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License version 1.3c, -% available at http://www.latex-project.org/lppl/. - -\documentclass[10pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman') - -% moderncv themes -\moderncvstyle{classic} % style options are 'casual' (default), 'classic', 'banking', 'oldstyle' and 'fancy' -\moderncvcolor{blue} % color options 'black', 'blue' (default), 'burgundy', 'green', 'grey', 'orange', 'purple' and 'red' -%\renewcommand{\familydefault}{\sfdefault} % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name - -% adjust the page margins -\usepackage[scale=0.75]{geometry} -\setlength{\hintscolumnwidth}{3.8 cm} % if you want to change the width of the column with the dates -%\setlength{\makecvheadnamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks... - -% font loading -% for luatex and xetex, do not use inputenc and fontenc -% see https://tex.stackexchange.com/a/496643 -\ifxetexorluatex - \usepackage{fontspec} - \usepackage{unicode-math} - \defaultfontfeatures{Ligatures=TeX} - \setmainfont{Latin Modern Roman} - \setsansfont{Latin Modern Sans} - \setmonofont{Latin Modern Mono} - \setmathfont{Latin Modern Math} -\else - \usepackage[T1]{fontenc} - \usepackage{lmodern} -\fi - -% document language -\usepackage[english]{babel} % FIXME: using spanish breaks moderncv - -% personal data -\name{moderncv theme}{} -% \familyname{} - -% Social icons -% \social[linkedin]{john.doe} % optional, remove / comment the line if not wanted -% \social[xing]{john\_doe} % optional, remove / comment the line if not wanted -% \social[twitter]{ji\_doe} % optional, remove / comment the line if not wanted -% \social[github]{jdoe} % optional, remove / comment the line if not wanted -% \social[gitlab]{jdoe} % optional, remove / comment the line if not wanted -% \social[stackoverflow]{0000000/johndoe} % optional, remove / comment the line if not wanted -% \social[bitbucket]{jdoe} % optional, remove / comment the line if not wanted -% \social[skype]{jdoe} % optional, remove / comment the line if not wanted -% \social[orcid]{0000-0000-000-000} % optional, remove / comment the line if not wanted -% \social[researchgate]{jdoe} % optional, remove / comment the line if not wanted -% \social[researcherid]{jdoe} % optional, remove / comment the line if not wanted -% \social[telegram]{jdoe} % optional, remove / comment the line if not wanted -% \social[whatsapp]{12345678901} % optional, remove / comment the line if not wanted -% \social[signal]{12345678901} % optional, remove / comment the line if not wanted -% \social[matrix]{@johndoe:matrix.org} % optional, remove / comment the line if not wanted -% \social[googlescholar]{googlescholarid} % optional, remove / comment the line if not wanted - -\begin{document} - \maketitle - - % save the original href command in a new command: - \let\hrefWithoutArrow\href - % new command for external links: - \renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{\color{color1} #2 \raisebox{.15ex}{\footnotesize \faExternalLink*}}}} - - -\end{document} \ No newline at end of file diff --git a/tests/test_cli.py b/tests/test_cli.py index 7752ed7..68189bd 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,5 +1,6 @@ import os -import importlib.machinery +import filecmp +import shutil import rendercv.cli as cli import rendercv.data_models as dm @@ -8,6 +9,7 @@ import pydantic import ruamel.yaml import pytest import typer.testing +import time_machine def test_welcome(): @@ -140,7 +142,7 @@ def test_handle_validation_error(data_model_class, invalid_model): @pytest.mark.parametrize( "exception", - [ruamel.yaml.YAMLError, RuntimeError], + [ruamel.yaml.YAMLError, RuntimeError, FileNotFoundError, ValueError], ) def test_handle_exceptions(exception): @cli.handle_exceptions @@ -165,9 +167,13 @@ def test_live_progress_reporter_class(): runner = typer.testing.CliRunner() -def test_render_command(input_file_path): - str_input_file_path = str(input_file_path) - result = runner.invoke(cli.app, ["render", str_input_file_path]) +@time_machine.travel("2024-01-01") +def test_render_command(tmp_path, input_file_path): + # copy input file to the temporary directory to create the output directory there: + input_file_path = shutil.copy(input_file_path, tmp_path) + + result = runner.invoke(cli.app, ["render", str(input_file_path)]) + assert result.exit_code == 0 assert "Your CV is rendered!" in result.stdout diff --git a/tests/test_data_models.py b/tests/test_data_models.py index 9da5bfb..f7039f0 100644 --- a/tests/test_data_models.py +++ b/tests/test_data_models.py @@ -7,9 +7,12 @@ import shutil import pydantic import pytest import time_machine +import ruamel.yaml from rendercv import data_models as dm +from .test_renderer import update_auxiliary_files + @pytest.mark.parametrize( "date, expected_date_object, expected_error", @@ -57,7 +60,23 @@ def test_format_date(date, expected_date_string): def test_read_input_file(input_file_path): + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + input_dictionary = { + "cv": { + "name": "John Doe", + }, + "design": { + "theme": "classic", + }, + } + + # dump the dictionary to a yaml file + yaml = ruamel.yaml.YAML() + yaml.dump(input_dictionary, input_file_path) + data_model = dm.read_input_file(input_file_path) + assert isinstance(data_model, dm.RenderCVDataModel) @@ -404,11 +423,13 @@ def test_sections( def test_sections_with_invalid_entries(): input = {"name": "John Doe", "sections": dict()} - input["sections"]["section_title"] = [{ - "this": "is", - "an": "invalid", - "entry": 10, - }] + input["sections"]["section_title"] = [ + { + "this": "is", + "an": "invalid", + "entry": 10, + } + ] with pytest.raises(pydantic.ValidationError): dm.CurriculumVitae(**input) @@ -422,10 +443,12 @@ def test_sections_with_invalid_entries(): ) def test_invalid_custom_theme(invalid_custom_theme_name): with pytest.raises(pydantic.ValidationError): - dm.RenderCVDataModel(**{ - "cv": {"name": "John Doe"}, - "design": {"theme": invalid_custom_theme_name}, - }) + dm.RenderCVDataModel( + **{ + "cv": {"name": "John Doe"}, + "design": {"theme": invalid_custom_theme_name}, + } + ) def test_custom_theme_with_missing_files(tmp_path): @@ -433,24 +456,35 @@ def test_custom_theme_with_missing_files(tmp_path): custom_theme_path.mkdir() with pytest.raises(pydantic.ValidationError): os.chdir(tmp_path) - dm.RenderCVDataModel(**{ # type: ignore + dm.RenderCVDataModel( + **{ # type: ignore + "cv": {"name": "John Doe"}, + "design": {"theme": "customtheme"}, + } + ) + + +def test_custom_theme(auxiliary_files_directory_path): + os.chdir( + auxiliary_files_directory_path + / "test_copy_theme_files_to_output_directory_custom_theme" + ) + data_model = dm.RenderCVDataModel( + **{ # type: ignore "cv": {"name": "John Doe"}, - "design": {"theme": "customtheme"}, - }) - - -def test_custom_theme(reference_files_directory_path): - os.chdir(reference_files_directory_path) - data_model = dm.RenderCVDataModel(**{ # type: ignore - "cv": {"name": "John Doe"}, - "design": {"theme": "dummytheme"}, - }) + "design": {"theme": "dummytheme"}, + } + ) assert data_model.design.theme == "dummytheme" -def test_custom_theme_without_init_file(tmp_path, reference_files_directory_path): - reference_custom_theme_path = reference_files_directory_path / "dummytheme" +def test_custom_theme_without_init_file(tmp_path, auxiliary_files_directory_path): + reference_custom_theme_path = ( + auxiliary_files_directory_path + / "test_copy_theme_files_to_output_directory_custom_theme" + / "dummytheme" + ) # copy the directory to tmp_path: custom_theme_path = tmp_path / "dummytheme" @@ -461,9 +495,11 @@ def test_custom_theme_without_init_file(tmp_path, reference_files_directory_path init_file.unlink() os.chdir(tmp_path) - data_model = dm.RenderCVDataModel(**{ # type: ignore - "cv": {"name": "John Doe"}, - "design": {"theme": "dummytheme"}, - }) + data_model = dm.RenderCVDataModel( + **{ # type: ignore + "cv": {"name": "John Doe"}, + "design": {"theme": "dummytheme"}, + } + ) assert data_model.design.theme == "dummytheme" diff --git a/tests/test_renderer.py b/tests/test_renderer.py index 6d36dca..d485705 100644 --- a/tests/test_renderer.py +++ b/tests/test_renderer.py @@ -13,6 +13,14 @@ from rendercv import renderer as r from rendercv import data_models as dm +update_auxiliary_files = True + +folder_name_dictionary = { + "rendercv_empty_curriculum_vitae_data_model": "empty", + "rendercv_filled_curriculum_vitae_data_model": "filled", +} + + def test_latex_file_class(tmp_path, rendercv_data_model, jinja2_environment): latex_file = r.LaTeXFile(rendercv_data_model, jinja2_environment) latex_file.get_latex_code() @@ -75,6 +83,29 @@ def test_transform_markdown_data_model_to_latex_data_model(rendercv_data_model): assert latex_data_model.design == rendercv_data_model.design +@pytest.mark.parametrize( + "string, placeholders, expected_string", + [ + ("Hello, {name}!", {"{name}": "World"}, "Hello, World!"), + ( + "{greeting}, {name}!", + {"{greeting}": "Hello", "{name}": "World"}, + "Hello, World!", + ), + ("No placeholders here.", {}, "No placeholders here."), + ( + "{missing} placeholder.", + {"{not_missing}": "value"}, + "{missing} placeholder.", + ), + ("", {"{placeholder}": "value"}, ""), + ], +) +def test_replace_placeholders_with_actual_values(string, placeholders, expected_string): + result = r.replace_placeholders_with_actual_values(string, placeholders) + assert result == expected_string + + @pytest.mark.parametrize( "value, something, match_str, expected", [ @@ -242,31 +273,43 @@ def test_setup_jinja2_environment(): assert "get_an_item_with_a_specific_attribute_value" in env.filters -update_reference_files = False - - @pytest.mark.parametrize( "theme_name", dm.available_themes, ) +@pytest.mark.parametrize( + "curriculum_vitae_data_model", + [ + "rendercv_empty_curriculum_vitae_data_model", + "rendercv_filled_curriculum_vitae_data_model", + ], +) @time_machine.travel("2024-01-01") -def test_generate_latex_file(tmp_path, reference_files_directory_path, theme_name): - reference_latex_files_directory_path = ( - reference_files_directory_path / "latex_files" +def test_generate_latex_file( + tmp_path, + auxiliary_files_directory_path, + request, + theme_name, + curriculum_vitae_data_model, +): + reference_directory_path = ( + auxiliary_files_directory_path + / "test_generate_latex_file" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" ) - file_name = f"{theme_name}_theme_CV.tex" + file_name = "John_Doe_CV.tex" output_file_path = tmp_path / "make_sure_it_generates_the_directory" / file_name - reference_file_path = reference_latex_files_directory_path / file_name + reference_file_path = reference_directory_path / file_name data_model = dm.RenderCVDataModel( - cv=dm.CurriculumVitae(name=f"{theme_name} theme"), + cv=request.getfixturevalue(curriculum_vitae_data_model), design={"theme": theme_name}, ) r.generate_latex_file(data_model, tmp_path / "make_sure_it_generates_the_directory") - # Update the reference files if update_reference_files is True - if update_reference_files: - r.generate_latex_file(data_model, reference_latex_files_directory_path) + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + r.generate_latex_file(data_model, reference_directory_path) assert filecmp.cmp(output_file_path, reference_file_path) @@ -275,26 +318,40 @@ def test_generate_latex_file(tmp_path, reference_files_directory_path, theme_nam "theme_name", dm.available_themes, ) +@pytest.mark.parametrize( + "curriculum_vitae_data_model", + [ + "rendercv_empty_curriculum_vitae_data_model", + "rendercv_filled_curriculum_vitae_data_model", + ], +) @time_machine.travel("2024-01-01") -def test_generate_markdown_file(tmp_path, reference_files_directory_path, theme_name): - reference_latex_files_directory_path = ( - reference_files_directory_path / "markdown_and_html_files" +def test_generate_markdown_file( + tmp_path, + auxiliary_files_directory_path, + request, + theme_name, + curriculum_vitae_data_model, +): + reference_directory_path = ( + auxiliary_files_directory_path + / "test_generate_markdown_file" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" ) - file_name = f"{theme_name}_theme_CV.md" + file_name = "John_Doe_CV.md" output_file_path = tmp_path / "make_sure_it_generates_the_directory" / file_name - reference_file_path = reference_latex_files_directory_path / file_name + reference_file_path = reference_directory_path / file_name data_model = dm.RenderCVDataModel( - cv=dm.CurriculumVitae(name=f"{theme_name} theme"), - design={"theme": theme_name}, + cv=request.getfixturevalue(curriculum_vitae_data_model), ) r.generate_markdown_file( data_model, tmp_path / "make_sure_it_generates_the_directory" ) - # Update the reference files if update_reference_files is True - if update_reference_files: - r.generate_markdown_file(data_model, reference_latex_files_directory_path) + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + r.generate_markdown_file(data_model, reference_directory_path) assert filecmp.cmp(output_file_path, reference_file_path) @@ -304,15 +361,15 @@ def test_generate_markdown_file(tmp_path, reference_files_directory_path, theme_ dm.available_themes, ) def test_copy_theme_files_to_output_directory( - tmp_path, reference_files_directory_path, theme_name + tmp_path, auxiliary_files_directory_path, theme_name ): reference_directory_path = ( - reference_files_directory_path / f"{theme_name}_theme_auxiliary_files" + auxiliary_files_directory_path / "test_copy_theme_files_to_output_directory" ) r.copy_theme_files_to_output_directory(theme_name, tmp_path) - # Update the reference files if update_reference_files is True - if update_reference_files: + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: reference_directory_path.mkdir(parents=True, exist_ok=True) r.copy_theme_files_to_output_directory(theme_name, reference_directory_path) @@ -320,65 +377,152 @@ def test_copy_theme_files_to_output_directory( def test_copy_theme_files_to_output_directory_custom_theme( - tmp_path, reference_files_directory_path + tmp_path, auxiliary_files_directory_path ): theme_name = "dummytheme" - reference_directory = ( - reference_files_directory_path / f"{theme_name}_theme_auxiliary_files" + + test_auxiliary_files_directory_path = ( + auxiliary_files_directory_path + / "test_copy_theme_files_to_output_directory_custom_theme" + ) + custom_theme_directory_path = test_auxiliary_files_directory_path / "dummytheme" + reference_directory_path = ( + test_auxiliary_files_directory_path / "theme_auxiliary_files" ) - # change current working directory to the refefence_files_directory_path: - os.chdir(reference_files_directory_path) + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + # create dummytheme: + if not custom_theme_directory_path.exists(): + custom_theme_directory_path.mkdir(parents=True, exist_ok=True) + + # create a txt file called test.txt in the custom theme directory: + pathlib.Path(custom_theme_directory_path / "EducationEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "ExperienceEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "Header.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "NormalEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "OneLineEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "Preamble.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "PublicationEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "SectionBeginning.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "SectionEnding.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "TextEntry.j2.tex").touch() + pathlib.Path(custom_theme_directory_path / "theme_auxiliary_file.cls").touch() + pathlib.Path(custom_theme_directory_path / "theme_auxiliary_dir").mkdir( + exist_ok=True + ) + init_file = pathlib.Path(custom_theme_directory_path / "__init__.py") + + init_file.touch() + init_file.write_text( + "from typing import Literal\n\nimport pydantic\n\n\nclass" + " DummythemeThemeOptions(pydantic.BaseModel):\n theme:" + " Literal['dummytheme']\n" + ) + + # create reference_directory_path: + os.chdir(test_auxiliary_files_directory_path) + r.copy_theme_files_to_output_directory(theme_name, reference_directory_path) + + # change current working directory to the test_auxiliary_files_directory_path + os.chdir(test_auxiliary_files_directory_path) + + # copy the auxiliary theme files to tmp_path: r.copy_theme_files_to_output_directory(theme_name, tmp_path) - # Update the reference files if update_reference_files is True - if update_reference_files: - r.copy_theme_files_to_output_directory(theme_name, reference_directory) - - assert filecmp.dircmp(tmp_path, reference_directory).left_only == [] - assert filecmp.dircmp(tmp_path, reference_directory).right_only == [] + assert filecmp.dircmp(tmp_path, reference_directory_path).left_only == [] + assert filecmp.dircmp(tmp_path, reference_directory_path).right_only == [] @pytest.mark.parametrize( "theme_name", dm.available_themes, ) +@pytest.mark.parametrize( + "curriculum_vitae_data_model", + [ + "rendercv_empty_curriculum_vitae_data_model", + "rendercv_filled_curriculum_vitae_data_model", + ], +) @time_machine.travel("2024-01-01") def test_generate_latex_file_and_copy_theme_files( - tmp_path, reference_files_directory_path, theme_name + tmp_path, + auxiliary_files_directory_path, + request, + theme_name, + curriculum_vitae_data_model, ): - reference_directory = reference_files_directory_path / f"{theme_name}_theme_full" + reference_directory_path = ( + auxiliary_files_directory_path + / "test_generate_latex_file_and_copy_theme_files" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" + ) data_model = dm.RenderCVDataModel( - cv=dm.CurriculumVitae(name=f"{theme_name} theme"), + cv=request.getfixturevalue(curriculum_vitae_data_model), design={"theme": theme_name}, ) r.generate_latex_file_and_copy_theme_files(data_model, tmp_path) - # Update the reference files if update_reference_files is True - if update_reference_files: - r.generate_latex_file_and_copy_theme_files(data_model, reference_directory) + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + r.generate_latex_file_and_copy_theme_files(data_model, reference_directory_path) - assert filecmp.dircmp(tmp_path, reference_directory).diff_files == [] + assert filecmp.dircmp(tmp_path, reference_directory_path).left_only == [] + assert filecmp.dircmp(tmp_path, reference_directory_path).right_only == [] @pytest.mark.parametrize( "theme_name", dm.available_themes, ) +@pytest.mark.parametrize( + "curriculum_vitae_data_model", + [ + "rendercv_empty_curriculum_vitae_data_model", + "rendercv_filled_curriculum_vitae_data_model", + ], +) @time_machine.travel("2024-01-01") -def test_latex_to_pdf(tmp_path, reference_files_directory_path, theme_name): - reference_directory = reference_files_directory_path / f"{theme_name}_theme_full" - reference_pdf_file_path = reference_directory / f"{theme_name}_theme_CV.pdf" +def test_latex_to_pdf( + tmp_path, auxiliary_files_directory_path, theme_name, curriculum_vitae_data_model +): + latex_sources_path = ( + auxiliary_files_directory_path + / "test_generate_latex_file_and_copy_theme_files" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" + ) + reference_directory_path = ( + auxiliary_files_directory_path + / "test_latex_to_pdf" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" + ) - shutil.copytree(reference_directory, tmp_path, dirs_exist_ok=True) - output_pdf_file_path = r.latex_to_pdf(tmp_path / f"{theme_name}_theme_CV.tex") - # Update the reference files if update_reference_files is True - if update_reference_files: - reference_pdf_file_path = r.latex_to_pdf( - reference_directory / f"{theme_name}_theme_CV.tex" + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + # copy the latex sources to the reference_directory_path + shutil.copytree( + latex_sources_path, reference_directory_path, dirs_exist_ok=True ) - text1 = pypdf.PdfReader(output_pdf_file_path).pages[0].extract_text() + # convert the latex code to a pdf + reference_pdf_file_path = r.latex_to_pdf( + reference_directory_path / "John_Doe_CV.tex" + ) + + # remove the latex sources from the reference_directory_path, but keep the pdf + for file in reference_directory_path.iterdir(): + if file.is_file() and file.suffix != ".pdf": + file.unlink() + + # copy the latex sources to the tmp_path + shutil.copytree(latex_sources_path, tmp_path, dirs_exist_ok=True) + + # convert the latex code to a pdf + reference_pdf_file_path = reference_directory_path / "John_Doe_CV.pdf" + output_file_path = r.latex_to_pdf(tmp_path / "John_Doe_CV.tex") + + text1 = pypdf.PdfReader(output_file_path).pages[0].extract_text() text2 = pypdf.PdfReader(reference_pdf_file_path).pages[0].extract_text() assert text1 == text2 @@ -393,22 +537,52 @@ def test_latex_to_pdf_invalid_latex_file(): "theme_name", dm.available_themes, ) +@pytest.mark.parametrize( + "curriculum_vitae_data_model", + [ + "rendercv_empty_curriculum_vitae_data_model", + "rendercv_filled_curriculum_vitae_data_model", + ], +) @time_machine.travel("2024-01-01") -def test_markdown_to_html(tmp_path, reference_files_directory_path, theme_name): - reference_directory = reference_files_directory_path / "markdown_and_html_files" - reference_html_file_path = ( - reference_directory / f"{theme_name}_theme_CV_PASTETOGRAMMARLY.html" +def test_markdown_to_html( + tmp_path, auxiliary_files_directory_path, theme_name, curriculum_vitae_data_model +): + markdown_sources_path = ( + auxiliary_files_directory_path + / "test_generate_markdown_file" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" + ) + reference_directory = ( + auxiliary_files_directory_path + / "test_markdown_to_html" + / f"{theme_name}_{folder_name_dictionary[curriculum_vitae_data_model]}" ) - shutil.copytree(reference_directory, tmp_path, dirs_exist_ok=True) - output_html_file_path = r.markdown_to_html(tmp_path / f"{theme_name}_theme_CV.md") - # Update the reference files if update_reference_files is True - if update_reference_files: - reference_html_file_path = r.markdown_to_html( - reference_directory / f"{theme_name}_theme_CV.md" - ) + # Update the auxiliary files if update_auxiliary_files is True + if update_auxiliary_files: + # copy the markdown sources to the reference_directory + shutil.copytree(markdown_sources_path, reference_directory, dirs_exist_ok=True) - text1 = output_html_file_path.read_text() - text2 = reference_html_file_path.read_text() + # convert markdown to html + r.markdown_to_html(reference_directory / "John_Doe_CV.md") - assert text1 == text2 + # remove the markdown sources from the reference_directory + for file in reference_directory.iterdir(): + if file.is_file() and file.suffix != ".html": + file.unlink() + + # copy the markdown sources to the tmp_path + shutil.copytree(markdown_sources_path, tmp_path, dirs_exist_ok=True) + + # convert markdown to html + output_file_path = r.markdown_to_html(tmp_path / "John_Doe_CV.md") + reference_file_path = reference_directory / "John_Doe_CV_PASTETOGRAMMARLY.html" + + assert filecmp.cmp(output_file_path, reference_file_path) + + +def test_markdown_to_html_invalid_markdown_file(): + with pytest.raises(FileNotFoundError): + file_path = pathlib.Path("file_doesnt_exist.md") + r.markdown_to_html(file_path)