# HG changeset patch # User Laman # Date 2014-08-06 11:58:42 # Node ID 3ce489491296f7f86470522b0a1bbb5347996950 init, random commit diff --git a/diana.py b/diana.py new file mode 100644 --- /dev/null +++ b/diana.py @@ -0,0 +1,199 @@ +Ôªøimport sys +import re +import go +import os +import sgf + +if len(sys.argv)>1: + files=sys.argv[1:] +else: + sys.exit("no input file specified") + +movesPerDiagram=50 +minMovesPerDiagram=10 + +t=sys.stdout +c=28 +padding=15 +highNumbers=False + +class Svg: + content="" + footer="" + + padding=15 + gridSize=28 + highNumbers=False + + def __init__(self): + self.content=''' + + + + + \n'''.format(2*self.padding+18*self.gridSize) + self.footer="\n" + + grid=' \n' + + # okraje desky + for i in (0,18): + self.content+=' \n'.format(self.padding, 18*self.gridSize+self.padding, self.gridSize*i+self.padding, self.gridSize*i+self.padding) + self.content+=' \n'.format(self.gridSize*i+self.padding, self.gridSize*i+self.padding, self.padding, 18*self.gridSize+self.padding) + + # m≈ô√≠≈æka + for i in range(1,18): + self.content+=grid.format(padding, 18*c+padding, c*i+padding, c*i+padding) + self.content+=grid.format(c*i+padding, c*i+padding, padding, 18*c+padding) + + # hvƒõzdy + for i in range(3): + for j in range(3): + self.content+=' \n'.format(padding+3*c+6*i*c, padding+3*c+6*j*c, 2) + + def __str__(self): + return self.content+self.footer + + def drawStone(self,x,y,color): + self.content+=' \n'.format(padding+x*c, padding+y*c, c/2-1, color) + + def getFontSize(self,text): + if len(text)<2: return round(0.7*c) + elif len(text)<3: return round(0.55*c) + else: return round(0.4*c) + + def writeLabel(self,x,y,label,color): + label=str(label) + fontSize=self.getFontSize(label) + self.content+=' {4}\n'.format(padding+x*c, padding+y*c+0.35*fontSize, color, fontSize, label) + + def drawMove(self,x,y,label,color): + labelColor="w" if color=="b" else "b" + + if (not self.highNumbers) and isinstance(label,int) and label%100!=0: label=label%100 # dost neobratn√° logika + + self.drawStone(x,y,color) + self.writeLabel(x,y,label,labelColor) + + def getContent(self): + return self.content+self.footer + + +class Tikz: + content="" + footer="" + + highNumbers=False + + def __init__(self): + self.content='''\\begin{tikzpicture} + \\draw[step=\\boardSquare,gray,very thin] (0,0) grid (18\\boardSquare,18\\boardSquare); + \\draw (0,0) rectangle (18\\boardSquare,18\\boardSquare);\n\n''' + + # hvƒõzdy + for i in range(3): + for j in range(3): + self.content+=' \\filldraw[fill=black] ({0}\\boardSquare,{1}\\boardSquare) circle[radius=0.04];\n'.format(6*i+3, 6*j+3) + self.content+='\n' + + self.footer='\\end{tikzpicture}\n' + + def __str__(self): + return self.content+self.footer + + def drawStone(self,x,y,color): + fill="black" if color=="b" else "white" + self.content+=' \\filldraw[draw=black,fill={0}] ({1}\\boardSquare,{2}\\boardSquare) circle[radius=0.5\\boardSquare];\n'.format(fill,x,18-y) + + def drawMove(self,x,y,label,color): + fill="black" if color=="b" else "white" + labelColor="white" if color=="b" else "black" + if (not self.highNumbers) and isinstance(label,int) and label%100!=0: label=label%100 # dost neobratn√° logika + + self.content+=' \\filldraw[draw=black,fill={0}] ({1}\\boardSquare,{2}\\boardSquare) circle[radius=0.5\\boardSquare] node[color={3}]{{{4}}};\n'.format(fill,x,18-y,labelColor,label) + + def getContent(self): + return self.content+self.footer + + +def processFile(fileName): + shortName="".join(fileName.split('/')[-1].split('.')[:-1]) + + game=go.Go() + global t + + record=sgf.Sgf(open(fileName,'r',encoding="utf-8").read()) + moves=record.getMoves() + + localBoard=dict() + overlays="" + letters=dict() + letter='a' + + diagramsNeeded=(len(moves)-minMovesPerDiagram)//movesPerDiagram+1 + moveNumber=0 + + for i in range(diagramsNeeded): + # inicializuj diagram + diagram=Tikz() + + for lineNumber,line in enumerate(game.board): + for itemNumber,item in enumerate(line): + if item==1: diagram.drawStone(itemNumber,lineNumber,"b") + if item==-1: diagram.drawStone(itemNumber,lineNumber,"w") + localBoard={(a,b):game.board[b][a]-1 for a in range(19) for b in range(19) if game.board[b][a]!=0} + + for j in range(movesPerDiagram): + # kresli tahy + if moveNumber>=len(moves): break + + c,(x,y)=moves[moveNumber] + c=c.lower() + + if not game.move(1 if c=='b' else -1,x,y): + print("illegal move: {0} at {1},{2}".format(moveNumber+1,x,y)) + moveNumber+=1 + continue + + # zap√≠≈°u tah na voln√Ω pr≈Øseƒç√≠k + if not (x,y) in localBoard: + localBoard[(x,y)]=moveNumber+1 + diagram.drawMove(x,y,moveNumber+1,c) + # pr≈Øseƒç√≠k je obsazen√Ω nepopsan√Ωm kamenem + elif localBoard[(x,y)]<1: + # pr≈Øseƒç√≠k nen√≠ popsan√Ω ani p√≠smenem + if not (x,y) in letters: + letters[(x,y)]=letter + color='b' if localBoard[(x,y)]==0 else 'w' + diagram.drawMove(x,y,letter,color) + letter=chr(ord(letter)+1) + overlays+="{0} = {1}\n".format(moveNumber+1,letters[(x,y)]) + # pr≈Øseƒç√≠k je obsazen√Ω oƒç√≠slovan√Ωm kamenem + else: overlays+="{0} = {1}\n".format(moveNumber+1,localBoard[(x,y)]) + + moveNumber+=1 + + # dokonƒçi a ulo≈æ diagram + t=open("out/{0}-{1}.tex".format(shortName,i+1),'w') # nov√Ω soubor + t.write(diagram.getContent()) + t.close() + + notes=open("out/{0}.txt".format(shortName),'w') + notes.write(overlays) + notes.close() + +print("processing:") +for item in files: + if os.path.isfile(item): + print("{0}... ".format("".join(item.split('/')[-1].split('.')[:-1])),end="") + processFile(item) + print("done") + elif os.path.isdir(item): + print("contents of the '{0}' directory added to the queue".format(item)) + else: print("the '{0}' path could not be resolved to either a file nor a directory".format(item)) diff --git a/example.lyx b/example.lyx new file mode 100644 --- /dev/null +++ b/example.lyx @@ -0,0 +1,604 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass scrbook +\begin_preamble +\setkomafont{sectioning}{\bfseries} +\usepackage[komastyle]{scrpage2} +% Kolumnentitel und Paginierung: +\setkomafont{pagehead}{\normalfont\rmfamily\itshape} +\setkomafont{pagenumber}{\normalfont\rmfamily} +\setkomafont{dictumtext}{\normalfont\small} +\setkomafont{dictumauthor}{\itshape} +\renewcommand{\dictumwidth}{0.5\textwidth} + +\usepackage{soul} +% Skalierung der Versalien +\usepackage{scalefnt} + +% Versalien (etwas kleiner setzen und ein wenig sperren): +\makeatletter +% aus example.cfg (soul.sty, "narrowcaps") +\capsdef{/ptm///}{\upshape}% +{.05em\@plus.01em\@minus.02em}% +{.3em\@plus.08em\@minus.06em}% +{.3em\@plus.111em\@minus.04em} +\DeclareRobustCommand*\versal[1]{% +\MakeUppercase{\scalefont{.92}\caps{#1}}% +} +\DeclareRobustCommand*\versalomat[1]{% +\MakeUppercase{\scalefont{.92}#1}% +} +\makeatother + +% Pseudo-Characterstyles ¸ber Textfarbe +\makeatletter + +\usepackage{ifthen} +\renewcommand{\textcolor}[2]{% +\ifthenelse{\equal{#1}{blue}}{{\versal{#2}}}{}% Versalien +\ifthenelse{\equal{#1}{cyan}}{{\versalomat{#2}}}{}% Weitere +%\ifthenelse{\equal{#1}{magenta}\or\equal{#1}{blue}}{}{#2}% fallthrough +} + +% Abstand Text--Fuflnoten vergrˆflern +\makeatletter +\renewcommand\footnoterule{% +% Abstand zwischen Text und Fuflnotenstrich (1 Zeile) + %\vspace{1em}% + \kern-3\p@\hrule\@width1.5cm% + \kern2.6\p@% +% Abstand zwischen Fuflnotenstrich und Fuflnoten (0.2em) + \vspace{0.2em}}% +\makeatother + +% Fuflnoten trotz \raggedbottom am Seitenfufl +\usepackage[bottom,hang]{footmisc} + +% Fuflnotenzeichen nicht hochstellen +\makeatletter +\newlength{\footnumwidth} +% Anzahl der Ziffern an die grˆflte Fuflnotennummer anpassen (footnotesize) +\settowidth{\footnumwidth}{{\normalfont\footnotesize9\space\space}} +\deffootnote[\footnumwidth]{\footnumwidth}{1em}{\thefootnotemark\space\space} +\makeatother + +% ldots zentriert +\let\olddots\ldots +\renewcommand*{\ldots}{\olddots\unkern} + +% Vermeiden von Schusterjungen +% Keine ¸berh‰ngenden Zeilen +\tolerance 1414 +\hbadness 1414 +\emergencystretch 1.5em +\hfuzz 0.3pt +\widowpenalty = 10000 +\vfuzz \hfuzz +\raggedbottom + +\usepackage{microtype} +\end_preamble +\options smallheadings +\language english +\inputencoding default +\fontscheme palatino +\graphics default +\paperfontsize default +\spacing single +\papersize Default +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 2 +\tocdepth 2 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\quotes_times 2 +\papercolumns 1 +\papersides 2 +\paperpagestyle default +\bullet 0 + 0 + 0 + -1 +\end_bullet + +\layout Standard + + +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +setchapterpreamble[u]{ +\backslash +dictum[Jeff MacNelly in ``Shoe'']{ +\end_inset + +``Uncle Cosmo, why do they call this a word processor? +\begin_inset Quotes erd +\end_inset + + +\newline +``It's simple, Skyler. + You've seen what food processors do to food, right? +\begin_inset Quotes erd +\end_inset + + +\begin_inset ERT +status Collapsed + +\layout Standard +}} +\end_inset + + +\layout Chapter + +The Philosophy of LyX +\layout Section + +What is LyX? +\layout Standard + +LyX is a document preparation system. + It excels at letting you create complex technical and scientific articles + with mathematics, cross-references, bibliographies, indices, etc. + It is very good at documents of any length in which the usual processing + abilities are required: automatic sectioning and pagination, spellchecking, + and so forth. + It can also be used to write a letter to your mom, though granted, there + are probably simpler programs available for that. + It is definitely not the best tool for creating banners, flyers, or advertiseme +nts (we'll explain why later), though with some effort all these can be + done, too. + Some examples of what it is used for: memos, letters, dissertations and + theses, lecture notes, seminar notebooks, conference proceedings, software + documentation, books (on PostgreSQL, remote sensing, cryptology, fictional + novels, poetry, and even a children's book or two), articles in refereed + scientific journals, scripts for plays and movies, business proposals \SpecialChar \ldots{} + + you get the idea. +\layout Standard + +LyX is a program that provides a modern approach to writing documents with + a computer by using a markup language paradigm, an approach that breaks + with the obsolete tradition of the +\begin_inset Quotes eld +\end_inset + +typewriter concept. +\begin_inset Quotes erd +\end_inset + + It is designed for authors who want professional output quickly with a + minimum of effort without becoming specialists in typesetting. + The job of typesetting is done mostly by the computer, not the author; + with LyX, the author can concentrate on the contents of her writing. +\layout Standard + +Part of the initial challenge of using LyX comes from the change in thinking + that you, the user, must make. + At one time, all we had for creating documents were typewriters, so we + all learned certain tricks to get around their limitations. + Underlining, which is little more than overstriking with the +\begin_inset Quotes eld +\end_inset + +_ +\begin_inset Quotes erd +\end_inset + + character, became a way to emphasize text. + You were forced to figure out column sizes and tab stops, and set them, + before creating a table. + The same applied for letters and other right justified text. + Hyphenation at the end of a line required a careful eye and a lot of foresight. +\layout Standard + +In other words, we've all been trained to worry about the little details + of which character goes where. + Consequently, almost all word processors have this mentality. + They still use tab stops for adding whitespace. + You still need to worry about exactly where on the page something will + appear. + Emphasizing text means changing a font, similar to changing the typewriter + wheel. + This is the underlying philosophy of a +\color blue +WYSIWYG +\color default + word processor: +\begin_inset Quotes eld +\end_inset + +What You See Is What You Get +\begin_inset Quotes erd +\end_inset + +. + Unfortunately, that paradigm often results in +\begin_inset Quotes eld +\end_inset + +What You See Is All You Get +\begin_inset Quotes erd +\end_inset + +. +\layout Standard + +This is where LyX differs from an ordinary word processor. + You don't concern yourself with what character goes where. + You tell LyX +\emph on +what you're doing +\emph default + and LyX takes care of the rest, following a set of rules called a +\emph on +style. +\emph default + +\begin_inset Foot +collapsed true + +\layout Standard + +To be fair, most recent versions of the most popular office suites now have + some sort of style sheets which follow a similar markup method. + However, our experience is that they are still rarely used in practice. +\end_inset + + Let's look at a little example: +\layout Standard + +Suppose you are writing a report. + To begin your report, you want a section called +\begin_inset Quotes eld +\end_inset + +Introduction\SpecialChar \@. + +\begin_inset Quotes erd +\end_inset + + So, you go into whatever menu it is in your word processor that changes + font sizes and decide on a new font size. + Then you turn on bold face. + Then you type, +\begin_inset Quotes eld +\end_inset + +1.\SpecialChar ~ +Introduction +\begin_inset Quotes erd +\end_inset + +. + Of course, if you later decide that this section belongs someplace else + in the document, or if you insert a new section before it, you need to + change the numbering for this and all following sections, as well as any + entry in the table of contents. + +\layout Standard + +In LyX, you go to the pull-down on the far left of the button bar and select + +\emph on +Section +\emph default +, and type +\begin_inset Quotes eld +\end_inset + +Introduction\SpecialChar \@. + +\begin_inset Quotes erd +\end_inset + + +\layout Standard + +Yes, that's all. + If you cut and paste the section, it will automatically be renumbered---everywh +ere. + And if you enter references to that section correctly (by inserting cross-refer +ence tags), LyX will automatically update them all throughout the file so + that you never, ever type a section number. +\layout Standard + +Now let's look at the problem of consistency. + Five days later, you reopen your report and start Section\SpecialChar ~ +4. + However, you forget that you were using 18 +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +, +\end_inset + +pt bold instead of 16 +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +, +\end_inset + +pt, so you type in the heading for Section\SpecialChar ~ +4 in a different font that what + you used for Section\SpecialChar ~ +1. + That problem doesn't even exist in LyX. + The computer takes care of all that silly bookkeeping about which thing + has what size font, not you. + After all, that's what a computer is good at. +\layout Standard + +Here's another example. + Suppose you're making a list. + In other word processors, a list is just a bunch of tab stops and newlines. + You need to figure out where to put the label for each list item, what + that label should be, how many blank lines to put between each item, and + so on. + Under LyX, you have only two concerns: what kind of list is this, and what + do I want to put in it. + That's it. +\layout Standard + +So, the basic idea behind LyX is: specify +\emph on +what +\emph default + you're doing, not +\emph on +how +\emph default + to do it. + Instead of +\begin_inset Quotes eld +\end_inset + +What You See Is What You Get, +\begin_inset Quotes erd +\end_inset + + the LyX model is +\begin_inset Quotes eld +\end_inset + +What You See Is What You +\emph on +Mean +\emph default + +\begin_inset Quotes erd +\end_inset + + or +\begin_inset Quotes eld +\end_inset + + +\color blue +WYSIWYM +\color default +. +\begin_inset Quotes erd +\end_inset + + It's a powerful idea that greatly simplifies the mechanics of writing documents. + This is also why LyX isn't so good for creating posters and flyers---in + this case, you +\emph on +do +\emph default + want to specify exactly where everything goes, because there are no functional + units like paragraphs, sections, etc. + This doesn't mean LyX is missing some cool function. + It simply means that it isn't the right tool for the job---you don't use + a screwdriver to drive in nails (unless your screwdriver comes with a lifetime + warranty). +\layout Section + +Differences between LyX and Other Word Processors +\begin_inset OptArg +collapsed true + +\layout Standard + +LyX and Other Word Processors +\end_inset + + +\begin_inset Foot +collapsed true + +\layout Standard + +No, we're not trying to start (or win) a word processor holy war here. + But we do think it's important to describe LyX's features. + And one of LyX's main features, +\color blue +WYSIWYM +\color default +, is a fundamentally different concept than the one that most of people + have about word processing. +\end_inset + + +\layout Standard + +Here's a list of things you won't find in LyX: +\layout Itemize + +The document ruler +\layout Itemize + +Tab stops +\layout Itemize + +Extra whitespace (i. +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +, +\end_inset + +e. +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash + +\end_inset + +hitting +\emph on +Enter +\emph default + or +\emph on +Space +\emph default + two or more times) +\layout Standard + +Tab stops, along with a ruler showing you the position of things on the + page, are useless in LyX. + The program worries about where things go on the page, not you. + Extra white\SpecialChar \- +space is similar; LyX adds them where necessary, depending on + context. + Not being able to type two blank lines in a row will be annoying at first, + but it makes more sense once you're thinking in +\color blue +WYSIWYM +\color default + terms. +\layout Standard + +Here are some things that exist in LyX, but aren't used as you might think: +\layout Itemize + +Indenting controls +\layout Itemize + +Page breaks +\layout Itemize + +Line spacing (i. +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash +, +\end_inset + +e. +\begin_inset ERT +status Collapsed + +\layout Standard + +\backslash + +\end_inset + +single spaced, double spaced, etc.) +\layout Itemize + +Whitespace, horizontal and vertical +\layout Itemize + +Fonts and font sizes +\layout Itemize + +Typefaces (bold, italic, underline, etc.) +\layout Standard + +Although they exist in LyX, you generally don't need them. + LyX will take care of these things for you, depending on what you're doing. + Different parts of the document are automatically set in a different typeface + and font size. + Paragraph indenting is context dependent; different types of paragraphs + get indented differently. + Page breaks get handled automatically, as well. + In general, the space between lines, between words, and between paragraphs + is variable, set by LyX. +\begin_inset Foot +collapsed true + +\layout Standard + +There are ways to adjust all of these (only some of which require knowledge + of LaTeX), either for a whole document or for a specific location in a + document. + See the +\emph on +User's Guide +\emph default + and/or the +\emph on +Extended Features +\emph default + manual for details. +\end_inset + + +\layout Standard + +Lastly, there are a few areas where we believe LyX (and LaTeX) surpasses + many word processors: +\layout Itemize + +Hyphenation +\layout Itemize + +Lists of any type +\layout Itemize + +Mathematics +\layout Itemize + +Tables +\layout Itemize + +Cross-referencing +\layout Standard + +Granted, many modern word processors can handle mathematical symbols, tables, + and hyphenation, and many have moved towards style definitions and the + +\color blue +WYSIWYM +\color default + concept. + However, they've only recently been able to do so, whereas LyX is built + upon the LaTeX document preparation system. + LaTeX has been around for over 15 years, and +\emph on +works +\emph default +. +\the_end diff --git a/go.py b/go.py new file mode 100644 --- /dev/null +++ b/go.py @@ -0,0 +1,33 @@ +Ôªøclass Go: + # 1: B, 0: _, -1: W + # resp. jak√°koli ƒç√≠sla s opaƒçn√Ωmi znam√©nky + board=[[0]*19 for i in range(19)] + + def __init__(self): self.board=[[0]*19 for i in range(19)] + + def move(self,color,y,x): + if self.board[x][y]!=0: return False + + self.board[x][y]=color + + for i,j in ((-1,0),(1,0),(0,-1),(0,1)): + self.temp=[[False]*19 for i in range(19)] + if not self._floodFill(-color,x+i,y+j): self._remove() + self.temp=[[False]*19 for i in range(19)] + if not self._floodFill(color,x,y): + self.board[x][y]=0 + return False + return True + + def _floodFill(self,color,x,y): + if x<0 or x>18 or y<0 or y>18: return False + if self.temp[x][y]: return False + if self.board[x][y]==0: return True + if self.board[x][y]!=color: return False + self.temp[x][y]=True + return self._floodFill(color,x-1,y) or self._floodFill(color,x+1,y) or self._floodFill(color,x,y-1) or self._floodFill(color,x,y+1) + + def _remove(self): + for i in range(19): + for j in range(19): + if self.temp[i][j]: self.board[i][j]=0 diff --git a/insertMatrix1.lyx b/insertMatrix1.lyx new file mode 100644 --- /dev/null +++ b/insertMatrix1.lyx @@ -0,0 +1,69 @@ +#LyX 1.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 221 +\textclass article +\language english +\inputencoding auto +\fontscheme default +\graphics default +\paperfontsize default +\spacing single +\papersize Default +\paperpackage a4 +\use_geometry 0 +\use_amsmath 0 +\use_natbib 0 +\use_numerical_citations 0 +\paperorientation portrait +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\quotes_times 2 +\papercolumns 1 +\papersides 1 +\paperpagestyle default + +\layout Title + +How to enter a matrix +\layout List +\labelwidthstring 00.00.0000 + +Ctrl-n Create new document +\layout List +\labelwidthstring 00.00.0000 + +Ctrl-M Insert math inset in display mode +\layout List +\labelwidthstring 00.00.0000 + +Meta-m\SpecialChar ~ +[ Insert +\begin_inset Formula $\left[\right]$ +\end_inset + + +\layout List +\labelwidthstring 00.00.0000 + +Math\SpecialChar ~ +panel: Insert matrix, 3 rows, 3 columns +\layout Standard + +Now just use the cursor to navigate around the entries in the matrix. + Here's how it will look: (To create the fractions, use Meta-m\SpecialChar ~ +f) +\layout Standard + + +\begin_inset Formula \[ +\left[\begin{array}{ccc} +1 & \frac{1}{3} & \frac{1}{2}\\ +3 & 1 & 3\\ +2 & \frac{1}{3} & 1\end{array}\right]\] + +\end_inset + + +\the_end diff --git a/notes.txt b/notes.txt new file mode 100644 --- /dev/null +++ b/notes.txt @@ -0,0 +1,2 @@ +38 = 25 +115 = 107 diff --git a/sgf-compresor.py b/sgf-compresor.py new file mode 100644 --- /dev/null +++ b/sgf-compresor.py @@ -0,0 +1,124 @@ +Ôªøimport re +import sys + +def compressValues(s): + vals=[] + indicesX=[] + for m in re.finditer(r"\[.*?[^\\]\]",s,flags=re.DOTALL): + vals.append(m.group(0)[1:-1]) + indicesX.append(m.span()) + i=len(indicesX)-1 + for start,end in reversed(indicesX): + s=s[:start+1]+"$"+str(i)+s[end-1:] + i-=1 + return s,vals + +s=open("c:/Users/Laman/Documents/go/EuroGoTV1-x.sgf",encoding="utf8").read() +s,d=compressValues(s) + +print(s) +print(d[:20]) + +sys.exit(0) + +# # # + +# http://en.wikipedia.org/wiki/Recursive_descent_parser + +# # # + +import collections +import re + +Token = collections.namedtuple('Token', ['typ', 'value']) + +def tokenize(s): + keywords = {'IF', 'THEN', 'ENDIF', 'FOR', 'NEXT', 'GOSUB', 'RETURN'} + token_specification = [ + ('PROPID',r'[A-Z]+'), + ('PROPVAL',r'\[\$\d+\]'), + ('NODE',r';'), + ('LPARENTHESIS',r'\('), + ('RPARENTHESIS',r'\)'), + ('SKIP',r'\s') + ] + tok_regex = '|'.join('(?P<%s>%s)' % pair for pair in token_specification) + get_token = re.compile(tok_regex).match + line = 1 + pos = line_start = 0 + mo = get_token(s) + while mo is not None: + typ = mo.lastgroup + if typ == 'NEWLINE': + line_start = pos + line += 1 + elif typ != 'SKIP': + val = mo.group(typ) + if typ == 'ID' and val in keywords: + typ = val + yield Token(typ, val, line, mo.start()-line_start) + pos = mo.end() + mo = get_token(s, pos) + if pos != len(s): + raise RuntimeError('Unexpected character %r on line %d' %(s[pos], line)) + +statements = ''' + IF quantity THEN + total := total + price * quantity; + tax := price * 0.05; + ENDIF; +''' + +for token in tokenize(statements): + print(token) + +tokens=["list of tokens"] +i=0 +sym + +def getSym(): + sym=token[i] + i+=1 + +def accept(s): + if sym==s: + getSym() + return True + else: + return False + +def expect(s): + if accept(s): + return True + else: + pass # error + return False + +def propValue(): + if accept(lbracket) and cValueType() and expect(rbracket): + pass + else: + pass # error + +def propIdent(): + accept(ident) + +def propertyX(): + propIdent() + while propValue(): pass + +def node(): + accept(semicolon) + propertyX() + +def sequence(): + while node(): pass + +def gameTree(): + accept(lparenthesis) + sequence() + while gameTree(): pass + expect(rparenthesis) + +def collection(): + while gameTree(): pass \ No newline at end of file diff --git a/sgf.py b/sgf.py new file mode 100644 --- /dev/null +++ b/sgf.py @@ -0,0 +1,45 @@ +Ôªøimport re +import datetime + +class Sgf: + gameName=None + black=None + white=None + rankB=None + rankW=None + + result=None + komi=6.5 + + date=None + place=None + + moves=[] + + def __init__(self,s): + m=re.search("GN\[.*\]",s) + if m: self.gameName=m.group() + m=re.search("PB\[.*\]",s) + if m: self.black=m.group() + m=re.search("PW\[.*\]",s) + if m: self.white=m.group() + m=re.search("BR\[.*\]",s) + if m: self.rankB=m.group() + m=re.search("WR\[.*\]",s) + if m: self.rankW=m.group() + m=re.search("RE\[.*\]",s) + if m: self.result=m.group() + m=re.search("KM\[.*\]",s) + if m: self.komi=m.group() + m=re.search("PC\[.*\]",s) + if m: self.place=m.group() + m=re.search("DT\[.*\]",s) + if m: self.date=m.group() # naparsovat ho + + self.moves=re.findall("\W([BW])\[([a-s]{2})\]",s) # a pass? + char2int=lambda a:ord(a)-ord('a') + self.moves=[(c,(char2int(m[0]),char2int(m[1]))) for c,m in self.moves] + + def getMoves(self): + return self.moves.copy() + \ No newline at end of file diff --git a/sgfParser.py b/sgfParser.py new file mode 100644 --- /dev/null +++ b/sgfParser.py @@ -0,0 +1,517 @@ +Ôªøimport re + +# def digit(str): + # if re.match("") str[0] + +def skipWhitespace(str,start): + i=start + while i=len(str) or str[i]!="(": + # print("error when parsing GameTree") + return (start,None) + i,x=Node.create(str,start+1) + if x is None: + # print("error when parsing GameTree") + return (i,None) + while x is not None: + res.nodes.append(x) + i=skipWhitespace(str,i) + i,x=Node.create(str,i) + i=skipWhitespace(str,i) + i,x=GameTree.create(str,i) + while x is not None: + res.branches.append(x) + i=skipWhitespace(str,i) + i,x=GameTree.create(str,i) + if str[i]!=")": + # print("error when parsing GameTree") + return (i,None) + return (i+1,res) + +class Node: + properties=dict() + + def create(str,start): + res=Node() + if str[start]!=";": + # print("error when parsing Node") + return (start,None) + i=skipWhitespace(str,start+1) + i,x=Property.create(str,start+1) + while x is not None: + if x.name in res.properties: + print('error: duplicate "{0}" property in node at position {1}. second value ignored'.format(x.name,start)) + else: + res.properties[x.name]=x + i=skipWhitespace(str,i) + i,x=Property.create(str,i) + return (i,res) + +class Property: + name="" + value="" + + def create(str,start): + res=Property() + i,x=Property.ident(str,start) + if x is None: + return (start,None) + res.name=x + i,x=PropValue.create(str,i,res.name) + if x is None: + print('error when parsing property "{0}" at position {1}'.format(res.name,i)) + return (start,None) + # while x is not None: # p≈ôesunuto do PropValue.listOf + # res.values.append(x) + # i=skipWhitespace(str,i) + # i,x=PropValue.create(str,i,res.name) + return (i,res) + + def ident(str,start): + r=re.compile(r"[A-Z]+") + m=r.match(str,start) + if m is None: return (start,None) + return (m.end(),m.group()) + +class PropValue: + type="" + value=None + patterns=dict() + + def create(str,start,name): + if name in PropValue.patterns: + return PropValue.patterns[name](str,start) + else: + print('warning, unknown property "{0}" at position {1}'.format(name,start)) + return PropValue.singleton(PropValue.anything)(str,start) + + # def singleton(str,start,vType): + # if str[start]!="[": + # return (start,None) + # i,x=vType(str,start+1) + # if x is None: return (start,None) + # if str[i]!="]": + # return (start,None) + # return (i+1,x) + + def choose(*vTypes): + def f(str,start): + for vType in vTypes: + i,x=vType(str,start) + if x is not None: return (i,x) + return (start,None) + return f + + def singleton(vType): + def f(str,start): + if str[start]!="[": + return (start,None) + i,x=vType(str,start+1) + if x is None: return (start,None) + if str[i]!="]": + return (start,None) + return (i+1,x) + return f + + # def listOf(str,start,vType,allowEmpty=False): + # res=[] + # i,x=singleton(str,start,vType) + # # singleton(vType) if vType not tuple else compose(vType[0],vType[1]) + # while x!=None: + # res.append(x) + # i,x=singleton(str,i,vType) + # if len(res)==0 and not allowEmpty: return (start,None) + # return (i,res) + + def listOf(vType,allowEmpty=False): + def f(str,start): + res=[] + single=singleton(vType) + i,x=single(str,start) + while x!=None: + res.append(x) + i,x=single(str,i) + if len(res)==0 and not allowEmpty: return (start,None) + return (i,res) + return f + + # def compose(str,start,vTypeA,vTypeB): + # i,a=vTypeA(str,start) + # if a==None or str[i]!=":": return (start,None) + # i,b=vTypeB(str,i+1) + # if b==None: return start,None + # return (i,(a,b)) + + def compose(vTypeA,vTypeB): + def f(str,start): + i,a=vTypeA(str,start) + # print(">",i,a) + if a==None or str[i]!=":": return (start,None) + i,b=vTypeB(str,i+1) + # print(">",i,b) + if b==None: return start,None + return (i,(a,b)) + return f + + def number(str,start): + r=re.compile(r"(\+|-|)\d+") + m=r.match(str,start) + if m is None: return (start,None) + res=int(m.group(0)) + return (m.end(),res) + + def real(str,start): + r=re.compile(r"(\+|-|)\d+(\.\d+)?") + m=r.match(str,start) + if m is None: return (start,None) + res=float(m.group(0)) + return (m.end(),res) + + def double(str,start): + r=re.compile(r"1|2") + m=r.match(str,start) + if m is None: return (start,None) + res=int(m.group(0)) + return (m.end(),res) + + def color(str,start): + r=re.compile(r"B|W") + m=r.match(str,start) + if m is None: return (start,None) + return (m.end(),m.group(0)) + + # def simpleText(str,start): + # res="" + # esc=False + # lineBreak=False + # for c in str: + # if esc: + # res+=c + # esc=False + # elif c=="\\": + # esc=True + # elif c=="]": + # break + # else: + # res+=c + # return res + + def text(simple=True,composed=False): + def f(str,start): + res="" + esc=False + lastC="" + for i,c in enumerate(str[start:],start): + if esc: + if c!="\n" and c!="\r": res+=c + esc=False + elif (c=="\n" and lastC=="\r") or (c=="\r" and lastC=="\n"): pass + elif c=="\r" or c=="\n" and not simple: + res+="\n" + elif c.isspace(): + res+=" " + elif c=="\\": + esc=True + elif c=="]" or (c==":" and composed): + break + else: + res+=c + lastC=c + return (i,res) + return f + + def empty(str,start): return (start,"") + + def anything(str,start): + esc=False + for i,c in enumerate(str[start:],start): + if esc: esc=False + elif c=="\\": esc=True + elif c=="]": break + return (i,str[start:i]) + + # go specific + def point(str,start): + r=re.compile(r"[a-zA-Z]{2}|") # !! limit to board size + m=r.match(str,start) + if m is None: return (start,None) + if m.group(0)=="": # pass, !! tt + return (m.end(),tuple()) + col=m.group(0)[0] + row=m.group(0)[1] + col=ord(col) - (ord("a") if "a"<=col<="z" else ord("A")-26) + row=ord(row) - (ord("a") if "a"<=row<="z" else ord("A")-26) + return (m.end(),(col,row)) + + move=point + stone=point + + patterns={ + "B":singleton(move), + "KO":singleton(empty), + "MN":singleton(number), + "W":singleton(move), + "AB":listOf(stone), # + "AE":listOf(point), # + "AW":listOf(stone), # + "PL":singleton(color), + "C":singleton(text(simple=False)), + "DM":singleton(double), + "GB":singleton(double), + "GW":singleton(double), + "HO":singleton(double), + "N":singleton(text()), + "UC":singleton(double), + "V":singleton(real), + "BM":singleton(double), + "DO":singleton(empty), + "IT":singleton(empty), + "TE":singleton(double), + "AR":listOf(compose(point,point)), # + "CR":listOf(point), # + "DD":listOf(point,allowEmpty=True), # + "LB":listOf(compose(point,text())), # + "LN":listOf(compose(point,point)), # + "MA":listOf(point), # + "SL":listOf(point), # + "SQ":listOf(point), # + "TR":listOf(point), # + "AP":singleton(compose(text(composed=True),text())), # + "CA":singleton(text()), + "FF":singleton(number), + "GM":singleton(number), + "ST":singleton(number), + "SZ":choose(singleton(number),singleton(compose(number,number))), # + "AN":singleton(text()), + "BR":singleton(text()), + "BT":singleton(text()), + "CP":singleton(text()), + "DT":singleton(text()), + "EV":singleton(text()), + "GN":singleton(text()), + "GC":singleton(text(simple=False)), + "ON":singleton(text()), + "OT":singleton(text()), + "PB":singleton(text()), + "PC":singleton(text()), + "PW":singleton(text()), + "RE":singleton(text()), + "RO":singleton(text()), + "RU":singleton(text()), + "SO":singleton(text()), + "TM":singleton(real), + "US":singleton(text()), + "WR":singleton(text()), + "WT":singleton(text()), + "BL":singleton(real), + "OB":singleton(number), + "OW":singleton(number), + "WL":singleton(real), + "FG":choose(singleton(empty),singleton(compose(number,text()))), # + "PM":singleton(number), + "VW":listOf(point,allowEmpty=True), # + + # go specific + "HA":singleton(number), + "KM":singleton(real), + "TB":listOf(point,allowEmpty=True), + "TW":listOf(point,allowEmpty=True) + } + +"""def property(str): + # i=propIdent(str) + # if i<0: return -1 + # j=i + # i=propValue(str[i:]) + # while i>=0: + # j+=i + # i=propValue(str[i:]) + # return j + +def propIdent(str): + m=re.match(r"[A-Z]+",str) + if m is None: return -1 + return m.end() + +def propValue(str): + i=cValueType(str[1:]) + if str[0]=="[" and i>=0 and str[i]=="]": return i+1 + else: return -1 + +class propValue: + pass + +def cValueType(str,start): + matches=[real,number,double,color,simpleText] + for f in matches: + i,x=f(str,start) + if x is not None: return i,x + return 1/0 + +def number(str,start): + r=re.compile(r"(\+|-|)\d+") + m=r.match(str,start) + if m is None: return (-1,None) + x=int(m.group(0)) + return (m.end(),x) + +def real(str): + m=re.match(r"(\+|-|)\d+(\.\d+)?",str) + if m is None: return -1 + return m.end() + +def double(str): + m=re.match(r"1|2",str) + if m is None: return -1 + return m.end() + +def color(str): + m=re.match(r"B|W",str) + if m is None: return -1 + return m.end() + +def simpleText(str): + res=r"" + esc=False + for c in str: + if esc: + res+=c + esc=False + elif c=="\\": + esc=True + elif c=="]": + break + else: + res+=c + return res""" + +sgf=open("in/1-Hora-Simara.sgf").read() + +x=Collection(sgf) + +# TODO: +# date + + +""" +# move +B move +KO none +MN number +W move + +# setup +AB list of stone +AE list of point +AW list of stone +PL color + +# node annotation +C text +DM double +GB double +GW double +HO double +N simpleText +UC double +V real + +# move annotation +BM double +DO none +IT none +TE double + +# markup +AR list of composed point:point +CR list of point +DD elist of point +LB list of composed point:simpleText +LN list of composed point:point +MA list of point +SL list of point +SQ list of point +TR list of point + +# root +AP composed simpleText:simpleText +CA simpleText +FF number +GM number +ST number +SZ number | composed number:number + +# game info +AN simpleText +BR simpleText +BT simpleText +CP simpleText +DT simpleText +EV simpleText +GN simpleText +GC text +ON simpleText +OT simpleText +PB simpleText +PC simpleText +PW simpleText +RE simpleText +RO simpleText +RU simpleText +SO simpleText +TM real +US simpleText +WR simpleText +WT simpleText + +# timing +BL real +OB number +OW number +WL real + +# misc +FG none | composition of number:simpleText +PM number +VW elist of point +""" \ No newline at end of file diff --git a/work.lyx b/work.lyx new file mode 100644 --- /dev/null +++ b/work.lyx @@ -0,0 +1,1133 @@ +#LyX 2.0 created this file. For more info see http://www.lyx.org/ +\lyxformat 413 +\begin_document +\begin_header +\textclass article +\begin_preamble +\renewcommand{\fnum@figure}{Diagram~\thefigure} +\@addtoreset{figure}{section} +\end_preamble +\use_default_options true +\maintain_unincluded_children false +\language czech +\language_package default +\inputencoding auto +\fontencoding global +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 + +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize a4paper +\use_geometry true +\use_amsmath 1 +\use_esint 1 +\use_mhchem 1 +\use_mathdots 1 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 1 +\index Index +\shortcut idx +\color #008000 +\end_index +\leftmargin 2cm +\topmargin 4cm +\rightmargin 2cm +\bottommargin 4cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language english +\papercolumns 1 +\papersides 2 +\paperpagestyle headings +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section +kolo +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +ƒåern√Ω: Jan Hora +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +B√≠l√Ω: Jan ≈†imara +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +V√Ωsledek: ƒåern√Ω vyhr√°l vzd√°n√≠m +\end_layout + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Hora-Simara-1.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +1-50 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +38 na 25 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Hora-Simara-2.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Hora-Simara-3.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +101-150 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +115 na 107 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Hora-Simara-4.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +151-200 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +ƒåern√Ω: Luk√°≈° Podpƒõra +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +B√≠l√Ω: Tom√°≈° Kozelek +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +V√Ωsledek: ƒåern√Ω vyhr√°l o 7,5 +\end_layout + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Podpera-Kozelek-1.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Podpera-Kozelek-2.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Podpera-Kozelek-3.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +101-150 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Podpera-Kozelek-4.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +151-200 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Podpera-Kozelek-5.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +201-250 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Section +kolo +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +ƒåern√Ω: Jan Prokop +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +B√≠l√Ω: Ond≈ôej Kruml +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +V√Ωsledek: ƒåern√Ω vyhr√°l vzd√°n√≠m +\end_layout + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-1.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-2.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-3.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +101-150 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-4.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +151-200 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +164 na a, +\end_layout + +\begin_layout Plain Layout +190, 196 na 172, +\end_layout + +\begin_layout Plain Layout +193, 199 na 187 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-5.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +201-250 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +209, 217, 223, 228 na a, +\end_layout + +\begin_layout Plain Layout +214, 220, 226 na 206 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Prokop-Kruml-6.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +251-300 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +ƒåern√Ω: Ond≈ôej ≈†ilt +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +B√≠l√Ω: Bronislav Sn√≠dal +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 +V√Ωsledek: ƒåern√Ω vyhr√°l na ƒças +\end_layout + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Silt-Snidal-1.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Silt-Snidal-2.svg + width 100col% + groupId diagrams + +\end_inset + + +\begin_inset Caption + +\begin_layout Plain Layout +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Float figure +placement H +wide false +sideways false +status open + +\begin_layout Plain Layout +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Silt-Snidal-3.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +101-150 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +115, 121, 126 na 105, +\end_layout + +\begin_layout Plain Layout +118, 124 na 112 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + +\begin_layout Plain Layout +\align center +\begin_inset Graphics + filename out/1-Silt-Snidal-4.svg + width 100col% + groupId diagrams + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +\begin_inset Caption + +\begin_layout Plain Layout + +\lang english +151-200 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout +190 na 182, +\end_layout + +\begin_layout Plain Layout +193 na 187, +\end_layout + +\begin_layout Plain Layout +195 na 161 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/work2.lyx b/work2.lyx new file mode 100644 --- /dev/null +++ b/work2.lyx @@ -0,0 +1,1350 @@ +#LyX file created by tex2lyx 2.0.4 +\lyxformat 413 +\begin_document +\begin_header +\textclass book +\begin_preamble +\usepackage{babel} + +\end_preamble +\use_default_options false +\language czech +\language_package default +\inputencoding auto +\fontencoding T1 +\font_roman default +\font_sans default +\font_typewriter default +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 +\font_tt_scale 100 +\graphics default +\paperfontsize default +\spacing single +\use_hyperref 0 +\papersize a4paper +\use_geometry true +\use_amsmath 2 +\use_esint 1 +\use_mhchem 0 +\use_mathdots 0 +\cite_engine basic +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\use_refstyle 0 +\leftmargin 2cm +\topmargin 2cm +\rightmargin 2cm +\bottommargin 2cm +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\quotes_language german +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Section + +1. kolo +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +ƒåern√Ω: Jan Hora +\end_layout + +\begin_layout Labeling + +B√≠l√Ω: Jan ≈†imara +\end_layout + +\begin_layout Labeling + +V√Ωsledek: ƒåern√Ω vyhr√°l vzd√°n√≠m +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement h +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Hora-Simara-1.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +1-50 +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +38 na 25 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Hora-Simara-2.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement h +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Hora-Simara-3.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +101-150 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\lang czech + +115 na 107 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Hora-Simara-4.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +151-200 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Newpage newpage +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +ƒåern√Ω: Luk√°≈° Podpƒõra +\end_layout + +\begin_layout Labeling + +B√≠l√Ω: Tom√°≈° Kozelek +\end_layout + +\begin_layout Labeling + +V√Ωsledek: ƒåern√Ω vyhr√°l o 7,5 +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Podpera-Kozelek-1.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Podpera-Kozelek-2.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Podpera-Kozelek-3.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +101-150 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Podpera-Kozelek-4.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +151-200 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Podpera-Kozelek-5.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +201-250 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset space \hfill{} + +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +ƒåern√Ω: Jan Prokop +\end_layout + +\begin_layout Labeling + +B√≠l√Ω: Ond≈ôej Kruml +\end_layout + +\begin_layout Labeling + +V√Ωsledek: ƒåern√Ω vyhr√°l vzd√°n√≠m +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-1.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-2.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-3.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +101-150 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-4.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +151-200 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\lang czech + +164 na a, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +190, 196 na 172, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +193, 199 na 187 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-5.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +201-250 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\lang czech + +209, 217, 223, 228 na a, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +214, 220, 226 na 206 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Prokop-Kruml-6.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +251-300 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Newpage newpage +\end_inset + + +\end_layout + +\begin_layout Labeling +\labelwidthstring 00.00.0000 + +ƒåern√Ω: Ond≈ôej ≈†ilt +\end_layout + +\begin_layout Labeling + +B√≠l√Ω: Bronislav Sn√≠dal +\end_layout + +\begin_layout Labeling + +V√Ωsledek: ƒåern√Ω vyhr√°l na ƒças +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Silt-Snidal-1.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +1-50 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Silt-Snidal-2.eps + width 100col% + +\end_inset + + +\begin_inset Caption + +\begin_layout Standard + +51-100 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard + + +\begin_inset Float figure +placement H +wide false +sideways false +status open + + +\begin_layout Standard + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Silt-Snidal-3.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +101-150 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\lang czech + +115, 121, 126 na 105, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +118, 124 na 112 +\end_layout + +\end_inset + + +\begin_inset space \hfill{} + +\end_inset + + +\begin_inset Box Frameless +position "t" +hor_pos "c" +has_inner_box 1 +inner_pos "t" +use_parbox 0 +use_makebox 0 +width "45col%" +special "none" +height "1in" +height_special "totalheight" +status open + + +\begin_layout Plain Layout +\align center + + +\begin_inset Graphics + filename out/1-Silt-Snidal-4.eps + width 100col% + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + + +\begin_inset Caption + +\begin_layout Standard + + +\lang english +151-200 +\lang czech + +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Plain Layout + +\lang czech + +190 na 182, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +193 na 187, +\end_layout + +\begin_layout Plain Layout + +\lang czech + +195 na 161 +\end_layout + +\end_inset + + +\end_layout + +\end_inset + + +\end_layout + +\end_body +\end_document diff --git a/work2.tex b/work2.tex new file mode 100644 --- /dev/null +++ b/work2.tex @@ -0,0 +1,270 @@ +%% LyX 2.0.4 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[oneside,english,czech]{book} +\usepackage[T1]{fontenc} +\usepackage[latin9,latin2]{inputenc} +\usepackage[a4paper]{geometry} +\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm} +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} +\usepackage{float} +\usepackage{amsmath} +\usepackage{graphicx} + +\makeatletter +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands. +\numberwithin{figure}{section} +\newenvironment{lyxlist}[1] +{\begin{list}{} +{\settowidth{\labelwidth}{#1} + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \renewcommand{\makelabel}[1]{##1\hfil}}} +{\end{list}} + +\makeatother + +\usepackage{babel} +\begin{document} + +\section{1. kolo} +\begin{lyxlist}{00.00.0000} +\item [{»ern˝:}] Jan Hora +\item [{BÌl˝:}] Jan ©imara +\item [{V˝sledek:}] »ern˝ vyhr·l vzd·nÌm +\end{lyxlist} +\begin{figure}[h] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Hora-Simara-1}\caption{1-50} + +\par\end{center} + +38 na 25% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Hora-Simara-2}\caption{51-100} + +\par\end{center}% +\end{minipage} +\end{figure} + + +\begin{figure}[h] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Hora-Simara-3} +\par\end{center} + +\caption{\selectlanguage{english}% +101-150\selectlanguage{czech}% +} + + +115 na 107% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Hora-Simara-4} +\par\end{center} + +\caption{\selectlanguage{english}% +151-200\selectlanguage{czech}% +} +% +\end{minipage} +\end{figure} +\newpage{} +\begin{lyxlist}{00.00.0000} +\item [{»ern˝:}] Luk·π PodpÏra +\item [{BÌl˝:}] Tom·π Kozelek +\item [{V˝sledek:}] »ern˝ vyhr·l o 7,5 +\end{lyxlist} +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Podpera-Kozelek-1}\caption{1-50} + +\par\end{center}% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Podpera-Kozelek-2}\caption{51-100} + +\par\end{center}% +\end{minipage} +\end{figure} + + +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Podpera-Kozelek-3} +\par\end{center} + +\caption{\selectlanguage{english}% +101-150\selectlanguage{czech}% +} +% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Podpera-Kozelek-4} +\par\end{center} + +\caption{\selectlanguage{english}% +151-200\selectlanguage{czech}% +} +% +\end{minipage} +\end{figure} + + +\hfill{} +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Podpera-Kozelek-5} +\par\end{center} + +\caption{\selectlanguage{english}% +201-250\selectlanguage{czech}% +} +% +\end{minipage} +\end{figure} +\hfill{} +\begin{lyxlist}{00.00.0000} +\item [{»ern˝:}] Jan Prokop +\item [{BÌl˝:}] Ond¯ej Kruml +\item [{V˝sledek:}] »ern˝ vyhr·l vzd·nÌm +\end{lyxlist} +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-1}\caption{1-50} + +\par\end{center}% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-2}\caption{51-100} + +\par\end{center}% +\end{minipage} +\end{figure} + + +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-3} +\par\end{center} + +\caption{\selectlanguage{english}% +101-150\selectlanguage{czech}% +} +% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-4} +\par\end{center} + +\caption{\selectlanguage{english}% +151-200\selectlanguage{czech}% +} + + +164 na a, + +190, 196 na 172, + +193, 199 na 187% +\end{minipage} +\end{figure} + + +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-5} +\par\end{center} + +\caption{\selectlanguage{english}% +201-250\selectlanguage{czech}% +} + + +209, 217, 223, 228 na a, + +214, 220, 226 na 206% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Prokop-Kruml-6} +\par\end{center} + +\caption{\selectlanguage{english}% +251-300\selectlanguage{czech}% +} +% +\end{minipage} +\end{figure} +\newpage{} +\begin{lyxlist}{00.00.0000} +\item [{»ern˝:}] Ond¯ej ©ilt +\item [{BÌl˝:}] Bronislav SnÌdal +\item [{V˝sledek:}] »ern˝ vyhr·l na Ëas +\end{lyxlist} +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Silt-Snidal-1}\caption{1-50} + +\par\end{center}% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Silt-Snidal-2}\caption{51-100} + +\par\end{center}% +\end{minipage} +\end{figure} + + +\begin{figure}[H] +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Silt-Snidal-3} +\par\end{center} + +\caption{\selectlanguage{english}% +101-150\selectlanguage{czech}% +} + + +115, 121, 126 na 105, + +118, 124 na 112% +\end{minipage}\hfill{}% +\begin{minipage}[t]{0.45\columnwidth}% +\begin{center} +\includegraphics[width=1\columnwidth]{out/1-Silt-Snidal-4} +\par\end{center} + +\caption{\selectlanguage{english}% +151-200\selectlanguage{czech}% +} + + +190 na 182, + +193 na 187, + +195 na 161% +\end{minipage} +\end{figure} + +\end{document}