ich nutze das Paket minted zum Einbetten von Programm-Quelltexten in LaTeX-Dokumente. Dabei finde ich es unschön, dass die Zeilennummern in den linken Seitenrand gesetzt werden. Ich möchte stattdessen, dass die Zeilennummern linksbündig mit dem umgebenden Text erscheinen. Wie kann ich dies erreichen?
Ich habe herausgefunden, dass minted eine Option xleftmargin besitzt, mit der ich den Zeilenanfang verschieben kann. Mein Problem ist jetzt, dass ich diese Länge in Abhängigkeit von der Anzahl der Stellen der größten Zeilennummer des Codeabschnitts berechnen muss. D.h. wenn der Codeabschnitt die Zeilen 1 bis 5 umfasst, muss ich die Länge für eine Ziffer berechnen, wenn der Codeabschnitt die Zeilen 90 bist 120 umfasst, für drei Ziffern. Da ich den LaTeX-Code durch ein Programm generiere, kenne ich die maximale Anzahl der Stellen n für jeden Codeabschnitt.
Ist es möglich, ein Makro \myxoffset{n} zu formulieren, dass ich schreiben kann:
\begin{minted}[...,xleftmargin=\myxoffset{n},...]{...} CODE \end{minted}
Was ich momentan mangels tiefergehender LaTeX-Kenntnisse mache, erscheint mir umständlich:
\newlength{\linenumwidth} % Länge einmal vorab definieren ... % dann für jeden Codeabschnitt: \settowidth{\linenumwidth}{\scriptsize 999} % Beispiel für dreistellige Zeilennummern \addtolength{\linenumwidth}{2.5ex} \begin{minted}[...,xleftmargin=\linenumwidth,...]{...} CODE \end{minted}
Grüße
Frank