Verweis auf eigene Nummerierungsumgebung

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


MeganovaBass
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Do 24. Okt 2013, 23:40

Verweis auf eigene Nummerierungsumgebung

Beitrag von MeganovaBass »

Hallo Leute,

ich habe eine große Datei, in der ich meine eigene Nummerierung definiert habe (daher die vielen Pakete). Wenn ich auf meine Punkte einen \ref-Befehl anwende, erscheint immer dieser Punkt nach der Zahl (siehe Minimalbeispiel). Ich hätte gerne, dass er dabei nicht erscheint, d. h. mir wäre es recht, wenn da "1" steht und nicht "1.". In der Liste soll er aber stehen. Habt ihr eine Idee, wie man das hinkrigen kann?

Viele Grüße
Alex


Hier das Minimalbeispiel.
%Dokumentenklasse und Pakete.
\documentclass[ngerman,11pt,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage{fancybox}
\usepackage[intlimits]{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{float}
\usepackage{array}
\usepackage{tocstyle}
\usepackage[usenames,x11names,dvipsnames,table]{xcolor}
\usepackage{multido}
\usepackage{multirow,bigstrut,bigdelim}
\usepackage{hhline}
\usepackage{pstricks}
\usepackage[pdftex]{graphicx}
\usepackage[pdftex]{rotating}
\usepackage[vflt]{floatflt}
\usepackage{gensymb}
\usepackage{textcomp}
\usepackage{eurosym}
\usepackage[nointegrals]{wasysym}
\usepackage[hyphens]{url}
\usepackage[a4paper,outermargin=1in,innermargin=3cm]{geometry}
\usepackage{marginnote}
\usepackage[nouppercase]{scrpage2}\pagestyle{scrheadings}
\usepackage{sectsty}\allsectionsfont{\color{RoyalBlue}}
\usepackage[hang]{footmisc}
\usepackage{extarrows}
\usepackage{xr-hyper}
\usepackage{xr}
\usepackage{amscd}
\usepackage{kbordermatrix}
\usepackage[all]{xy}
\usepackage[Symbol]{upgreek}
\usepackage[mathscr]{eucal}
\usepackage{mathdots}
\usepackage[makeroom]{cancel}
\usepackage[subnum]{cases}
\usepackage[sans]{dsfont}
\usepackage{mdframed}
\usepackage{blindtext}
\usepackage[thinlines,thiklines]{easybmat}
\usepackage[thinlines,thiklines]{easytable}
\usepackage{setspace}
\usepackage{xhfill}
\usepackage{soul}
\usepackage{calc}
\usepackage{multicol}
\usepackage{parallel}
\usepackage{makecell}
\usepackage{diagbox}
\usepackage{spreadtab}
\usepackage{enumitem}
\usepackage{caption}
\usepackage{imakeidx,selinput,filecontents}
\usepackage{alltt}
\usepackage{gauss}
\usepackage{chngcntr}
\usepackage{mathrsfs}
\usepackage[bookmarks,bookmarksnumbered,backref,pagebackref,pdfpagelabels,colorlinks,extension=pdf]{hyperref}
\usepackage[thref,hyperref,amsmath,thmmarks]{ntheorem}
\usepackage[figure,table]{hypcap}



%Meine Nummerierungsliste.
\newlist{Enum}{enumerate}{10}									%Definition einer neuen Listenumgebung.
\setlist[Enum,1]{label=\bfseries\arabic*\normalfont.}			%Erste Ebene von Enum.
\setlist[Enum,2]{label=\theEnumi\bfseries\arabic*\normalfont}	%Zweite Ebene von Enum.
\setlist[Enum,3]{label=\bfseries(\alph*)\normalfont}			%Dritte Ebene von Enum.
\setlist[Enum,4]{label=\bfseries(\roman*)\normalfont}			%Vierte Ebene von Enum.



\begin{document}
\chapter{Test}
Hier folgt meine Umgebung:
	\begin{Enum}
	\item Das ist der erste Punkt. \label{Punkt 1a}
	\item Das ist der zweite Punkt. \label{Punkt 2a}
	\end{Enum}
Nun folgt die Standardumgebung:
	\begin{enumerate}
	\item Das ist der erste Punkt. \label{Punkt 1b}
	\item Das ist der zweite Punkt. \label{Punkt 2b}
	\end{enumerate}
In \ref{Punkt 1a} sieht man, dass $\ldots$, aber in \ref{Punkt 1b} sieht man hingegen, dass $\ldots$
\end{document}

Gast

Beitrag von Gast »

Dafür gibt es die Option ref bei enumitem normalerweise wird die wie label befüllt (daher der Punkt), aber man kann das auch abweichend definieren.

Hier mit \textbf{...} als Makro statt \bfseries als Schalter, das spart die \normalfont (das ist nicht in allen Fällen zu 100% Äquivalent, aber OK ...). Außerdem mit der gesternten Version label*=... statt label=\theEnumi....
\documentclass[ngerman,11pt,a4paper]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{enumitem}
\usepackage[bookmarks,bookmarksnumbered,backref,pagebackref,pdfpagelabels,colorlinks]{hyperref}

\newlist{Enum}{enumerate}{10}
\setlist[Enum,1]{label=\textbf{\arabic*}.,ref=\textbf{\arabic*}}
\setlist[Enum,2]{label*=\textbf{\arabic*}}
\setlist[Enum,3]{label=\textbf{(\alph*)}}
\setlist[Enum,4]{label=\textbf{(\roman*)}}

\begin{document}
\chapter{Test}
Hier folgt meine Umgebung:
   \begin{Enum}
   \item Das ist der erste Punkt. \label{Punkt 1a}
   \item Das ist der zweite Punkt. \label{Punkt 2a}
   \end{Enum}
Nun folgt die Standardumgebung:
   \begin{enumerate}
   \item Das ist der erste Punkt. \label{Punkt 1b}
   \item Das ist der zweite Punkt. \label{Punkt 2b}
   \end{enumerate}
In \ref{Punkt 1a} sieht man, dass $\ldots$, aber in \ref{Punkt 1b} sieht man hingegen, dass $\ldots$
\end{document}
Man erlaube mir die Anmerkung, dass man Dein Beispiel doch noch gehörig eindampfen konnte. Ich kann mir auch schwer vorstellen, dass Du alle geladenen Pakete in Deinem Dokument wirklich nutzt (filecontents, selinput ohne Setup, blindtext - und das sind nur die offensichtlich fragwürdigen Pakete, viele andere Pakete sind für sich genommen nützlich, bei der Vielzahl an geladenen Paketen fällt es mir aber schwer zu glauben, dass sie genutzt werden). pdftex als Ladeoption zu übergeben ist heutzutage häufig meist überflüssig bis schädlich.

MeganovaBass
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Do 24. Okt 2013, 23:40

Beitrag von MeganovaBass »

Hallo,

vielen Dank für deine schnelle Antwort. Es funktioniert nun richtig. Von der Option ref wusste ich nichts, aber nun kann ich allgemein meine Nummerierungsumgebungen damit besser ausbauen.

Ich weiß nicht mehr warum ich auf \textbf verzichtet habe. Ja, ich weiß, dass man mein Beispiel eindämpfen kann. Das Problem ist, die Datei ist relativ alt und da sind noch andere Dateien involviert. Es wäre echt eine sehr mühselige Arbeit, wenn ich auf Fehlersuche bzw. auf Formatfehlersuche gehe, sobald ich ein Paket entferne. Daher nehme ich all diese Pakete mit, solange es zu keinen Problemen kommt. Tatsächlich wird jedes der Pakete in irgend einer (Sub-)Datei gebraucht.

Dass die Ladeoption pdflatex überflüssig bis hin zu schädlich ist, wusste ich nicht und werde versuchen, diese wegzulassen. Nochmal vielen Dank.

Gast

Beitrag von Gast »

Ich kann mir zwar kaum vorstellen, wofür Du blindtext brauchst, aber vielleicht schreibst Du ja eine Arbeit, in der es um Typographie geht, da kann es natürlich ganz passend sein, bestimmte Dinge anhand von Blindtext erläutern zu können. Oder Du brauchst ein paar Seiten mehr und meinst, dass ein gezieltes \blindext auf Seite 25 eh niemandem auffällt.

Letztendlich ist es natürlich Deine Entscheidung, ob Du diese riesige Präambel so weiter mitschleppen möchtest. In vielen Fällen geht so etwas gut, aber es kann immer sein, dass eine solche Präambel an irgendeinem Punkt spektakulär aber auch katastrophal in sich zusammenfällt, dann ist es womöglich unter Zeitdruck natürlich ein kleines Abenteuer den Scherbenhaufen zusammenzufegen und wieder funktionsfähig zu machen.

Zumindest aber wenn Du hier Fragen stellst, wäre es ein Ding der Höflichkeit, nicht eine Wand von irrelevanten Paketen abzusetzen, sondern ein gezieltes Minimalbeispiel zu liefern, dass nur die benötigten Pakete lädt.

Antworten