Ich möchte den den String "/t" zb. 33 Mal hintereinander schreiben... /t/t/t/usw. Wie geht das im Latex? gefragt 08 Sep '14, 12:08 Jeff |
Plain TeXHier wird Open in writeLaTeX
\newcount\printcount \def\multiprint#1#2{ \printcount=0 \loop\ifnum\printcount<#1 #2% \advance\printcount by 1\repeat } \multiprint{33}{/t} \bye beantwortet 08 Sep '14, 17:48 Henri |
Du kannst die Ausgabe über eine Schleife vornehmen. Dafür gibt es verschiedene Möglichkeiten. Hier sind mal drei Beispiele: Mit
|
Als Alternative zu Elkes Antwort hier vier weitere Möglichkeiten, die ersten drei nur mit LaTeX2e-Bordmitteln, die vierte mit expl3. Wenn Zu den einzelnen Varianten weitere Erklärungen gewünscht sind, reiche ich die gerne nach. Open in writeLaTeX
\documentclass{article} \usepackage{expl3,xparse} % nur LaTeX2e: \makeatletter \newcounter{tmp} % nicht expandierbar: \newcommand\verfielfacheA[2]{% \setcounter{tmp}{#1}% \ifnum\value{tmp}>0 #2% \addtocounter{tmp}{-1}% \expandafter\@firstofone \else \expandafter\@gobble \fi {\verfielfacheA{\value{tmp}}{#2}}% } % nicht expandierbar: \newcommand\verfielfacheB[2]{% \setcounter{tmp}{#1}% \@whilenum{\value{tmp}>0}\do{#2\addtocounter{tmp}{-1}}% } % expandierbar: \newcommand\verfielfacheC[2]{% \ifnum#1>0 \expandafter\@firstofone \else \expandafter\@gobble \fi {#2\expandafter\verfielfacheC\expandafter{\the\numexpr#1-1\relax}{#2}}% } \makeatother % mit expl3 und xparse, expandierbar: \ExplSyntaxOn \cs_new:Npn \jeff_multiplicate:nn #1#2 { \prg_replicate:nn {#1} {#2} } \DeclareExpandableDocumentCommand \verfielfacheD {mm} { \jeff_multiplicate:nn {#1} {#2} } \ExplSyntaxOff \begin{document} +\verfielfacheA{3}{/t}+ +\verfielfacheB{3}{/t}+ +\verfielfacheC{3}{/t}+ +\verfielfacheD{3}{/t}+ \end{document} beantwortet 08 Sep '14, 15:18 cgnieder |
Nur zur Info: einen „String“, wie ihn andere Programmiersprachen kennen, gibt es in (La)TeX nicht.