Giter Site home page Giter Site logo

Comments (15)

sthesing avatar sthesing commented on August 19, 2024 2

@bdarcus:

https://github.com/bdarcus/citar

That's a super helpful package, I didn't know it. And it plays nice with consult, embark, marginalia etc. which makes it fit into my rational-emacs config, perfectly. Thanks!

@jeffbowman:
I see your point with overlapping. Looking at the current module titles, I see some that describe what the functionality is doing (e.g. rational-completion) others describe what the functionality might be used for (e.g. rational-screencast).
The terms writing, academic writing etc. are of the latter category. Maybe that's why there's overlapping. Because people use a given functionality for different purposes. So maybe more descriptive module titles are the way to go?

from crafted-emacs.

ajxn avatar ajxn commented on August 19, 2024

I don't think that LaTeX is programming, so it doesn't fit in rational-ide. LaTeX is about writing documents, with some settings for LaTeX and BibTeX.

So yes, rational-writing is probably a better place for LaTeX support, HTML, markup languages and plain text. Mayby later put into a separate module, if the module become to large.

About Org-mode, I think that it actually are more then just documentation, as one with Babel can write examples and run code, and even export to a full program. And then we have Org-mode with ToDo/Calendar and also Org-roam. So Org-mode in another module then rational-writing is ok.

from crafted-emacs.

sthesing avatar sthesing commented on August 19, 2024

I've been thinking about this for a few days. I have a few unsorted thoughts that I present as a sequence here, even though they are - well, unsorted, and I haven't made up my mind.

  1. I agree that LaTeX doesn't belong in the same category than programming. A rational-writing module would make sense I think.
  2. However, one could argue that the requirements of a productive environment for writing LaTeX – due to it probably being the most complex markup language out there – differ very much from what one would want in a lean Markdown environment or a distraction free mode for creative writing.
  3. Many people do program quite a lot within their LaTeX documents, (mainly with Knitr, I guess). Though that is true (to a lesser extent) for R Markdown as well, which is more widely used than people think, because it is heavily promoted by the IDE R Studio, which in turn is used and recommended in R courses of many universities.
  4. Maybe LaTeX belongs to a module for academic writing that makes working with Biblatex and the like easier.
  5. Org Mode might be used for writing, as well, but Org Mode can be used for a myriad of things and is probably a category of its own.

So maybe it's worth to think about two separate modules:

  • rational-writing (minimalistic, distraction free environment for creative writers, bloggers, writers of journals, morning pages etc.)
  • rational-academic(environment for LaTeX, BibTex, Biblatex, KnitR, maybe R etc.)

from crafted-emacs.

bdarcus avatar bdarcus commented on August 19, 2024

Org is used quite a lot for academic writing, often as a front-end for latex.

In the past, this was with org-ref. But org now has excellent native citation support, with bundled export processors for bibtex, biblatex, natbib, and CSL (which supports final rendering in latex, HTML, odt, etc).

With pandoc (whose author and maintainer is a philosopher), markdown is also used for academic writing.

Also, isn't latex used outside academia?

Aside: I'm an academic, and creator and maintainer of citar, which provides citation support for latex, markdown, and org.

https://github.com/bdarcus/citar

I also maintain the Doom biblio module.

Finally, I don't use rational-emacs; I just thought it looked interesting, and so when I saw this discussion, thought I might weigh in.

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

Don't forget we have a rational-org module already, which may impact some of the discussion here.

I use LaTeX for lots of things, mostly for putting together mini-books related to software architectures, developer guidelines, etc specific to a client. I do write macros and environments for those works from time to time. I don't use Org mode to create my LaTeX files in these cases.

For blogging though, I use Org mode and publish using the writefreely package. Others might use Jekyll or Hugo or others with Org mode.

So, I support the idea of a rational-writing module, but there is a (potentially significant) overlap with the existing rational-org module.

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

I'm not terribly unhappy with the names, but more descriptive is always better in my opinion. Maybe we need to provide a rationale for using both a rational-org and a rational-writing module together to get the most comprehensive writing configuration?

from crafted-emacs.

thibautbenjamin avatar thibautbenjamin commented on August 19, 2024

Have you decided on where a LaTeX config should go? I use emacs a lot to write LaTeX documents, and I have made myself a custom module for it. It is quite basic, but I wouldn't mind sharing it as a starting point, and improve my config with other people's ideas for a good LaTeX setup.

For what it's worth, I can give you my opinion on how to organise things:

  • My usage of LaTeX is quite different to what I would use markdown or org for. I am an academic and I use LaTeX to write articles, which are usually shared with other people also using LaTeX, and it is kind of the standard in my circles, so there is no way to just say I want to write in org or markdown, because other people do not necessarily have a setup for that, or even may not like this idea. So I think it makes sense to have a crafted-latex which is different from a potential crafted writing. I think antoher point to support this is that I often write mathematical equations and figures in TikZ, and I do not want a setup for writing to get in the way of indentation for those.
  • I saw a proposal to have a crafted-academic package above, and I think it is a bit too much. The proposal most notably included knitr and R. Those are probably tools that are standard in a lot of fields, but not at all in mine, and I do not really want to load modes that I do not use, just to be able to enjoy the LaTeX that the community has come up with. They may very well belong to another module. However, I do think that a crafted-latex module should include a setup for bibtex and biblatex config, sice those are in the latex ecosystem.

I would like to contribute, and I think I have a good starting point for a LaTeX setup, so please tell me if I should send a PR or if you think that LaTeX should not get its own module.

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

@thibautbenjamin Thanks for your input on this discussion. No decision has been made, but I also use LaTeX for most of my writing as well, although, my configuration is likely more basic than yours (I don't typically have a need for bibs on my writing - its largely technical stuff for work). If you would like to contribute your configuration that would be fantastic, so I encourage you to do so.

If you are already Crafted Emacs, you just need to start a file in the modules folder called crafted-latex.el and you will be asked if you wish to perform the Crafted Emacs skeleton auto-insertion, please answer yes to this question, answer the next question and fill out a description of the module, and then add your code. This just helps to keep the modules consistently formatted and documented. If you want, and especially if you have user configurable options (via defcustom), an info module would be appreciated but not required (see the docs/CONTRIBUTING.org file for more information).

Thanks very much!

from crafted-emacs.

thibautbenjamin avatar thibautbenjamin commented on August 19, 2024

@jeffbowman Thanks a lot! I opened a PR here: #208

from crafted-emacs.

mattmc3 avatar mattmc3 commented on August 19, 2024

I opened a markdown file and was surprised (and bummed) to discover that Crafted Emacs didn't recognize it and set its major mode. I wanted to see what was available, and read this thread. If the intent is to have crafted-lang.el files for common major modes, that could get pretty extensive, and probably requires someone with deeper knowledge of Rust, Go, Typescript, etc. to maintain each and every config. The other option of letting the user do it themselves leaves users quite a bit of config to do every time they open a new file type which isn't a great experience either.

One really good alternative might be to do what Prelude does, which is installs major modes for the user on-demand when they open a file with the extension for the first time. This could go in a crafted-major-modes.el file. Then, for common major modes like markdown, you might also have a separate crafted-markdown.el file. But, for less common ones like .fish files, you would still get good starting support from Crafted Emacs with this approach without a full-blown crafted-fish.el. Is this an approach that works? Would a PR with a modified implementation of Prelude's (maybe called crafted-major-modes.el) be accepted?

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

Hi @mattmc3 , Thanks for continuing this discussion!

Prelude is a really cool project, I have taken a lot of inspiration and (with permission) used code directly from that project with some minor customizations to fit into my config in the past. That said, one of the tenets of this project is that it is not a complete solution, but rather a good baseline to start from when crafting your own configuration. Philosophically, doing some magic to automatically install packages without the user realizing those packages would be (or are being) installed seems a little counter to what this project is about.

The difficulties of having a crafted-lang.el is exactly as you describe. One reason we have a dearth of those modules is because we don't have (or no one who wants such a config, with the requisite knowledge) has stepped up to provide a PR for a crafted-rust or crafted-go module (among others) even though they have been requested multiple times. I am not a Rust nor Go programmer enough (I am familiar with the general concepts and some syntax of both example languages), thus I don't claim enough expertise to generate or maintain those modules. I'm happy to consider a PR for them though. In general, my feedback for those is based on good form, obviousness, correctness in terms of elisp usage, etc, and most PRs that come through here get accepted.

If a user opens a file type that isn't supported by default out of the box in Emacs, then some configuration is warranted. The simplest approach is to install whatever package they choose and either restart Emacs or enable the feature in the buffer for the file they just opened. If further configuration is warranted, then some additional elisp would be needed, or additional resources need to be installed outside of Emacs. For markdown files (among others) this latter part is specifically true, at least in some cases, to enable preview or auto-preview solutions provided by whatever package. This seems to imply that just automatically installing a package for a given mode would likely be incomplete or insufficient to provide a satisfying experience for some definition of "a satisfying experience".

One other principle which may apply here is the "reversible" principle. In other words, whatever decision we make in creating a crafted module, should be reversible by the user in their own config. For example, if the user wishes to include the crafted-ui module but then doesn't want to use the doom-modeline the user should be able to turn that off in their config. If we auto-install packages to satisfy support for missing modes, it is a challenge to reverse that decision as the next time Emacs is started, and the file with the missing mode is opened, the package install would happen all over again. There are possible solutions (and there examples of them in the existing crafted modules) to leverage exclusion lists to hijack the auto-install process for a specific mode. So there could be a way forward. I'd be happy to review your PR, but it would need to fit in with the principles of the project before I would choose to accept it.

Thanks for participating in the discussion, and for the suggestion. Even though there are many reasons for not moving forward, I hope you will consider, thoughtfully, how such a crafted-major-modes module could be written to meet the principles of the project and submit such a work. I'd love to see it! And, yes, there is a chance it could be accepted.

Hope that helps!

from crafted-emacs.

MooersLab avatar MooersLab commented on August 19, 2024

Hi @jeffbowman,

After two days of use, I am loving crafted-emacs! Thank you very much for your great talk about crafted-emacs at the Austin Emacs Meetup last Wednesday and for your team's efforts on this project.

Is a crafted-bibtex.el module missing, or I have overlooked a feature? A crafted-bibtex.el could have the configuration for citar and citar-embark to be compatible with vertico and friends.

from crafted-emacs.

bdarcus avatar bdarcus commented on August 19, 2024

@MooersLab as I mentioned earlier, packages like citar are broader than bibtex or latex. A lot of people use it with org-mode or markdown/pandoc, and many use JSON bibliography files (though bibtex/biblatex are certainly the larger user base).

In Doom, we have a separate biblio module for those packages, FWIW. I think that's the right way to organize things, so since can then choose latex vs markdown vs org independently, and then those independently of whether you need dedicated bibliography and citation support or not.

That's kind of the challenge of this issue; what to put where.

EDITED for clarity.

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

@MooersLab, glad you are enjoying Crafted Emacs ! And, nope, you haven't missed anything. That module doesn't exist. @bdarcus makes a good point about the challenge presented in this issue. It might be interesting to have a crafted-bibtex.el module, feel free to submit a PR!

from crafted-emacs.

jeffbowman avatar jeffbowman commented on August 19, 2024

Closing this as there has been no additional discussion and no PR submitted. After Crafted Emacs V2 is released, perhaps another issue and/or PR to update the appropriate module with bibliography configuration could be provided.

from crafted-emacs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.