Windows: product names, the editors, WSL; the Linux page's image step
Assembled from development commit c3c40f6c8fca. Since 830b193: on Windows the
products carry Windows names (ktext.exe, klammertext.dll, document.dll,
reflect.dll) and the console's output code page is UTF-8 for a run; the
editor tooling works on Windows (VS Code, Sublime Text, Vim, with the
interpreter's name chosen by platform) and Notepad++ joins it
(doc/edit/notepadpp: a User Defined Language and two Run-menu commands);
a sixth install page, doc/install/windows_wsl_install.md, for Linux
inside WSL; the Windows page opens with the three routes and gains its
editor section, the PowerShell quoting and Path notes; the Linux page
installs OpenImageIO from the python3-openimageio package and verifies
with kdiag --machine; the README lists all six install pages. Linux and
macOS behaviour is unchanged.
This commit is contained in:
1 parent
830b19394d
commit
ee8bcf5300
33 files changed
+741
-122
No files matched your search
@@ -13,6 +13,14 @@ The installation uses three things a Windows user installs once:
|
||||
building; **Python** from python.org, which Klammertext embeds; and **TeX
|
||||
Live**, for PDF output. Everyday use needs only PowerShell.
|
||||
|
||||
This is one of three ways to have Klammertext on Windows. If you are at
|
||||
home in Linux, the Windows Subsystem for Linux gives you the Linux
|
||||
installation unchanged, with the Windows editors and browser alongside:
|
||||
`windows_wsl_install.md`. If you want no build at all, the prebuilt
|
||||
container images run on Windows through Docker Desktop, which that page
|
||||
also describes. This page is the native route: Windows programs, no
|
||||
Linux layer.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -119,10 +127,11 @@ optimizing compiler may run out of memory and report `out of memory
|
||||
allocating`. If so, run `make -C com` without `-j`: slower, and it
|
||||
finishes.
|
||||
|
||||
This builds the library, the Standard Klammer Set's components and the
|
||||
three commands into `bin\`, and copies the library and the compiler's
|
||||
runtime DLLs there too, so `bin\` is self-contained. The Python binding is
|
||||
built into `kpy\`. Verify:
|
||||
This builds the library (`klammertext.dll`), the Standard Klammer Set's
|
||||
components and the three commands (`ktext.exe`, `kdesc.exe`, `kdiag.exe`)
|
||||
into `bin\`, and copies the library and the compiler's runtime DLLs there
|
||||
too, so `bin\` is self-contained. The Python binding is built into `kpy\`.
|
||||
Verify:
|
||||
|
||||
```bash
|
||||
ktext -s '@eval 1 + 1 @' -d # prints 2
|
||||
@@ -221,21 +230,37 @@ ktext hello.kt -t pdf # writes hello.pdf
|
||||
## Using the commands from PowerShell
|
||||
|
||||
Building needs the UCRT64 shell; using Klammertext does not. For everyday
|
||||
use from PowerShell, put three directories on the `Path` and set
|
||||
use from PowerShell, put two directories on the `Path` and set
|
||||
`KLAMMERTEXT_HOME`, once, as user environment variables (Settings ▸
|
||||
System ▸ About ▸ Advanced system settings ▸ Environment Variables, or with
|
||||
`setx`):
|
||||
System ▸ About ▸ Advanced system settings ▸ Environment Variables, or
|
||||
from PowerShell):
|
||||
|
||||
```powershell
|
||||
setx KLAMMERTEXT_HOME "C:\Users\<you>\klammertext"
|
||||
setx Path "$env:Path;C:\Users\<you>\klammertext\bin;C:\Users\<you>\external\texlive\2026\bin\windows"
|
||||
[Environment]::SetEnvironmentVariable("KLAMMERTEXT_HOME", "C:\Users\<you>\klammertext", "User")
|
||||
$p = [Environment]::GetEnvironmentVariable("Path", "User")
|
||||
[Environment]::SetEnvironmentVariable("Path", "$p;C:\Users\<you>\klammertext\bin;C:\Users\<you>\external\texlive\2026\bin\windows", "User")
|
||||
```
|
||||
|
||||
Python is already on the `Path` from its installer. Open a new PowerShell
|
||||
(Not `setx Path "$env:Path;…"`: `$env:Path` is the machine and user
|
||||
values merged, so that copies every machine entry into your user `Path`,
|
||||
and `setx` silently cuts a value over 1024 characters.) Python is already
|
||||
on the `Path` from its installer. Open a new PowerShell
|
||||
window and `ktext`, `kdesc` and `kdiag` work there directly. Paths
|
||||
Klammertext prints use forward slashes on every system; paths you type may
|
||||
use either.
|
||||
|
||||
One PowerShell rule to know when you pass Klammertext text with `-s`: an
|
||||
apostrophe inside a single-quoted string ends the string, so `It's` must
|
||||
be written `It''s` (two apostrophes), or the whole text put in double
|
||||
quotes. The error you get otherwise mentions a "here-string header",
|
||||
because PowerShell reads the next `@'` as one; it is PowerShell's message,
|
||||
not Klammertext's.
|
||||
|
||||
```powershell
|
||||
ktext -s '@i It''s a Pyrrhic victory! @' -d
|
||||
ktext -s "@i It's a Pyrrhic victory! @" -d
|
||||
```
|
||||
|
||||
|
||||
## Verifying the installation
|
||||
|
||||
@@ -250,12 +275,12 @@ ktext hello.kt -t html # html
|
||||
ktext hello.kt -t pdf # pdf, requires TeX Live
|
||||
|
||||
make -C $KLAMMERTEXT_HOME/tst test # the engine's test suites
|
||||
make -C $KLAMMERTEXT_HOME/sks/tst test # the Standard Klammer Set's suites (needs TeX Live)
|
||||
```
|
||||
|
||||
A few suite cases report `SKIP` on Windows for things the MSYS2 shell
|
||||
cannot provide, such as a real terminal for the colour tests or a
|
||||
symbolic link; that is expected.
|
||||
symbolic link; that is expected. (The Standard Klammer Set's own suites
|
||||
are part of the development repository, not of this distribution.)
|
||||
|
||||
|
||||
## Updating
|
||||
@@ -269,6 +294,56 @@ make -C com -j
|
||||
```
|
||||
|
||||
|
||||
## Editor support
|
||||
|
||||
Klammertext's editor support (`doc\edit\`, one shared implementation
|
||||
behind VS Code, Sublime Text, Vim and Emacs integrations) works on Windows
|
||||
with the Python already installed. Each editor's README in `doc\edit\`
|
||||
has the details; the Windows-specific steps are these.
|
||||
|
||||
**Visual Studio Code.** Build the extension package in the UCRT64 shell,
|
||||
then install it from PowerShell (or from any window where `code` is on the
|
||||
`Path`):
|
||||
|
||||
```bash
|
||||
cd ~/klammertext/doc/edit/vscode && ./make_vsix.sh
|
||||
```
|
||||
|
||||
```powershell
|
||||
code --install-extension C:\Users\<you>\klammertext\doc\edit\vscode\klammertext.vsix
|
||||
```
|
||||
|
||||
Reload VS Code. The extension runs `python` from the `Path` and finds the
|
||||
language server inside the package; nothing needs configuring.
|
||||
|
||||
**Sublime Text 4.** Copy the package and the shared core into Sublime's
|
||||
`Packages` directory (**Preferences → Browse Packages…** opens it):
|
||||
|
||||
```powershell
|
||||
$p = "$env:AppData\Sublime Text\Packages\Klammertext"
|
||||
New-Item -ItemType Directory -Force $p | Out-Null
|
||||
Copy-Item C:\Users\<you>\klammertext\doc\edit\sublime\* $p
|
||||
Copy-Item C:\Users\<you>\klammertext\doc\edit\shared\klammertext_edit.py $p
|
||||
```
|
||||
|
||||
Sublime loads the package live.
|
||||
|
||||
**Notepad++.** Highlighting comes from a User Defined Language file, the
|
||||
delimiter check and reindentation from two Run-menu commands
|
||||
(`doc\edit\notepadpp\README.md` has both):
|
||||
|
||||
```powershell
|
||||
$d = "$env:AppData\Notepad++\userDefineLangs"
|
||||
New-Item -ItemType Directory -Force $d | Out-Null
|
||||
Copy-Item C:\Users\<you>\klammertext\doc\edit\notepadpp\Klammertext.udl.xml $d
|
||||
```
|
||||
|
||||
Restart Notepad++; `.kt` and `.k` files open as Klammertext.
|
||||
|
||||
**Vim.** As in `doc\edit\vim\README.md`; the plugin runs the shared core
|
||||
through `python` on Windows automatically.
|
||||
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**The command window closes at once, or "The code execution cannot proceed
|
||||
@@ -282,7 +357,7 @@ runtime, which nearly every Windows machine already has but a freshly
|
||||
installed one may not. Install it from
|
||||
https://aka.ms/vs/17/release/vc_redist.x64.exe and try the import again.
|
||||
|
||||
**"libklammertext.so was not found" or "libstdc++-6.dll was not found".**
|
||||
**"klammertext.dll was not found" or "libstdc++-6.dll was not found".**
|
||||
`bin\` is not on the `Path`, or the build did not finish: `make -C com -j`
|
||||
places the library and the runtime DLLs in `bin\` beside the commands.
|
||||
|
||||
|
||||
Reference in new issue
Block a user