====== Fonts ====== ===== Context ===== LibreCAD uses its own font format for various reasons. Based on its roots in QCAD, which used its own CXF format, LibreCAD enhanced this format in LFF (LibreCAD Font Format). ===== Deployment ===== LibreCAD comes with a collection of common used fonts. Some of them are contributions from our community, others are converted from TTF fonts with our command line conversion tool ttf2lff. When LibreCAD is installed from a binary package, chances are good, that the fonts are installed properly, and that they are available in text tools. \\ Their location depends on the used operating system. If you have converted your own fonts, you can add an additional path in //Application Preferences//, that you can keep them separated from the deployed fonts. For users who build LibreCAD themselves, they can find the font files on our [[http://github.com/LibreCAD/LibreCAD/tree/master/librecad/support/fonts|Github repository]] ===== Sharing drawings with text ===== Because LFF is a LibreCAD feature, other CAD applications probably can't show texts in DXF drawings. \\ To share DXF with text with other CAD applications, create a copy of the drawing and explode all text. This makes them basic entities again and allow other CAD applications to show the text. The back draw is, that the exploded text is no longer editable as text. ===== Font lists ===== ==== Deployed ==== ^Font File ^Alphabet ^Font Type ^ Technical / \\ Single Line ^ |amiri-regular.lff |Arabic |Serif | | |azomix.lff |Chinese |Sans Serif | X | |azomix_i.lff |Chinese |Sans Serif | X | |cursive.lff |Latin |Sans Serif, Italic | X | |cyrillic_ii.lff |Cyrillic |Sans Serif | X | |gothgbt.lff |Latin |Blackletter / Gothic | | |gothgrt.lff |Latin |Blackletter / Gothic | | |gothitt.lff |Latin |Blackletter / Gothic | | |greek_ol.lff |Greek | | | |greekc.lff |Greek | | | |greekcs.lff |Greek | | | |greekp.lff |Greek | | | |greeks.lff |Greek | | X | |iso.lff |Latin |Sans Serif | X | |iso3098.lff |Latin |Sans Serif | X | |iso3098_i.lff |Latin |Sans Serif | X | |italicc.lff |Latin |Serif, Outline | | |italiccs.lff |Latin |Serif, Outline | | |italict.lff |Latin |Serif, Outline | | |kochigothic.lff |Latin |Sans Serif, Outline | | |kochimincho.lff |Latin |Serif, Outline | | |kst32b.lff |Chinese |Sans Serif | X | |lc_opengost-ar.lff |Cyrillic, Greek, Latin |Sans Serif | X | |lc_opengost-br.lff |Cyrillic, Greek, Latin |Sans Serif | X | |opengosttypea-regular.lff |Cyrillic, Greek, Latin |Sans Serif, Outline | X | |opengosttypeb-regular.lff |Cyrillic, Greek, Latin |Sans Serif, Outline | X | |romanc.lff |Latin |Serif, Outline | | |romancs.lff |Latin |Serif, Outline | | |romand.lff |Latin |Sans Serif, Outline | | |romanp.lff |Latin |Serif, Outline | | |romans.lff |Latin |Sans Serif | X | |romansi.lff |Latin |Sans Serif, Italic | X | |romant.lff |Latin |Serif, Outline | | |scriptc.lff |Latin |Script, Outline | | |scripts.lff |Latin |Script | | |simplex.lff |Latin |Sans Serif | X | |standard.lff |Latin |Sans Serif | X | |syastro.lff |Symbol | | | |symap.lff |Symbol | | | |symath.lff |Symbol | | | |symbol.lff |Symbol | | | |symbol_misc1.lff |Symbol | | | |symbol_misc2.lff |Symbol | | | |symeteo.lff |Symbol | | | |symusic.lff |Symbol | | | |unicode.lff |Multiple |Sans Serif | X | ==== Additional ==== ^Font File ^Alphabet ^Font Type ^Technical / \\ Single Line ^ | {{ :community:fonts:wqy-unicode.zip |wqy-unicode.lff}} |Chinese | Sans Serif | | ==== Examples ==== === From 2.1.3 === * DXF showing all fonts - {{ :community:fonts:librecadfonts_2.1.3.dxf |LibreCadFonts_2.1.3.dxf}} * PDF export from this DXF - {{ :community:fonts:librecadfonts_2.1.3.pdf |LibreCadFonts_2.1.3.pdf}} * PNG export from this DXF - {{ :community:fonts:librecadfonts_2.1.3.png?800 |LibreCadFonts_2.1.3.png}} ===== Issues ===== Some fonts have performance issues. This depends on the number of entities defining a single letter. When there are fonts with mostly less than 10 entities per letter, there are others with 50 to well over 100 entities per Letter. ====== ttf2lff ====== ===== The Tool ===== **ttf2lff** is the LibreCAD converter to create //LFF// fonts from //TTF// fonts. The tool's source code is part of the LibreCAD code base and can be build optional with LibreCAD. \\ There is no deployment for the tool, because it's just a console application which is not much comfortable to use for inexperienced users. \\ There are some binaries around, which may work on their targeted operating system, but without any warranty. ===== Limitations ===== Because the //TTF// file format supports much more font types and features, it is not guaranteed that the conversion is possible with every //TTF// font. \\ The result is at most an outline font, because //LFF// format does not support filled letters. \\ There are some hints in the forum, explaining how to explode text and fill letters with solid hatch, but this can end in huge efforts and makes the text no longer editable. ===== Online Converter ===== Because of the requests for **ttf2lff** binaries from time to time we recently launched an online converter. \\ This allows everybody to upload //TTF// fonts, let **ttf2lff** do its work on our server, and then provides a download link for the //LFF// font. It's basically working, we got first positive response, but it's probably not fully bullet proofed yet. \\ If any issues arise, please report them to the forum: \\ https://forum.librecad.org/Font-Roboto-in-LibreCAD-tp5723727p5723766.html Before you convert a font, please check its license and ensure that conversion is allowed. \\ For the upload provide correct data for author and license, these information is set into the //LFF// file to appreciate the authors work and probably to satisfy the license. The online converter: https://librecad.org/ttf2lff \\ The upload limit for TTF files is about 30MB.