サーチ…


カウンタの宣言、初期化、pdfへの印刷

ラテックスで整数変数を使用することは可能です。新しい変数を作成するには、 \newcounter{name}コマンドが必要です。ここで、 nameは新しいカウンタの名前です。 nameは文字のみを含める必要があります。このコマンドは、名前\thename名前の新しい名前を作成します。このコマンドを使うと、 name変数を用紙に印刷できます。 nameの初期値は0です。 "name"に値を与えるには、 \setcounter{name}{n}使用できます(nは整数)。 \value{name}の値で返す関数であるname

\documentclass{article}
\begin{document}
\newcounter{num}                    %new counter, initial value is 0
\thenum                             %print 0
\setcounter{num}{3}                 %set num to 3
\thenum                             %print 3
\newcounter{number}
\setcounter{number}{\value{num}}    %set number to value of num
\thenumber                          %print 3

Latex provides some other formats to print a number.

Other types of printing:

\arabic{num}\\
\Roman{num}\\ %→ I, II, III, IV, . . . (num = 1, 2, 3, . . . )
\roman{num}\\ %→ i, ii, iii, iv, . . . (num = 1, 2, 3, . . . )
\Alph{num}\\  %→ A, B, C, D, . . . (num = 1, 2, 3, . . . , 26)
\alph{num}\\  %→ a, b, c, d, . . . (num = 1, 2, 3, . . . , 26)
\fnsymbol{num}\\ %→ ∗, †, ‡, §, ¶, k, ∗∗, ††, ‡‡ (num = 1, 2, 3, . . . , 9)
\end{document}

ここに画像の説明を入力

カウンターの操作

この例は、カウンターで数学演算を使用する方法を示しています。これはラテックスのループに役立つかもしれません。

加算: \addtocounter{num}{n}

このコマンドはnumnを加算しますnumはカウンタ、 nは正の整数です。

減算: \addtocounter{num}{-n}

このコマンドはnumからnを減算しますnumはカウンタであり、 nは正の整数です。

乗算: \multiply\value{num} by n

このコマンドは、乗算numによりnnumカウンタであり、 n整数です。

分割 \divide\value{num} by n

このコマンドは、 numn割って商の整数部分を取得します( numはカウンタ、 nは整数)

\documentclass{article}
    \begin{document}
    \newcounter{num}
    \setcounter{num}{3}
    \addtocounter{num}{10}
    \thenum\\%prints 13
    \addtocounter{num}{-3}
    \thenum\\%prints 10
    \stepcounter{num}
    \thenum\\%prints 11
    \multiply\value{num} by \value{num}
    \thenum\\%prints 121
    \multiply\value{num} by 2
    \thenum\\%prints 242
    \divide\value{num} by 60
    \thenum%prints 4
\end{document}

\newcommand{num}カウンタを宣言します。 \setcounter{num}{3}はnumの値を3に設定します。

\addtocounter{num}{10}はnumに10を加えます。

\addtocounter{num}{-3} numから3を引いてください。

\stepcounter{num}\stepcounter{num}に1を加えます

\multiply\value{num} by \value{num}

\multiply\value{num} by 2倍してnumを\multiply\value{num} by 2倍します。

\divide\value{num} by 60除算すると、numを\divide\value{num} by 60割り、整数部分を得ます。

コードの結果:13 \\ 10 \\ 11 \\ 121 \\ 242 \\ 4

(\\は改行を表しています)

intcalcパッケージは、mod、pow、sng、abs、invなどの他の整数演算を追加します。

intcalc_package.pdf

If文

ラテックスでは、条件が真であるかどうかにかかわらず、組み込みコマンドを使用してコードを実行することができます。

2つの整数を比較する: \ifnum\value{num}>n {A} \else {B}\fi

このコードは、num> n else Bの場合にAを実行します。>を<と=で置き換えることができます。

数字が奇数の場合: \ifodd\value{num} {A}\else {B}\fi

numが奇数の場合、A else Bを実行します。

条件付きの場合: \ifthenelse{condition}{A}{B}

このコマンドを使用するには、ifthenパッケージをロードする必要があります。 conditionがtrueの場合、A else Bを実行します。

\( \)\AND\OR\NOT複雑な条件を作成することは可能です。

例: \ifthenelse{\(\NOT 4<2 \OR 4>11\)\AND\isodd{4}}{A}{B}

このコードは、ページに "B"を書き留めます。 \NOT 4<2は真、 4>11は偽です。 "OR"を指定してfalseとtrueを接続すると、結果はtrueになります。だから\(\NOT 4<2 \OR 4>11\)は真です。 \isodd{4}は、4が偶数であるため、falseです。 "AND"で接続された偽と真の文は偽であるので、出力はBです。

コード例:

\documentclass{article}
\usepackage{ifthen}
\begin{document}
    \newcounter{num}
    \setcounter{num}{10}

    If num$>$100 then the next sentence will be "Num is large." else "Num is small."

    Num is \ifnum \value{num}>100 {large} \else {small}.

    If num is odd then the next sentence will begin with "Odd" if not then with "Even"

    \ifodd \value{num} {Odd} \else {Even} numbers are cool.

    If (num$>$3 and (1$<$0 or num$=$10)) is true then the next sentence will be "True." else "False."

    \ifthenelse{\value{num}>3\AND\(1<0 \OR \value{num}=10\)}{True.}{False.}


\end{document}

結果

ループ - 繰り返すもの

ラテックスでループを作ることができます。これらは類似していますが、他のプログラミング言語のループほどカスタマイズできません。ループを使用する代わりに、@ループを使用することもできます。名前に "@"を含むコマンドを使用する場合は、 \makeatletter\makeatother間に置く必要があります。新しい定義を記述するマクロ内でそれらを使用することはできません。

違う:

\def\is#1#2{\makeatletter\@ifstar{#1}{#2}\makeatother

右:

\makeatletter\def\is#1#2{\@ifstar{#1}{#2}}\makeatother

@forループ: \@for\command:={list}\do{commands}

\makeatletter
\@for\sun:={rising,setting}\do{The sun is \sun.}
\makeatother

次のテキストが作成されます。太陽が上昇しています。太陽が沈んでいます。

@whilenumループ: \@whilenum condition\do{commands}

\makeatletter
\newcounter{int}
\@whilenum\value{int}<10\do
{\stepcounter{int}\ifthenelse{\isodd{\value{int}}}{\theint}{}}
\makeatother

このコードは、1から9までの奇数を書き込みます。

"ループリピート"ループ: \loop {commands} \ifnum condition \repeat

conditionがtrueになるまでコマンドを実行します。

\setcounter{int}{1}
\loop
\theint
\addtocounter{int}{2}
\ifnum \value{int}<10
\repeat

このコードは@whilenumループと同じです。

コード例:

\documentclass{article}
\usepackage{ifthen}
\usepackage{amsmath} %\text{} command needs this package
\begin{document}
    Demonstration of @for loop:

    \makeatletter
    \@for\sun:={rising,setting}\do{The sun is \sun. }
    \makeatother

    \newcounter{int}

    @whilenum loop:
    
    \setcounter{int}{0}
    \makeatletter
    \@whilenum\value{int}<20\do
    {\stepcounter{int}\ifthenelse{\isodd{\value{int}}}{\theint\text{ }}{}}
    \makeatother
    
    "loop repeat" loop:
    
    \setcounter{int}{1}
    \loop
    \theint
    \text{ }\addtocounter{int}{2}\ifnum\value{int}<20
    \repeat
\end{document}

結果

Tikzでのループの使用

ループはTikzで便利です。

次のコードは、数字のない時計を描画します。

\documentclass{article}
\usepackage{ifthen}
\usepackage{intcalc}
\usepackage{tikz}
\newcounter{num}

\begin{document}       
\begin{tikzpicture}
    \makeatletter
    \setcounter{num}{1}
    \newcounter{angle}
    \draw (0,0) circle (3cm);
    \@whilenum\value{num}<13\do{
    \setcounter{angle}{360}
    \multiply\value{angle} by \value{num}
    \divide\value{angle} by 12
    \ifnum \intcalcMod{\value{num}}{3}=0{
    \draw[line width=4pt] (\theangle:2cm) -- (\theangle:3cm);    }\else
    {
    \draw[line width=1pt] (\theangle:2.3cm) -- (\theangle:3cm);
    }\fi
    \addtocounter{num}{1}
    }
    \makeatother
\end{tikzpicture}
\end{document}

結果:

クロック



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow