LibreOffice 25.2 ヘルプ
LibreLogoはシンプルで、各国語対応された、Logoに似たプログラミング環境で、タートルベクターグラフィックスを持ち、プログラミングやワープロによる文書作成といったコンピューティング、DTP、グラフィックデザインを教えるためのものです。参照:http://www.numbertext.org/logo/librelogo.pdf.
The LibreLogo toolbar () contains turtle moving, program start, stop, home, clear screen, program editor/syntax highlighting/translating icons and an input bar (command line).
“FORWARD 10”(すすむ10), “BACK 10”(後退10), “LEFT 15”(左15度回転), “RIGHT 15”(右15度回転)のLogoコマンドに相当するアイコンがあります。アイコンのどれかをクリックするとタートルのあるページをタートルを表示されるようスクロールさせた上でタートルを移動します。
LibreLogoプログラムとしてのWriterドキュメントのテキスト、(あるいは選択された部分だけの)テキスト文を実行するために“Start Logo program”アイコンをクリックしてください。ドキュメントが空の場合は、プログラムの例がドキュメントに挿入・実行されます。
「とめる」アイコンをクリックするとプログラムの実行が停止します。
「もとの場所へ」アイコンをクリックするとタートルの位置と設定がリセットされます。
「画面を消す」アイコンをクリックするとドキュメントに描画されたオブジェクトが削除されます。
The “magic wand” icon sets 2-page layout for program editing, expands and converts to uppercase the abbreviated, lowercase Logo commands in the Writer document. Change the language of the document () and click on this icon to translate the Logo program to the selected language.
コマンドラインに実行したいコマンドを入れてエンターキーを押してください。プログラムを停止するには「とめる」アイコンを使います。
エンターキーを押しつづけると、コマンドラインを繰り返すことができます。たとえば、このようなコマンド列の場合:
FORWARD 200 LEFT 89
To reset the command line triple-click it or press CommandCtrl+A to select the previous commands, and type the new commands.
Turtle shape of LibreLogo is a normal fixed size drawing object. You can position and rotate it on standard way, too, using the mouse and the Rotate icon of the Drawing Object Properties toolbar. Modify Line Thickness, Line Color and Area Color settings of the turtle shape to set PENSIZE, PENCOLOR and FILLCOLOR attributes of LibreLogo.
LibreLogoの描画とプログラムは同じWriter文書を使います。LibreLogoのキャンバスはWriter文書の最初のページです。Logoツールバーの「魔法の杖」アイコンを使用すればLibreLogoプログラムの前に改ページを挿入した上でページのズームを設定することができ、またLibreLogoプログラミングに快適な2ページレイアウトでフォントサイズを変更もできます。:左(最初の)ページはキャンバス、右(2番目の)ページはLibreLogoプログラムエディターです。
LireLogoは簡単に現地語化できるLogoライクなプログラミング言語で、LibreOffieのネイティブ言語コミュニティによって様々な言語に現地語化されています。教育などで使われる単純なLogoプログラムの場合の古いLogoのシステムに後方互換性があります。
TO triangle :size
REPEAT 3 [
FORWARD :size
LEFT 120
]
END
triangle 10 triangle 100 triangle 200
リストの要素はコンマで区切られる: POSITION [0, 0]
プログラムのブロックとリストは異なる
プログラムブロックはスペースまたは角括弧を挿入し改行が必要: REPEAT 10 [ FORWARD 10 LEFT 36 ]
リストは角括弧で閉じられていることが必要: POSITION [0, 0]が正しく、POSITION [ 0, 0 ]ではありません
1行での関数宣言はサポートされていない(TOとENDには改行が必要です)。
変数名の前のコロンは省略可能です。
TO triangle size
REPEAT 3 [ FORWARD size LEFT 120 ]
END
文字列の表記法は正字法とPython文法の両方をサポートしています。
PRINT "word ; Logoもともとの文法
PRINT “Arbitrary text.” ; Writer正書法
PRINT 'Arbitrary text.' ; Python文法
Pythonリストと文字列の取り扱い
PRINT “text”[2] ; “x”を表示
PRINT “text”[1:3] ; “ex”を表示
Python風なFORループ
Phthonに似た変数宣言:
x = 15
PRINT x
特別な問い合わせ関数は存在しない:
PRINT FILLCOLOR
p = POSITION
PRINT p
REPEAT 10 [ POSITION ANY POSITION p ]
関数呼出しでの括弧付与が選択可能
TO star size color
FILLCOLOR color
REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
FILL
END
star 100 “red”
star(100, “green”)
star(100, “blue”)
各命令、色の定数は大文字と小文字を区別しません:
PRINT “Hello, World!”
print “Hello, World, again!”
変数名は大文字と小文字を区別します:
a = 5
A = 7
PRINT a
PRINT A
Lines of a LibreLogo program are paragraphs in the Writer document. A program line can contain multiple commands:
PRINT “Hello, World!” PRINT “LibreLogo”
行、又は行の一部分は、セミコロンからその行(段落)の末尾までを注釈にできます:
; some comments
PRINT 5 * 5 ; some comments
行の末尾にチルダ文字を使用することで、一行のプログラムを複数の段落に分割することが可能です:
PRINT “This is a very long ” + ~
“warning message”
FORWARD 10 ; 前に10pt移動 (1pt = 1/72 inch)
FORWARD 10pt ; 上と同じ
FORWARD 0.5in ; 前に0.5 inch移動 (1 inch = 2.54 cm)
FORWARD 1" ; 上と同じ
FD 1mm
FD 1cm
BACK 10 ; 10pt後ろにもどる
LEFT 90 ; 反時計回りに90度回転
LEFT 90° ; 上と同じ
LT 3h ; 上と同じ (時計の位置)
LT any ; ランダムな角度に回転
RIGHT 90 ; 時計回りに90度回転
PENUP ; タートルは描画せずに動くようになる
PENDOWN ; タートルは描画ながら移動するようになる
POSITION [0, 0] ; 左上の角に向きを変えて移動するく
POSITION PAGESIZE ; 右下の角に向きを変えて移動する
POSITION [PAGESIZE[0], 0] ; 右上の角に向きを変えて移動する
POSITION ANY ; ランダムな位置に向きを変えて移動する
HEADING 0 ; 北に向く
HEADING 12h ; 上と同じ
HEADING [0, 0] ; 左上の角に向く
HEADING ANY ; ランダムな方に向く
HIDETURTLE ; タートルを隠す (showturtle 命令まで)
SHOWTURTLE ; タートルを表示
HOME ; reset initial turtle position
CLEARSCREEN ; 文書に描画されたオブジェクトを消し去る
FILL ; close and fill the actual line shape or points
CLOSE ; close the actual line shape or join the actual points
Example: filling a regular triangle:
FORWARD 50 LEFT 120 FORWARD 50 FILL
Example: drawing a regular triangle:
FORWARD 50 LEFT 120 FORWARD 50 CLOSE
PENSIZE 100 ; line thickness is 100 points
PENSIZE ANY ; equivalent of PENSIZE RANDOM 10
PENCOLOR “red” ; ペンの色を赤にする (色名による色の定数を参照してください)
PENCOLOR [255, 255, 0] ; 黄色にする (RGBリスト)
PENCOLOR 0xffff00 ; 黄色にする(hexaコード)
PENCOLOR 0 ; 黒色にする (0x000000)
PENCOLOR ANY ; ランダムな色
PENCOLOR [5] ; 赤にする (色識別子によって色の定数を参照してください)
PENCOLOR “invisible” ; 図形表示アウトラインなしの不可視のペン色
PENCOLOR “~red” ; ランダムな赤色にする
PENTRANSPARENCY 80 ; 今のペン色の透明度を80%に設定
PENCAP “none” ; 余分な線の端点なし (初期値)
PENCAP “round” ; 丸い端点
PENCAP “square” ; 四角い端点
PENJOINT “rounded” ; 線を丸くつなぐ (初期値)
PENJOINT “miter” ; 線を鋭くつなぐ
PENJOINT “bevel” ; 線を斜めにつなぐ
PENJOINT “none” ; 線をつながない
PENSTYLE “solid” ; 実線 (初期値
PENSTYLE “dotted” ; 点線
PENSTYLE “dashed” ; 破線
; 次の引数リストで指定された独自な点線-破線パターン:
; – 隣接した点の数
; – 点の長さ
; – 隣接した破線の数
; – 破線の長さ
; – 点線/破線の間隔
; – 型 (省略可能な):
; 0 = 点は長方形 (初期値)
; 2 = 点は正方形 (長さと間隔はペンサイズによる)
PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––
FILLCOLOR “blue” ; fill with blue color, see also PENCOLOR
FILLCOLOR “invisible” CIRCLE 10 ; unfilled circle
FILLCOLOR [“blue”, “red”] ; gradient between red and blue
FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; between white and orange
FILLCOLOR [“blue”, “red”, 1, 0, 0] ; set axial gradient (with the required rotation and border settings), possible values: 0-5 = linear, axial, radial, elliptical, square and rectangle gradients
FILLCOLOR [“red”, “blue”, 0, 90, 20] ; linear with 20% border, rotated with 90 degrees from the actual heading of the turtle
FILLCOLOR [“red”, “blue”, 0, 90, 20, 0, 0, 200, 50] ; from 200% to 50% intensity
FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; radial gradient with random colors and 50-50% horizontal and vertical positions of the center
FILLTRANSPARENCY 80 ; 現在の塗りつぶし色の透明度を80%に設定
FILLTRANSPARENCY [80] ; 透明度のグラデーションを線形に80%から0%に設定
FILLTRANSPARENCY [80, 20] ; 透明度のグラデーションを線形に80%から20%に設定
FILLTRANSPARENCY [80, 20, 1, 90] ; 現在タートルが向いている方向から90度で透明度のグラデーションに角度をつける
FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; 外側20%水平・垂直の中心部で50-50%になる外側80%、内側20%の円形な透明度グラデーションを設定
FILLSTYLE 0 ; ハッチングなしで塗りつぶし (初期値)
FILLSTYLE 1 ; 黒の一本線のハッチング (水平)
FILLSTYLE 2 ; 黒の一本線のハッチング (45度)
FILLSTYLE 3 ; 黒の一本線のハッチング (-45度)
FILLSTYLE 4 ; 黒の一本線のハッチング (垂直)
FILLSTYLE 5 ; 赤のクロスハッチング (45度)
FILLSTYLE 6 ; 赤のクロスハッチング (0度)
FILLSTYLE 7 ; 青のクロスハッチング (45度)
FILLSTYLE 8 ; 青のクロスハッチング (0度)
FILLSTYLE 9 ; 青の3重線の
FILLSTYLE 10 ; 黒の幅広一本線のハッチング (45度)
; 次の引数リストで指定されたカスタム ハッチング:
; – 書式 (1 = 1本線, 2 = 2重線, 3 = 3重線 ハッチング)
; – 色
; – 間隔
; – 角度
FILLSTYLE [2, “green”, 3pt, 15°] ; 緑のクロスハッチング (15度)
CIRCLE 100 ; 円形を描く (直径 = 100pt)
ELLIPSE [50, 100] ; 楕円を50と100の直径で描く
ELLIPSE [50, 100, 2h, 12h] ; 楕円の扇状を描く (2時の時計の位置から12時へ)
ELLIPSE [50, 100, 2h, 12h, 2] ; 楕円状の弓型として描く
ELLIPSE [50, 100, 2h, 12h, 3] ; 楕円状の円弧として描く
SQUARE 100 ; 正方形を描く (サイズ = 100pt)
RECTANGLE [50, 100] ; draw a rectangle shape (50×100pt)
RECTANGLE [50, 100, 10] ; draw a rectangle with rounded corners
POINT ; ペンの現在の大きさと色で点を描く
CLOSE can join the last points, FILL can fill the shape defined by points. For example, it’s easy to draw a “flat” star starting from its center:
PENUP
REPEAT 5 [
FORWARD 80
POINT
BACK 80
RIGHT 36
FORWARD 50
POINT
BACK 50
RIGHT 120
] FILL
LABEL “text” ; タートルの位置にテキストを表示する
LABEL 'text' ; 上と同じ
LABEL "text ; 上と同じ (一単語のみ)
CIRCLE 10 TEXT “text” ; 今描かれるオブジェクトのテキストを設定する
FONTCOLOR “green” ; フォントの色を緑にする
FONTFAMILY “Linux Libertine G” ; フォントの (書体)を設定
FONTFAMILY “Linux Libertine G:smcp=1” ; 同様にフォント属性を (小型英大文字)に設定
FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; スモールキャップ + 古書体
FONTSIZE 12 ; 12ptに設定
FONTWEIGHT “bold” ; ボールド体に設定
FONTWEIGHT “normal” ; 普通のフォントの太さに設定
FONTSTYLE “italic” ; イタリック体に設定
FONTSTYLE “normal” ; 普通の書体に設定
PICTUREとは次の用途に使われます:
シェイプのグループ化;
新しいラインシェイプの開始;
SVG画像やSVG/SMILアニメーションの保存;
位置とラインシェイプを左端基準で正しくなるようにする
; PICTURE [ LibreLogoの命令 ]
PICTURE [ FORWARD 100 CIRCLE 100 ] ; グループ化された木のようなシェイプ
See also “Group” in LibreOffice Writer Help.
TO tree location
PENUP POSITION location HEADING 0 PENDOWN
PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
END
PICTURE [ tree [230, 400] tree [300, 400] ] ; grouped shapes in a grouped shape
PICTURE ; 新しいラインシェイプを始める
FORWARD 10 PICTURE FORWARD 10 ; 2本のラインシェイプ
PICTURE “example.svg” [ CIRCLE 5 ] ; ユーザーフォルダーにSVG画像ファイルとして絵を保存する
PICTURE “Desktop/example.svg” [ FORWARD 100 CIRCLE 5 ] ; 上と同じ、相対パスを使用
PICTURE “/home/user/example.svg” [ CIRCLE 5 ] ; Unix/Linuxの絶対パス
PICTURE “C:\example.svg” [ CIRCLE 5 ] ; Windowsの絶対パス
PICTURE “animation.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; SVG/SMIL アニメーションとして保存 (SLEEPも参照のこと)
PICTURE “animation2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; 上と同じ、ただし最後のSLEEPによって、SIMLに適合したブラウザーでは2秒後にSVGアニメーションが再開されるループになる
Use PICTURE to keep the consistency of positions and line shapes at the left border of Writer:
PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]
; REPEAT 数値 [ 命令 ]
REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; 10回繰り返す
; 任意の数値
REPEAT [ POSITION ANY ] ; ずっと繰り返す
ループ変数 (FORループやWHILEループでも利用可能)。
REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]
リストの要素について順にループする:
FOR i IN [1, 5, 7, 9, 11] [
FORWARD i
LEFT 90
]
文字列内の文字について順にループする:
FOR i IN “text” [
LABEL i
FORWARD 10
]
WHILE TRUE [ POSITION ANY ] ; ずっと繰り返す
WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; REPEAT 10 [ ... ]と同じ
ループを止めます。
REPEAT [ ; ずっと繰り返す
POSITION ANY
IF REPCOUNT = 100 [ BREAK ] ; REPEAT 100 [ ... ]と同等
]
ループの次の繰り返しに飛びます。
REPEAT 100 [
POSITION ANY
IF REPCOUNT % 2 = 0 [ CONTINUE ]
CIRCLE 10 ; 2回に1回円を書く
]
; IF 条件 [ 真のブロック ]
; IF 条件 [ 真のブロック ] [ 偽のブロック ]
IF a < 10 [ PRINT “Small” ]
IF a < 10 [ PRINT “Small” ] [ PRINT “Big” ]
論理演算子。
IF a < 10 AND NOT a = 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ]
IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ] ; 上と同じ
新しいワード(または手続き)を作ります。
TO triangle
REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
END
REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]
関数から値を返します。
TO randomletter
OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
END
PRINT randomletter + randomletter + randomletter ; 3文字のランダムな文字列を表示します。
手続きから戻ります。
TO example number
IF number < 0 [ STOP ]
PRINT SQRT number ; 平方根の表示
]
example 100
example -1 ; なにも出力されずエラーも起きない
example 25
色などのランダムな値を意味する標準変数です。
PENCOLOR ANY ; ランダムなペンカラー
論理値。
WHILE TRUE [ POSITION ANY ] ; ずっと繰り返す
PRINT TRUE ; trueを表示
論理値。
WHILE NOT FALSE [ POSITION ANY ] ; ずっと繰り返す
FALSEを表示 ; print false
PRINT PAGESIZE ; 現在のページサイズを表示, 例. [595.30, 841.89]
PRINT PI ; 3.14159265359を表示
PRINT “text” ; ダイアログボックスに “text” を表示
PRINT 5 + 10 ; 15を表示
PRINT INPUT “Input value?” ; 問合せダイアログボックスで文字列を聞き、それを表示
PRINT FLOAT (INPUT “First number?”) + FLOAT (INPUT “Second number?”) ; 単純な電卓
SLEEP 1000 ; 1000 ミリ秒 (1 秒)の間待つ
処理手続きをまたいで使われるグローバル変数を設定
GLOBAL about
about = “LibreLogo”
TO example
PRINT about
GLOBAL about ; 新しい値にしたいとき
about = “new value for the global variable”
END
example
PRINT about
PRINT RANDOM 100 ; ランダムな小数 (0 <= x < 100)
PRINT RANDOM “text” ; “text”中のランダムな文字
PRINT RANDOM [1, 2] ; リストのランダムな要素(1または2)
PRINT INT 3.8 ; 3 (3.8の整数部)を表示
PRINT INT RANDOM 100 ; ランダムな整数 (0 <= x < 100)
PRINT INT “7” ; 文字列パラメータを整数に変換する
; 文字列パラメータを小数に変換する
PRINT 2 * FLOAT “5.5” ; 11.0を表示
; 数値パラメータを文字列に変換
PRINT “Result: ” + STR 5 ; “Result: 5”を表示
PRINT 10 * STR 5 ; 5555555555を表示
PRINT SQRT 100 ; 10(100の平方根)を表示
PRINT SIN 90 * PI/180 ; 1.0を印字 (ラジアン表現での90° のサイン)
PRINT COS 0 * PI/180 ; 1.0を印字 (ラジアン表現での 0° のコサイン)
PRINT LOG10 100 ; 2.0(100の常用対数)を表示
PRINT ROUND 3.8 ; 4( 3.8の四捨五入)を表示
PRINT ROUND RANDOM 100 ; ランダムな整数 (0 <= x <= 100)
PRINT ABS -10 ; 10(-10の絶対値)を表示
PRINT COUNT “text” ; 4(“text”の文字数)を表示
PRINT COUNT [1, 2, 3] ; 3(リストの要素数)を表示
; リストをPythonの集合型に変換
PRINT SET [4, 5, 6, 6] ; {4, 5, 6}を表示
PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; {1, 4, 5, 6, 9}を表示、結合(和集合)
PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ; {4}を表示、交わり(積集合)
PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; {5, 6}を表示、差集合
PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; print {1, 5, 6, 9}, 対象差集合
; Python-like list generation
PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
PRINT LIST RANGE 3 10 3 ; print [3, 6, 9]
FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
FORWARD i
LEFT 90
]
; 集合とリストの変換を利用して重複した要素を削除
PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; [1, 3, 5, 2]を表示
Pythonのタプル(変更できないリスト)に変換
PRINT TUPLE [4, 5]
並び変え(ソート)されたリストを返します。
PRINT SORTED [5, 1, 3, 4] ; [1, 3, 4, 5]を表示
regex(regular expression; 正規表現)パターンを使って文字列を置換します。
PRINT SUB (“t”, “T”, “text”) ; ,“Text” を表示 ”t” を “T” で置き換える
PRINT SUB (“(.)”, “\\1\\1”, “text”) ;“tteexxtt”を表示, 全ての文字を2回ずつ繰り返す
正規表現のパターンを使って文字列パターンの検索をします。
IF SEARCH (“\w”, "word") [ PRINT “Letter in the word.” ]
指定した正規表現パターンに一致する入力文字列内のすべての部分文字列を見つけます。
PRINT FINDALL(“\w+”, “Dogs, cats.”) ; [“Dogs”, “cats”]を表示、単語のリスト
PRINT MIN [1, 2, 3] ; 1を表示、リスト中の最小の要素
PRINT MAX [1, 2, 3] ; 3を表示、リスト中の最大の要素
PENCOLOR “SILVER” ; 名前による設定
PENCOLOR [1] ; 識別子による設定
PENCOLOR “~SILVER” ; ランダムな銀色
| 識別子 | 名前 | 
|---|---|
| 0 | BLACK/黒 | 
| 1 | SILVER/銀 | 
| 2 | GRAY/灰色 | 
| 3 | WHITE/白 | 
| 4 | MAROON/くり色/マルーン | 
| 5 | RED/赤 | 
| 6 | PURPLE/紫 | 
| 7 | FUCHSIA/MAGENTA/明るい紫/フクシア/マゼンタ | 
| 8 | GREEN /緑 | 
| 9 | LIME/明るい緑/ライム色 | 
| 10 | OLIVE/柿色/オリーブ色 | 
| 11 | YELLOW/黄 | 
| 12 | NAVY/濃い青 | 
| 13 | BLUE/青 | 
| 14 | TEAL/マガモ色/くすんで暗い青/ティール | 
| 15 | AQUA/アクア/シアン | 
| 16 | PINK/ピンク | 
| 17 | TOMATO/トマト/トマト色 | 
| 18 | ORANGE/オレンジ/オレンジ色 | 
| 19 | GOLD/金/金色 | 
| 20 | VIOLET/すみれ色/バイオレット/ヴァイオレット | 
| 21 | SKYBLUE/空色/スカイブルー | 
| 22 | CHOCOLATE/薄い茶色/チョコレート/チョコレート色 | 
| 23 | BROWN/茶色/ブラウン | 
| 24 | INVISIBLE/見えない/不可視 |