tudace / tuda_latex_templates

LaTeX Templates for TU Darmstadt
LaTeX Project Public License v1.3c
212 stars 71 forks source link

Zeilennummerierung außerhalb Algorithmus (bei parskip= als globale Option) #343

Closed julianb3 closed 3 years ago

julianb3 commented 3 years ago

Hallo zusammen,

ich nutze die Latex Vorlage der TU zum Schreiben meiner Masterarbeit. Dort schreibe ich Pseudocode mit dem Package algorithm2e. Bei der Erstellung des Pseudocodes habe ich allerdings das Problem, dass die Zeilennummerierung außerhalb des Algorithmus Blocks und somit außerhalb der \textwidth ist (siehe Bild). algorithmus_falsch

Dies ist ein Problem, was mit der Vorlage zusammenhängt, denn wenn ich mit dem identischen Code ein leeres File mit folgendem Code erstelle: \documentclass{Article} \usepackage[ruled,vlined,linesnumbered]{algorithm2e} \begin{document} \begin{algorithm} \DontPrintSemicolon \caption{Test Algorithmus} Text in Algorithmus \; noch \; mehr \; text \; \end{algorithm} \end{document}

sind die Zeilennummerierungen innerhalb des Code Blocks und wären in meinem File später nicht mehr außerhalb der \textwidth. algorithmus_richtig.

Kann mir jemand sagen, wie ich das vermeiden kann?

Vielen Dank schonmal im Voraus!

TeXhackse commented 3 years ago

Ähm, das ist interessant. Aber tatsächlich mehr, weil ich einen Moment gebraucht habe um das zu rekonstruieren. Ich muss nochmal genauer hingucken, woher das kommt, aber anscheinend verarbeitet da irgendwas die parskip Option anders als gedacht.

Vermieden werden kann das, wenn parskip nicht als globale Option gesetzt wird.

\documentclass[fontsize=11pt]{tudapub}
\KOMAoptions{parskip=half-}%oder eben ein anderer beliebigr Wert.
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}
\begin{document}
    \begin{algorithm} \DontPrintSemicolon \caption{Test Algorithmus} Text in Algorithmus \; noch \; mehr \; text \; \end{algorithm}
\end{document}

Ich geh dem Ganzen nochmal genauer auf den Grund, wollte aber erstmal diese Erkenntnis teilen.

julianb3 commented 3 years ago

Vielen Dank für die Antwort.

Allerdings löst das mein eigentliches Problem nicht. Denn ich habe eben gesehen, dass die vorgeschlagene Lösung zwar das Problem in meinem angegebenen Minimalbeispiel löst, in meinem eigentlichen File der Fehler immer noch auftritt, da dort parskip=half- schon eingestellt war. Siehe Code: `\documentclass[ nenglish, ruledheaders=section,%Ebene bis zu der die Überschriften mit Linien abgetrennt werden, vgl. DEMO-TUDaPub class=report,% Basisdokumentenklasse. Wählt die Korrespondierende KOMA-Script Klasse thesis={type=master},% Dokumententyp Thesis, für Dissertationen siehe die Demo-Datei DEMO-TUDaPhd accentcolor=1b,% Auswahl der Akzentfarbe custommargins=true,% war true % Ränder werden mithilfe von typearea automatisch berechnet marginpar=false,% Kopfzeile und Fußzeile erstrecken sich nicht über die Randnotizspalte %BCOR=5mm,%Bindekorrektur, falls notwendig parskip=half-,%Absatzkennzeichnung durch Abstand vgl. KOMA-Sript fontsize=11pt,%Basisschriftgröße laut Corporate Design ist mit 9pt häufig zu klein % logofile=example-image, %Falls die Logo Dateien nicht vorliegen DIV=15,% Anpassung der Seitenränder ]{tudapub}

% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig \usepackage{iftex} \ifPDFTeX \usepackage[utf8]{inputenc}%kompatibilität mit TeX Versionen vor April 2018 \fi

%%%%%%%%%%%%%%%%%%% %Sprachanpassung & Verbesserte Trennregeln %%%%%%%%%%%%%%%%%%% \usepackage[english, main=nenglish]{babel} \usepackage[autostyle]{csquotes}% Anführungszeichen vereinfacht

\usepackage{microtype}

%%%%%%%%%%%%%%%%%%% %Literaturverzeichnis %%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%% %Paketvorschläge Tabellen %%%%%%%%%%%%%%%%%%%

\usepackage{tabularx} % Tabellen, die sich automatisch der Breite anpassen \usepackage{longtable} % Mehrseitige Tabellen

\usepackage{booktabs} % Verbesserte Möglichkeiten für Tabellenlayout über horizontale Linien \newcommand*{\thickhline}{% \noalign{\hrule height 1.5pt}% } %%%%%%%%%%%%%%%%%%% %Paketvorschläge Mathematik %%%%%%%%%%%%%%%%%%% \KOMAoptions{parskip=half-} \usepackage{amsmath,amssymb} \usepackage[ruled,vlined,linesnumbered]{algorithm2e}

\newcommand{\Lagr}{\mathcal{L}} \usepackage{graphicx} %Loading the package \graphicspath{{figures/}} %Setting the graphicspath \usepackage{tikz}

\usepackage{float}% erweiterte Optionen für Bilder \usepackage[export]{adjustbox}% erweiterte Optionen zur Positionierung von Bildern

\usepackage{pgfplots} \usepackage[font=small,labelfont=bf]{caption,subcaption}% für erweiterte Optionen für Bildunterschriften \usetikzlibrary{matrix} \usepgfplotslibrary{groupplots}

\usepackage{xcolor}

\usepackage[ruled,vlined,linesnumbered]{algorithm2e} \begin{document} \begin{algorithm} \DontPrintSemicolon \caption{Test Algorithmus} Text in Algorithmus \; noch \; mehr \; text \; \end{algorithm} \end{document}`

Irgendeine Idee welchen Wert ich da wählen kann ohne meine allgemeine Textstruktur, also Absätze zu ändern?

TeXhackse commented 3 years ago

@julianb3 das ist doch genau der Punkt.

Es ist möglich die Änderung zu verschieben. Also nicht als globale Option sondern erst später.

Im eben genannten Beispiel also die globale optionen bei \documentclass entfernen. Eigentlich sollte das erst später überhaupt einen Unterschied machen, deswegen ist das komisch, dass das Paket hierbei eine Unterscheidung macht. Ich hatte noch keine Zeit mir das detaillierter anzuschauen.

Globale Option meint das bei \documentclass jede Option, die dort übergeben wird, wird auch an alle anderen Pakete weitergereicht und anscheinend geht dabei bei dem Paket was kaputt.

Da später ohnehin noch \KOMAoptions{parskip=half-} gesetzt ist, ändert das am Endegebnis nichts.


Offtopic

julianb3 commented 3 years ago

Ah okay, jetzt habe ich es verstanden und jetzt ist mein Problem auch behoben, vielen Dank!

Die anderen Sachen habe ich auch verbessert, also auch vielen Dank dafür!

TeXhackse commented 3 years ago

@julianb3 Also. Das Problem hat erstmal nichts mit tuda-ci zu tun.

Das tritt immer dann auf, wenn \parindent zum Zeitpunkt, wenn algorithm2e geladen wird 0pt groß ist.

\documentclass{article}
\parindent0pt
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}
\begin{document}

\begin{algorithm} \DontPrintSemicolon \caption{Test Algorithmus} Text in Algorithmus \; noch \; mehr \; text \; \end{algorithm}
\end{document}

Die Ursache dafür ist, dass das Paket etwas ungünstig gebaut ist. Die Längen werden fest gesetzt und zwar in Abhängigkeit von einigen Einstellungen dabei. Aber ich weiß zumindest, dass ich nicht schuld bin.