posquit0 / Awesome-CV

:page_facing_up: Awesome CV is LaTeX template for your outstanding job application
LaTeX Project Public License v1.3c
22.28k stars 4.71k forks source link

Manage entries in header CV (like information and social media links) #417

Open zmberber opened 2 years ago

zmberber commented 2 years ago

I really love the information (birthday, address) and social media links (github, linkedin, etc) at the header.

To add some entries (I for example want to add a mathoverflow, math-stackexchange, and the general stackexchange link), I can manually edit the awesome-cv.cls file. Which obviously worked just fine. But I don't like this setup.

So what I instead do, is having your repository as a submodule in my own personal cv repository. I then just choose your class file in my own cv files and so on. If you ever make changes, I can just pull the submodule and I get all the changes.

So to then do what I want, I have the line \usepackage{awesome-cv-class-overrides}, and basically the file awesome-cv-class-overrides.sty contains is changes to your awesome-cv.cls. This works wonderfully for things like \renewenvironment{cvskills} for spacing adjustments etc.

But for changing stuff in the header, I have to copy all of the huge \newcommand*{makeacvheader}, change it to \renewcommand*{makeacvheader}, and make a tiny change or addition to the social media entry, or change the order.

It would be nice if the class somehow cycled through a list of entries, to which one could easily add stuff. And redefining stuff should also work. Also, that part of the makeacvheader command is very repetitive, it would make the code nicer anyway, and I do believe that there shouldn't be such long \newcommand bodies, one should cut it up into parts. But that's just me being nitpicky :)

github-actions[bot] commented 2 years ago

:wave: Welcome! Looks like this is your first issue.

Hey, thanks for your contribution! Please give us a bit of time to review it. 😄

OJFord commented 2 years ago

Yes, this is probably due a refactoring - in another issue or PR that I can't immediately find I recently suggested making it easier (and cleaner) to contribute new social links by having some command that takes the format and icon etc. as arguments. I can't recall the motivation there, but it could help here by allowing the definition of new ones in your inheriting class. Currently there exists \extrainfo, but then you can't supply an icon.

I'd be happy to review a PR for something in that direction. In the mean time though in my similar setup what I've done in the past is make changes in my fork of Awesome-CV, and then in the submodule I can simply checkout a commit from my fork. See e.g. https://github.com/OJFord/curriculum-vitae/commit/ffa31fa95a445545499f5d6132a542b77b767dd4

zmberber commented 2 years ago

Thanks for the quick reply!

If you say you are open to looking at a PR, I might get to that one day, if I find the time. I think it would be a great addition.

dcsim commented 2 years ago

Quite "stale" at this point, but there are promising nuggets hiding in #315.

A seemingly solid effort towards simplifying the \headersocialstyle{% headache: here. It doesn't quite get at making it easier to add new social sites directly, but it cleans up the code a ton. At some point I may set aside a bit of time to consider if and how this might be a good starting point to strip/avoid duplicating the prefix in hrefs, if present, as discussed in #409.

Relatedly, this seems to be a better solution than trying to address PRs that would require moving from tables to longtables like #331. If I recall the issue people were having correctly, then perhaps white space at the bottom of a page is better than an orphaned header or orphaned content.