PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : algorithm2e nicht kursive if-Bedingung



jabaa
01-10-2010, 01:01
Hallo,
ich schreibe zur Zeit einige Algorithmen und nutze dazu algorithm2e. Nun ist mir aufgefallen, dass if-Bedingungen und for-Schleifen (und sicher noch mehr) automatisch kursiv gesetzt werden. Das ist natürlich manchmal wirklcih nicht schön. Ich kenn mich mit LaTex nun nicht so gut aus und kenne auch keine Kniffe, weiß aber, dass jemand immer eine Lösung hat. Ich habe schon versucht den Teil in \text{...} zu packen. Ohne Erfolg. Noch ein Paar Tipps?

Gruß
Jabaa

Schweinebacke
01-10-2010, 06:48
Vermutlich wird die Bedingung als Argument von if betrachtet und dann im ArgSty gesetzt. Den kann man mit \SetArgSty umdefinieren (siehe Abschnitt 8 der Anleitung zu algorithm2e). BTW: algorithm2e hat einen Bug. Wenn man es zusammen mit einer Artikel-Klasse verwendet, definiert es trotzdem \chapter (auf eine nicht funktionierende Definition). Das führt dazu, dass fast alle Pakete, die entscheiden müssen, ob die oberste Überschriftenebene \chapter oder \section ist, falsch entscheiden. Deshalb sollte man genau in diesem Fall ein \let\chapter\relax oder \let\chapter\UNdefiNED nach dem Laden von algorithm2e ergänzen. Angeblich wird der Bug in der nächsten Release behoben.

jabaa
03-10-2010, 03:23
Ich vermute, es kam zu einem Missverständnis. Zumindest konnten die Tipps mir nicht helfen. Deswegen habe ich hier mal ein Minimalbeispiel. Also ich möchte, dass die Bedingung der For-Schleife nicht kursiv ist. Wie man sieht, habe ich beide Tipps eingebaut und trotzdem ist der Test kursiv. Das macht die Sache sehr unschön. Was kann ich machen, damit dieser Text nicht mehr kursiv ist? Habe auch mal ein Screen und die PDF hochgeladen



\documentclass[bibliography=totocnumbered]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage[german,ruled,linesnumbered,vlined]{algorithm2e}
\let\chapter\relax
\let\chapter\UNdefiNED
\begin{document}
\begin{algorithm}[H]
\DontPrintSemicolon

\For{\text{Hier nicht kursiv}}
{
For-Schleife
}
\caption{}
\label{}
\end{algorithm}
\end{document}

Schweinebacke
03-10-2010, 09:08
Du hast einen Ergänzungshinweis, der mit der eigentlichen Frage nur soviel zu tun hat, dass er ein allgemeines Problem der aktuellen algorithm2e-Version behandelt, umgesetzt. Aber den Haupthinweis, der davor steht, hast Du völlig unbeachtet gelassen. Lass mal die Anweisung \text weg und ergänze dafür in der Präambel \SetArgSty{}. Und schau Dir den genannten Abschnitt in der algorithm2e-Anleitung an.

BTW (und das ist wieder ein Ergänzungshinweis): Die erste \let-Anweisung kannst Du weglassen. Die wird von der zweiten ohnehin überschrieben.

jabaa
03-10-2010, 14:08
Hat geklappt. Top. Vielen Dank.





\documentclass[bibliography=totocnumbered]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{amsthm}
\usepackage[german,ruled,linesnumbered,vlined]{algorithm2e}
\SetArgSty{}
\begin{document}
\begin{algorithm}[H]
\DontPrintSemicolon

\For{\text{Hier nicht kursiv}}
{
For-Schleife
}
\caption{}
\label{}
\end{algorithm}
\end{document}