von Grummelgast » Fr 19. Nov 2021, 09:16
Ich rate seit Jahren von der Verwendung von moderncv ab. Die Klasse ist schlecht implementiert und schlecht dokumentiert. Meine Bug-Reports noch zu Zeiten von Xavier Danaux wurden allesamt ignoriert. Beispielsweise ist \httplink wie folgt definiert:
\newcommand*{\httplink}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\href{http://#2}{#2}}%
{\href{http://#2}{\detokenize{#1}}}}
Das \detokenize im zweiten Argument von \href ist kompletter Unfug und für das Problem hier verantwortlich. Wenn überhaupt, würde \detokenize im ersten Argument einen Sinn ergeben, nämlich den Versuch, zu das erwähnte Problem mit Links im Argument eines anderen Befehls ein wenig abzuschwächen. Tatsächlich kann \detokenize aber auch Schaden anrichten, beispielsweise zusätzliche Leerzeichen erzeugen. Für einige Probleme wie das bekannte %-Problem hilft es ohnehin nicht. Daher dürfte es in der Tat besser sein, hyperref-Befehle direkt zu verwenden, beispielsweise:
documentclass[a4paper,11pt]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}% Überflüssig seit LaTeX 2018/04/01.
\usepackage[ngerman]{babel}% Ich empfehle, die Sprachoption global bei
% \documentclass zu setzen.
\usepackage[T1]{fontenc}
%\usepackage{inputenc}% Bitte Pakete nie mehrfach (und dann noch mit
% unterschiedlichen Optionen) laden!
\usepackage[paper=a4paper,left=20mm,right=10mm,top=10mm,bottom=20mm]{geometry}
\firstname{John}% Ergänzt, damit das Beispiel lauffähig wird.
\familyname{Doe}% Ergänzt, damit das Beispiel lauffähig wird.
\begin{document}
\cvitem{10/2020 03/2021}{\textbf{Hilfreiche Links} \newline
\href{https://www.google.com}{Göögle.com} \newline
\href{https://golatex.de}{Sehr hilfreich für Probleme} \newline
\href{https://golatex.de}{Sehr hilfreich f{\"u}r Probleme} \newline
}
\end{document}
Übrigens sollte man das http:// im obligatorischen Argument von \httplink ohnehin weg lassen. Wie man an obiger Definition sieht, hat man sonst Links der Art http://http://…. Aber ja, das ist in der Anleitung ganz schlecht dokumentiert.
Es gibt übrigens massenhaft Alternativen zu moderncv. Ich selbst würde für einen Lebenslauf aber einfach eine Tabelle (eventuell mit xltabular) oder eine Listenumgebung (eventuell labeling aus KOMA-Script oder irgendwas mit enumitem) verwenden. Vermutlich würde ich das Anschreiben mit scrletter machen. Den Lebenslauf kann man dann entweder als eigenes Dokument setzen oder alles zusammen in einem. Bunte Striche sind ja nun wirklich kein Problem. Dafür genügt xcolor und \rule. Wenn man es besonders schön mit abgerundeten Enden haben will, kann man dafür natürlich auch TikZ verwenden.
Achja: Die Links oben sind unbedingt zu empfehlen! Überhaupt ist der Beitrag absolut korrekt. Ich wollte den nur etwas ergänzen.
Ich rate seit Jahren von der Verwendung von [tt]moderncv[/tt] ab. Die Klasse ist schlecht implementiert und schlecht dokumentiert. Meine Bug-Reports noch zu Zeiten von Xavier Danaux wurden allesamt ignoriert. Beispielsweise ist [tt]\httplink[/tt] wie folgt definiert:
[code]
\newcommand*{\httplink}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\href{http://#2}{#2}}%
{\href{http://#2}{\detokenize{#1}}}}
[/code]
Das [tt]\detokenize[/tt] im [b]zweiten[/b] Argument von [tt]\href[/tt] ist kompletter Unfug und für das Problem hier verantwortlich. Wenn überhaupt, würde [tt]\detokenize[/tt] im ersten Argument einen Sinn ergeben, nämlich den Versuch, zu das erwähnte Problem mit Links im Argument eines anderen Befehls ein wenig abzuschwächen. Tatsächlich kann [tt]\detokenize[/tt] aber auch Schaden anrichten, beispielsweise zusätzliche Leerzeichen erzeugen. Für einige Probleme wie das bekannte [tt]%[/tt]-Problem hilft es ohnehin nicht. Daher dürfte es in der Tat besser sein, [doc]hyperref[/doc]-Befehle direkt zu verwenden, beispielsweise:
[code]
documentclass[a4paper,11pt]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}% Überflüssig seit LaTeX 2018/04/01.
\usepackage[ngerman]{babel}% Ich empfehle, die Sprachoption global bei
% \documentclass zu setzen.
\usepackage[T1]{fontenc}
%\usepackage{inputenc}% Bitte Pakete nie mehrfach (und dann noch mit
% unterschiedlichen Optionen) laden!
\usepackage[paper=a4paper,left=20mm,right=10mm,top=10mm,bottom=20mm]{geometry}
\firstname{John}% Ergänzt, damit das Beispiel lauffähig wird.
\familyname{Doe}% Ergänzt, damit das Beispiel lauffähig wird.
\begin{document}
\cvitem{10/2020 03/2021}{\textbf{Hilfreiche Links} \newline
\href{https://www.google.com}{Göögle.com} \newline
\href{https://golatex.de}{Sehr hilfreich für Probleme} \newline
\href{https://golatex.de}{Sehr hilfreich f{\"u}r Probleme} \newline
}
\end{document}
[/code]
Übrigens sollte man das [tt]http://[/tt] im obligatorischen Argument von [tt]\httplink[/tt] ohnehin weg lassen. Wie man an obiger Definition sieht, hat man sonst Links der Art [tt]http://http://…[/tt]. Aber ja, das ist in der Anleitung ganz schlecht dokumentiert.
Es gibt übrigens [url=https://ctan.org/topic/cv]massenhaft Alternativen[/url] zu [tt]moderncv[/tt]. Ich selbst würde für einen Lebenslauf aber einfach eine Tabelle (eventuell mit [ctan]xltabular[/ctan]) oder eine Listenumgebung (eventuell [tt]labeling[/tt] aus [ctan]KOMA-Script[/ctan] oder irgendwas mit [ctan]enumitem[/ctan]) verwenden. Vermutlich würde ich das Anschreiben mit [ctan]scrletter[/ctan] machen. Den Lebenslauf kann man dann entweder als eigenes Dokument setzen oder alles zusammen in einem. Bunte Striche sind ja nun wirklich kein Problem. Dafür genügt [ctan]xcolor[/ctan] und [tt]\rule[/tt]. Wenn man es besonders schön mit abgerundeten Enden haben will, kann man dafür natürlich auch [ctan]TikZ[/ctan] verwenden.
Achja: Die Links [url=https://golatex.de/viewtopic.php?p=117356#p117356]oben[/url] sind unbedingt zu empfehlen! Überhaupt ist der Beitrag absolut korrekt. Ich wollte den nur etwas ergänzen.