Duplikat zu: Was sollen die Kommentarzeichen (%) am Ende der Zeile?


Ich habe mir ein command definiert, das prüft, ob der erste optuonale Parameter gesetzt wird und dann entsprechend anders expandieren soll. Konkret definiere ich für eine mit tikz gesetzte Node ein Label und möchte es dann im Text referenzieren und zur Node springen. Das Problem, was ich habe ist, dass nun bei der Referenzierung im Text davor Leerzeichen bzw. Freiraum gesetzt wird. Wenn ich "manuell" referenziere, erscheint kein Freiraum. Warum passiert das und wie kann ich das verhindern?

Hier mein Beispiel:

Open in writeLaTeX
\documentclass{scrartcl}

\usepackage{tikz}
\usepackage{hyperref}

\newcommand{\labelNode}[2][]{ %
    \def\empty{}
    \def\temp{#1}
    \ifx\temp\empty
        \node[draw] {#2};
    \else
        \node[draw] (#1) {\raisebox{2ex}[0pt]{\hypertarget{meta:\detokenize{#1}}{}}#2
        \label{lbl:meta:\detokenize{#1}}};
    \fi
}

\newcommand{\nodeRef}[2][]{
    \def\empty{} %
    \def\temp{#1} %
    \ifx\temp\empty %
        \texttt{#2} %
    \else %
        \hyperlink{meta:\detokenize{#1}}{\texttt{#2}} %
    \fi %
}

\begin{document}

\section{First}

\subsection{Second}

\begin{tikzpicture}
    \labelNode[foobar]{FooBar};
\end{tikzpicture}

Und im Text wird \nodeRef[foobar]{FooBar} nun mit Leerzeichen referenziert.

Nun aber die nodeRef ohne Verwendung des Kommandos:
\hyperlink{meta:foobar}{\texttt{FooBar}}.

Liegt auf Seite \pageref{lbl:meta:foobar}, im Abschnitt \ref{lbl:meta:foobar}   .

\end{document}

gefragt 02 Dez '14, 13:46

ErnstZ's gravatar image

ErnstZ
61112433
Akzeptiert-Rate: 62%

bearbeitet 03 Dez '14, 10:05

esdd's gravatar image

esdd
15.9k164055

\def\empty{} scheint ziemlich nutzlos: so ist \empty schon von vornherein definiert.

(02 Dez '14, 13:55) cgnieder

@Clemens, vielen Dank. Durch Entfernen der Leerzeichen vor den %-Zeichen verschwindet der Freiraum, wie erwartet nach Lesen des von dir verlinkten Posts. Das mit den Leerzeichen wusste ich bisher noch nicht. Ich habe immer gedacht, die %-Zeichen werden benutzt, um sicherzustellen, dass Inhalt auf einer Zeile, der aus Versehen im nicht-sichtbaren Bereich des Editors hinzugefügt wurde, nicht berücksichtigt wird. Sowas kann ja mal passieren wenn die Katze über die Tastatur läuft ;) Wie machen wir das jetzt mit der Lösung? Du sollst ja für die Antwort belohnt werden.

(02 Dez '14, 14:08) ErnstZ
2

@ErnstZ wenn Du mich belohnen willst, dann gib doch einfach bei der anderen Frage Deine Stimme ab. (Da kannst Du sogar zweimal für mich stimmen...) Diese Frage können wir dann vielleicht am besten als Duplikat der anderen schließen.

(02 Dez '14, 15:41) cgnieder

Die Frage wurde aus folgenden Grund "Duplikat einer anderen Frage: http://texwelt.de/wissen/fragen/16/was-sollen-die-kommentar-zeichen-am-ende-der-zeilen" geschlossen ErnstZ 02 Dez '14, 15:44

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×52
×13

gestellte Frage: 02 Dez '14, 13:46

Frage wurde gesehen: 3,162 Mal

zuletzt geändert: 03 Dez '14, 10:05