Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Beitrag von Zoid »

Moin moin,

ich arbeite grad an meinem Lebenslauf, welche ich mit der Klasse europasscv erstellt habe als Dokumententyp. Nun muss ich einige Sachen im Format ändern, kann dies jedoch nur in der Datei machen, welche die Befehle für Dokumente dieser Klasse definiert.

Bsp.:
Ich verwende den Befehl \ecvpersonalinfo um meine persönlichen Daten aufzulisten. Wenn ich nun die Angabe meines Names lösche, dann entsteht dort eine Leerzeile, welche ich nicht löschen kann. Ich muss nun die Datei finden, in welcher der Befehlt \ecvpersonalinfo definiert ist.

Das es funktioniert, weiß ich, da ich es vor Jahren bereits so gemacht habe. Leider kann ich mich aber nicht mehr an den Speicherort der Definitionsdatei erinnern.

Ich arbeite mir Texworks als Editor.

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Re: Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Beitrag von Zoid »

Ok, hab den Pfad doch irgendwie finden können. Falls es jemanden interessiert:
C:\Users\X\AppData\Roaming\MiKTeX\tex\latex\europasscv
Dort die Datei europasscv.cls

Jetzt hätte ich aber noch eine Frage zur Neudifinierung eines Befehls. In dem nachfolgenden Segment habe ich die Zeile 29 deaktiviert und erziele damit die gewünschte Wirkung in meinem Dokument. Wenn ich nun aber mal meinen Rechner wechsel, dann werde ich nicht immer die Quellendatei mitführen können. Gibt es daher eine Möglichkeit, die Änderung durch \RenewDocumentCommand o.ä. in mein Tex-Dokument zu übernehmen und die .cls Datei im Originalzustand zu belassen?

\providecommand{\ecvpersonalinfo}[1][0pt]{%
  \ecvitem[#1]{ %  left column
    \ecvsectionstyle{\ecv@infosectionkey}
    \if@ecvpicture
      \if@ecvpictureleft
	\raisebox{-\height}{\expandafter\includegraphics\expandafter[\ecv@pictureleftoptions]{\ecv@pictureleftfile}}
      \fi
    \fi
    }
    { %  right column
    \if@ecvpicture
        \if@ecvpictureright
            \setlength{\ecv@pileftcolwidth}{0.7\ecv@rightcolwidth}
        \else
            \setlength{\ecv@pileftcolwidth}{\ecv@rightcolwidth}
        \fi
    \else
        \setlength{\ecv@pileftcolwidth}{\ecv@rightcolwidth}
    \fi
    \if@ecvpictureright
        \setlength{\ecv@pirightcolwidth}{0.3\ecv@rightcolwidth}
    \else
        \setlength{\ecv@pirightcolwidth}{0pt}
    \fi
    \begin{doublespacing}
    \begin{tabular}[t]{@{}p{\ecv@pileftcolwidth}@{}p{\ecv@pirightcolwidth}@{}}
      \if@ecvdebug\cellcolor{green!25}\fi
      \raggedright
      %{\ecvLargenormalstyle{\ecv@name}} \newline % Löschen von Leerzeile wenn kein Name angegeben ist
      \ifx\@empty\ecv@address\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/address_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \ecv@address} \newline
      \fi
      \ifx\@empty\ecv@mobile\else
        \@ecvphoneispresenttrue
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/mobile_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \ecv@mobile} \quad
      \fi
	  \ifx\@empty\ecv@telephone\else
        \@ecvphoneispresenttrue
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/telephone_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \ecv@telephone} \quad
      \fi
      \ifx\@empty\ecv@workphone\else
        \@ecvphoneispresenttrue
        \ifx\@empty\ecv@mobile\else
            \ifx\@empty\ecv@telephone\else
                \if@ecvpicture
                    \if@ecvpictureright
                        \newline
                    \fi
                \fi
            \fi
        \fi
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/work_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \ecv@workphone}
      \fi
      \if@ecvphoneispresent
        \newline
      \fi          
      \ifx\@empty\ecv@fax\else
        \ecv@faxkey \ecv@fax
      \fi
      \ifx\@empty\ecv@email\else
        \@processlinks@converttoemailtrue
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/mail_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@email}} \newline
        \@processlinks@converttoemailfalse
      \fi
        \ifx\@empty\ecv@homepage\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/website_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@homepage}} \newline
      \fi
      \ifx\@empty\ecv@gitpage\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/git_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@gitpage}} \newline
      \fi
	  \ifx\@empty\ecv@githubpage\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/github_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@githubpage}} \newline
	  \fi
	  \ifx\@empty\ecv@gitlabpage\else
	  \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/gitlab_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@gitlabpage}} \newline
	  \fi
	  \ifx\@empty\ecv@linkedinpage\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/linkedin_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont \processlinks{\ecv@linkedinpage}} \newline
	  \fi
	  \ifx\@empty\ecv@orcid\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/orcid_europass_icon.pdf}}\hspace{0.2mm} {\fontseries{m}\selectfont\if@ecvorcidlabel\ecvhighlight{ORCID}~\fi\if@ecvorcidlink\setulcolor{\ecv@textcolor}\setul{.5pt}{.4pt}\href{https://orcid.org/\ecv@orcid}{\ul{\mbox{\ecv@orcid}}}\else\ecv@orcid\fi} \newline
	  \fi
      \ifx\@empty\ecv@im\else
        \raisebox{-2\lineskip}{\includegraphics[width=0.4cm]{icons/im_europass_icon.pdf}} \hspace{0.2mm}{\fontseries{m}\selectfont \ecv@im} \newline
      \fi
	\ifx\@empty\ecv@gender\else
	    \fontseries{m}\selectfont \ecvhighlight{\if@ecvpineedspipe ~| \fi \ecv@genderkey} \ecv@gender \@ecvpineedspipetrue
	\fi
	\ifx\@empty\ecv@birth\else
	    \fontseries{m}\selectfont \ecvhighlight{\if@ecvpineedspipe ~| \fi\ecv@birthkey} \ecv@birth \@ecvpineedspipetrue
	\fi
	\if@ecvpictureright
	  \if@ecvpicture
	    \ifx\@empty\ecv@nationality\else
	      \ifx\@empty\ecv@gender\else
		\ifx\@empty\ecv@birth\else
		\linebreak
		\@ecvpineedspipefalse
		\fi
	      \fi
	    \fi
	  \fi
	\fi
	\ifx\@empty\ecv@nationality\else
	    \fontseries{m}\selectfont \ecvhighlight{\if@ecvpineedspipe ~| \fi \ecv@nationalitykey}~\ecv@nationality \@ecvpineedspipetrue
	\fi
      &
      \if@ecvpictureright
	\if@ecvdebug\cellcolor{red!25}\fi
	\Large \vspace{-\baselineskip}
	\raisebox{-\height}{\expandafter\includegraphics\expandafter[\ecv@picturerightoptions]{\ecv@picturerightfile}}
      \fi
    \end{tabular}
    \end{doublespacing}
  }
}

gast.

Re: Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Beitrag von gast. »

Zoid hat geschrieben:
Do 22. Sep 2022, 13:25
Möglichkeit, die Änderung durch \RenewDocumentCommand o.ä. in mein Tex-Dokument zu übernehmen und die .cls Datei im Originalzustand zu belassen?
Das ist sogar die empfohlene Methode. Denn Klassen- und Paketdateien sollte man nie einfach abändern. Wenn überhaupt ändert man eine umbenannte Kopie, dann man dann statt des Originals lädt. Wobei in dem Fall in der Dokumentpräambel einfach \providecommand durch \renewcommand ersetzbar sein sollte.

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

Re: Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Beitrag von Zoid »

Also bekomme ich dann 116 Zeilen Extracode, nur weil der Befehl so lang ist und nicht gekürzt werden kann?

Originale werden bei mir sowieso immer nochmal abgespeichert, damit ist zur Not alles zurücksetzten kann.

gast.

Re: Speicherort von Definitionsvorlage von Dokumentenklasse (europasscv)

Beitrag von gast. »

Man kann auch xpatch verwenden, um Befehle zu patchen. Das setzt aber – wie eigentlich alles bei LaTeX – ein gewisses Grundwissen voraus. Wenn man also keine Ahnung vom Programmieren und auch nicht wirklich Ahnung von LaTeX hat, sollte man sich ein Einsteigerbuch besorgen und das Schritt für Schritt durcharbeiten. Damit sollte dann vieles klarer werden. Es gibt solche Bücher für unterschiedliche Zielgruppen.

Und natürlich kann man die kopierte Definition auch in eine eigene Datei kopieren und dort ändern. Dann stört es nicht, ob die 100 oder 1000 Zeilen hat. Die Datei kann man dann per \input in der Dokumentpräambel laden. Man kann sich auch ein Wrapper-Paket oder eine Wrapper-Klasse schreiben. Oder man schreibst sich ein Paket, das einfach nur alle Änderungen enthält, die man an den Befehlen anderer Pakete haben will. Der Möglichkeiten gibt es viele, wenn man sich erst einmal in die Thematik eingearbeitet hat. LaTeX-Programmierung intuitiv oder mit Hilfe von Google lernen, ist dagegen ein Weg, der Hauptsächlich von Irrtümern und Missverständnissen geprägt ist. Da kann man sehr viel Zeit verschwenden.

Antworten