Manche TTF- oder OTF-Fonts haben Leerzeichen, die eben nicht (ganz) "leer" sind, sondern einen Hintergrund zeigen o. ä. (beispielsweise der paintball-font). Bei der Nutzung mit LuaLaTeX wird aber anscheinend nicht das echte Leerzeichen des jeweiligen Fonts genutzt, sondern es gibt eine Lücke. Wie kann ich das vermeiden? EDIT: Ein MWE habe ich inzwischen zusammengestellt, zusammen mit meiner Umweg-Lösung: Open in Online-Editor
\documentclass[paper=a4,fontsize=17pt]{scrartcl} \usepackage{fontspec} \usepackage[babelshorthands]{polyglossia} \setmainlanguage[spelling=new]{german} \usepackage{listings} \setmonofont{Paintball} \begin{document} \makeatletter \def\lst@visiblespace{\char32} \makeatother \lstset{language=Pascal, stringstyle=\ttfamily, showstringspaces=true} \begin{center} \texttt{' Viel Erfolg ! '}\\ \lstinline|' Viel Erfolg ! '| \end{center} \end{document} Die erste Zeile stellt dar, was ich nicht gewünscht habe, nämlich weiße Flecken in der Zeile. So sieht mein Ergebnis aus: gefragt 12 Nov '16, 12:47 aquila |
Unabhängig von der Engine, die man verwendet, kann man natürlich das Leerzeichen aktiv machen und durch ein beliebiges anderes Zeichen ersetzen: Öffne in Overleaf
\documentclass{article} \usepackage{fontspec} \usepackage[ngerman]{babel} \begingroup \catcode`\ =\active% \def\x{\def\filledspace##1{\catcode`\ \active\def {##1}}}% \expandafter\endgroup\x \newenvironment{linefillspace}{% \par \filledspace{/}% Statt des Leerzeichens einen Schrägstrich „/“ verwenden. }{\par} \begin{document} \begin{linefillspace}% Dies ist ein Beispieltext, den es zu verarbeiten gilt, um zu zeigen, was dabei heraus kommt, wenn man die Wortzwischenräume durch ein belieges anderes Zeichen ersetzt. \end{linefillspace} \end{document} Wichtig dabei ist allerdings nicht, nur, dass dann eben genau dieses Zeichen eingefügt wird, sondern auch, dass genauso viele Zeichen davon eingefügt werden, wie vorhanden sind und zwar auch am Anfang einer Source-Zeile. Mit Öffne in Overleaf
\begin{linefillspace} Dies ist ein Beispieltext, den es zu verarbeiten gilt, um zu zeigen, was dabei heraus kommt, wenn man die Wortzwischenräume durch ein belieges anderes Zeichen ersetzt. \end{linefillspace} Bekäme man daher ein anderes Ergebnis. Auch die ungleich langen Zeilen (mit entsprechenden Man kann aber mit Hilfe von leaders die Anzahl der eingefügten Zeichen und die damit überspannte Länge variabler gestalten: Öffne in Overleaf
\documentclass{article} \usepackage{fontspec} \usepackage[ngerman]{babel} \begingroup \catcode`\ =\active% \def\x{\def\filledspace##1{\catcode`\ \active\def {##1}}}% \expandafter\endgroup\x \newenvironment{linefillspace}{% \par \filledspace{% \leavevmode \cleaders \hbox to .2em{\hss/\hss}\hskip .5em plus .1em minus .1em }% }{\par} \begin{document} \begin{linefillspace} Dies ist ein Beispieltext, den es zu verarbeiten gilt, um zu% zeigen, was dabei heraus kommt, wenn man die Wortzwischenräume durch ein% ganz beliebiges anderes Zeichen ersetzt. \end{linefillspace} Mit erzwungen, unterschiedlichen Wortabständen: \begin{linefillspace}\sloppy Dies ist ein Beispieltext, den es zu verarbeiten gilt, um zu% zeigen, was dabei heraus kommt, wenn man die Wortzwischenräume durch ein% ganz \mbox{beliebiges} anderes Zeichen ersetzt. \end{linefillspace} \end{document} Statt des „/“ kannst du natürlich jedes andere Zeichen jedes beliebigen Fonts verwenden. Die Breite der Box mit dem Zeichen, die Abstände, in denen diese eingefügt werden und die Variabilität dieses Abstandes ist ebenfalls ganz nach Belieben veränderbar. Da ich über den Font Paintball nicht verfüge, zeige ich kein Beispiel damit. Aber prinzipiell wäre statt „/“ auch ein beantwortet 24 Apr '18, 13:29 gast3 |
pdftex
hat für so etwas\pdfinterwordspaceon
(siehe pdfTeX Manual). Obluatex
so etwas auch hat, weiß ich nicht. Je nach Anwendung könnte man eventuell mit visible spaces arbeiten, wie das beispielsweise bei\verb*|test text|
gemacht wird. Da ich aber weder den genannten Font kenne, noch ein Anwendungsbeispiel, kann ich nicht mehr dazu sagen.Ah, die Idee mit verb* gefällt mir! Auf den anderen Vorschlag muss ich bei luatex wohl verzichten. Danke!
Leider gibt das verb*-Kommando ein Leerzeichen nur mit dem "open-box"-Symbol wieder, aber nicht als echtes Leerzeichen. Ohne Stern gibt es wieder die bekannten Lücken ...
Du hast es eventuell nicht bemerkt, aber hinter meinem Kommentar verbergen sich ein paar Fragen, u. a. die nach einem ganz konkreten Beispiel, aus dem hervor geht, wie das verwendet werden soll. Wenn Du ein solches ergänzt und dabei nach Möglichkeit einen frei verfügbaren Font mit Quellenangabe oder gar einen bei gängigen TeX-Distributionen wie TeX Live verfügbaren Font verwendest, würde das Deine Chance auf eine Antwort (nicht zwingend von mir, sondern auch von anderen) vermutlich verbessern.
@saputello: Doch, das hatte ich im Prinzip schon bemerkt, aber zu der Zeit, als ich die Frage stellte, war ich etwas knapp mit meiner Zeit. Inzwischen habe ich über einen Umweg das Problem (für mich) gelöst. Dennoch frage ich mich, ob es besser bzw. einfacher ginge, wenn ich nur wüsste, wie???